CPU内存管理:MMU SMMU
MMU (Memory Management Unit)
MMU的主要功能为将虚拟地址映射为物理地址,同时提供访问权限的控制和缓存管理等功能。
CPU眼里的:内存映射 | 地址映射 | 页表 | MMU
CPU入门扫盲篇之MMU内存管理单元------万字长文带你搞定MMU&TLB&TWU
体系结构学习——(3)MMU (Memory Management Unit)
单级页表地址转化过程:
多级页表:
下图展示了多级页表(Multi-level Page Table)的工作原理。与传统的单级页表相比,这种设计通过将虚拟页号(VPN)划分为两个部分(P1和P2),实现了更高效的内存管理和更紧凑的页表结构。
Translation Lookaside Buffer(TLB)
加速地址转换,缓存最近使用的页表项(PTE)内容,避免每次访问都查询页表。
table walk unit (TWU)
TWU 是 CPU 或 MMU 中的专用硬件模块,负责在 TLB 缺失时自动遍历多级页表(Page Table Walk),将查询到的 PTE加载到 TLB 中。
SMMU (System Memory Management Unit)
主要实现管理设备(如DMA、外设)的内存访问,提供与MMU类似的地址转换和隔离功能,但面向系统总线。
SMMU 页表结构
- StreamID 是硬件连接的物理标识符,用于唯一区分连接到 SMMU 的设备。类似于网络交换机中的端口号(PortID),每个设备在硬件设计时被分配固定的 StreamID。
- STE 是 SMMU 的第一级查找表,通过 StreamID 索引到具体的 Context Descriptor(CD),决定设备使用的地址转换规则。
- CD 是第二阶段配置,包含设备地址转换所需的全部信息,其核心字段指向 阶段1页表基址(TTB0),类似于 CPU MMU 的页表寄存器。