計算機原理 4.11 高速緩沖存儲器例題選講


例1

 

假定主存和Cache之間采用直接映射方式,塊大小為16B。Cache數據區容量為64KB,主存地址為32位,按字節編址。要求

1)給出直接映射方式下主存地址划分

2)完成Cache訪問的硬件實現

3)計算Cache容量

解:

1)由題目條件知:

數據塊大小16B--------》塊內偏移地址4位

Cache數據區容量為64KB---------》64KB/16B=4096行Cache--------》index字段12位

Tag字段的位數為---------》32-12-4=16位(Tag)

2)

 

 3)計算Cache容量(假定Cache中除數據和標記外還包含一位有效位)

第一問的解答可知:Tag為16bit

由題目條件及Cache的工作原理知:

Cache每行數據存儲體容量為16*8=128bit

Cache每行的總存儲容量為:1+16+128=145bit

Cache總容量為4096 x 145=580Kbit

 

 

例2  設某機內容容量為16MB,Cache的容量16KB,每塊8個字,每個字32位,設計一個四路組相聯映射(即Cache內每組包含4個字塊)的Cache組織方式

1)求滿足組相聯映射的主存地址字段中各字段的位數

2)設Cache的初態為空,CPU從主存第0號單元開始連續訪問100個字(主存一次讀出一個字),重復此次序讀8次,求存儲訪問的命中率

3)若Cache的速度是主存速度的6倍,求存儲系統訪問加速比

解:

1)每塊8*32位=32B-----》塊內偏移地址5位

也可堆出Cache行數為16KB/32B=512行

Cache的組數為----》512/4=128組-----》index字段7位

Tag字段為:24-5-7=12位

數據字長總字數為24位呢?

因為內容容量為16MB,把它化為字節,就是16 x 1024 x 1024=224,所以數據字長為24位,一般都是默認按字節編址。

 

2)

 

 

 

主存100個單元分13塊,處於主存0組,而Cache有128組,故訪問主存前100號單元不發生頁面調度

初態為空,每塊第一次不命中,后7次訪問均命中

100號單元對應13塊,第一輪訪問13次不命中,后七輪訪問均命中

循環8次的總命中率為:

(100*8-13)/(8*100)=98.375%

3)設Cache的存取周期為t,則主存存取周期為6t

直接從內存讀取所有數據所需時間為:

T1=800*6t=4800t

通過Cache訪問800個數據的時間為:

T2=13*6t+(800-13)*t=865t

存儲系統訪問的加速比

S=T1/T2=(4800t/865t)=5.5

 

例3  局部性分析,以下程序A和B中,哪一個對數組A[2048][2048]引用的空間局部性更好?時間局部性呢?變量sum的空間局部性和時間局部性如何?

 

 

 

 程序段A:

數組訪問順序與存放順序一致,空間局部性好!

數組雖在循環體中,但每個元素只用一次,時間局部性差!

變量sum在循環體中,時間局部性好!

變量sum只有一個變量,空間局部性差!

 

程序段B:

數組訪問順序與存放順序不一致,空間局部性差!

數組雖在循環體中,但每個元素只用一次,時間局部性差!

變量sum在循環體中,時間局部性好!

變量sum只有一個變量,空間局部性差!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM