我知道命中率是在緩存中找到的數據的百分比。但我不知道如何找到算法的命中。我在想,對於代碼1,我將有11塊,每塊有4個元素,對於代碼2,我將有4塊,每塊有11個元素,每次我看到4個元素錯過。不知道這是否有意義。任何的建議是歡迎緩存的編碼和算法的命中率
由4列假設有11個行的2維陣列A,存儲在存儲器中這樣[0][0], [0][1], [0][2], [0][3], [1][0], [1][1], …[10][2], [10][3]
還假設的10個存儲塊全關聯單級高速緩存,其中每個存儲器塊保持4個字節,以及FIFO替換策略。
每行準確地放入一個緩存塊中,而不幸的是整個數組無法放入緩存中。緩存是一個行過小...
現在給出2個以下代碼, 1-如何計算的命中率 2 - 考慮到緩存訪問時間爲5ns和內存訪問時間爲70ns,並且假定重疊訪問內存和緩存,我如何計算每個代碼的EAT?
代碼1:
for (int row = 0; row < 11; row ++)
{
for (int column = 0; column < 4; column ++)
{
myByte = A [ row, column ];
}
}
代碼2:
for (int column = 0; column < 4; column ++)
{
for (int row = 0; row < 11; row ++)
{
myByte = A [ row, column ];
}
}
任何幫助理解。謝謝
我聞到功課。高速緩存命中率取決於實現。嘗試'valgrind' – phoeagon 2013-03-26 08:41:26