ARM体系架构PPT教学课件_第1页
ARM体系架构PPT教学课件_第2页
ARM体系架构PPT教学课件_第3页
ARM体系架构PPT教学课件_第4页
ARM体系架构PPT教学课件_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

1、 冯诺依曼体系结构和哈佛体系结构 RISC和CISC 流水线 嵌入式微处理器体系结构 存储器2.1 微处理器的基础知识第1页/共71页计算机体系结构图1.1计算机系统的基本结构软件系统硬件系统控 制 器运 算 器存 储 器输入设备CPU微型计算机系统输入接口电路输出接口电路输出设备第2页/共71页冯诺依曼体系结构指令寄存器控制器数据通道输入输出中央处理器存储器程序指令0指令1指令2指令3指令4数据数据0数据1数据2第3页/共71页哈佛体系结构指令寄存器控制器数据通道输入输出CPU程序存储器指令0指令1指令2数据存储器数据0数据1数据2地址指令地址数据第4页/共71页CISC和RISCCISCC

2、ISC:复杂指令集(:复杂指令集(Complex Instruction Set ComputerComplex Instruction Set Computer)具有大量的指令和寻址方式,指令长度可变具有大量的指令和寻址方式,指令长度可变8/28/2原则:原则:80%80%的程序只使用的程序只使用20%20%的指令的指令大多数程序只使用少量的指令就能够运行。大多数程序只使用少量的指令就能够运行。RISCRISC:精简指令集(:精简指令集(Reduced Instruction Set Computer)Reduced Instruction Set Computer)只包含最有用的指令,指令

3、长度固定只包含最有用的指令,指令长度固定确保数据通道快速执行每一条指令确保数据通道快速执行每一条指令使使CPUCPU硬件结构设计变得更为简单硬件结构设计变得更为简单第5页/共71页CISC与RISC的数据通道IFIDREGALUMEM开始退出IFIDALUMEMREG微操作通道开始退出单通数据通道RISC:Load/Store结构CISC:寻址方式复杂第6页/共71页CISC的背景和特点 背景背景: : 存储资源紧缺存储资源紧缺, , 强调编译优化强调编译优化 增强指令功能,设置一些功能复杂的指令,把一增强指令功能,设置一些功能复杂的指令,把一些原来由软件实现的、常用的功能改用硬件的些原来由软

4、件实现的、常用的功能改用硬件的(微程序)指令系统来实现(微程序)指令系统来实现 为节省存储空间,强调高代码密度,指令格式不为节省存储空间,强调高代码密度,指令格式不固定,指令可长可短,操作数可多可少固定,指令可长可短,操作数可多可少 寻址方式复杂多样,操作数可来自寄存器,也可寻址方式复杂多样,操作数可来自寄存器,也可来自存储器来自存储器 采用微程序控制,执行每条指令均需完成一个微采用微程序控制,执行每条指令均需完成一个微指令序列指令序列 CPI CPI ,指令越复杂,指令越复杂,CPICPI越大。越大。第7页/共71页CISCCISC的主要缺点 指令使用频度不均衡。指令使用频度不均衡。 高频度

5、使用的指令占据了绝大部分的执行时间,扩充高频度使用的指令占据了绝大部分的执行时间,扩充的复杂指令往往是低频度指令。的复杂指令往往是低频度指令。 大量复杂指令的控制逻辑不规整,不适于大量复杂指令的控制逻辑不规整,不适于VLSIVLSI工艺工艺 VLSIVLSI的出现,使单芯片处理机希望采用规整的硬联的出现,使单芯片处理机希望采用规整的硬联逻辑实现,而不希望用微程序,因为微程序的使用反逻辑实现,而不希望用微程序,因为微程序的使用反而制约了速度提高。而制约了速度提高。( (微码的存控速度比微码的存控速度比CPUCPU慢慢5-105-10倍倍) )。 软硬功能分配软硬功能分配 复杂指令增加硬件的复杂度

6、,使指令执行周期大大加复杂指令增加硬件的复杂度,使指令执行周期大大加长,直接访存次数增多,数据重复利用率低。长,直接访存次数增多,数据重复利用率低。 不利于先进指令级并行技术的采用不利于先进指令级并行技术的采用 流水线技术流水线技术第8页/共71页RISC基本设计思想 精简指令集:保留最基本的精简指令集:保留最基本的, ,去掉复杂、使用频度不高的去掉复杂、使用频度不高的指令(选取运算指令、加载、存储指令和转移指令作主指指令(选取运算指令、加载、存储指令和转移指令作主指令集),以减小令集),以减小CPI: CPUtime=Instr_Count CPI: CPUtime=Instr_Count

7、* * CPI CPI * * Clock_cycleClock_cycle ICIC程序中指令数,程序中指令数,CPICPI每条指令执行所有周期数每条指令执行所有周期数 复杂指令可通过对简单基本指令组合而成复杂指令可通过对简单基本指令组合而成 每条指令的长度相同,大部分指令可在一个机器周期完成每条指令的长度相同,大部分指令可在一个机器周期完成 采用多级指令流水线结构,处理器在同一时间可执行多条采用多级指令流水线结构,处理器在同一时间可执行多条指令指令 采用采用LoadLoad(加载)(加载)/Store/Store(存储)结构,统一存储器访问(存储)结构,统一存储器访问形式,只允许形式,只允

8、许Load/StoreLoad/Store指令执行存储器操作,其余指令指令执行存储器操作,其余指令均对寄存器操作均对寄存器操作 大大增加通用寄存器的数量,大大增加通用寄存器的数量,ALUALU只与寄存器直接连接只与寄存器直接连接第9页/共71页CISC与RISC的对比类别类别CISCCISCRISCRISC指令系统指令系统指令数量很多指令数量很多较少,通常少于较少,通常少于100100执行时间执行时间有些指令执行时间很长,如有些指令执行时间很长,如整块的存储器内容拷贝;或整块的存储器内容拷贝;或将多个寄存器的内容拷贝到将多个寄存器的内容拷贝到存贮器存贮器没有较长执行时间的指令没有较长执行时间的

9、指令编码长度编码长度编码长度可变,编码长度可变,1-151-15字节字节编码长度固定,通常为编码长度固定,通常为4 4个字节个字节寻址方式寻址方式寻址方式多样寻址方式多样简单寻址简单寻址操作操作可以对存储器和寄存器进行可以对存储器和寄存器进行算术和逻辑操作算术和逻辑操作只能对寄存器进行算术和逻辑只能对寄存器进行算术和逻辑操作,操作,Load/StoreLoad/Store体系结构体系结构编译编译难以用优化编译器生成高效难以用优化编译器生成高效的目标代码程序的目标代码程序 采用优化编译技术,生成高效采用优化编译技术,生成高效的目标代码程序的目标代码程序 第10页/共71页流水线技术流水线技术流水

10、线流水线(Pipeline)(Pipeline)技术:几个指令可以并行执行技术:几个指令可以并行执行 提高了提高了CPUCPU的运行效率的运行效率 内部信息流要求通畅流动内部信息流要求通畅流动译码取指执行add译码取指执行sub译码取指执行cmp时间AddSubCmp第11页/共71页指令流水线以ARM为例 为增加处理器指令流的速度,ARM7 系列使用3级流水线. 允许多个操作同时处理,比逐条指令执行要快。 PC指向正被取指的指令,而非正在执行的指令FetchDecodeExecute从存储器中读取指令解码指令寄存器读(从寄存器Bank)移位及ALU操作寄存器写(到寄存器Bank )PCPCP

11、C - 4PC-2PC - 8PC - 4ARMThumb第12页/共71页 最佳流水线该例中用6个时钟周期执行了6条指令所有的操作都在寄存器中(单周期执行)指令周期数 (CPI) = 1 操作周期 1 2 3 45 6 ADD SUB MOV AND ORR EOR CMP RSBFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteDecodeExecuteFetchDecodeFetchFetch第13页/共71页高速缓存(CACHE)1 1、为什么采用高速缓存、

12、为什么采用高速缓存 微处理器的时钟频率比内存速度提高快得多,高速缓存可以微处理器的时钟频率比内存速度提高快得多,高速缓存可以提高内存的平均性能。提高内存的平均性能。2 2、高速缓存的工作原理、高速缓存的工作原理 高速缓存是一种小型、快速的存储器,它保存部分主存内高速缓存是一种小型、快速的存储器,它保存部分主存内容的拷贝。容的拷贝。 CPU高速缓存控制器CACHE主存数据数据地址第14页/共71页总线和总线桥CPU低速设备桥数据高速总线存储器高速设备键盘低速总线ARM公司提出的AMBA总线标准第15页/共71页嵌入式处理器体系结构 按体系结构的不同可分为五大类 ARM MIPS POWER PC

13、 X86 SH系列 第16页/共71页 ARM 公司的ARM RISC处理器 ARM 7 Thumb 家族 ARM 9 Thumb 家族 ARM 10 Thumb 家族 ARM 11 Thumb 家族第17页/共71页Intel StrongARM StrongARM 110 StrongARM 1100 StrongARM 1110 StrongARM 1111第18页/共71页INTEL的Xscale架构处理器 基于ARM V5TE体系结构 兼容ARM V5TE ISA指令集(不支持浮点指令集) 在处理器内核周围提供了 指令和数据存储器管理单元 指令、数据和微小数据缓存 写缓冲、挂起缓冲和

14、分支目标缓冲器 电源管理 性能监控 调试 JTAG单元以及协处理器接口 MAC协处理器 内核存储总线第19页/共71页MIPS 从1986年推出R2000处理器以来,MIPS陆续推出R3000、R4000、R8000等。 之后,MIPS公司的战略发生变化,把重点放在嵌入式系统。 1999年,MIPS公司发布了MIPS32和MIPS64体系结构标准,集成了原来所有的MIPS指令集,并且增加了许多更强大的功能。 此后MIPS公司又陆续开发了高性能、低功耗的32位和64位处理器内核。 第20页/共71页MIPS 在MIPS的32位内核中 4K系列对应于SOC应用设计; M4K系列内核是为在下一代消费

15、电子、网络、宽带应用中越来越受欢迎的多CPU SOC所设计; 4KE系列具有目前32位通用嵌入式处理器中最高的DMIPS/MHz性能指标; 4KS系列由于采用了特殊的SmartMIPS体系结构,特别适用于需要安全数据传输的领域,比如网络、智能卡等; 5K和20Kc系列属于MIPS的64位内核 5K能提供1.4DMIPS/MHz的性能以及最低350MHz的运行速率。 20Kc是当今最快的可授权嵌入式处理器内核。一般运行在600MHz,具有7段流水线的20Kc内核,能提供1.2GFLOPS的峰值浮点运算能力。第21页/共71页MIPS 在嵌入式处理器市场中,基于MIPS内核的处理器占据了相当大的数

16、量 2002年,一共付运了8700万片采用MIPS内核的嵌入式处理器,份额仅次于ARM位居全球第二。 在目前快速增长的比如Cable Modem、DSL Modem、DVD录像机等领域内,MIPS的市场份额位居第一。 MIPS的合作伙伴包括了AMD,IDT,NEC,TI,SONY等众多厂商第22页/共71页PowerPC体系结构 Motorola半导体(现Freescale半导体)联合IBM以及苹果电脑 IBM PowerPC750 PowerPCG3 Motorola MPC MC第23页/共71页X86体系结构 Intel X86体系结构 AMD最新的X86体系结构嵌入式处理器产品为Geo

17、de 系列处理器 CISC指令集第24页/共71页SH体系结构 SH(SuperH)系列是由前日立半导体公司(现Renesas公司)推出的嵌入式处理器 SH系列的CPU指令格式是固定的,只有一个字长,绝大多数指令是单周期完成的,即使是复杂的乘加指令也仅需2个时钟周期 为了克服内存访问的瓶颈,SH的CPU简化寻址方式,采用Load/Store(装载/存储)结构,并且在片内设置高速缓存,以减少访问内存的时间 第25页/共71页存储器系统寄存器高速缓存SRAM主存储器DRAM本地存储器 Flash、ROM、磁盘网络存储器 Flash、ROM、磁盘时钟周期01105010020000000分层结构第2

18、6页/共71页存储器种类RAMRAM:随机存取存储器,:随机存取存储器, SRAMSRAM:静态随机存储器,:静态随机存储器, DRAMDRAM:动态随机存储器动态随机存储器 1 1)SRAMSRAM比比DRAMDRAM快快 2 2)SRAMSRAM比比DRAMDRAM耗电多耗电多 3 3)DRAMDRAM存储密度比存储密度比SRAMSRAM高得多高得多 4 4)DRMDRM需要周期性刷新需要周期性刷新ROMROM:只读存储器:只读存储器EPROMEPROMEEPROMEEPROMFLASHFLASH:闪存:闪存第27页/共71页闪速存储器(FLASH) 相对传统的EPROM芯片,这种芯片可以

19、用电气的方法快速地擦写 由于快擦写存储器不需要存储电容器,故其集成度更高,制造成本低于DRAM 它使用方便,既具有SRAM读写的灵活性和较快的访问速度,又具有ROM在断电后可不丢失信息的特点,所以快擦写存储器技术发展十分迅速 第28页/共71页NOR技术 NOR技术闪速存储器是最早出现的Flash Memory,目前仍是多数供应商支持的技术架构,它源于传统的EPROM器件。 与其它Flash Memory技术相比,具有可靠性高、随机读取速度快的优势。 在擦除和编程操作较少而直接执行代码的场合,尤其是代码(指令)存储的应用中广泛使用。 由于NOR技术Flash Memory的擦除和编程速度较慢,

20、而块尺寸又较大,因此擦除和编程操作所花费的时间很长,在纯数据存储和文件存储的应用中,NOR技术显得力不从心。第29页/共71页NAND技术 NAND技术 Flash Memory具有以下特点: 以页为单位进行读和编程操作,1页为256或512字节;以块为单位进行擦除操作,1块为4K、8K或16K字节。具有快编程和快擦除的功能,其块擦除时间是2ms;而NOR技术的块擦除时间达到几百ms。 数据、地址采用同一总线,实现串行读取。随机读取速度慢且不能按字节随机编程。 芯片尺寸小,引脚少,是位成本(bit cost)最低的固态存储器,突破了每兆字节1元的价格限制。 芯片包含有失效块,其数目最大可达到3

21、35块(取决于存储器密度)。失效块不会影响有效块的性能,但设计者需要将失效块在地址映射表中屏蔽起来。 基于NAND的存储器可以取代硬盘或其它块设备。第30页/共71页2.2 ARM920T体系结构 ARM9系列微处理器是低功耗的32位RISC结构,最适合要求低成本、低功耗的消费类应用产品,是目前应用最广泛、高性价比的嵌入式处理器。国际许多著名的IT芯片制造公司,基于ARM9处理器核生产了多种微控制器芯片,如三星公司的S3C2410、Atmel公司的AT91RM9200、Intel公司的PXA255、Motorola公司的MC9328、Cirrus Logic公司的EP93XX系列、等等。 第3

22、1页/共71页ARM9结构特点 ARM920T微处理器的指令流水采用了典型的RISC五级流水线结构,将指令执行过程分为取指、译码、执行、访存和写回5个步骤。五级流水线结构采用分离指令cache和数据cache,将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时可能有5个指令在执行,消除了指令执行的性能瓶颈,加快了指令执行速度。 第32页/共71页五级流水线操作执行内存访问寄存器写指令预取译码执行内存访问寄存器写指令预取译码执行内存访问寄存器写指令预取译码执行指令预取译码内存访问指令预取译码执行指令预取译码译码:包括指令译码,寄存器译码,寄存器读取。执行:包括移位、ALU运算。TTTT

23、T第33页/共71页(续) ARM920T核内部具有指令缓存和数据缓存,允许处理器同时进行取指和读写数据操作。数据可以是:8位(字节)、16位(半字)、32位(字)。字必须是4字节边界对准,半字必须是2字节边界对 准。第34页/共71页ARM920T 框图第35页/共71页ARM920T 框图(续) CacheCache: 通常人们所说的通常人们所说的CacheCache就是指缓存就是指缓存SRAMSRAM。 SRAMSRAM叫叫静态内存,静态内存,“静态静态”指的是当我们将一笔数据写入指的是当我们将一笔数据写入SRAMSRAM后,除非重新写入新数据或关闭电源,否则后,除非重新写入新数据或关闭

24、电源,否则写入的数据保持不变。写入的数据保持不变。 由于由于CPUCPU的速度比内存和硬盘的速度要快得多,所的速度比内存和硬盘的速度要快得多,所以在存取数据时会使以在存取数据时会使CPUCPU等待,影响计算机的速度。等待,影响计算机的速度。SRAMSRAM的存取速度比其它内存和硬盘都要快,所以的存取速度比其它内存和硬盘都要快,所以它被用作电脑的高速缓存它被用作电脑的高速缓存(Cache)(Cache)。 CPUCPU运行时,先把指令或数据从内存中读到运行时,先把指令或数据从内存中读到cachecache中,中,需要读出时,需要读出时,CPUCPU先到先到cachecache中读取,如果没有再从

25、中读取,如果没有再从内存读取。内存读取。第36页/共71页2.2.1 ARM微处理器的工作状态 从编程的角度看从编程的角度看,ARM,ARM微处理器的微处理器的工作状态工作状态一般有两种一般有两种, ,并可在两种状态之间切换并可在两种状态之间切换: : ARM状态是32位指令,字对齐,PC bit1、bit0始终为0。 Thumb状态时,执行16位指令,半字对齐的Thumb指令,PC使用bit1选择半字。Thumb指令是ARM指令的子集。 Thumb状态时,指令地址(PC)和操作数都还是32位的。 两种状态切换,不影响寄存器的内容。 我们着重介绍ARM状态,Thumb状态知道即可。第37页/共

26、71页ARMARM处理器在两种工作状态之间可以处理器在两种工作状态之间可以切换切换: 进入进入ThumbThumb状态:状态:执行执行BXBX指令,并设置操作数寄存器的状态(位指令,并设置操作数寄存器的状态(位00)为)为1 1。 在在ThumbThumb状态进入异常状态进入异常(IRQ, FIQ, UNDEF, ABORT,SWI (IRQ, FIQ, UNDEF, ABORT,SWI etc.)etc.),当异常处理返回时自动转换到,当异常处理返回时自动转换到ThumbThumb状态状态 进入进入ARMARM状态:状态:执行执行BXBX指令,并设置操作数寄存器的状态(位指令,并设置操作数寄

27、存器的状态(位00)为)为0 0。进入异常时,将进入异常时,将PCPC放入异常模式链接寄存器中,从异常放入异常模式链接寄存器中,从异常向量地址开始执行也可进入向量地址开始执行也可进入ARMARM状态状态第38页/共71页392.2.3ARM2.2.3ARM体系结构的存储器格式体系结构的存储器格式 存储器格式是指字、半字、字节在存储器中存放的存储器格式是指字、半字、字节在存储器中存放的格式,也反映了它们之间的关系。格式,也反映了它们之间的关系。 ARM920TARM920T中支持字节(中支持字节(8 8位)、半字(位)、半字(1616位)和字位)和字(3232位)位)3 3种数据类型,其中字需要

28、种数据类型,其中字需要4 4字节对齐,半字节对齐,半字需要字需要2 2字节对齐。字节对齐。 ARM920TARM920T体系结构支持两种方法存储字数据,即体系结构支持两种方法存储字数据,即大端格式和小端格式。大端格式和小端格式。第39页/共71页40 存储单元概念说明:存储单元概念说明: 字(字(WordWord):字的长度为):字的长度为3232位,而在位,而在1616位处理器体系结位处理器体系结构中,字的长度为构中,字的长度为1616位。位。 半字(半字(Half-WordHalf-Word):半字的长度为):半字的长度为1616位,与位,与1616位处理器位处理器体系结构中字的长度一致。

29、体系结构中字的长度一致。 字节(字节(ByteByte):在):在ARMARM体系结构和体系结构和8 8位位/16/16位处理器体系结位处理器体系结构中,字节的长度均为构中,字节的长度均为8 8位。位。 ARMARM体系结构使用体系结构使用2 23232个个8 8位字节的单一、线性地址空间,位字节的单一、线性地址空间,字节地址为字节地址为0 02 23232-1-1;也可以将地址空间看作为由;也可以将地址空间看作为由2 23030个个3232位的字组成,字地址可被位的字组成,字地址可被4 4整除,且按字对准。也可以整除,且按字对准。也可以看作成由看作成由2 23131个个1616位半字组成。位

30、半字组成。第40页/共71页41 大端格式大端格式:被存放字数据的高字节存储在存储系统:被存放字数据的高字节存储在存储系统的低地址中,而被存放的字数据的低字节则存放在的低地址中,而被存放的字数据的低字节则存放在存储系统的高地址中。存储系统的高地址中。 小端格式小端格式:与大端存储格式相反,在小端存储格式:与大端存储格式相反,在小端存储格式中,存储系统的低地址中存放的是被放字数据中的中,存储系统的低地址中存放的是被放字数据中的低字节内容,存储系统的高地址存放的是被存字数低字节内容,存储系统的高地址存放的是被存字数据中的高字节内容。据中的高字节内容。第41页/共71页 大端格式大端格式(big-e

31、ndian):字数据的高字节存储在低地字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。址中,而字数据的低字节则存放在高地址中。 小端格式(low-endian):与大端存储格式相反。低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。缺省设置为小端格式。第42页/共71页举例:大端的数据存放格式大端的数据存放格式低地址高地址地址A地址A+1地址A+2地址A+3最高有效字节的地址就是该word的地址最高有效字节位于最低地址word a=0 x f6 73 4b cdf6734bcd第43页/共71页举例:小端的数据格式小端的数据格式 低地址高地址地址A地址A+1地址A+

32、2地址A+3最低有效字节的地址就是该word的地址最低有效字节位于最低地址word a=0 x f6 73 4b cdf6734bcd第44页/共71页 7种运行模式 User:用户模式,ARM处理器正常的程序执行状态。 FIQ:快速中断模式,用于高速数据传输或通道处理。 IRQ:普通中断模式,用于普通的中断处理。 SVC:管理,供操作系统使用的一种保护模式。 ABT:数据或指令预取中止,当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。 UND:未定义指令中止模式,当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。 SYS:系统模式,运行特权级的操作系统任务。 注:

33、工作模式基于两个标准区分,资源访问权限、模式切换。2.2.3ARM9处理器模式第45页/共71页 异常模式: 除系统模式与用户模式外,其他5种模式,常用于处理中断或异常,以及访问受保护的系统资源等。 特权模式: 除用户模式外的模式称为特权模式。 用于服务中断或异常,或访问保护资源。 程序可访问所有系统资源,也可任意进行模式切换。工作模式理解第46页/共71页工作模式理解 用户模式: 应用程序不能访问受操作系统保护的系统资源,例如:MSR、MRS、MCR、MRC指令在用户模式不能完全执行!? 不能直接进行处理器模式的切换。 需切换模式时,可产生异常,在异常处理过程中进行处理器切换。这样便于操作系

34、统控制整个系统资源。如产生SWI切换到SVC模式,再切换到SYS模式。第47页/共71页 系统模式 系统模式不是通过异常进入,和用户模式有一样的寄存器。 系统模式属于特权模式,可以访问所有系统资源,也可以直接进行处理器模式切换。 主要供操作系统使用。第48页/共71页 模式切换方式总结: 软件程序控制,之间修改CPSR模式位置。 硬件中断或异常(除reset外一般的程序异常)。 芯片复位(CPU工作在超级用户模式,PC0)。 SWI指令。第49页/共71页 ARM920T有37个寄存器 31个32bit通用寄存器(包括程序计数器PC) 未分组寄存器R0R7:在所有的运行模式下,指向同一个物理寄

35、存器 分组寄存器R8R14:每次访问的物理寄存器与处理器当前的运行模式有关,命名规则R13_,R14_,mode:usr,fiq,irq,svc,abt,und 程序计数器PC 6个状态寄存器2.2.4 寄存器组织第50页/共71页ARMARM的寄存器组织的寄存器组织CPSRSPSR-SVCCPSRSPSR-abtCPSRSPSR-undCPSRSPSR-irqCPSRSPSR-fiq第51页/共71页 理解 不是同时可见,由处理器状态和工作模式决定。 ARM状态,16个通用寄存器和12个状态寄存器同时可见。 R0R15是直接访问寄存器,除R15外都是通用目的寄存器,可以保存地址或数据。此外有

36、第17个寄存器,用于保存状态信息。第52页/共71页 Stack Pointer,堆栈指针。 堆栈寄存器器使用举例:STMDB R13!, Rlist ;将Rlist指定的寄存器值压入堆栈 ;并更新堆栈指针LDMIA R13!, Rlist ;将堆栈内容弹出并赋值给Rlist ;并更新堆栈指针ADD R13, R13, #Imm ;将Imm加到SP上 各种模式有自己的私有堆栈指针。故需要切换到各种模式去初始化堆栈首地址,另需在存储空间划分出一片区域用作程序堆栈。 堆栈分Full型和Empty型,递增型和递减型( p128 ds )。R13 堆栈指针寄存器第53页/共71页内部寄存器R14 R1

37、4:又称Link寄存器,用于子程序连接。 执行分支与连接指令(BL)时,R15(PC)的值会拷贝一份存于该寄存器。调用时硬件自动保存,返回时程序计数器PC从R14读取。 当异常或中断发生时,或者异常或中断子程序中执行分之与连接指令(BL)时,用R14_svc、R14_irq、 R14_abt、R14_und、R14_fiq用于保存程序返回值(需进行计算)。注意:PC值=/=当前指令地址,为预取指令地址。(哈佛结构的好处!PC计算简单。)注意:各种模式下Link寄存器只有4B(32bit)存储空间,即存储一个地址值,分支嵌套或者中断或异常嵌套、或中断与异常中执行分支指令时会导致死循环等错误。解决

38、办法,最好是使用堆栈,至少是保存PC。第54页/共71页 使用下面的指令实现子程序返回操作。 Mov PC, LR BX LR 堆栈使用 STMFD SP!,LR ;保存PC到栈中 LDMFD SP!,PC ;子程序返回 注意:压栈与出栈分别对应LR与PC。R14使用举例第55页/共71页 Program Counter:程序计数器 用来保存指令的地址,正常执行时,其值自动递增,指向下一条指令地址;跳转、异常发生时,PC的值会被硬件修改,程序返回时通过程序修改(即软件修改)PC值。 ARM920T为5级流水线操作,正常顺序执行指令时,PC值指向当前执行指令的下两条指令地址。即PC当前指令地址2

39、(Words)注意:PC,是ARM中的一个寄存器,其内容为当前预取指令的地址;另外在描述中也常用PC指代当前正在执行的指令的地址。内部寄存器R15第56页/共71页2.2.5 程序状态寄存器 ARMARM体系结构包含一个当前程序状态寄存器体系结构包含一个当前程序状态寄存器(CPSR)(CPSR)和和5 5个备份的程序状态寄存器个备份的程序状态寄存器 (SPSRs)(SPSRs)。 当前程序状态寄存器当前程序状态寄存器 CPSRCPSR,可以在任何工作模式下被访,可以在任何工作模式下被访问;问; 备份程序状态寄存器备份程序状态寄存器SPSRSPSR,只有在异常模式下,才能被,只有在异常模式下,才

40、能被访问访问 备份的程序状态寄存器用来进行异常处理,其功能包括:备份的程序状态寄存器用来进行异常处理,其功能包括:保存保存ALUALU中的当前操作信息。中的当前操作信息。控制允许和禁止中断。控制允许和禁止中断。设置处理器的运行模式。设置处理器的运行模式。第57页/共71页程序状态寄存器的格式程序状态寄存器的格式第58页/共71页 条件码标志(Condition Code Flags)N、Z、C、V均为条件码标志位。它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。在ARM状态下,绝大多数的指令都是有条件执行的。在Thumb状态下仅有分支指令是有条件执行的。第59页/共7

41、1页 条件码标志位条件码标志位标志位含 义N当两个补码表示的带符号数运算时,N=1 表示运算的结果为负数;N=0 表示运算的结果为正数或零;ZZ=1 表示运算的结果为零;Z=0表示运算的结果不为零;C有3种情况会改变C的值:加法运算(包括比较指令CMN):当运算结果产生了进位时(无符号数上溢出),C=1,否则C=0。减法运算(包括比较指令CMP):当运算时产生了借位(无符号数下溢出),C=0,否则C=1。对于包含移位操作的非加/减运算指令,C为移出值的最后一位。V对于加/减法运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V=1表示符号位溢出。Q在ARM v5及以上版本的E系列处理器中,用Q标志位指示增强的DSP运算指令是否发生了溢出。第60页/共71页 控制位 CPSR的低8位(包括I、F、T和M4:0)称为控制位,当发生异常时这些位可以被改变。如果处理器运行特权模式,这些位也可以由程序修改。中断禁止位I、FI1 禁止IRQ中断F1 禁止FIQ中断T标志位:该位反映处理器的

温馨提示

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

最新文档

评论

0/150

提交评论