CSR 位字段

RISC-V mhpmcounter31h CSR 寄存器详解

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

mhpmcounter31h(地址 0xB9F)是仅在 RV32 可用的 Machine 高半 CSR,读写 mhpmcounter31[63:32]。

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

按 bit 字段理解 mhpmcounter31h

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

mhpmcounter31h 是 RV32 Machine 高半 CSR,用于读写 mhpmcounter31[63:32];它不是独立计数器。

该 CSR 仅在 RV32 上存在,访问父 mhpmcounter31 的位 63:32。
父计数器是最多 64 位精度的 WARL 计数器;事件和实现数量/宽度由平台定义。
合法实现可使父计数器及 mhpmevent31 均为只读零;mcountinhibit.HPM31 仅抑制递增。

读这个 CSR 时先看什么

  • - mhpmcounter31h 仅在 RV32 上作为 mhpmcounter31 的位 63:32 高半提供;RV64 没有该 CSR。
  • - 实现的计数器数量、宽度和事件集由平台定义。
  • - 合法实现可将 mhpmcounter31 和对应 mhpmevent31 均实现为只读零;mcountinhibit.HPM31 只控制父计数器是否递增,不改变可访问性。

写入前的风险检查

  • - 在 RV32 上写 mhpmcounter31h 只改变父 mhpmcounter31 的位 63:32;父计数器是 WARL,支持至多 64 位精度。

放回真实流程里理解

1

确认实现提供所需计数器。

2

在 RV32 上通过 mhpmcounter31h 访问 mhpmcounter31 的位 63:32。

3

用 mhpmevent31 的平台定义事件解释父计数器。

常见问题

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

不能。它是仅在 RV32 上存在的 Machine 模式 CSR。

mhpmcounter31h 是新的独立计数器吗?

不是。它只是 RV32 上 mhpmcounter31 的高 32 位访问 CSR。