前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >虚拟地址(VA,virtual address)到物理地址(PA, ,physical address)的转换

虚拟地址(VA,virtual address)到物理地址(PA, ,physical address)的转换

作者头像
AsicWonder
发布2021-04-08 11:13:04
1.6K0
发布2021-04-08 11:13:04
举报
文章被收录于专栏:数字芯片实验室

其实芯片和我们的生活场景有着很多共同之处,比如需求大于供应问题。PAD复用仲裁等等都是因为多个输出需求只对应一个实际输出端口,这个时候选择哪个请求也是有讲究的。

在系统层面上,虚拟地址产生的原因之一也是因为软件应用的地址空间远大于实际物理空间。这个时候系统上的硬件或者软件除了需要完成业务,还要进行VA到PA的转换,让业务访问到实际的物理地址空间。

虚拟地址产生的另外一个原因就是给软件减负,在撸代码的时候不会关心变量具体存在那里,会不会和其它的地址范围发生冲突。

为了实现虚拟地址到物理地址的转换,那么就需要硬件具有格外的资源存储VA2PA的转换关系,即页表

那么这个时候就会涉及粒度问题,对,就是最近互联网黑话“颗粒度”中的“粒度”。

我们没有必要存储那么细粒度的页表,一般是基于4KB、16KB和64KB粒度。如果是4KB粒度,VA的低12bit就等于PA的低12bit;如果是16KB粒度,VA的低14bit就等于PA的低14bit;如果是64KB粒度,VA的低16bit就等于PA的低16bit,这也是数字芯片中业务需求和硬件资源中的一种权衡。

页表中除了保存着VA到PA的转换关系,还可以保存着相应存储空间的各种属性(比如可执行、可读和可写属性)。类似于某明星将自己有限的光阴精确管理给多位朋友,并给这些朋友打上相应的标签(是否可以一起唱歌,是否可以一起跳舞,是否可以一边唱歌一边跳舞),而这些朋友们都觉得自己在独占美好光阴。

Ha,Funny~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数字芯片实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档