2.1 IDT7132/7142結(jié)構(gòu)與連接方式
IDT7132/7142是高速2k×8雙端口靜態(tài)RAM,可提供兩個(gè)擁有獨(dú)立的控制總線、地址總線和I/O總線端口,允許CPU獨(dú)立訪問內(nèi)部的任何存儲(chǔ)單元。當(dāng)CE引腳出現(xiàn)下降沿時(shí),選中DPRAM即可通過控制OE或R/W來訪問內(nèi)部存儲(chǔ)單元。IDT32一般被用作8位雙端口RAM,也可以作為主片與DIT7142從片構(gòu)成主從式16位雙端口RAM。連接方式如圖2所示:
2.2 IDT7132/7142時(shí)序圖
IDT7132/7142的時(shí)序如圖3所示,它與RAM的讀寫時(shí)序非常類似。當(dāng)CPU選中DPRAM時(shí),CE引腳出現(xiàn)下降沿,當(dāng)控制紆OE為高且R/W為低時(shí),CPU對(duì)內(nèi)部存儲(chǔ)單元進(jìn)行寫操作;而當(dāng)控制線OE為低且R/W為高時(shí),CPU對(duì)內(nèi)部存儲(chǔ)單元進(jìn)行讀操作。
2.3 競(jìng)爭(zhēng)現(xiàn)象的處理
當(dāng)外部CPU通過兩個(gè)端口對(duì)雙端口RAM內(nèi)部的同一個(gè)存儲(chǔ)單元進(jìn)行操作時(shí),系統(tǒng)將出現(xiàn)競(jìng)爭(zhēng)。這種競(jìng)爭(zhēng)一般有如一兩種模式:

?
(1)如果兩個(gè)端口的總線訪問地址相同,并先于片選信號(hào)CE有鏟,則片內(nèi)控制邏輯將在CEL與CER之間發(fā)生競(jìng)爭(zhēng)。
(2)如果兩個(gè)端口的片選信號(hào)CE在地址信號(hào)有效之前變低,則片內(nèi)控制邏輯將在地址信號(hào)到達(dá)時(shí)發(fā)生競(jìng)爭(zhēng)。
為避免因競(jìng)爭(zhēng)而導(dǎo)致的通訊失敗,設(shè)計(jì)者提出了各種解決方案。常見的有三種:
(1)設(shè)置標(biāo)志位:在開辟數(shù)據(jù)通訊區(qū)的同時(shí),可通過軟件方法在某個(gè)固定存儲(chǔ)單元設(shè)立標(biāo)志位。這種方法要求兩端CPU每次訪問雙端口RAM之前,必須查詢、測(cè)試和設(shè)置標(biāo)志位,然后再根據(jù)標(biāo)志位的狀態(tài)決定是否可以訪問數(shù)據(jù)區(qū);有的雙端口RAM本身就個(gè)有專用的一個(gè)或多個(gè)硬件標(biāo)志鎖存器和專門的測(cè)試和設(shè)置指令,可直接對(duì)標(biāo)志位進(jìn)行讀/寫操作。這種方法通常用在多個(gè)處理器共享一個(gè)存儲(chǔ)器塊時(shí)。為了保證通訊數(shù)據(jù)的完整性,在采用這種方法時(shí)往往要求每個(gè)處理器能對(duì)該存儲(chǔ)器塊進(jìn)行互斥的存取。
(2)軟件查詢BUSY引腳狀態(tài):雙端口RAM必須具有解決兩個(gè)處理器同時(shí)訪問同一單元的競(jìng)爭(zhēng)仲裁邏輯功能。當(dāng)雙方址發(fā)生沖突時(shí),競(jìng)爭(zhēng)仲裁邏輯可用來決定哪個(gè)端口訪問有效,同時(shí)取消無(wú)效端口的訪問操作,并將禁止端口的Busy信號(hào)置為低電平。因此Busy信號(hào)可作為處理器等待邏輯的輸入之一,即當(dāng)Busy為低電平時(shí),讓處理器進(jìn)入等待狀態(tài)。每次訪問雙端口RAM時(shí),CPU檢查BUSY狀態(tài)以判斷是否發(fā)生競(jìng)爭(zhēng),只有BUSY為高時(shí),對(duì)雙端口RAM的操作才有效。
(3)利用硬件解決競(jìng)爭(zhēng):將BUSY信號(hào)引入READY引腳可在發(fā)生競(jìng)爭(zhēng)時(shí)使BUSY為低,從而使CPU內(nèi)部總線時(shí)序根據(jù)READY引腳狀態(tài)自動(dòng)插入WAIT信號(hào)并展寬總線,以達(dá)到分時(shí)訪問的目的。對(duì)于80C196KC和8098等MCS-96系列微處理器,利用這種方法便可通過硬件解決競(jìng)爭(zhēng)問題。

?
另外,在使用BUSY信號(hào)時(shí)必須首先將此信號(hào)接上拉電阻,其次應(yīng)在BUSY信號(hào)有效期間使處理器保持讀寫操作經(jīng)及相應(yīng)的地址和數(shù)據(jù),但是需要說明的是:在BUSY信號(hào)變高之前,這種情況下的所有寫操作都是無(wú)效的,圖4所示發(fā)生競(jìng)爭(zhēng)時(shí)的時(shí)序圖。