計算機系統原理:cache容量計算


Cache容量計算例題:

假定主存地址位數為32位,按字節編址,主存和cache之間采用4-路組相聯映射方式,主存塊大小為4個字,每字32位,采用直寫(Write Throght)方式和LRU替換策略,則能存放32K字數據的cache的總容量至少應有( )位。

得分/總分

A.

4672K

B.

1168K

C.

1184K

D.

4736K

正確答案:C

解析: C、cache共有32K字/4字=8K行,因為采用4-路組相聯,因而共有8K/4=2K組,組號占11位;每個主存塊為4字=4×32位=16B,故塊內地址占4位。因此,標志占32-11-4=17位。4路組相聯方式下,LRU替換算法需要每行有2位LRU位 (因為要表示0-3的數字吧);直寫(Write Throght)方式無需修改位(dirty bit)。因而cache總容量為8K×(1+17+2+4×32)=1184K位。

 

 

Cache 寫穿和寫回模式

CPU使用高速緩存(dcache)時,它對內存的的寫操作有兩種模式:寫穿(write-throuht)、寫回(write-back)。

寫穿(write-throuht)模式: 也叫直寫式

該模式下,CPU對主存寫數據時,不經過dcache直接寫到內存,此時對於寫的實現比較簡單,如果系統只用寫穿模式的話,dcache則變成了讀緩存了。

寫回(write-back)模式:

  1. 什么是寫回 
    CPU寫入數據時,不直接將數據寫入內存,而是寫入cache,當cache數據被替換出去時才寫回主存。 
    此時存在一個問題,並不是所有的cache中的數據都被修改過,因此沒必要把所有替換出去的數據都重新寫入主存。 
    為了表示哪些數據被修改過(dcache中是數據和主存中的數據是否不一致),cache中每一塊增加了一個記錄信息位,CPU修改過的cache時,設置此記錄信息位(此時數據塊為臟的(dirty), cache數據寫入到主存時清理此位(此時數據塊為干凈的(clean)。 
    有了次記錄信息位,數據從cache替換到主存時只替換臟的數據塊即可),
  2. 為什么有寫回模式 
    大家都是知道cache速度遠大於RAM(主存)。通過dcache吸收系統的寫操作,在必要的時候再統一寫入主存,從而減少頻繁的相對較慢的對主存的寫操作,這樣明顯能加速系統。同樣的思想在主存與磁盤中也存在。

 

cache容量計算總結:

有效位1位必存在。

如果是寫回法:多個1位臟位;如果是直寫法,不用多臟位;

在組相聯映射中,如果采用LRU替換,2路組相聯映射:有1位LRU位,4路組相聯映射,有2位LRU位

 

 

 


免責聲明!

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



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