MMU 和 MPU 的区别
MMU 和 MPU 是 CPU 使用的内存管理硬件。程序生成的所有逻辑地址的集合称为“逻辑地址空间”。与这些逻辑地址相对应的所有物理地址的集合称为“物理地址空间”。用户程序处理虚拟地址;它永远不会看到真实的物理地址。
阅读本文以了解更多关于 MMU 和 MPU 以及它们之间区别的信息。
什么是 MMU?
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 仅用于内存保护。