-
緩衝存儲器
鎖定
- 中文名
- 緩衝存儲器
- 外文名
- cache
- 特 性
- 高速地向CPU提供指令和數據
- 功 能
- 主存的緩衝存儲器加快程序執行
緩衝存儲器簡介
緩衝存儲器工作原理
緩衝存儲器工作原理要求它儘量保存最新數據。當一個新的主存塊需要複製到Cache,而允許存放此塊的行位置都被其他主存塊佔滿時,就要產生替換。替換問題與Cache的組織方式緊密相關。對直接映射的Cache來説,因一個主存塊只有一個特定的行位置可存放,所以問題解決起來很簡單,只要把此特定位置上的原主存塊換出Cache即可。對全相聯和組聯Cache來説,就要從允許存放新主存塊的若干特定行中選取一行換出。
[1]
緩衝存儲器算法
如何選取就涉及到替換策略,又稱替換算法。通過硬件實現的常用算法主要有以下3種。
最不經常使用(LFU)算法
LFU算法認為應將一段時間內被訪問次數最少的那行數據換出。為此,每行設置一個計數器。新行建立後從0開始計數,每訪問一次,被訪問行的計數器增1。當需要替換時,對這些特定行的計數值進行比較,將計數值最小的行換出,同時將這些特定行的計數器都清零。這種算法將計數週期限定在對這些特定行兩次替換之間的間隔內,因而不能嚴格反映近期訪問情況。
[1]
近期最少使用(LRU)算法
LRU算法將近期內長時間未被訪問過的行換出。為此,每行也設置一個計數器,但它們是Cache每命中一次,命中行計數器清零,其他各行計數器增1。當需要替換時,比較各特定行的計數值,將計數值最大的行換出。這種算法保護了剛複製到Cache中的新數據行,符合Cache工作原理,因而使Cache有較高的命中率。
對2路級聯的Cache來説,LRU算法的硬件實現可以簡化。因為一個主存塊只能在一個特定組的兩行中做存放選擇,二選一完全不需要計數器,只需一個二進制位即可。例如,規定一組中的A行復制進新數據可將此位置“1”,B行復制進新數據可將此位置“0”。當需要置換時,只需檢查此二進制的位狀態即可:為0換出A行,為1換出B行,實現了保護新行的原則。奔騰CPU內的數據Cache是一個2路級聯結構,就採用這種簡潔的LRU替換算法。
[1]
隨機替換
隨機替換策略實際上是不要什麼算法,從特定的行位置中隨機地選取一行換出即可。這種策略在硬件上容易實現,且速度也比前兩種策略快。缺點是隨意換出的數據很可能馬上又要使用,從而降低命中率和Cache工作效率。但這個缺陷隨Cache容量的增大而減小。研究表明,隨機替換策略的功效僅稍遜於前兩種策略。
[1]
緩衝存儲器應用
緩衝存儲器在電腦上應用的比較多。每一個硬盤上面都含有一個緩衝存儲器,這個存儲器主要可以將硬盤內常使用的數據快取起來,以加速系統的讀取效能。 通常這個緩衝存儲器越大越好,因為緩衝存儲器的速度要比數據從硬盤中被找出來的速度快! 目前主流產品可達16MB 左右內存大小。
- 參考資料
-
- 1. 主存和輔存 .51cto網[引用日期2012-10-12]
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:11次歷史版本
- 最近更新: 蔡文姬本姬