0

我已经完全理解了直接映射、关联和设置关联缓存,但是当我发现多字块直接映射缓存时,我感到很困惑。

这是 Patterson 的 Q7.9 和 Q7.10:

7.9[10] <§7.2> Here is a series of address references given as word addresses: 2,
3, 11, 16, 21, 13, 64, 48, 19, 11, 3, 22, 4, 27, 6, and 11. Assuming a direct-mapped
cache with 16 one-word blocks that is initially empty, label each reference in the
list as a hit or a miss and show the final contents of the cache.

7.10[10] <§7.2> Using the series of references given in Exercise 7.9, show the hits
and misses and final cache contents for a direct-mapped cache with four-word
blocks and a total sizeof 16 words. 

7.9就好了,很简单。但我不明白 7.10 是如何工作的。它将有 4 个 4 字大小的块。这与 4 路组关联缓存有何不同?

如果可能的话,有人可以指导我在这里解决 7.10 吗?我有答案,但我不明白。

4

1 回答 1

0

在 7.10 中,您必须成为缓存。为每个缓存块(4 个字)绘制框。对于顺序中的每个单词地址,找出它将进入哪个框。如果盒子已经有地址,那就是命中。否则,它是一个未命中,您必须在当前参考地址处用 4 个字填充该框,该参考地址与高速缓存行大小对齐。

例如,当您访问单词 2 时,您将填写单词 0、1、2、3。单词 3 的下一个引用将是一个命中,因为它已经在缓存中。访问单词 16 将驱逐其中包含 0,1,2,3 的块,并将其填充为 16,17,18,19...

于 2013-06-26T21:56:19.080 回答