arm体系结构

arm体系结构主要有五个部分:

1、arm的工作状态,工作模式,寄存器组

2、流水线

3、存储结构

4、指令系统(指令集)

5、异常处理结构

----------------------------------------------------------------------

1、arm的工作状态,工作模式,寄存器组

包含:ARM状态:执行32位字对齐的arm指令,

Thumb状态:执行16位半字节对齐的指令,

注意:两种状态可以相互切换

启动后开始执行开始执行代码时,工作状态处于arm态。

-------------------------------------------------------------

工作模式:(共有7中)

管理模式(suv)保护模式:(系统调用,arm复位启动后,还有就是u-boot引导内核启动时,arm板所处的状态)

用户模式(usr):执行普通应用程序时;

系统模式(sys):超级用户执行指令时

中止模式(abt):运行出错时进入

未定义模式(udn):未定义指令运行出错时进入

快速中断模式:

外部中断模式:

注意:工作模式的切换可通过:软件实现,也可以通过中断来实现。

-----------------------------------------------------------------------------

寄存器组:

总共有37个寄存器,31个通用寄存器,6个状态寄存器。

通用寄存器包括:R0-R15

分为:未分组寄存器:r0-r7

分组寄存器:r8-r14

程序计数器:r15(program count)pc;

各个寄存器的作用:

R0-R12:用于存放局部变量,其中R0-R3还可以用于存放参数(参数传递),在c与汇编混合编程时可用到,如果超过四个参数,其他参数放到栈中。

R13(sp Stack point):用于存放栈的地址,

R14(lr link register ):用于存放子程序的返回地址,也称子程序链接返回地址。

R15(程序计数器pc):用于存放当前工作模式下取指的指令的地址,指向当前执行的那条指令的地址,保存了下一条指令的地址。

CPSR(current program statue register):1、用来保存当前程序状态的寄存器,2、所有处理器模式下都可以访问当前程序状态寄存器(意味可以读写CPSR寄存器来修改处理器模式)。

SPSR(saved program statue register):异常发生时用于保存CPSR的值,从异常返回时,将CPSR_mode复制到CPSR中,恢复原来处理器的模式。(用于切换模式时保存CPSR的值)。

arm状态寄存器的格式:

通过修改前5位可切换处理器模式(即工作模式位)。

工作模式位:

条件码标记位:(通常只读取,不修改)

控制位:(会修改)

--------------------------------------------------------------------------------------------

2、arm流水线结构(使cpu从串行工作变为并行工作)

冯诺依曼结构:只使用一条总线来进行取指令和数据;

哈弗结构:含有两天总线,一条总线用于取指令,另一条指令用于取数据。

流水线的过程:把一个重复的过程分解成诺干个子过程,每个子过程可以与其他子过程同时进行。

即此时pc是指向指令SUB的。

一般讲一个指令的处理过程分成三个步骤

1.  取指.-à读取指令(机器码)

2.  译码  --》

3.  执行à执行指令.

-------------------------------------------------------------------------------------------

3、arm存储结构:

3.存储结构

       --ARM数据类型

              1.8位  (字节)

              2.16位 (半字)

                     3.32位  (字)

              --ARM存储器特点:

                      字节:字节数据可以随意存放

                      半字:  半字对齐(地址最低为0);

                      字:  地址最低为00;

              --ARM格式:

                     大端模式

                     小端模式

              --ARM存储器层次.

                     Arm处理器,希望存储器容量大,速度快.容量大,速度慢。速度快,容量小.

--------------------------------------------------------------------------------------

arm指令系统:

原文地址:https://www.cnblogs.com/defen/p/5367643.html