|
雙口RAM是常見的共享式多端口存儲器,其最大特點(diǎn)是共享存儲數(shù)據(jù),即一個存儲器配備兩套***的地址線、數(shù)據(jù)線和控制線,允許兩個***的CPU或控制器同時異步的訪問存儲單元。這種同時異步的訪問存儲單元需要內(nèi)部仲裁控制邏輯的控制(BUSY功能輸出),由于兩個端口對雙口RAM存取時存在以下4種情況:
1.兩個端口不同時對同一地址單元存取數(shù)據(jù);
2.兩個端口同時對同一地址單元讀出數(shù)據(jù);
3.兩個端口同時對同一地址單元寫入數(shù)據(jù);
4.兩個端口同時對同一地址單元操作,一個寫入數(shù)據(jù),一個讀出數(shù)據(jù)。
所以,內(nèi)部仲裁控制邏輯相應(yīng)的提供以下功能:
1.對同一地址單元訪問的時序控制;
2.存儲單元數(shù)據(jù)塊的訪問權(quán)限分配;
3.信令交換邏輯。
對同一地址單元訪問的時序控制
當(dāng)左右端口不對同一地址單元存取時,BUSY R=H,BUSY L=H,可正常存儲;當(dāng)左右端口對同一地址單元存儲時,有一個端口的BUSY=L,禁止數(shù)據(jù)的存取,此時,兩個端口中先出現(xiàn)的存儲請求信號對應(yīng)的BUSY=H,允許存儲,后出現(xiàn)的存儲請求信號對應(yīng)的BUSY=L,禁止存儲(注意:兩端口間的存儲請求信號出現(xiàn)時間差應(yīng)滿足仲裁最小時間間隔TAPS(IDT7132為5ns),否則仲裁邏輯無法判定哪一個端口的存儲請求信號在前);在無法判定哪個端口先出現(xiàn)存儲請求信號時,控制線BUSY L和BUSY R只有一個為低電平,不會同時為低電平,這樣就避免了雙端口存取出現(xiàn)錯誤。
存儲單元數(shù)據(jù)塊的訪問權(quán)限分配
存儲單元數(shù)據(jù)塊的訪問權(quán)限分配只允許在某一時間段內(nèi)由1個CPU對自定義的某一數(shù)據(jù)塊進(jìn)行讀寫操作,這將有助于存儲數(shù)據(jù)的保護(hù),更有效地避免地址沖突。信號量(Semaphore,簡稱SEM)仲裁閉鎖就是一種硬件電路結(jié)合軟件實(shí)現(xiàn)訪問權(quán)限分配方法。SEM單元是與存儲單元無關(guān)的***標(biāo)志單元,兩個端口分別采用兩個觸發(fā)器可以實(shí)現(xiàn)這一功能。兩個觸發(fā)器在初始化時均使SEM允許輸出為高電平,等待雙方申請SEM,如果收到一方寫入的SEM信號(通常低電平寫入),仲裁電路將使其中一個觸發(fā)器的SEM允許輸出端為低電平,而閉鎖另一個SEM允許輸出端使其繼續(xù)保持高電平。只有當(dāng)先請求的一方撤消SEM信號,即寫入高電平,才使另一SEM允許輸出端的閉鎖得到解除,恢復(fù)等待新的SEM申請。
信令交換邏輯(signaling logic)
為了提高數(shù)據(jù)的交換能力,有些雙口RAM采用信令交換邏輯來通知對方。這類似與PC操作系統(tǒng)的進(jìn)程同步的信箱機(jī)制。
以上是雙口RAM自身提供的仲裁邏輯控制,也可采用自行設(shè)計(jì)的仲裁協(xié)議,比如FIFO。
|
|