FIFO( First Input First Output)简单说就是指先进先出。由于微电子技术的飞速发展,新一代FIFO芯片容量越来越大,体积越来越小,价格越来越便宜。作为一种新型
大规模集成电路,FIFO芯片以其灵活、方便、高效的特性,逐渐在高速
数据采集、高速数据处理、高速
数据传输以及多机处理系统中得到越来越广泛的应用。
在
系统设计中,以增加
数据传输率、处理大量
数据流、匹配具有不同
传输率的系统为目的而广泛使用FIFO
存储器,从而提高了
系统性能。FIFO存储器是一个
先入先出的双口
缓冲器,即第一个进入其内的数据第一个被移出,其中一个是存储器的输入口,另一个口是存储器的输出口。对于单片FIFO来说,主要有两种结构:触发
导向结构和零导向传输结构。触发导向传输结构的FIFO是由
寄存器阵列构成的,零导向传输结构的FIFO是由具有
读和写地址指针的
双口RAM构成。
FIFO
存储器是系统的缓冲环节,如果没有FIFO存储器,整个系统就不可能正常工作,它主要有几方面的功能:
2、数据集中起来进行进栈和存储,可避免频繁的总线操作,减轻
CPU的负担;
3、允许系统进行DMA操作,提高数据的
传输速度。这是至关重要的一点,如果不采用DMA操作,
数据传输将达不到传输要求,而且大大增加CPU的负担,无法同时完成数据的存储工作。
因此,选择合适的
存储芯片对于提高
系统性能很重要,在以往的设计中经常采用的是“乒乓型”存储方式,这种方式就是采用两片
存储器,数据首先进入其中一片,当数据满时再让数据进入第二片存储器,同时通过
逻辑控制,将第一片存储器中的数据取走,以此类推,两片轮流对数据进行缓存。这种方式有着较明显的缺点,首先是控制复杂,要有专门的逻辑来维护这种轮流机制;其次,数据流的流向要不断变化,限制了数据流的速率,还容易产生干扰。从数据传输上说,缓存芯片容量越大,对后续时序要求就越低,可减少总线操作的频次;但从
数据存储上说,就意味着需要开辟更大的
内存空间来进行缓冲,会增加计算机的内存开销,而且容量越大,成本也越高。因此,在综合考虑系统性能和成本的基础上,选择满足系统需要的芯片即可。
FIFO是First In/First-Out的缩写,是
先入先出的意思。FIFO
存储器分为写入专用区和读取专用区。
读操作与写操作可以异步进行,写入区上写入的数据按照写入的顺序从读取端的区中读出,类似于吸收写入端与读出端
速度差的一种
缓冲器。计算机的串口,一般也都具有FIFO缓冲器(不是单一的FIFO存储器,而是嵌入在设备内部)。
FIFO存储器的连接模式中,在FIFO存储器而不是
地址总线上附加了表示内部缓冲器状态(Buffer Full,缓冲器已满;Buffer Empty,缓冲器为空)的状态引脚,连接于FIFO的双方利用该状态进行操作的控制。另外,还设计了在
接通电源及复位(Reset)或由于操作中的某些异常等原因而重新初始化(无数据状态)FIFO的复位引脚,这可以说是FIFO
存储器的特点。