MMU和MPU的区别
MMU 和 MPU 是CPU使用的内存管理硬件。由程序产生的所有逻辑地址的集合被称为 “逻辑地址空间”。与这些逻辑地址相对应的所有物理地址的集合被称为 “物理地址空间”。用户程序处理的是虚拟地址;它从未见过真正的物理地址。
阅读本文,了解更多关于MMU和MPU的信息以及它们之间的区别。
什么是MMU
MMU(内存管理单元) 用于虚拟内存和内存保护操作。从虚拟地址到物理地址的运行时映射是由MMU完成的,它是一个硬件设备。
MMU使用以下机制将虚拟地址转换为物理地址。基准寄存器中的值被添加到由用户进程产生的每个地址中,在它被发送到内存时被视为偏移量。例如,如果基础寄存器的值是10000,那么用户试图使用地址位置100时,将被动态地重新分配到位置10100。
什么是MPU
MPU(内存保护单元) 通常是CPU的一个部分,只用于内存保护。它通常在低功率处理器中实现,在这些处理器中不需要MMU的功能,如虚拟内存管理,只需要内存保护。
MPU主要用于简单的系统中,因为它能以较低的复杂性和低成本提供所有必要的特性。
MMU和MPU的区别
以下是MMU和MPU之间的重要区别。
关键 | MMU | MPU |
---|---|---|
定义 | MMU是指内存管理单元。 | MPU指的是内存保护单元。 |
主要操作 | MMU用于多个与内存相关的操作,如虚拟内存、虚拟地址到物理地址的转换和内存保护。 | MPU只用于内存保护。 |
功能 | MMU也可以执行MPU的功能。 | MPU不能被用来执行MMU的功能。 |
使用方法 | 运行高端操作系统如Windows、Linux和Android的处理器使用MMU。这样的处理器被称为应用处理器。 | 运行RTOS操作的处理器如ThreadX使用MPU。这样的处理器被称为基带处理器,在运行3G/4G协议的地方很有用。 |
银行切换 | MMU能够进行银行切换。 | MPU不能进行银行切换。 |
缓存控制 | MMU可以执行高速缓存控制操作。 | MPU不能执行高速缓存控制。 |
先进性 | MMU是更先进的硬件。 | MPU是相对不太先进的硬件。 |
开销 | MMU使用更多的开销。 | MPU使用的开销较少。 |
总结
你应该注意到的最重要的区别是,MMU用于多种与内存有关的操作,如虚拟内存、虚拟地址到物理地址的转换和内存保护;而MPU仅用于内存保护。