[Linux内存]linux内存学习(四)——MMU

本文介绍了ARM体系结构中的MMU基本概念及其工作原理,详细解释了页表如何实现虚拟地址到物理地址的转换过程,并概述了ARM64位体系结构下MMU对48位虚拟地址的支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,ARM MMU
ARM体系结构与编程第五章
MMU的基本概念:
MMU基本原理
系统通过MMU将物理地址映射成虚拟地址,最小单位为页,虚拟地址空间一个页对应物理地址的一个页框

ARM MMU原理

虚拟地址映射到物理地址的原理:页表是实现虚拟地址到物理地址转换的一个重要手段。我们在使用MMU以前,需要在内存中新建一个页表。表中的每一行(即一个字的大小)
存放的是一个物理内存页的基地址,该页的访问权限和缓冲特性等,这里将页表中这样的一行称为一个地址变换条目。页表存放在内存中,CP15的C2寄存器用来存放页表的基地址。虚拟地址被MMU分为两部分,,第一部分是页号索引(page Index),第二部分则是相对该页首地址的偏移量(offset)当CPU访问一个地址时,该地址是虚拟地址,于是该地址被送到MMU,MMU再根据虚拟地址的高几位作为页号索引,在页表中寻找对应的地址变换条目。从地址变换条目中找到物理地址的页基地址,再加上虚拟地址中的偏移量,便得到了真正的物理地址,然后由MMU将物理地址发送到地址总线上,访问物理内存。
一级页表举例:CPU要访问0x300008的地址,此地址为虚拟地址。MMU会根据页索引号(也就是 0x3 )找到相对页表基地址偏移量为0x3的项。
这个项中的物理段基地址为0x006。物理地址 = (0x006<<20)+0x8=0x600008



2,ARM64 MMU

ARM64位(ARMv-8)中可以支持48位的虚拟地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值