MXL
只读机器模式原生基础整数 ISA 宽度编码。若 misa 非零,MXL 给出 M 模式有效 XLEN(MXLEN);较低特权级 XLEN 不会大于 MXLEN。
这个字段控制什么
- - 机器模式原生基础整数 ISA 宽度编码。若 misa 非零,MXL 给出 M 模式有效 XLEN(MXLEN);较低特权级 XLEN 不会大于 MXLEN。
常见取值
MXLEN 为 32。
MXLEN 为 64。
保留编码。
机器 ISA CSR,报告 hart 的 MXLEN 和 misa 扩展位;该 CSR 是 WARL,读数也可能为 0。
机器模式原生基础整数 ISA 宽度编码。若 misa 非零,MXL 给出 M 模式有效 XLEN(MXLEN);较低特权级 XLEN 不会大于 MXLEN。
MXLEN 为 32。
MXLEN 为 64。
保留编码。
为将来使用保留;官方规范要求所有保留位读取时返回 0。
这个字段更适合结合上下文字段解释,不用按固定枚举背诵。
bits 25:0 按字母位置编码;Table 12 规定每个位置是已分配扩展、保留或暂定保留。该 WARL 字段可包含实现允许修改的位;复位时应包含最大支持扩展集合,若 I 与 E 均可用则选择 I。
对应特性在当前 M 模式行为中不作为已实现报告;但位为 0 不一定证明该特性不存在。
对应特性已实现。X 位为 1 表示存在非标准扩展;S/U 位为 1 分别表示实现 Supervisor/User 模式。
I 位用于 RV32I/RV64I,E 位用于 RV32E/RV64E。除 misa 全部读零外,E 总是读为 I 的补码;若同一执行环境同时支持 RV32E 和 RV32I,软件可通过清除 I 选择 RV32E。
这个字段更适合结合上下文字段解释,不用按固定枚举背诵。
misa 是 MXLEN 位 WARL CSR,用于向 M 模式报告基础整数宽度和标准扩展位。它是粗粒度特性目录:读到 1 的扩展位表示实现了对应特性,但读到 0 不能单独证明特性不存在。
M 模式软件读取 misa;若读数为 0,不从 misa 推断能力,改用平台提供的其他发现机制。
若 misa 非零,先用 MXL 判断 MXLEN,再按扩展位获得基础 ISA 和特权模式线索。
需要修改扩展可用性时,只写官方允许的软件策略,随后读回确认 WARL 结果,并避免触发 IALIGN 写入抑制;重新启用时不能假定扩展专有状态仍有效。
官方规范允许返回 0 表示 misa 未实现。此时不能从 MXL 或扩展位推断 CPU 能力,需要使用单独的非标准机制。
不一定。规范明确说扩展位为 1 蕴含对应特性已实现,但反向不一定成立;位为 0 不能单独证明对应特性不存在。