📜  MMU和MPU有什么区别?(1)

📅  最后修改于: 2023-12-03 15:02:58.531000             🧑  作者: Mango

MMU和MPU的区别

MMU (Memory Management Unit)

MMU是指内存管理单元,其职能是CPU访问虚拟内存时,将虚拟地址转化为物理地址。

MMU的功能
  • 地址转换:将虚拟地址转换为物理地址。
  • 存储保护:通过内存映射的方式控制读/写权限来保护内存的访问。
  • 内存共享:多个进程可以共享同一个物理内存区域。
  • 页表管理:维护映射虚拟地址和物理地址的页表。
MMU的实现

MMU的实现方式为硬件实现。其中,MMU包含了地址转换缓冲器(Translation Lookaside Buffer, TLB),可以用于加快地址转换的速度。

MPU (Memory Protection Unit)

MPU是指内存保护单元,在处理器和内存之间提供了一层硬件保护。

MPU的功能

MPU只负责内存保护,不会涉及到地址的转换。

  • 存储保护:可以限制在指定的地址、范围之外进行存储操作以保护软件、数据及寄存器不被非法访问。
  • 硬件安全:可以限制在指定的地址、范围之外运行不可信程序,防止非法读取内存数据、篡改软件代码、控制流异常等问题。
MPU的实现

MPU的实现方式为硬件实现。由于其功能较单一,因此硬件实现相对MMU较为简单。

MMU和MPU的区别
  • 功能不同:MMU除了保护外,还涉及到地址转换的功能,而MPU只负责内存保护。
  • 适用场景不同:MMU主要用于支持操作系统虚拟内存的实现,而MPU则主要用于处理器内存访问的安全保护。

在实际应用中,通常都是同时采用MMU和MPU。MMU用于支持虚拟内存,MPU用于提供额外的安全保证。