【ARM Cache 系列文章 6 番外篇 – MMU, MPU, SMMU, PMU 差异与关系】

文章目录

    • [MMU 与 MPU 之间的关系](#MMU 与 MPU 之间的关系)
    • [MMU 与 SMMU 之间的关系](#MMU 与 SMMU 之间的关系)
    • [MMU 与 PMU 之间的关系](#MMU 与 PMU 之间的关系)

上篇文章:ARM Cache 系列文章 5 -- 内存屏障ISB/DSB/DMB

MMU 与 MPU 之间的关系

MMU(Memory Management Unit)和MPU(Memory Protection Unit)都是ARM架构中用于内存管理的关键组件,但它们的主要功能和使用场景有所不同。

MMU:MMU是负责虚拟内存管理的硬件单元。它将虚拟地址转换为物理地址,并管理内存保护和缓存控制。使用MMU,操作系统可以实现内存保护,把每个程序运行在独立的内存空间中,防止程序间互相干扰。此外,MMU还可以实现虚拟内存机制,允许程序使用的内存空间超过物理内存的大小。MMU通常在需要运行复杂操作系统(如Linux或Windows)的系统中使用。

MPU:MPU则是一种更简单的内存管理硬件,它不能转换虚拟地址,只能为内存区域设置权限,例如设定某段内存只读或可执行。MPU主要用于实现内存保护,防止程序访问不应访问的内存区域。由于其结构简单,MPU通常用在资源有限,只需要运行裸机程序或实时操作系统的嵌入式系统中。

MMU 常鉴于ARM Cortex-A 系列, MPU 常见与 ARM Cortex-系列。

总的来说,MMU和MPU都在内存管理中有重要作用,但MMU提供了更复杂、更全面的功能,适合于复杂的操作系统,而MPU则提供了一种轻量级的内存保护机制,适合于资源有限的嵌入式系统。

MMU 与 SMMU 之间的关系

MMU(Memory Management Unit)和SMMU(System Memory Management Unit)都是在ARM架构中使用的内存管理硬件组件,但它们的主要功能和使用场景有所不同。

MMU:MMU主要服务于CPU,它将虚拟地址转换为物理地址,并处理诸如内存保护和缓存控制等任务。通过MMU,操作系统可以创建一种虚拟内存环境,使得每个运行的程序都认为自己是在连续的内存空间中运行,同时还能防止一个程序访问另一个程序的内存空间。

SMMU :SMMU则是专门为系统的外设(如GPU,DMA 等)设计的。它为系统的IO设备提供了与CPU类似的虚拟地址到物理地址的转换服务。这意味着IO设备可以直接在虚拟地址空间中操作,从而大大简化了驱动程序的设计。此外,SMMU还可以为IO设备提供内存保护功能,防止IO设备访问未授权的内存区域。

总的来说,MMU主要为CPU提供内存管理服务,而SMMU则为系统的IO设备提供类似的服务。它们共同为系统提供了一致的内存管理机制和内存保护机制。

MMU 与 PMU 之间的关系

ARM架构中的MMU(Memory Management Unit)和PMU(Performance Monitoring Unit)是两种完全不同的硬件组件,它们各自负责不同的功能。

MMU:MMU是一种硬件单元,负责处理虚拟内存和物理内存之间的映射。它能将CPU产生的虚拟地址翻译成物理地址,这样每个进程就能在自己的独立地址空间中运行,同时可以实现内存保护和缓存控制。

PMU :PMU则是一种硬件单元,用于监控处理器的性能相关的事件 。例如,它可以跟踪指令的执行次数,缓存的命中率,分支预测的准确性等等。通过PMU,开发者可以详细了解软件运行的性能表现,优化代码,提高运行效率。

总的来说,MMU和PMU在ARM系统中负责不同的功能:MMU负责内存管理,而PMU负责性能监控。

上篇文章:ARM Cache 系列文章 5 -- 内存屏障ISB/DSB/DMB

相关推荐
XMAIPC_Robot17 小时前
基于 i.MX95 平台在新一代工业控制器中的应用 — 工业车载平板、半导体设备主控方案解析
arm开发·人工智能·机器学习·fpga开发·rk3588+fpga·i.mx95
女神下凡17 小时前
芯参谋(71):全桥电机驱动电路设计指南
arm开发·stm32·单片机·嵌入式硬件·硬件工程·设计规范·1024程序员节
szxinmai主板定制专家17 小时前
基于 AM62x + Artix-7 的低功耗 ARM+FPGA 平台在轨道交通车门控制中的应用
arm开发·人工智能·fpga开发·zynq·am62x
幻智星科技18 小时前
我砍掉了FPGA里的ARM核项目反而提前交付了
arm开发·网络协议·fpga开发·硬件架构
女神下凡2 天前
芯参谋(69):LED恒流驱动芯片电路设计指南
arm开发·人工智能·单片机·嵌入式硬件·设计规范
工控存储研习2 天前
瑞芯微平台存储系统设计:DDR、eMMC、SPI NOR、SPI NAND怎么配才合理
arm开发
szxinmai主板定制专家2 天前
ARM 还是 x86?CODESYS 数控机床控制器选型、FPGA 取舍与实时性真相
arm开发·人工智能·fpga开发·zynq·1024程序员节·codesys
工控存储研习2 天前
eMMC分区方案设计:Boot分区、系统分区、数据分区怎么分才合理
arm开发
女神下凡2 天前
芯参谋(68):ADC模数转换器电路设计指南
arm开发·单片机·嵌入式硬件·硬件工程·设计规范
chu_bingzhi3 天前
ARM异常处理
arm开发