我正在做作业,但我不知道如何计算总缓存未命中数。我一直试图理解它,但它对我来说没有意义。我得到了一些Mips代码,我需要计算缓存未命中数。这是问题所在:
直接映射缓存。我们获得了1024个块的直接映射缓存。每 block是MIPS字(32位)。每当写入未命中时,高速缓存都使用写回 发生。主存包含2 ^ 30个字。最初,缓存为空 确定以下指令序列的高速缓存未命中总数。
lw $s0, 4($sp)
lw $s0, 8($sp)
sw $s0, 8($sp)
sw $s1, 4($sp)
lw $s0, 4($sp)
我不是在寻找答案。我想学习如何做到这一点因为我在家庭作业上还有很多这样的问题。我想对此进行一次演练。与此同时,我将研究这个主题,试图找出答案。
答案 0 :(得分:2)
如果不知道$ SP的对齐情况,就无法确定您将拥有多少缓存未命中。 如果SP在32字节边界上对齐,则在第一次访问时将只有一个高速缓存行未命中。如果SP包含地址0x18,那么您将有两个缓存行未命中,因为4($ sp)和8($ sp)将访问不同的缓存行。