|
|
程序的局部性原理:是指程序在執(zhí)行時呈現(xiàn)出局部性規(guī)律,即在一段時間內(nèi),整個程序的執(zhí)行僅限于程序中的某一部分。相應(yīng)地,執(zhí)行所訪問的存儲空間也局限于某個內(nèi)存區(qū)域。局部性原理又表現(xiàn)為:時間局部性和空間局部性。時間局部性是指如果程序中的某條指令一旦執(zhí)行,則不久之后該指令可能再次被執(zhí)行;如果某數(shù)據(jù)被訪問,則不久之后該數(shù)據(jù)可能再次被訪問。空間局部性是指一旦程序訪問了某個存儲單元,則不久之后。其附近的存儲單元也將被訪問。
為了保證cache和memory的數(shù)據(jù)一致性,通常有三種方法:1〉writethrough:CPU向cache寫入數(shù)據(jù)時,同時向memory也寫一份,使cache和memory的數(shù)據(jù)保持一致。優(yōu)點是簡單,缺點是每次都要訪問memory,速度比較慢。
2〉postwrite:CPU更新cache數(shù)據(jù)時,把更新的數(shù)據(jù)寫入到一個更新緩沖器,在合適的時候才對memory進(jìn)行更新。這樣可以提高cache訪問速度,但是,在數(shù)據(jù)連續(xù)被更新兩次以上的時候,緩沖區(qū)將不夠使用,被迫同時更新memory。
3〉writeback:CPU更新cache時,只是把更新的cache區(qū)標(biāo)記一下,并不同步更新memory。只是在cache區(qū)要被新進(jìn)入的數(shù)據(jù)取代時,才更新memory。這樣做的原因是考慮到很多時候cache存入的是中間結(jié)果,沒有必要同步更新memory。優(yōu)點是CPU執(zhí)行的效率提高,缺點是實現(xiàn)起來技術(shù)比較復(fù)雜。
|
|