MMU

MMU(内存管理)

1:将程序中的虚拟地址映射到具体的物理地址,所谓虚拟地址,即为程序中的地址,对于不同的程序所使用的虚拟地址可能相同,但是通过mmu,可以将其映射到不同的物理地址,防止访问上的冲突。

2:控制访问的权限管理。

 

 

深入剖析地址转换

对于一个地址,假设为32位的虚拟地址:

31-20位索引符

 

 

根据高31-20位描述符表数据,在translation table中找到一个32位的表项。

 

 

1-0

这个表项的最后两位决定寻址方式:

00:表示无效的转化方式

01:表示粗页转化方式,较少用

10:表示段转化方式

11:表示细页转化方式

注意四几个问题:

1:表象是由工程师自己建立的

2:表项的存储在内存中

3:表项的基地址TTB(translation table base),这个地址由工程师自己决定,定义好后,将地址存储到cp15中的c2寄存器中。

 

段转换方式

表项:

基地址31-20

 

 10

虚拟地址:

31-20位索引符

 

 

表项的最后两位为10,则表示使用段转化方式,相应的虚拟地址中19-0位则作为偏移地址。

 

段式一阶表项结构:

 

 

cachebuffer

 

上图是CPU读取数据需要经过哪些部分缓冲区

 

ARM 中将存储空间分为了16个域,具体使用哪个域由一级表项中的“damain()”决定

 

细页转换方式:

虚拟地址:

31-20位索引符(实际上是一级也表的偏移)

19-11二级页表偏移地址

10-0位物理页偏移地址

 

一级页表项:

31-20位二级页表基地址

 

 11

 

二级页表项:

物理页基地址

 

 

 

注意:一级表项和二级页表是需要工程师自己定义的。

转载于:https://www.cnblogs.com/big-devil/p/8589410.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值