arm mmu

一个两级页表集合存储在内存中用来控制地址转换,权限检查,内存区域属性。

MMU使用一个转换查找缓冲(TLB)来缓存页表. 地址转换映射可分为页表映射和区域映射。

  * 大页映射

  * 小页映射

  * 极小页映射

  * 段(section) 映射

段映射只要一级转换, 页映射需要2级转换.

段描述符:  提供1M内存块的基址, 即一个描述符描述1M的内存空间.

bits 31........................20    19.....12  11 10  9  8...........5  4  3  2  1  0

  Section base address      SBZ        AP     0   Domain  1  C  B  1  0

Bit[1:0] 表示描述符类型: 10=段描述符,  01=粗页描述符, 10=小页描述符, 00=错误

1. ARM的mmu权限设置由描述符中的AP字段和DOMAIN字段以及DOMAIN寄存器组合描述的.


2. DOMAIN(CP15 c3)寄存器提供了16个域(一个域占2bit),  每个域可以有3种权限可供选择:

    ==00 : 没有访问权限

    ==01 : 访问时检查权限(检查section或者page描述符的AP字段 --- client mode)

    ==10 :  Reserved

    ==11 : 不检查访问权限(kernel mode)

 读写domain寄存器操作如下:

MRC p15, 0, <Rd>, c3, c0, 0 		; 	read domain access permissions
MCR p15, 0, <Rd>, c3, c0, 0 		; 	write domain access permissions




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ARM是一种广泛使用的处理器体系结构,它被用于包括智能手机、平板电脑和其他便携式设备等许多应用中。ARM处理器在执行应用程序时必须访问内存,因此为了保护系统的安全性和稳定性,需要使用内存管理单元(MMU)。 MMU是一种硬件设备,它在CPU执行程序时提供一种虚拟地址空间和实际物理地址空间之间的映射。MMU将真实的物理地址与虚拟地址进行映射,这样ARM处理器就可以将指令和数据从内存中读取出来。MMU还提供了一种保护机制,可以在进程之间隔离不同的内存空间,避免各个进程间的干涉。 在ARM体系结构中,MMU有两个关键组成部分:页表和TLB。页表是一种用来存储地址转换信息的数据结构,其中每个页表项存储有关与该虚拟地址相关的物理地址的信息。TLB是一个高速缓存,它存储最近使用的页表项以加速地址转换。 ARM MMU需要进行两种类型的地址转换:虚拟地址到物理地址的转换和背景映射的动态操作。虚拟地址到物理地址的转换通常是根据硬件逻辑中所定义的一组规则执行的。例如,由4KB大小的页面组成的虚拟地址空间可以映射到由4KB大小的页面组成的物理地址空间中。这个转换过程可以通过查询页表来完成。背景映射包括动态地址转换,以及TLB的管理和刷新。例如,内核可以在页表中描述一个虚拟地址范围,并将该范围映射到一个物理地址范围。因为一个进程可能有多个地址空间,所以需要确保只有虚拟地址空间是不同的,物理地址空间应该是隔离的。 总的来说,ARM MMU是一种重要的硬件设备,它提供了一种安全的和可靠的内存管理机制。它通过为每个进程提供独立的地址空间,可以有效地保护系统的安全性和稳定性,同时也为系统提供了强大的性能和灵活性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值