ISA總線存儲器周期的注意事項
下面,我們將在利用擴展部分及存儲器空間的基礎上針對必須注意的信號進行解說。在說明中,我們假設將ISA總線的插口中靠近面板一側(較寬的一側)的稱為8位總線部分,將另一個插口稱為16位擴展部分。
1. 地址
地址總線以不同的信號名稱交疊存在,8位總線部分為SA0~SA19,16位擴展部分為LA17~LA23。PC/AT的思路是將主存儲器也擴展到ISA總線上,因此,只要認為可以在1M字節(jié)(100000h地址)以上的范圍內簡單配置以128K字節(jié)為單位的擴展存儲器卡、擁有到LA17為止的地址即可。
2. 存儲器讀/寫信號
存儲器的讀/寫信號在8位總線部分具有SMEMR及SMEMW信號,而在16位擴展部分具有MEMR及MEMW信號。
兩者雖然具有完全相同的意思,但有效的范圍不同。MEMR和MEMW在進行ISA總線的存儲器存取操作中必須有效,而SMEMR及SMEMW只在存取1M字節(jié)以內的范圍(000000h~0FFFFFh)時有效。
這是為了保持低位的兼容性。由于8位總線的存儲器空間為1M字節(jié),所以地址總線只有20根(SA0~SA19)。因此,單從8位總線的地址看,不能區(qū)分CPU連接了0地址、100000h地址還是200000h地址等。如果將原來的8位總線卡插人ISA總線,則當訪問1M字節(jié)以上的空間時,若SMEMR及SMEMW也有效,就是非常糟糕的事情了。因此,設計時就需要將其設計成只能在1M字節(jié)以內的空間訪問時有效。
曲于本次將SRAM主板放置在000000h~0DFFFFh地址,所以利用了SMEMR及SMEMW信號。
3. 刷新
由于曾有過在ISA總線上利用DRAM對主存儲器進行擴展的想法,所以刷新周期大約為15.6μs。該刷新操作與REFRESH信號一起有效,在地址低位的8位(SA0~SA7)上附上刷新地址,就可以形成存儲器讀取周期。
這類似于啞元的存儲器讀取周期,本次為了以防萬一,將其設為不應答。
4. 等待關系
本次不利用與等待相關的信號,僅做一些說明。
ISA總線還包括為了延長CPU總線周期的等待信號(IOCHRDY)以及縮短總線周期、提升速度的SRDY(有時也表示為ZWS及OWS)信號。
在目地端針對主機的要求不能立即應答的情況下,利用IO-CHRDY等待總線周期的結束,以低電平表示Not Ready,也就是等待的意思。由于借助ISA總線的上拉電阻通常將其設置為高電平,所以只要不做任何更改,它將不會處于等待狀態(tài),只是執(zhí)行普通的總線周期。
SRDY信號則相反,是能夠縮短總線周期的信號。ISA總線的情況下,16位存儲器存取操作(MEMCS16有效)雖然能夠在3個周期內完成,但為了能讓通常需要6個周期完成的8位存儲器存取操作縮短到3個周期,就可以利用SRDY信號。
5. 8位存儲器周期
ISA總線的8位存儲器存取周期如圖所示,并列了標準周期、利用了IOCHRDY信號的插人一個等待的示例以及利用了SRDY信號的不等待存取的操作示例。
圖 ISA總線的8位存儲器存取周期
由于SYSCLK通常為8MHz,所以一個周期為125ns?,F(xiàn)如今SRAM的存取時間在100ns以內的非常普通,所以可以說這是非常緩慢的總線周期。8位存儲器周期如果不采用等待信號,則可以在6個周期內完成存取操作。
BALE在高電平期間地址發(fā)生變化,地址(SA0~SA19)確定后,BALE變?yōu)榈碗娖?,指令(SMEMR/ SMEMW)有效后開始存取操作。
因為作為高位地址的LA17~LA23在BALE變?yōu)榈碗娖胶?,在?guī)格上是不定的,所以需要提前在BALE上鎖存譯碼結果,鎖存LA。事實上,曲于在主板上特意改變LA沒有任何意義,所以,LA并不是不定的,一般是與SA同樣保持輸出狀態(tài)。盡管如此,在這方面也需要加以注意。由于本次配置的地址在1M字節(jié)以內的范圍(0D0000h)內,不會利用到LA,因而不必注意此處。
在寫操作時,指令(SMEMW)有效之前盡早確定數(shù)據(jù),存儲器由于是在SMEMW的上升沿提取數(shù)據(jù)的,所以對于建立時間,可以說有足夠的富余時間。指令有效之后,主機與時鐘的上升同步監(jiān)視IO—CHRDY信號,如果IOCHRDY變?yōu)榈碗娖?,就插入等待信號?BR>
本次不是特別需要等待信號,因此只按照原來的默認時序進行。在結束第6個周期時指令無效。在進行讀操作時,以這樣的時序提取數(shù)據(jù)。
存儲器相關文章:存儲器原理
評論