【问题标题】:How many bits are needed needed for 2 way associative cache addressing?2路关联缓存寻址需要多少位?
【发布时间】:2016-03-22 00:51:32
【问题描述】:

下面的问题让我很困惑,因为它与我看到的其他示例不同。

对于 128 字节内存和 32 字节 2-way 集关联回写、使用 4 字节块和 LRU(最近最少使用)替换策略的写入分配数据缓存,显示块偏移的内存地址细分,设置索引, 和标签字段。每个字段需要多少位?

我想出了寻址所需的 7 位。在这 7 位中,2 位用于块偏移,2 位用于设置索引,3 位用于标签。这是正确的吗?

【问题讨论】:

    标签: caching mips cpu-architecture cpu-cache


    【解决方案1】:

    首先让我们做一些数学运算:

    • 您需要 7 位来寻址 128 字节的内存。
    • 缓存有 32 个字节,每个块有 4 个字节。因此,您的缓存可以容纳 32 bytes / 4 bytes_per_line 行,产生 8 行。由于缓存是 2 路组关联的,因此每个块可以使用每组的两条线中的任何一条。所以你有 4 组,每组 2 行。

    因此:

    • 您需要 2 位来处理块内的给定偏移量
    • 您需要 2 位来寻址给定的集合
    • 剩余 3 位用于标签

    因此每个地址的编码是:

      tag(3 bits) | set(2 bits) | offset(2 bits)
    

    【讨论】:

    • 谢谢!我只是不断地将所有内容都插入公式中,而且书的描述模棱两可。干杯,我的朋友!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    相关资源
    最近更新 更多