一.單選題(共5題,55.5分)
1
假設Cache容量為16KB,每個字塊16個字,每個字16位,則___
-
A、
此Cache可容納512個字塊
-
B、
此Cache地址有10位
-
C、
此Cache可容納1K個字塊
-
D、
此Cache地址有6位
正確答案: A 我的答案:A
2的8次方,2的4次方,2的10次方,2的3次方
2的9次方=512個字塊,
2的13次方,地址有13位
2
在Cache的地址映射中,若主存中的任意一塊均可映射到Cache內的任意一快的位置上,則這種方法稱為() .
-
A、
全相聯映射
-
B、
直接映射
-
C、
組相聯映射
-
D、
混合映射
正確答案: A 我的答案:A
3
Cache主要由Cache存儲體,地址映射變換機構,Cache替換機構幾大模塊組成。其中,地址映射變換機構的作用是
-
A、
按一定的替換算法來確定應從Cache內移出哪個塊返回主存,把新的主存塊調入Cache
-
B、
以塊為單位存儲與主存交換的信息
-
C、
將CPU送來的主存地址轉換為Cache地址
-
D、
將Cache地址轉換為主存地址送到地址總線
正確答案: C 我的答案:C
4
Cache的讀操作的過程可用如下流程圖來描述。當CPU發出主存地址后,首先判斷該存儲字是否在Cache中。若命中,直接訪問Cache,將該字送至CPU;若未命中,則執行操作
-
A、
Cache向CPU發出中斷,通知其讀操作不合法
-
B、
只訪問主存取出信息送CPU
-
C、
一方面要訪問主存,將該字傳送給CPU,與此同時,要將該字所在的主存塊裝入Cache,如果此時Cache已滿,就要執行替換算法,騰出空位
-
D、
將該字所在的主存裝入Cache(由Cache是否已滿,決定是否執行替換算法騰出空位),然后再次訪問Cache存取出信息送CPU
正確答案: C 我的答案:C
5
某計算機字長32位,存儲容量是16MB ,若按雙字編址,它的尋址范圍是:
-
A、
0~256K-1
-
B、
0~512K-1
-
C、
0-1M-1
-
D、
0~2M-1
正確答案: D 我的答案:D
雙字節編址,字為64位,存儲容量為16x2的20次方x8=2的21次方x16x4,地址寄存器位數為21,尋址范圍為0~2的21次方bit -1,0~2M-1
二.簡答題(共2題,22.2分)
1
一個組相聯映象Cache由64個存儲塊構成,每組包含4個存儲塊。主存包含4096個存儲塊,每塊由128字組成。訪存地址為字地址。
(1) 求一個主存地址有多少位?一個cache地址有多少位?
(2) 計算主存地址格式中,區號、組號、塊號和塊內地址字段的位數。
Cache的組數為64/4=16組,主存每區中的塊數=16,主存區數=4096/16=256區,主存地址的組成為8位區號+4位的區內塊號+7位的塊內地址
Cache地址的組成為4位組號+2位每組中塊號+7位塊內地址
正確答案:
Cache組數為64/4=16組主存每區內的塊數=Cache的組數,則主存的區數為4096/16=256區,每區內有16個存儲塊那么主存地址的組成為8位區號(256區)+4位區內塊號(16個存儲塊)+7位塊內地址(一塊128字,按字編址)Cache地址為4位組號(16組)+2位組內塊號(每組4快)+7位塊內地址(一共128字,按字編址)

我的答案:

批語
2
一台計算機的主存容量為1MB,字長為32位,cache的容量為512字。確定下列情況下的地址格式。
(1) 直接映象的cache,塊長為1字
Cache塊長為1字,Cache的容量為512字=512x32bit=512x4B,區號=1MB/ 512x4B=2的9次方,塊號=512字/1字=2的9次方,主存容量為1MB=2的20次方個字節地址,20-9-9=2位表示塊內1個字(4字節)的字節地址
主存 區號 塊號 塊內字節地址
9 9 2
Cache 塊號 塊內字節地址
9 2
(2) 直接映象的cache,塊長為4字
Cache塊長為4字,Cache的容量為512字=512x32bit=512x4B,區號=1MB/ 512x4B=2的9次方,塊號=512字/4字=2的7次方,主存容量為1MB=2的20次方個字節地址,20-9-7=4位表示塊內4個字(4字節)的字節地址(問過老師)
老師:估計寫錯了,是塊內四個字。
主存 區號 塊號 塊內字節地址
9 7 4
Cache 塊號 塊內字節地址
7 4
(3) 組相聯映象的cache,塊長為1字,組內8塊
Cache的容量為512字=512x32bit=512x4B,組數=512字/8=2的9/2的3=2的6,塊號2的3,區號 =1MB / 64*4B =2^12
正確答案:
(1) Cache塊長為1字 主存為1MB, Cache的容量為512字= 512 ×4 B ,所以 區號 =1MB / 512×4B = 512=2^9 ,區號用9位表示; Cache的塊長為1字 , 塊號 = 512字/ 1字 = 512=2^9 ,塊號用9位表示,主存容量為1MB表示有1M=2^20 個字節地址,20-9-9=2位用來表示塊內1個字(4字節)的字節地址。因此 主存的地址格式 區號 塊號 塊內字節地址 9位 9位 2位 Cache的地址格式 塊號 塊內字節地址 9位 2位(2) Cache塊長為4字 主存為1MB, Cache的容量為512字= 512 ×4 B ,所以 區號 =1MB / 512×4B = 512=2^9 ,區號用9位表示; Cache的塊長為4字 , 塊號 = 512字 / 4字 =128 =2^7, 塊號用7位表示。 主存容量為1MB表示有1M=2^20 個字節地址,20-9-7=4位用來表示塊內8個字(4字節)的字節地址。因此 主存的地址格式 區號 塊號 塊內字節地址 9位 7位 4位 Cache的地址格式 塊號 塊內字節地址 7位 4位 (3)組相聯映像的Cache,塊長1字,組內8塊 Cache的容量為512字,塊長1字,每組8塊,每組8字 Cache的組數為512字/8字=64組=2^6 ,組號用6位表示 ,一組8塊=2^3 ,塊號用3位表示 ; 主存為1MB,所以區號 =1MB / 64*4B =2^12 ,區號用12位表示;主存容量為1MB表示有1M=2^20 個字節地址,20—12-6=2位用來表示塊內1個字(4字節)的字節地址。因此 主存的地址格式 區號 組地址 塊內字節地址 12位 6位 2位 Cache的地址格式 組號 組內塊號 塊內字節地址 6位 3位 2位
我的答案:
(1)Cache容量為512字=51232=5124B,區號=1MB/5124B=2的9次方,區號:9位塊號:512字/1字=512=2的9次方,塊號:9位塊內字節地址:32位/1字節=32位/8位=2位,塊內字節地址:2位 (2)Cache容量為512字=51232=5124B,區號=1MB/5124B=2的9次方,區號:9位塊號:512字/4字=128=2的7次方,塊號:7位塊內字節地址:1MB=2的20次方,20-9-7=4,塊內字節地址:4位
Cache的容量為512字 512字/4字=128塊=2^7塊
1組=4塊=2^2塊
主存地址格式:標記 11
組號 5
塊內地址 2
Cache地址格式:
組號 5
塊內地址 2
(3)
批語
三.計算題(共2題,22.3分)
1
假設某計算機的cache采用直接映象,容量為4096字.若CPU依次從主存單元0,1,…,99和4096,4097,…,4195交替取指令,循環執行10次,試求此時的命中率為多少?為什么?
正確答案:
此時CPU的命中率為0.
我的答案:
0,出現塊沖突
批語
命中率為0,因為直接映像是主存根據cache的容量分配區內塊數,導致每個區內的單元數為4096個,而交替取指令使得主存每次交替訪問的位置都在被上一次訪問所占據,例如兩個區的第0個單元訪問相同位置,每次都會存入cache,然后下一次讀入的數據在cache中無法命中。
2
某計算機系統的內存由Cache和主存構成,Cache的存取周期為45ns,主存的存取周期為200ns.已知在一段給定的時間內,CPU共訪問內存4500次,其中340次訪問主存,求:
(1)Cache的命中率是多少
Cache的命中率=(4500-340)/4500=0.92
(2)CPU訪問內存的平均訪問時間是多少
0.92x45ns+(1-0.92)x200ns=57.4ns
(3)Cache-主存系統的效率是多少
Cache-主存系統的效率=45/57.4ns
正確答案:
解:⑴ 命中率H=(4500-340)/ 4500=0.92.⑵ CPU訪存的平均時間T=0.92×45+(1-0.92)×200=57.4ns⑶ cache-主存系統的效率e=45/57.4=78℅
我的答案:
(1)命中率:(4500-340)/ 4500=92%(2)CPU訪存的平均時間:0.92×45+(1-0.92)×200=57.4ns(3)Cache-主存系統的效率:45/57.4=78%
