我在32位MIPS处理器上有一个直接映射指令缓存。该
容量为2048字节,块大小为16字节。
假设在循环的每次迭代中执行10条指令。在循环开始之前,我们可以假设
缓存为空(所有有效位都设置为零)。
循环中的第一条指令从地址0x00400200
开始。
执行循环时缓存命中率是多少,
如果循环迭代10
次?
答案 0 :(得分:1)
块大小为16字节,因此10条指令适合三个块。
在第一次执行循环时,指令1(I1)将错过。 I2,I3,I4将命中,因为当从内存中读取I1时加载了第一个块。然后I5会错过,I6,I7,I8会命中。然后I9会错过,I10会命中。
I1,I5和I9错过了第一次迭代。 后续循环迭代没有错过。因此命中率为100 - 3 = 97%。