哪些特权状态允许执行?
H 扩展可用且满足本页 XLEN 条件时,M/HS 可以执行;V=0 的 U-mode 还要求 hstatus.HU=1,否则为 illegal-instruction。V=1 时执行会产生 virtual-instruction 异常。
Hypervisor 虚拟机加载:按 VS/VU 有效特权和两阶段转换加载零扩展字。
扩展条件:H 扩展 1.0;仅 RV64。V=0,且当前为 M/HS,或 U-mode 且 hstatus.HU=1。
HLV.WU 是 H 扩展中对应 LWU 的虚拟机加载指令。它可在 M-mode 或 HS-mode 执行,也可在 hstatus.HU=1 时从 U-mode 执行。显式内存访问在 hstatus.SPVP=0 时按 VU 有效特权、在 hstatus.SPVP=1 时按 VS 有效特权执行,并经过 VS-stage 与 G-stage 两阶段地址转换。 HLV.WU 和 HLV.D 在 RV32 上无效。
展示 HLV.WU 的 SYSTEM 编码、特权检查、两阶段转换与零扩展写回;不模拟页表遍历或 TLB 实现。
演示假定 H 扩展已实现、相关特权模式使用相同 XLEN、pointer masking 关闭;输入是已组装的内存数值,访问结果由下拉框指定,不验证真实页表。rs1=x0 时地址固定为 0。步骤是教学顺序,不代表处理器周期。
该动画仅展示官方定义的架构条件与结果;页表遍历、TLB、缓存和平台异常处理未建模。
HLV.WU 从 rs1 直接取得访客地址,没有偏移立即数。成功时将 32 位加载值零扩展到 XLEN 后写 rd;rd=x0 只丢弃结果,不取消访问。
RV64 H、HS-mode、SPVP=0、pointer masking 关闭,地址 0x1000 且访问成功:a1=0x1000、已组装的内存值=0x80000001;hlv.wu a0, (a1) 得到 a0=0x0000000080000001。
H 扩展可用且满足本页 XLEN 条件时,M/HS 可以执行;V=0 的 U-mode 还要求 hstatus.HU=1,否则为 illegal-instruction。V=1 时执行会产生 virtual-instruction 异常。