ARM基础学习-存储管理单元MMU

本文详细介绍了ARM架构中的存储管理单元MMU的工作原理,包括虚拟地址到物理地址的映射、存储访问权限控制和虚拟存储空间的缓冲特性。MMU利用页表进行地址转换,而TLB作为高速缓冲,提高地址变换效率。文中还探讨了页表、TLB更新、MMU启用和禁用时的存储访问过程,以及虚拟地址映射物理地址的分页机制,包括一级映射和二级映射的概念和应用场景。
摘要由CSDN通过智能技术生成

在ARM系统中,存储单元MMU的主要完成以下工作:
(1) 虚拟存储空间到物理存储空间的映射;ARM 采用页式虚拟存储管理,把虚拟空间分成固定大小的块,每一块称为一页;物理内存地址空间也分成同样大小的页;页的大小分为粗粒度和细粒度;MMU需要实现虚拟地址到物理地址的转换;
(2) 存储器访问权限的控制;
(3) 设置虚拟存储空间的缓冲的特性;

页表是实现MMU的重要手段,页表存储与内存中,表的每一行对应于虚拟空间的一个页,该行包含了虚拟内存页对应的物理内存页的地址;通过CP15协处理器的寄存器C2来保存页表的基地址;

TLB

(1)概念

在程序运行的一段时间内,对页表的访问只是局限在少数的几个单元中,可以采用一个容量更小,访问速度和通用寄存器相当的存储器来存放当前访问需要的地址变换条目;这个小容量的页表称为快表,也可以称为TLB(Translation Lookaside Buffer);

当CPU访问内存时,现在TLB中查找需要的地址变换条目。如果该条目不存在,CPU从位于内存的页表中查询,并把相应的结果添加到TLB中。这样,当CPU下一次又需要该地址变换条目时,可以从TLB中直接得到,从而使地址变换的速度大大加快。

当内存中的页表内容改变,或者通过修改CP15中的寄存器C2使用新的页表时,TLB的内容需要全部清除。MMU提供了相关的硬件支持这种操作。CP15中的寄存器C8用来 控制清除TLB内容的相关操作。

MMU可以将某些地址变换条目锁定在TLB中,从而使得进行与该地址变换条目相关的地址变换速度保持很快。在MMU中C10用于控制TLB内容的锁定。

注:TLB中存放的是地址变换条目,相当于一个小页表。

(2)TLB更新变化条目

a、使能MMU时的存储访问过程。

当ARM处理器请求存储访问时,首先在TLB中查找虚拟地址。如果系统中数据TLB和指令TLB是分开的,在取指令时,从指令TLB查找相应的虚拟地址,对于其他内存访问操作,从数据TLB中查找相应的虚拟地址。

如果虚拟地址对应的地址变换条目不在TLB中,CPU从位于内存的页表中查询,并把相应的结果添加到TLB中。如果TLB已经满了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值