处理器中的MMU可以让我们能够构建具有多个VA-PA映射表的数字系统。
不同程序操作同一个VA,这个VA被不同的页表映射到不同的PA。
操作系统内核将每个应用程序的指令和数据放在物理内存中,但是应用程序并不是直接通过物理地址读写这些指令和数据。简单来说,就是通过MMU进行VA-PA转换,这让程序设计变得简单很多。
所有的程序员都应该了解和感谢虚拟地址,它让你的工作没那么dirty。因为这个dirty的工作被操作系统和硬件完成了。
页表
在处理器中这种VA-PA的映射关系称为页表,页表中的每一个页表项都完成了某个VA-PA的映射对应。页表格式其实还比较复杂,除了VA-PA的映射关系,还有其他的一些内存属性和访问权限定义。
处理器内核生成的地址都是虚拟地址,然后在访问实际物理内存空间之前通过MMU映射成了物理地址。但是,基于不同的页表粒度大小,比如说4KB,实际的VA-PA的映射只是将高比特做了替换。
在早期这个VA-PA的映射过程并不是由硬件完成的,后来才由硬件完成这个VA-PA转换,形象点来说称为translation table walking。
审核编辑:刘清
-
处理器
+关注
关注
68文章
19167浏览量
229153 -
MMU
+关注
关注
0文章
91浏览量
18268
发布评论请先 登录
相关推荐
评论