ARMv8 MMU和translation stages、translation regimes和相关寄存器

当EL3使用AArch64时,ARMv8 architecture定义了如下translation stages和translation regimes:

VMSAv8 AArch64 translation regimes, translation stages, and associated controls

 上图是在implementation包含了所有exception levels情况下的translation regimes和translation stage。

如果某一implementation不包含所有的exception levels,那么具体的address translation scheme也会跟着变化的。ARM architecture里规定:

—— 如果implementation不包含EL3,那么它将只有一个security state,其中MMU控制等价于secure state下的MMU控制。

—— 如果实现不包含EL2,那么分两种情况分析:1.如果也不包含EL3,MMU只简单提供一个EL1&0 stage 1 translation regimes。2.如果包含EL3,那么MMU会在每个security state下提供一个EL1&0 stage 1 translation regimes。

下表列出了支持的translation stages如何依赖于implementation实现的Exception levels,并且在某些情况下,依赖于最高实现的Exception level的execution state是AArch64还是AArch32.

对于每个支持的address translation stages,在AArch64 state下的相关控制有:

—— System register控制是否使能对应的address translation stage: SCTLR_ELx.M or HCR_EL2.VM。

—— System register控制translation table lookup的endianness:SCTLR_ELx.EE。

—— Translation Control Register(TCR_ELx)控制对应的translation address stage。对于stage 1来说,TCR_ELx控制。对于stage 2来说,VTCR_EL2、VSTCR_LE2和HCR_EL2控制。VTCR_EL2和HCR_EL2作用于secure或non-secure stage 2,VSTCR_LE2作用于secure stage 2。

—— 如果一个address translation stage支持两个VA ranges的话,那么对于这个stage会有两个TTBR_ELx,各自分别对应一个VA range。TTBR0_ELx指向以0x0000000000000000为起始地址的address range。TTBR1_ELx指向以0xFFFFFFFFFFFFFFFF为终点的address range。支持两个VA ranges的translation stage只有EL1&0 stage 1和EL2&0 stage 1,其它的stage1或stage2都是只支持1个VA ranges。对于支持1个VA range的stage 1,只有TTBR0_ELx指向以0x0000000000000000为起始地址的address range。对于stage 2只支持1个VA range,因此只有VTTBR_EL2, VSTTBR_EL2指向以0x0000000000000000为起始地址的address range。VTTBR_EL2用于secure或non-secure stage 2,VSTTBR_EL2只用于secure stage 2。

对于这些registers和translation stage,以及Exception level的关系如下表:

the AArch64 translation stages

Abbreviations for System registers

下面用图画的形式列出这些translation regime和registers/register fields的关系,并且按功能给它们归类。一共有9个translation stage:Non-secure EL1&0 stage 1,Secure EL1&0 stage 1,Non-secure EL1&0 stage 2,Secure EL1&0 stage 2,Non-secure EL2&0 stage 1,Secure EL2&0 stage 1,Non-secure EL2 stage 1,Secure EL2 stage 1,Secure EL3 stage 1。具体如下:

EL1&0 stage 1

EL1&0 stage 2

EL2 stage 1

EL2&0 stage 1

EL3 stage 1

 关于这些MMU相关寄存器按如下分类列出:

 

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谷公子的藏经阁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值