多端口存儲器在多機系統(tǒng)中的應用
發(fā)布時間:2008/5/26 0:00:00 訪問次數(shù):2704
來源:單片機及嵌入式系統(tǒng)應用 作者:柳永勝 黃祥偉 趙武智摘要:介紹雙口ram和fifo的結構原理及仲裁邏輯控制;詳細說明二者在由數(shù)字信號處理器和mcs-51單片機構成的多機系統(tǒng)中的應用,并對二者進行了比較。
關鍵詞:雙口 ram fifo 多機系統(tǒng) 仲裁邏輯 dsp 單片機
前言在測控、儀器儀表、語音信號處理和圖像通信領域中往往需要多處理器分工完成數(shù)字信號處理(dsp)算法和與外部系統(tǒng)的通信、控制、數(shù)據(jù)采集和人機接口功能。在多機系統(tǒng)中,cpu之間的通信常采用以下幾種方式:(1)串行通信。這種方式相對簡單,由于受到波特率的限制,在不同檔次單片機之間需要通信業(yè)務大的場合得不到很好的通信效果。(2)并行通信。利用cpu的i/o功能在cpu之間增加緩沖器或鎖存器實現(xiàn)雙機通信。通信性能較串行通信有所提高,但仍然得不到理想的效果。(3)利用共享式存儲器實現(xiàn)。dma方式就是其中的一種,能夠達到數(shù)據(jù)的高速傳輸,但不能同時訪問存儲器,cpu必須等待總線,而且有些cpu不支持dma功能。另一種是利用多端口存儲器,雙口ram和fifo是常用的兩種多端口的存儲器,允許多cpu同時訪問存儲器,大大提高了通信效率,而且對cpu沒有過多的要求,特別適合異種cpu之間異步高速系統(tǒng)中。因此,受到硬件設計者的青睞。
一、兩種多端口存儲器
1.雙口ram的仲裁控制
雙口ram是常見的共享式多端口存儲器,以圖1所示通用雙口靜態(tài)ram為例來說明雙口ram的工作原理和仲裁邏輯控制。雙口ram最大的特點是存儲數(shù)據(jù)共享。圖1中,一個存儲器配備兩套獨立的地址、數(shù)據(jù)和控制線,允許兩個獨立的cpu或控制器同時異步地訪問存儲單元。既然數(shù)據(jù)共享,就必須存在訪問仲裁控制。內部仲裁邏輯控制提供以下功能:對同一地址單元訪問的時序控制;存儲單元數(shù)據(jù)塊的訪問權限分配;信令交換邏輯(例如中斷信號)等。
(1)對同一地址單元訪問的競爭控制
如果同時訪問雙口ram的同一存儲單元,勢必造成數(shù)據(jù)訪問失真。為了防止沖突的發(fā)生,采用busy邏輯控制,也稱硬件地址仲裁邏輯。圖2給出了地址總線發(fā)生匹配時的競爭時序。,此處只給出了地址總線選通信信號先于片選脈沖信號的情況,而且,兩端的片選信號至少相差taps——仲裁最小時間間隔(idt7132為5ns),內部仲裁邏輯控制才可給后訪問的一方輸出busy閉鎖信號,將訪問權交給另一方直至結束對該地址單元的訪問,才撤消busy閉鎖信號,將訪問權交給另一方直至結束對該地址單元的訪問,才撤消busy閉鎖信號。即使在極限情況,兩個cpu幾乎同時訪問同一單元——地址匹配時片選信號低跳變之差少于taps,busy閉鎖信號也僅輸出給其中任一cpu,只允許一個cpu訪問該地址單元。仲裁控制不會同時向兩個cpu發(fā)busy閉鎖信號。
(2)存儲單元數(shù)據(jù)塊的訪問權限分配
存儲單元數(shù)據(jù)塊的訪問權限分配只允許在某一時間段內由1個cpu對自定義的某一數(shù)據(jù)塊進行讀寫操作,這將有助于存儲數(shù)據(jù)的保護,更有效地避免地址沖突。信號量(semaphore,簡稱sem)仲裁閉鎖就是一種硬件電路結合軟件實現(xiàn)訪問權限分配方法。sem單元是與存儲單元無關的獨立標志單元,圖3給出了一個信號量閉鎖邏輯框圖。兩個觸發(fā)器在初始化時均使sem允許輸出為高電平,等待雙方申請sem。如果收到一方寫入的sem信號(通常低電平寫入),如圖3所示,仲裁電路將使其中一個觸發(fā)器的sem允許輸出端為低電平,而閉鎖另一個sem允許輸出端使其繼續(xù)保持高電平。只有當先請求的一方撤消sem信號,即寫入高電平,才使另一sem允許輸出端的閉鎖得到解除,恢復等待新的sem申請。
(3)信令交換邏輯(signaling logic)
為了提高數(shù)據(jù)的交換能力,有些雙口ram采用信令交換邏輯來通知對方。idt7130(1k容量)就是采用中斷方式交換信令。利用兩個特殊的單元(3ffh和3feh)作為信令字和中斷源。假設左端cpu向3ffh寫入信令,將由寫信號和地址選通信號觸發(fā)右端的中斷輸出,只有當右端的cpu響應中斷并讀取3ffh信令字單元,其中斷才被雙口ram撤消。
以上是雙口ram自身提供的仲裁邏輯控制,也可采用自行設計的仲裁協(xié)議。下面的實例將介紹這種方法。
2.fifo的工作原理
fifo(first in first out)全稱是先進先出的存儲器。先進先出也是fifo的主要特點。
20世紀80年代早期,fifo芯片是基于移位寄存器的中規(guī)模邏輯器件。容量為n的這種fifo中,輸入的數(shù)據(jù)逐個寄存器移位,經(jīng)n次移位才能輸出。因此,這種fifo的輸入到輸出延時與容量成正比,工作效率得到限制。
為了提高fifo的容量和減小輸出延時,現(xiàn)在fifo內部存儲器均采用雙口ram,數(shù)據(jù)從輸入到讀出的延遲大大縮小。以通用的idt7202為例,結構框圖如圖4所示。輸入
來源:單片機及嵌入式系統(tǒng)應用 作者:柳永勝 黃祥偉 趙武智摘要:介紹雙口ram和fifo的結構原理及仲裁邏輯控制;詳細說明二者在由數(shù)字信號處理器和mcs-51單片機構成的多機系統(tǒng)中的應用,并對二者進行了比較。
關鍵詞:雙口 ram fifo 多機系統(tǒng) 仲裁邏輯 dsp 單片機
前言在測控、儀器儀表、語音信號處理和圖像通信領域中往往需要多處理器分工完成數(shù)字信號處理(dsp)算法和與外部系統(tǒng)的通信、控制、數(shù)據(jù)采集和人機接口功能。在多機系統(tǒng)中,cpu之間的通信常采用以下幾種方式:(1)串行通信。這種方式相對簡單,由于受到波特率的限制,在不同檔次單片機之間需要通信業(yè)務大的場合得不到很好的通信效果。(2)并行通信。利用cpu的i/o功能在cpu之間增加緩沖器或鎖存器實現(xiàn)雙機通信。通信性能較串行通信有所提高,但仍然得不到理想的效果。(3)利用共享式存儲器實現(xiàn)。dma方式就是其中的一種,能夠達到數(shù)據(jù)的高速傳輸,但不能同時訪問存儲器,cpu必須等待總線,而且有些cpu不支持dma功能。另一種是利用多端口存儲器,雙口ram和fifo是常用的兩種多端口的存儲器,允許多cpu同時訪問存儲器,大大提高了通信效率,而且對cpu沒有過多的要求,特別適合異種cpu之間異步高速系統(tǒng)中。因此,受到硬件設計者的青睞。
一、兩種多端口存儲器
1.雙口ram的仲裁控制
雙口ram是常見的共享式多端口存儲器,以圖1所示通用雙口靜態(tài)ram為例來說明雙口ram的工作原理和仲裁邏輯控制。雙口ram最大的特點是存儲數(shù)據(jù)共享。圖1中,一個存儲器配備兩套獨立的地址、數(shù)據(jù)和控制線,允許兩個獨立的cpu或控制器同時異步地訪問存儲單元。既然數(shù)據(jù)共享,就必須存在訪問仲裁控制。內部仲裁邏輯控制提供以下功能:對同一地址單元訪問的時序控制;存儲單元數(shù)據(jù)塊的訪問權限分配;信令交換邏輯(例如中斷信號)等。
(1)對同一地址單元訪問的競爭控制
如果同時訪問雙口ram的同一存儲單元,勢必造成數(shù)據(jù)訪問失真。為了防止沖突的發(fā)生,采用busy邏輯控制,也稱硬件地址仲裁邏輯。圖2給出了地址總線發(fā)生匹配時的競爭時序。,此處只給出了地址總線選通信信號先于片選脈沖信號的情況,而且,兩端的片選信號至少相差taps——仲裁最小時間間隔(idt7132為5ns),內部仲裁邏輯控制才可給后訪問的一方輸出busy閉鎖信號,將訪問權交給另一方直至結束對該地址單元的訪問,才撤消busy閉鎖信號,將訪問權交給另一方直至結束對該地址單元的訪問,才撤消busy閉鎖信號。即使在極限情況,兩個cpu幾乎同時訪問同一單元——地址匹配時片選信號低跳變之差少于taps,busy閉鎖信號也僅輸出給其中任一cpu,只允許一個cpu訪問該地址單元。仲裁控制不會同時向兩個cpu發(fā)busy閉鎖信號。
(2)存儲單元數(shù)據(jù)塊的訪問權限分配
存儲單元數(shù)據(jù)塊的訪問權限分配只允許在某一時間段內由1個cpu對自定義的某一數(shù)據(jù)塊進行讀寫操作,這將有助于存儲數(shù)據(jù)的保護,更有效地避免地址沖突。信號量(semaphore,簡稱sem)仲裁閉鎖就是一種硬件電路結合軟件實現(xiàn)訪問權限分配方法。sem單元是與存儲單元無關的獨立標志單元,圖3給出了一個信號量閉鎖邏輯框圖。兩個觸發(fā)器在初始化時均使sem允許輸出為高電平,等待雙方申請sem。如果收到一方寫入的sem信號(通常低電平寫入),如圖3所示,仲裁電路將使其中一個觸發(fā)器的sem允許輸出端為低電平,而閉鎖另一個sem允許輸出端使其繼續(xù)保持高電平。只有當先請求的一方撤消sem信號,即寫入高電平,才使另一sem允許輸出端的閉鎖得到解除,恢復等待新的sem申請。
(3)信令交換邏輯(signaling logic)
為了提高數(shù)據(jù)的交換能力,有些雙口ram采用信令交換邏輯來通知對方。idt7130(1k容量)就是采用中斷方式交換信令。利用兩個特殊的單元(3ffh和3feh)作為信令字和中斷源。假設左端cpu向3ffh寫入信令,將由寫信號和地址選通信號觸發(fā)右端的中斷輸出,只有當右端的cpu響應中斷并讀取3ffh信令字單元,其中斷才被雙口ram撤消。
以上是雙口ram自身提供的仲裁邏輯控制,也可采用自行設計的仲裁協(xié)議。下面的實例將介紹這種方法。
2.fifo的工作原理
fifo(first in first out)全稱是先進先出的存儲器。先進先出也是fifo的主要特點。
20世紀80年代早期,fifo芯片是基于移位寄存器的中規(guī)模邏輯器件。容量為n的這種fifo中,輸入的數(shù)據(jù)逐個寄存器移位,經(jīng)n次移位才能輸出。因此,這種fifo的輸入到輸出延時與容量成正比,工作效率得到限制。
為了提高fifo的容量和減小輸出延時,現(xiàn)在fifo內部存儲器均采用雙口ram,數(shù)據(jù)從輸入到讀出的延遲大大縮小。以通用的idt7202為例,結構框圖如圖4所示。輸入