当前位置:首页 > 内存 > 正文

内存管理单元mmu

  • 内存
  • 2024-09-02 20:21:21
  • 4979

一、arm上实现内存管理的单元叫什么在arm上进行内存管理的单元称为内存管理单元。
MMU是MemoryManagementUnit的缩写,是用来管理虚拟内存系统的设备。MMU通常是CPU的一部分,有少量的存储空间来存储虚拟地址到物理地址的映射表,这个表称为TLB(TranslationBypassBuffer)。所有数据请求都发送到MMU,MMU确定数据是驻留在RAM还是大容量存储设备中。如果数据不在RAM中,MMU将产生页中断。
MMU的两个主要功能如下:
1.将虚拟地址转换为物理地址。
 2.控制允许的内存访问。在嵌入式系统中,存储系统种类繁多,可以包括多种类型的存储设备,如FLASH、SRAM、SDRAM、ROM等。这些不同类型的存储设备在访问存储单元时具有不同的速度和宽度,可以使用平板式的地址映射机制来处理它们,或者可能需要使用虚拟地址来读写它们,需要存储保护机制引入系统以提高系统安全性。为了适应复杂的存储系统需求,ARM处理器中引入了存储管理单元来管理存储系统。
二、以下关于存储管理单元(MMU)的说法中,错误的是()。【答】:B
MMU是MemoryManagementUnit的缩写。中文名称是存储管理单元。它是中央处理单元(CPU)中用于管理虚拟和物理内存的控制单元。还负责虚拟地址映射,以及提供硬件内存访问授权、多用户多进程操作系统支持等功能。
在任何给定时间,计算机上都有一组程序可以访问的地址,我们称之为地址范围。该范围的大小由CPU中的位数决定。例如,对于10个32位CPU,其地址范围为0~0xFFFFFFFFK4G),对于64位CPU,其地址范围为0~0xFPTFFFFFFFFFFFFFdeE)。这个地址范围就是我们的程序可以生成的地址范围。我们把这个地址范围称为虚拟地址空间,这个空间中的某个地址称为虚拟地址。
虚拟地址空间和虚拟地址对应的是物理地址空间和物理地址。在大多数情况下,我们的系统拥有的物理地址空间只是虚拟地址空间的子集。下面是直观地说明两者的最简单示例。对于内存为256M的32bitx86服务器,其虚拟地址空间范围为0~0xFFFFFFFF(4G),而物理地址空间范围为0x00000000~0x0FFFFFFFF(256M)。
在不使用虚拟内存的计算机上,地址直接发送到内存总线,以便在使用虚拟内存的情况下可以读写具有相同地址的物理内存;不直接发送到内存总线。在内存地址总线上,被发送到MMU内存管理单元,将虚拟地址映射到物理地址。对于多用户、多进程的操作系统,需要MMU来实现为每个用户进程拥有独立的独立地址空间的目标。
操作系统使用MMU来划分地址空间。在这个地址空间中,每个进程看到的内容不一定相同。例如,s操作系统将4M-2G地址范围划分为用户地址空间。进程A将可执行文件映射到地址0X400000(4M),进程B也将可执行文件映射到地址0X400000(4M)。进程A在读取地址0X400000时,读取的是A的可执行文件映射到RAM的内容。当进程B读取地址0X400000时,读取到的是B的可执行文件映射到RAM的内容。
这就是MMU在地址转换中的作用。MMU还提供用于授予内存访问权限的硬件机制。当应用程序的所有进程共享相同的内存空间时,任何一个进程都会有意或无意地破坏其他进程的代码、数据或堆栈。
异常进程甚至可能破坏内核代码或内部数据结构。例如,进程中的指针错误很容易导致整个系统崩溃,或者至少导致系统行为异常。在安全性和可靠性方面,基于进程的实时操作系统(RTOS)的性能非常突出。为了创建一个拥有自己地址空间的进程,RTOS只需创建一些基于RAM的数据结构,并允许MMU进一步保护这些数据结构。
基本思想是在每次链路转换期间“访问”一组新的逻辑地址。MMU使用当前映射将命令调用或读写数据中使用的逻辑地址映射到存储器的物理地址。MMU还标记对未映射到任何物理地址的非法逻辑地址的访问。
虽然这些过程增加了系统使用查找表访问内存的固有开销,但实现它们的好处是很高的。在进程边界,不会发生错误或不正确的操作,并且用户界面进程中的错误不会导致其他更重要的进程中的代码或数据损坏。