0

我想计算使用此代码片段的每次循环迭代的缓存未命中率:

int x[2][256];
int i;
int sum = 0;

for(i = 1;i < 256; i++) {
    sum += x[0][i] * x[1][i];
}

假设:

  1. 数组 x 从 0x0 开始
  2. 缓存为空
  3. 大小为 1024 字节和块大小为 32 字节的直接映射缓存

我会说我们每次循环迭代的未命中率是一次,因为我们还要遍历 x 的列。这样对吗?

下一个问题:如果缓存大小为 2048 字节,那么未命中率是多少?

4

0 回答 0