3.4.1 16位微機系統中內存儲器芯片的奇偶分體
在16位微機系統中,CPU除了可以對字節尋址外;還必須能進行整字(16字)的讀寫,因此要求存儲器系統組織的設計能保證一次能訪問一個整字,但也能允許一次只訪問一個字節。
以8086系統為例,8086CPU有20條地址線,可直接尋址1M字節的內存儲器地址空間,由于8086CPU的數據總線是16位的,而這1M字節的存儲器地址空間是按字節順序排列的,為了能滿足一次訪問一個整字又能訪問一個字節的要求,8086系統中1M字節的存儲器地址空間實際上分成兩個512K字節的存儲體——“偶存儲體”和“奇存儲體”,偶存儲體同8086的低8位數據總線D7~D0相連接,奇存儲體同8086的高8位數據總線D15~D8相連接;地址總線的A19~A1同兩個存儲體中的地址線A18~A0相連接,最低位地址線A0和8086的“總線高允許”信號BHE用來選擇存儲體;如圖3-23所示(注意,圖中將雙重總線分開表示)。AO和BHE對存儲體選擇的編碼表見表3-6。
3.4.2 8088/8086的存儲器訪問操作
1.字節訪問和字訪問
8088是準16位微處理器,其外部數據總線為8位,內部寄存器和運算器為16位,一個總線周期只能訪問一個字節,要進行字操作,必須用兩個總線周期,第一個總線周期訪問低位字節,第二個總線周期訪問高位字節。
8086是16位微處理器,其外部數據總線為16位,每個存儲周期可以訪問存儲器中的8位或16位信息。當8086訪問一個整字(1位)變量時,該變量的地址為偶地址(即字變量的低字節在偶地址單元,高字節在奇地址單元),則8086將用一個總線周期訪問該字變量;如果該字變量的地址為奇地址(即字變量的低字節在奇地址單元,高字節在偶地址單元),則8086要用兩個連續的總線周期才能訪問該字變量,每個周期訪問一個字節。
2.“對準的”字與“未對準的”字
從表3-6可見,8086CPU能同時訪問奇存儲體和偶存儲體中的一個字節,以組成一個存儲字,要訪問的16位字的低8位字節存放在偶存儲體中,稱為“對準的”字(ligned,又稱為“對界的”),這是一種規則的存放字。對于“對準的”字,8086CPU只要一個總線周期就能完成對該字的訪問;當要訪問的16位字的低8位字節存放在奇存儲體中,稱該字為“未對準的”字(unaligned,又稱為“未對界的”),這是一種非規則的存放字。必須用兩個總線周期才能訪問該字。下面分析一個“未對準的”字的寫入過程。
在第一個總線周期中,如同對奇存儲體寫入字節一樣,送出奇地址(AO=1),并發出BHE=L信號,然后由8086CPU把該字的低8位傳送到數據總線的高8位(注意,發生了字節交換),寫入存儲器的奇存儲體(低8位字節);然后,8086CPU又發出一個由該奇地址加1的偶地址,此時AO=0,BHE=H。8086CPU把該字的高8位傳送到數據總線的低8位(注意,又發生了字節交換),寫入存儲器的偶地址區(偶存儲體)。這樣,經過兩次存儲器訪問周期,把一個“未對準的”字寫入存儲器的兩個存儲體中。注意,上述操作對程序員而言是完全透明的。這一寫入過程如圖3-24所示。
3.4.3 16位系統中存儲器接口舉例
有一8086CPU與半導體存儲器芯片的接口如圖3-25所示,其中存儲器芯片#1~#8為SRAM芯片6116;#9~#16為EPROM芯片2732。試分析該接口電路的工作特性計算RAM區和ROM區的地址范圍(內存為字節編址)。
解題分析:
1.8086CPU是16位微處理部.內存為字節編址、一個16位字存放在兩個以字節編址的內存單元中,存儲區必須奇偶分體,如圖中RAM區中#1、#3、#5和#7四個RAM芯片構成“偶存儲體”,#2、#4、#6和#8四個RAM芯片構成“奇存儲體”。因為前四片的數據線接D0~D7,后四片的數據線接D8~D15。同理ROM區中#9、#11.#13和#15構成“偶存儲體”,#10、#12、#14和#16構成“奇存儲體”,地址譯碼時必須考慮奇偶分體的問題。
2.8086CPU的21條雙重總線BHE/S7,AD0~AD15以及A16/S3~A19/S6必須經過鎖存器鎖存,本題采用3片74LS373。74LS373有兩個控制端G和OE,G為鎖存允許信號,接8086CPU的ALE(地址鎖存允許),ALE為高電平有效信號。在1T時刻,ALE為高電平,將21條雙重總線中的EHE,A0~A19打入74LS373,T1結束時;ALE下降沿將BHE和AO~A19鎖存,保持到下一總線周期的T1時刻。這20條地址信號和BHE送到地址譯碼器74LS138(#17、#18及#19)和各存儲器芯片。OE接地,保證74LS373輸出有效信息。
3.8086CPU的16條地址數據雙重總線AD0~AD15經過數據收發器74LS245(2片)送到各存儲器芯片。74LS245也有兩個控制端G和DIR,G為使能端,低電平有效,由8086的DEN(數據允許)信號控制;DIR為方向端,DIR為低電平時,傳送方向為B到A;DIR為高電平時,傳送方向為A到B,由8086的DT/R(數據發送/接收)控制,當DT/R為低電平時,8086CPU接收數據,而對74LS245而言,由B到A;當DT/R為高電平時,8086CPU發送數據,而對74LS245而言,由A到B。
4.SRAM的譯碼電路由譯碼器 74LS138(#17和#18)構成,#17芯片負責SRAM的偶存儲體#1、#3、#5、#7的片選譯碼,由于SRAM6116的存儲容量為2K*8位,有11條地址線AO~A1O,因為考慮16位讀寫,存儲器芯片的A0~A10同CPU經鎖存后的地址線A1~A11連接,CPU的地址線A12~A14同譯碼器 74LS138的地址輸入端A、B、C連接,譯碼器芯片#17的三個使能控制端為G1、G2a、G2b,G1高電平有效,同A15“與”M/IO(存儲器/IO選擇)連接,當A15為低電平,M/IO為高電平,允許譯碼器工作;G2a。為低電平有效,同與門2的輸出相連,與門2的輸入為8086CPU的WR和RD,由與門的功能可見,當WR或RD中任一個為低電平時與門2輸出即為低電平,因此只要8086CPU有讀或寫操作時,G2a為有效低電平,允許譯碼器工作;G2b也為低電平有效,同地址線A0相連,也就是說當8086CPU執行偶地址讀寫時,G2b為有效低電平,允許譯碼器工作。上述G1、G2a、G2b的有效電平必須同時滿足,譯碼器才能工作。因此,對74LS138#17芯片而言,只有當8086CPU執行偶地址的存儲器讀寫時,譯碼器才能正常譯碼,至于究竟選中#1、#3、#5和#7的哪一片,則由74LS138(#17)的地址輸入端A、B、C(即A12、A13、A14)決定。
#18芯片負責SRAM的奇存儲體#2、#4、#6和#8的片選譯碼,除G2b同BHE(總線高允許,低電平有效)連接外,其余同#17芯片。與#17芯片相仿,#18芯片的正常譯碼條件是8086CPU執行奇地址的數據讀寫。
5.SRAM芯片的地址范圍
由圖3-25可見,對CPU地址而言,SRAM芯片的片外地址譯碼為A15、A14、A13、A12,A15必須為0,則,#l,#2芯片的片外地址A14A13A12=000,#3、#4為001,#5、#6為010,#7、#8為011。其中#1、#3、#5、#7被選中的條件為A0=0,而#2、#4、#6、#8被選中的條件為BHE=0,即A0=l。則可得各芯片地址范圍為:
#1 00000H~00FFFH中的偶地址區;
#2 00000H~00FFFH中的奇地址區;
#3 010OOH~01FFFH中的偶地址區;
#4 01000H~01FFFH中的奇地址區;
#5 02000H~02FFFH中的偶地址區;
#6 02000H~02FFFH中的奇地址區;
#7 03000H~03FFFH中的偶地址區;
#8 03000H~03FFFH中的奇地址區;
整個RAM區的地址范圍為00000H~03FFFH,共占16KB。
注意:A19~A16未參與譯碼,為部分譯碼,有地址重疊。這里將未譯碼的A19~A16假定
為全“0”。
6.EPROM的譯碼電路由譯碼器74LS138(#19)構成,與SRAM譯碼的區別在于:
(1)EPROM采用2732。為4KB*8位容量,片內有12條地址線A0~A11,其中A0~A10同CPU總線中A1~A11相連,這同SRAM6ll6一樣,片內另一條地址線A11則同CPU總線中的A12相連,構成芯片內12位地址譯碼。而74LS138(#19)芯片的三個地址輸入端接A13~A15。
(2)74LS138(#19)的G1端接M/IO,同SRAM譯碼一樣,G2a與RD相連,說明2732在讀操作時選通。G2b同與非門1的輸出相連,而與非門1的輸入為A16~A19,當A16~A19為全“l”時,G2b為低電平有效,#19能正常譯碼,說明在EPROM譯碼中A19~13這7位地址線參加了片外譯碼。
(3)74LS138(#19)的譯碼輸出Y4接#16、#15,T3接#14、#13,Y2接#12、#11,Y1接#10.#9,這4個輸出端同2732各芯片的OE(輸出允許端)相連,其中#15、#13、#11和#9這4片的片選端CE同地址A0相連,只有當CPU地址A0=“0”時,這4片EPROM才能進行讀操作,此即偶存儲體的讀操作;而#16、#14、#12和#10這4片的CE端同CPU的BHE相連,只有當高8位數據總線工作時(即AO=“1”)時,這4片EPROM才能進行讀操作,此即奇存儲體的讀操作。
采用與RAM區相似方法,可得2732各芯片的地址范圍為:
#9 FE000H~FFFFFH中的偶地址區;
#10 FE000H~FFFFFH中的奇地址區;
#11 FC000H~FDFFFH中的偶地址區;
#12 FC000H~FDFFFH中的奇地址區;
#13 FB000H~FCFFFH中的偶地址區;
#14 FB000H~FCFFFH中的奇地址區;
#15 FA000H~FBFFFH中的偶地址區;
#16 FA000H~FBFFFH中的奇地址區;
整個ROM區的地址范圍為F8000H~FFFFFH,共占32KB。
正確解答本題必須熟練掌握8086、74LS373、74LS245、74LS138、6116以及2732各芯片的功能、引腳信號,并且對16位系統中的存儲器的奇偶分體要有深刻的理解。
聲明:
(一)由于考試政策等各方面情況的不斷調整與變化,本網站所提供的考試信息僅供參考,請以權威部門公布的正式信息為準。
(二)本網站在文章內容來源出處標注為其他平臺的稿件均為轉載稿,免費轉載出于非商業性學習目的,版權歸原作者所有。如您對內容、版權等問題存在異議請與本站聯系,我們會及時進行處理解決。
相關推薦
2022年浙江自考心理學復習重點(七)
08-062023年10月浙江自考傳播學概論復習資料:反饋
08-292023年10月浙江自考《英語(一)》復習筆記(27)
06-292022年浙江自考市政學復習筆記第四章
09-142022年浙江《組織與管理概論》復習資料
09-222023年4月浙江自考環境心理學復習重點三
11-182023年4月浙江自考知識產權法復習資料:馳名商標的特別保護
04-142023年10月浙江自考《公文寫作與處理》復習資料(9)
08-112023年4月浙江自考“古代漢語”聽課筆記(六)
04-062023年4月浙江自考英美文學選讀復習筆記:Jane Austen
12-09