从arm官方文档来看,物理地址的有效位支持32、36、40、42、44、48,最大为48,如果开启了ARMv8.2-LPA,则也支持52

而对应的虚拟地址的有效位,是没用规定的,但是有一条潜规则,虚拟地址的有效位需要大于等于物理地址的有效位(一般情况下,虚拟地址有效位=物理地址有效位)

下图展示了"General view of VMSAv8-64 stage 1 address translation, 4KB granule", 然后我们可以找出如下规律:

  • 除了第一级index(这里是leve 0 table中的index),每一个查找table/page的index都是9个bit,也就是说除了第一级页表,后面的每一级table都是有512个offset
  • 如果VA_BIT = 39,那么leve 0 table用BIT[39:39]表示,只有1个offset
  • 如果VA_BIT = 48,那么leve 0 table用BIT[48:39]表示,有512个offset
  • 如果VA_BIT > 48,那是不存在的,因为arm规定,大于48的,只有一个,那就是VA_BIT=52,并且规定该情况下的最小granue size=64KB,而我们这里讲述的是granue size=4KB的情况
  • 如果VA_BIT = 32,那么leve 0 table就不用了,TTBR_ELx指向Level 1 table
  • 另外我们还需注意一点,在Level 0 table中,他只能指向D_Table,不能指向D_Block


    接着,我们再看一个示例,optee os中是一个怎样的情况?它怎么使用的?
    配置了:VA_BIT=32, PA_BIT=32, graule_size=4KB

    所以对于optee os,显然是下面的这种情况:

    代码也印证了这个观点:

显然官网的那张图是不正确的

总结:当前的optee os的配置如下:
32位有效虚拟地址、32位有效物理地址,3级页表查询(L1、L2、L3),颗粒的位4KB

optee3.14中MMU页表查询的所需配置--深入解读相关推荐

  1. optee3.14中的异常向量表解读--中断处理解读

    optee3.14中的异常向量表.VBAR_EL1.中断实现的介绍 ★★★ 个人博客导读首页-点击此处 ★★★ . 说明: 在默认情况下,本文讲述的都是ARMV8-aarch64架构,optee3.1 ...

  2. optee中MMU内存管理模型-页表的建立模型

    思考: 1.__identity_map_init_start 的干啥的,作用? ----看起来是给ALSR用的,暂且不研究 MMU页表的创建模型,在optee os系统中,有很多种类型的memory ...

  3. Hibernate-ORM:14.Hibernate中的命名查询

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客讲述命名查询,所谓命名查询是什么呢? Hibernate中允许我们在xml,实体类,甚至注解的方式来编 ...

  4. 09-JS中table模糊查询

    JS中table模糊查询 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8&qu ...

  5. CE5.0 - eboot汇编Startup.s中MMU设置流程详细分析

    CE5.0 - eboot汇编Startup.s中MMU设置流程详细分析   以下为SMDK开发板startup.s部分启动代码.   ;------------------------------- ...

  6. mysql中怎么查询单行单列_MySql中的子查询-结果单行单列

    MySQL是开源免费和功能多面的小型数据库,MySQL也是目前流行通用的关系型数据库,已经被 Oracle 收购了.随着版本更新升级,加入一些高级功能,MySQL6.x 版本也开始收费.不过本教程将使 ...

  7. 页表长度和页表大小_在请求调页系统中,若逻辑地址中的页号超过页表控制寄存器中的页表长度,则会引起( ) 。_学小易找答案...

    [单选题]根据法律规定,适龄儿童和青少年都必须接受,国家.社会.家庭必须予以保证的 国民 教育是 ( ) [单选题]给定如下前提:(P∧Q)→R, ¬R∨S, ¬S 其逻辑结论(有效结论)是( ) [ ...

  8. 如何在Java中写模糊查询

    转载自:https://blog.csdn.net/gradonisis/article/details/105323751 如何在Java中写模糊查询 模糊查询是什么? 数据库中查询: Java中查 ...

  9. 软件测试的14中类型 详解

    软件测试是指使用人工或者自动的手段来运行或测定某个软件产品系统的过程,其目的是在于检验是否满足规定的需求或者弄清预期的结果与实际结果的区别.本文主要描述软件测试的类型. 1 数据和数据库完整性测试 数 ...

最新文章

  1. Android:你好,androidX!再见,android.support
  2. oracle java连接配置
  3. mysql 分页查询时,如何正确的获取总数
  4. Linux分区、LVM等简述
  5. c语言天花板和地板,父母有两种,一种是天花板,一种是地板,你是孩子的啥?...
  6. dmp标签_京东dmp人群标签的使用,直接决定了你快车的盈利
  7. 超详细!上线一个机器学习项目你需要哪些准备?
  8. java自动下载更新程序_android实现软件自动更新的步骤
  9. 跳槽失败到月薪50K,AI工程师是这样炼成的!
  10. cimiss数据_CIMISS数据下载小助手
  11. sqlserver两种分页方法比较
  12. C#中backgroundworker的使用
  13. 冒险岛2服务器位置,《冒险岛2》二测造梦测试服务器开放公告
  14. 大数据信息资料采集:电商网站京东淘宝苏宁易购产品评论内容采集
  15. 谷歌中设置utf8编码
  16. linux防文件误删
  17. ATC系统QNH高度修正(AirNet川大)
  18. 计算机两种通信方式-----串行通信和并行通信
  19. 位运算——左移和右移
  20. linux修改sda3时间,Linux服务器磁盘占满问题解决(/dev/sda3 满了)

热门文章

  1. 《上海市数据中心建设导则(2021版)》
  2. 盘点:弱电施工过程中的电线电缆36计
  3. 成功解决Both binary classification-only and multiclassification-only loss function or metrics specified
  4. 成功解决cv2.error: OpenCV(4.1.2) C:\projects\opencv-python\opencv\modules\imgproc\src\color.cpp:182: err
  5. 成功解决numpy.linalg.LinAlgError: singular matrix
  6. SWIG:SWIG的简介、安装、使用方法之详细攻略
  7. DL之ShuffleNet:ShuffleNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  8. HighNewTech—2019CES:历史性!百度用自家的自动驾驶物流,把一个快递送到了 2019CES会场
  9. Keras之ML~P:基于Keras中建立的简单的二分类问题的神经网络模型(根据200个数据样本预测新的5个样本)——概率预测
  10. MAT之SVM:SVM之分类预测根据已有大量数据集案例,输入已有病例的特征向量实现乳腺癌诊断高准确率预测