内存管理单元 (MMU) 的一个重要功能是让不同的任务能够独立地在各自的虚拟内存空间里运行,MMU能够实现这个特性的本质就是抽象隔离,对不同任务的虚拟地址空间进行重新映射(map)到实际的物理空间。
这都是由硬件自动实现的,并且大部分时候都是对软件不可见的。
此外,MMU基于页粒度控制每个内存空间的访问权限、内存属性和缓存策略等等。
MMU使不同的任务不用关心其实际使用的物理空间,也就是说程序员可以使用相同且连续的虚拟地址空间,而不会发生冲突,即使实际使用的物理空间非常零碎。
但是,MMU将虚拟地址空间转化成物理地址空间也并不是完全地对软件不可见,或者说对程序员不可见,但是对操作系统可见。
配置初始化MMU以正确地管理不同并行任务的地址空间是操作系统的事情。
一般MMU会有一种disable的模式,即不使能MMU,所有虚拟地址都直接映射到相应的物理地址,VA=PA。
如果处理器访问的虚拟地址并没有被操作系统分配,这个时候MMU会上报中断异常,以告知操作系统分配相应的地址空间映射关系,从而让任务正常地完成✅。
审核编辑:刘清
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
处理器
+关注
关注
68文章
18297浏览量
222206 -
操作系统
+关注
关注
37文章
6290浏览量
121898 -
中断
+关注
关注
5文章
884浏览量
41029 -
MMU
+关注
关注
0文章
91浏览量
17945
发布评论请先 登录
相关推荐
为什么没有MMU就无法运行Linux系统呢?
MMU(Memory Management Unit,内存管理单元)是一种硬件模块,用于在CPU和内存之间实现虚拟
发表于 08-03 10:05
•552次阅读
ARM的内存管理(MMU)是如何实现的?
平板式的地址映射机制对其操作,或需要使用虚拟地址对其进行读写;系统中,需引入存储保护机制,增强系统的安全性。为适应如此复杂的存储体系要求, ARM 处理器中引入了存储管理单元来管理存储系统。一
发表于 10-23 15:29
ARM CoreLink MMU-401系统内存管理单元技术参考手册
MMU-401提供管理程序虚拟化多个客户操作系统所需的地址转换。它通过将操作系统(OS)定义的中间物理地址(IPA)转换为系统管理程序定义的物理地址(PA)来实现这一点。如果需要,
发表于 08-02 08:02
Arm CoreLink MMU‑700系统内存管理单元技术参考手册
MMU‑700是一个系统级内存管理单元(SMMU),用于将输入地址转换为输出地址。此转换基于MMU
发表于 08-08 07:44
ARM CORELINK™MMU-600AE系统内存管理单元技术参考手册
MMU-600AE是MMU-600系统级内存管理单元(SMMU)的功能安全(FUSA)变体,可将输入地址转换为输出地址。此转换基于
发表于 08-09 06:28
ARM系统内存管理单元架构规范SMMU架构2.0版
ARM系统MMU(SMMU)体系结构为存储器管理单元(MMU)实施提供了灵活的实施框架,具有多个实施定义的选项。
该体系结构可用于系统级的MMU
发表于 08-12 06:25
S3C2410内存管理单元MMU基础实验
(11)实验十一:MMU 在理论上概括或解释MMU,这不是我能胜任的。我仅基于为了理解本实验中操作MMU的代码而对MMU做些说明,现在先简单地描述虚拟地址(VA)、变换后的虚拟地址(M
发表于 01-01 02:29
•17次下载
ARM存储管理单元MMU详解
15.5 存储管理单元MMU 在创建多任务嵌入式系统时,最好有一个简单的方式来编写、装载及运行各自独立的任务。目前大多数的嵌入式系统不再使用自己定制的控制系统,而使用操作系统来简化这个过程。较高
发表于 10-17 16:24
•4次下载
“老司机”这样解读ARM MMU的地址转换
首先搞清楚为什么要使用MMU? MMU即内存管理单元,直白一点的讲,就像食堂的餐具,所有的学生一起吃饭时不够用,但食堂又不想再出资购买新的餐
发表于 01-25 22:36
•388次阅读
Linux内核虚拟内存管理中的mmu_gather操作
本文讲解Linux内核虚拟内存管理中的mmu_gather操作,看看它是如何保证刷tlb和释放物理页的顺序的,又是如何将更多的页面聚集起来统一释放的。
评论