




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第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、大
2、量使用寄存器,指令执行速度更快;4、大多数数据操作都在寄存器中完成;5、寻址方式灵活简单,执行效率高;6、指令长度固定;3.2 ARM处理器体系结构嵌入式处理器的基本结构(1)微处理器是整个系统的核心,通常由3大部分组成:控制单元、算术逻辑单元和寄存器。 算术逻辑单元寄存器控制单元微处理器存储器输入输出嵌入式处理器的基本结构(2)控制单元:主要负责取指、译码和取操作数等基本动作,并发送主要的控制指令。控制单元中包括两个重要的寄存器:程序计数器(PC)和指令寄存器(IR)。程序计数器用于记录下一条程序指令在内存中的位置,以便控制单元能到正确的内存位置取指;指令寄存器负责存放被控制单元所取的指令,
3、通过译码,产生必要的控制信号送到算术逻辑单元进行相关的数据处理工作。嵌入式处理器的基本结构(2)算术逻辑单元:算术逻辑单元分为两部分,一部分是算术运算单元,主要处理数值型的数据,进行数学运算,如加、减、乘、除或数值的比较;另一部分是逻辑运算单元,主要处理逻辑运算工作,如AND、OR、XOR或NOT等运算。嵌入式处理器的基本结构(2)寄存器:用于存储暂时性的数据。主要是从存储器中所得到的数据(这些数据被送到算术逻辑单元中进行处理)和算术逻辑单元中处理好的数据(再进行算术逻辑运行或存入到存储器中。 3.2.1 ARM处理器的工作状态处理器有两种工作状态:ARM:32位,执行字对准的ARM指令Thu
4、mb: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
5、个PC(程序计数器)这些寄存器不能同时看到不同的处理器状态和工作模式确定哪些寄存器是对编程者是可见的ARM微处理器: ARM State寄存器1.ARM状态下的通用寄存器通用寄存器包括R0R15,可以分为三类:未分组寄存器R0R7;分组寄存器R8R14程序计数器PC(R15)未分组寄存器R0R7 所有模式下,R0-R7所对应的物理寄存器都是相同的 这八个寄存器是真正意义上的通用寄存器,ARM体系结构中对它们没有作任何特殊的假设,它们的功能都是等同的。在中断或者异常处理程序中一般都需要对这几个寄存器进行保存。分组寄存器R8R14访问的物理寄存器取决于当前的处理器模式,若要访问特定的物理寄存器而不
6、依赖当前的处理器模式,则要使用规定的名字。 R8-R13各有两组物理寄存器:一组为FIQ模式,另一组是除FIQ以外的其他模式。R13-R14各有6个分组的物理寄存器,一个用于用户模式和系统模式,其他5个分别用于5种异常模式。R13(也被称为SP指针)被用作栈指针,通常在系统初始化时需要对所有模式下的SP指针赋值,当CPU在不同的模式时栈指针会被自动切换成相应模式下的值。R14有两个用途,一是在调用子程序时用于保存调用返回地址,二是在发生异常时用于保存异常返回地址。程序计数器PC(R15)用作程序计数器(PC),可以被读写ARM state: bits 1:0为0,bits31:3即为 PC.
7、THUMB state:bit 0为0,bits31:1即为 PC3.ARM状态下的状态寄存器R16 寄存器R16用作CPSR(Current Program Status Register,当前程序状态寄存器),CPSR可在任何运行模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位。每一种运行模式下又都有一个专用的物理状态寄存器,称为SPSR(Saved Program Status Register,备份的程序状态寄存器),当异常发生时,SPSR用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR。由于用户模式和系统模式不属于异常
8、模式,他们没有SPSR,当在这两种模式下访问SPSR,结果是未知的。CPSRCPSR(当前程序状态寄存器)在所有的模式下都是可以读写的,它主要包含:条件标志中断使能标志当前处理器的模式其它的一些状态和控制标志ARM微处理器:程序状态寄存器置0表示执行32bit的ARM指令置1表示执行16bit的Thumb指令 NegativeZeroCarryOverflowIRQ中断的响应:置1:禁止响应置0:允许响应FIQ中断的响应:置1:禁止响应置0:允许响应条件标志模式控制位ARM/Thumb控制标志中断标志ARM微处理器:程序状态寄存器模式控制位M0-M4Thumb状态下的寄存器组织两种状态下的寄存
9、器组织的关系Thumb状态下的寄存器组织与ARM状态下的寄存器组织的关系:Thumb状态下和ARM状态下的R0R7是相同的。Thumb状态下和ARM状态下的CPSR和所有的SPSR是相同的。Thumb状态下的SP对应于ARM状态下的R13。Thumb状态下的LR对应于ARM状态下的R14。 Thumb状态下的程序计数器对应于ARM状态下R153.2.3 ARM的工作模式7种CPU模式 CPU模式的转变:软件控制异常外部中断ARM微处理器:CPU模式User模式程序不能访问有些受保护的资源只能通过异常的形式来改变CPU的当前运行模式特权模式可以存取系统中的任何资源System模式与User模式的
10、运行环境一样但是它可以不受任何限制的访问任何资源该模式主要用于运行系统中的一些特权任务FIQ模式IRQ模式Supervisor模式Abort模式Undefined模式异常模式:主要是在外部中断或者程序执行非法操作时会触发3.2.4 流水线1 流水线的概念与原理 处理器按照一系列步骤来执行每一条指令,典型的步骤如下: (1)从存储器读取指令(fetch); (3)译码以鉴别它是属于哪一条指令(decode); (3)从指令中提取指令的操作数(这些操作数往往存在于寄存器中)(reg); (4)将操作数进行组合以得到结果或存储器地址(ALU); (5)如果需要,则访问存储器以存储数据(mem); (
11、6)将结果写回到寄存器堆(res)。2 流水线的分类 到ARM7为止的ARM处理器使用简单的3级流水线,它包括下列流水线级。 (1)取指令(fetch):从寄存器装载一条指令。 (3)译码(decode):识别被执行的指令,并为下一个周期准备数据通路的控制信号。在这一级,指令占有译码逻辑,不占用数据通路。 (3)执行(excute):处理指令并将结果写回寄存器。1)3级流水线ARM组织 在ARM9TDMI中使用了典型的5级流水线,5级流水线包括下面的流水线级。 (1)取指令(fetch):从存储器中取出指令,并将其放入指令流水线。 (3)译码(decode):指令被译码,从寄存器堆中读取寄存器
12、操作数。在寄存器堆中有3个操作数读端口,因此,大多数ARM指令能在1个周期内读取其操作数。2)5级流水线ARM组织 (3)执行(execute):将其中1个操作数移位,并在ALU中产生结果。如果指令是Load或Store指令,则在ALU中计算存储器的地址。 (4)缓冲/数据(buffer/data):如果需要则访问数据存储器,否则ALU只是简单地缓冲1个时钟周期。 (5)回写(write-back):将指令的结果回写到寄存器堆,包括任何从寄存器读出的数据。 在ARM10中,将流水线的级数增加到6级,使系统的平均处理能力达到了1.3DMIPS/MHz。 3)6级流水线ARM组织图3-4 6级流水
13、线指令的执行过程3.2.5 异常当正常的程序执行流程发生暂时的停止时,称之为异常,例如处理一个外部的中断请求。在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。ARM体系结构中的异常,与8位/16位体系结构的中断有很大的相似之处,但异常与中断的概念并不完全等同。1 ARM体系结构所支持的异常类型ARM CPU将引起异常的类型分为7种2 异常优先级3 应用程序中的异常处理当系统运行时,异常可能会随时发生,为保证在ARM处理器发生异常时不至于处于未知状态,在应用程序的设计中,首先要进行异常处理,采用的
14、方式是在异常向量表中的特定位置放置一条跳转指令,跳转到异常处理程序,当ARM处理器发生异常时,程序计数器PC会被强制设置为对应的异常向量,从而跳转到异常处理程序,当异常处理完成以后,返回到主程序继续执行。 异常向量 地 址异 常进入模式0 x0000,0000复位管理模式0 x0000,0004未定义指令未定义模式0 x0000,0008软件中断管理模式0 x0000,000C中止(预取指令)中止模式0 x0000,0010中止(数据)中止模式0 x0000,0014保留保留0 x0000,0018IRQIRQ0 x0000,001CFIQFIQ4 对异常的响应当一个异常出现以后,ARM微处理
15、器会执行以下几步操作 :1、将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。 3、将CPSR复制到相应的SPSR中。3、根据异常类型,强制设置CPSR的运行模式位。 4、强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。 ARM微处理器:异常当异常出现时,异常模式分组的R14和SPSR用于保存状态,即: R14_=return link SPSR_=CPSR CPSR4:0=exception mode number CPSR5=0 /*在ARM状态执行*/ if=Reset or FIQ then CPSR6=1 /*禁止快速中断*/ CPSR7=1 /*禁止正常中断*/PC=exception vector address当处理异常返回时,将SPSR传送到CPSR,R14传送到PC5 异常返回1、将连接寄存器LR的值减去相应的偏移量后送到PC中。3、将SPSR复制回CPSR中。3、若在进入异常处理时设置了中断禁止位,要在此清除。6 异常进入/退出时的指令返回指令以前的状态注意ARM R14_xThumb R14_xBLMOV PC,R14PC4PC31SWIMOVS PC,R14_svcPC4PC31UDEFMOVS PC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年初中数学联考试题及答案
- 梦想课件制作教程
- 右胫骨平台骨折护理查房
- 健康之路蜜蜂养生
- 2025年中国方管拆装餐车市场调查研究报告
- 2025年中国干式穿墙套管市场调查研究报告
- 2025年中国女式珊瑚绒睡衣市场调查研究报告
- 商标转让收费合同协议
- 租借压花地坪合同协议
- 开业花篮采购合同协议
- 地基基础基桩静荷载试验考试题库
- 珠宝行业中的区块链技术
- 大数据时代下传统会计受到的冲击与应对措施
- 断亲协议书模板
- TD/T 1061-2021 自然资源价格评估通则(正式版)
- 级进模具毕业设计说明书
- MOOC 知识创新与学术规范-南京大学 中国大学慕课答案
- 儿童呼吸机基本使用
- 手术替代治疗方案
- 建筑工程项目管理绩效评价指标体系
- T-CNPPA 3025-2023 药包材质量协议管理指南
评论
0/150
提交评论