我需要一些帮助来计算循环中的高速缓存命中/未命中,该循环将128个32位数字加在一起,这些数字在数组a [i]中(0 <= i <= 127)。
缓存本身为空,并且有32字节/行。 计算缓存命中率。
a)计数器/和vars在存储器中。 b)将计数器/和vars缓冲到寄存器中 c)如果我们使用16位数而不是32位数,命中率如何不同。
我不知道如何计算程序中的命中/未命中。我们得到了一个乘法的例子,但我不知道它是如何工作的。
(蓝色是第一次传球,绿色是第二次传球)
编辑:
sum = 0
j = 0
loop: read j
if(j >= 128) exit
else
read g[j]
read sum
compute sum + g[j]
write sum
read j
compute j+1
write j
jump to loop
任务的伪代码