哪些特权状态允许执行?
H 扩展可用且满足本页 XLEN 条件时,M/HS 可以执行;V=0 的 U-mode 还要求 hstatus.HU=1,否则为 illegal-instruction。V=1 时执行会产生 virtual-instruction 异常。
Hypervisor 虚拟机存储:按 VS/VU 有效特权和两阶段转换存储字节。
扩展条件:H 扩展 1.0;RV32/RV64。V=0,且当前为 M/HS,或 U-mode 且 hstatus.HU=1。
HSV.B 是 H 扩展虚拟机存储指令。它可在 M-mode 或 HS-mode 执行,也可在 hstatus.HU=1 时从 U-mode 执行。显式内存访问在 hstatus.SPVP=0 时按 VU 有效特权、在 hstatus.SPVP=1 时按 VS 有效特权执行,并经过 VS-stage 与 G-stage 两阶段地址转换。
展示 HSV.B 的 SYSTEM 编码、特权检查、两阶段转换与 8 位存储提交;不模拟页表遍历或 TLB 实现。
演示假定 H 扩展已实现、相关特权模式使用相同 XLEN、pointer masking 关闭;输入表示源寄存器低位;访问结果由下拉框指定,不验证真实页表。rs1=x0 时地址固定为 0。步骤是教学顺序,不代表处理器周期。
rs2=x0 时源低位固定为零;rs1=rs2 时源低位从同一地址寄存器派生,不能独立编辑。源与地址均为执行前的值。存储数值表示整个访问宽度,不模拟逐字节端序。
该动画仅展示官方定义的架构条件与结果;页表遍历、TLB、缓存和平台异常处理未建模。
HSV.B 从 rs1 直接取得访客地址,没有偏移立即数。成功时将 rs2 的低 8 位写入内存,不写 rd。
RV64 H、HS-mode、SPVP=0、pointer masking 关闭,地址 0x1000 且访问成功:a0=0x1000、a1=0x1234;hsv.b a1, (a0) 将 0x34 写入该地址的 8 字节。
H 扩展可用且满足本页 XLEN 条件时,M/HS 可以执行;V=0 的 U-mode 还要求 hstatus.HU=1,否则为 illegal-instruction。V=1 时执行会产生 virtual-instruction 异常。