快速链接:
.
👉👉👉 个人博客笔记导读目录(全部) 👈👈👈
内存标记扩展有三个版本:
FEAT_MTE
FEAT_MTE 支持可在 EL0 中访问的内存标记指令。
实现FEAT_MTE 时:
- 提供了一组标签加载和标签存储指令。
- 提供了在地址中生成和插入逻辑标签的说明。
- 提供了从缓存中清理、清理和无效分配标签的系统指令。
- 如果未实现 FEAT_MTE2,则内存标记扩展定义的所有系统指令都是未定义的。
- 如果没有实现 FEAT_MTE2,所有读取分配标签的操作都将分配标签视为零,并且任何陷阱或权限检查继续适用。
- 如果未实现 FEAT_MTE2,则将分配标签插入地址的指令将分配标签视为零。
- 如果未实现 FEAT_MTE2,则内存属性间接寄存器中的标记内存类型编码是不可预测的。
在实现 FEAT_MTE 和 FEAT_MOPS 时,还提供了 SETG* 指令。有关详细信息,请参阅第 C3-271 页的内存复制和内存设置说明。
FEAT_MTE2
FEAT_MTE2 支持扩展定义的所有指令和系统寄存器、内存中的分配标签以及对标记内存的访问的标签检查。
实现 FEAT_MTE2 时:
- 所有 FEAT_MTE 功能都可供使用。
- 提供了对内存中分配标签的访问的系统寄存器和页面级别控制。
- 为每个 16 字节的常规内存颗粒提供分配标签。
- 标签 PA 空间与数据加载和存储指令访问的数据物理地址(数据 PA)空间是分开的,以访问普通内存和设备中的数据。
- 系统控制寄存器中的任何相关字段都可供使用。
- 扩展定义的所有系统寄存器都可以使用。
- 扩展定义的所有系统指令和指令都可以使用
FEAT_MTE3
FEAT_MTE3 增加了对非对称标签检查故障处理的支持。
实现FEAT_MTE3 时:
- 所有 FEAT_MTE 和 FEAT_MTE2 功能都可供使用。
- 标记检查故障可以配置为在读取时导致同步异常,并在写入时异步累积。
- 执行读取和写入的访问上的任何标记检查错误都可以配置为导致同步异常