我正在阅读ARM Cortex-A 系列 ARMv8-A 程序员指南。
在 11.1.2 缓存标签和物理地址中,有一个缓存地址字段的示例。
例子:
缓存为4路32KB
高速缓存行 = 16 字(64 字节)
以及文档中说明的地址字段:Set(index) = 8 bits, Offset = 6 bits, Tag = 30 bits
根据我的理解,8 位索引将对应于每种方式的 256 个缓存行(在示例中正确说明)。偏移量是 6 位(2^6 = 64),用于正确寻址行内的字节(64 字节)。
但是缓存是 4 路的,这意味着缓存大小是 4*256*64 = 64KB 而不是 32KB。
我的分析是正确的还是我遗漏了什么?