CSR 位字段

RISC-V mhpmcounter28h CSR 寄存器详解

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

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

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

按 bit 字段理解 mhpmcounter28h

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

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

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

读这个 CSR 时先看什么

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

写入前的风险检查

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

放回真实流程里理解

1

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

2

在 RV32 上通过 mhpmcounter28h 访问 mhpmcounter28 的位 63:32。

3

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

常见问题

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

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

mhpmcounter28h 是新的独立计数器吗?

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