EPT和VPID简介

来源:互联网 发布:赌场 知乎 编辑:程序博客网 时间:2024/05/17 22:59

EPT(Extended Page Tables,扩展页表),它是针对内存管理单元(MMU)的虚拟化扩展。EPT降低了内存虚拟化的难度(与影子页表相比),也提升了内存虚拟化的性能。
在硬件EPT特性加入之前,影子页表(Shadow Page Tables)是从软件上维护了从客户机虚拟地址(Guest Virtual Address,GVA)到宿主机物理地址(Host Physical Address,HPA)之间的映射,每一份客户机操作系统的页表也对应一份影子页表。有了影子页表,在普通的内存访问时都可实现从GVA到HPA的直接转换,从而避免了两次地址转换(客户机虚拟地址到客户机物理地址,客户机物理地址到宿主机物理地址)。Hypervisor将影子页表载入到物理上的内存管理单元(Memory Management Unit,MMU)中进行地址翻译。

影子页表的作用

尽管影子页表提供了物理MMU硬件中能使用的页表,但是其缺点也是比较明显的。首先影子页表实现非常复杂,导致其开发、调试和维护都比较困难。其次,影子页表的内存开销也比较大,因为需要为每个客户机进程对应的页表都维护一个影子页表。
为了解决影子页表存在的问题,Intel的CPU提供了EPT技术(AMD提供的类似技术叫做NPT,Nested Page Tables),直接在硬件上支持GVA–>GPA–>HPA的两次地址转换。下图展示了Intel的EPT技术的基本原理:
EPT基本原理

0 0
原创粉丝点击