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模型

5. 页表属性


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. 内存属性


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相关推荐

  1. linux+系统优化基础,Linux入门基础(三):Linux用户及权限基础

    用户基础 用户和组 每个用户都拥有一个userid 每个用户都属于一个主组,属于一个或多个附属组 每个组拥有一个groupid 每个进程以一个用户身份运行,受该用户可访问资源限制 每个可登陆用户拥有一 ...

  2. linux脚本编写思想,Linux脚本编写入门基础(三)

    1.1.2 注释在进行shell编程时,以#开头的句子表示注释,直到这一行的结束.我们真诚地建议您在程序中使用注释.如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚 ...

  3. mybatis入门基础(三)----SqlMapConfig.xml全局配置文件解析

    阅读目录 一:SqlMapConfig.xml配置文件的内容和配置顺序如下 二:properties属性 三:settings全局参数配置 四:typeAiases(别名)--重点掌握 五:typeH ...

  4. python入门基础三之流程控制

    流程控制(if while for) 一.if 为什么要有if判断 判断事物的对错,真假,是否可行 想让计算机像人一样去工作,那么计算机也应该有对事物的对错,真假,是否可行的判断能力 从而做出不同的响 ...

  5. python 入门基础(三)-Python入门基础(第3天):基本数据类型

    一.基本数据类型 1.数字 通常的int, long,float,long等等都被支持.而且会看你的具体数字来定义变量的类型. #int 类型#bit_length() 返回一个数的二进制长度 2.字 ...

  6. python语言入门m-Python入门基础三-函数

    什么是函数 定义:函数是指将一组语句的集合通过一个名字(函数名)封装起来,要执行这个函数,只需调用函数名即可. 特性:1.减少重复代码 2.使程序变得可扩展 3.使程序变得易于维护 调用函数 要调用一 ...

  7. OpenCV入门(三)快速学会OpenCV2图像处理基础(一)

    OpenCV入门(三)快速学会OpenCV2图像处理基础(一) 作者:Xiou 1.颜色变换cvtColor imgproc的模块名称是由image(图像)和process(处理)两个单词的缩写组合而 ...

  8. CPU_X86架构和ARM架构入门篇

    文章目录 脑图 视频解读 CPU的组成 指令集架构: 复杂指令集 (CISC) VS 精简指令集 (RISC) X86架构 ARM架构 X86架构 VS ARM架构 制程工艺 64位计算 异构计算 功 ...

  9. linux目录结构来源6,Linux入门基础 #6 Linux系统目录架构

    Linux入门基础 #6 Linux系统目录架构 /bin 即binary,用于保存各种(二进制)可执行文件. 在CLI中输入执行的命令都保存在这里. 此目录下的所有命令都是普通权限用户也可执行的. ...

最新文章

  1. GET_GLOBALS_FROM_SLVC_FULLSCR
  2. Dlib学习笔记:解决dlib array2d转 OpenCV Mat时颜色失真
  3. oracle undo
  4. P5170 【模板】类欧几里得算法
  5. ssh无密码登陆权威指南
  6. 《深入理解JVM.2nd》笔记(三):垃圾收集器与垃圾回收策略
  7. java-前端之js
  8. 写给那些远程办公程序员的建议!
  9. 小程序模板消息报错41028。解决方法
  10. LINUX编译autoconf
  11. 新版盲盒交友小程序源码下载
  12. 玩转Windows系列之bat脚本
  13. Halcon教程-HALCON19.05Progress将于2019年5月31日正式发布
  14. 浅析WIN8打开图片或PDF时提示在禁用UAC的问题
  15. *16.5 shared_ptr使用场景、陷阱、性能分析与使用建议
  16. 前端追梦人CSS教程
  17. 重装系统服务器2012r2,SCCM2012R2网络部署重装系统
  18. Stochastic Gradient Hamiltonian Monte Carlo论文笔记
  19. 智能经济大局下,云智一体的“形胜”
  20. 计算机安装重装出现错误,电脑重装系统老是失败要怎么办?我教你几个方法,一定能装上去!...

热门文章

  1. 推荐一款可自动即时保存备忘内容的电脑记事本软件
  2. YYKit-YYAsyncLayer分析
  3. springboot+vue+elementui实现前后端分离的网上商城购物系统
  4. viper4android 安装失败,一步一步教你如何使4.42版本ROOT并且安装Viper4Android音效软件...
  5. 搜索二叉树(Key-Value)
  6. [教程] 我家云刷armbian+安装LMS
  7. 数学运算中浓度问题解题技巧集锦
  8. 计算机作文我的职业理想300字,我的人生理想作文300字(4篇)
  9. oppor9splus计算机找不到了,如果oppor9splus的返回键失败,该如何设置oppor9splus虚拟键?...
  10. 即时通讯源代码,im源码功能全套