baron · 11月14日

MMU之Translation Regime介绍

image.png

思考:

1、系统里有多少个MMU?MMU在哪里?
2、一个core里有多少个MMU?多少个Translation regime ? MMU和Translation regime有啥关系?

Translation Regime概念总结在当前的ARMV8/ARMV9体系中(暂不考虑armv9的RME扩展), 至少存在以下9类Translation regime(注意是9类,不是9个):

  • Secure EL1&0 translation regime, when EL2 is disabled -- one stages,two VA range, 使用TTBR0EL1和TTBR1EL1
  • Non-secure EL1&0 translation regime, when EL2 is disabled -- one stages,two VA range, 使用TTBR0EL1和TTBR1EL1 * Secure EL1&0 translation regime, when EL2 is enabled -- two stages,two VA range, 使用TTBR0EL1和TTBR1EL1
  • Non-secure EL1&0 translation regime, when EL2 is enabled -- two stages,two VA range, 使用TTBR0EL1和TTBR1EL1
  • Secure EL2&0 translation regime -- two VA range, 使用TTBR0EL2和TTBR1EL2
  • Non-secure EL2&0 translation regime -- two VA range, 使用TTBR0EL2和TTBR1EL2
  • Secure EL2 translation regime -- a single VA range, 使用TTBR0_EL2
  • Non-secure EL2 translation regime -- a single VA range, 使用TTBR0_EL2
  • Secure EL3 translation regime -- a single VA range, 使用TTBR0_EL3

image.png

相关寄存器的总结

  • TTBR0_EL1: Translation Table Base Register 0 (EL1) -- 在switch cpucontext by security的时候,会切换该寄存器,所以从软件的视角来看,安全和非安全侧各有一个TTBR0_EL1
  • TTBR0_EL2: Translation Table Base Register 0 (EL2) -- HCR_EL2.E2H=1时,只有TTBR0,不可以使用TTBR1。另外在switch cpucontext by security的时候,会切换该寄存器,所以从软件的视角来看,安全和非安全侧各有一个TTBR0_EL2
  • TTBR0_EL3: Translation Table Base Register 0 (EL3) -- 从软件视角来看,只有一个TTBR0_EL3。注意没有TTBR1_EL3寄存器。
  • TTBR1_EL1: Translation Table Base Register 1 (EL1) -- 在switch cpu_context by security的时候,会切换该寄存器,所以从软件的视角来看,安全和非安全侧各有一个TTBR1_EL1
  • TTBR1_EL2: Translation Table Base Register 1 (EL2) -- 只有Host Operating System is running in EL2( HCR_EL2.E2H=1)时,该寄存器才会被使用。另外在switch cpu_context by security的时候,会切换该寄存器,所以从软件的视角来看,安全和非安全侧各有一个TTBR1_EL2
  • VSTTBR_EL2: Virtualization Secure Translation Table Base Register -- 切换VM的时候会切换
  • VTCR_EL2: Virtualization Translation Control Register -- 切换VM的时候会切换
  • VTTBR_EL2: Virtualization Translation Table Base Register -- 切换VM的时候会切换

Translation Regime模型总结

image.png
image.png
image.png
image.png
image.png
image.png
image.png

推荐阅读
关注数
9466
内容数
212
以易懂、渐进、有序的方式,深入探讨ARMv8/ARMv9架构的核心概念。我们将从基础知识开始,逐步深入,覆盖最新的架构,不再纠缠于过时技术。本系列内容包含但不限于ARM基础、SOC芯片基础、Trustzone、gic、异常和中断、AMBA、Cache、MMU等内容,并将持续更新。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息