【问题标题】:Calculating the Values stored in the TAG field计算存储在 TAG 字段中的值
【发布时间】:2019-12-01 06:24:58
【问题描述】:

问题: 考虑一个具有 4096 块缓存的计算机系统。每个块可以存储 16 个字节。保存包含地址 0xABCDEF 的内存块的缓存块的 TAG 字段中存储的值是什么。

一个。如果是直接映射缓存

b.如果是16路设置关联缓存

c。如果是全关联缓存

下面是我的工作/逻辑:

我们知道每个块可以存储 16 个字节。所以 2^4.这意味着我们的块偏移量是 4 ABCDE 是 24 位,b/c 4 位 4096 块是 2^12

一个。是不是直接映射然后 24 - 20 - 4 --> 0

b.如果是 16 路,那么我们的计算是 24-16(index) - 4(offset) --> 4

c。如果它完全关联,那么我们确实有一个索引,它只有 24 - 4 --> 20

我不确定我是否以正确的方式解决了这个问题。任何帮助将不胜感激!

我使用此插图作为缓存表示方式的参考: http://csillustrated.berkeley.edu/PDFs/handouts/cache-3-associativity-handout.pdf

【问题讨论】:

    标签: caching cpu-architecture cpu-cache


    【解决方案1】:

    好的,所以我想通了。

    一个。由于我们的缓存是直接映射的。我们有 2^12 个区块。这意味着索引将为 12,偏移量为 4。TAG 值为 8

    b.现在因为是 16 路关联。 2^4 = 16. 所以我们做 2^12/ 2^4 ==> 2^8 这意味着 8 将在我们的索引槽中,并且 TAG 值为 12

    c。如果它是完全关联的,那意味着我们不必考虑索引缓慢。所以它只有 24 - 20 ==> 4

    希望这对遇到此问题的人有所帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-27
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      • 2016-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多