2017-05-31 50 views
0

我在32位MIPS处理器上有直接映射的指令缓存。容量为2048字节,块大小为16字节。 假设在循环的每次迭代中执行10条指令。在循环开始之前,我们可以假设 缓存为空(所有有效位都设置为零)。 循环中的第一条指令从地址0x00400200开始。MIPS中的直接映射缓存

什么是执行循环时的缓存命中率, 如果循环迭代10次?

+0

对我来说看起来像一个硬件问题。 –

回答

1

块大小为16个字节,所以10条指令适合于三个块。

循环指令1(I1)的第一次执行将会丢失。 I2,I3,I4将会命中,因为当从存储器读取I1时,第一个块被加载。然后I5将错过,I6,I7,I8将会击中。然后I9会错过,I10会命中。

I1,I5和I9在第一次迭代时未命中。 后续的循环迭代没有错过。因此命中率为100 - 3 = 97%。