CSR 位字段

RISC-V hpmcounter3h CSR 寄存器详解

地址 0xC83特权级 U模式访问 只读 / RV32 高半/32 位用户级计数器与性能监控 CSR

hpmcounter3h 是 Zihpm 的 RV32 用户级只读高半 CSR,用于读取 hpmcounter3 的位 63:32。Zihpm 依赖 Zicsr。

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

按 bit 字段理解 hpmcounter3h

0 个关键字段

读这个 CSR 时先看什么

  • - 确认当前 hart 是否实现 hpmcounter3;访问未实现的计数器可能触发非法指令异常或返回常量值。
  • - 结合地址 0xC83 和最低访问特权级(User)判断软件是否可以直接读取。
  • - U 模式读取要求 mcounteren.HPM3 和 scounteren.HPM3 均为允许;在 V=1、XLEN=32 时,hcounteren.HPM3 为 0 且 mcounteren.HPM3 为 1 会使 VS 模式读取触发虚拟指令异常,VU 模式还要求 scounteren.HPM3 为 1;在 RV64 上访问该高半 CSR 总会触发非法指令异常。

写入前的风险检查

  • - hpmcounter3h 是只读 CSR;写入会触发非法指令异常。

放回真实流程里理解

1

读取 hpmcounter3h 获取硬件或运行状态。

2

按位域说明解释返回值,不要尝试写回。

3

若在当前特权级读取失败,应按非法指令异常路径处理。