计算存储在TAG字段中的值

问题描述 投票:0回答:1

问题:考虑具有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

caching cpu cpu-architecture
1个回答
0
投票

好,所以我知道了。

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

希望这可以帮助遇到这个问题的任何人

© www.soinside.com 2019 - 2024. All rights reserved.