它是用户态普通指令吗?
不是。该类指令受特权级和扩展支持约束,用户态是否可执行必须看官方特权规则。
Svinval/H 的 VS-stage 失效指令:按 guest virtual address 与 ASID 失效,排序由分离围栏提供。
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 提供。
HINVAL.VVMA 是 Svinval/H 的 VS-stage 地址转换失效,只执行失效;排序由 SFENCE.W.INVAL 与 SFENCE.INVAL.IR 分离围栏提供。
结合 «hinval.vvma a1, a2» 等实际代码理解该场景。
结合 «hinval.vvma a1, a2» 等实际代码理解该场景。
结合 «hinval.vvma a1, a2» 等实际代码理解该场景。
不是。该类指令受特权级和扩展支持约束,用户态是否可执行必须看官方特权规则。
不能简单替代。地址转换、指令获取和数据内存排序分别有不同的 fence/失效指令。