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

    文章

    19083

    浏览量

    228739
  • 操作系统
    +关注

    关注

    37

    文章

    6658

    浏览量

    123111
  • 中断
    +关注

    关注

    5

    文章

    895

    浏览量

    41341
  • MMU
    MMU
    +关注

    关注

    0

    文章

    91

    浏览量

    18244
收藏 人收藏

    评论

    相关推荐

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

    MMU(Memory Management Unit,内存管理单元)是种硬件模块,用于在CPU和内存
    发表于 08-03 10:05 892次阅读
    为什么没有<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‑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 97次下载

    S3C2410内存管理单元MMU基础实验

    (11)实验十一:MMU 在理论上概括或解释MMU,这不是我能胜任的。我仅基于为了理解本实验中操作MMU的代码而对MMU做些说明,现在先简单地描述虚拟地址(VA)、变换后的虚拟地址(M
    发表于 01-01 02:29 17次下载

    ARM存储管理单元MMU详解

    15.5 存储管理单元MMU 在创建多任务嵌入式系统时,最好有个简单的方式来编写、装载及运行各自独立的任务。目前大多数的嵌入式系统不再使用自己定制的控制系统,而使用操作系统来简化这个
    发表于 10-17 16:24 4次下载

    ARM920T的MMU与Cache介绍

    CPU通过地址来访问内存中的单元,地址有虚拟地址和物理地址之分,如果CPU没有MMU(Memory Management Unit,内存管理
    发表于 03-28 11:05 14次下载
    ARM920T的<b class='flag-5'>MMU</b>与Cache介绍

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

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

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

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

    什么是MMU?linux为什么需要MMU

    内存管理方面,MMU可以通过页面表(Page Table)实现虚拟内存管理。页面表是种数据结
    发表于 10-09 11:27 1273次阅读
    什么是<b class='flag-5'>MMU</b>?linux为什么需要<b class='flag-5'>MMU</b>?

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

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

    内存管理单元的重要功能是什么

    微观理解 内存管理单元MMU)的个重要功能是使系统能够运行多个任务,作为独立的程序运行在他们自己的 私有虚拟
    的头像 发表于 11-26 15:36 608次阅读
    <b class='flag-5'>内存</b><b class='flag-5'>管理</b><b class='flag-5'>单元</b>的重要功能是什么