(2009)
14.某計算機的Cache共有16塊,采用2路組相聯映射方式(即每組2塊)。每個主存塊大小為32字節,按字節編制。主存129號單元所在主存塊應裝入到的Cache組號是
A.0 B. 2 C. 4 D.6
答案:C
考點:Cache組相聯映射方式
主存按字節變址,第129號單元代表第129個字節。主存129單元,所在的塊號為129/32=4(從0開始編號);
由於Cache共有16塊,采用2路組相聯,因此共有8組,0,1,2,…,7。
主存的某一字塊按模8映像到Cache某組的任一字塊中,即主存的第0,8,16…字塊可以映像到Cache第0組2個字塊的任一字塊中,而129號單元是位於第4塊主存塊中,因此將映射到Cache第4組2個字塊的任一字塊中。
21.假設某計算機的存儲系統由 Cache 和主存組成,某程序執行過程中訪存 1000 次,其中訪問 Cache 缺失(未命中)50 次,則 Cache 的命中率是
A 5% B.9.5%
C. 50% D.95%
答案:D
考點:Cache命中率的計算
17.下列命令組合情況,一次訪存過程中,不可能發生的是( )
A.TLB未命中,Cache未命中,Page未命中
B.TLB未命中,Cache命中,Page命中
C.TLB命中,Cache未命中,Page命中
D.TLB命中,Cache命中,Page未命中
答案:D
考點:TLB,Cache,Page的含義。
TLB即為快表,快表只是慢表(Page)的小小副本,因此TLB命中,必然Page也命中,而當Page命中,TLB則未必命中,故D不可能發生;而Cache的命中與否與TLB、Page的命中與否並無必然聯系。
(2012)
17.假設某計算機按字編址,Cache 有 4 個行,Cache 和主存之間交換的塊為 1 個字。若 Cache 的內容初始為空,采用 2 路組相聯映射方式和 LRU 替換算法。當訪問的主存地址依次為 0,4,8,2,0,6,8,6,4,8 時,命中 Cache 的次數是
A. 1 B. 2 C. 3 D. 4
答案:C
4行表示有4個組,每塊有一個字,每組有兩塊。

在組相聯映像中,組間是直接映像,組內字塊為全相聯映像
命中后的字塊就是被使用了的字塊了
(2013)
16.某主存地址空間大小為 256 MB,按字節編址。虛擬地址空間大小為 4 GB,采用頁式管理,頁面大小為 4KB,TLB(快表)采用全相聯映射,有 4 個頁表項,內容如下表所示。則對虛擬地址 03FF F180H 進行虛實地址變換的結果是
A. 015 3180H B. 003 5180H C. TLB 缺失 D. 缺頁

答案:A
虛地址有32位(4GB=2^32B),頁面大小為 4KB(2^12B),那么虛頁號有20位。頁內地址有32-20=12位。
實地址有28位(256MB=2^28B),實地址由頁框號和頁內地址組成,其頁內地址與虛地址的頁內地址相同都為12位不變,則頁框號有16位。
虛擬地址為03FF F180H,其中頁號為03FFFH,頁內地址為180H,根據題目中給出的頁表項可知頁標記為03FFFH所對應的頁框號為0153H,頁框號與頁內地址之和即為物理地址015 3180 H。
若有效位為0,那么應該去選C. TLB 缺失。
(2014)
16. 采用指令Cache與數據Cache分離的主要目的是
A 減低Cache的缺失損失
B 提高Cache的命中率
C 減低CPU平均訪問時間
D 減少指令流水線資源沖突
答案:D
解析:Cache分為一級L1和二級L2。L1集成在CPU中,稱為片內Cache。在L1中還分數據Cache和指令Cache。分別用來存放數據和執行這些數據的指令,兩個Cache可以同時被CPU訪問,減少了爭用Cache所造成的沖突,提高了處理器效能。
(2011)
44.某存儲器按字節編址,虛擬(邏輯)地址空間大小為16MB,主存(物理)地址空間大小為1MB,頁面大小為4KB;Cache采用直接映射方式,共8行;主存與Cache之間交換的塊大小為 32B。
(1)虛擬地址共有幾位,哪幾位表示頁號?物理地址共有幾位,哪幾位表示頁框號(物理頁號)?
答:
頁面大小為4KB=2^12B,故頁內地址12位
虛擬地址空間大小為16MB=2^24B,故虛地址共24位,低12位為頁內地址,高24-12=12位為虛頁號。
主存地址空間大小為1MB=2^20B,故實地址共20位,低12位為頁內地址,高20-12=8位為頁框號(物理頁號)
(2)使用物理地址訪問Cache時,物理地址應划分成哪幾個字段?要求說明每個字段的位數及在物理地址中的位置。
答:
主存與 Cache之間交換的塊大小為32B=2^5B,故cache塊內地址5位
Cache共8行=2^3行,故Cache塊數占3位。
主存地址空間大小為1MB=220B,故主存地址共20位,
標記位數=20-5-3=12位
故物理地址分三個字段:高12位為標記tag,中間3位為Cache行號,最低5位為塊內地址。
(3)虛擬地址001C60H所在的頁面是否在主存中?若在主存中,則該虛擬地址對應的物理地址是什么?訪問該地址時是否 Cache 命中?要求說明理由。
答:虛地址001C60H的低12位C60H為頁內地址,高12位001H為虛頁號。查頁表可知,虛頁001H對應的有效位為1,故該頁已調入主存,主存頁號為04H,故主存地址為04C60H。
主存地址04C60H=000001001100 011 00000b的低5位00000b為行內地址,中間3位011b為Cache行號,高12位04CH為標記。查Cache標記可知,第3行的有效位為1,但標記為105H,故該地址Cache不命中。若為04CH則命中。

(4)假定為該機配一個4路組相聯的TLB,該TLB共可存放8個頁表項,若內容如圖所示,則此時虛擬地址024BACH所在的頁面是否在主存中?要求說明理由。

答:
4路組相聯的TLB,共可存放8個頁表項,故TLB共2組,每組可存放4個頁表項。
虛地址高12位為虛頁號,故慢表的表項數為2^12=4096,慢表地址12位。
TLB共2組,故慢表12位地址中的最低1位選擇TLB的組,也即慢表的4096個表項中,偶地址表項可映射到TLB的第0組中的四個表項中的任意一個,奇地址表項可映射到TLB的第1組中的四個表項中的任意一個。
慢表12位地址中的高11位為訪問TLB的標記。
虛擬地址024BACH的高12位024H=000000100100b為虛頁號,其中最低1位0選擇TLB第0組,高11位00000010010b=012H。查TLB表可知,第0組最后一項標記為012H,其有效 位為1,說明該虛頁已調入主存,其頁框號為1FH,故其實地址為1FBACH
