緩存機制與局部性原理
阿新 • • 發佈:2017-05-20
緩存命中 存儲 讀寫 依賴 速度 網絡 表現 二維數組 文件
http://www.cnblogs.com/jqctop1/p/4714116.html
1. 局部性原理
局部性原理是指計算機在執行某個程序時,傾向於使用最近使用的數據。局部性原理有兩種表現形式:時間局部性和空間局部性。
時間局部性是指被引用過的存儲器位置很可能會被再次引用,例如:重復的引用一個變量時則表現出較好的時間局部性
空間局部性是指被引用過的存儲器位置附近的數據很可能將被引用;例如:遍歷二維數組時按行序訪問數據元素具有較好的空間局部性
2. 緩存與緩沖
緩沖通常在接收者和發送者速度差異較大的場合使用,例如:網絡緩沖區;
緩存通常用於補償不同存儲器之間的讀寫速度差異,例如:Cache;
緩存和緩沖一個重要的區別是:對於緩沖來說,接收者接下來想要使用的數據就在緩沖區中;而緩存的有效性是依賴於局部性的,即對於緩存來說,快速存儲器接下來想要使用的數據不一定就在緩沖存儲器中。
3. 緩存層次結構
如圖所示,最上層的是寄存器,最下層的是遠程文件系統,從下到上,存儲器的速度更快,造價更貴因而容量更小。
上一層的存儲器保存著下一層存儲器中部分數據的拷貝,上一層即作為下一層的緩存;
當需要第k+1層的某個數據時,先在第k層中尋找,若找到,則稱為緩存命中,若沒找到,則稱為緩存不命中;
當緩存不命中時,需要從第k+1層拷貝需要的數據到第k層,這樣就可能會需要替換第k層中已經緩存的某些數據,需要替換時通常會有個替換策略來指導替換哪些數據;
緩存機制與局部性原理