rs2=x0 或 rs1=rs2 时存储什么?
rs2=x0 存储 16 位零;rs1=rs2 时使用同一个执行前寄存器值,低 16 位作为数据、完整值作为地址。
Hypervisor 虚拟机存储:按 VS/VU 有效特权和两阶段转换存储半字。
HSV.H 是 H 扩展虚拟机存储指令。它可在 M-mode 或 HS-mode 执行,也可在 hstatus.HU=1 时从 U-mode 执行。显式内存访问在 hstatus.SPVP=0 时按 VU 有效特权、在 hstatus.SPVP=1 时按 VS 有效特权执行,并经过 VS-stage 与 G-stage 两阶段地址转换。
展示 HSV.H 的 SYSTEM 编码、特权检查、两阶段转换与 16 位存储提交;不模拟页表遍历或 TLB 实现。
演示假定 H 扩展已实现、相关特权模式使用相同 XLEN、pointer masking 关闭;输入表示源寄存器低位;访问结果由下拉框指定,不验证真实页表。rs1=x0 时地址固定为 0。步骤是教学顺序,不代表处理器周期。
rs2=x0 时源低位固定为零;rs1=rs2 时源低位从同一地址寄存器派生,不能独立编辑。源与地址均为执行前的值。存储数值表示整个访问宽度,不模拟逐字节端序。
该动画仅展示官方定义的架构条件与结果;页表遍历、TLB、缓存和平台异常处理未建模。
HSV.H 是 H 扩展的 虚拟机半字存储,以内存访问的 VS/VU 有效特权经过 VS-stage 与 G-stage 两阶段转换存储数据。
假定 RV64 H、HS-mode、SPVP=0、pointer masking 关闭、转换/保护成功;a0=0x1000、a1=0x123456789ABCDEF0。hsv.h a1, (a0) 将低 16 位 0xDEF0(2 字节) 存入该地址;寄存器不写回。
假定 RV64 H、HS-mode、SPVP=0、pointer masking 关闭、转换/保护成功;a0=0x1000、a1=0x123456789ABCDEF0。hsv.h a1, (a0) 将低 16 位 0xDEF0(2 字节) 存入该地址;寄存器不写回。
假定 RV64 H、HS-mode、SPVP=0、pointer masking 关闭、转换/保护成功;a0=0x1000、a1=0x123456789ABCDEF0。hsv.h a1, (a0) 将低 16 位 0xDEF0(2 字节) 存入该地址;寄存器不写回。
rs2=x0 存储 16 位零;rs1=rs2 时使用同一个执行前寄存器值,低 16 位作为数据、完整值作为地址。