ARM技术论坛
直播中

fansz

8年用户 1242经验值
擅长:制造/封装
私信 关注
[资料]

ARM v7-A系列CPU的***分析

1、ARM v7-A 系列CPU的MMU隐射分析

  ARMv7-A系列的CPU加入了很多扩展,如多核处理器扩展、大物理地址扩展、TrustZone扩展、虚拟化扩展。若支持大的物理地址,则必须支持多核处理器;若支持虚拟化,则必须支持大的物理地址、多核处理器、TrustZone。加入这些扩展后,相应的MMU(虚拟地址到物理地址的隐射功能)结构也改变了许多。本文首先分析加入扩展后MMU的整体结构,然后详细介绍地址转换中用到短描述符格式(32位)和长描述符格式(64位),以及如何实现虚拟地址到物理地址的查询,最后就二级隐射问题,给出一个例子用以验证。

  ARM v7-A MMU 整体结构介绍

  整体结构

  整体结构由四部分组成,如下图所示。

1.jpg

  PL2:NS(非安全模式)下的HYP(超级管理)模式

  PL1:S(安全模模式)或者NS(非安全模式)下的其它模式(用户模式除外)

  PL0:S或者NS下的用户模式

  注:每个CPU(支持TrustZone扩展)可以处于安全模式或者非安全模式,处于任意模式(安全或者非安全)的CPU又有8个模式(支持TrustZone、虚拟化)。

  这四部分为:

  安全模式的PL1&0隐射,页表控制寄存器TTBCR,页表基址寄存器TTBR0/TTBR1,这些寄存器需要在S模式的PL1设置;

  非安全模式的PL2隐射,页表控制寄存器HTCR,页表基址寄存器HTTBR,需要在NS的PL2设置;

  非安全模式的PL1&0的一级映射,页表控制寄存器TTBCR,页表基址寄存器TTBR0/TTBR1,需要在NS模式的PL1设置;

  非安全模式的PL1&0的二级映射,页表控制寄存器VTCR,页表基址寄存器VTTBR,需要在NS的PL2设置;

  原作者:wangyw

更多回帖

发帖
×
20
完善资料,
赚取积分