您的位置 首页 系统

ARM中MMU之地址转化

最近看了看mmu,找了好多资料,看了好多博文终于稍微清楚了一点,现在我把自己理解的内容总结一下:首先我来说一下MMU的作用,MMU就是负责…

最近看了看mmu,找了许多材料,看了许多博文总算略微清楚了一点,现在我把自己了解的内容总结一下:

首要我来说一下MMU的效果,MMU便是担任虚拟地址(virtual address)转化成物理地址(physical address)。

下面我来说一下ARM CPU上的地址转化进程触及三个概念:虚拟地址(VA)(CPU内核对外宣布VA),改换后的虚拟地址(MVA)(VA被转化为MVA供cache和MMU运用,在此将MVA转化为PA),物理地址(PA)(最终运用PA读写实践设备)。

(1)CPU看到的用到的仅仅VA,CPU不论VA最终是怎样到PA的;

(2)而cache、MMU也是看不到VA的,它们运用的是MVA(VA到MVA的转化是由硬件主动完结的);

(3)实践设备看不到VA、MVA,读写设备运用的是PA物理地址。

前期的衬托基本完结,接下来进入要点。

在此进程中要用到以下两个必备的东西:

1、cp15协处理器的c2寄存器(这个里边的东西需求程序员自己装载)

2、虚拟地址MVA。

接下来我说以下mmu对虚拟地址到物理地址的转化进程。

1、不管进行那种有用转化都必须进行一级页表的转化,所以咱们先去发生一级页表。发生一级页表经过以下进程

a) 由协处理器CP15中的寄存器C2(高18位,即[31:14]为转化表基地址,低14位为0)为一级转化表基地址,即TTB该地址指向了一个2^14=16KB巨细的存储区,即一级转化表。

b) 将MVA的高12位,即位[31:20]作为一级转化表的地址索引,因而一级转化表具有2^12=4096项,这4096项的地址为32位,最高的18位[31:14]为寄存器C2的高18位,中心12位为MVA的高12位[31:20],最低2位为0b00。这4096项中的内容称为一级描述符。至此一级页表发生完毕。

2、mmu拿到一级描述符首要看它的后两位也便是bits[1:0],依据这两位的取值mmu会进入不同的转化形式,这两位会出现下面四种取值。其间这四种取值别离对应四种形式,下面我逐个解说。

a) 00 无效不进行转化

b) 01 进行粗页式转化

c) 10 进行段式转化

d) 11 进行细页式转化

3、接下来关于不同的转化形式,就要进行不同的转化。我下面将对三种转化形式进行逐个剖析。

a) 0b10(段式转化),把段式转化放在第一个说的原因是在ARM中许多用到了段式和细页式转化。

段式转化是最简略的一种转化方法,它是将咱们方才发生的一级描述符(即4096项中的内容)的高12位作为段的基地址,用MVA的低20位作为每个段的偏移量,由此咱们能够轻松的推出每个段的巨细为2^20=1MB,至此咱们就得到了一个物理地址PA。

b) 0b11(细页式转化)

细页式转化,它是将咱们方才发生的一级描述符的高20位bits[31:12],再加上MVA的bits[19:10](第二级表索引)合体,bits[1:0]补0,获取第二级描述符的地址,至此其一级转化完毕,由于其二级转化方法和粗页式的二级转化方法相同所以我下面一块剖析。

c) 0b01(粗页式转化)

粗页式转化,它是将咱们方才发生的一级描述符的高22位bits[31:10],再加上MVA的bits[19:12](第二级表索引)合体,最终两位补0,获取第二级描述符的地址(32位),至此其一级转化完毕。

4、下面咱们将进入二级转化,关于二级转化只针对细页式和粗页式,没有段式转化。

a) 经过一级转化咱们得到了二级描述符的地址,咱们经过此地址能够得到二级描述符,咱们依据二级描述符的低两位bits[1:0]相同能够分为四种转化形式:

i. 00 无效不进行转化

ii. 01 大页描述符

iii. 10 小页描述符

iv. 11 极小页描述符

b) 接下来我将对各个形式进行剖析。

i. 01(大页描述符)

此刻咱们取出二级描述符中的bits[31:16]——大页基址,它和MVA的bits[15:0]组成一个32位的物理地址,这便是MVA对应的PA。

ii. 10(小页描述符)

此刻咱们取出二级描述符中的bits[31:12]与MVA的bits[11:0]组成一个32位的地址,这便是MVA对应的PA。

iii. 11(极小页描述符)

此刻咱们取出二级描述符中的bits[31:10]与MVA的bits[9:0]组成一个32位的地址,这便是MVA对应的PA。

以上便是MMU对虚拟地址转化到物理地址的进程,自己第一次写学习笔记,还有许多不足之处还请各位长辈指导,谢谢各位。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/xitong/277072.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部