直接映射缓存如何工作

时间:2015-06-05 12:45:01

标签: caching memory-management

最近,我参加了与缓存有关的讲座,试图解决教科书中的练习。

在教科书中存在与直接映射缓存相关的问题。

鉴于条件:

 all with a total of 8 words of data: 

 C1 has 1-word blocks, 

 C2 has 2-word blocks, 

 C3 has 4-word blocks

给出字地址:

3, 180, 43, 2, 191, 88, 190, 14, 181, 44, 186, 253

下图是我的答案。 my answer

Tag= QUOTIENT(Word Address,8) // total 8 word
Cache 1 index = MOD(QUOTIENT(Word Address,1),8) // 1 word per block, 8 block
Cache 2 index = MOD(QUOTIENT(Word Address,2),4) // 2 word per block, 4 block
Cache 3 index = MOD(QUOTIENT(Word Address,4),2) // 4 word per block, 2 block

我用上面的等式给出tag,index的答案。

命中/未命中:如果表中已显示相同的tag,index。然后点击其他小姐

这个给出了解决方案。 from solution

我错过了什么吗? 请帮我理解这个...

1 个答案:

答案 0 :(得分:2)

考虑缓存的一种方法就像酒店的走廊,每个房间都有一个号码(索引)和一个客人(标签)。现在让我们拿出地址列表并将它们放入我们的留言簿中。首先,我们想要走到走廊,直到我们到达我们的房间(索引),一旦我们想要在我们的留言簿上检查客人的名字(标签),如果它匹配得很好!那真是太棒了!

但是,如果我们到达房间,并且客人的姓名与留言簿(未命中)上的姓名不符,我们必须礼貌地驱逐他并让正确的客人填写该房间。 / p>

现在,因为这是一个愚蠢的酒店,我们必须在留言簿中输入,一旦我们检查了一个条目,它就不再重要了,如果一个新条目说要驱逐刚到那里的客人,你就去做。

现在,如果我们的酒店有可容纳两位客人的房间,但他们必须使用相同的姓氏,我们希望找到正确的房间(索引),检查两个人的姓名(标签),然后检查名字(偏移)。

如果姓氏在任何时候都不匹配,你就会驱逐这对夫妻,并在留言簿上带上相同姓氏的新夫妇。

因此,如果我们查看您的答案,我们可以看到,而不是忽略房间中的前一位客人,您说如果特定客人在特定房间的任何时间有点击中。