HINVAL.GVMA 自己完成排序吗?
不完整。它执行 G-stage 失效;分离围栏序列中的 SFENCE.W.INVAL 和 SFENCE.INVAL.IR 提供排序边界。
Svinval/H G-stage 地址转换失效:rs1 选择 GPA>>2,rs2 选择 VMID,排序由 split-fence 序列提供。
HINVAL.GVMA 是 Hypervisor + Svinval 的 G-stage 地址转换缓存失效指令。它失效与 rs1/rs2 匹配的 G-stage 转换缓存条目;rs1 非 x0 时包含 guest physical address 右移 2 位后的值(GPA>>2),rs2 非 x0 时指定 VMID。rs1=x0 表示所有 guest physical addresses,rs2=x0 表示所有 VMID。它本身只执行失效;排序由 SFENCE.W.INVAL 和 SFENCE.INVAL.IR 分离围栏提供。
Svinval/H G-stage 地址转换失效:展示 SYSTEM 编码、rs1/rs2 范围选择、Svinval/H 失效,不模拟 TLB 或 cache 实现。
该动画只展示官方特权架构定义的本 hart 地址转换 fence/失效语义;不展示 OS shootdown 协议、TLB 结构、cache 刷新、页表遍历延迟或平台中断机制。
HINVAL.GVMA 是 split-fence 序列中的 G-stage 失效动作:rs1 使用 GPA>>2,rs2 使用 VMID;排序不由本指令单独完成。
结合 «hinval.gvma a1, a2 # a1 = GPA >> 2; a2 = VMID» 等实际代码理解该场景。
结合 «hinval.gvma a1, a2 # a1 = GPA >> 2; a2 = VMID» 等实际代码理解该场景。
结合 «hinval.gvma a1, a2 # a1 = GPA >> 2; a2 = VMID» 等实际代码理解该场景。
不完整。它执行 G-stage 失效;分离围栏序列中的 SFENCE.W.INVAL 和 SFENCE.INVAL.IR 提供排序边界。
不同。HINVAL.GVMA 的 rs1 非零时是 GPA>>2;HINVAL.VVMA 的 rs1 是 guest virtual address。