1. 程式人生 > >緩存機制與局部性原理

緩存機制與局部性原理

緩存命中 存儲 讀寫 依賴 速度 網絡 表現 二維數組 文件

http://www.cnblogs.com/jqctop1/p/4714116.html

1. 局部性原理

局部性原理是指計算機在執行某個程序時,傾向於使用最近使用的數據。局部性原理有兩種表現形式:時間局部性和空間局部性。

時間局部性是指被引用過的存儲器位置很可能會被再次引用,例如:重復的引用一個變量時則表現出較好的時間局部性

空間局部性是指被引用過的存儲器位置附近的數據很可能將被引用;例如:遍歷二維數組時按行序訪問數據元素具有較好的空間局部性

2. 緩存與緩沖

緩沖通常在接收者和發送者速度差異較大的場合使用,例如:網絡緩沖區;

緩存通常用於補償不同存儲器之間的讀寫速度差異,例如:Cache;

緩存和緩沖一個重要的區別是:對於緩沖來說,接收者接下來想要使用的數據就在緩沖區中;而緩存的有效性是依賴於局部性的,即對於緩存來說,快速存儲器接下來想要使用的數據不一定就在緩沖存儲器中。

3. 緩存層次結構

技術分享

如圖所示,最上層的是寄存器,最下層的是遠程文件系統,從下到上,存儲器的速度更快,造價更貴因而容量更小。

上一層的存儲器保存著下一層存儲器中部分數據的拷貝,上一層即作為下一層的緩存;

當需要第k+1層的某個數據時,先在第k層中尋找,若找到,則稱為緩存命中,若沒找到,則稱為緩存不命中;

當緩存不命中時,需要從第k+1層拷貝需要的數據到第k層,這樣就可能會需要替換第k層中已經緩存的某些數據,需要替換時通常會有個替換策略來指導替換哪些數據;

緩存機制與局部性原理