緩存機制與局部性原理


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

1. 局部性原理

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

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

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

 

2. 緩存與緩沖

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

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

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

 

3. 緩存層次結構

  

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

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

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

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


免責聲明!

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



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