CSR 位字段

RISC-V vsiph CSR 寄存器详解

地址 0x254特权级 Hypervisor 直接访问 / VS 别名访问访问 HRW(Hypervisor 读写) / 32 位(RV32 高半)Hypervisor 与虚拟化 CSR

vsiph 是 RV32 上 vsip 的高 32 位 CSR。

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

按 bit 字段理解 vsiph

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

vsiph 是 AIA 在 RV32 上定义的 vsip[63:32] 高半 CSR。RV32 M/HS 可用独立地址访问;V=1 的 RV32 guest 通过 siph 别名访问,且访问可能受 AIA state-enable 位限制。

vsiph 的地址、访问类和宽度按官方 CSR 表核对:0x254,HRW(Hypervisor 读写),32 位(RV32 高半)。
vsiph 只用于 RV32 访问 vsip 的高 32 位;AIA 将它列为 RV32-only 高半 CSR。
mstateen0.AIA 控制较低特权级对 vsiph 等 AIA 状态的访问;hstateen0.AIA 控制 VM 通过 siph 访问 vsiph(仅 XLEN=32)。
写入时只修改官方可写的高半中断位;只读零、保留和未实现位不获得 pending 语义。

读这个 CSR 时先看什么

  • - vsiph 的独立 CSR 地址按 AIA 表属于 HRW,宽度 32 位,且只作为 RV32 的 vsip 高半 CSR 存在。
  • - VS-mode 在 V=1 时通过 siph 别名访问 vsiph;直接访问独立 VS CSR 地址会触发 virtual-instruction exception。
  • - 若实现 Smstateen/Ssstateen,mstateen0.AIA 和 hstateen0.AIA 可限制较低特权级或 VM 对该 AIA 高半状态的访问。

写入前的风险检查

  • - 写 vsiph 时只修改官方可写的 VS-level 高半中断位;只读零、保留位和未实现中断位必须按官方规则处理。

放回真实流程里理解

1

RV32 M/HS 软件可通过 0x254 独立 CSR 地址访问 vsiph。

2

RV32 guest 在 V=1 时通过 siph 别名访问 vsiph;XLEN > 32 时 siph/sieh 高半访问按 AIA state-enable 规则不会成为普通 VS 高半 CSR 访问。

3

先检查 hideleg/hvien、AIA 和 state-enable 条件,再解释或更新 32..63 号 VS-level 中断位。

常见问题

vsiph 的独立地址能由 VS-mode 直接访问吗?

不能。H 扩展规定 V=1 时 guest 通过对应 supervisor CSR 别名访问 VS 状态;直接读写独立 VS CSR 地址会触发 virtual-instruction exception。

vsiph 主要保存什么?

vsiph 保存 vsip[63:32]。这些位只对 AIA、hideleg/hvien 或其它官方定义为可见的 VS-level 中断具有挂起含义。