处理多字块直接映射缓存

时间:2013-04-29 22:17:16

标签: caching

我完全理解直接映射,关联和组关联缓存,但是当我发现Multiword块直接映射缓存时我感到困惑。

以下是帕特森的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吗?我有答案,但我不明白。

1 个答案:

答案 0 :(得分:0)

在7.10中你必须成为缓存。 为每个缓存块绘制框(4个字)。对于序列中的每个字地址,确定它将进入哪个框。如果盒子已经有了地址,那就是一个打击。否则,这是一个未命中,你必须在当前参考地址填充4个字的框,按高速缓存行大小对齐。

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