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

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

相关推荐
aiamia3 小时前
CAN配置---波特率中断引脚等---autochips-AC7811-ARM-M3内核
arm开发·单片机·mcu·车载系统·汽车
驯龙高手_追风4 小时前
ARM32位MCU开发板调试经验总结
arm开发·单片机·嵌入式硬件
qq762118227 小时前
arm Rk3588 更新固件
arm开发
silver6878 小时前
中间件介绍
系统架构
亭墨13 小时前
linux0.11源码分析第二弹——setup.s内容
linux·驱动开发·学习·系统架构
@嵌入式Linux小白19 小时前
了解ARM的千兆以太网——RK3588
linux·arm开发·驱动开发
真·Wild·攻城狮1 天前
【arm】国民N32G435通用定时器霍尔配置,双边沿输入捕获配置
arm开发
夜星辰20231 天前
gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf
linux·运维·arm开发
驯龙高手_追风2 天前
QT5.9.9+ARM开发环境搭建【详细步骤】
arm开发·qt