caching - 用于缓存的 Armv8 地址字段?
问题描述
我正在阅读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。
我的分析是正确的还是我遗漏了什么?
解决方案
有人在 arm 社区网站上问了同样的问题:https ://community.arm.com/developer/ip-products/processors/f/cortex-a-forum/8159/how-to-compute-a-cache-size
以下是对他的问题的答复:
" 收到 ARM 的回复。这是一个文档错误。应该是 2-way set-associative cache。16KB * 2 = 32 KB "
推荐阅读
- ios - 更新整个 pList 数组 - 快速
- node.js - 从一个数据库解析读取并写入事务中的另一个数据库
- c++ - 通过非阻塞套接字使用accept() 获取客户端连接
- php - 移动到其他服务器后管理面板中的 Prestashop FatalErrorException
- encoding - 在 Powershell 中,如何选择字符串的不同部分并将它们分别输出到变量并在行中显示?
- javascript - D3 V3 堆积条形负值
- javascript - 对 oop 使用 remove 事件侦听器
- python - Visual Studio Code pylint 在 Ubuntu 上不起作用
- julia - 通过普通矩阵运算复制“np.einsum”结果
- c# - 将数据从 DataGridView 加载到不同类列表的通用方法