前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ARM MMU的存在必要及作用

ARM MMU的存在必要及作用

作者头像
用户9736681
发布2022-05-11 08:09:05
4610
发布2022-05-11 08:09:05
举报
文章被收录于专栏:嵌入式随笔

ARM中的MMU就是内存管理单元,是Memory Management Unit的缩写,那这个东西主要是解决什么问题呢,MMU诞生的主要原因就是解决程序,数据、堆栈的总的大小大于实际的物理存储器介质的大小这个问题。比如程序运行需要2GB内存,而现在处理器可支配的实际物理内存只有1GB,那怎么办呢,那就将程序的2GB按照需求分时保留在内存中。

但是应用程序在运行的过程中不能考虑这么多,要不就太麻烦了。因此应用程序访问内存地址,访问的是虚拟地址。而将虚拟地址映射成实际地址就是MMU的作用。

举个例子,现在有个应用程序需要16KB的内存,一共有8KB的实际物理内存(物理内存地址假设为0x00000000 ~ 0x00001FFF)。先将程序中的8KB搬到内存中。应用程序共访问16KB内存,虚拟地址为0x10000000~0x10003FFF,应用程序访问MMU虚拟地址0x10000000~0x10001FFF,则相当于访问实际物理地址0x00000000 ~ 0x00001FFF,再将应用程序的剩余8KB搬入物理内存中,应用程序访问MMU虚拟地址0x10002000~0x10003FFF的时候,相当于访问实际物理地址0x00000000 ~ 0x00001FFF。则应用程序访问了全部的16KB数据。以上例子的内存搬移和地址只是举例子便于理解,不代表实际过程。

当然现在一般内存够用,那MMU的地址映射的作用主要就是进行内存访问的保护。比如像Linux这样的系统的多进程,通过MMU进行内存访问,一个进程出了问题不会影响到其他进程。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嵌入式随笔 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档