我正准备即将开始的考试,我遇到了这个问题:
直接映射的大小为64K的缓存,块大小为16个字节。缓存开始为空
如果...
,缓存未命中率是多少[解决方案:第5页http://www.inf.ethz.ch/personal/markusp/teaching/263-2300-ETH-spring11/midterm/midterm_sln.pdf]
我很困惑他们如何得到“缓存存储128 x 128元素”。我认为缓存大小是64K(2 ^ 16)。
此外,有人可以解释如何处理每个问题吗?我的教授有一些公式来计算每个块中的访问次数:块大小/步幅,但它似乎不起作用。
答案 0 :(得分:-1)
据我了解;在情况1中,src和dst矩阵的大小为64kb(128 * 128 * 4字节);因为缓存是直接映射的,大小为64kb; src&的条目必须将相同索引的dst映射到缓存中的相同位置(因为(0 + i mod)64 =(64 + i mod)64)同时在行中使用
dest[i][j]=src[i][j]
因此你有100%的失误率;这同样适用于案例3,因为新的大小是64kb(128 * 256 * 4)的倍数,所以它没有任何区别;
但是对于案例2;矩阵的大小变为96 kb(128 * 192 * 4字节);所以现在src& dst可以同时加载,你的失误率会更低。