字节偏移量是否包含在缓存中的 'block address' 中?
Is the byte offset included with the 'block address' in caching?
我一直在做作业,这个问题一直困扰着我。我做错了吗?
我认为 'block address' 是这些 32 位参考地址(在大多数问题中给出)的一部分,不包括用作字节偏移量的最低有效位(部分对于在块中选择一个字(或字节)很有用。
为了演示,假设我们正在使用直接映射缓存并给定一个 32 位参考地址,例如 0000 0000 0000 0000 1111 1100 0001 1100
并且标记为 24 位,索引为 6 位,偏移量为 2位。
我的教科书(计算机组织与设计:MIPS 版)指出,给定地址映射到直接映射高速缓存中的块由 (block address) modulo (number of blocks in the cache)
找到。如果我将此计算中的偏移量作为 'block address' 的一部分包括在内,那么我会指出 hit/miss/store 来自的结果块与没有这样做时会有很大不同。
因此,如果有人知道 'block address' 是否只是 'address'(整个 32 位参考)的另一个术语,或者它是否意味着我认为的意思,这会让我放心这是标签和索引的串联(仅此而已)。有人知道吗?
由于 mips 使用字来寻址所有地址基本上都是 30 位长,另外 2 位设置为 0(末尾的字节偏移量)。
块偏移量是接下来的 2 位,后跟块地址:
XXXX XXXX XXXX XXXX XXXX XXXX XXXX WW00
00
这是字偏移量,在 mips 中几乎没用,因为你通常不使用字节
WW
这是block-offset,用来标识选择哪个词(假设block是4个词长)
XX..
块地址,这是包含 4 个字的内存块的直接地址,因此 4x4 = 16 字节。
当您谈论块地址时,您谈论的是地址的前 28 位,因为其余的只是其他应用程序的偏移量。
- 字节地址 - 所有 32 位
- 字地址 - 前 30 位
- 块地址 - 前 28 位(如果您选择更大的块,则更少)
标签和索引只有在谈论缓存时才会发挥作用,此时您查看块地址(在本例中为 28 位)并仅从这部分选择您的标签和索引,仅使用偏移量缓存访问后。
- 从区块地址获取标签和索引
- 采用块偏移来获取单词(例如使用 32x4-1-MUX 完成)
- 将字移入目标寄存器
我一直在做作业,这个问题一直困扰着我。我做错了吗?
我认为 'block address' 是这些 32 位参考地址(在大多数问题中给出)的一部分,不包括用作字节偏移量的最低有效位(部分对于在块中选择一个字(或字节)很有用。
为了演示,假设我们正在使用直接映射缓存并给定一个 32 位参考地址,例如 0000 0000 0000 0000 1111 1100 0001 1100
并且标记为 24 位,索引为 6 位,偏移量为 2位。
我的教科书(计算机组织与设计:MIPS 版)指出,给定地址映射到直接映射高速缓存中的块由 (block address) modulo (number of blocks in the cache)
找到。如果我将此计算中的偏移量作为 'block address' 的一部分包括在内,那么我会指出 hit/miss/store 来自的结果块与没有这样做时会有很大不同。
因此,如果有人知道 'block address' 是否只是 'address'(整个 32 位参考)的另一个术语,或者它是否意味着我认为的意思,这会让我放心这是标签和索引的串联(仅此而已)。有人知道吗?
由于 mips 使用字来寻址所有地址基本上都是 30 位长,另外 2 位设置为 0(末尾的字节偏移量)。 块偏移量是接下来的 2 位,后跟块地址:
XXXX XXXX XXXX XXXX XXXX XXXX XXXX WW00
00
这是字偏移量,在 mips 中几乎没用,因为你通常不使用字节WW
这是block-offset,用来标识选择哪个词(假设block是4个词长)XX..
块地址,这是包含 4 个字的内存块的直接地址,因此 4x4 = 16 字节。
当您谈论块地址时,您谈论的是地址的前 28 位,因为其余的只是其他应用程序的偏移量。
- 字节地址 - 所有 32 位
- 字地址 - 前 30 位
- 块地址 - 前 28 位(如果您选择更大的块,则更少)
标签和索引只有在谈论缓存时才会发挥作用,此时您查看块地址(在本例中为 28 位)并仅从这部分选择您的标签和索引,仅使用偏移量缓存访问后。
- 从区块地址获取标签和索引
- 采用块偏移来获取单词(例如使用 32x4-1-MUX 完成)
- 将字移入目标寄存器