ARM-A架构入门基础(三)MMU

14天学习训练营导师课程:周贺贺《ARMv8/ARMv9架构-快速入门》

1. MMU(Memory Management Unit)

内存管理单元,MMU的意义在于将软件程序的虚拟地址转换为真实的物理地址。

2. MMU种类

  1. Secure EL1&0 translation regime, when EL2 is disabled
  2. Non-secure EL1&0 translation regime, when EL2 is disabled
  3. SECURE EL1&0 translation regime, when EL2 is enabled
  4. Non-secure EL1&0 translation regime, when EL2 is enabled
  5. Secure EL2&0 translation regime
  6. Non-secure EL2&0 translation regime
  7. Secure EL2 translation regime
  8. Non-secure EL2 translation regime
  9. Secure EL3 translation regime

3. 如何开启MMU

  1. 设置页表基地址TTBR
  2. 初始化MAIR_EL3
  3. 配置TCR_EL3
  4. 创建页表
  5. 使能MMU

4. MMU模型

ARM-A架构入门基础(三)MMU_第1张图片

5. 页表属性

ARM-A架构入门基础(三)MMU_第2张图片
PBHA, bits[62:59] : for FEAT_HPDS2
XN or UXN, bit[54] : Execute-never or Unprivileged execute-never
PXN, bit[53] : Privileged execute-never
Contiguous, bit[51] : translation table entry 是连续的,可以存在一个TLB Entry中
DBM, bit[51] : Dirty Bit Modifier
GP, bit[50] : for FEAT_BTI
nT, bit[16] : for FEAT_BBM
nG, bit[11] : 缓存在TLB中的翻译,是否使用ASID标识
AF, bit[10] : Access flag, AF=0后,第一次访问该页面时,会将该标志置为1
SH, bits[9:8] : shareable属性
AP[2:1], bit[7:6] : Data Access Permissions bits
NS, bit[5] : Non-secure bit
Attrlndx[2:0], bits[4:2]

6. 内存属性

在这里插入图片描述
ARM-A架构入门基础(三)MMU_第3张图片

R or W Meaning
0b0 No Allocate
0b1 Allocate
dd Meaning
0b00 Device-nGnRnE memory
0b01 Device-nGnRE memory
0b10 Device-nGRE memory
0b11 Device-GRE memory

ARM-A架构入门基础(三)MMU_第4张图片

你可能感兴趣的:(arm)