1. 程式人生 > >關於cache命中與缺失的計算

關於cache命中與缺失的計算

Ta=Tc*(H)+Tm*(1-H)

做模擬題遇到說Tm是訪問主存和cache的時間之和,自己之前理解是Tm表示訪問主存的時間,現在很懵逼;

第一種型別:真題有一道題形式是給出三句程式:

for(int k = 0; k < 1000; k++){    a[k] = a[k]+32;}

讓你先思考核心程式的含義,表示幾次讀寫訪問cache,然後這幾次訪問中又有幾次是未命中的

a[k]的訪問步驟是:先訪問cache,cache缺失,之後從主存中取出一個塊調入cache,這個塊中的後幾個資料都是命中的,本題中一個數據佔4B,一個塊大小是16B,這說明一個塊中有4個數據,關鍵是後面還有一次寫,這說明一次迴圈要八次訪問cache,其中只有第一次是缺失的,後面七次都是命中的,所以缺失率是12.5%;

第二種型別:直接給你時間次數什麼的,讓你計算:

假設CPU執行某段程式時,共訪問Cache命中2000次,訪問主存50次。已知:Cache的存取週期為50ns,主存的存取週期為200ns,Cache – 主存系統的命中率、效率和平均訪問時間;

這一個是很容易計算得,關鍵還是在Tm上面,這裡Tm取200ns!!!

後面遇到類似的題目再進行補充