我正在阅读,ARM Cortex-A Series Programmer’s Guide for ARMv8-A。
在11.1.2缓存标记和物理地址中,其中有一个缓存地址字段的示例。
示例:
缓存为4路32KB
高速缓存行= 16字(64字节)
以及文档中所述的地址字段:设置(索引)= 8位,偏移= 6位,标记= 30位
据我了解,8位索引将以每种方式对应256条缓存行(在示例中已正确说明)。偏移量是6位(2 ^ 6 = 64),用于正确寻址行内的字节(64字节)。
但是高速缓存是4种方式,这意味着高速缓存大小是4 * 256 * 64 = 64KB而不是32KB。
我的分析是否正确,或者我缺少什么?
有人在手臂社区网站上问了同样的问题:https://community.arm.com/developer/ip-products/processors/f/cortex-a-forum/8159/how-to-compute-a-cache-size
这是他的问题的答复:
“得到了ARM的答复。它是一个文档错误。它应该是2路集关联缓存。16KB * 2 = 32 KB”