ARM技术与体系结构_第1页
ARM技术与体系结构_第2页
ARM技术与体系结构_第3页
ARM技术与体系结构_第4页
ARM技术与体系结构_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章ARM技术与ARM体系结构ARM特点:1 体积小、功耗低、成本低、性能高2支持Thumb (16位)、ARM (32位)双指令集,能很好的兼容8位、16位器件3大量使用寄存器,指令执行速度更快4寻址方式灵活简单,执行效率高嵌入式微处理器结构与应用内容提要。2.1ARM体系结构版本与内核 o 2.2 ARM内核模块。2.3。2.4o 2.5。2.6q 2.7ARM处理器的工作模式ARM内部寄存器ARM异常处理存储方式与存储器映射机制ARM流水线技术分析2.1 ARM体系结构版本与内核。第一片ARM处理器是1983年10月到1985年4月间在 位于英国剑桥的Acorn Computer公司开

2、发° 1990年,ARM公司成立。20世纪90年代,ARM快速进入世界市场。1995年 StrongARM 问世。XScale是下一代StrongARM芯片的发展基础o ARM10TDMI是ARM处理器核中的高端产品。ARM11是ARM家族中性能最强的一个系列嵌入式微处理器结构与应用32.1.1 ARM体系结构版本早期的ARMS支持 Halfword 和 signed halfword f byte 和 System mode改良的 ARM/Thumb 交互作用 以及CLZ指 令Saturated mathsIARM7TDMII ARM9TDMII ARM1020EARM9E-SIA

3、RM720T| ARM940TXScaleARM966E-S支持Thumb指令集DSP multiply-accumulate instructionsJazelle支持Java字节码嵌入式微处理器结构与应用ARM体系结构的基本版本版本版本变 种系列号处理器核VIVIARM1ARM1V2V2ARM2ARM2V2aARM2aSARM3ARM3V3V3ARM6ARM6、ARM600. ARM610ARM7ARM7. ARM700. ARM710V4V4TARM7TDMI. ARM710T. ARM720T. ARM740TV4ARM8StrongARM. ARM8、ARM810V4TARM9ARM

4、9TDMK ARM920T. ARM940TV5V5TEARM9E-SARM 10ARMIOTDMI. ARM1020EV6V6ARM11ARM1K ARM11562-S. ARM1156T2F S> ARM11JZF-SV7V7ARMCotexARM Cotex-A8 ARM Cotex-R4 ARM Cotex-M3联入式微处理器结构与应用52.1.2 ARM体系结构的基本版本命名规则ARMxyzTDMlEJF-S大括号内的字母是可选的,各个字母的含义如下: x 系列号,例如ARM7中的“7”、ARM9中的“9”; y 内部存储管理/保护单元,例如ARM72中的“2”、ARM94中

5、的 “4”; z 内含有高速缓存Cache; T 技持16位的Thumb指令集; D支持JTAG片上调试; M 支持用于长乘法操作(64位结果)的ARM指令,包含快速 乘法器; I 带有嵌入式追踪宏单元ETM (Embedded Trace Macro),用来设置断点和观察点的调试硬件;嵌入式微处理器结构与应用6 E 增强型DSP指令(基于TDMI); J 含有Java加速器Jazelle,与Java虚拟机相比,Java加速器Jazelle使Java代码运行速度提高了8倍,功耗 降低到原来的80%; F向量浮点单元; S 可综合版本,意味着处理器内核是以源代码形式 提供的。这种源代码形式又可以

6、被编译成一种易于EDA工 具使用的形式。嵌入式微处理器结构与应用72.2 ARM内核模块 ARM处理器都带有嵌入式追踪宏单元ETM (Embedded宿主机Trace Macro),它是ARM公司自己推出的调试工具。ARMcore收入式ICEJTAG接口TAP嵌入式微处理器结构与应用82.2.1 ARM7TDMI-S 内核结构 ARM7TDMI是基于ARM7内核 3级流水线0.9MIPS/MHZ (流水线级数越多代表单位时间内执行命令的条数越多)冯诺依曼架构 CPI(Cycle Per Instruction)约为 19 T - Thumb架构扩展,提供两个独立的指令集:ARM指令,均为32位

7、 Thumb指令,均为16位两种运行状态,用來选择哪个指令集被执行 D内核具有Debug扩展结构 M -增强乘法器支持64位结果I - Embedded ICE-RT逻辑提供片上断点和 调试点支持嵌入式微处理器结构与应用9ARM7TDMI 内核ABE A31:0Increme nterBn32 位 ALUA乘法器W地址自增器PC Update解码站指令解码BIGEND MCLK WAIT nRW MAS(1:0读数据寄存器111TDBE指令 解码VD31:0控制逻辑ISYNC nIRQ nFIQ nRESET ABORT nTRANS nMREQ SEQ LOCK nM4:01OPCPPAPB

8、ncMCC嵌入式微处理器结构与应用10ARM7TDMI内核信号时钟配置中断总线控制电源MCLK nWAITISYNCBUSENBIGENDnIRQ nFIQnRESETAPEDBEVDDVSSnM4:01tnMREQSEQLOCKA31:0.D(31:0ARM7TDMI<DIN(31:0DOUTI31:Ol .内核nENOUTnRWMAS1:0nTRANSABORTnOPCnCPICPACPB存储器接口存储器管理协处理器接口嵌入式微处理器结构与应用11特点: 32/16 位RISC架构(ARMV4T)。具有最高性能和灵活性的32位ARM指令集。代码紧凑的16位Thumb指令集。统一的总线

9、接口,指令与数据都在32位总线上传输。 3级流水线。 32位算术逻辑单元(ALU)。极小的核心尺寸以及低功耗。完全的静态操作。协处理器接口。扩展的调试设备:实时调试、JTAG、ETM接口嵌入式微处理器结构与应用12-ARM7系列内核采用了三条流水线的内核结构,三级流水线分别为取指(Fetch)、译码(Decode)、执行(Execute) o取指令第i级取指第2级译码指令解码ARMjfr 令解码寄存器 解码第3级执行寄存 器读移位 操作ALU寄存嵌入式徹处理器结构与应用13需要注意的是,PC指向正被取指的指令而不是正在执行的指令:ARMThumbPCPCPC 4 PC-2PC 8 PC-42.

10、2.2 ARM9内核结构 ARM920是一款32位嵌入式RISC处理器内核。在 指令操作上采用5级流水线 取指:从指令Cache中读取指令。 译码:对指令进行译码,识别出是对哪个寄存器进行操作并从通用寄 存器中读取操作数。 执行:进行ALU运算和移位操作,如果是对存储器操作的指令,则在 ALU中计算出要访问的存储器地址。 存储器访问:如果是对存储器访问的指令,用来实现数据缓冲功能( 通过数据Cache)。 寄存器回写:将指令运算或操作结果写回到目标寄存器中。例如:LDR RO, R1, #4! ;R0<-R1+4,|W)W R1=R1+4嵌入式微处理器结构与应用15嵌入式微处理器结构与应

11、用17邻2级 详石马ARM920的5级流水线操作取扌旨今扌旨令解石马解"3读2.3 ARM处理器的工作模式 ARM技术的设计者将ARM处理器在应用中可能产 生的状态进行了分类,并针对同一类型的异常状态 设定了一个固定的入口点,当异常产生时,程序会 自动跳转到对应异常入口处进行异常服务。嵌入式微处理器结构与应用ARM处理器共有7种工作模式 1.用户模式:非特权模式,也就是正常程序执行 的模式,大部分任务在这种模式下执行。在用户模 式下,如果没异常发生,不允许应用程序自行改变 处理器的工作模式,如果有异常发生,处理器会自 动切换工作模式 2. FIQ模式:也称为快速中断模式,支持高速数据

12、传输和通道处理,当一个高优先级(fast)中断产生 时将会进入这种模式。(页面数据传输)嵌入式徴处理器结构与应用19 3. IRQ模式:也称为普通中断模式:当一个低优先 级(normal)中断产生时将会进入这种模式。在这模 式下按中断的处理器方式又分为向量中断和非向量 中断两种。通常的中断处理都在IRQ模式下进行。(如按下按键) 4. SVC模式:称之为管理模式,它是一种操作系统保护模式。当复位或软中断指令执行时处理器将进入这种模式。嵌入式徹处理器结构与应用19 5.中止模式:当存取异常时将会进入这种模式,用来处理存储器故障、实现虚拟存储或存储保护。 6.未定义指令异常模式:当执行未定义指令时

13、会进入这种模式,主要是用来处理未定义的指令陷阱 ,支持硬件协处理器的软件仿真,因为未定义指令 多发生在对协处理器的操作上。(可用于设置断点) 7.系统模式:使用和User模式相同寄存器组的特 权模式,用来运行特权级的操作系统任务。嵌入式微处理器结构与应用20在这7种工作模式中,除了用户模式以外,其他6种处理器模 式可以称为特权模式,在这些模式下,程序可以访问所有的 系统资源,也可以任意地进行处理器模式的切换。在这6种特权模式中,除了系统模式外的其他5种特权模式又 称为异常模式,每种异常都对应有自己的异常处理入口点。 ARM微处理器的运行模式可以通过软件改变,也可以通过 外部中断或者异常处理改变

14、。应用程序运行在用户模式下,某些被保护的系统资源是不能 被访问的,因此异常模式常用处理终端或异常,以及访问受 保护的系统资源。嵌入式徹处理器结构与应用2.4内部寄存器 ARM处理器共有37个寄存器,这些寄存器包括以下两类寄存器,不是任何模式下所有的寄存器都能访问到的。 (1) 31个通用寄存器:包括程序计数器PC等,这 些寄存器都是32位寄存器。 (2) 6个状态寄存器:状态寄存器也是32位的寄存 器,但是目前只使用了其中的14位。嵌入式徹处理器结构与应用22ARM寄存器当前可见寄存器Abort ModeUser FIQ备用寄存器IRQ SVC Undefrl3rl4嵌入式微处理器结构与应用2

15、5嵌入式微处理器结构与应用23寄存器组织概要UserFIQIRQSVCUndefAbortrlS (pc) cpsrUsermoder0-r7,"5.andcpssUseroder0-rl2rrl5,andcpsrUsermoder0-rl2,rl5,andcpsrUseroder0-rl2,rl5,andcpsrUsermoder0-rl2,rl5#andcpsrThumb state Low registersr8rl3 (®p) rl4 (lr)Thumb state High registersNote: System模式使用user模式寄存器集ARM寄存器 ARM

16、有37个32-Bits的寄存器. 1 个用作PC( program counter) 1 个用作CPSR(current program status register) 5个用作SPSR(saved program status registers) 30个通用寄存器嵌入式徹处理器结构与应用25寄存器R13在ARM指令中常用作堆栈指针SP,但这只是一 种习惯用法,用户也可使用其他的寄存器作为堆栈指针。而 在Thumb指令集中,某些指令强制性的要求使用R13作为 堆栈指针。 R14也称作子程序连接寄存器(Subroutine Link Register )或连接寄存器LR。当执行BL子程序调用

17、指令时,R14中 得到R15 (程序计数器PC)的备份。其他情况下,R14用作 通用寄存器。与之类似,当发生中断或异常时,对应的分组 寄存器R14_svc、R14_irq> R14_fiq、R14_abt和 R14_und用来保存R15的返回值。嵌入式微处理器结构与应用26寄存器R15用作程序计数器(PC)。在ARM状态下,位1 :0为0,位31:2用于保存PC;在Thumb状态下,位0 为0,位31:1用于保存PC;虽然可以用作通用寄存器,但是有一些指令在使用R15时有 一些特殊限制,若不注意,执行的结果将是不可预料的。所 以,一般不这么使用。由于ARM采用多级流水线技术,所以PC总是

18、指向正在取指 的指令,而不是正在执行的指令。也即PC总是指向当前指 令的下两条指令的地址。因此,对于ARM指令集而言,PC 的值为当前指令的地址值加8个字节。嵌入式微处理器结构与应用27当前处理器的模式决定着哪组寄存器可操作,任何 模式都可以存取:相应的r0-r12子集相应的 r13 (the stack pointer, sp) and r14 (the link register, Ir)相应的 r15 (the program counter, pc)相应的CPSR(current program status register, cpsr)特权模式(除system模式)还可以存取;相应

19、的 spsr (saved program status register)嵌入式微处理器结构与应用28 ARM体系结构包含一个当前程序状态寄存器(CPSR)和5个 备份的程序状态寄存器(SPSRs).由于用户模式和系统模式不属于异常模式,他们没有SPSR ,当在这两种模式下访问SPSR,结果是未知的。备份的程序状态寄存器用来进行异常处理,其功能包括:一保存ALU中的当前操作信息,返回时恢复以前工作状态一控制允许和禁止中断设置处理器的运行模式嵌入式微处理器结构与应用29程序状态寄存器312S 27242316 15Z.C.V |q | I U “ d eI F T I mode条件位: N八结

20、果为负,0结果为正或0r申断禁止位: I =1:禁止 IRQ.-F=1:禁止 FIQ. Z"结果为oo结果不为0-C=1-进位,0借位结果溢出,0结果没溢出 Q位: TBit仅ARM xT架构支持 T=0:处理器处于ARM状态 T=1:处理器处于Thumb状态仅ARM 5TE/J架构支持指示增强型DSP指令是否溢出 Mode位(处理器模式位): 0b10000 User嵌入武徹处理器结构与应用32 J位 0b10001 FIQ 0b10010 IRQ 0b10011 Supervisor仅ARM 5TE/J架构支持程序指针PC (r15)当处理器执行在ARM状态:所有指令32 bit

21、s宽所有指令必须word对齐所以pc值由bits 31:2决定,bits 1:0未定义( 所以指令不能ha If word / byte对齐).嵌入式微处理器结构与应用当处理器执行在Thumb状态:所有指令16 bits宽所有指令必须halfword对齐所以pc值由bits 31:1决定,bits 0未定义(所 以指令不能byte对齐).2.5 ARM异常处理。异常通常定义为:处理器需要中止指令正常执行的任何情形并转向相应的处理,包括 ARM内核产生复位,取指或存储器访问失败,遇到未定义指令,执行软件中断指令,或者出现外部中断等。o大多数异常都对应一个软件的异常处理程序,也就是在异常发生时执行

22、的软件程序。联入式微处理器结构与应用332.5.1 异常入口 ARM处理器的异常分为数据中止、快速中断 请求、普通中断请求、预取指中止、软件中 断、复位及未定义指令共7种。嵌入式微处理器结构与应用34异常类型处理器模式优先级向量表偏移复位SVC10x00000000未定义指令UND60x00000004软件屮断SWISVC60x00000008预取指中止ABT5OxOOOOOOOc数据中止ABT20x00000010保留/0x00000014IRQ中断IRQ40x00000018FIQ中断FIQ30x0000001c嵌入式微处理器结构与应用35 1.复位具有最高的优先级,是系统启动(或芯片 复

23、位)时调用的程序。复位程序对异常处理程序和 系统进行初始化(包括配置储存器和Cache)。同时要保证在IRQ和FIQ中断允许之前初始化外部中 断源,避免在没有设置好相应的处理程序前产生中还要设置好各种处理器模式的堆栈指针。使用复位,一般是为了建立统一的初始信号,复位以后系统会到一个已知的状态。嵌入式微处理器结构与应用36 2.引起未定义指令异常: ARM试图执行一条真正的未定义指令; ARM遇到一条协处理器指令,可是系统中的协处理器硬件并不存在; ARM遇到一条协处理器指令,系统中协处理器硬件也存在,可是ARM 不是在超级用户模式。解决方法:在处理程序中执行软协处理器仿真;禁止在非超级用户模式

24、下操作;报告错误并退出。嵌入式徹处理器结构与应用373.数据中止异常指示访问了无效的存储器地址,或者不允许 当前指令访问,产生数据终止异常。(虚拟 内存管理,拥有MMU单元的处理器)嵌入式微处理器结构与应用384.预取指中止 由于处理器预取的指令地址不存在,或者地址无法访问,当被预取的指令执行时,发生预取指中止异常。(虚拟内存管理,拥有MMU单元的处理器)嵌入式微处理器结构与应用39FIQ中断的优先级比IRQ中断的优先级要高嵌入式徹处理器结构与应用41,且内核进入FIQ处理程序时,把FIQ和IRQ都禁止。(FIQ异常是为了支持数据传输或者通道处理而设计的) 6.软中断(SWI)和未定义指令异常

25、的优先级最低,共享同一优先级,两者不可能同时 出现。一般情况产生软件中断进入管理模式,从而调用特权操作。ARM体系结构所支持的异常类型异常类型具体含义复位复位电平有效时,产生复位异常,程序跳转到 复位处理程序处执行。未定义指令遇到不能处理的指令时,产生未定义指令异常。软件中断执行SWI指令产生,用于用户模式下的程序调用 特权操作指令。指令预取中 止处理器预取指令的地址不存在,或该地址不允 许当前指令访问,产生指令预取中止异常。数据中止处理器数据访问指令的地址不存在,或该地址 不允许当前指令访问时,产生数据中止异常。IRQ外部中断请求有效,且CPSR中的I位为0时,产 生IRQ异常。FIQ快速中

26、断请求引脚冇效,且CPSR中的F位为0时,嵌入式微处理器结构与应斥异常向量表地址昂常英型进入时的核 式送入时的状 态锻入时F的状 态0x0000 0000冥位管理禁止禁止0x0000 0004未定义指令未建义IF0x0000 0008软件中斯 (SWI)管理焚止F0x0000 000C顶取中止(指 令)中止IF0x0000 0010数据中止中止IF0x0000 0014保苗保苗0x0000 0018IRQ外部中断桀止F0x0000 001CFLQ快速中断柴止禁止嵌入式微处理器结构与应用43异常中断优先级异常类型优先级复位1 (星高优先级)优先级唯数据中止2FIQ3IRQ4预取中止5未定义指令6SWI6(最低优先级联入式徹处理器结构与应用43异常处理当异常产生时,ARM core:拷贝 CPSR 至! SPSR_<mode>设置适当的CPSR位:改变处理器状态进入ARM状态改变处理器模式进入相应的界常模式设置屮断禁止位禁止相应中断(如杲需要)0x140x1 C0x18FIQIRQ(Reserved)保存返回地址到LR_<mode>鳥;设置PC指向相应的异常向量地址“os 0x040x00返回时,异常处理需要:从 SPSR_vmode>恢复CPSR从 LR_vmode> 恢复 PC Note:这些操作只能在ARM态执

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论