24小时热门版块排行榜    

CyRhmU.jpeg
查看: 384  |  回复: 0
当前主题已经存档。

sdlj8051

金虫 (著名写手)

[交流] FIFO是什么

FIFO 是一个首字母缩略词为 首先, 首先。这个表示描述队列的原则: 什么首先进来首先被处理, 什么进来下等待直到一被完成, 等。因而它是analagous 对人行为"站立在线" (更喜欢在美国英语) 或"队列" (更喜欢在英国英语), 人事假队列在次序他们到达的地方。

优先权队列是变异在在名字不合格FIFO 的队列, 因为它准确地不是描写的那数据结构的行为。排队的理论包含队列的更加一般的概念, 并且互作用在严密Fifo 队列之间。

表示 FIFO 可能被利用在另外环境:

为人队列, 参见 队列区域。

在计算机科学方面这项条款提到数据被存放在队列被处理的方式。各个项目在队列被存放在队列(simpliciter) 数据结构。第一数据增加来队列将是第一数据被去除, 然后处理连续地进行在同样次序。这是典型的行为为队列, 但看见也LIFO 和堆积算法。

在电子 FIFO 是第一数据被写总是第一数据读的一台半导体存储器。作用是可利用的作为包括地址计数器、控制逻辑和SRAM 的集成电路。FIFO 以时钟输入称同步FIFO; 否则它是异步的。设备典型地有产品叫做表明的旗子它是空的或充分。

在会计, FIFO 是一个通常方法为接近存货的价值。它是适当的有许多不同的批相似的产品的地方。方法假定, 下个项目运输将是最老的那键入仓库。实践上, 这反映部下的商业物质。参见LIFO 在这环境。



FIFO(First  IN First Out)先进先出电路

实现数据先进先出的存储器件,FIFO的用途:普遍用作数据缓冲器,可以用在电话通讯网络的前端来同步输入的网络数据包。也可以用于顺序数据的缓冲,比如音频信号或视频信号。另一个广泛的应用是在处理器之间的通讯中。

FIFO的基本单元是寄存器,作为存储器件,FIFO的存储能力是由其内部定义的存储寄存器的数量决定 . FIFO存储器一般以数据量的深度X宽度的形式来说明所采用的基本结构

    第一代FIFO存储器是基于“导向”理论的,数据从输入端被移到输出端,所需要的时间称为导向时间

每一个数据字需要一个状态触发器,因此对数据锁存的控制只能实现很短的FIFO的操作

以长度为8的FIFO为例说明其工作原理。入图所示

                               ____________________

  D,  C,  B,  A   ——> | 1 |  2 | 3 | 4 | 5  | 6 | 7 | 8|———>

            



两边的箭头表示数据移动的方向。A,B,C,D表示被处理的数据。1,2,3,4,。。。8表示FIFO的8个存储单元。表明这个FIFO中共有8个寄存器单元。每个寄存器单元可以存储一个数据。所以寄存器的单元越多,FIFO的存储能力就越强。每个寄存器单元的位宽与FIFO的输入和输出端的位宽是一致的。如果要处理的数据A,B,C,D是16位的数据,那么输入输出端及每个寄存器单元的位宽就都是16位。这个FIFO可以命名为8X16FIFO。它在每一个时钟上升沿到来时,数据向右移动一个存储单元。这样在时钟的控制下,数据从左到右通过存储单元

FIFO通常是双端口的存储器,其中一个端口用于写入数据,而另一个端口用于读出数据。可以同时对存储器字存储单元进行写入和读出操作。它的数据吞吐率是普通RAM的两倍。

FIFO型的存储器不需要由地址来存取数据。需要由另外的信号线(或标志)来指明存储器的内容状态。

     现在的FIFO存储器采用SRAM单元来实现。它是基于带两个指针的环行FIFO结构的。要写入的数据的存储地址放在写指针中,而FIFO结构中要读出的第一个数据的地址放在读指针中

在复位后,两个指针都指向存储器的同一个字单元。每次写操作后,写指针指向下一个存储单元。对数据字的读取操作,会把读指针指向下一个要读取的数据字

读指针就不断地跟随写指针,当读指针跟上写指针后,FIFO的结构里面为空。

如果写指针追上读指针,FIFO结构里面的数据是满载的。

如果从硬件上来实现循环存储器,可以用双端口的SRAM来存取数据。指针具用二进制计数器的特征,它用于产生SRAM的存储器地址

    同步FIFO存储器的基本结构包括存储器阵列,标志逻辑和扩展逻辑(图太难画了,就不贴了)。

存储器阵列由双端口存储单元构成。允许同时对存储单元的两个端口(读端口和写端口)进行存取。

      标志逻辑用于比较两个地址指针的值,如果两个值的比较结果为零,FIFO存储器为全空,同时全空标志为真。如果两个值的比较结果等于存储器的容量深度,说明存储器全满,同时全满标志为真。

还可以设置其他一些标志,比如半满,可编程接近满,可编程接近空等。它们也通过对偏移量寄存器中的编程值和存储器阵列中的字的数量进行比较来生成

(在张老师的课上,讲到读写时序的时候,关于标志逻辑,讲的太快,没有太深的体会,还需要看书1)

     扩展逻辑通过对多个模块按容量深度扩展结构进行的级联来形成更深的FIFO存储器,采用令牌传递方法来实现逻辑上容量更深的FIFO。

    在普通模式下(没有进行容量,深度级联的模式),每一个地址在到达最大值后,会跳会到零。

     在容量深度扩展模式下,当地址指针到达最大值后,一个脉冲信号会送到扩展端口,该端口把令牌传到另一个FIFO存储器中,(直到令牌重新传回来,这个地址指针才会增加)(这个地方还有点模糊,有待解决。问过张老师,他却给我讲的是两个FIFO的乒乓操作。由于我的思路不是很清晰,也没有继续问下去。当时张老师也要开始讲课了,不好再打扰。)

     字宽扩展,可以使FIFO存储器有更宽的数据通路

在字宽扩展模式中,读操作,写操作和重传输都一样。要在字宽上扩展多个FIFO存储器,必须同时通过对每个存储器的状态标志进行与操作生成“混合标志”。混合标志也包括全空标志和全满标志。这样才能保证FIFO存储器保持同步。

[ Last edited by sdlj8051 on 2006-11-1 at 10:24 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sdlj8051 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见