0
我的问题是关于我的计算机体系结构类中的作业分配。如果有人能够向我解释如何解决这个问题,我会非常感激!如何查找MIPS指令的缓存命中和未命中?
问题:假设主存储器由2^24个字组成。我们得到了一个2^10 = 1024块的直接映射缓存。每个块是一个MIPS字(32位)。
缓存在发生写入未命中时使用回写。最初,缓存为 为空。假设存储在$ sp中的地址是0 mod 4,所以4($sp)
地址也是0 mod 4,依此类推。 对于以下序列中的每条指令,将其标记为缓存命中或未命中。如果它是 是未命中,则指示写入或读取的块(例如,根据其地址范围的内存 )。
lw $s0, 4($sp)
lw $s0, 8($sp)
sw $s0, 8($sp)
sw $s1, 4($sp)
lw $s0, 4($sp)
如何知道每条指令是否是缓存命中或未命中?我甚至不确定这意味着什么。
每个内存地址与高速缓存中的一个特定插槽相关。最初插槽全是空的,但是当读取或写入地址时,插槽将被填充。您的任务是确定每个指令的插槽是否已填满,同时还考虑到几个地址可能共享相同的插槽。 –
[Direct Map Cache and cache missses]可能重复(http://stackoverflow.com/questions/8274191/direct-map-cache-and-cache-misses) – gusbro
好的。所以纠正我,如果我错了......但我相信第一个将是一个小姐,因为它是第一次使用该插槽,第二个小姐,然后第三个会成为一个命中或错过,因为8插槽被使用lw命令?或者它必须是相同的命令?然后我猜测第四个将会是一个命中,因为已经使用了4个插槽......那么第五个将会是一个错过,因为它重新开始了? –