通过处理器中的MMU进行VA-PA转换

描述

处理器中的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。


审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分