【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

相关推荐
zhouwy1132 天前
ARM汇编指令集详解
汇编·arm开发
山后太阳2 天前
Keil5(MDK-ARM)完整下载安装教程+入门教程:从零搭建STM32开发环境
arm开发·stm32·嵌入式硬件
zz_lzh2 天前
arm版AI牛马:armbian(rk3588)设备部署openclaw
arm开发·人工智能·arm
lanxiao88884 天前
F1C100S 内核
arm开发
杰杰桀桀桀4 天前
基于stm32ARM库函数的IIR二阶巴特沃斯低通滤波器--附完整代码
arm开发·stm32·嵌入式硬件·数字滤波器·巴特沃斯低通滤波
TBrL7UtdTELTTdut4BAL4 天前
ARM Cortex-A53 (无AES)平台加密网络转发性能测试与对比分析
arm开发·集成测试
AI服务老曹4 天前
架构实战:如何基于 GB28181 与异构计算构建跨平台(X86/ARM)AI 视频管理系统?源码交付深度解析
arm开发·人工智能·架构
CinzWS5 天前
A53 FPGA原型验证:从RTL到可运行系统的挑战
arm开发·嵌入式·芯片验证·原型验证·a53
AI服务老曹5 天前
深度解析:支持 GB28181/RTSP 及异构计算(X86/ARM+GPU/NPU)的 AI 视频管理平台架构方案(附源码交付与 Docker 部署)
arm开发·人工智能·音视频
2302_813806225 天前
基础环境篇 – 交叉编译环境搭建与NFS服务配置
arm开发