在修改代码时,我遇到了一个非常基本的问题,但我似乎没有得到答案......
因此,在练习中,我们有16位内存地址,256行缓存和16字节行(4位32位)。
假设执行这些指令的程序:
Int A[512], i;
for (i = O; i < 256; i++) {
A [i+256] A [i] + i ;
}
阵列A存储在地址x0000,i存储在寄存器中。 他们询问有多少缓存未命中,这个程序会产生什么?
我的回答是:64次未命中。因为,我们使用一个4字集团,每次错过我们将获得4个字的集团,我们循环256,所以256/4。
这是对的吗?提前谢谢!