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

描述

最近一直在学习内存管理,也知道MMU是管理内存的映射的逻辑IP,还知道里面有个TLB。

内存管理

今天刚刚好看到了几篇前辈的文章,很是不错,于是这里来一起学习一下吧。

PART 一:MMU 架构篇

MMU(Memory Management Unit,内存管理单元)是一种硬件模块,用于在CPU和内存之间实现虚拟内存管理。

其主要功能是将虚拟地址转换为物理地址,同时提供访问权限的控制和缓存管理等功能。

放在整个大系统多核架构里面,每个处理器内置了MMU模块,MMU模块包含了TLB和TWU两个子模块。

内存管理

1-宏观理解

地址空间是一个抽象的概念,由CPU体系架构的地址总线决定,一般等同于CPU的寻址范围、x位处理器中的x。地址空间一般分为 虚拟地址空间 和物理地址空间 。

任何时候,计算机上都存在一个程序能够访问的地址集合,我们称之为地址空间。这个空间的大小由CPU的位数决定,例如一个32位的CPU,它的地址范围是0 ~0xFFFFFFFF(4G),而对于一个64位的CPU,它的地址范围为0 ~ 0xFFFFFFFFFFFFFFFF。

这个空间就是我们的程序能够产生的地址范围,我们把这个地址范围称为 虚拟地址空间,该空间中的某一个地址我们称之为虚拟地址。与虚拟地址空间和虚拟地址相对应的则是物理地址空间和物理地址,大多数时候我们的系统所具备的物理地址空间只是虚拟地址空间的一个子集。

举一个例子,对于一台内存为 256MB的 32bit x86主机来说,它的虚拟地址空间范围是 0 ~
0xFFFFFFFF(4G),而物理地址空间范围是 0x000000000 ~ 0x0FFFFFFF(256MB)。

为什么需要这样的转换呢?其实这个就是现在多进程多线程、以及解决内存碎片化的途径。这里就不展开了。

虚拟地址又被简称为虚地址,物理地址又被称为实地址。虚拟地址和物理地址之间的转换,又称为虚实地址转化。

而这个转换的过程是硬件执行的:虚拟地址不是被直接送到内存地址总线上,而是送到内存管理单元MMU。他由一个或一组芯片组成,一般存在与协处理器中,其功能是把虚拟地址映射为物理地址。

内存管理

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分