地址翻译
地址翻译是将虚拟地址(VA)转换为物理地址(PA)的过程,由MMU(内存管理单元) 负责执行。翻译过程涉及虚拟地址的分解和页表查询。
虚拟地址分解:
- VPN(Virtual Page Number):虚拟页号,用于索引页表查找对应的PTE。
- VPO(Virtual Page Offset):虚拟页内偏移,直接对应物理地址的页内偏移(PPO)。
翻译流程:
- MMU从虚拟地址中提取VPN。
- 以VPN为索引访问页表,获取对应的PTE。
- 检查PTE的有效位:若为1(页命中),提取PPN;若为0(缺页),触发缺页异常。
- 将PPN与VPO拼接,形成完整的物理地址。
页命中时:MMU直接组合PPN和VPO得到PA,访问内存。
缺页时:MMU触发异常,操作系统缺页处理程序介入,从磁盘加载所需页到物理内存,更新PTE,然后重新执行触发缺页的指令。
整个翻译过程对进程完全透明,进程始终只使用虚拟地址。
链接到
- 上一个知识点:9.8 虚拟内存作为内存保护工具
- 下一个知识点:9.10 TLB加速