第2章ARM体系结构课件.ppt

上传人(卖家):晟晟文业 文档编号:3860780 上传时间:2022-10-19 格式:PPT 页数:103 大小:371.04KB
下载 相关 举报
第2章ARM体系结构课件.ppt_第1页
第1页 / 共103页
第2章ARM体系结构课件.ppt_第2页
第2页 / 共103页
第2章ARM体系结构课件.ppt_第3页
第3页 / 共103页
第2章ARM体系结构课件.ppt_第4页
第4页 / 共103页
第2章ARM体系结构课件.ppt_第5页
第5页 / 共103页
点击查看更多>>
资源描述

1、第第2章章 ARM体系结构体系结构ARM概述 uARMAdvanced RISC Machines ARM 公司从事基于公司从事基于RISC芯片技术开发的公司,是芯片技术开发的公司,是IP供应商。供应商。该企业设计了大量高性能、廉价、耗能低的RISC(精简指令集)处理器。公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。uIP(Intellectual Property)知识产权。)知识产权。uFabless(无生产线)无生产线)uRISC(Reduced Instruction Set Computer)ARM:RISC处理器处理器IP核核

2、FablessnARM公司成立于1981年,最初与英国广播公司合作为英国教育界设计小型机,当时采用的是美国的6502芯片。取得成功后,他们开始设计自己的芯片,受当时美国加洲大学伯克利分校提出的RISC思想的影响,他们设计的芯片也采用RISC体系结构,并命名为“Acorn RISC Machine”。nARM公司的第一款芯片ARM1在1985年被设计出来,次年又设计了真正实用的ARM2。ARM2具有32位数据总线和24位地址总线,带有16个寄存器。ARM2可能是当时最简化的32位微处理器,上面仅有30000个晶体管(4年前Motorola公司的68000则有68000个晶体管)。这种精简的结构使

3、ARM2具有优异的低功耗特性,而性能则超过了同期Intel公司的286(134K个晶体管)。n1990年ARM公司另外组建了一个名为“Advanced RISC Machines”的公司,专门从事ARM系列微处理器的开发。1998年ARM公司在伦敦证券交易所和NASDAQ上市。ARM微处理器的特点u体积小、低功耗、低成本、高性能体积小、低功耗、低成本、高性能u支持支持Thumb(16位)位)/ARM(32位)双指令集位)双指令集u大量使用寄存器,指令执行速度更快大量使用寄存器,指令执行速度更快u大多数数据操作都在寄存器中完成大多数数据操作都在寄存器中完成u寻址方式灵活简单,执行效率高寻址方式灵

4、活简单,执行效率高u指令长度固定指令长度固定 2.1 RISC技术和流水线技术技术和流水线技术n2.1.1 计算机体系结构1.冯诺依曼体系结构 冯诺依曼机:将数据和指令都存储在存储器中的计算机。(延用至今)计算系统由一个中央处理单元(CPU)和一个存储器组成。存储器拥有数据和指令,并且可以根据所给的地址对它进行读或写。冯诺依曼简化了十进制的第一台计算机,最大的贡献:提出了二进制的存储程序模式处理器处理器PC存储器存储器指令指令数据数据2.1.1 计算机体系结构(2)2.哈佛体系结构n为数据和程序提供了各自独立的存储器。n程序计数器只指向程序存储器而不指向数据存储器 n两组数据线允许同时访问指令

5、和数据(访问指令和数据互不干扰)2.1.2 RISC技术技术nCISC:复杂指令集计算机(Complex Instruction Set Computer)n计算机性能的提高往往是通过增加硬件的复杂性来获得。n随着集成电路技术,特别是 VLSI(超大规模集成电路)技术的迅速发展,为了软件编程方便和提高程序的运行速度,硬件工程师采用的办法是不断增加可实现复杂功能的指令和多种灵活的编址方式。甚至某些指令可支持高级语言语句归类后的复杂操作。至使硬件越来越复杂,造价也相应提高。为实现复杂操作,微处理器除向程序员提供类似各种寄存器和机器指令功能外nCISC不适用于嵌入式系统,因为嵌入式要求精简指令。nR

6、ISC:n1979年美国加州大学伯克利分校提出精简指令集计算机年美国加州大学伯克利分校提出精简指令集计算机(Reduced Instruction Set Computer,RISC)nRISC的目标的目标:设计出简单有效的指令集。(需要用设计出简单有效的指令集。(需要用软件降低硬件执行的指令的复杂度。)软件降低硬件执行的指令的复杂度。)nRISC能够精简指令集的复杂度,简化指令实现的硬件能够精简指令集的复杂度,简化指令实现的硬件设计,硬件只执行很有限的最常用的的那部分指令,大设计,硬件只执行很有限的最常用的的那部分指令,大部分复杂的操作则由简单指令合成。部分复杂的操作则由简单指令合成。n80

7、%的程序只用到了的程序只用到了20%的指令。的指令。编译器编译器处理器处理器(复杂性高)(复杂性高)编译器编译器(复杂性高)(复杂性高)处理器处理器CISCRISCCISC和和RISC的不同的不同RISC体系结构特点:体系结构特点:n大量使用寄存器大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载,数据处理指令只对寄存器进行操作,只有加载/存储指存储指令可以访问存储器,以提高指令的执行效率(优点:大部分的操作可在令可以访问存储器,以提高指令的执行效率(优点:大部分的操作可在寄存器内执行,不需经过处理器,提高了处理速度,寄存器的速度比存寄存器内执行,不需经过处理器,提高了处理速度,寄存器的

8、速度比存储器快。)储器快。)n在进行指令系统设计时,只选择使用频率很高的指令,在此基础上增加在进行指令系统设计时,只选择使用频率很高的指令,在此基础上增加少量能有效支持操作系统和高级语言实现以及其他功能的指令,使少量能有效支持操作系统和高级语言实现以及其他功能的指令,使指令指令条数大大减少条数大大减少n简单的寻址模式简单的寻址模式n采用固定长度的指令格式,指令归整、简单、基本寻址方式有采用固定长度的指令格式,指令归整、简单、基本寻址方式有23种种n使用单周期指令,便于流水线操作执行使用单周期指令,便于流水线操作执行n为提高指令执行速度,大部分指令直接采用硬件电路实现,少量采用微为提高指令执行速

9、度,大部分指令直接采用硬件电路实现,少量采用微码实现码实现RISC体系结构特点体系结构特点ARM体系结构还采用了一些特别的技术,在保证高性能的前体系结构还采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗。提下尽量缩小芯片的面积,并降低功耗。u大多数的指令都可根据前面的执行结果决定是否被执行,从大多数的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率而提高指令的执行效率u可用加载可用加载/存储指令批量传输数据,以提高数据的传输效率存储指令批量传输数据,以提高数据的传输效率u可在一条数据处理指令中同时完成逻辑处理和移位处理可在一条数据处理指令中同时完成逻辑处

10、理和移位处理u在循环处理中使用地址的自动增减来提高运行效率在循环处理中使用地址的自动增减来提高运行效率 取指令取指令 3执行指令执行指令 32.1.3 流水线技术流水线技术2.指令的二级流水指令的二级流水1.指令的串行执行指令的串行执行取指令取指令 取指令部件取指令部件 完成完成总有一个部件总有一个部件 空闲空闲指令预取指令预取若若 取指取指 和和 执行执行 阶段时间上阶段时间上 完全重叠完全重叠指令周期指令周期 减半减半 速度提高速度提高 1 倍倍执行指令执行指令 执行指令部件执行指令部件 完成完成取指令取指令 1执行执行指令指令 1取取指令指令 2执行执行指令指令 2取取指令指令 3执行指

11、令执行指令 3取指令取指令 2执行指令执行指令 2取指令取指令 1执行指令执行指令 1指令的三级流水线指令的三级流水线取指取指译码译码执行执行从存储器取指从存储器取指指令译码指令译码从寄存器组中读寄存器,移位和从寄存器组中读寄存器,移位和ALU操作,将寄存器写回到寄存器组操作,将寄存器写回到寄存器组取指取指译码译码执行执行取指取指译码译码执行执行取指取指译码译码执行执行t指令指令123三级指令流水线功能段划分如下:三级指令流水线功能段划分如下:ARM单周期指令单周期指令3级流水线操作级流水线操作n三级流水线如何在实际指令中体现?ADD R0,R1,R2SUB R3,R4,#2CMP R5,R1

12、n第一个周期:n第二个周期:n第三个周期:n执行完上述指令需要几个周期?流水线技术流水线技术(3)nARM7系列微处理器采用3级流水线级流水线结构结构(取指、译码、执行)(取指、译码、执行)nARM9系列微处理器采用5级流水线结构级流水线结构(取指、译码、执行、存储器访问、回写)(取指、译码、执行、存储器访问、回写)nARM10系列微处理器采用6级流水线结构级流水线结构nPXA270微处理器采用7级超级流水线结构级超级流水线结构 注:流水线级数增加,每一段的工作量减小,处注:流水线级数增加,每一段的工作量减小,处理器可工作在更高的频率,性能得到改善理器可工作在更高的频率,性能得到改善2.2 A

13、RM体系结构简介nARM命名规则:ARM xyzTDMIEJFS x:系列 y:存储管理/保护单元 z:Cache(高速缓冲存储器)n2.2.1 ARM体系结构的演变 (V1、V2、V3、V4、V5、V6、cortex)一、版本V1n本版本包括下列指令:n1、乘法指令之外的基本数据处理指令;n2、基于字节、字和多字的存储器访问操作指令(Load/Sore);n3、子程序调用指令BL在内的跳转指令;n4、完成系统调用的软件中断指令SWI。二、版本V2n它仍然26位地址的机器,但包含了对32位结果的乘法指令和协处理器的支持。n 与版本1相比,版本2(2a)增加了下列指令:n1、乘和乘加指令;n2、

14、支持协处理器的指令;n3、对于FIQ模式,提供了额外的影子寄存器;n4、SWP指令及SWPB指令。三、版本V3n版本3较以前的版本发生了大的变化,具体的改进如下:n1、地址空间扩展到了32位,但除了版本3G外的其他版本是向前兼容的,也支持26位的地址空间;n2、分开的当前程序状态寄存器CPSR(Current Program Status Register)和备份的程序状态寄存器SPSR(Saved Program Status Register),SPSR用于在程序异常中断时保存被中断的程序状态;n3、增加了两种异常模式,使操作系统代码可方便地使用数据访问中止异常、指令预取中止异常和未定义指

15、令异常;n4、增加MRS指令和MSR指令,用于完对CPSR和SPSR寄存器的读/写;n5、修改了原来的从异常中返回的指令。四、版本V4n与版本3相比,版本4增加了下列指令:n1、有符号、无符号的半字和有符号字节的Load和Store指令。n2、增加了T变种,处理器可工作于Thumb状态,在该状态下的指令集是16位的Thumb指令集。n3、增加了处理器的特权模式。在该模式下,使用的是用户模式下的寄存器。n版本4不再强制要求与26位地址空间兼容,而且还明确了那些指令会引起未定义指令异常。n五、版本V5nARM10处理器是最早支持版本5T的(很快也会支持5TE版本)处理器。n与版本4相比,版本5的指

16、令集有了如下变化:n1、提高了T变种中ARM/Thumb混合使用的效率;n2、增加前导零记数(CLZ)指令,该指令可使整数除法和中断优先级排队操作更为有效;n3、增加了BKPT(软件断点)指令;n4、为协处理器设计提供了更多的可供选择的指令;n5、更加严格地定义了乘法指令对条件码标志位的影响。n六、版本V6nARM体系版本6是2001年发布的。新架构V6在降低耗电量的同时,还强化了图形处理性能。通过追加有效进行多媒体处理的SIMD功能,将语音及图象的处理功能提高到了原机型的4倍。V6还支持微处理器内核。n七、版本V7-Cortexn前所未有的低成本实现nnn表 ARM体系结构总结n 核 体系结

17、构nn2.2.2 ARM体系结构的特征n一些特定指令的周期数可变n内嵌桶形移位寄存器产生了更为复杂的指令nThumb16位指令集n条件执行n增强指令:DSP的应用n2.2.3 ARM体系的变种 T变种:16位指令集 M变种:长乘法指令 E变种:增强型DSP指令 J变种:JAVA加速器 SIMD变种:媒体功能扩展n2.2.4 ARM系列 ARM7 ARM9 ARM9E ARM10E ARM11 strongARM、XScale2.2.5 ARM存储数据类型字(字(Word)在在ARM体系结构中,字的长度为体系结构中,字的长度为32位位 半字(半字(Half-Word)在在ARM体系结构中,半字的

18、长度为体系结构中,半字的长度为16位位 字节(字节(Byte)在在ARM体系结构中,字节的长度为体系结构中,字节的长度为8位。位。字对齐:四字节对齐字对齐:四字节对齐半字对齐:两字节对齐半字对齐:两字节对齐练习:1.哈佛体系结构和冯哈佛体系结构和冯诺依曼体系结构有何不同?诺依曼体系结构有何不同?n冯诺依曼机:将数据和指令都存储在存储器中的计算机。计算系统由一个中央处理单元(CPU)和一个存储器组成。存储器拥有数据和指令,并且可以根据所给的地址对它进行读或写。n哈佛机:为数据和程序提供了各自独立的存储器。程序计数器只指向程序存储器而不指向数据存储器练习:n2.ARM7TDMI中的中的T、D、M、

19、I的含义是什么?的含义是什么?ARM7TDMI采用几级流水线?使用何种体系结构?采用几级流水线?使用何种体系结构?n高密度 16 位的Thumb指令机扩展(带T 后缀的)支持片上调试(带D 后缀的)、64 位乘法指令(带M 后缀的)、嵌入式ICE,支持片上断点和调试点(带I 后缀的)n三级流水线(取指 译码 执行);使用了冯诺依曼(Von Neumann)结构,指令和数据共用一条32 位总线。2.3 ARM微处理器工作状态微处理器工作状态 2.3.1 两种两种工作工作状态:状态:nARM状态状态:处理器执行处理器执行32位位的的字对齐字对齐的的ARM指令指令nThumb状态状态:处理器执行处理

20、器执行16位位的、的、半字对齐半字对齐的的Thumb指令指令在程序的执行过程中,微处理器可以随时在上述两种状态在程序的执行过程中,微处理器可以随时在上述两种状态之间切换。之间切换。处理器工作状态的转变并不影响处理器的工作模式和相应处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。寄存器中的内容。2.3 ARM微处理器的工作状态微处理器的工作状态(2)2.3.2 工作状态的切换:工作状态的切换:nARM指令集和指令集和Thumb指令集均有切换处理器指令集均有切换处理器状态的指令。状态的指令。通过通过这些这些指令指令就就可以在两种工可以在两种工作状态之间切换作状态之间切换。nV4版

21、本中,版本中,BX指令指令可以实现程序间处理器工可以实现程序间处理器工作状态切换(作状态切换(BX:带状态切换的跳转指令):带状态切换的跳转指令)nV5版本中,版本中,BLR、LDR、LDM指令指令可以实现可以实现程序间处理器工作状态切换(程序间处理器工作状态切换(BLR:带返:带返回和状态切换的跳转指令)回和状态切换的跳转指令)ARM微处理器的工作状态微处理器的工作状态(2)2.3.2 状态切换:状态切换:BX n 指令的条件码。忽略时无条件执行。指令的条件码。忽略时无条件执行。n 寄存器中为跳转的目标地址寄存器中为跳转的目标地址当当寄存器的寄存器的bit0为为0时,目标地址处的指令为时,目

22、标地址处的指令为ARM指令指令当当寄存器的寄存器的bit0为为1时,目标地址处的指令为时,目标地址处的指令为Thumb指令。指令。注意注意:ARM微处理器在复位或上电时处于微处理器在复位或上电时处于ARM状态,状态,发生异常时也处于发生异常时也处于ARM状态。状态。如果处理器在如果处理器在Thumb状态进入异常,当异常处理返回状态进入异常,当异常处理返回时,处理器仍然处在时,处理器仍然处在Thumb状态状态2.4 ARM微处理器工作模式微处理器工作模式ARM系统结构支持系统结构支持7种处理器模式:种处理器模式:u用户模式(用户模式(usr):):用户应用程序用户应用程序u系统模式(系统模式(s

23、ys):):特权模式特权模式u快速中断模式(快速中断模式(fiq):用于快速数据传输):用于快速数据传输u中断模式(中断模式(irq):):通用的中断处理通用的中断处理u管理模式(管理模式(svc):):操作系统使用的保护模式操作系统使用的保护模式u终止模式终止模式(abt):数据访问中止或指令预取中止数据访问中止或指令预取中止u未定义指令模式(未定义指令模式(und):未定义的指令执行时):未定义的指令执行时管理模式(管理模式(svc)是系统复位后的默认模式)是系统复位后的默认模式特权模式(特权模式(Privileged Modes)异常模式(异常模式(Exception Modes)异常模

24、式异常模式特权模式特权模式nARM微处理器的运行模式可以通过两种方式改变:微处理器的运行模式可以通过两种方式改变:n软件(特权模式)软件(特权模式)n外部中断或异常处理外部中断或异常处理大多数的应用程序运行在用户模式下大多数的应用程序运行在用户模式下,当处理器,当处理器运行在用户模式下,某些被保护的系统资源不能运行在用户模式下,某些被保护的系统资源不能被访问,也不能改变模式,除非异常发生被访问,也不能改变模式,除非异常发生 特权模式可以自由地访问系统资源和改变模式特权模式可以自由地访问系统资源和改变模式。ARM微处理器的处理器模式(微处理器的处理器模式(2)2.5 ARM处理器寄存器组织处理器

25、寄存器组织ARM处理器共有处理器共有37个个32位的寄存器:位的寄存器:n31个通用寄存器,分为三类:个通用寄存器,分为三类:未分组寄存器未分组寄存器(Unbanked Register):):R0R7分组寄存器分组寄存器(Banked Register):):R8R14程序计数器程序计数器R15(PC指针)指针)n6个状态寄存器,用以标识个状态寄存器,用以标识CPU的工作状态及程序的运行状态,目前的工作状态及程序的运行状态,目前只使用了其中的一部分只使用了其中的一部分n在每一种处理器模式下均有一组相应的寄存器与之对应。在所有的在每一种处理器模式下均有一组相应的寄存器与之对应。在所有的寄存器中

26、,有些是在寄存器中,有些是在7种处理器模式下共用的同一个物理寄存器,而种处理器模式下共用的同一个物理寄存器,而有些寄存器则是在不同的处理器模式下有不同的物理寄存器有些寄存器则是在不同的处理器模式下有不同的物理寄存器写汇编程序时写汇编程序时都会用到都会用到2.5 ARM处理器寄存器组织处理器寄存器组织ARM处理器共有处理器共有37个个32位的寄存器:位的寄存器:n31个通用寄存器,分为三类:个通用寄存器,分为三类:未分组寄存器未分组寄存器(Unbanked Register):):R0R7分组寄存器分组寄存器(Banked Register):):R8R14程序计数器程序计数器R15(PC指针)

27、指针)n6个状态寄存器,用以标识个状态寄存器,用以标识CPU的工作状态及程序的运行状态,目前的工作状态及程序的运行状态,目前只使用了其中的一部分只使用了其中的一部分n在每一种处理器模式下均有一组相应的寄存器与之对应。在所有的在每一种处理器模式下均有一组相应的寄存器与之对应。在所有的寄存器中,有些是寄存器中,有些是在在7种处理器模式下共用的同一个物理寄存器种处理器模式下共用的同一个物理寄存器,而,而有些寄存器则是有些寄存器则是在不同的处理器模式下有不同的物理寄存器在不同的处理器模式下有不同的物理寄存器2.5.1 ARM状态下的寄存器组织状态下的寄存器组织u未分组寄存器(未分组寄存器(Unbank

28、ed Register)R0R7同一个寄存器名,在同一个寄存器名,在ARM微处理器内部只有一个独立的物微处理器内部只有一个独立的物理寄存器与之对应。理寄存器与之对应。在所有的运行模式下,未分组寄存器都指向同一个物理寄在所有的运行模式下,未分组寄存器都指向同一个物理寄存器,他们未被系统用作特殊的用途。存器,他们未被系统用作特殊的用途。在中断或异常处理进行运行模式转换时,在中断或异常处理进行运行模式转换时,由于不同的处理由于不同的处理器运行模式均使用相同的物理寄存器,可能会造成寄存器器运行模式均使用相同的物理寄存器,可能会造成寄存器中数据的破坏中数据的破坏,这一点在进行程序设计时应引起注意。,这一

29、点在进行程序设计时应引起注意。任何可采用通用寄存器的应用场合都可以使用未分组寄存任何可采用通用寄存器的应用场合都可以使用未分组寄存器。器。2.5.1 ARM状态下的寄存器组织(状态下的寄存器组织(2)u分组寄存器分组寄存器(Banked Register)R8R14同一个寄存器名,在同一个寄存器名,在ARM微处理器内部存在多个独立的物微处理器内部存在多个独立的物理寄存器理寄存器对于分组寄存器,他们每一次所访问的物理寄存器与处理对于分组寄存器,他们每一次所访问的物理寄存器与处理器当前的运行模式有关。器当前的运行模式有关。R8R12:对应:对应两个两个不同的物理寄存器,有两种不同的模不同的物理寄存

30、器,有两种不同的模式:式:fiq模式模式(快速中断)快速中断):R8_fiqR12_fiq非非fiq模式模式:R8_usrR12_usr2.5.1 ARM状态下的寄存器组织(状态下的寄存器组织(2)u分组寄存器分组寄存器(Banked Register)R8R14 (2)R13、R14:每个寄存器对应:每个寄存器对应6个不同的物理寄存器个不同的物理寄存器用户模式与系统模式共用一个物理寄存器用户模式与系统模式共用一个物理寄存器另外另外5个物理寄存器对应于其他个物理寄存器对应于其他5种不同的运行模式种不同的运行模式可用下面的方式区分不同的物理寄存器可用下面的方式区分不同的物理寄存器R13_R14_

31、mode为模式:为模式:usr、fiq、irq、svc、abt、und未分组未分组寄存器寄存器分组寄分组寄存器存器程序计数器程序计数器PC异常模式异常模式System特权模式特权模式2.5.1 ARM状态下的寄存器组织(状态下的寄存器组织(3)u寄存器寄存器R13寄存器寄存器R13在在ARM指令中常用作指令中常用作堆栈指针堆栈指针SP。在用户应用程序的初始化部分,一般都要初始化每种模式在用户应用程序的初始化部分,一般都要初始化每种模式下的下的R13(R13_svc、R13_irq、R13_fiq、R13_abt和和R13_und),使其指向该运行模式的栈空间。),使其指向该运行模式的栈空间。当

32、程序的运行进入当程序的运行进入异常模式异常模式时,可以时,可以将需要保护的寄存器将需要保护的寄存器放入放入R13所指向的堆栈所指向的堆栈,而当程序从异常模式,而当程序从异常模式返回时,则返回时,则从对应的堆栈中恢复从对应的堆栈中恢复,采用这种方式可以保证异常发生后,采用这种方式可以保证异常发生后程序的正常执行。程序的正常执行。2.5.1 ARM状态下的寄存器组织(状态下的寄存器组织(4)u寄存器寄存器R14又称子程序链接寄存器(又称子程序链接寄存器(Subroutine Link Register)或或链接寄存器链接寄存器LR。u作用作用1.子程序调用时:当执行子程序调用时:当执行BL(BLX

33、)子程序调用指令时)子程序调用指令时R14自动被设置成当前子程序的返回地址;当子程序返回时,自动被设置成当前子程序的返回地址;当子程序返回时,R14中得到中得到R15(程序计数器(程序计数器PC)的备份。)的备份。完成子程序返回完成子程序返回。(BL 为带返回的跳转指令)为带返回的跳转指令)2.中断或异常时:中断或异常时:对应的分组寄存器对应的分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt和和R14_und用来保存用来保存R15的返回值。的返回值。R14可以作为通用寄存器使用可以作为通用寄存器使用2.5.1 ARM状态下的寄存器组织(状态下的寄存器组织(5)u程序计数

34、器程序计数器PC:寄存器寄存器R15 寄存器寄存器R15用作程序计数器(用作程序计数器(PC)。)。在在ARM状态下,位状态下,位1:0为为0,位,位31:2用于保存用于保存PC;在在Thumb状态下,位状态下,位0为为0,位,位31:1用于保存用于保存PC。由于由于ARM体系结构采用了多级流水线技术,对于体系结构采用了多级流水线技术,对于ARM指令集指令集而言,而言,PC总是指向当前指令的下两条指令的地址,即总是指向当前指令的下两条指令的地址,即PC的的值为当前指令的地址值加值为当前指令的地址值加8个字节。个字节。R15在程序运行中起到至在程序运行中起到至关重要的作用,存储着下关重要的作用,

35、存储着下一条要执行的指令的地址一条要执行的指令的地址Lable程序A程序BR14R14寄存器与子程序调用BL Lable地址A?MOV PC,LRR14(地址A)Lable?程序A执行过程中调用程序B;操作流程 程序跳转至标号Lable,执行程序B。同时硬件将“BL Lable”指令的下一条指令所在地址存入R14;程序B执行完后,将R14寄存器的内容放入PC,返回程序A;2.5.1 ARM状态下的寄存器组织(状态下的寄存器组织(6)u程序状态寄存器:程序状态寄存器:包含一个当前程序状态寄存器包含一个当前程序状态寄存器CPSR和五个备和五个备份的程序状态寄存器份的程序状态寄存器SPSRu当前程序

36、状态寄存器当前程序状态寄存器 CPSRCPSR(Current Program Status Register)CPSR可在任何运行模式下被访问,它包括条件标志位、中断禁止位、当前处可在任何运行模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位。理器模式标志位,以及其他一些相关的控制和状态位。备份的程序状态寄存器备份的程序状态寄存器SPSR(Saved Program Status Register),当异常发生时,当异常发生时,SPSR用于保存用于保存CPSR的当前值,从异常退出时则可由的当前值,从异常退出时则可由SPSR来来恢复恢复CPSR。用

37、户模式和系统模式不属于异常模式,他们没有用户模式和系统模式不属于异常模式,他们没有SPSR,当在这两种模式下访,当在这两种模式下访问问SPSR,结果是未知的。,结果是未知的。非常重要,反应了当非常重要,反应了当前的状态前的状态2.5.1 ARM状态下的寄存器组织(状态下的寄存器组织(8)u条件码标志(条件码标志(Condition Code Flags)()(2831位)位)N、Z、C、V:条件码标志位。可被算术或逻辑运算的结果所改变,条件码标志位。可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。并且可以决定某条指令是否被执行。在在ARM状态下,绝大多数的指令都是有条件执行的。

38、状态下,绝大多数的指令都是有条件执行的。在在Thumb状态下,仅有分支指令是有条件执行的。状态下,仅有分支指令是有条件执行的。2.5.1 ARM状态下的寄存器组织(状态下的寄存器组织(9)在ARM v5及以上版本的E系列处理器中,用Q标志位指示增强的DSP运算指令是否发生了溢出。在其他版本的处理器中,Q标志位无定义。Q(第27位)对于加/减法运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V=1表示符号位溢出。对于其他的非加/减运算指令,C的值通常不改变。V加法运算(包括比较指令CMN):当运算结果产生了进位时(无符号数溢出),C=1,否则C=0。减法运算(包括比较指令CMP):当

39、运算时产生了借位(无符号数溢出),C=0,否则C=1。对于包含移位操作的非加/减运算指令,C为移出值的最后一位。对于其他的非加/减运算指令,C的值通常不改变。CZ=1 表示运算的结果为零;Z=0表示运算的结果为非零。ZN=1 表示运算的结果为负数;N=0 表示运算的结果为正数或零。N含 义标志位2.5.1 ARM状态下的寄存器组织(状态下的寄存器组织(10)uCPSR控制位(控制位(70位)位)CPSR的低的低8位(包括位(包括I、F、T和和M4:0)称为控制)称为控制位,位,当发生异常时这些位可以被改变。如果处理器当发生异常时这些位可以被改变。如果处理器处于特权模式,这些位也可以由程序修改。

40、处于特权模式,这些位也可以由程序修改。中断禁止位中断禁止位I、F:I=1 禁止禁止IRQ中断(外部中断)中断(外部中断)F=1 禁止禁止FIQ中断(快速中断)中断(快速中断)T标志位:标志位:T=1Thumb状态状态T=0 ARM状态状态2.5.1 ARM状态下的寄存器组织(状态下的寄存器组织(11)M4:0运行模式位:这些位决定了处理器的运行模式。运行模式位:这些位决定了处理器的运行模式。M4:0处理器模式可访问的寄存器0b10000用户模式PC,CPSR,R0-R140b10001FIQ模式PC,CPSR,SPSR_fiq,R14_fiq-R8_fiq,R7R00b10010IRQ模式PC

41、,CPSR,SPSR_irq,R14_irq,R13_irq,R12R00b10011管理模式PC,CPSR,SPSR_svc,R14_svc,R13_svc,R12R0,0b10111中止模式PC,CPSR,SPSR_abt,R14_abt,R13_abt,R12R0,0b11011未定义模式PC,CPSR,SPSR_und,R14_und,R13_und,R12R0,0b11111系统模式PC,CPSR,R14R02.5.1 ARM状态下的寄存器组织(状态下的寄存器组织(12)u保留位保留位CPSR中的其余位中的其余位为保留位,当改变为保留位,当改变CPSR中中的条件码标志位或者控制位时,

42、保留位不要的条件码标志位或者控制位时,保留位不要被改变,在程序中也不要使用保留位来存储被改变,在程序中也不要使用保留位来存储数据。保留位将用于数据。保留位将用于ARM版本的扩展。版本的扩展。2.5.2 Thumb 状态下的寄存器组织nR0-R7与ARM状态一致nCPSR、SPSR与ARM状态一致nSP映射到R13nLR映射到R14nPC映射到R15练习n1、ARM处理器模式和处理器模式和ARM处理器状态有何区别?处理器状态有何区别?n处理器模式指的是处理器在执行程序时在不同时刻所处的不同状态,处理器状态指的是处理器当前所执行的指令集。n2、分别列举、分别列举ARM的处理器模式和状态。的处理器模

43、式和状态。n 状态:状态:ARM 状态:32 位,这种状态下执行的是字方式的ARM 指令 Thumb 状态:16 位,这种状态下执行半字方式的 Thumb 指令n 模式:模式:用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。练习n(1)ARM模式中有多少通用寄存器?模式中有多少通用寄存器?n 31个通用寄存器n(2)CPRS作用是什么?作用是什么?n 寄存器CPSR为当前程序状态寄存器,可以在任何工作模式下被访问。n状态标志:5个,N符号位,Z零标志,C进位,V溢出位,Q DSP运算溢出位。n控制标志:4个,I中断允许,F快速中断允许,T状态选择,M4:0 处理器工作

44、模式 n(3)Z位的作用是什么?位的作用是什么?n Z=1 表示运算的结果为零;Z=0表示运算的结果不为零;n(4)程序计数器保存在何处?)程序计数器保存在何处?n寄存器R15为程序计数器(PC),它指向正在取指的地址。练习n5、PC和和LR分别使用哪个寄存器?分别使用哪个寄存器?n PC使用R15寄存器,LR使用R14寄存器n6、R13寄存器的通用功能是什么?寄存器的通用功能是什么?n 堆栈2.6 ARM异常异常 只要正常的程序流被暂时中止,处理器就进入异常模式。例如响应一个来自外设的中断。在处理异常之前,ARM内核保存当前的处理器状态,这样当处理程序结束时可以恢复执行原来的程序。如果同时发

45、生两个或更多异常,那么将按照固定的顺序来处理异常,详见“异常优先级”部分。2.6 ARM异常异常nARM程序执行流程程序执行流程 顺序执行:执行一条ARM指令,PC+4,执行一条Thumb指令,PC+2 跳转:PC=目标地址 异常中断:PC=异常中断处理程序入口2.6 ARM异常异常异常中断:PC=异常中断处理程序入口当异常中断发生时:n系统执行完当前指令后,将跳转到相应的异常中断处理程序处执行;n在当异常中断处理程序执行完成后,程序返回到发生中断的指令的下一条指令处执行;进入异常中断处理程序时,要保存被中断的程序的执行现场,从异常中断处理程序退出时,要恢复被中断的程序的执行现场。2.6.1

46、ARM微处理器的异常概述微处理器的异常概述(1)u异常(异常(Exception)当正常的程序执行流程发生改变时,称之为异常。当正常的程序执行流程发生改变时,称之为异常。u异常类型异常类型(7种)种)运行模式运行模式复位复位svc(管理模式)(管理模式)未定义指令未定义指令und(未定义指令中止模式)(未定义指令中止模式)软件中断软件中断svc(管理模式)(管理模式)指令预取中止指令预取中止abt(数据访问中止模式)(数据访问中止模式)数据中止数据中止abt(数据访问中止模式)(数据访问中止模式)IRQ(外部中断请求)(外部中断请求)irq(外部中断模式)(外部中断模式)FIQ(快速中断请求)

47、(快速中断请求)fiq(快速中断模式)(快速中断模式)异常可通过内部或外部中断源产生。异常可通过内部或外部中断源产生。ARM微处理器的异常概述微处理器的异常概述(2)当处理器的当处理器的快速中断请求引脚有效快速中断请求引脚有效,且,且CPSR中的中的F位为位为0时,时,产生产生FIQ异常。异常。FIQ(快速中断请求)(快速中断请求)当处理器的当处理器的外部中断请求引脚有效外部中断请求引脚有效,且,且CPSR中的中的I位为位为0时,时,产生产生IRQ异常。系统的外设可通过该异常请求中断服务。异常。系统的外设可通过该异常请求中断服务。IRQ(外部中断请求)(外部中断请求)若处理器若处理器数据访问指

48、令的地址不存在数据访问指令的地址不存在,或该地址不允许当,或该地址不允许当前指令访问时,产生数据中止异常。前指令访问时,产生数据中止异常。数据中止数据中止若处理器若处理器预取指令的地址不存在预取指令的地址不存在,或该地址不允许当前指,或该地址不允许当前指令访问,存储器会向处理器发出中止信号,但当预取的指令访问,存储器会向处理器发出中止信号,但当预取的指令被执行时,才会产生指令预取中止异常。令被执行时,才会产生指令预取中止异常。指令预取中止指令预取中止该异常由该异常由执行执行SWI指令产生指令产生,可用于用户模式下的程序调,可用于用户模式下的程序调用特权操作指令。可使用该异常机制实现系统功能调用

49、。用特权操作指令。可使用该异常机制实现系统功能调用。软件中断软件中断当当ARM处理器或协处理器处理器或协处理器遇到不能处理的指令时遇到不能处理的指令时,产生未,产生未定义指令异常。可使用该异常机制进行软件仿真。定义指令异常。可使用该异常机制进行软件仿真。未定义指令未定义指令当处理器的当处理器的复位电平有效时复位电平有效时,产生复位异常,程序跳转到,产生复位异常,程序跳转到复位异常处理程序处执行。复位异常处理程序处执行。复位复位具体含义具体含义异常类型异常类型在异常发生后,ARM内核自动完成以下动作:在适当的LR中保存下一条指令的地址。将CPSR复制到适当的SPSR中。将CPSR模式位强制设置为

50、与异常类型相对应的值。强制PC从相关的异常向量处取指。2.6.2 ARM异常处理异常处理注:异常总是在ARM状态中进行处理。当处理器处于Thumb状态时发生了异常,在异常向量地址加载入PC时,会自动切换到ARM状态。2.6.2 ARM异常处理异常处理u对异常的响应对异常的响应uARM微处理器对异常的响应过程用伪码可以描述为:微处理器对异常的响应过程用伪码可以描述为:(1)R14_=Return Link(2)SPSR_=CPSR(3)CPSR4:0=Exception Mode NumberCPSR5=0/*在在ARM状态执行状态执行*/If =Reset or FIQ thenCPSR6=1

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第2章ARM体系结构课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|