正文 第二章 64180的硬件配置(一)(3 / 3)

2.2.2讀/寫操作數或數據的時序

讀/寫操作數(或數據)時序和取操作碼時序有兩點區別第一,在讀廣與操作數(或數據)時,LIR為無效(輸出高電平);第二,在取操作碼周期中,在T4的上升沿采樣數據,而在讀操作數或數據的時序中,采樣數據是在T的下降沿。在時間上,後者較前者延遲了半個時鍾周期。指令中的操作數包括:立即數、位移量和擴展地址。它們都和數據有相同的時序。在存貯器寫周期中,MREQ信號在T,的後半周期變為有效在結束時,數據被在數據總線上。

在的後沿,信號變為有效,它可以用來作為存貯器的允許信號MRWR在T3的後半周期變為無效,接著在數據總線上的數據也失效了。

插入等待狀態的讀/寫操作數或數據的時序,和前麵介紹的取操作碼時序相同沒有插入等待狀態的讀/寫時序則表示有插入等待狀態的歐序。

讀/寫I/O的時序和讀/寫存貯器的時序,有如下三點區別:第一,用IORQ(I/O允許)信號來代替MREQ(存貯器允許)信號;第二,16位I/O地址不被MMU譯碼,且A16—A18地址線保持為低電乎;第三,在讀/寫I/O周期中,總是自動插入一個等待狀態。

一條指令周期可以由幾個機器周期組成,它們是:取操作碼周期取操作數和數據讀/寫周期。一條指令周期也可能有進行CPU內部處理的周期。在這種情況下,總線總是空閑的。

這是一條完成數據傳送的指令LD,g的時序圖。這條指令實現將CPU寄存器(g)的內容傳送到存貯器單元。這個存貯器單元的地址要經過計算,它由帶符號的8位的位移量(d)和變址寄存器(IX)的內容相加而得到。

指令周期開始部分的兩個機誤周期,是用來讀兩個字節的操作碼,它以LIR信號變為低電平來標誌。接著第3個機器周期是取指令操作數(d)。

當CPU進行計算有效地址時,外部總線是空閑的。最後將CPU寄存器(g)的內容寫.入由計算得出的有效地址對應的存貯器單元中。

2.2.5RESET時序

64180的硬件複位(RESET)時序。如果RESET引腳的低電平持續時間等於或大於六個時鍾周期,所有正在進行的操作都會終止64180將從(邏輯和物理)地址00000H開始重新起動。

64180能夠協調對控製、地址和數據總線控製權的交換。由請求總線控製權的設備,使:64180的BUSREQ信號輸入變為低電平,在64180釋放總線後,把總線控製權交給申請總線控製權的設備,並以BUSACK輸出信號變為低電平來確認。

64180在每個機器周期結束,都可以釋放總線控製權。交換總線控製權周期是一個機器周期。這個機器周期至少由三個時鍾周期組成(如果有插入等待狀態,則多於三個時鍾周期),像取操作碼、讀/寫存貯器和讀/寫I/O周期那樣。

當總線控製權被釋放後,地址總線(A0—A18)、數據總線(D0—D7)和控製總線(MREQ、IORQ、RD和WR)等信號線處於髙阻狀態。

注意,當64180釋放總線控製後,CPU不再對動態RAM進行刷新操作。所以,如果總線釋放較長時間,必須由取得總線控製權的設備,提供對動態RAM的刷新操作。

說明在一個讀存貯器周期期間,BUSREQVBUSACK在總線控製權交換的時序,說明當進行64180的CPU內部操作時,有總線釋放請求、總線控製權交換的時序。對BUSREQ的采樣,是在T3(總線釋放狀態)之前的係統時鍾下降沿。如果在T之前的係統時鍾狀態的下降沿處,BUSREQ為有效的低電平,則總線釋放就在Tx開始執行。

2.3等待狀態發生器(WAITStateGenerator)

2.3.1等待狀態時序

為了能夠和慢速存貯器或慢速I/O設備聯接,64180采用插入等待狀態來延長總線周期等待狀態的插入,是根據外部輸入的WAIT信號和內部可編程狀態發生器的結合(邏輯或,)關係來決定。等待狀態可以在CPU執行周期或DMA傳送周期期間插入。

2.3.2WAIT輸入

當外部WAIT信號輸入線出現低電平時,在1\和1\之間插入等待狀態(T胃),以便延長總線周期在係統時鍾T2或T1的下降沿去采樣WAIT輸入信號。如果在T胃的下降沿采樣到WAIT輸入信號為低電平,就會在總線周期中再插入另一個Tw特別要指出的是,飛VAIT輸入階躍信號的建立時間和保持時間必須符合規定。可以利用係統時鍾的上升沿,來使外部的WAIT輸入信號的躍變與係統時鍾取得同步。

在等待狀態期間,64180不能對動態RAM進行刷新,所以設計具有自動刷新功能係統:時,必須考慮等待狀態的發生和持續時間對動態RAM刷新的影響。

和WAIT輸入信號一樣,利用64180芯片內的等待狀態發生器,等待狀態也能夠被編程插入等待狀態時序既適用於CPU執行周期,也適用於芯片內DMAC周期。

利用對DMA/VAIT控製寄存器(DCNTL)高4位的編程,能自動在存貯器周期或I/O周期中插入等待狀態。DCNTL的4—5位不同編碼,對應在I/O周期中插入的Tw狀態個數它的6—7位不同編碼,分別對應在存貯器周期中插入的狀態數。DCNTL的髙4位不同編碼,能自動在存貯器周期中或在I/O周期中插入Tw狀態,以及產生狀態的個數的關係分別在下麵詳細介紹。

在指定周期內插入的等待狀態個數,是1WAIT輸入信號請求的燉大狀3K數,或者是由芯片內的等待狀態發生器自動產生的最大等待狀態個數。

用於CPU和DMAC訪問外部I/O周期(和中斷響應周期),這兩位的不同編碼,能夠插入1-6個等待狀態如表2-4,插入的等待狀態數,取決於IWI1和IWIO的編碼值。

在RESET期間,MWI1、MWIO、IWI1和IWIO等4位都置為1,選擇最大的等待狀:態數(訪問存貯器為3,訪問I/O為4)。

還有一點要注意的是,在RESET期間,WAIT輸入信號不被接受。例如,當64180處於等待狀態,RESET信號被檢測到有效,在進行中的等待狀態將夭折,而轉為RESET狀態。也就是說,RESET信號比WAIT信號優先。