我們先來看一道例題:
CPU執行一段程序時,cache完成存儲的次數爲3000次,主存完成存儲的次數爲400次,已知cache存取週期爲50ns,主存存取週期爲250ns,求cache/主存系統的效率和平均訪問時間?
思路:cache,中譯名高速緩衝存儲器,其作用是爲了更好的利用局部性原理,減少CPU訪問主存的次數。簡單地說,CPU正在訪問的指令和數據,其可能會被以後多次訪問到,或者是該指令和數據附近的內存區域,也可能會被多次訪問。因此,第一次訪問這一塊區域時,將其複製到cache中,以後訪問該區域的指令或者數據時,就不用再從主存中取出。
現在回到開始的問題:當CPU發出讀請求時,如果cache命中,就直接對cache進行讀操作,與主存無關;如果cache中沒有需要的信息,則需要訪問主存並把該塊信息從主存中調到cache中,再次訪問cache獲取需要的信息。
所以:⑴命中率:CPU欲訪問的信息已經在Cache中的比率稱之爲命中率。
設執行程序時,cache訪問次數Nc,訪問主存次數Nm,則
h==0.882
⑵平均訪問時間:設Tc爲命中時cache訪問時間,Tm爲未命中時主存訪問時間
則Ta=h*Tc+(1-h)*Tm=73.6 ns
⑶訪問cache效率:e=*100%=*100%=0.679