ARM基础(2)

来源:互联网 发布:mac alias 永久生效 编辑:程序博客网 时间:2024/06/06 03:24

1、ARM微处理器的寄存器组织

ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器,这些寄存器不能同时被访问,具体哪些寄存器是可编程访问的,取决于微处理器的工作状态及具体的运行模式。

2、流水线技术

流水线技术是通过将每条指令都分解为多步,每步都由不同的功能部件来完成,从而实现在同一时间内并行处理多条指令,提高处理器核的效率和吞吐率。程度中的指令仍是一条条顺序执行,每一条的每一步也顺序执行,但在当前指令的步骤尚未执行完时,提前启动后续指令的另一些操作步骤,从而加快程序的执行速度。

流水线

每条指令的大概步骤可以分为三步:取指令、译码、执行,每个步骤都由不同的执行部件完成。

执行一个指令或者直接修改PC而发生跳转时,ARM核会清空流水线。

ARM系列处理器流水线比较:

2、程序计数器PC

寄存器R15用作程序计数器(PC),在ARM状态下,由于ARM指令是字对齐的,因此位[1:0]为0,位[31:2]用于保存PC,在Thumb状态下,指令是半字对齐的,因此位[0]为0,位[31:1]用于保存PC。字对齐是4个字节,半字对齐是2个字节,将PC展开为2进制后根据8421BCD码可以知道ARM状态下最后两位为2和1,Thumb状态下最后一位为1,所以根据指令的对齐方式来存储,累加单位分别为4和2,即最后两位和最后一位永远为0。

由于ARM采用流水线处理器机制,所以当正确读取PC的值时,该值为当前指令加上8个字节。多级流水线是采用多个功能部件,在一个指令状态下并行完成多个任务。所以在指令状态不变的情况下增加流水线的功能部件可以提高程序的执行速度。

异常发生时PC的恢复:

3、状态寄存器

ARM微处理器有6个状态寄存器,其中包括1个当前状态寄存器CPSR和5个备份程序状态寄存器SPSR,SPSR用来进行异常处理。

当正常的程序执行流程发生暂时的停止时,成为异常,在处理一个异常之前,当前处理器的状态必须保留,这样当异常处理完成后,当前程序可以继续执行。

4、ARM内存管理单元

MMU是存储器管理单元的缩写,它是用来管理虚拟内存系统的器件。MMU通常是CPU的一部分,本身有少量存储空间存放从虚拟地址到物理地址的匹配表。

MMU的两个主要功能:

1、将虚拟地址转换成物理地址

2、对存储器的访问控制

 

原创粉丝点击