CSR 位字段

RISC-V mviph CSR 寄存器详解

地址 0x319特权级 Machine 模式(仅 RV32)访问 机器模式读写(MRW;具体位可只读) / 32 位,映射到中断 32-63;仅 RV32Machine AIA、定时器与间接中断 CSR

`mviph`(0x319)是在实现 S 模式的 RV32 hart 上访问 64 位 `mvip` 高 32 位(中断 32-63)的 MRW CSR;AIA 要求这种实现存在该高半 CSR,但所访问的位可以全部只读为 0。

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

按 bit 字段理解 mviph

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

mviph 不是独立状态:它只是 RV32 访问 mvip[63:32](中断 32-63)的高半窗口。

仅在实现 S 模式的 RV32 hart 上存在,宽度 32,访问类 MRW。
位 31:0 精确映射 mvip[63:32]。
在该适用条件下 CSR 必须存在,但所访问位可全部只读为 0。

读这个 CSR 时先看什么

  • - 该 CSR 仅在 RV32 存在;RV64 直接通过低地址 CSR 访问完整 64 位值。
  • - 在实现 S 模式的 RV32 hart 上,AIA 要求该高半 CSR 存在,但允许其全部位只读为 0。
  • - 位 n 对应 mvip[n+32] 和中断 n+32。

写入前的风险检查

  • - 不能假定 31:0 中每位都可写;逐位遵循 mvip 对中断 32-63 的条件规则。
  • - 不要在 RV64 上访问该 RV32-only CSR。

放回真实流程里理解

1

确认当前 hart 为 RV32、实现 S 模式和 Smaia。

2

把目标中断号 n(32-63)换算为 mviph 位 n-32。

3

结合对应 mvien 位属性判断该 mvip 位是否可写。

常见问题

mviph 在 RV64 上存在吗?

不存在。RV64 直接通过 mvip 访问完整 64 位值;mviph 是 RV32-only 高半 CSR。