【问题标题】:MIPS 2-Way CacheMIPS 2 路缓存
【发布时间】:2018-06-13 07:02:42
【问题描述】:

我有一个 MIPS 64 位架构的缓存,每块 4KB 的 2 路和 16 个字的行(对于每个块)。 我必须确定:

  1. [ 标签 |索引 |偏移]

    每个字段的位大小

  2. 整个内存由多少位组成?


我不知道我所做的是否正确,因为我没有结果,因为我们使用的是 64 位 MIPS 而不是 32 我认为一个单词应该由 8 个字节组成4 个。

我通过4KB / (16 words * 8 byte) = 32计算了块数

然后我已经完成了32 / 2-way= 16 --> 4 位 INDEX

然后我得到字和字节偏移如下:

16 个字 --> 4 位 字偏移量

8 字节 --> 3 位 字节偏移量

最后我将 TAG 计算为64 - 4(index) - 4(word offset) - 3 (byte offset) = 53 bit

总比特数将是53 tag + 64 + 1 validate = 118 乘以块数(32)将得到 3776 比特。

我不完全确定结果,有人可以帮我解决这个问题吗?

谢谢。

【问题讨论】:

    标签: mips computer-science cpu-architecture cpu-cache


    【解决方案1】:

    部分问题不是很清楚,我会尽力做出最好的猜测。

    假设:缓存大小为 4KB,字为 64 位,内存为字节寻址。

    信息:缓存行宽 16 个字,它是一个 2-way set assoc 缓存。

    Cacheline size = 16 word * 64 bits (8 byte) = 128 byte
    Number of cachelines = 4 KB/128 B = 32
    Number of blocks = 32 / 2 (2-way) = 16
    As the memory is byte addressable, least 3 bits of the address can be ignored.
    Next 4 bytes will be used to offset in a word in the 16 word cacheline.
    Next bit of the address is ignored because its 2-way assoc
    As there are 16 blocks, next 4 bits will be used to index a block.
    That leaves 64 - (4 + 1 + 4 + 3) = 52 bits for the TAG.
    
    TAG - 52 bits [bits 12 to 63]
    Index - 4 bits [bits 8 to 11]
    Offset - 4 bits [bits 3 to 6]
    

    第二个问题很难回答,因为缓存通常每个缓存行都有额外的位,例如有效位等。为了简单起见,我们假设这个缓存每个缓存行只有一个 TAG。这给了我们 52 位 * 16 个块 * 一个块中的 2 行 = 1664 位 = 208 个字节。

    因此整个缓存大小将是

    = 4 KB + 208 B
    = 4096 B + 208 B
    = 4304 Bytes
    

    【讨论】:

    • 感谢您的回答,如果问题不太清楚,很抱歉,但我的教授就是这样写的……我自己理解它有问题。值得我的一位同事计算的行数为 (2^12) / (16 * 8) 给出 32 行,然后他得到了行的位 = 5 位,每个字的位 = 4 位和字节偏移量 = 3位。 TAG = 64 - (5+4+3) = 52。你觉得可能吗??
    • 它是一个 2-way set assoc 缓存。因此,您需要为此屏蔽另一位。这就是为什么我有 51 位 TAG 的原因。你同事的其他计算似乎没问题。
    • 如果您不介意我问,最后一件事,在所有信息与上述相同的情况下,如果使用 4 路缓存,会发生什么变化?
    • 我的解决方案中存在错误,现在已修复,请接受我的歉意。如果您按照我上面解释的逐步逻辑,当缓存是 4 路时。你将有 8 个街区。您需要为该集合屏蔽 2 位。而且您只需要 3 位作为索引。这为 TAG 留下 64 - (3 + 2 + 4 + 3) = 52 位
    • 非常感谢,也为上面的修复:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 2016-03-22
    • 2017-12-16
    • 2015-10-18
    • 1970-01-01
    相关资源
    最近更新 更多