0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文解读内存管理单元 (MMU)

冬至配饺子 来源:芯片验证工程师 作者:验证哥布林 2022-07-28 18:09 次阅读

内存管理单元 (MMU) 的一个重要功能是让不同的任务能够独立地在各自的虚拟内存空间里运行,MMU能够实现这个特性的本质就是抽象隔离,对不同任务的虚拟地址空间进行重新映射(map)到实际的物理空间。

这都是由硬件自动实现的,并且大部分时候都是对软件不可见的。

此外,MMU基于页粒度控制每个内存空间的访问权限、内存属性和缓存策略等等。

MMU使不同的任务不用关心其实际使用的物理空间,也就是说程序员可以使用相同且连续的虚拟地址空间,而不会发生冲突,即使实际使用的物理空间非常零碎。

但是,MMU将虚拟地址空间转化成物理地址空间也并不是完全地对软件不可见,或者说对程序员不可见,但是对操作系统可见。

poYBAGLiYC6AJU0aAABTRDMaqgU134.png

配置初始化MMU以正确地管理不同并行任务的地址空间是操作系统的事情。

一般MMU会有一种disable的模式,即不使能MMU,所有虚拟地址都直接映射到相应的物理地址,VA=PA。

如果处理器访问的虚拟地址并没有被操作系统分配,这个时候MMU会上报中断异常,以告知操作系统分配相应的地址空间映射关系,从而让任务正常地完成✅。


审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18297

    浏览量

    222206
  • 操作系统
    +关注

    关注

    37

    文章

    6290

    浏览量

    121898
  • 中断
    +关注

    关注

    5

    文章

    884

    浏览量

    41029
  • MMU
    MMU
    +关注

    关注

    0

    文章

    91

    浏览量

    17945
收藏 人收藏

    评论

    相关推荐

    为什么没有MMU就无法运行Linux系统呢?

    MMU(Memory Management Unit,内存管理单元)是一种硬件模块,用于在CPU和内存之间实现虚拟
    发表于 08-03 10:05 552次阅读
    为什么没有<b class='flag-5'>MMU</b>就无法运行Linux系统呢?

    ARM的内存管理MMU)是如何实现的?

    平板式的地址映射机制对其操作,或需要使用虚拟地址对其进行读写;系统中,需引入存储保护机制,增强系统的安全性。为适应如此复杂的存储体系要求, ARM 处理器中引入了存储管理单元管理存储系统。
    发表于 10-23 15:29

    内存管理概述及原理

    记录下,方便以后翻阅~主要内容:1) 内存管理概述及原理;2)相关实验代码解读。官方资料:《STM32中参考手册_V10》-第19章 灵
    发表于 02-23 06:15

    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

    ARM 内存管理单元MMU详细图解资料

    ARM 内存管理单元MMU详细图解资料 本文描述基于存储器管理单元的系统结构, 包含以下内容:
    发表于 03-03 16:22 94次下载

    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和释放物理页的顺序的,又是如何将更多的页面聚集起来统一释放的。
    的头像 发表于 05-20 14:37 1609次阅读

    为什么没有MMU就无法运行Linux系统

    MMU(Memory Management Unit,内存管理单元)是一种硬件模块,用于在CPU和内存之间实现虚拟
    的头像 发表于 04-23 10:48 587次阅读
    为什么没有<b class='flag-5'>MMU</b>就无法运行Linux系统

    MMU内存管理单元的工作原理和作用

    MMU(Memory Management Unit,内存管理单元)是一种硬件模块,用于在CPU和内存之间实现虚拟
    的头像 发表于 08-03 10:03 1355次阅读
    <b class='flag-5'>MMU</b><b class='flag-5'>内存</b><b class='flag-5'>管理</b><b class='flag-5'>单元</b>的工作原理和作用

    MMU内存管理单元的宏观理解

    (Memory Management Unit,内存管理单元)是一种硬件模块,用于在CPU和内存之间实现虚拟内存
    的头像 发表于 11-26 15:21 245次阅读
    <b class='flag-5'>MMU</b><b class='flag-5'>内存</b><b class='flag-5'>管理</b><b class='flag-5'>单元</b>的宏观理解