微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM内存管理MMU详解

ARM内存管理MMU详解

时间:11-20 来源:互联网 点击:

这个入口给出粗糙第二级表( bit[1]==0 ),或精细第二级表( bit[1]==1 )。

每一种类型的表描述了它所关联的 1MB 存储区域的映射。粗糙第二级表较小,每个表 1KB ,每个精细第二级表 4KB 。然而粗糙第二级表只能映射大页和小页,精细第二级表可以映射大页、小页和微页。

节描述符和转换节参考
l 如果第一级描述符是节描述符,那么各个字段有如下的意义:

Bits[1:0] 描述符类型标识( 0b10 表示节描述符)

Bits[3:2] 高速缓存和缓冲位

Bits[4] 由具体实现定义

Bits[8:5] 这个描述符控制的节的 16 种域之一

Bits[9] 现在没有使用,应该为零

Bits[11:10] 访问控制,见表 3-3

Bits[19:12] 现在没有使用,应该为零

Bits[31:20] 节基址,形成物理地址的高 12 位

l 如果第一级描述符是粗糙页表描述符,那么各个字段有如下的意义:

Bits[1:0] 描述符类型标识( 0b01 表示粗糙页表描述符)

Bits[4:2] 由具体实现定义

Bits[8:5] 这个描述符控制的页的 16 种域之一

Bits[9] 现在没有使用,应该为零

Bits[31:10] 页表基地址是一个指向第二极粗糙页表的指针,

l 如果第一级描述符是精细页表描述符,那么各个字段有如下的意义:

Bits[1:0] 描述符类型标识( 0b11 表示精细页表描述符)

Bits[4:2] 由具体实现定义

Bits[8:5] 这个描述符控制的页的 16 种域之一

Bits[11:9] 现在没有使用,应该为零

Bits[31:10] 页表基地址是一个指向第二级精细页表的指针,它给出第二级表

访问的基地址。而第二级精细页表必须在 4KB 边界对齐。

3 、第二级转换表 存储大页和小页的转换表。一种类型的第二级表存储微页转换表。

每个粗糙第二级表对映着以4KB 为单位的虚拟地址范围市怎么映射的,每个精细第二级表对映着以1KB 为单位的虚拟地址范围市怎么映射的。那些入口是页描述符,他们能够分别描述大于4KB 或1KB 的页。在这种情况下,这个描述符必须被重复足够次,以保证这个页始终使用相同的描述符,不论访问这个页中的哪个虚拟地址。对于一个第二级描述符,有四种可能,由描述符的bits[1:0] 选择。见表3-2 :

· ? 如果bits[1:0]==0b00 ,说关联的虚拟地址没有被映射,任何对这些虚拟地

址的访问将会导致转换错(fault) 。软件可以利用这样的描述符的bits[31:2] 做自己的用途,因为他们被硬件忽略。推荐为描述符继续保持正确的访问权限。

· ? 如果bits[1:0]==0b01 ,这个入口是大页描述符,描述64KB 的虚拟地址。

见转换大页参考。一个大页描述符在精细第二级表中必须被重复64 次,在粗

糙第二级表中必须被重复16 次以保证所有的虚拟地址都被描述。

· ? 如果bits[1:0]== 0b10 ,这个入口是小页描述符,描述4KB 的虚拟地址。

见转换小页参考。一个小页描述符在精细第二级表中必须被重复4 次,以保

证所有的虚拟地址都被描述。在粗糙第二级表中只有一个实例。

· ? 如果bits[1:0]== 0b11 ,这个入口是微页描述符,描述1KB 的虚拟地址。

见转换微页参考。在精细第二级表中只需要一个微页描述符的实例。微页描

述符不能在粗糙第二级表中出现,如果出现了,结果不可预测。

大页描述符字段
大页描述符的字段有如下意义:

bits[1:0] 表示描述符的类型

bits[3:2] 高速缓促和缓冲位

bits[11:4] 访问权限位。这些为控制对页的访问。关于这些位的解释见表3-3 。

大页被分成4 各子页。

AP0 编码对第一个子页的访问权限。

AP1 编码对第二个子页的访问权限。

AP2 编码对第三个子页的访问权限。

AP3 编码对第四个子页的访问权限。

bits[15:12] 现在没有使用,应该为零。

bits[31:16] 用来形成物理地址的对应位。

?

小页描述符字段
小页描述符的字段有如下意义:

bits[1:0] 表示描述符的类型

bits[3:2] 高速缓促和缓冲位

bits[11:4] 访问权限位。这些为控制对页的访问。关于这些位的解释见表3-3 。

小页被分成4 各子页。

AP0 编码对第一个子页的访问权限。

AP1 编码对第二个子页的访问权限。

AP2 编码对第三个子页的访问权限。

AP3 编码对第四个子页的访问权限。

bits[31:12] 用来形成物理地址的对应位。

微页描述符字段
微页描述符的字段有如下意义:

bits[1:0] 表示描述符的类型

bits[3:2] 高速缓促和缓冲位

bits[5:4] 访问权限位。这些为控制对页的访问。关于这些位的解释见表3-3 关于微页的解释。

bits[9:6] 现在没有使用,应该为零。

bits[31:10] 用来形成物理地址的对应位。

MMU 把 CPU 产生的虚拟地址转换成物理地址去访问外部存储器,同时继承并检查访问权限。地址转换有四条路径。路径的选取由这个地址是被标记成节映射访问还是页映射访问确定。页映射

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top