CSR 位字段

RISC-V mhpmevent6h CSR 寄存器详解

地址 0x726特权级 Machine 模式访问 读写 / RV32 高半 / 32 位Machine 计数器与性能监控 CSR

mhpmevent6h(地址 0x726)是 RV32 上 mhpmevent6 位 63:32 的高半 CSR,随 Sscofpmf 提供。

位作用速览
bit 3 = 只有第 3 位;bits 12..11 = 第 12 到第 11 位
高位 MSB低位 LSB
字段映射

按 bit 字段理解 mhpmevent6h

0 个关键字段
官方依据与检索要点

mhpmevent6h 不是独立事件选择器,而是 RV32 上 mhpmevent6 的高 32 位访问窗口。它承载 Sscofpmf 的 OF 和模式过滤字段。

官方 Sscofpmf 将 mhpmevent6[63:58] 标准化为 OF 与 xINH 字段。
mhpmevent6h[31:26] 对应这些标准化高位。
具体事件选择高位仍属于平台定义事件编码的一部分。

读这个 CSR 时先看什么

  • - mhpmevent6h 是 RV32-only 高半 CSR,并且随 Sscofpmf 提供。
  • - 读取它等价于读取 mhpmevent6 的位 63:32。
  • - OF 位也可通过 scountovf 的对应只读影子位观察。

写入前的风险检查

  • - 保留 WPRI 位,且不要在不了解平台事件编码时修改 EVENT_HI。
  • - 写 mhpmevent6h 会改变 mhpmevent6 的高 32 位,包括 OF 和 xINH 控制。

放回真实流程里理解

1

在 RV32 上读取 mhpmevent6h 查看 mhpmevent6 高半状态。

2

按需要处理 OF 或模式过滤位。

3

结合 mhpmcounter6 读数和 scountovf 检查溢出状态。

常见问题

mhpmevent6h 可以在任意特权级访问吗?

不能。官方 CSR 表将它列为 Machine 模式的 MRW CSR;在 S/U 等较低特权级直接访问会触发非法指令异常。

mhpmevent6h 和 mhpmevent6 应该同时写吗?

在 RV32 上需要按 64 位 CSR 高低半的一致性处理,避免一个路径写高半、另一个路径同时写低半造成配置不一致。