【发布时间】:2020-02-12 16:32:45
【问题描述】:
我需要了解 MIPS 中的直接映射缓存如何用于数组。例如,对于包含 a[0] 到 a[9] 的十个项目的数组,以及以下直接映射缓存配置: 总缓存大小为 32 字节和块大小为 16 字节的直接映射缓存。每个内存地址为 32 位。
这将产生:4 位偏移,1 位索引,27 位标记
我的缓存看起来像这样:
| Index | Valid | Tag | W0 | W1 | W2 | W3 |
| 0 | 0 | | | | | |
| 1 | 0 | | | | | |
我的问题是,在我第一次加载 a[0] 时,我知道在每个缓存索引中,我们可以存储 4 个单词。这是否意味着a[0]、a[1]、a[2]、a[3] 在a[0] 的加载访问时都被加载到缓存中?所以a[1]、a[2] 和a[3] 会很受欢迎。
还是我理解错了?
【问题讨论】:
标签: caching assembly memory-management mips mips32