【发布时间】:2019-10-28 06:32:29
【问题描述】:
我正在阅读,ARM Cortex-A Series Programmer’s Guide for ARMv8-A。
在 11.1.2 缓存标签和物理地址中,有一个缓存地址字段的例子。
例子:
缓存是 4-way 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。
我的分析是正确的还是我遗漏了什么?
【问题讨论】:
-
是的,8 位索引意味着 256 组。通常,您不想将单一方式分组到多个集合中,因此“256 行 in 每种方式”是一种非常奇怪的表达方式。 “256 组(4 种方式)”如果您从这些开始并将大小计算为组 * 方式,那将是一个更正常的措辞。
标签: caching arm cpu-architecture armv8