




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章 ARM7体系结构2.1 RISC体系结构 概论 RISC (Reduced Instruction Set Computer )的概念对ARM处理器的设计有着重大影响,最成功也是第一个商业化的RISC实例就是ARM,因此大家公认RISC就是ARM的别名。因此在介绍ARM之前,需要对RISC体系结构,组织结构的基本情况进行全面介绍。2.1 RISC体系结构 CISC体系结构 计算机体系结构描述:从用户角度看到的计算机属性,如计算机的指令集,可见寄存器,存储器管理单元和异常处理模式都是体系结构的一部分。 CISC(Complex Instruction Set Computer)复杂指令集
2、计算机。如果想要处理器运行性能更佳,那么必须首先明白在计算机程序运行中,这些指令是如何工作的。一个普遍的误解就是,计算机花大量时间在“计算”,也就是说,它在对用户的数据进行算术操作。实际上,它只用很少的时间进行这个意义上的“计算”。尽管它也做相当数量的算术运算,但是这些运算多数需要寻址,以便找到相关数据与程序的位置。找到用户的数据后,多数工作是把它们移来移去,而不是进行计算。 2.1 RISC体系结构 CISC指令系统缺点 1)20%与80%的问题 在CISC指令系统中,虽然指令集庞大,但仅有20%的简单指令如取数,运算,转移等占CPU动态执行时间的80%-90%,而80%的复杂指令仅占整个C
3、PU动态执行时间的20%左右,即付出较大的硬件代价增添的许多复杂指令,也仅有20%的使用概率。另外,当执行频率高的简单指令时,还会因为复杂指令的存在而制约简单指令速度的提高,这就是“20%-80%”规律。2.1 RISC体系结构 CISC指令系统缺点 2)指令复杂度对处理器的VLSI实现性能的影响 CISC处理机中,指令的长短不统一,当执行频率高的简单指令时,因复杂指令的存在,控制逻辑的实现非常不规整,致使执行速度也无法提高,给VLSI实现要达到高性能造成很大困难。2.1 RISC体系结构 CISC指令系统缺点 3)软硬件的协同设计问题 在CISC中,通过增强指令系统的功能,简化了目标软件的设
4、计,增加了硬件的复杂程度。但是,由于指令复杂了,指令的执行时间必定要增加,从而整个程序执行的时间可能增加。因此,CISC机器降低了编程的复杂性并不意味着一定能缩短程序的执行时间。在进行计算机的体系结构设计时,有一个软件与硬件的功能如何合理分配的问题,必须协同分配软硬件的功能。2.1 RISC体系结构 RISC概论 CISC指令集设计的主要趋势是增加指令集的复杂度,而复杂指令集的高性能是以宝贵,有限的芯片面积为代价的,RISC正是诞生在这种指令集日益复杂的情况下。 RISC的中心思想是精简指令集的复杂度,简化指令实现的硬件设计,硬件只执行很有限的最常用的那部分指令,大部分复杂的操作则由简单指令合
5、成。2.1 RISC体系结构 RISC概论 RISC出现的结果证明使用相对较少的晶体管可设计出极快的微处理器,而RISC处理器的产生且能在当时大量使用的直接原因是工作站的出现。在80年代,由于PC机不能满足图形处理和科学计算等高性能应用的需求,而大型机又非常昂贵,因此造就了工作站这种相对便宜的台式系统。但是,当时用于PC机的处理器不可能满足工作站的需求,所以才大量采用RISC处理器的思想进行处理器设计。2.1 RISC体系结构 RISC体系结构的特点采用固定长度的指令格式使用单周期指令,便于流水线操作执行使用大量寄存器,数据处理器只对寄存器进行操作采用加栽存储指令批量传输数据,以提高数据的传输
6、效率所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率在一条数据处理指令中,可同时完成逻辑处理和移位处理两个功能在循环处理中使用地址的自动增减,提高运行效率2.2 ARM简介 ARM公司简介 ARM是Advanced RISC Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器。 公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM(Original Equipment Manufacture )厂商,并提供服务。2.2 ARM简介 ARM公司简介将技术授权给其它芯片厂
7、商形成各具特色的ARM芯片. . .2.2 ARM简介 ARM体系结构 ARM处理器是基于精简指令集计算机RISC原理设计的,其简单的结构使ARM内核非常小,这使得器件的功耗也非常低。它具有经典RISC的特点:大的、统一的寄存器文件;装载/保存结构,数据处理 操作只针对寄存器的内容,而不直接对存储器进行操作;简单的寻址模式;统一和固定长度的指令域,简化了指令的译码。2.2 ARM简介 ARM体系结构ARM体系结构的特点:每条数据处理指令都对算术逻辑单元和移位器控制,以实现ALU和移位器的最大利用;地址自动增加和减少寻址模式,优化程序循环;多寄存器装载和存储指令实现最大数据吞吐量;所有指令的条件
8、执行实现最快速的代码执行。2.2 ARM简介 各ARM体系结构版本 ARM体系结构从最初开发到现在有了巨大的改进,并仍在完善和发展。为了清楚的表达每个ARM应用实例所使用的指令集,ARM公司定义了5种主要的ARM指令集体系结构版本,以版本号V1V5表示。2.2 ARM简介 各ARM体系结构版本V1 该版本的ARM体系结构,只有26位的寻址空间,没有商业化,其特点为:基本的数据处理指令(不包括乘法);字节、字和半字加载/存储指令;具有分支指令,包括在子程序调用中使用的分支和链接指令;在操作系统调用中使用的软件中断指令。2.2 ARM简介 各ARM体系结构版本V2 同样为26位寻址空间,现在已经废
9、弃不再使用,它相对V1版本有以下改进:具有乘法和乘加指令;支持协处理器;快速中断模式中的两个以上的分组寄存器;具有原子性加载/存储指令SWP和SWPB。2.2 ARM简介 各ARM体系结构版本V3 寻址范围扩展到32位(事实上也基本废弃),具有独立的程序:具有乘法和乘加指令;支持协处理器;快速中断模式中具有的两个以上的分组寄存器;具有原子性加载/存储指令SWP和SWPB。2.2 ARM简介 各ARM体系结构版本V4 不在为了与以前的版本兼容而支持26位体系结构,并明确了哪些指令会引起未定义指令异常发生,它相对V3版本作了以下的改进:半字加载/存储指令;字节和半字的加载和符号扩展指令;具有可以转
10、换到Thumb状态的指令;用户模式寄存器的新的特权处理器模式。2.2 ARM简介 各ARM体系结构版本V5 在V4版本的基础上,对现在指令的定义进行了必要的修正,对V4版本的体系结构进行了扩展并并增加了指令,具体如下:改进了ARM/Thumb状态之间的切换效率;允许非T变量和T变量一样,使用相同的代码生成技术;增加计数前导零指令和软件断点指令;对乘法指令如何设置标志作了严格的定义。2.2 ARM简介 ARM体系结构总结核核 体系结构体系结构ARM1V1ARM2V2ARM2aS,ARM3V2aARM6,ARM600,ARM610V3ARM7,ARM700,ARM710V3ARM7TDMI,ARM
11、710T,ARM720T,ARM740TV4TStrong ARM,ARM8,ARM810V4ARM9TDMI,ARM920T,ARM940TV4TARM9E-SV5TEARM10TDMI,ARM1020EV5TEARM11V6版本2a是版本2的变种在体系结构版本4的变种4T中,引入了16位Thumb压缩形式的指令集。版本5TE在体系结构版本5T的基础上增加了信号处理指令集。2.2 ARM简介 ARM处理器核简介 ARM公司开发了很多系列的ARM处理器核,目前最新的系列已经是ARM11了,而ARM6核以及更早的系列已经很罕见了。目前应用比较广泛的系列是:ARM7ARM9ARM9EARM10ES
12、ecurCoreXscale2.2 ARM简介 ARM处理器核简介ARM7 ARM7系列是低功耗的32位RISC处理器,最适合用于对价位和功耗要求较高的消费类应用。ARM7系列有如下特点:具有嵌入式ICERT逻辑,调试开发方便;极低的功耗,适合对功耗要求较高的应用,如便携式产品;能够提供0.9MIPS/ MHz的三级流水线结构;兼容16位的Thumb指令集,代码密度高;对操作系统的支持广泛,如Windows CE、Linux、Palm OS等;指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代;主频最高可达130M,高速的运算处理能力能胜任绝大多数的复杂应用。
13、2.2 ARM简介 ARM处理器核简介ARM7 主要应用领域:工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。 ARM7系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中,ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。TDMI的基本含义为:T:支持16位压缩指令集Thumb;D:支持片上Debug;M:内嵌硬件乘法器(Multiplier)I:嵌入式ICE,支持片上断点和调试点;2.2 ARM简介 ARM处理器核简介ARM7 ARM7性能特征2.2 ARM简介
14、 ARM处理器核简介ARM9 ARM9系列微处理器在高性能和低功耗特性方面提供最佳的表现。具有以下特点: 5级流水线,指令执行效率更高。 提供1.1MIPS/MHz的哈佛结构。 支持32位ARM指令集和16位Thumb指令集。 支持32位的高速AMBA总线接口。 全性能的MMU,支持Windows CE、Linux、Palm OS等多种主 流嵌入式操作系统。 支持实时操作系统。 支持数据Cache和指令Cache,具有更高的指令和数据处理 能力。2.2 ARM简介 ARM处理器核简介ARM9 ARM9系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机
15、等。 ARM9系列微处理器包含ARM920T、ARM922T和ARM940T三种类型,以适用于不同的应用场合。2.2 ARM简介 ARM处理器核简介ARM9 ARM9性能特征性能特征2.2 ARM简介 ARM处理器核简介ARM9E ARM9E系列微处理器的主要特点如下:系列微处理器的主要特点如下: 5级流水线,指令执行效率更高。 支持DSP指令集,适合于需要高速数字信号处理的场合。 支持32位ARM指令集和16位Thumb指令集。 支持32位的高速AMBA总线接口。 支持VFP9浮点处理协处理器。 全性能的MMU,支持众多主流嵌入式操作系统。 支持数据Cache和指令Cache,具有更高的处理
16、能力。 主频最高可达300M。2.2 ARM简介 ARM处理器核简介ARM9E ARM9E系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。 ARM9E系列微处理器包含ARM926EJ-S、ARM946E-S和ARM966E-S三种类型,以适用于不同的应用场合。2.2 ARM简介 ARM处理器核简介ARM9E ARM9E性能特征2.2 ARM简介 ARM处理器核简介ARM10E 该系列包括ARM1020E和ARM1020E处理器核,其核心在于使用向量浮点(VFP)单元VFP10提供高性能的浮点解决方案,从而极大提高了处理器的整型和浮点运算性能。 A
17、RM10E系列微处理器主要应用于下一代无线设备,数字消费品、成像设备、工业控制、通信和信息系统等领域。2.2 ARM简介 ARM处理器核简介ARM10E2.2 ARM简介 ARM处理器核简介SecurCore 该系列涵盖了SC100、SC110、SC200和SC210处理核。该系列处理器主要针对新兴的安全市场,以一种全新的安全处理器设计为智能卡和其它安全IC开发提供独特的32位系统设计,并具有特定反伪造方法,从而有助于防止对硬件和软件的盗版。2.2 ARM简介 ARM处理器核简介Xscale Intel Xscale微控制器则提供全性能、高性价比、低功耗的解决方案,支持16位Thumb指令并集
18、成数字信号处理(DSP)指令。ARMARM芯片选型芯片选型应用角度考虑选型应用角度考虑选型ARMARM芯片选型芯片选型多内核的多内核的ARMARM芯片选型芯片选型ARMARM芯片选型芯片选型国内常用的国内常用的ARMARM芯片供应商芯片供应商2.2 ARM简介 ARM组织结构 ARM公司从1990年到1995年间开发的ARM6和ARM7处理器核的组织结构变化不大,都是使用典型的3级流水线的冯.诺曼结构。从1995年以来。ARM公司推出了几个新的ARM核,它们采用5级流水线,使用指令和数据存储器分离的哈佛体系结构(包括指令和数据分开的Cache),获得了优越的性能。 虽然在近几年开发了7级流水线
19、的ARM处理器核,但目前使用最广泛的还是基于3级,5级流水线体系结构的ARM处理器核。 2.2 ARM简介 ARM组织结构3级流水线ARM组织结构 3级流水线ARM处理器核的内部结构如图所示,按处理器核的功能架构可分成数据路径和控制通路。 数据路径基本功能模块包括:寄存器堆,桶式移位器,ALU,地址寄存器和增值器,数据寄存器。 控制通路基本功能模块是指令解码器和相关的控制逻辑。2.2 ARM简介 ARM组织结构3级流水线ARM组织结构 寄存器堆:寄存器堆主要用来保存处理器状态和处理器工作中的数据。它有2个读端口(用于读2个源操作数)和1个写端口,每个端口都可访问任意寄存器,再加上专门访问程序计
20、数器R15的1个附加读端口和1个附加写端口。 桶式移位器:主要完成指令中第2个操作数移位或循环移位。 ALU:执行指令集要求进行的算术或逻辑运算功能。 地址寄存器和增值器:它选择和保存所有存储器地址,并在需要时通过地址增值器产生顺序地址。 数据寄存器:对传送到存储器或从存储器取回的数据保存。2.2 ARM简介 ARM组织结构3级流水线ARM组织结构到ARM7为止,ARM处理器使用的简单级流水线分别为: 取指级:完成程序存储器中指令的读取,并放入指令流水线中。 译码级:对指令进行译码,为下一周期准备数据路径需要的控制信号。这一级指令”占有“译码逻辑,而不是”占有”数据路径 执行级:指令“占有”数
21、据路径,寄存器堆被读取,操作数在桶式移位器中被移位,ALU产生相应的运算结果并回写到目的寄存器,ALU结果根据指令需求更改状态寄存器的条件位。注意:在任意时刻,可能有3种不同的指令占用这3级中的一级,因此流水线正常的条件是在任意时刻,每一级中的硬件必须能够独立操作,而不能2级或多级占用同一硬件资源。2.2 ARM简介 ARM组织结构3级流水线ARM组织结构ARM单周期指令的3级流水线操作取指译码执行1 2 3取指译码执行取指译码执行指令时间 当处理器执行简单的数据处理指令时,流水线使得每个时钟周期能完成一条指令。一条指令用3个时钟周期完成,因此有3周期的执行时间,但吞吐率是每个周期一条指令。2
22、.2 ARM简介 ARM组织结构3级流水线ARM组织结构ARM多周期指令的3级流水线操作取 ADD译码执行1 2 3指令时间取 STR译码计算地址数据传送fetch ADD译码执行fetch ADD译码执行取 ADD译码执行 4 5注意:访问存储器的周期用阴影表示。在每一个周期也使用了数据通路,这涉及到所有的执行周期,地址计算和数据传送。2.2 ARM简介 ARM组织结构3级流水线ARM组织结构 ARM 3级流水线下PC的行为取指译码执行11 2 3取指译码执行取指译码执行指令时间 在3级流水线的执行过程中,当通过R15寄存器直接访问PC时,必须考虑此时流水线执行过程的真实情况。执行23级流水
23、线的PC行为流水线处理器的执行使得程序计数器PC(R15)必须在当前指令之前计数。对于左图的3级ARM,在以当前PC取得指令(取得指令1时,PC+4送到PC)及其后续的以PC+4取得指令(取得指令2时,当前的PC+4送到PC,当前的PC相对于第一条PC为PC+4,即PC+8)PC都要增加,因此在第一条指令执行周期的开始即执行1时,得到PC+8,第二条指令执行开始即执行2时(也就是第三条指令3取指时),得到PC+12。2.2 ARM简介 ARM组织结构5级流水线ARM组织结构 为了得到更好的性能,必须重新考虑处理器的组织结构,经典的计算执行一个给定程序需要的时间的计算公式为:clkinstpro
24、gfCPINTNinst在程序中执行的ARM指令数,是常数;CPI 每条指令的平均时钟周期数;Fclk 处理器的时钟频率;有两种方法来提高性能:1、提高时钟频率提高时钟频率 这就要求简化流水线每一级的逻辑,因而流水线的级数就要增加。2、减少每条指令的平均时钟周期数减少每条指令的平均时钟周期数CPICPI 这就要求重新考虑3级流水线ARM中多于1个流水线槽的指令的实现方法,以便使它占有较少的槽;或者减少因指令相关造成的流水线停顿,也可以将这两者结合起来。 2.2 ARM简介 ARM组织结构5级流水线ARM组织结构 同3级核有关的减少CPI的根本问题与冯.诺曼瓶颈有关-指令和数据放在同一个存储器,
25、则计算机性能将受到现有存储器带宽的限制。3级流水线ARM核(几乎)在每一个时钟周期都访问存储器,或者取指令,或者传输数据。对于访问数据存储器操作时,不得不停止取指指令存储器,使性能受到影响。 为了明显改善CPI,存储器系统必须在每个时钟周期中给出多于1个的数据。方法可以是在每个时钟周期从单个存储器中给出多于32位数据,或为指令和数据分别设置存储器。 则较高性能的ARM核使用5级流水线且具有分开的指令和数据存储器。把指令的执行过程分割为5个部分,这就减少了在每个时钟周期内必须完成的最大工作量,进而允许使用较高的时钟频率。分开的指令和数据存储器使核的CPI明显减少。2.2 ARM简介 ARM组织结
26、构5级流水线ARM组织结构使用5级流水线的ARM处理器包含下面5个流水线级: 取指级:指令从存储器中取出,放入到指令流水线。 译码级:指令译码,从寄存器堆中读取寄存器操作数,在寄存器堆中有3个操作数读端口,因此大多数ARM指令能在一个周期内读取其操作数。 执行级:把一个操作数移位,产生ALU的结果。如果指令是Load或Store,在ALU中计算存储器的地址。 缓冲/数据:如果需要,则访问数据存储器;否则,ALU的结果只是简单地缓冲一个时钟周期,以便使所有指令具有同样的流水线流程。 回写:将指令产生的结果回写到寄存器堆,包括任何从存储器读取的数据。ARM9TDMI 5级流水线的组织结构2.3 A
27、RM7TDMI 简介 ARM7TDMI基于ARM体系结构V4版本,是目前低端的ARM核。具有广泛的应用,其最显著的应用为数字移动电话。注意:“ARM核”并不是芯片,ARM核与其它部件如RAM、ROM、片内外设组合在一起才能构成现实的芯片。2.3 ARM7TDMI 简介 ARM7TDMI支持32位寻址范围,并弥补了ARM6不能在低于5V电源电压下工作的不足。ARM7TDMI的后缀意义为:支持高密度16位的Thumb指令集;支持片上调试;支持64位乘法;支持EmbeddedICE观察硬件;ARM7TDMI 的可综合(synthesizable)版本(软核),对应用工程师来说其编程模型与ARM7TD
28、MI 一致;ARM7 T D M I - S2.3 ARM7TDMI 简介 ARM7TDMI处理器是ARM通用32位微处理器家族的成员之一。它具有优异的性能,但功耗却很低,使用门的数量也很少。它属于精简指令集计算机(RISC),比复杂指令集计算机(CISC)要简单得多。这样的简化实现了:高的指令吞吐量;出色的实时中断响应;小的、高性价比的处理器宏单元。2.3 ARM7TDMI 三级流水线 ARM7TDMI处理器使用流水线来增加处理器指令流的速度。这样可使几个操作同时进行,并使处理和存储器系统连续操作,能提供0.9MIPS/MHz的指令执行速度。 ARM7TDMI的流水线分3级,分别为: 取指译
29、码执行2.3 ARM7TDMI 三级流水线 正常操作过程中,在执行一条指令的同时对下一条指令进行译码,并将第三条指令从存储器中取出。这三条指令之间的位置关系如下表所示:流水线上各指令的地址流水线工位描述ARM指令集Thumb指令集PCPC取指指令从存储器中取出PC-4PC-2译码对指令使用的寄存器进行译码PC-8PC-4执行从寄存器组中读出寄存器,执行移位和ALU操作,寄存器被写回到寄存器组中2.3 ARM7TDMI 存储器访问 ARM7TDMI处理器使用了冯诺依曼(Von Neumann)结构,指令和数据共用一条32位总线。只有装载、存储和交换指令可以对存储器中的数据进行访问。 数据可以是字
30、节( 8位)、半字( 16位)或者字(32位)。2.3 ARM7TDMI 存储器访问计算机结构说明:“冯诺依曼” 结构:把代码作为一种特殊的数据来操作,指令总线和数据总线及其存储区域是统一的;“哈佛”结构:指令总线和数据总线及其存储区是分开、独立的。2.3 ARM7TDMI 存储器访问 ARM7TDMI处理器的存储器接口可以使潜在的性能得以实现,这样减少了存储器的使用。对速度有严格要求的控制信号使用流水线,这样使系统控制功能以标准的低功耗逻辑实现。ARM7TDMI处理器的存储器周期有4个基本类型:内部周期;非连续的周期;连续的周期;协处理器寄存器的传输周期。2.4 ARM7TDMI的模块、内核
31、和功能框图 ARM7TDMI模块框图 ARM7TDMI内核框图 ARM7TDMI功能框图ARM7TDMI模块框图EmbeddedICE-RTCPUDBGRNG(0)DBGRNG(1)DBGEXT(0)DBGEXT(1)TAP数据总线ADDR31:0LOCKWRITESIZE1:0PROT1:0TRANS1:0WDATA31:0RDATA31:0DBGTDIDBGnTRSTDBGTMSDBGTCKENDBGTDO宏单元控制器协处理器接口信号扫描链1扫描链2EmbeddedICE-RTEmbedded In circuit Emulatorreal time扫描链扫描链数据总线ARM7TDMI内核
32、框图地址寄存器寄存器组31*32位寄存器(6个状态寄存器)地址增加器乘法器桶形移位器32位ALU写数据寄存器指令管线读数据寄存器Thumb指令译码器指令译码和控制逻辑ADDR31:0CLKCLENCFGBIGENDnIRQnFIQnRESETABORTLOCKWRITESIZE1:0PROT1:0TRANS1:0DBG输出DBG输入CP控制CP握手WDATA31:0RDATA31:0扫描调试控制ARM7TDMI功能框图CPBCPACPnICPTBITCPSEQCPnMREQCPnOPCCPnTRAN STRANS1 : 0 PROT1: 0 SIZE1: 0 WRITEABORTRDATA31
33、:0WDATA31:0ADDR31 : 0 DBGTDODBGnTDO E NDBGnTRS TDBGTDIDBGTMSDBGTCKE NDBGCOMM T XDBGCOMM R XDBGRNG 0 DBGRNG 1 DBGENDBGEXT 0 DBGEXT 1 DBGnEXE CDBGACKDBGBREA KDBGRQLOCKCFGBIGE N DnRESETnFIQnIRQCLKENCLKDBGINST RVALIDARM7TDM I - SDMORE同步的Em bededICE- RT扫描调试访问 端口存储器接口存储器管理接 口协处理器接口时钟中断总线控制仲裁调试处理器2.5 体系结构直
34、接支持的数据类型 体系结构直接支持的数据类型ARM处理器支持下列数据类型:字节 8位半字 16位(必须分配为占用两个字节)字 32为(必须分配为占用4各字节)1112342 体系结构直接支持的数据类型注意:V4版本之后的ARM结构都支持这3种结构(包括V4版本),而以前的版本只支持字节和字;当数据类型定义为无符号型时,N位数据值使用正常的二进制格式表示范围为02N-1的非负整数;当数据类型定义为有符号型时,N位数据值使用2的补码格式表示范围为-2N-1+2N-1-1的整数;2.5 体系结构直接支持的数据类型 体系结构直接支持的数据类型注意:所有数据操作,例如ADD,都以字为单位;装载和保存指令
35、可以对字节、半字和字进行操作,当装载字节或半字时自动实现零扩展或符号扩展;ARM指令的长度刚好是1个字(分配为占用4个字节),Thumb指令的长度刚好是半字(占用2个字节)。2.5 体系结构直接支持的数据类型2.6 处理器状态 处理器状态 ARM7TDMI处理器内核使用V4T版本的ARM结构,该结构包含32位ARM指令集和16位Thumb指令集。因此ARM7TDMI处理器有两种操作状态:ARM状态: 32位,这种状态下执行的是字对齐的32位ARM指令;Thumb状态:16位,这种状态下执行半字对齐的16位Thumb指令。注意:在程序执行的过程中,处理器可在2种状态下切换。两个状态之间的切换并不
36、影响处理器模式或寄存器内容。 ARM指令集和 Thumb指令集都有相应的状态切换命令。ARM处理器在开始执行代码时,只能处于ARM状态。2.6 处理器状态 状态切换 使用BX指令将ARM7TDMI内核的操作状态在ARM状态和Thumb状态之间进行切换,程序如下所示。;从ARM状态切换到Thumb状态 LDR R0,=Lable+1 BX R0;从Thumb状态切换到ARM状态 LDR R0,=Lable BX R0地址最低位为1,表示切换到Thumb状态地址最低位为0,表示切换到ARM状态跳转地址标号2.7 处理器模式 简介 ARM体系结构支持7种处理器模式,分别为:用户模式、快中断模式、中断
37、模式、管理模式、中止模式、未定义模式和系统模式,如下表所示。这样的好处是可以更好的支持操作系统并提高工作效率。ARM7TDMI完全支持这七种模式。处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定
38、义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式2.7 处理器模式 处理器模式2.7 处理器模式 特权模式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持
39、硬件协处理器的软件仿真未定义指令异常响应时进入此模式 除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。 未定义 (und) 中止 (abt) 管理 (svc) 中断 (irq) 快中断 (fiq) 系统 (sys)2.7 处理器模式 异常模式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道
40、处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 未定义 (und) 中止 (abt) 管理 (svc) 中断 (irq) 快中断 (fiq) 这五种模式称为异常模式。它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠
41、。2.7 处理器模式 用户和系统模式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 这两种模式都不能由异常进入,而且它们使
42、用完全相同的寄存器组。 系统模式是特权模式,不受用户模式的限制。操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。 系统 (sys) 用户 (usr)2.8 内部寄存器 简介 在ARM7TDMI处理器内部有37个用户可见的寄存器。 在不同的工作模式和处理器状态下,程序员可以访问的寄存器也不尽相同。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8
43、(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiqARMARM状态各模式下的寄存器状态各模式下的寄存器寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存
44、器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SP
45、SR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiqARMARM状态各模式下的寄存器状态各模式下的寄存器SPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_abtCPSRR15R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0所有的37个寄存器,分成两大类:31个通用32位寄存器;6个状态寄存器。寄存器类别寄存器在汇编
46、中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器
47、CPSRCPSRSPSR无SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用户用户无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系统系统SPSR_abtCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理管理SPSR_abtCPSRR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止中止SPSR_undCPSRR15R14_undR13
48、_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定义未定义SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中断中断SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中断快中断ARMARM状态各模式下可以访问的寄存器状态各模式下可以访问的寄存器寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(
49、a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq一般的通用寄存器一般的通用
50、寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0 在汇编语言中寄存器R0R13为保存数据或地址值的通用寄存器。它们是完全通用的寄存器,不会被体系结构作为特殊用途,并且可用于任何使用通用寄存器的指令。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v
51、5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq一般的通用寄存器一般的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13
52、R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0 其中R0R7为未分组的寄存器,也就是说对于任何处理器模式,这些寄存器都对应于相同的32位物理寄存器。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR1
53、1(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq一般的通用寄存器一般的通用寄存器R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R
54、11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 寄存器R8R14为分组寄存器。它们所对应的物理寄存器取决于当前的处理器模式,几乎所有允许使用通用寄存器的指令都允许使用分组寄存器寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R
55、12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq一般的通用寄存器一般的通用寄存器R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 寄存器R8R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。这样在发生FIQ中断后,可以加速F
56、IQ的处理速度。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14
57、_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq一般的通用寄存器一般的通用寄存器 寄存器R13、R14分别有6个分组的物理寄存器。一个用于用户和系统模式,其余5个分别用于5种异常模式。R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3
58、(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq堆栈指针寄存器堆栈指针寄
59、存器R13R13(SPSP) 寄存器R13常作为堆栈指针(SP)。在ARM指令集当中,没有以特殊方式使用R13的指令或其它功能,只是习惯上都这样使用。但是在Thumb指令集中存在使用R13的指令。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12
60、_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq链接寄存器链接寄存器R14R14(LRLR) R14为链接寄存器(LR),在结构上有两个特殊功能:在每种模式下,模式自身的R14版本用于保存子程序返回地址;当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个小的固定偏移量)。Lable程序A程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省莒南县重点名校2024-2025学年初三化学试题查缺补漏试题(文理)含解析
- 新疆乌鲁木齐市天山区兵团第二中学2025年高考信息归集与命题预测:物理试题试卷含解析
- 吉林外国语大学《电生理学基础》2023-2024学年第二学期期末试卷
- 哈尔滨幼儿师范高等专科学校《城市土地管理》2023-2024学年第二学期期末试卷
- DB15T 3951-2025农畜产品追溯系统数据元规范
- 清扫工具制造业的智能制造技术应用考核试卷
- 涤纶纤维在防污地板材料中的应用考核试卷
- 汽车电子电路的电磁兼容性测试考核试卷
- 天然气勘探开发项目质量管理与质量控制考核试卷
- 环境监测数据应用与决策支持考核试卷
- 甘肃省卫生健康委公务员考试招聘112人往年题考
- 数字化赋能护理质量管理研究进展与价值共创视角
- 电网工程设备材料信息参考价(2024年第四季度)
- 电子产品生产工艺流程手册
- DB15T 2403-2021肉羊育种数据管理规范
- 口腔种植专用病历【范本模板】
- 《空中领航学》4.2 确定飞机位置
- 邻二氮菲分光光度法测定微量铁(精)
- 产业经济学完整版ppt全套教程课件(最新)
- GB-T 18348-2022 商品条码 条码符号印制质量的检验(高清版)
- 预防艾滋病、梅毒、乙肝母婴传播实验室检测
评论
0/150
提交评论