内存管理单元

支持的 IC [ RTL8730E ]

简介

CA32 内核集成了一个符合 ARMv8-A AArch32 架构标准的 MMU 内存管理单元 (Memory Management Unit, MMU)。该单元通过一组保存在转换表中的虚拟到物理地址映射和内存属性,提供细粒度的内存控制。

MMU 有以下特性:

  • 地址转换:将虚拟地址转换为物理地址,支持细粒度的内存分页管理。

  • 权限控制:设置内存区域的读/写/执行属性,确保只有授权的进程可以访问特定内存区域,防止越界或恶意访问。

  • 内存隔离:通过为不同进程分配独立的虚拟地址空间,从根本上消除进程间的内存干扰。

  • 缓存管理:可为每个虚拟内存区域独立配置缓存策略(Cacheable/Non-cacheable、Write-Back/Write-Through 等),优化内存访问性能。

MMU 工作流程

MMU 通过以下流程来实现内存的精确控制。

  1. CPU 发出虚拟地址访问请求,MMU 截获该请求。

  2. 查找转换表(Translation Table):MMU 遍历存储在内存中的多级页表,将虚拟地址映射到对应的物理地址。SDK 中主要使用长描述符(Long-descriptor)格式的页表。

  3. 权限检查:MMU 同时检查该内存区域对当前执行级别(EL0/EL1)的访问权限(可读/可写/可执行),若违反则触发异常。

  4. TLB 加速:转换旁路缓冲器(Translation Lookaside Buffer,TLB)缓存最近使用的地址映射条目,避免每次访问都需要遍历多级页表,从而大幅减少地址转换的开销。

  5. 物理地址送出:通过权限检查后,实际的物理地址被送往内存总线进行访问。

备注

有关 MMU 的更多信息,参考 Arm® Cortex®-A32 Processor Technical Reference Manual Revision: r1p0