訪問cache效率與平均訪問時間問題

我們先來看一道例題:
CPU執行一段程序時,cache完成存儲的次數爲3000次,主存完成存儲的次數爲400次,已知cache存取週期爲50ns,主存存取週期爲250ns,求cache/主存系統的效率和平均訪問時間?

思路:cache,中譯名高速緩衝存儲器,其作用是爲了更好的利用局部性原理,減少CPU訪問主存的次數。簡單地說,CPU正在訪問的指令和數據,其可能會被以後多次訪問到,或者是該指令和數據附近的內存區域,也可能會被多次訪問。因此,第一次訪問這一塊區域時,將其複製到cache中,以後訪問該區域的指令或者數據時,就不用再從主存中取出。
現在回到開始的問題:當CPU發出讀請求時,如果cache命中,就直接對cache進行讀操作,與主存無關;如果cache中沒有需要的信息,則需要訪問主存並把該塊信息從主存中調到cache中,再次訪問cache獲取需要的信息。

所以:⑴命中率:CPU欲訪問的信息已經在Cache中的比率稱之爲命中率。
設執行程序時,cache訪問次數Nc,訪問主存次數Nm,則

h=NcNc+Nm\frac{Nc}{Nc+Nm}=0.882

⑵平均訪問時間:設Tc爲命中時cache訪問時間,Tm爲未命中時主存訪問時間
則Ta=h*Tc+(1-h)*Tm=73.6 ns

⑶訪問cache效率:e=TcTa\frac{Tc}{Ta}*100%=TchTc+(1h)Tm\frac{Tc}{h*Tc+(1-h)*Tm}*100%=0.679

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章