0

我已经阅读了几个关于这个主题的主题,但我无法得到答案。所以我的问题是:

1)如何计算块偏移量?

我想知道的不是公式,而是它的概念。据我所知,一个块可以存储地址的案例数量。例如,如果有一个具有 8 字节存储空间的块,并且必须存储 2 字节地址。它的块偏移量是 2 位吗?(所以有 4 种情况来存储地址(下图可能更容易看出我在说什么)。

在此处输入图像描述

4

1 回答 1

1

块偏移量简单地计算为log 2 cache_line_size

原因是我所知道的所有系统都是字节可寻址的。因此,您需要足够的位来索引块中的任何字节。尽管大多数系统的字长大于单字节,但它们仍然支持单字节梯度的偏移,即使这不是常见的情况。

因此,对于您提到的带有 2 字节字的 8 字节块大小的示例,您仍然需要 3 位才能允许访问任何字节。如果您有一个不可字节寻址的系统,那么您可以只使用 2 位作为块偏移量。但实际上,我所知道的所有系统都是字节可寻址的。

于 2015-05-18T18:04:27.800 回答