Cache局部性原理是指程式在執行時傾向於訪問局部數據的特點,這包括時間局部性和空間局部性。
時間局部性:指的是程式會在近期內傾向於訪問最近訪問過的數據。這是因為程式往往需要重複使用最近使用過的數據,而不是隨機地訪問數據。
空間局部性:指的是程式會在近期內傾向於訪問當前訪問數據附近的數據。這是由於數據往往是以塊狀形式被訪問,例如數組或循環結構中的元素通常是連續訪問的。
Cache利用這些局部性特點,將程式中正在使用或最近使用過的數據塊存儲在高速但容量較小的Cache中,使得CPU的記憶體訪問操作大多數針對Cache進行,從而大大提高程式的執行速度。當CPU發出讀或寫請求時,如果數據已經在Cache中,則直接在Cache中進行操作;如果數據不在Cache中,則需要從主存儲器中讀取或寫入。此外,如果Cache已滿,還需要使用某種替換算法來決定哪個數據塊應該被替換。
Cache的性能指標包括命中率、缺失率和平均訪問時間。命中率是指CPU欲訪問的信息已在Cache中的比率,它反映了Cache的有效性。缺失率則是命中率的補數,表示CPU訪問的信息不在Cache中的比率。平均訪問時間則是訪問主存儲器的平均時間,它包括了從Cache未命中到主存儲器讀取數據的時間。
總結來說,Cache局部性原理是基於程式執行時的數據訪問模式,通過最佳化數據在Cache中的存儲和替換策略,來提高程式的執行效率。