CSR 位字段
RISC-V hpmcounter3h CSR 寄存器详解
地址 0xC83特权级 U模式访问 只读 / RV32 高半/32 位用户级计数器与性能监控 CSR
hpmcounter3h 是 Zihpm 的 RV32 用户级只读高半 CSR,用于读取 hpmcounter3 的位 63:32。Zihpm 依赖 Zicsr。
字段映射
按 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
若在当前特权级读取失败,应按非法指令异常路径处理。