ARM的MMU内存管理工作原理

本文深入探讨了ARMv7架构下的内存管理单元(MMU)及其工作原理,包括虚拟地址、物理地址、线性地址之间的关系,MMU的作用,以及MMU如何通过TLB进行地址转换。详细阐述了一级映射的1M Section和二级映射的4K Page映射方式,解析了页表项格式和地址计算过程,为理解MMU在多任务环境中的内存管理和地址转换提供了清晰的指导。


旨在系统理解mmu,带着问题来理解原理,本文以armv7进行说明。

1.虚拟地址 物理地址 逻辑地址 线性地址 运行地址之间的联系?

逻辑地址是由编译器所产生的符号表里面的地址(可以使用binutils工具查看可执行文件的符号表);
(逻辑地址通过段映射为线性地址(虚拟地址为中间层),如果未开启二级映射,其实就是物理地址。这个是x86中的说法)因为arm将最开始的地址称为VA即virtual address,即虚拟地址,然后有一个中间层的地址,最后到物理地址。
不要被这些地址的名字所蒙蔽,先看原理再回过头看看就是有清晰的认知。
物理地址、运行地址是一样的,比如符号表产生的汇编代码的地址为0x12345678,在没有mmu的情况下,运行地址也必须是0x1234567才能保证指令的正确运行,否则有可能会出错。mmu的出现便是一种较好的解决方法。

2.MMU是什么?以及有mmu有什么作用?

MMU即memory management unit内存管理单元,提供了关于内存的重要功能,使得多任务变得可能,可以使得内核任务的所访问地址是独立的,然后通过mmu转换为实际的物理地址,而无需人为的重定位。

3.MMU、RAM与arm core之间的关系?

在这里插入图片描述
arm核访问虚拟地址,通过mmu转换为实际的物理地址,可以简单认为mmu就是一个转换表,实现虚拟地址到物理地址之间的转换。

4.MMU的TLB与配置

何为TLB,缩写为Translation Lookaside Buffe,其实还是个表格,只不过这个表格的查找速率远远大于RAM内部的表格,转换虚拟地址至物理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值