CSR 位字段

RISC-V hcounteren CSR 寄存器详解

地址 0x606特权级 Hypervisor访问 HRW(Hypervisor 读写) / 32 位计数器使能集合Hypervisor 与虚拟化 CSR

hcounteren 是Hypervisor 计数器使能 CSR。

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

按 bit 字段理解 hcounteren

4 个关键字段
0

CY

读写

允许 VS/VU 访问 cycle。

这个字段控制什么

  • - 允许 VS/VU 访问 cycle。

常见取值

0关闭

VS/VU 读取 cycle 不由 hcounteren 授权;若 mcounteren 对应位为 1,访问会触发 virtual-instruction exception。

1开启

允许 V=1 时读取 cycle,除非还被其他控制位阻止。

打开官方手册
1

TM

读写

允许 VS/VU 访问 time。

这个字段控制什么

  • - 允许 VS/VU 访问 time。

常见取值

0关闭

VS/VU 读取 time 或 VS 访问 vstimecmp 不由 hcounteren 授权;若 mcounteren.TM 为 1,访问会触发 virtual-instruction exception。

1开启

允许 V=1 时读取 time,并在 Sstc 实现时允许 VS 访问 vstimecmp,除非还被其他控制位阻止。

打开官方手册
2

IR

读写

允许 VS/VU 访问 instret。

这个字段控制什么

  • - 允许 VS/VU 访问 instret。

常见取值

0关闭

VS/VU 读取 instret 不由 hcounteren 授权;若 mcounteren 对应位为 1,访问会触发 virtual-instruction exception。

1开启

允许 V=1 时读取 instret,除非还被其他控制位阻止。

打开官方手册
31:3

HPM

读写

允许 VS/VU 访问 hpmcounter3..31。

这个字段控制什么

  • - 允许 VS/VU 访问 hpmcounter3..31。

常见取值

0关闭

VS/VU 读取对应 hpmcounter3-31 不由 hcounteren 授权;若 mcounteren 对应位为 1,访问会触发 virtual-instruction exception。

1开启

允许 V=1 时读取对应 hpmcounter3-31,除非还被其他控制位阻止。

打开官方手册
官方依据与检索要点

hcounteren 是 Hypervisor 计数器使能 CSR。它是 HS/M 侧的 Hypervisor 状态,不是 VS supervisor CSR 副本;guest 访问是否允许由 H 扩展和相关 state-enable/AIA/Sstc/Smcsrind 规则决定。

hcounteren 的地址、访问类和宽度按官方 CSR 表核对:0x606,HRW(Hypervisor 读写),32 位计数器使能集合。
hcounteren 的字段含义按 Hypervisor 扩展对应章节解释;未实现字段不能当作固定可写位。
写入时只修改官方定义字段;WARL/WLRL/WPRI 和保留字段按官方规范与实现行为处理。

读这个 CSR 时先看什么

  • - hcounteren 是 Hypervisor 级 CSR;独立地址按官方表属于 HRW(Hypervisor 读写) 访问类。
  • - guest/VS 软件不能通过 supervisor CSR alias 访问该 H-level CSR;相关访问由 H 扩展和可选扩展规则控制。

写入前的风险检查

  • - 写 hcounteren 时只修改官方定义的目标字段,并保留 WPRI、保留位和未修改字段。

放回真实流程里理解

1

确认当前软件运行在可访问 Hypervisor CSR 的 M/HS 上下文。

2

确认定义该 CSR 的 H/AIA/Sstc/Smstateen/Smcsrind 等扩展已经实现。

3

按官方字段读写;guest 相关访问是否通过或 trap 由对应扩展规则和 state-enable 控制。

常见问题

hcounteren 能通过 supervisor CSR alias 访问吗?

不能把 hcounteren 当作 VS CSR 副本。它是 H-level CSR;guest/VS 访问相关功能时是否 trap 由 H 扩展和对应可选扩展规则决定。