[VMM]虚拟地址到物理地址的三级或四级页表查找过程详解

虚拟地址到物理地址的三级或四级页表查找过程详解

       摘要:下面以 x86-64 的 4 级页表为例,详述虚拟地址到物理地址的三级或四级页表查找(page‐walk)过程,PDE/PTE 的相互关系及各字段含义,并说明页表级数与支持的页大小之间的对应。


1. 4 级页表结构概览

       x86-64 采用 4 级页表,每级页表都是一个 4 KiB 大小的页,包含 512(2^9)个 8 B(64 bit)条目。4 级分别是:

  1. PML4(Page-Map Level-4)
  2. PDPT (Page-Directory Pointer Table)
  3. PD (Page-Directory)
  4. PT (Page-Table)

CR3 寄存器保存 PML4 的物理页帧号(PFN)。硬件依据 CR3 启动页表查找。


2. 虚拟地址格式

x86-64 典型使用 48 bit 虚拟地址(canonical),格式划分为:

63…48 (16 sign‐extension)47…3938…3029…2120…1211…0