計算機組成原理 高速緩衝存儲器與輔助存儲器

1.1 概述

一、產生原因

  • 爲避免CPU空等的現象
  • CPU與主存(DRAM)的速度差異剪刀差越來越大
  • 依據程序局部性原理

二、Cache的工作原理

1、主存和緩存的編址

  • C<<M
  • 若把主存或者Cache,如果把主存或者Cache分成若干塊,則cpu給出內存的地址可分爲兩部分,一部分是塊內偏移地址,位數決定塊的大小,若一個塊包含16個字節,且內存編址單位是字節,則塊內地址部分就是4位,剩餘部分就是主存的塊的編號。
  • Cache也分爲塊內地址和緩存塊號兩部分

 

Cache的標記部分實際上標記了主存塊和Cache塊之間的對應關係,如果一個主存塊調入到Cache當中,可講主存塊號寫到標記當中。cpu要從cache中訪問這個數據,要先確定要訪問的塊號是不是已經被送到Cache當中,拿給出地址的主存塊號與標記進行比較,若正好相等,並且Cache是有效的,則這個塊裏面就保存了在內存裏的信息可以直接從Cache訪問數據,速度大大加快

2、命中與未命中

緩存共有C塊 主存共有M塊 主存中只有部分塊被放入了緩存當中

  • 命中      在cpu要訪問主存時,要訪問的塊已經放進了緩存當中,CPU可以從緩存中取到相應的數據和指令
  • 未命中   要訪問的塊沒有被放入緩存中,cpu只能從主存中獲取數據

若命中,主存和緩存塊之間就建立了對應關係,某一個主存塊裝入到了某一個緩存塊當中,這個對應關係就可以用標記進行表示,如果沒有調入那麼就沒有建立這種對應關係。在標記記錄當中記錄了與某緩存塊建立對應關係的主存塊號

3、命中率

  • CPU預訪問的信息在Cache的比率 命中率和Cashe的容量與塊長有關
  • 一般每塊可取4-8個字
  • 塊長取一個存取週期內從主存調出的信息長度
  • CRAY_1 16體交叉 塊長取16個存儲字
  • IBM 370/168 4體交叉 塊長取4個存儲字

4、主存系統的效率

效率e與命中率有關

e=\frac{t_{Cache}}{\overline{t}}   訪問Cache的時間/平均訪問時間

設Cache命中率爲h,訪問Cache的時間爲t_{c},訪問主存的時間爲t_{m},則e=\frac{t_{c}}{h\times t_{c}+(1-h)\times t_{m}}

三、Cache的基本結果

 四、Cache的讀寫操作

讀操作

寫操作 Cache和主存的一致性

1、寫直達法

  • 寫操作時數據集寫入Cache又寫入主存
  • 寫操作時間就是訪問主存的時間,Cache塊退出時,不需要對主存執行寫操作,更新策略比較容易實現

2、寫回法

  • 寫操作時只把數據寫入Cache而不寫回主存,當Cache數據唄替換出去時才寫回主存

五、Cache的改進

  1. 增加Cache的級數 
  2. 統一緩存和分立緩存

1.2 Cache-主存的地址映射

一、直接映射

主存當中任意一個給定的塊只能映射到指定的cache塊當中

拿Cache存儲體作爲一個尺子度量主存存儲體,將主存儲器劃分成若干個與cache存儲體相等的區,每個區當中包含字塊數與Cache相同,每個區中的字塊編號時可以從0開始,任何一個區的第0塊只能放到cache的第0塊。

如果cpu給出一個地址,我們分成三部分,區號、塊號、塊內偏移地址。要對比區號與標記是否相同,則爲命中

 

二、全相聯映射

Cache利用率變高,只要Cache中還有空閒字塊就可以調入,但是速度慢

三、組相聯映射

先把Cache分成塊,Cache塊被分成組。

主存儲器進行分區,每個區的大小與Cache的組數相同。每個區的字塊0可以被放入cache的第0組任意位置

1.3 替換算法

一、先進先出算法

二、近期最少使用算法

 

2.1 輔助存儲器

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章