ARM原理
一、指令集
1、指令集 就是cpu用来计算和控制计算机系统的一套指令的集合。
2、每一种新型cpu在设计的时候就规定好了一套和硬件电路适配的指令系统。指令集先进与否与CPU性能发挥占有很大的因素,也因此,指令集尝尝作为一个判定CPU性能强弱的重要指标。
3、从现阶段主流的指令集来进行分类,主要分为复杂指令集(CISC)和精简指令集(RISC)。
二、CISC和RISC的区别
1、RISC精简指令集(ARM)
1. 概念
复杂指令集中提取了一些简单和常用的指令集组成
2. 特点
指令周期:执行一条指令的所需的时间
指令宽度:一条汇编指令编译生成机器码所占用的空间
3. 结论:
精简指令集:指令周期以及指令宽度都是固定的
thumb指令集:一条指令占用两个字节的空间
arm指令集:一条指令占用四个字节的空间
注意:thumb指令集在使用的时候需要搭配arm指令集使用
2、复杂指令集
1. 概念
更加注重指令的功能和性能
2. 结论
复杂指令集指令宽度和周期都是不固定的 重点在实现功能
三、ARM数据类型的约定
重点区分字和字节的区别
1、arm-v7
2、armv-8
四、数据的存储(重点)
数据的存储方式分为大小端存储
对于大端存储方式:低位地址存高字节数据
对于小端存储方式:低位地址存低字节数据
五、ARM处理器的工作模式
1、ARM处理器工作模式概念
ARM处理器工作模式一共有七种
1. User(用户程序运行模式)
非特权模式,大部分任务在这里执行
2. FIQ(快速中断模式)
当一个高优先级(fast)中断产生时进入FQ模式。
3. IRQ(普通/一般中断模式)
当一个低优先级中断产生式进入IRQ模式
4. Supervisor(管理模式)
当复位或者软中断指令执行时会进入管理模式 重启上电时也是管理模式
提供操作系统使用的一种保护模式,swi命令状态
5. Abort(中止)
当存取异常时会进入Abort模式 对虚拟内存管和内存数据的保护
6. Undef(未定义指令中止)
当执行未定义指令时进入,支持通过软件仿真硬件的协处理
7. system(系统)
使用和User模式相同的寄存器集的特权模式 和user类似只是权限更高(基本遇不到)
2、总结
在特定的模式下,一般会执行特定的代码,完成某个特定功能。
除了用户模式,其余所有模式均为特权模式。
这几种工作模式可以进行切换,可以通过外部硬件进行切换也可以通过软件编程来进行切换。
进入特权模式的异常模式 是为了处理相应的中断
user和system共用一套寄存器
六、ARM寄存器组织
1、CPU从逻辑上划分可以分为三个模块:分别是控制单元、存储单元、运算单元,这三部分是CPU内部总线连接起来的。
2、冯诺依曼提出计算机架构,其工作过程可以分五个阶段:取指令、指令译码、执行指令、访存取数、结果协回。
3、运算器、控制器、存储器、寄存器,由ARM公司集成到CPU内部的。
1、寄存器的位置
1. 寄存器处于SOC内部的cortex-A7核内部
2. 优缺点
运算速率快 但因为适合CPU结合在一起 数量相对较少
2、寄存器介绍
1. 概念
寄存器属于处理器内部寄存器,没有地址,只有编号,使用者只能通过编号对寄存器进行操作。
2. 作用
一般存放暂时需要运算的数据
每一个方块都代表一个寄存器 一个寄存机可以存放32bit(4byte)
每种工作模式都有自己的私有寄存器
寄存器为白色的代表为公有寄存器 带标识的为私有寄存器
如果某个工作模式下有私有寄存器 则不可以访问公有的
寄存器个数有限,一般cortex处理器一共43个寄存器,arm处理器一般有37个寄存器
七、特殊功能寄存器
1、SP------->栈指针寄存器
R13--------->SP
作用:指向栈顶空间的地址
2、LR------->链接寄存器
R14--------->LR
作用:用于存放函数的返回地址
3、PC---->程序计数器
R13----->PC
作用:PC中存放的是当前取指指令的地址
4、CPSR状态寄存器
CPSR--->当前状态寄存器
作用:保存当前的程序状态,分析CPSR寄存器中的值可以判断当前程序的运行状态
5、SPSR寄存器
SPSR----->保存状态寄存器
作用:备份CPSR寄存器的值
八、指令流水线(取指 译码 执行)
1、概念
1. 指令流水线的作用
提高代码的执行效率
2. 取指器
根据PC寄存器中的值进行取指操作
3. 译码器
翻译指令 执行功能 并且给到对应的执行器
4. 执行器
执行命令 完成特定的功能 并且将相应的结果给到对应寄存器
2、ARM指令流水线
V7采用三级 V9采用5级 A9采用8级
注:虽然流水线的等级越来越多,但是其本质还是在三级的基础上进行细分
PC不管是几级流水线,PC指向的永远是当前正在取指的指令,而当前正在执行的指令的地址就是PC。
3、多核处理器
1. 概念
即一个SOC集成多个CPU内核
2. 作用
不同的线程可以在不同的核中进行 实现真正的并发