ARM-A架构入门基础(三)MMU
14天学习训练营导师课程:周贺贺《ARMv8/ARMv9架构-快速入门》
1. MMU(Memory Management Unit)
内存管理单元,MMU的意义在于将软件程序的虚拟地址转换为真实的物理地址。
2. MMU种类
- Secure EL1&0 translation regime, when EL2 is disabled
- Non-secure EL1&0 translation regime, when EL2 is disabled
- SECURE EL1&0 translation regime, when EL2 is enabled
- Non-secure EL1&0 translation regime, when EL2 is enabled
- Secure EL2&0 translation regime
- Non-secure EL2&0 translation regime
- Secure EL2 translation regime
- Non-secure EL2 translation regime
- Secure EL3 translation regime
3. 如何开启MMU
- 设置页表基地址TTBR
- 初始化MAIR_EL3
- 配置TCR_EL3
- 创建页表
- 使能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相关推荐
- linux+系统优化基础,Linux入门基础(三):Linux用户及权限基础
用户基础 用户和组 每个用户都拥有一个userid 每个用户都属于一个主组,属于一个或多个附属组 每个组拥有一个groupid 每个进程以一个用户身份运行,受该用户可访问资源限制 每个可登陆用户拥有一 ...
- linux脚本编写思想,Linux脚本编写入门基础(三)
1.1.2 注释在进行shell编程时,以#开头的句子表示注释,直到这一行的结束.我们真诚地建议您在程序中使用注释.如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚 ...
- mybatis入门基础(三)----SqlMapConfig.xml全局配置文件解析
阅读目录 一:SqlMapConfig.xml配置文件的内容和配置顺序如下 二:properties属性 三:settings全局参数配置 四:typeAiases(别名)--重点掌握 五:typeH ...
- python入门基础三之流程控制
流程控制(if while for) 一.if 为什么要有if判断 判断事物的对错,真假,是否可行 想让计算机像人一样去工作,那么计算机也应该有对事物的对错,真假,是否可行的判断能力 从而做出不同的响 ...
- python 入门基础(三)-Python入门基础(第3天):基本数据类型
一.基本数据类型 1.数字 通常的int, long,float,long等等都被支持.而且会看你的具体数字来定义变量的类型. #int 类型#bit_length() 返回一个数的二进制长度 2.字 ...
- python语言入门m-Python入门基础三-函数
什么是函数 定义:函数是指将一组语句的集合通过一个名字(函数名)封装起来,要执行这个函数,只需调用函数名即可. 特性:1.减少重复代码 2.使程序变得可扩展 3.使程序变得易于维护 调用函数 要调用一 ...
- OpenCV入门(三)快速学会OpenCV2图像处理基础(一)
OpenCV入门(三)快速学会OpenCV2图像处理基础(一) 作者:Xiou 1.颜色变换cvtColor imgproc的模块名称是由image(图像)和process(处理)两个单词的缩写组合而 ...
- CPU_X86架构和ARM架构入门篇
文章目录 脑图 视频解读 CPU的组成 指令集架构: 复杂指令集 (CISC) VS 精简指令集 (RISC) X86架构 ARM架构 X86架构 VS ARM架构 制程工艺 64位计算 异构计算 功 ...
- linux目录结构来源6,Linux入门基础 #6 Linux系统目录架构
Linux入门基础 #6 Linux系统目录架构 /bin 即binary,用于保存各种(二进制)可执行文件. 在CLI中输入执行的命令都保存在这里. 此目录下的所有命令都是普通权限用户也可执行的. ...
最新文章
- GET_GLOBALS_FROM_SLVC_FULLSCR
- Dlib学习笔记:解决dlib array2d转 OpenCV Mat时颜色失真
- oracle undo
- P5170 【模板】类欧几里得算法
- ssh无密码登陆权威指南
- 《深入理解JVM.2nd》笔记(三):垃圾收集器与垃圾回收策略
- java-前端之js
- 写给那些远程办公程序员的建议!
- 小程序模板消息报错41028。解决方法
- LINUX编译autoconf
- 新版盲盒交友小程序源码下载
- 玩转Windows系列之bat脚本
- Halcon教程-HALCON19.05Progress将于2019年5月31日正式发布
- 浅析WIN8打开图片或PDF时提示在禁用UAC的问题
- *16.5 shared_ptr使用场景、陷阱、性能分析与使用建议
- 前端追梦人CSS教程
- 重装系统服务器2012r2,SCCM2012R2网络部署重装系统
- Stochastic Gradient Hamiltonian Monte Carlo论文笔记
- 智能经济大局下,云智一体的“形胜”
- 计算机安装重装出现错误,电脑重装系统老是失败要怎么办?我教你几个方法,一定能装上去!...
热门文章
- 推荐一款可自动即时保存备忘内容的电脑记事本软件
- YYKit-YYAsyncLayer分析
- springboot+vue+elementui实现前后端分离的网上商城购物系统
- viper4android 安装失败,一步一步教你如何使4.42版本ROOT并且安装Viper4Android音效软件...
- 搜索二叉树(Key-Value)
- [教程] 我家云刷armbian+安装LMS
- 数学运算中浓度问题解题技巧集锦
- 计算机作文我的职业理想300字,我的人生理想作文300字(4篇)
- oppor9splus计算机找不到了,如果oppor9splus的返回键失败,该如何设置oppor9splus虚拟键?...
- 即时通讯源代码,im源码功能全套