计算机组成原理题目题型总结)第三章:存储器
文章目錄
- 一:存儲器的分類、分級以及性能指標
- 二:SRAM和DRAM
- (1)選擇題
- (2)大題
- 三:主存儲器與CPU連接
- (1)選擇題
- (2)大題
- 四:多模塊存儲器
- (1)選擇題
- (2)大題
- 五:高速緩沖存儲器
- (1)選擇題
- 白中英課本習題
一:存儲器的分類、分級以及性能指標
- 此部分主要以選擇題為主,較為簡單
- 答案【B】
ACD是很明顯采用隨機存取方式。要注意CD-ROM它的訪問方式是順序訪問,但是并不屬于ROM
- 答案【D】
- 答案【C】
★★★
- 答案【B】
由于16MB=224^{24}24B,所以理應是224^{24}24,但是字長是32位,由于按照半字=2B尋址,所以單元數目就為223^{23}23個
- 答案【C】
RAM是肯定的,但是一定注意ROM。BIOS中有引導程序,負責將操作系統引導至內存,它是固化在主板上的,屬于ROM
- 答案【C】
每次讀出16bit=2B,所以數據傳輸率=2B/250×10?9s10^{-9}s10?9s=答案【C】
- 答案【B】
128MB/8B=16M
- 答案【B】
- 答案【D】
- 答案【D】
- 答案【A】
二:SRAM和DRAM
(1)選擇題
★★★
- 答案【A】
1024×8位,說明就是1024B,又因為210=1024,所以地址線需要10根
8位說明需要8根數據線
需要1根片選線
讀寫控制線2根
所以10+8+1+2=21根
- 答案【C】
注意32K=215
- 答案【B】
- 答案【B】
- 答案【B】
- 答案【B】
- 答案【C】
SRAM和DRAM的區別在于是否需要動態刷新
- 答案【D】
- 答案【B】
注意此題易選A,這里面選通線是兩根,用于送行地址和列地址
★★★
- 答案【A】
4M=222,由于DRAM采用地址線復用,所以只需要用11根,數據線為8根
- 答案【A】
- 答案【A】
閃存可讀可寫,依然屬于ROM,寫入時由于需要先擦除原來的數據,所以寫速度很慢
- 答案【A】
Cache屬于易失性存儲器(SRAM)
- 答案【C】
(2)大題
三:主存儲器與CPU連接
(1)選擇題
- 答案【D】
根據題意,ROM區大小為4KB,RAM區大小為60KB
那么ROM芯片數量為4K×1B2K×1B\frac{4K×1B}{2K×1B}2K×1B4K×1B?=2
那么RAM芯片數量為60K×1B4K×0.5B\frac{60K×1B}{4K×0.5B}4K×0.5B60K×1B?=30
.★★★
- 答案【D】
首先2個2K×4位芯片進行組成1個2K×8位的芯片(位擴展),最后4個2K×8位的芯片再組成1個8K×8位的芯片(字擴展)
對于位擴展來說它不影響地址,只有字擴展影響。
因此0B1F=0000 1011 0001 1111。所以加粗部分的兩位用于片選,有00、01、10、11四個選項,那么最小0B1F所在芯片的最小地址就是0000 1000 0000 000,即0800H
5FFFH-4000H+1=2000H=(8192)10_{10}10?=213^{13}13。所以ROM區大小為8KB,那么RAM區大小就是56KB。因此56K×1B8K×0.5B\frac{56K×1B}{8K×0.5B}8K×0.5B56K×1B?=14
- 答案【D】
主存地址空間大小為64MB,且64M=226^{26}26,所以是26位。需要注意實際的主存容量32MB不能代表MAR的位數
- 答案【D】
- 答案【A】
首先位擴展是肯定的。又因為它是以4B為編址單位的,所以不需要進行字擴展
- 答案【D】
注意這里是按照字尋址,一個字為2B=16位
- 答案【A】
- 答案【C】
- 答案【D】
首先進行位擴展,用4個512k×8位的芯片組成1個512k×32位的芯片。接著進行字擴展,由于224/219=25=322^{24}/2^{19}=2^{5}=32224/219=25=32。所以32×4=128片
- 答案【A】
解釋如下
- 地址總線表明了最大的尋址范圍,這里是16位。可以不必用完
- 實際尋址范圍則由具體芯片數目?
- 由于是4K×4位,且212=4K2^{12}=4K212=4K,說明地址線為12,數據線為4
- 2個4K×4位進行位擴展形成1個4k×8位的芯片,然后再進行4擴展。所以總共需要8個芯片,有4組
- 因此這4組至少需要兩位才能片選,,所以低12位為片內地址,相應的,A2A3A_{2}A_{3}A2?A3?進行片選
- 答案【D】
43FFH=4000H+1=400H=210=1K^{10}=1K10=1K,每個存儲單元為2B。由于1K×2B256×2B\frac{1K×2B}{256×2B}256×2B1K×2B?=4.所以選項C正確
- 答案【D】
CFFFFH-90000H=40000H=2182^{18}218=256K,因此256K×B16K×1B\frac{256K×B}{16K×1B}16K×1B256K×B?=16
- 答案【B】
由于23K=2152^{15}215,所以片內地址是15位,那么首地址就是0011 1000 0000 0000 0000=3800H,末地址就是3FFFFH
- 答案【D】
(2)大題
四:多模塊存儲器
(1)選擇題
- 答案【B】
- 答案【A】
- 答案【D】
只有大于等于才能保證第二次啟動某存儲體時,其存取周期能結束
- 答案【B】
在存取周期200ns內可以連續的訪問四個模塊
- 答案【B】
由于高位地址在單個存儲器是連續的,所以需要恢復,不能很慢的滿足局部性原理
- 答案【C】
double類型的變量占8B,64位,所以需要讀8次
(2)大題
五:高速緩沖存儲器
(1)選擇題
- 答案【B】
注意Cache中僅是主存數據的副本
- 答案【D】
★★★
- 答案【C】
由題意可知共分為8組,組號從0到7,每個主存塊的大小為32B。因此129號單元所處主存塊號為4,由于4%8=4,所以組號為4
- 答案【C】
所謂失效就是指寫不命中
★★★
- 答案【C】
一個塊有多個字(通常)組成,CPU與Cache或主存交換的單位是字,Cache與主存交換單位是塊,當CPU想要訪問的某個字不再Cache中時,會將該字所在主存塊調入Cache中
- 答案【A】
- 答案【C】
塊內地址由Cache容量決定,16KB=214^{14}14B,所以低14位要作為塊內地址
- 答案【D】
主存容量與Cache容量的比值可以確定塊號范圍,也即需要用12位,由于還需要一位有效位,所以是13位
★★★
- 答案【C】
128KB/16B=8K,所以有8K個Cache行,也即2132^{13}213個,由于8路組相連,所以是2102^{10}210組,所以主存塊號的中間10位用于標記組號,由于每塊16B,所以塊內地址需要用4位標記
★★★
- 答案【A】
1024KB除以16KB=262^{6}26,所以需要6位標記塊號。
每塊有8字,每字32bit,也即4B,所以每塊32B,因此需要用5位標記塊內地址
白中英課本習題
1.設有一個具有20位地址和32位字長的存儲器,問
(1)該存儲器能存儲多少字節的信息?
(2)如果存儲器由512K×8位的SRAM芯片組成,需要多少片
(3)需要多少位作芯片選擇
解答:
(1)地址有20bit,那么就有2202^{20}220個,每個存儲單元字長為32位=4B。所以可以存儲2222^{22}222B,約為4M
(2)
- 首先進行位擴展,每個4個SRAM芯片組成一個512K×32位的SRAM芯片,為一組
- 2202^{20}220=1024K,所以1024K×32bit512K×32bit\frac{1024K× 32bit}{512K×32bit}512K×32bit1024K×32bit?=2。共需要2組,也即需要8片
(3)位擴展是不影響地址的,只有字擴展需要,其實相當于“2”個芯片。所以只需一位即可
2.已知某64位主機采用半導體存儲器,其地址碼為26位,若使用4M×8位的DRAM芯片組成該機所允許的最大主存空間,并選用內存條結構形式,問
(1)若每個內存條為16M×64位,共需要多少內存條
(2)每個內存條共有多少DRAM芯片
(3)主存共需要多少DRAM芯片?
(4)CPU如何選擇各內存條
解答
(1)16M=242^{4}24M=2242^{24}224bit,因此共需要 226224\frac{2^{26}}{2^{24}}224226?=4根,所以共需要4根內存條
(2)由于16M×8B4M×1B\frac{16M×8B}{4M×1B}4M×1B16M×8B?=32,所以需要32片
(3)
-
共需要128片
-
這里共有4根內存條。每個內存條是16M×64位,所以需要24根地址線作為內地址,同時需要2位用于選擇內存條。通過2,4譯碼器對各內存條進行選擇
3.用16K×8位的DRAM芯片構成64K×32位存儲器
(1)畫出存儲器的組成邏輯圖
(2)設存儲器讀/寫周期為0.5us,CPU在1us內至少要訪問一次。試問采用何種刷新方式合理?兩次刷新的最大時間間隔是多少?對全部存儲單元刷新一遍所需的實際刷新時間多少?
解答
(1)由于64K×32位16K×8位\frac{64K×32位}{16K×8位}16K×8位64K×32位?=16,所以共需要16片DRAM芯片。其中每4片為一組進行位擴展,共有4組,然后這4組再進行字擴展。因此就有4個模塊,需要用2位進行片選,且16K=2142^{14}214,所以每個模塊的地址空間需要用14位。故地址總線16位,使用2,4譯碼器進行選擇
(2)假設DRAM內部結構排列形式為128×128,存儲周期為0.5us,電容最多堅持2ms,因此對應2ms/0.5us=4000個周期,因此有128行,刷新每一行都需要0.5us
-
如果采用集中刷新,刷新128行需要使用128個周期,也就是說至少存在64us的死時間,肯定不符合題意
-
如果采用分散刷新,則每1us只能訪存一次,也不行
-
所以采用異步。刷新間隔2ms/128=15.6us。因此每15.6us會產生一次刷新信號(可取15us)。所以實際刷新時間為15us×128=1.92ms
4.有一個1024K×32位的存儲器,由128K× 8位的DRAM芯片構成
(1)總共需要多少DRAM芯片
(2)設計此存儲體的組成框圖
(3)采用異步刷新方式,如果單元刷新間隔不超過8ms,則刷新信號周期多少?
解答:
(1)由于1024K×32位128K×8位\frac{1024K×32位}{128K×8位}128K×8位1024K×32位?=8×4=32,所以需要32片DRAM芯片
(2)首先每4片為一組進行位擴展,共計8組,然后這8組進行字擴展。需要使用3,8譯碼器。由于2172^{17}217=128K,因此每一組片內地址需要用17位,即A0?A16A_{0}-A_{16}A0??A16?,然后A17?A19A_{17}-A_{19}A17??A19?進行片選
(3)如果選擇一個行地址進行刷新,刷新地址為A0?A8A_{0}-A_{8}A0??A8?。因此這一行上的2048個存儲元同時刷新,也即在8ms內進行512周期。刷新方式采用
- 集中刷新:8ms內進行512次刷新操作
- 異步刷新:8ms512=15.5us\frac{8ms}{512}=15.5us5128ms?=15.5us
5.
解答:
由于1024K×32位256K×16位\frac{1024K×32位}{256K×16位}256K×16位1024K×32位?=4×2=8,需要使用8片。其中每兩片為一組進行位擴展,分為4組,然后進行字擴展。需要使用2,4譯碼器。由于218^{18}18=256k。所以A0?A17A_{0}-A_{17}A0??A17?作為片內地址,A18?A19A_{18}-A_{19}A18??A19?進行片選
6.用32K×8位的E2PROME^{2}PROME2PROM芯片組成128K×16位的只讀存儲器,問
(1)MAR多少位
(2)MDR多少位
(3)共需要多少E2PROME^{2}PROME2PROM芯片
(4)畫出組成框圖
解答
(1)由于128K=217128K=2^{17}128K=217,所以MAR17位
(2)MDR16位
(3)共需要8片
(4)
7
(1)畫出地址譯碼方案
(2)將ROM與RAM同CPU連接
解答
(1)ROM區域地址范圍為0000H~3FFFH,由于3FFFH-0000H+1=4000H=2142^{14}214,因此ROM區域大小為16KB。由題意,共需要40K×16位8K×8位=5×2\frac{40K×16位}{8K×8位}=5×28K×8位40K×16位?=5×2=10片。每兩片進行擴展,共有5組,使用3,8譯碼器
(2)
★★★
8.
解答
順序存儲器和交叉存儲器連續讀出8個字,其總位數為512bit
- 順序存儲器時間:t1t_{1}t1?=8×100ns=8×10?7s8×10^{-7}s8×10?7s
- 交叉存取器時間:t2t_{2}t2?=T+(m-1)τ\tauτ=100+7×50=4.5×10?7s4.5×10^{-7}s4.5×10?7s
帶寬分別為
- 順序存儲器:W1=5128×10?7=64×107bit/sW_{1}=\frac{512}{8×10^{-7}}=64×10^{7} bit/sW1?=8×10?7512?=64×107bit/s
- 交叉存儲器:W2=5124.5×10?7s=113.8×107bit/sW_{2}=\frac{512}{4.5×10^{-7}s}=113.8×10^{7} bit/sW2?=4.5×10?7s512?=113.8×107bit/s
9
解答:
- 命中率HHH=HcNc+Nm=24202420+80=0.968\frac{H_{c}}{N_{c}+N_{m}}=\frac{2420}{2420+80}=0.968Nc?+Nm?Hc??=2420+802420?=0.968
- cache-主存系統的平均訪問時間ta=htc+(1?h)tmt_{a}=ht_{c}+(1-h)t_{m}ta?=htc?+(1?h)tm?,其中(1?h)(1-h)(1?h)和tmt_{m}tm?分別表示缺失率和主存訪問時間,因此ta=0.968×40+0.032×240=46.4t_{a}=0.968×40+0.032×240=46.4ta?=0.968×40+0.032×240=46.4
- 效率為40/46.4=86.2%
10
解答
由ta=htc+(1?h)tmt_{a}=ht_{c}+(1-h)t_{m}ta?=htc?+(1?h)tm?可知,h=ta?tmtc?tm=50?20040?200=93.75h=\frac{t_{a}-t_{m}}{t_{c}-t_{m}}=\frac{50-200}{40-200}=93.75h=tc??tm?ta??tm??=40?20050?200?=93.75%
11
解答
不相等
12
解答
Ta=HT1+(1?H)T2T_{a}=HT_{1}+(1-H)T_{2}Ta?=HT1?+(1?H)T2?
13
解答
- Cache有64行,每組4行,需要4位確定組號
- 每塊有128個地址,所以需要7位確定塊內地址
- 由于主存有4K個塊,所以需要12位,其后4位正好作為組號標記
14
解答:
- 主存容量與Cache容量之比可以確定塊號范圍。所以比值是16,所以需要16位
- Cache容量64KB,塊大小為16B,所以塊的個數需要用12位標記(用16位的后12位)
- 字長為1B,說明一個塊有16個地址,那么塊內地址需要4位標記
總結
以上是生活随笔為你收集整理的计算机组成原理题目题型总结)第三章:存储器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 预防鼻炎以及空气污染对策
- 下一篇: testng提供的Assert类断言使用