问题:考虑具有4096块缓存的计算机系统。每个块可以存储16个字节。存储在包含地址0xABCDEF的存储块的缓存块的TAG字段中存储的值将是什么。
a。如果是直接映射缓存
b。如果是16种方式设置关联缓存
c。如果它是完全关联的缓存
以下是我的工作/逻辑:
我们知道每个块可以存储16个字节。这样2 ^ 4。这意味着我们的块偏移为4ABCDE是24位,b / c每位4位4096块为2 ^ 12
a。它是直接映射的,然后24-20-4-> 0
b。如果采用16种方式,则我们的计算结果为24-16(索引)-4(偏移)-> 4
c。如果它完全关联,那么我们确实有一个索引,它只有24-4-> 20
我不确定我是否以正确的方式解决了这个问题。任何帮助将不胜感激!
我使用此插图作为表示缓存的方式的参考:http://csillustrated.berkeley.edu/PDFs/handouts/cache-3-associativity-handout.pdf
好,所以我知道了。
a。由于我们的缓存是直接映射的。我们有2 ^ 12个方块。这意味着索引将为12,偏移量为4。TAG值将为8
b。现在是16方式关联。 2 ^ 4 =16。所以我们做2 ^ 12/2 ^ 4 ==> 2 ^ 8这意味着8将在我们的索引槽中,而TAG值将为12
c。如果它是完全关联的,则意味着我们不必考虑索引变慢的情况。所以只有24-20 ==> 4
希望这可以帮助遇到这个问题的任何人