雙口RAM是常見的***享式多端口存儲器,以圖1所示通用雙口靜態RAM為例來說明雙口RAM的工作原理和仲裁邏輯控制。雙口RAM最大的特點是存儲數據***享。圖1中,壹個存儲器配備兩套獨立的地址、數據和控制線,允許兩個獨立的CPU或控制器同時異步地訪問存儲單元。既然數據***享,就必須存在訪問仲裁控制。內部仲裁邏輯控制提供以下功能:對同壹地址單元訪問的時序控制;存儲單元數據塊的訪問權限分配;信令交換邏輯(例如中斷信號)等。
FIFO(First In First Out)全稱是先進先出的存儲器。先進先出也是FIFO的主要特點。
FIFO只允許兩端壹個寫,壹個讀,因此FIFO是壹種半***享式存儲器。在雙機系統中,只允許壹個CPU往FIFO寫數據,另壹個CPU從FIFO讀數據。而且,只要註意標誌輸出,空指示不寫,滿指示不讀,就不會發生寫入數據丟失和讀出數據無效。
本文介紹了以雙口RAM和FIFO為例,利用多端口存儲器設計多機系統。現對雙口RA幾FIFO比較如下:(1)FIFO的仲裁控制簡單,但其容量不如雙口RAM。由於先進先出的特點,特別適合數據緩沖和突發傳送數據。某些芯片的內部就集成小容量FIFO,例如,DSP的同步串口就集成兩個FIFO,用於接收和發送數據緩沖。雙口RAM的仲裁邏輯比FIFO復雜,但其容量較
大。由於存儲數據完全***享,適用於雙機系統的全局存儲器和大容量數據存儲***享,例如大容量磁盤的數據緩存可采用雙口RAM。(2)FIFO只給外部提供壹個讀和壹個寫信號,因此CPU用壹個I/O地址便可讀或寫FIFO,使硬件趨於簡單,給編程也帶來壹些方便,但CPU不能對FIFO內部的存儲器進行尋址。雙口RAM由於有兩套地址線,使硬件較FIFO復雜,但允許CPU訪問內部存儲單元,因此CPU之間可以自己定主和分配數據塊以及數據單元,使軟件設計更加靈活。
在異種機系統設計中,利用雙口RAM和FIFO能夠實時、快速、靈活和方便地進行相互通信,得到滿意的效果。