FIFO核心原理与机制
FIFO核心原理与机制
FIFO(先进先出)作为一种关键的数据缓冲技术,其核心是依托固定大小的连续地址空间,通过写指针、读指针的独立循环移动与空满状态标志的协同,实现数据按 “先进入先输出” 的规则有序存取,同时支持边写边读的并发操作。
1. 物理存储与循环特性
基于固定大小的连续地址空间(如深度8对应地址0~7),数据按"0→1→2→…→7→0→1→…"顺序循环写入,地址被反复复用。
2. 指针与标志协同工作
- 双指针独立运作:写指针(wr_ptr)指向待写入地址,写入后自动递增;读指针(rd_ptr)指向待读取地址,读取后自动递增,两者仅随对应操作移动。
- 状态标志定义:
- empty=1:读写指针相等(rd_ptr=wr_ptr),无有效数据(非空时指针必不相等);
- full=1:地址空间用尽,无法写入新数据(需通过计数或指针错位判断)。
- 数据有效性:有效数据范围为循环意义上的[rd_ptr, wr_ptr)区间,严格遵循先进先出规则。
3. 安全操作逻辑
支持"边写边读"并发操作,核心规则:
- 写操作前检查full=0(未满),避免数据溢出丢失;
- 读操作前检查empty=0(非空),避免读取无效数据。
指针分离机制确保读写操作互不干扰,数据有序存取。