《最新嵌入式系统第二讲arm体系结构与编程模型PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新嵌入式系统第二讲arm体系结构与编程模型PPT课件.ppt(78页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、嵌入式系统第二讲arm体系结构与编程模型本讲主要内容本讲主要内容n nARM体系结构体系结构体系结构的版本体系结构的版本体系结构的版本体系结构的版本ARMARM体系的变种体系的变种体系的变种体系的变种 ARMARM系列处理器介绍系列处理器介绍系列处理器介绍系列处理器介绍n nARM处理器架构处理器架构流水线结构流水线结构流水线结构流水线结构 MMU,I/O,DMA,AMBA,JTAGMMU,I/O,DMA,AMBA,JTAG核与内核核与内核核与内核核与内核n nARM编程模型编程模型ARM体系的变种(三,略)体系的变种(三,略)vv增强型DSP指令(E变种)几个新的几个新的1616位乘法运算和
2、乘加指令;位乘法运算和乘加指令;完成饱和带符号加减运算;完成饱和带符号加减运算;可可对对双双字字数数据据操操作作的的加加载载寄寄存存器器(LDRDLDRD)、存存储储寄寄存存器器STRDSTRD和和协协处处理理器器寄寄存存器器传传输输指指令令MCRRMCRR、MRRCMRRC;CacheCache预加载指令预加载指令PLDPLD;ARM体系的变种(四,略)体系的变种(四,略)另另外外,一一些些早早期期体体系系结结构构的的E E变变量量未未实实现现指指令令LDRDLDRD、STRDSTRD、MCRRMCRR、MRRCMRRC,为为了了表表示示这这种结构,通常用种结构,通常用xPxP表示;表示;在
3、非在非T T或非或非MM变量的体系结构中,变量的体系结构中,E E变量无效。变量无效。例如:ARMv5TExP表示:ARMARM指指令令集集版版本本v5,v5,支支持持ThumbThumb指指令令集集,支支持持长长乘乘法法,支支持持除除LDRDLDRD、STRDSTRD、MCRRMCRR、MRRCMRRC外的所有增强型外的所有增强型DSPDSP指令。指令。ARM体系的变种(五,略)体系的变种(五,略)vvJava加速器Jazelle(J变种)提提供供JavaJava加加速速功功能能,比比普普通通虚虚拟拟机机(VMVM)相相比比,JazelleJazelle使使JavaJava代代码码运运行行速
4、速度度提提高高8 8倍倍,功功耗降低耗降低8080 使使得得同同时时运运行行JavaJava应应用用程程序序,操操作作系系统统,中中间件可以在单独的处理器上实现间件可以在单独的处理器上实现 在在ARMv4TEJARMv4TEJ中首先使用中首先使用ARM体系的变种(六,略)体系的变种(六,略)vv媒体功能扩展(媒体功能扩展(SIMDSIMD变种变种)音频音频/视频处理性能提高视频处理性能提高2 24 4倍倍 可以同时进行两个可以同时进行两个1616位操作数或四个位操作数或四个8 8位操作数的运算位操作数的运算 提供小数算术运算提供小数算术运算 用用户户可可定定义义饱饱和和运运算算模模式式(溢溢出
5、出后后使使用用最最大大的的整整数数或或最最小小的的负负数来表示)数来表示)两套两套1616位操作数的乘加位操作数的乘加/乘减运算乘减运算 32323232位的小数位的小数MACMAC 同时同时8 8位位/16/16位选择操作位选择操作 低功耗低功耗ARM微处理器分类微处理器分类n nARM7系列:如系列:如ARM7TDMI(TDMI=Thumb,Debugger,Multiplier,ICE)、ARM720T等等n nARM9系列系列:MX1采用采用ARM920T核核n nARM9E系列系列n nARM10系列系列n nARM11系列系列n nStrongARMStrongARM系列系列n n
6、XscaleARM7系列处理器特点(一)系列处理器特点(一)ARM7系列:如系列:如ARM7TDMI、ARM720T等等 采用采用采用采用ARMV4TARMV4T结构结构结构结构 常见芯片主频为常见芯片主频为常见芯片主频为常见芯片主频为2020133MHz133MHz ARM720TARM720T以下没有以下没有以下没有以下没有MMUMMU 适合对价位和功耗要求较高的产品。适合对价位和功耗要求较高的产品。适合对价位和功耗要求较高的产品。适合对价位和功耗要求较高的产品。3 3级流水线级流水线级流水线级流水线和冯和冯和冯和冯.诺依曼结构诺依曼结构诺依曼结构诺依曼结构 支持支持支持支持Window
7、CEWindow CEWindow CEWindow CE、Linux Palm OSLinux Palm OSLinux Palm OSLinux Palm OS等等等等ARM7系列处理器特点(二)系列处理器特点(二)指令和数据指令和数据指令和数据指令和数据Cache(ARM710,720,740)Cache(ARM710,720,740)平均功耗平均功耗平均功耗平均功耗0.60.6mW/MHzmW/MHz每条指令平均需要每条指令平均需要每条指令平均需要每条指令平均需要1.91.9时钟周期时钟周期时钟周期时钟周期处理速度处理速度处理速度处理速度0.90.9MIPS/MHzMIPS/MHz小型
8、、快速、低能耗、集成式小型、快速、低能耗、集成式小型、快速、低能耗、集成式小型、快速、低能耗、集成式RISCRISC内核内核内核内核广泛应用于手持式计算机、数据通信和消费广泛应用于手持式计算机、数据通信和消费广泛应用于手持式计算机、数据通信和消费广泛应用于手持式计算机、数据通信和消费类多媒体类多媒体类多媒体类多媒体ARM9系列处理器特点(一)系列处理器特点(一)ARM9系列系列:MX1采用采用ARM920T核核 采用采用采用采用ARMV4TARMV4T结构结构结构结构 常见的芯片主频为常见的芯片主频为常见的芯片主频为常见的芯片主频为100100233MHz233MHz 5 5级流水线级流水线级
9、流水线级流水线和哈佛结构和哈佛结构和哈佛结构和哈佛结构 支持支持支持支持3232位的高速位的高速位的高速位的高速AMBAAMBA总线接口总线接口总线接口总线接口 MMUMMU 支持实时操作系统支持实时操作系统支持实时操作系统支持实时操作系统ARM9系列处理器特点(二)系列处理器特点(二)指令数据分离的指令数据分离的指令数据分离的指令数据分离的CacheCache(ARM920,940,9EARM920,940,9E)平均功耗平均功耗平均功耗平均功耗0.70.7mW/MHzmW/MHz132132MIPSMIPS(120MHz120MHz时钟,时钟,时钟,时钟,3.33.3V V供电)或供电)或
10、供电)或供电)或220220MIPSMIPS(200MHz200MHz时钟)时钟)时钟)时钟)配写缓冲配写缓冲配写缓冲配写缓冲低价、低能耗、高性能低价、低能耗、高性能低价、低能耗、高性能低价、低能耗、高性能应用于高级引擎管理、保安系统、机顶盒、应用于高级引擎管理、保安系统、机顶盒、应用于高级引擎管理、保安系统、机顶盒、应用于高级引擎管理、保安系统、机顶盒、便携计算机和高档打印机便携计算机和高档打印机便携计算机和高档打印机便携计算机和高档打印机ARM9E处理器特点(略)处理器特点(略)ARM9E系列系列 采用采用采用采用ARMV5TEARMV5TE结构结构结构结构 5 5级流水线和哈佛结构级流水
11、线和哈佛结构级流水线和哈佛结构级流水线和哈佛结构 紧耦合的存储器接口紧耦合的存储器接口紧耦合的存储器接口紧耦合的存储器接口 支持支持支持支持3232位的高速位的高速位的高速位的高速AMBAAMBA总线接口总线接口总线接口总线接口 MMUMMU 支持支持支持支持DSPDSP指令集,适合高速数字信号处理指令集,适合高速数字信号处理指令集,适合高速数字信号处理指令集,适合高速数字信号处理 支持实时操作系统支持实时操作系统支持实时操作系统支持实时操作系统 具有具有具有具有指令指令指令指令CacheCache和数据和数据和数据和数据CacheCache 支持支持支持支持VFP9VFP9浮点处理协处理器浮
12、点处理协处理器浮点处理协处理器浮点处理协处理器ARM10系列处理器特点(一)系列处理器特点(一)ARM10系列系列 采用采用采用采用ARMV5TEARMV5TE结构结构结构结构 6 6级流水线级流水线级流水线级流水线和哈佛结构和哈佛结构和哈佛结构和哈佛结构 支持支持支持支持6464位的高速位的高速位的高速位的高速AHBAHB总线接口总线接口总线接口总线接口 MMUMMU 支持支持支持支持DSPDSP指令集,适合高速数字信号处理指令集,适合高速数字信号处理指令集,适合高速数字信号处理指令集,适合高速数字信号处理 支持实时操作系统支持实时操作系统支持实时操作系统支持实时操作系统 具有具有具有具有指
13、令指令指令指令CacheCache和数据和数据和数据和数据CacheCache 支持支持支持支持VFP9VFP9浮点处理协处理器浮点处理协处理器浮点处理协处理器浮点处理协处理器ARM10系列处理器特点(二)系列处理器特点(二)时钟速度时钟速度时钟速度时钟速度300300MHzMHz每条指令平均需要每条指令平均需要每条指令平均需要每条指令平均需要1.21.2个时钟周期个时钟周期个时钟周期个时钟周期适用于高性能手持式因特网设备,数字式消适用于高性能手持式因特网设备,数字式消适用于高性能手持式因特网设备,数字式消适用于高性能手持式因特网设备,数字式消费类产品费类产品费类产品费类产品ARM11系列处理
14、器特点系列处理器特点ARM11采用采用采用采用ARMV6ARMV6结构结构结构结构8 8级流水级流水级流水级流水时钟达到时钟达到时钟达到时钟达到550550MHzMHz0.13um0.13um工艺工艺工艺工艺支持支持支持支持IEM(Intelligent Energy Manager)IEM(Intelligent Energy Manager),节约节约节约节约高达高达高达高达7575的处理器功耗的处理器功耗的处理器功耗的处理器功耗ARM1156T2-SARM1156T2-S,ARM1156T2F-SARM1156T2F-S首批含有首批含有首批含有首批含有Thumb-2Thumb-2内核技术
15、内核技术内核技术内核技术其他系列其他系列ARM处理器(一)处理器(一)SecureCore系列系列 专为安全需要而设计专为安全需要而设计专为安全需要而设计专为安全需要而设计 灵活的保护单元灵活的保护单元灵活的保护单元灵活的保护单元Strong ARM 融融融融合合合合了了了了IntelIntel技技技技术术术术的的的的具具具具有有有有ARMARM体体体体系系系系结结结结构构构构的的的的3232位位位位处理器处理器处理器处理器 采用采用采用采用ARMV4TARMV4T结构结构结构结构 5 5级流水级流水级流水级流水 IntelIntel以以以以SA110SA110命名命名命名命名 包包包包括括括
16、括SA1100 SA1100 PDAPDA系系系系统统统统芯芯芯芯片片片片和和和和SA1500 SA1500 多多多多媒媒媒媒体处理器芯片体处理器芯片体处理器芯片体处理器芯片其他系列其他系列ARM处理器(二)处理器(二)Xscale IntelIntel新新新新一一一一代代代代的的的的性性性性能能能能全全全全、性性性性价价价价比比比比高高高高、低低低低功功功功耗耗耗耗的的的的微处理器微处理器微处理器微处理器 ARMV5TEARMV5TE 7 7级超流水线级超流水线级超流水线级超流水线 3232k k数据缓存、数据缓存、数据缓存、数据缓存、3232k k指令缓存指令缓存指令缓存指令缓存 ARM处
17、理器架构简述处理器架构简述ARM处理器架构(三级流水)处理器架构(三级流水)ARM处理器包括:32位ALU 31个32位通用寄存器及6个状态寄存器 32x8位乘法器 32x32位桶形移位寄存器 指令译码及控制逻辑 数据/地址寄存器组成 ARM处理器流程示意处理器流程示意ARM的流水线结构(一)的流水线结构(一)vv流水线结构一一条指令典型执行过程可能包括:条指令典型执行过程可能包括:取指:从存储器中取出指令(取指:从存储器中取出指令(fetchfetch););译码(译码(decdec););取操作数,从寄存器组中读操作数(取操作数,从寄存器组中读操作数(regreg););执行运算(执行运算
18、(ALUALU););存储器访问(存储器访问(memmem););结果写回寄存器(结果写回寄存器(resres););ARM的流水线结构(二)的流水线结构(二)指令流水线ARM7的三级流水的三级流水vvARM7 采用3级流水线,即分为取指、译码和执行。ARM9的五级流水的五级流水vvARM9 5级流水线,即分为取指、译码、执行、数据缓存和写回。3级流水线阻塞主要发生在存储器访问和数据通路的占用上,ARM9则采用5级流水线,把存储器存取和数据存取分开,且增加I-Cache和D-Cache,同时增加了数据写回的专用通道I-Cache和和D-Cachev快存(Cache)结构 新 型 ARM处 理
19、器 采 用 I-Cache和D-Cache独立的结构存储器管理单元存储器管理单元MMUvv存储器管理单元存储器管理单元MMUMMU(Memory Management UnitMemory Management Unit)MMUMMU可以通过可以通过CP15CP15协处理器的协处理器的R1R1的设置,选择打开或关闭。的设置,选择打开或关闭。MMUMMUMMUMMU的主要功能的主要功能的主要功能的主要功能 将虚拟地址转换为物理地址;将虚拟地址转换为物理地址;控制存储器访问权限。控制存储器访问权限。MMUMMU支支持持基基于于段段或或页页的的存存储储器器访访问问,其其中中有有段段(1 1MBMB)
20、、大大页页面面(6464kBkB)、小小页页面面(4 4 kBkB)、微微小小页页面面(1 1 kBkB)MMU的控制的控制ARM存储器管理单元的控制,通过协处理器CP15的寄存器R1、R2、R3、R4、R5、R6、R8、和R10来实现,其中R2为转换表 基 址 寄 存 器,详 细 内 容 参 见 ARM Architecture Reference Manual。地址变换后备缓冲器TLBn n类似类似CacheCache,只存放最近使用过的页表项,也称只存放最近使用过的页表项,也称为快表为快表n n是虚拟地址和物理地址之间的高速缓存,包含了是虚拟地址和物理地址之间的高速缓存,包含了6464项
21、虚页号和实页号的对应关系,同时还为访项虚页号和实页号的对应关系,同时还为访问控制提供信息。问控制提供信息。n n若若TLBTLB包含虚拟地址的变换项,则存储控制逻辑包含虚拟地址的变换项,则存储控制逻辑决定是否允许访问;决定是否允许访问;若允许访问,则若允许访问,则MMUMMU输出与虚拟地址对应的物理地输出与虚拟地址对应的物理地址;址;若不允许访问,则若不允许访问,则MMUMMU向向CPUCPU发出中止信号发出中止信号n n若请求的虚拟地址不在若请求的虚拟地址不在TLBTLB中时,则引发地址变中时,则引发地址变换过程换过程直接存储器访问直接存储器访问DMAn nDMA直接存储器访问直接存储器访问
22、I/OI/O的数据块直接传送到存储器的缓冲区而不的数据块直接传送到存储器的缓冲区而不的数据块直接传送到存储器的缓冲区而不的数据块直接传送到存储器的缓冲区而不需要处理器的介入需要处理器的介入需要处理器的介入需要处理器的介入在在在在I/OI/O的数据流量比较大,中断处理频繁的场的数据流量比较大,中断处理频繁的场的数据流量比较大,中断处理频繁的场的数据流量比较大,中断处理频繁的场合可以提高系统性能合可以提高系统性能合可以提高系统性能合可以提高系统性能ARM的的I/O结构形式结构形式n nARM采用存储器映像采用存储器映像I/O的方式,即把的方式,即把I/O端口当作特殊的存储器地址来访问。一般端口当作
23、特殊的存储器地址来访问。一般有若干个寄存器有若干个寄存器:发送数据寄存器(只写)发送数据寄存器(只写)发送数据寄存器(只写)发送数据寄存器(只写)接收数据寄存器(只读)接收数据寄存器(只读)接收数据寄存器(只读)接收数据寄存器(只读)控制寄存器控制寄存器控制寄存器控制寄存器状态寄存器(只读)状态寄存器(只读)状态寄存器(只读)状态寄存器(只读)中断控制寄存器中断控制寄存器中断控制寄存器中断控制寄存器n n中断中断IRQ和快速中断和快速中断FIQ对于对于对于对于FIQFIQ的请求响应时长最多的请求响应时长最多的请求响应时长最多的请求响应时长最多2828个周期个周期个周期个周期ARM JTAG调试
24、接口(一)调试接口(一)n nJTAGJTAG测试标准是由联合测试行动小组(测试标准是由联合测试行动小组(Joint Joint Test Action GroupTest Action Group)提出的一种国际标准,主提出的一种国际标准,主要用于芯片内部测试及对系统进行仿真、调试要用于芯片内部测试及对系统进行仿真、调试 ARM JTAG调试接口(二)调试接口(二)TAP控 制 器(测试访问端口)指令寄存器器件ID寄存器 旁路寄存器边界扫描寄存器 ARM JTAG调试接口(三)调试接口(三)vvEmbedded-ICE模块 JTAGJTAG调试调试接口基础上的扩展;接口基础上的扩展;包含包含
25、2 2个观察点寄存器以及控制与状态寄存器;个观察点寄存器以及控制与状态寄存器;能能够够中中止止ARMARM处处理理器器的的运运行行,完完成成设设置置断断点点、观测点等功能;观测点等功能;包包含含调调试试通通信信端端口口,使使得得目目标标系系统统的的软软件件可可以与主机通信;以与主机通信;其寄存器需要通过其寄存器需要通过JTAGJTAG测试端口来编程。测试端口来编程。ARM处理器内核处理器内核n n核与内核的概念核与内核的概念核核核核=内核内核内核内核I-Cache/D-Cache/MMU/AMBA/I-Cache/D-Cache/MMU/AMBA/写缓冲写缓冲写缓冲写缓冲n nARM架构的处理
26、器内核有架构的处理器内核有ARM7TDMIARM7TDMIARM8ARM8ARM9TDMIARM9TDMIARM10TDMIARM10TDMIStrongARM(SA-1)StrongARM(SA-1)ARM处理器核处理器核n nARM架构的处理器核有架构的处理器核有ARM720T/ARM740TARM720T/ARM740TARM920T/ARM940TARM920T/ARM940TARM946E-S/ARM966E-SARM946E-S/ARM966E-SARM1020EARM1020EStrongARM SA-110StrongARM SA-110ARM920T结构图结构图ARM编程模型
27、编程模型主要内容主要内容n nARM处理器编程模型处理器编程模型寄存器组寄存器组寄存器组寄存器组处理器工作模式处理器工作模式处理器工作模式处理器工作模式异常处理异常处理异常处理异常处理ARM处理器支持的运行模式处理器支持的运行模式ARMARM处理器共支持处理器共支持7 7种运行模式,分别为:种运行模式,分别为:用户(用户(usrusr):):ARMARM处理器正常的程序执行状态;处理器正常的程序执行状态;系统模式(系统模式(syssys):):运行具有特权的操作系统任务;运行具有特权的操作系统任务;快速中断(快速中断(fiqfiq):):用于高速数据传输或通道处理;用于高速数据传输或通道处理;
28、外部中断(外部中断(irqirq):):用于通用的中断处理;用于通用的中断处理;管理模式(管理模式(svcsvc):):操作系统使用的保护模式;操作系统使用的保护模式;中止中止(abt)abt):当数据或指令访问中止时进入该模式,可用于虚当数据或指令访问中止时进入该模式,可用于虚拟存储及存储保护;拟存储及存储保护;未定义未定义(und)und):当未定义指令执行时进入该模式,可用于硬件当未定义指令执行时进入该模式,可用于硬件协处理器的软件仿真。协处理器的软件仿真。ARM处理器运行模式处理器运行模式n n除用户模式之外的其余除用户模式之外的其余6 6种称为非用户模式,或种称为非用户模式,或特权模
29、式(特权模式(Privileged ModesPrivileged Modes););而特权模式中,而特权模式中,除系统模式之外的其余除系统模式之外的其余5 5种又称为异常模式种又称为异常模式(Exception ModesException Modes)。)。n n用户程序运行在用户模式下,不能访问一些受操用户程序运行在用户模式下,不能访问一些受操作系统保护的系统资源。应用程序也不能直接进作系统保护的系统资源。应用程序也不能直接进行处理器模式的切换。当需要进行处理器模式切行处理器模式的切换。当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理换时,应用程序可以产生异常处理,在异常
30、处理过程中进行处理器处理器模式的切换。这种体系过程中进行处理器处理器模式的切换。这种体系结构可以使系统控制整个系统的资源。结构可以使系统控制整个系统的资源。系统模式系统模式n n系统模式并不是通过异常过程进入的,它和用户模式具有完全一样的寄存器。但是系统模式属于特权模式,可以访问所有的系统资源,也可以直接进行处理器模式切换。它主要供操作系统任务使用。通常操作系统的任务需要访问所有的系统资源,同时该任务仍然使用用户模式的寄存组,而不是使用异常模式下相应的寄存器组,这样可以保证当异常中断发生时可以正常保存当前工作状态,进行模式切换。ARM处理器运行模式处理器运行模式n n当应用程序发生异常中断时,
31、处理器进入相应的异常模式。在每一种异常模式中都有一组寄存器,供相应的异常处理程序使用,这样就可以保证在进入异常模式时,用户模式下的寄存器(保存了程序运行状态)不被破坏。ARM的寄存器组织的寄存器组织ARMARM处理器共有处理器共有3737个个3232位寄存器,其中位寄存器,其中3131个为通用个为通用寄存器,寄存器,6 6个状态寄存器个状态寄存器。ARMARM状态下的寄存器组织状态下的寄存器组织 未分组寄存器未分组寄存器R0R7R0R7 分组寄存器分组寄存器R8R14R8R14 程序计数器程序计数器R15R15(PCPC)当前程序状态寄存器当前程序状态寄存器(CPSR)CPSR)备份的程序状态
32、寄存器备份的程序状态寄存器(SPSR)SPSR)ARM状态下寄存器组织状态下寄存器组织Thumb状态下的寄存器组织状态下的寄存器组织ThumbThumb状态下的寄存器组织状态下的寄存器组织 通用寄存器通用寄存器R0R7R0R7 程序计数器程序计数器PCPC 堆栈指针堆栈指针SP(R13)SP(R13)连接寄存器连接寄存器LRLR CPSPCPSP和和SPSRSPSRR13(SP堆栈指针)堆栈指针)n n每种异常模式都有备份寄存器每种异常模式都有备份寄存器R13_usr,R13_svc,R13_abt,R13_und,R13_usr,R13_svc,R13_abt,R13_und,R13_irq
33、,R13_fiqR13_irq,R13_fiqn n用作堆栈指针用作堆栈指针每种异常模式有自己专用的栈地址每种异常模式有自己专用的栈地址每种异常模式有自己专用的栈地址每种异常模式有自己专用的栈地址R13R13用于被中断程序的现场保护,即保存需用于被中断程序的现场保护,即保存需用于被中断程序的现场保护,即保存需用于被中断程序的现场保护,即保存需要保护的寄存器值要保护的寄存器值要保护的寄存器值要保护的寄存器值R14(LR连接寄存器)连接寄存器)n n每种异常模式都有备份寄存器每种异常模式都有备份寄存器R14_usr,R14_svc,R14_abt,R14_und,R14_usr,R14_svc,R
34、14_abt,R14_und,R14_irq,R14_fiqR14_irq,R14_fiqn n作用作用存放当前子程序的返回地址存放当前子程序的返回地址存放当前子程序的返回地址存放当前子程序的返回地址异常中断发生时,该异常模式异常中断发生时,该异常模式异常中断发生时,该异常模式异常中断发生时,该异常模式R14_xxxR14_xxx被设被设被设被设置为将要返回的地址置为将要返回的地址置为将要返回的地址置为将要返回的地址R15(PC程序计数器)程序计数器)n n指令地址指令地址PC=PC=当前执行指令地址当前执行指令地址当前执行指令地址当前执行指令地址8 8n n地址值字对齐及半字对齐地址值字对齐
35、及半字对齐n n例例MOV PC,PC;跳转到下面第二条指令跳转到下面第二条指令状态寄存器状态寄存器状态寄存器状态寄存器:当前程序状态寄存器当前程序状态寄存器 CPSR,可以在任何可以在任何工作模式下被访问;工作模式下被访问;程序状态备份寄存器程序状态备份寄存器SPSR,只有在异常只有在异常模式下,才能被访问模式下,才能被访问;CPSR当前程序状态寄存器(一)当前程序状态寄存器(一)vv当前程序状态寄存器当前程序状态寄存器CPSRCPSR N N:补补码码形形式式的的有有符符号号数数运运算算时时,1 1为为负负,0 0为为正;正;Z Z:1 1表示结果为零;表示结果为零;C C:加加减减法法的
36、的进进位位或或借借位位,以以及及非非加加减减法法的的最最后移位;后移位;V V:1 1表表示示补补码码形形式式的的有有符符号号数数加加减减运运算算时时符符号位溢出;号位溢出;CPSR当前程序状态寄存器(二)当前程序状态寄存器(二)Q Q:v5v5以以上上版版本本才才有有,描描述述增增强强DSPDSP运运算算指指令令是是否否发发生溢出;生溢出;I I、F F:中断禁止位,中断禁止位,1 1表示中断禁止;表示中断禁止;T T:指示处理器处于指示处理器处于ARMARM或或ThumbThumb工作状态;工作状态;CPSR当前程序状态寄存器当前程序状态寄存器(三三)M4:0M4:0:表示处理器的运行模式
37、表示处理器的运行模式 0b10000User0b10000User 0b10001FIQ0b10001FIQ 0b10010IRQ0b10010IRQ 0b10011Supervisor0b10011Supervisor 0b10111Abort0b10111Abort 0b11011Undefined0b11011Undefined 0b11111System0b11111SystemARM控制程序执行的方式控制程序执行的方式n n正常执行,每执行一条指令正常执行,每执行一条指令ARMARM指令指令指令指令PC+4PC+4ThumbThumb指令指令指令指令PC+2PC+2n n跳转跳转:B
38、、BL、BX、BLXn n异常中断异常中断执行完当前指令,跳转到异常中断处理程序执行完当前指令,跳转到异常中断处理程序执行完当前指令,跳转到异常中断处理程序执行完当前指令,跳转到异常中断处理程序执行完返回到发生中断指令的下一条处执行完返回到发生中断指令的下一条处执行完返回到发生中断指令的下一条处执行完返回到发生中断指令的下一条处要保护和恢复被中断程序的执行现场要保护和恢复被中断程序的执行现场要保护和恢复被中断程序的执行现场要保护和恢复被中断程序的执行现场ARM处理器的异常中断处理器的异常中断(一)一)异异常常是是指指正正常常的的程程序序执执行行流流程程发发生生暂暂时时的的停停止止或或改改变变,
39、例如在复位、有中断请求及指令预取中止时;例如在复位、有中断请求及指令预取中止时;ARMARM处理器支持处理器支持7 7种类型的异常。种类型的异常。复位(复位(复位(复位(RESET)RESET)RESET)RESET):当处理器的复位电平有效时,产生复位异常,当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行。程序跳转到复位异常处理程序处执行。未定义指令未定义指令未定义指令未定义指令(UDEF)UDEF)UDEF)UDEF):当当ARMARM处理器或协处理器遇到不能处理的处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。可使用该异常机制进行软件仿指令时,产生未定义
40、指令异常。可使用该异常机制进行软件仿真。真。软件中断软件中断软件中断软件中断(SWI)SWI)SWI)SWI):该异常由执行该异常由执行SWISWI指令产生,可用于用户模式指令产生,可用于用户模式下的程序调用特权操作指令。使用该异常机制可以实现系统功下的程序调用特权操作指令。使用该异常机制可以实现系统功能调用。能调用。ARM处理器的异常中断(二)处理器的异常中断(二)指令预取中止指令预取中止指令预取中止指令预取中止(PABT)PABT)PABT)PABT):若处理器预取指令的地址不存在,若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出或该地址不允许当前指令访问,存
41、储器会向处理器发出中止信号,但当预取的指令被执行时,才会产生指令预中止信号,但当预取的指令被执行时,才会产生指令预取中止异常。取中止异常。数据中止数据中止数据中止数据中止(DABT)DABT)DABT)DABT):若处理器数据访问指令的地址不存在,若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常。或该地址不允许当前指令访问时,产生数据中止异常。IRQIRQIRQIRQ(外部中断请求):外部中断请求):外部中断请求):外部中断请求):当处理器的外部中断请求引脚有当处理器的外部中断请求引脚有效,且效,且CPSRCPSR中的中的I I位为位为0 0时,产生时,产生IR
42、QIRQ异常。系统的外设可异常。系统的外设可通过该异常请求中断服务。通过该异常请求中断服务。FIQFIQFIQFIQ(快速中断快速中断快速中断快速中断请请请请求):求):求):求):当当处处理器的快速中断理器的快速中断请请求引脚有求引脚有效,且效,且CPSRCPSR中的中的F F位位为为0 0时时,产产生生FIQFIQ异常。异常。ARM处理器的异常中断(三)处理器的异常中断(三)异常类型模式正常向量地址高向量地址复位管理0 x000000000 xFFFF0000未定义指令未定义0 x000000040 xFFFF0004软件中断管理0 x000000080 xFFFF0008指令预取中止中止
43、0 x0000000C0 xFFFF000C数据中止中止0 x000000100 xFFFF0010IRQIRQ0 x000000180 xFFFF0018FIQFIQ0 x0000001C0 xFFFF001CARM处理器的异常中断(四)处理器的异常中断(四)异常优先级异常类型1(最高)复位2数据中止3FIQ4IRQ5预取中止6未定义指令,SWIARM处理器对异常的处理(一)处理器对异常的处理(一)vv对异常的响应对异常的响应:将将下下一一条条指指令令的的地地址址存存入入相相应应异异常常类类型型的的连连接接寄寄存存器器LR_modeLR_mode;将将CPSRCPSR复制到相应异常类型的复制
44、到相应异常类型的SPSR_modeSPSR_mode中;中;设置设置CPSRCPSR的的M4:0,M4:0,强制改变到相应的运行模式;强制改变到相应的运行模式;禁禁止止正正常常中中断断,如如果果异异常常类类型型为为快快速速中中断断或或复复位位,同同时禁止快中断;时禁止快中断;强强制制PCPC从相关的异常向量地址取下一条指令从相关的异常向量地址取下一条指令执执行,从行,从而跳而跳转转到相到相应应的异常的异常处处理程序理程序处处。ARM处理器对异常的处理(二)处理器对异常的处理(二)vv异常返回 从堆栈中恢复用户寄存器从堆栈中恢复用户寄存器 将将SPSR_modeSPSR_mode复制回复制回CP
45、SRCPSR中中 复制复制LR_modeLR_modePCPC未定义异常的操作过程未定义异常的操作过程进入异常进入异常进入异常进入异常:R14_und=R14_und=产生异常的下一条指令地址产生异常的下一条指令地址 SPSR_und=CPSRSPSR_und=CPSR CPSR4:0=0b11011/*CPSR4:0=0b11011/*进入未定义运行模式进入未定义运行模式*/*/CPSR5=0/*CPSR5=0/*进入进入ARMARM工作状态工作状态*/*/CPSR7=1/*CPSR7=1/*禁止正常中断禁止正常中断*/*/如果设置了高向量模式,则如果设置了高向量模式,则 PC=0 xFFF
46、F0004 PC=0 xFFFF0004 否则否则PC=0 x00000004PC=0 x00000004退出异常退出异常退出异常退出异常:MOVS PC R14 MOVS PC R14 恢恢复复PCPC(从从R14_undR14_und)和和CPSRCPSR(从从SPSR_undSPSR_und),并并返返回回到到该该未未定定义义指令的下一条指令处指令的下一条指令处ARM推荐的异常退出指令推荐的异常退出指令异常类型R14(ARM)R14(Thumb)返回指令BLPC+4PC+2MOVPC,R14SWIPC+4PC+2MOVSPC,R14UDEFPC+4PC+2MOVSPC,R14FIQPC+
47、4PC+4SUBSPC,R14,#4IRQPC+4PC+4SUBSPC,R14,#4PABTPC+4PC+4SUBSPC,R14,#4DABTPC+8PC+8SUBSPC,R14,#8RESET-例:例:SWI中断的中断的R14vv例如:例如:0 0 x8000 x8000 mov.mov.0 x80040 x8004 add.add.0 x80080 x8008 SWI.SWI.0 x800C0 x800C mov.mov.0 x80100 x8010 add.add.当当程程序序执执行行SWISWI异异常常时时,PCPC指指向向0 0 x8010 x8010,在在跳跳转转到到异异常向量的之
48、前,常向量的之前,ARMARM会把会把R14R14调整到调整到0 0 x800Cx800CARM数据类型数据类型 字(字(字(字(WordWordWordWord):):):):在在ARMARM体系结构中,字的长度为体系结构中,字的长度为3232位,而在位,而在8 8位位/16/16位处理器体系结构中,字位处理器体系结构中,字的长度一般为的长度一般为1616位,请注意区分。位,请注意区分。半字(半字(半字(半字(Half-WordHalf-WordHalf-WordHalf-Word):在在ARMARM体系结构中,半体系结构中,半字的长度为字的长度为1616位,与位,与8 8位位/16/16位
49、处理器体系结位处理器体系结构中字的长度一致。构中字的长度一致。字节(字节(字节(字节(ByteByteByteByte):):):):在在ARMARM体系结构和体系结构和8 8位位/16/16位位处理器体系结构中,字节的长度均为处理器体系结构中,字节的长度均为8 8位。位。存储器组织存储器组织n n以以0 x87654321为例为例小端方式对应于地址小端方式对应于地址小端方式对应于地址小端方式对应于地址A+3=0 x87,A+2=0 x65,A+1=0 x43,A=0A+3=0 x87,A+2=0 x65,A+1=0 x43,A=0 x21x21大端方式对应于地址大端方式对应于地址大端方式对应
50、于地址大端方式对应于地址 A=0 x87,A+1=0 x65,A+2=0 x43,A+3=0 xA=0 x87,A+1=0 x65,A+2=0 x43,A+3=0 x2121ByteA+3ByteA+2ByteA+1ByteABit31bit0字对齐与半字对齐字对齐与半字对齐n nARM状态,字地址的低两位状态,字地址的低两位bits1:0必须必须为为0b00,半字地址的最低位半字地址的最低位bit0为为0b0n nThumb状态,字地址最地位状态,字地址最地位bit0必须为必须为0b0n n如果写入如果写入PC的指令地址非对齐的指令地址非对齐ARMV3ARMV3及以下,忽略及以下,忽略及以下