虚拟地址到物理地址的三级或四级页表查找过程详解
摘要:下面以 x86-64 的 4 级页表为例,详述虚拟地址到物理地址的三级或四级页表查找(page‐walk)过程,PDE/PTE 的相互关系及各字段含义,并说明页表级数与支持的页大小之间的对应。
1. 4 级页表结构概览
x86-64 采用 4 级页表,每级页表都是一个 4 KiB 大小的页,包含 512(2^9)个 8 B(64 bit)条目。4 级分别是:
- PML4(Page-Map Level-4)
- PDPT (Page-Directory Pointer Table)
- PD (Page-Directory)
- PT (Page-Table)
CR3 寄存器保存 PML4 的物理页帧号(PFN)。硬件依据 CR3 启动页表查找。
2. 虚拟地址格式
x86-64 典型使用 48 bit 虚拟地址(canonical),格式划分为:
| 63…48 (16 sign‐extension) | 47…39 | 38…30 | 29…21 | 20…12 | 11…0 |
|---|