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中输入执行的命令都保存在这里. 此目录下的所有命令都是普通权限用户也可执行的. ...
最新文章
- 局部变量和static变量
- python分割数字_对python数据切割归并算法的实例讲解
- Useful code snippet to parse the key value pairs in URL
- python---字符编码
- 收藏10个2012年最新发布的jQuery插件
- 关于使用墙外安卓应用
- 数据结构 【实验 串的基本操作】
- 查询服务器硬件配置的命令
- caffe学习日记--lesson8:站在巨人的肩膀上, denny的学习专栏——徐其华——caffe
- 好用的eclipse快捷键
- php 数独求解,高效算法求解数独(示例代码)
- Java 编码规范8(编程规约-注释规约与其它)
- 在Excel中快速选择数据
- 计算机全键在线使用说明书,笔记本电脑键盘介绍图,笔记本键盘全部按键功能介绍说明-系统城...
- 不错的javascript极品日历
- C#语言实例源码系列-设置系统时间
- 成都拓嘉辰丰:拼多多子账号建立的方法?
- 17 scala case class object
- 大白话理解德摩根定律(De Morgan‘s Laws)
- html盒模型中border的写法,【前端】盒子模型的边框样式属性和应用技巧讲解