二级地址转换 (Second-Level Address Translation, SLAT)
二级地址转换(Second-Level Address Translation,SLAT)是硬件辅助将客户机物理地址转换为宿主机物理地址的统称。Intel EPT 和 AMD NPT 提供了供应商特定的实现。
您需要了解的内容
二级地址转换(Second-Level Address Translation,SLAT)是硬件辅助将客户机物理地址转换为宿主机物理地址的统称。Intel EPT 和 AMD NPT 提供了供应商特定的实现。
工作原理
客户机自己的页表描述其虚拟内存。由虚拟机监控程序控制的第二级映射将生成的客户机物理地址与宿主机内存及访问权限关联起来。处理器在体系结构的转换和缓存规则下将这些阶段结合起来。
适用场景
虚拟机监控程序可以避免维护某些形式的影子页表,而是让硬件执行分阶段遍历。剩余的开销取决于页面大小、嵌套遍历缓存、TLB 行为和客户机内存局部性。
如何检查支持与启用状态
确定处理器供应商,并通过虚拟机监控程序支持的诊断工具检查相应的 EPT 或 NPT 功能。检查正在部署的功能的完整要求,包括固件和操作系统支持。
虚拟化部署包含多个层级:物理功能、固件许可、处于活跃状态的宿主机虚拟机监控程序、公开的客户机功能以及客户机操作系统支持。请检查操作实际运行所在的层级,适用时还应包括嵌套虚拟化。
该特性未确立的内容
SLAT 不是单独的通用 CPUID 位,不是 IOMMU 的替代品,也不是对特定操作系统虚拟化产品支持的证明。通用的 SLAT 字段需要供应商特定的解释,并不能确立每一项高级转换功能。
实践中的兼容性与性能
CPU 执行、客户机内存转换和设备 DMA 重映射属于彼此独立的功能。切勿从单一的虚拟化字段推断是否存在直通或隔离支持。请使用虚拟机监控程序受支持的诊断工具以及确切的平台/设备要求。
实用验证核对清单
- 记录所涉及的具体处理器或平台型号,以及应用程序、操作系统和运行时的版本。保留实际错误或要求的原始措辞。
- 查阅该具体型号的制造商参考资料,然后检查程序运行环境中生效的功能与启用状态。
- 逐项比对所选二进制文件或后端的每项要求。仅凭名称相似的特性、别名或宽泛的技术标签是不够的。
- 确认应用程序选择了预期的实现。在不满足要求时,使用其文档中记录的诊断工具和受支持的回退方案。
- 每次只进行一项受支持的更改并重复相同的负载测试。保留原始配置和恢复路径以便随时使用。
若特性已列出但软件无法使用
首先排查出现故障的具体组件。硬件数据库描述的是记录在案的功能;操作系统或虚拟机监控程序可能会呈现不同的生效环境。非法指令错误同样需要调查实际发生故障的指令和二进制构建版本,因为数据损坏或不相关的未受支持指令也可能产生类似症状。
安装适用于该特定平台的受支持应用程序、驱动程序或运行时版本,并在需要时使用厂商文档记录的基线或回退构建版本。软件更新无法凭空创造处理器缺失的指令。固件和安全策略的更改应遵循系统制造商的规程和恢复计划,而非通用的优化方案。
本说明的来源与适用范围
Intel 64 和 IA-32 架构软件开发人员手册 · AMD64 架构程序员手册,第 2 卷:系统编程
这些参考资料确立了架构行为和软件要求。它们并不独立验证关联硬件型号页面上的每个特性值。如需了解型号支持情况,请使用该页面的制造商证据并检查实际生效的系统配置。本文不提供基准测试、认证或独立审查日期。
来源与验证
编辑归属:Feex。未记录独立审核日期。 我们的研究方式.
- Intel 64 和 IA-32 架构软件开发人员手册 · 第 1 卷和第 2 卷描述了指定名称的指令族和 CPUID;第 3 卷描述了状态、分页、VMX 和保护控制。架构文档并不代表对某一特定型号的支持。
- AMD64 架构程序员手册,第 2 卷:系统编程 · 系统编程、SVM 和嵌套转换,修订版 3.46。当前的文档阅读器需要 JavaScript;较旧的文档 URL 可能已停用。
这篇文章有用吗?
回答"是"或"否"即可。如果您愿意,可以选择一个原因,或添加一段简短附言。
感谢。这有助于我们改进此页面。