直接映射缓存和缓存缺失



我正在做我的家庭作业,但我不确定如何计算总缓存丢失。我一直在努力理解它,但它对我来说就是没有意义。我给出了一些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)

我不是在寻找答案。我想学习怎么做,因为我的家庭作业中有很多这样的问题。我想要一份详细说明。与此同时,我将研究这个话题,试图找出答案。

如果不知道$SP的对齐方式,就不可能知道会有多少缓存丢失。如果SP在32字节边界上对齐,那么在第一次访问时只会有一条缓存行丢失。如果SP包含地址0x18,那么您将有两个缓存线丢失,因为4($ SP)和8($ SP)将访问不同的缓存线。

最新更新