地址翻译

地址翻译是将虚拟地址(VA)转换为物理地址(PA)的过程,由MMU(内存管理单元) 负责执行。翻译过程涉及虚拟地址的分解和页表查询。

虚拟地址分解

  • VPN(Virtual Page Number):虚拟页号,用于索引页表查找对应的PTE。
  • VPO(Virtual Page Offset):虚拟页内偏移,直接对应物理地址的页内偏移(PPO)。

翻译流程

  1. MMU从虚拟地址中提取VPN。
  2. 以VPN为索引访问页表,获取对应的PTE。
  3. 检查PTE的有效位:若为1(页命中),提取PPN;若为0(缺页),触发缺页异常。
  4. 将PPN与VPO拼接,形成完整的物理地址。

页命中时:MMU直接组合PPN和VPO得到PA,访问内存。

缺页时:MMU触发异常,操作系统缺页处理程序介入,从磁盘加载所需页到物理内存,更新PTE,然后重新执行触发缺页的指令。

整个翻译过程对进程完全透明,进程始终只使用虚拟地址。

链接到