上QQ阅读APP看书,第一时间看更新
2.2.2 AMD NPT
AMD NPT是AMD公司提供的一种内存虚拟化技术,它可以将客户机物理地址转换为宿主机物理地址。而且,与传统的影子页表不同,一旦嵌套页面生成,宿主机将不会打断和模拟客户机gPT(guest Page Table,客户机页表)的修正。
在NPT中,宿主机和客户机都有自己的CR3寄存器,分别是nCR3(nested CR3)和gCR3(guest CR3)。gPT负责客户机虚拟地址到客户机物理地址的映射。nPT(nested Page Table,嵌套页表)负责客户机物理地址到宿主机物理地址的映射。客户机页表和嵌套页表分别是由客户机和宿主机创建。其中,客户机页表存在客户机物理内存中,由gCR3索引。而嵌套页表存在宿主机物理内存中,由nCR3索引。当使用客户机虚拟地址时,会自动调用两层页表(gPT和nPT)将客户机虚拟地址转换成宿主机物理地址,如图2-8所示。
图2-8 NPT原理图
当地址转换完毕时,TLB将会保存客户机虚拟地址到宿主机物理地址之间的映射关系。