嵌入式系统教学课件:第3章 ARM微处理器体系结构与指令集.ppt
文本预览下载声明
第3章 ARM微处理器体系结构与指令集 主要内容 - ARM体系结构的特点 - ARM微处理器体系结构 - ARM处理器的工作模式 - ARM处理器的寄存器组织 - 流水线 - ARM处理器的存储 - ARM处理器的异常 - ARM处理器的指令系统 - ARM处理器的寻址方式 - ARM指令集 - Thumb指令集 3.1 ARM体系结构的特点 RISC型处理器结构 Thumb指令集 多处理器状态模式 两种处理器工作状态 嵌入式在线仿真调试 灵活方便的接口 低电压功耗的设计 ARM微处理器的特点 采用RISC架构的ARM微处理器一般具有如下特点: 1、体积小、低功耗、低成本、高性能; 3、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件; 3、大量使用寄存器,指令执行速度更快; 4、大多数数据操作都在寄存器中完成; 5、寻址方式灵活简单,执行效率高; 6、指令长度固定; 3.2 ARM处理器体系结构 嵌入式处理器的基本结构(1) 微处理器是整个系统的核心,通常由3大部分组成:控制单元、算术逻辑单元和寄存器。 嵌入式处理器的基本结构(2) 控制单元:主要负责取指、译码和取操作数等基本动作,并发送主要的控制指令。控制单元中包括两个重要的寄存器:程序计数器(PC)和指令寄存器(IR)。程序计数器用于记录下一条程序指令在内存中的位置,以便控制单元能到正确的内存位置取指;指令寄存器负责存放被控制单元所取的指令,通过译码,产生必要的控制信号送到算术逻辑单元进行相关的数据处理工作。 嵌入式处理器的基本结构(2) 算术逻辑单元:算术逻辑单元分为两部分,一部分是算术运算单元,主要处理数值型的数据,进行数学运算,如加、减、乘、除或数值的比较;另一部分是逻辑运算单元,主要处理逻辑运算工作,如AND、OR、XOR或NOT等运算。 嵌入式处理器的基本结构(2) 寄存器:用于存储暂时性的数据。主要是从存储器中所得到的数据(这些数据被送到算术逻辑单元中进行处理)和算术逻辑单元中处理好的数据(再进行算术逻辑运行或存入到存储器中。 3.2.1 ARM处理器的工作状态 处理器有两种工作状态: ARM:32位,执行字对准的ARM指令 Thumb:16位,执行半字对准的Thumb指令 ARM和Thumb之间状态的切换不影响处理器的模式或寄存器的内容 ARM微处理器:处理器工作状态 进入Thumb状态: 执行BX指令,并设置操作数寄存器的状态(位[0])为1。 在Thumb状态进入异常(IRQ, FIQ, UNDEF, ABORT,SWI etc.),当异常处理返回时自动转换到Thumb状态 进入ARM状态: 执行BX指令,并设置操作数寄存器的状态(位[0])为0。 进入异常时,将PC放入异常模式链接寄存器中,从异常向量地址开始执行也可进入ARM状态 3.2.2 寄存器组织 ARM处理器有37个寄存器 30个通用寄存器:堆栈及其他通用寄存器 6个状态寄存器 1个PC(程序计数器) 这些寄存器不能同时看到 不同的处理器状态和工作模式确定哪些寄存器是对编程者是可见的 ARM微处理器: ARM State寄存器 1.ARM状态下的通用寄存器 通用寄存器包括R0~R15,可以分为三类: 未分组寄存器R0~R7; 分组寄存器R8~R14 程序计数器PC(R15) 未分组寄存器R0~R7 所有模式下,R0-R7所对应的物理寄存器都是相同的 这八个寄存器是真正意义上的通用寄存器,ARM体系结构中对它们没有作任何特殊的假设,它们的功能都是等同的。 在中断或者异常处理程序中一般都需要对这几个寄存器进行保存。 分组寄存器R8~R14 访问的物理寄存器取决于当前的处理器模式,若要访问特定的物理寄存器而不依赖当前的处理器模式,则要使用规定的名字。 R8-R13各有两组物理寄存器:一组为FIQ模式,另一组是除FIQ以外的其他模式。 R13-R14各有6个分组的物理寄存器,一个用于用户模式和系统模式,其他5个分别用于5种异常模式。 R13(也被称为SP指针)被用作栈指针,通常在系统初始化时需要对所有模式下的SP指针赋值,当CPU在不同的模式时栈指针会被自动切换成相应模式下的值。 R14有两个用途,一是在调用子程序时用于保存调用返回地址,二是在发生异常时用于保存异常返回地址。 程序计数器PC(R15) 用作程序计数器(PC),可以被读写 ARM state: bits [1:0]为0,bits[31:3]即为 PC. THUMB state:bit [0]为0,bits[31:1]即为 PC 3.ARM状态下的状态寄存器R16 寄存器R16用作CPSR(Current Program Status Register,当前程序状态
显示全部