HINVAL.VVMA 的 rs2 是 VMID 吗?
不是。rs2 是 ASID;当前 VMID 来自虚拟化上下文。
Svinval/H VS-stage 地址转换失效:rs1 选择 guest virtual address,rs2 选择 ASID,当前 VMID 来自虚拟化上下文。
HINVAL.VVMA 是 Hypervisor + Svinval 的 VS-stage 地址转换缓存失效指令。它失效与 rs1 指定 guest virtual address 和 rs2 指定 ASID 匹配的 VS-stage 转换缓存条目;rs1=x0 表示所有 guest virtual addresses,rs2=x0 表示所有 ASID。当前 VMID 来自虚拟化上下文而不是 rs2。它本身只执行失效;排序由 SFENCE.W.INVAL 和 SFENCE.INVAL.IR 分离围栏提供。
Svinval/H VS-stage 地址转换失效:展示 SYSTEM 编码、rs1/rs2 范围选择、Svinval/H 失效,不模拟 TLB 或 cache 实现。
该动画只展示官方特权架构定义的本 hart 地址转换 fence/失效语义;不展示 OS shootdown 协议、TLB 结构、cache 刷新、页表遍历延迟或平台中断机制。
HINVAL.VVMA 是 split-fence 序列中的 VS-stage 失效动作:rs1 选择 guest virtual address,rs2 选择 ASID,当前 VMID 不来自 rs2。
结合 «hinval.vvma a1, a2 # a1 = guest virtual address; a2 = ASID» 等实际代码理解该场景。
结合 «hinval.vvma a1, a2 # a1 = guest virtual address; a2 = ASID» 等实际代码理解该场景。
结合 «hinval.vvma a1, a2 # a1 = guest virtual address; a2 = ASID» 等实际代码理解该场景。
不是。rs2 是 ASID;当前 VMID 来自虚拟化上下文。
HINVAL.VVMA 执行 VS-stage 失效,排序由 split-fence 序列提供;HFENCE.VVMA 是完整的 VS-stage 地址转换围栏。