本文我们展示一个只有一级页表,虚拟地址转换为物理地址的示例。
其中VA为32比特(共4GB地址空间),每个页大小为1MB,所以一共4096个页表项。
每个页表项指向的都是1MB页表大小的页表项,其中会给出物理地址的高位比特([31:20])。
上图中的页表基地址Translation Table Base Address(TTBA)是由软件指定的。当MMU执行硬件页表转换时,需要根据页表的基地址和VA[31:20] index获取VA-PA映射关系,以页表粒度完成VA-PA的转换,例如1MB粒度,那么
VA[19:0]=PA[19:0]
上图中页表的基地址为0x12300000,每个页表项的大小为4Byte,VA为0x00100000,高12比特(0x001)作为页表的索引index。所以这个VA-PA需要使用到的页表项存储地址为
Base addr + 0x001 * 4 bytes = 0x12300004
最后,根据拿到的VA-PA映射关系就可以拿到PA了,具体的页表格式根据不同的实现而异。
上图是个示例的32比特页表格式,根据低2比特确定这个页表项的类型。
2`b00:invalid 页表,上报异常,由软件处理。
2`b10:指向的是物理地址。
2`b01:指向的是下一级页表的基地址。
假设低2比特为2’b10,那么这个页表项中的内容就是实际指向的物理地址。页表项中除了指定了物理地址,还包含了页的内存属性(访问权限、cache属性、buffer属性等等)。
简单来说就是指定了访问物理地址空间所需的全部信息。
审核编辑:刘清
-
存储
+关注
关注
13文章
4367浏览量
86259 -
Cache
+关注
关注
0文章
129浏览量
28462 -
内存交换
+关注
关注
0文章
2浏览量
6395
发布评论请先 登录
相关推荐
MAC地址的作用范围,MAC地址怎么申请?
![MAC<b class='flag-5'>地址</b>的作用范围,MAC<b class='flag-5'>地址</b>怎么申请?](https://file1.elecfans.com/web2/M00/C6/E0/wKgaomYD42aAX09IAAAbd7WOV8g618.png)
怎么绑定IP地址和MAC地址
IP地址归属地离线库——网络安全行业的基石
如何获取MAC地址?MAC地址的三个申请条件
![如何获取MAC<b class='flag-5'>地址</b>?MAC<b class='flag-5'>地址</b>的三个申请条件](https://file1.elecfans.com/web2/M00/06/76/wKgaombax96AKmMkAAASnwFohfM146.png)
RV32 和 RV64 特权架构:模块化特性满足系统需求
IP地址与NAT技术的结合与应用
![](https://file1.elecfans.com/web2/M00/03/CF/wKgaoma-i9GAV_m3AARBqTeSbBo092.jpg)
IP地址的分配
怎么申请MAC地址?MAC地址申请流程分享
![怎么申请MAC<b class='flag-5'>地址</b>?MAC<b class='flag-5'>地址</b>申请流程分享](https://file1.elecfans.com/web2/M00/C6/E0/wKgaomYD42aAX09IAAAbd7WOV8g618.png)
NAT网络地址转换和DMZ隔离是什么意思
如何注册星闪Sparklink设备媒体接入层标识、地址码?
![如何注册星闪Sparklink设备媒体接入层标识、<b class='flag-5'>地址</b>码?](https://file1.elecfans.com/web2/M00/C7/71/wKgZomYTtYaAHhJjAACpPlNDNOI154.png)
Linux内核内存管理之内核非连续物理内存分配
![Linux内核内存管理之内核非连续<b class='flag-5'>物理</b>内存分配](https://file1.elecfans.com/web2/M00/C1/9D/wKgaomXX-KCADAsrAAAaZXMwKKg445.png)
评论