存儲器的尋址
1. 線選法
簡單微機系統(tǒng)存儲容量不大,存儲器芯片數(shù)也不多,可用單根地址線作為片選信號,每個存儲芯片或每個I/O端口只用一根地址線選通。
2. 全譯碼片選法
將低位地址總線直接連至各芯片的地址線,余下高位地址總線全部參加譯碼,譯碼輸出作為各芯片片選信號。
3. 局部譯碼片選法
只對部分高位地址總線譯碼產(chǎn)生片選信號,剩余高位線或空或直接用做其他芯片片選信號。是介于全譯碼片選法和線選法間的尋址方法
芯片單元數(shù)和位數(shù)都不能滿足存儲器的要求,要在字、位兩個方向上擴展。如采用2114(1K×4位)組成2K×8位RAM,字、位都不能滿足存儲器要求,要進行字位同時擴展,如圖所示。
位擴展(數(shù)據(jù)空間擴展)
例1:假定使用8K×1位的RAM存儲器芯片,那么如何組成8K×8位的存儲器?
解:可采用圖3-5所示的位擴展法。也就是用8片1Mb的存儲芯片拼接而成。
存儲器的字數(shù)與存儲器芯片字數(shù)一致,所以不需加大字長。圖中,每一片RAM是8K×1,故其地址線為13條(A0-A12),可滿足整個存儲體容量的要求。每一片對應(yīng)于數(shù)據(jù)的1位(只有1條數(shù)據(jù)線),故只需將它們分別接到數(shù)據(jù)總線上的相應(yīng)位即可。在這種方式中,對片子沒有選片要求,就是說片子按已被選中來考慮。如果片子有選片輸入端(CS#),可將它們直接接地。在這種連接時,每一條地址總線接有8個負載,每一條數(shù)據(jù)線接有一個負載。
例2:用2114(1K×4位的SRAM)構(gòu)成1K×16位的存儲器,試畫出該存儲器的組成邏輯圖。
解:(1)分析2114及存儲器
2114:地址線為10位,數(shù)據(jù)線為4位(1K×4)
存儲器:地址線為10位,數(shù)據(jù)線為16位(1K×16)
所以,要進行位擴展。
?。?)所需2114芯片數(shù)目:
所以,用4片2114
(3)2114組成邏輯圖
四片2114地址線并聯(lián)后與地址總線相連(即四片2114具有相同的1K地址);四片2114數(shù)據(jù)線拼接為16位后與數(shù)據(jù)總線相連。
當(dāng)使用的存儲器芯片單元數(shù)目符合要求,但每單元的位數(shù)較少時,需要進行這種擴充。例如,使用4164(64K*1)擴充64KB存儲系統(tǒng),就需要進行位擴充。
連接示意圖如下所示:
如圖顯示的是將兩片64K*4芯片連接成64K*8的存儲系統(tǒng)。采用位擴充,其連接要點是:兩芯片的地址線分別并接在一起(即A0與A0并接,A1與A1并接,A15與A15并接等等),接至系統(tǒng)地址總線;兩芯片的數(shù)據(jù)線各自提供數(shù)據(jù)總線的一部分(此例為高4位和低4位),共同組成8位的數(shù)據(jù)總線。
字擴展(地址空間擴展)
如果每片的字數(shù)不夠,需用若干芯片組成總?cè)萘枯^大的存儲器,稱為字數(shù)擴展。為此將高地址譯碼產(chǎn)生的若干不同片選信號,按各芯片在存儲空間分配中所占的編址范圍,分送各芯片。低位地址線直接送往各芯片,以選擇片內(nèi)的某個單元。而各芯片的數(shù)據(jù)線,則按位并聯(lián)于數(shù)據(jù)總線。
例1:圖3-6示出用16K×8位的芯片采用字擴展法組成64K×8位的存儲器連接圖。
解:圖中4個芯片的數(shù)據(jù)端與數(shù)據(jù)總線D0-D7相連,地址總線低位地址A0-A13與各芯片的14位地址端相連,而兩位高位地址A14,A15經(jīng)譯碼器和4個片選端相連。
例2:用2114(1K×4位的SRAM)構(gòu)成4K×4位的存儲器,試畫出該存儲器的組成邏輯圖。
解:(1)分析2114及存儲器
2114:地址線為10位,數(shù)據(jù)線為4位(1K×4)
存儲器:地址線為12位,數(shù)據(jù)線為4位(4K×4)
所以,要進行字擴展。
?。?)所需2114芯片數(shù)目:
所以,用4片2114
002114(1K×4)
012114(1K×4)
102114(1K×4)
112114(1K×4)
?。?)2114組成邏輯圖(略)
存儲器所需的12根地址總線分兩部分:
低10根地址總線與每片2114的A0~A9直接相連,稱片內(nèi)地址線;高2根地址總線通過2/4譯碼器產(chǎn)生4個不同的片選信號,接各芯片的CS#端,稱片選地址線。
4根數(shù)據(jù)總線直接與每片2114的I/O1~I/O3直接相連。
當(dāng)使用的存儲器芯片位數(shù)符合要求,但單元數(shù)目較少時,需要進行這種擴充。例如,使用6264(8K*8)擴充64KB存儲系統(tǒng),就需要進行字擴充。
連接示意圖如下所示:
如圖顯示的是將兩片32K*8芯片連接成64K*8的存儲系統(tǒng)。采用字擴充,其連接要點是:兩芯片的低位地址線分別并接在一起,接至系統(tǒng)地址總線的低位;兩芯片的數(shù)據(jù)線分別并接在一起,接至系統(tǒng)數(shù)據(jù)總線;系統(tǒng)高位地址線,進行譯碼,譯碼的輸出分別接至兩芯片的片選端CS1,CS2。
字位同時擴展
在組織實際的主存儲器時,可能既有字擴展又有位擴展。一個存儲器的容量假定為M×N位,若使用l× k位的芯片(l《M, k《N),需要在字向和位向同時進行擴展。此時共需要(M/l)×(N/k)個存儲器芯片。
例1:設(shè)CPU有16根地址線,8根數(shù)據(jù)線,并用/MREQ作訪存控制信號,用/WR作讀寫控制信號(高為讀,低為寫)?,F(xiàn)有下列芯片:1K*4位RAM,4K*8位RAM,8K*8位RAM,2K*8位ROM,4K*8位ROM,8K*8位ROM及74LS138譯碼器和各種門電路,要求:
?、?主存空間分配: 6000H~67FFH為系統(tǒng)程序區(qū); 6800H~6BFFH為用戶程序區(qū)。
②合理選用上述存儲芯片,說明各選幾片?
?、墼敿毊嫵龃鎯π酒钠x邏輯圖。
解題過程板書
例2:設(shè) CPU 有 20 根地址線,8 根數(shù)據(jù)線。并用 IO/M 作訪存控制信號。RD 為讀命令,WR 為寫命令?,F(xiàn)有 2764 EPROM ( 8K × 8位 ), 外特性如下:
用 138 譯碼器及其他門電路(門電路自定)畫出 CPU和 2764 的連接圖。要求地址為 F0000H~FFFFFH , 并
寫出每片 2764 的地址范圍。
解題過程板書
例3:設(shè)CPU的地址總線16根(A15~A0,A0為低位),雙向數(shù)據(jù)總線8根(D7~D0),控制總線中與主存有關(guān)的信號有MREQ#(允許訪存,低電平有效),R/W#(高電平為讀命令,低電平為寫命令)。
主存地址空間分配如下:0-8191(13個1)為系統(tǒng)程序區(qū),由只讀存儲器組成;8192-32767(15個1)為用戶程序區(qū);最后(最大地址)2K地址空間為系統(tǒng)程序工作區(qū)。上述地址為十進制,按字節(jié)編址?,F(xiàn)有如下存儲器芯片:
EPROM:8K×8位
SRAM:16K×1位,2K×8位,4K×8位,8K×8位
請從上述芯片中選擇適當(dāng)?shù)男酒O(shè)計該計算機的主存儲器,畫出主存儲器邏輯框圖,注意畫出選片邏輯(可選用門電路及3-8譯碼器74LS138)與CPU的連接,說明選擇哪些存儲器芯片?選多少片?
解:解題過程板書
主存地址空間分布如下圖所示。
圖略。
擴展位需要增加位選,這個又有很多講究,要看你現(xiàn)在的片上可用的外部存儲地址有沒有用完,總得來說可以用譯碼芯片和不用譯碼芯片,又分為完全譯碼和不完全譯碼,字位擴展就麻煩了 首先是你的芯片輸出是多少位的,比如說3位的51的數(shù)據(jù)線有8位,如果你要多余8位可以用鎖存器,如果是很簡單的數(shù)據(jù),可以自己用命令訪問外部芯片,這樣比較麻煩,但是可以不用譯碼器,但是要求對外部存儲芯片的工作原理有了解
評論
查看更多