FIFO存儲器

FIFO存儲器

FIFO( First Input First Output)簡單說就是指先進先出。由於微電子技術的飛速發展,新一代FIFO晶元容量越來越大,體積越來越小,價格越來越便宜。作為一種新型大規模集成電路,FIFO晶元以其靈活、方便、高效的特性,逐漸在高速數據採集、高速數據處理、高速數據傳輸以及多機處理系統中得到越來越廣泛的應用。

簡介


在系統設計中,以增加數據傳輸率、處理大量數據流、匹配具有不同傳輸率的系統為目的而廣泛使用FIFO存儲器,從而提高了系統性能。FIFO存儲器是一個先入先出的雙口緩衝器,即第一個進入其內的數據第一個被移出,其中一個存儲器的輸入口,另一個口是存儲器的輸出口。對於單片FIFO來說,主要有兩種結構:觸發導向結構和零導向傳輸結構。觸發導向傳輸結構的FIFO是由寄存器陣列構成的,零導向傳輸結構的FIFO是由具有讀和寫地址指針的雙口RAM構成。

功能


FIFO存儲器是系統的緩衝環節,如果沒有FIFO存儲器,整個系統就不可能正常工作,它主要有幾方面的功能:
1)對連續的數據流進行緩存,防止在進機和存儲操作時丟失數據;
2)數據集中起來進行進機和存儲,可避免頻繁的匯流排操作,減輕CPU的負擔;
3)允許系統進行DMA操作,提高數據的傳輸速度。這是至關重要的一點,如果不採用DMA操作,數據傳輸將達不到傳輸要求,而且大大增加CPU的負擔,無法同時完成數據的存儲工作。
因此,選擇合適的存儲晶元對於提高系統性能很重要,在以往的設計中經常採用的是“乒乓型”存儲方式,這種方式就是採用兩片存儲器,數據首先進入其中一片,當數據滿時再讓數據進入第二片存儲器,同時通過邏輯控制,將第一片存儲器中的數據取走,以此類推,兩片輪流對數據進行緩存。這種方式有著較明顯的缺點,首先是控制複雜,要有專門的邏輯來維護這種輪流機制;其次,數據流的流向要不斷變化,限制了數據流的速率,還容易產生干擾。從數據傳輸上說,緩存晶元容量越大,對後續時序要求就越低,可減少匯流排操作的頻次;但從數據存儲上說,就意味著需要開闢更大的內存空間來進行進行緩衝,會增加計算機的內存開銷,而且容量越大,成本也越高。因此,在綜合考慮系統性能和成本的基礎上,選擇滿足系統需要的晶元即可。
FIFO是First In/First-Out的縮寫,是先入先出的意思。FIFO存儲器分為寫入專用區和讀取專用區。讀操作與寫操作可以非同步進行,寫入區上寫入的數據按照寫入的順序從讀取端的區中讀出,類似於吸收寫入端與讀出端速度差的一種緩衝器。計算機的串口,一般也都具有FIFO緩衝器(不是單一的FIFO存儲器,而是嵌入在設備內部)。
FIFO存儲器的連接模式如圖所示。在FIFO存儲器而不是地址匯流排上附加了表示內部緩衝器狀態(Buffer Full,緩衝器已滿;Buffer Empty,緩衝器為空)的狀態引腳,連接於FIFO的雙方利用該狀態進行操作的控制。另外,還設計了在接通電源及複位(Reset)或由於操作中的某些異常等原因而重新初始化(無數據狀態)FIFO的複位引腳,這可以說是FIFO存儲器的特點。