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. 作用

不同的线程可以在不同的核中进行 实现真正的并发

相关推荐
高旭的旭16 小时前
图解 Android 系统架构:从 App、Framework、HAL 到 Linux 驱动
android·linux·系统架构
solihawk17 小时前
架构系列之软件架构设计基本概念
系统架构
a59865219 小时前
无公网IP,ARM服务器搭建云手机远程访问方案
服务器·arm开发·tcp/ip·云手机
ABB自动化19 小时前
ABB 500CIM06 (1MRB150077R0111) | REB500 通信接口
大数据·分布式·系统架构·系统安全·模块测试·plc 控制器
youandyouyou19 小时前
局域网视频会议系统架构拆解与私有化部署实践
系统架构·音视频·网络通信
2601_9653842620 小时前
从系统架构与微环境视角,拆解“口臭”的底层成因
系统架构
en.en..1 天前
volatile 完整深度教程(C 代码 + 带注释 ARM 汇编 + 硬件中断原理 + 分步运行时序)
c语言·汇编·arm开发
各类产品分享1 天前
工业现场 AR 巡检系统架构设计与落地实践
系统架构·ar·ar巡检
下辈子不要当码农1 天前
项目框架搭建(2)
arm开发
我命由我123452 天前
软件工程概念 - 可插拔性
java·后端·学习·java-ee·系统架构·软件工程·学习方法