《ARM微处理器系列.ppt》由会员分享,可在线阅读,更多相关《ARM微处理器系列.ppt(79页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、嵌入式体系结构与应用嵌入式体系结构与应用第二章第二章-ARM-ARM处理器处理器了解了解ARMARM处理器处理器vARMARM指令集体系结构版本指令集体系结构版本vARMARM微处理器系列微处理器系列vARMARM微处理器后缀含义微处理器后缀含义ARMARM处理器处理器vARMARM简介简介vARMARM内核系列介绍内核系列介绍vARMARM内核相关技术简介内核相关技术简介附注附注- - ARMARM技术名词链接技术名词链接nRISCRISC 、 流水线流水线nThumbThumb指令集指令集 nJTAGJTAGnJazelleJazellenMMUMMU、MPUMPUnCacheCache、
2、TCMTCMnAMBAAMBA、AHBAHB、APBAPBARMARM简介简介nARMARM- -A Advanced dvanced R RISC ISC MMachinesachinesn19851985年年4 4月月2626日日 诞生于剑桥诞生于剑桥 AcornAcorn公司公司, ,名字源于名字源于A Acorn corn R Risc isc MMachineachinen19901990年年1111月月 ARMARM公司成立公司成立nARMARM公司为公司为IPIP供应商,本身供应商,本身不生产芯片不生产芯片ARMARM简介简介nARMARM处理器具有处理器具有 体积小、体积小、
3、低功耗、低成本、高性能的特点。低功耗、低成本、高性能的特点。n20112011年,年,ARMARM在移动设备市场的占有率已超过在移动设备市场的占有率已超过90%90%。n20112011年,年,ARMARM v8v8架构诞生,支持架构诞生,支持6464位指令集。位指令集。n20142014年,年,AMDAMD 基于基于64-bit ARM Cortex-A5764-bit ARM Cortex-A57内核的服内核的服务器处理器务器处理器Opteron A1100Opteron A1100诞生!诞生!ARMARM与与RISCRISC技术技术nARMARM- -并非纯并非纯RISCRISC机机n其
4、其RISCRISC特性:特性: 流水线,定长流水线,定长3232位指令,大量通用寄存器,位指令,大量通用寄存器,Load/StoreLoad/Store结构,硬布线结构,硬布线CUCU;n非非RISCRISC特性:特性: 不是所有指令都是单周期,例如多寄存器加载不是所有指令都是单周期,例如多寄存器加载/ /存储指令。存储指令。 内嵌桶形移位寄存器,可在算术内嵌桶形移位寄存器,可在算术/ /逻辑指令中预先对操作数逻辑指令中预先对操作数进行移位操作。进行移位操作。 支持双指令集,支持双指令集,3232位位ARMARM和和1616位位ThumbThumb。 条件执行指令;条件执行指令;RISCRIS
5、C机特点:机特点:指令简单,定长,单周期指令简单,定长,单周期流水线技术流水线技术大量通用寄存器大量通用寄存器LOAD/STORELOAD/STORE指令结构指令结构执行效率执行效率传输效率传输效率兼顾代码量与执行效率兼顾代码量与执行效率执行效率执行效率ARMARM指令集指令集 体系结构版本体系结构版本指令集指令集 版本版本内核实现范例内核实现范例V1ARM1ARM1V2ARM2ARM2、3 3V3ARM6ARM6、ARM7ARM7V4ARM7TDMIARM7TDMI、StrongARMStrongARM、ARM9TARM9TV5ARM9EARM9E、ARM10EARM10E、XScaleXS
6、caleV6ARM11ARM11V7CortexCortex系列系列V86464位处理器位处理器目前仍在使用的目前仍在使用的ARMARM架构版本架构版本ARMARM指令集版本指令集版本-V1-V1只在原型机只在原型机ARM1ARM1出现过。其基本性能如下:出现过。其基本性能如下:v2626位寻址空间,位寻址空间,64MB64MBv基本的数据处理指令(无乘法)基本的数据处理指令(无乘法)v字节、半字和字的字节、半字和字的Load /Store Load /Store 指令指令v转移指令,包括子程序调用及链接指令转移指令,包括子程序调用及链接指令v软件中断软件中断SWISWI指令(操作系统使用)指
7、令(操作系统使用)ARMARM指令集版本指令集版本-V2-V2ARM2ARM2和和ARM3ARM3架构采用的架构采用的V2,V2,对对V1V1进行了扩充进行了扩充增加了以下功能:增加了以下功能:v增加乘法和乘加指令增加乘法和乘加指令v片上片上CacheCachev支持协处理器支持协处理器CP15CP15操作指令操作指令v快速中断模式快速中断模式FIQFIQv原语操作原语操作-SWP/SWPB-SWP/SWPB的寄存器交换指令的寄存器交换指令ARMARM指令集版本指令集版本-V3-V3V3 V3 架构对架构对ARMARM体系结构作了较大的改动体系结构作了较大的改动: :v把把寻址空间增至寻址空间
8、增至3232位位(4GB)(4GB)v增加了当前程序状态寄存器增加了当前程序状态寄存器CPSRCPSR和存储程序状态和存储程序状态寄存器寄存器SPSRSPSR以便对异常的处理以便对异常的处理v支持支持MMU-MMU-存储器管理存储器管理v增加了增加了中止中止ABT ABT 和和 未定义未定义UDFUDF2 2种新的特权处理模种新的特权处理模式式ARMARM指令集版本指令集版本-V4-V4对对V3V3进行扩充,增加特性如下:进行扩充,增加特性如下:v符号化半字及符号化字节的存取指令符号化半字及符号化字节的存取指令vTHUMBTHUMBTMTM -35% -35% 代码压缩代码压缩vTHUMBTH
9、UMB与与ARMARM之间的切换指令之间的切换指令BXBXv完善了软件中断完善了软件中断SWISWI指令的功能指令的功能v处理器引进特权方式处理器引进特权方式- -系统系统SYSSYS模式模式v不再兼容不再兼容2626位体系结构,并规定了哪些指令将作为未位体系结构,并规定了哪些指令将作为未定义指令定义指令ARMARM v4T v4T指令集架构指令集架构ARM7ARM7系列系列ARM9ARM9系列系列ARM7TDMIARM7TDMIARM920TARM920TARMARM指令集版本指令集版本-V5-V5新增特性有:新增特性有:vARMARM状态和状态和ThumbThumb状态之间进行转换转移状态
10、之间进行转换转移BLXBLX指令指令v增强乘法指令和快速乘累加增强乘法指令和快速乘累加( (单周期完成单周期完成1616* *32b)32b)v支持数字信号处理支持数字信号处理DSPDSP类指令类指令-后缀后缀E EvJazelleJazelleTMTM- Java- Java性能优化,可提高性能优化,可提高8 8倍倍 - -后缀后缀J JARMv5EARM9EARM9E系列系列ARM10EARM10E系列系列Intel Intel XcaleXcaleARM926EJARM926EJARM966EJARM966EJARM1020EARM1020EARM1022EARM1022EPXA2xxP
11、XA2xxARMARM指令集版本指令集版本-V6-V6V6V6版新架构在低功耗的同时,面向消费类电子强版新架构在低功耗的同时,面向消费类电子强化了图形处理性能,追加有效进行多媒体处理化了图形处理性能,追加有效进行多媒体处理的的SIMDSIMD功能。新增功能:功能。新增功能:v8 8级流水线级流水线v增强的增强的CacheCache结构,支持实地址结构,支持实地址CacheCachevTrustZone TrustZone 硬件支持的安全技术硬件支持的安全技术vThumb-2Thumb-2指令集指令集- 16- 16位和位和3232位指令的混合指令集位指令的混合指令集vMediaMedia扩充扩
12、充- -音音/ /视频性能优化,可提高视频性能优化,可提高4 4倍倍vMultiCore MultiCore 更好的支持多核结构更好的支持多核结构全新全新ARMv7ARMv7架构,命名为架构,命名为Cortex,Cortex,针对不同的应用,针对不同的应用,分为三个系列:分为三个系列:vCortexCortex-A-A (ApplicationApplication) 用于高性能的开放应用平台,如平板电脑、智能手机用于高性能的开放应用平台,如平板电脑、智能手机vCortexCortex-R-R(Real-time)(Real-time) 用于高端、对实时性有要求的嵌入式系统用于高端、对实时性有
13、要求的嵌入式系统vCortexCortex-M-M (MCUMCU) 用于对成本敏感、深度嵌入的嵌入式系统用于对成本敏感、深度嵌入的嵌入式系统ARMARM指令集版本指令集版本-V7-V7Cortex-A8、A9、A15Cortex-R4Cortex-M3嵌入式处理器类型嵌入式处理器类型典型应用典型应用应用处理器应用处理器PADPAD、智能手机、智能手机实时控制处理器实时控制处理器汽车汽车ABSABS系统,交换机,航空系统系统,交换机,航空系统微处理器微处理器智能家电控制器智能家电控制器ARMARM指令集版本指令集版本-V8-V8V8V8版版-64-64位新架构,主要特点:位新架构,主要特点:v
14、6464位通用寄存器、位通用寄存器、SP(SP(栈顶指针栈顶指针) )和和PCPC(程序计数器)(程序计数器)v6464位数据处理和虚拟存储器寻址位数据处理和虚拟存储器寻址v支持两种状态支持两种状态AArch64AArch64和和AArch32,AArch32,可在可在A32A32指令集模指令集模型和型和A64A64指令集模型之间切换,以保持兼容性指令集模型之间切换,以保持兼容性vA64A64是是AArch64AArch64执行状态的全新执行状态的全新3232位固定长度指令集位固定长度指令集vA64A64除支持除支持6464位操作数外,还增加了一些向量处理、位操作数外,还增加了一些向量处理、浮
15、点处理指令。浮点处理指令。Cortex-A53、A57ARMARM指令集版本指令集版本-V8-V8ARMARM内核内核-架构架构版本版本-技术技术示意示意图图ARMARM微处理器系列微处理器系列vARM7ARM7系列系列vARM9ARM9系列系列vARM9EARM9E系列系列vARM10EARM10E系列系列vARM11ARM11系列系列vSecur CoreSecur Core系列系列vXscaleXscale架构系列架构系列vCortex-A/M/RCortex-A/M/RARMARM提供的提供的IPIPARMARM微处理器内核微处理器内核ARMARM微处理器核微处理器核ARMARM微处理
16、器系列微处理器系列ARMARM公司出售的公司出售的IPIP包括两种:包括两种:nARMARM内核内核 ARM7TDMI,ARM9TDMI,AM9E-S,ARM10TDMInARMARM核核 =ARM内核+MMU+AMBA+Cache+协处理器 ARM7x0T,ARM9x0T,ARM9x6E-S,ARM1020EARMARM处理器内核与核处理器内核与核ARM7ARM7内核内核-ARM7TDMI-ARM7TDMIARM7ARM7核核-ARM720T-ARM720TARMARM内核后缀命名含义与扩展支持内核后缀命名含义与扩展支持ARM xyzTDMIEJF-Sxyz xyz 是数字编号是数字编号 x
17、: x: 系列编号,系列编号,ARM7/ARM9/ARM11ARM7/ARM9/ARM11 y: y: 内部存储管理内部存储管理MMUMMU和保护单元和保护单元MPUMPU z: z: 片内高速缓存情况片内高速缓存情况常见处理器举例常见处理器举例ARM920ARM1020ARM1156ARMARM内核后缀命名含义内核后缀命名含义ARM xyzTDMIEJF-ST -T -支持支持16bit 16bit ThumbThumb指令集指令集D -D -片上调试片上调试 JTAG JTAG M -M -支持快速乘法支持快速乘法I I 嵌入式跟踪宏单元嵌入式跟踪宏单元 Embedded ICEEmbed
18、ded ICEE - E - 增强型增强型DSPDSP指令集指令集J J -JavaJava硬件加速器硬件加速器-Jazelle-JazelleF - F - 向量浮点运算单元向量浮点运算单元S S 提供可综合的提供可综合的VHDLVHDL文件文件Z Z 安全处理技术安全处理技术 TrustZoneTrustZone常见处理器举例常见处理器举例ARM926EJ-SARM1176JZ-SARMv4ARMv4ARMv5ARMv5ARMv6ARMv6ARMARM处理器命名后缀说明处理器命名后缀说明T-Thumb 16-Thumb 16位指令集位指令集与与ARMARM指令集相比:指令集相比:v完成相同
19、的操作,完成相同的操作,ThumbThumb指令需要更多指令需要更多v指令密度比指令密度比ARMARM指令高指令高v没有异常处理,出现异常后,返回没有异常处理,出现异常后,返回ARMARM指令指令 状态。状态。vARMARM指令和指令和ThumbThumb配合使用。配合使用。需要时间多需要时间多需要空间少需要空间少代表性架构版本及内核代表性架构版本及内核ARM v4T 以后,均有经典内核:ARM920T(v4T) 处理器: Samsung S3c2410/2440ARM(cpsr T = 0)Thumb (cpsr T =1)指令长度指令长度3232位位1616位位内核指令内核指令5858条条
20、3030条条条件执行条件执行大多数指令大多数指令只有分支指令只有分支指令数据处理指数据处理指令令访问桶型移位器和访问桶型移位器和ALUALU独立的桶型移位器和独立的桶型移位器和ALUALU指令指令程序状态寄程序状态寄存器存器特权模式下可以读特权模式下可以读/ /写写不能直接访问不能直接访问寄存器使用寄存器使用1515个通用寄存器个通用寄存器+PC+PC8 8个通用寄存器个通用寄存器+PC+PCARMARM指令集与指令集与ThumbThumb指令集比较指令集比较D- Debug- Debug 片上调试片上调试JTAGJTAGvJTAG JTAG 边界扫描测试接口标准边界扫描测试接口标准v传输协议
21、和接口传输协议和接口v芯片对外的芯片对外的JTAGJTAG信号信号5 5个:个:TMSTMS(测试模式选择)、(测试模式选择)、TCK(TCK(时钟时钟) )、TDI(TDI(数据输入数据输入) )、TDO(TDO(数据输出信号数据输出信号) )、nTRSTnTRST( (复位复位) )v能够直接向能够直接向ARMARM内部总线写入数据内部总线写入数据v调试调试ARMARM,向宿主机返回当前处理器的内部总线、,向宿主机返回当前处理器的内部总线、寄存器的状态寄存器的状态 ARMARM处理器命名后缀说明处理器命名后缀说明ARMARM处理器命名后缀说明处理器命名后缀说明M M- -长乘法指令长乘法指
22、令ARMARM指令集指令集V3V3版以后加入了两条指令版以后加入了两条指令vMUL-32MUL-32位位 3232位位 长乘指令长乘指令vMLA-32MLA-32位位 3232位位+32+32位位 长乘加指令长乘加指令长乘法指令在长乘法指令在V4V4版以后成为系统标准部分版以后成为系统标准部分代表性架构版本及内核代表性架构版本及内核ARM v4T 以后,均有经典内核:ARM7TDMI(v4T) 处理器:Samsung S3c44B0 说明:说明:ARM7TDMIARM7TDMI后的内核都具备后的内核都具备TDMITDMI四种特性,无论是否标明四种特性,无论是否标明 E-Enhanced DSP
23、 指令集v实现饱和的带符号数的加/减法操作指令v双字数据操作指令 LDRD-LDRD-双字取指令双字取指令 SDTD-SDTD-双字存指令双字存指令 MCRR/MRRC-MCRR/MRRC-协处理器寄存器传输指令协处理器寄存器传输指令 PLD-CachePLD-Cache预取指令预取指令 ARMARM处理器命名后缀说明处理器命名后缀说明代表性架构版本及内核代表性架构版本及内核ARM v5E 以后出现经典内核:Intel Xscale 处理器: PXA2xxARMARM处理器命名后缀说明处理器命名后缀说明J J- Jazelle- Jazelle硬件硬件JavaJava加速器加速器v从硬件的角度
24、,能够解释执行部分从硬件的角度,能够解释执行部分JavaJava字节流形式字节流形式代码代码v要支持完整要支持完整J2MEJ2ME,需要外加一个,需要外加一个JavaJava虚拟机(虚拟机(JVMJVM)的修订版本(的修订版本(SUNSUN 授权)授权)v 提高提高J2MEJ2ME程序(如:游戏)的执行速度。程序(如:游戏)的执行速度。代表性架构版本及内核代表性架构版本及内核ARM v5E 以后出新的扩展功能经典内核:ARM1176JZF-S 处理器:Samsung S3c6410 ARMARM处理器系列处理器系列-ARM7-ARM7ARM7TMDIARM7TMDI是目前仍在使用的是目前仍在使
25、用的3232位位ARMARM嵌入式处理器之一,嵌入式处理器之一,属低端属低端ARMARM处理器内核。主要性能:工艺处理器内核。主要性能:工艺0.13um0.13um(新近)、电(新近)、电压压3.3V3.3V(内部(内部1.2v1.2v)、时钟)、时钟066MHZ066MHZ、功耗、功耗87mW87mW。ARMv5TEJ架构架构ARMv4T架构架构s3c44B0ARMARM处理器系列处理器系列-ARM7-ARM7ARM7ARM7系列是系列是3232位嵌入式位嵌入式RISCRISC处理器,属低端处理器,属低端ARMARM处处理器内核,理器内核,具有以下特点具有以下特点:v具有嵌入式具有嵌入式IC
26、E-RTICE-RT逻辑,调试方便逻辑,调试方便v极低的功耗(极低的功耗(100mW100mW左右),适合便携式产品。左右),适合便携式产品。v3 3级流水线级流水线结构结构v兼容兼容1616位位ThumbThumb指令集指令集v指令系统与指令系统与ARM9ARM9、ARM10EARM10E系列兼容系列兼容v主频通常为主频通常为20100MHZ20100MHZ,最高可达,最高可达130Mhz130MhzARMARM技术小注技术小注- -流水线流水线 ARM7ARM7系列三级流水线:取指、译码、执行系列三级流水线:取指、译码、执行处理一条指令处理一条指令取指取指译码译码执行执行取指取指译码译码执
27、行执行取指取指译码译码执行执行取指取指译码译码执行执行时间时间( (时钟周期时钟周期) )指令指令1 1T2T2T3T3T4T4T1T1指令指令2 2指令指令3 3 ARM9ARM9系列五级流水线:系列五级流水线:取指、译码、执行取指、译码、执行 + +存储访问存储访问+ +回写回写ARMARM处理器系列处理器系列-ARM9-ARM9(ARMv4TARMv4T)ARM9ARM9系列在相同的工艺下,其性能是系列在相同的工艺下,其性能是ARM7ARM7的的2 2倍,倍,具有以下特点:具有以下特点:v5 5级级整数流水线,工作频率一般为整数流水线,工作频率一般为200MHz200MHz左右;左右;v
28、支持支持3232位位ARMARM指令集和指令集和1616位位ThumbThumb指令集;指令集;v支持支持3232位的高速位的高速AMBAAMBA总线总线接口;接口;v全性能的全性能的MMUMMUv哈佛结构哈佛结构, ,分离的数据分离的数据CacheCache和指令和指令CacheCache,具有更高的指令,具有更高的指令和数据处理能力。和数据处理能力。 MPUARMARM技术小注技术小注 - - AMBAAMBAAMBA(AdvancedMicrocontrollerBusArchitecture)提供一种特殊的机制,可将RISC处理器集成在其它IP芯核和外设中。2.0版AMBA标准定义了三
29、组总线:nAHB(AMBAAHB(AMBA高性能总线高性能总线) ) 应用于高性能、高时钟频率的系统模块,它构成了高性能的系统骨干总线nAPB(AMBAAPB(AMBA外设总线外设总线) ) 是本地二级总线,通过桥和AHB相连。它主要是为了满足不需要高性能流水线接口或不需要高带宽接口的设备的互连。AMBAAMBA总线结构示意总线结构示意S3c2410S3c2410处理器处理器结构框图结构框图ARMARM技术小注技术小注 存储管理存储管理ARM内核支持的硬件存储管理方式有三种情况:a. a.无硬件保护无硬件保护,主要面向MCU类型应用b. MPU b. MPU 存储器保护单元存储器保护单元 对内
30、存划分区域,规定不同的访问限制,当违反限制时,产生异对内存划分区域,规定不同的访问限制,当违反限制时,产生异常。常。 根据权限规定进行保护,不支持存储映射机制。根据权限规定进行保护,不支持存储映射机制。c. MMU c. MMU 存储器管理单元存储器管理单元 硬件支持虚拟地址与物理地址的映射转换,并进行访问权限硬件支持虚拟地址与物理地址的映射转换,并进行访问权限管理。复杂嵌入式操作系统,如管理。复杂嵌入式操作系统,如LinuxLinux必须要求必须要求MMUMMU的支持。的支持。ARMARM处理器系列处理器系列-ARM9E-ARM9E(ARMv5ARMv5)ARM9EARM9E系列为综合型处理
31、器,使用单一的处理器内核系列为综合型处理器,使用单一的处理器内核提供了微处理器、提供了微处理器、DSPDSP、JavaJava应用系统的解决方案。应用系统的解决方案。与与ARM9TARM9T系列相比,增加以下功能:系列相比,增加以下功能:v支持支持DSPDSP指令集,适合于需要高速数字信号处理的场合;指令集,适合于需要高速数字信号处理的场合;v最高主频可达最高主频可达300MHz300MHz;v支持支持VFP9VFP9浮点处理协处理器浮点处理协处理器ARMARM技术小注技术小注 CacheCache与与TCMTCMARM内核支持的硬件存储管理方式有三种情况:vCache Cache 高速缓存高
32、速缓存 介于CPU和主存储器之间的一种高速缓冲存储器,硬件实现各种机制,对CPU和程序员透明。 带来的问题:带来的问题:程序的调入时间程序的调入时间/ /是否调入不可知,数据的准确回是否调入不可知,数据的准确回写时间不可知,难以满足实时系统要求。写时间不可知,难以满足实时系统要求。vTCMTCM 紧密耦合存储器紧密耦合存储器 高速SRAM,属于内存的一部分,位置像Cache一样,集成到处理器中,既可以加速存储访问,又能够准确获知存储操作的时间,用于满足实时性要求高、速度要求快的应用。ARM10EARM10E系列微处理器由于采用了新的体系结构,在系列微处理器由于采用了新的体系结构,在相同的工艺下
33、其性能是相同的工艺下其性能是ARM9ARM9的的2 2倍。倍。具有以下特点:具有以下特点:v支持支持DSPDSP指令集,适合于需要高速数字信号处理的场合;指令集,适合于需要高速数字信号处理的场合;v6 6级级整数流水线;工作频率一般为整数流水线;工作频率一般为400MHz400MHz左右;左右;支持支持3232位位ARMARM指令集和指令集和1616位位ThumbThumb指令集;指令集;v支持支持6464位的高速位的高速AMBA AHBAMBA AHB总线接口和内部总线;总线接口和内部总线;v支持支持VFPVFP浮点处理协处理器;浮点处理协处理器;v内嵌并行读内嵌并行读/ /写操作部件;写操
34、作部件;全性能的全性能的MMUMMU支持数据支持数据CacheCache和指令和指令CacheCache,具有更高的指令和数据处理能力。,具有更高的指令和数据处理能力。 ARMARM处理器系列处理器系列-ARM10E-ARM10E (ARMv5E(ARMv5E架构架构) )ARMARM处理器系列处理器系列-ARM11-ARM11(ARMv6ARMv6)ARM11ARM11系列。系列。v在在0.13um0.13um工艺下,工艺下, ARM11TARM11T的运行频率高达的运行频率高达5001000Mhz5001000MhzvARM11ARM11包含一个包含一个6464位端口、位端口、4 4种状态
35、的跳转目标地址缓存种状态的跳转目标地址缓存v新的新的ARM11ARM11支持支持SIMDSIMD指令,可使某些算法速度提高指令,可使某些算法速度提高2323倍倍S3c6410ARM1176JZF-s内核内核ARMARM处理器系列处理器系列-SecurCore-SecurCoreSecurCoreSecurCore系列处理器主要系列处理器主要针对安全要求高的设备,为智能针对安全要求高的设备,为智能卡及其他安全卡及其他安全ICIC开发商开发商提供独特的提供独特的3232位系统设计,具有特位系统设计,具有特定的反伪造方法,有助于防止对硬件和软件的盗版。定的反伪造方法,有助于防止对硬件和软件的盗版。
36、ARMARM处理器系列处理器系列-StrongARM-StrongARM与与XscaleXscaleStrong ARM-Strong ARM- ARMv4架构,Intel,5级流水线XsacleXsacle是Intel推出的StrongARM后续产品,基于ARMv5TE所设计的处理器,具有协处理器接口,可以直接扩展DSP处理器,是目前常见的一款ARM处理器。已于已于20062006年,出年,出售给售给MarvellMarvell公司公司ARM9ARM9处理器编程结构处理器编程结构n哈佛结构哈佛结构n流水线技术流水线技术nARMARM与与ThumbThumbn存储器模式存储器模式n运行模式运行
37、模式n内部寄存器组内部寄存器组n异常处理异常处理2410处理器结构框图1 1、哈佛结构、哈佛结构2 2、MMUMMU3 3、AMBAAMBA架构架构4 4、集成外设、集成外设冯冯. .诺伊曼与哈佛结构诺伊曼与哈佛结构- -冯冯. .诺伊曼结构诺伊曼结构数据和程序存数据和程序存放到同一个存放到同一个存储器中,使用储器中,使用同一存储器端同一存储器端口进行数据和口进行数据和指令的读取。指令的读取。ARM7ARM7采用采用冯冯. .诺伊曼与哈佛结构诺伊曼与哈佛结构- -哈佛结构哈佛结构数据和程序存数据和程序存放到两个独立放到两个独立的存储器中,的存储器中,使用两个不同使用两个不同的存储器端口的存储器
38、端口进行数据和指进行数据和指令的读取。令的读取。ARM9ARM9采用采用流水线结构流水线结构ARM7ARM7采用的三级流水线结构采用的三级流水线结构译码译码取指取指执行执行add译码译码取指取指执行执行sub译码译码取指取指执行执行cmp时间时间AddSubCmp流水线结构流水线结构nARM9ARM9采用五级流水线结构采用五级流水线结构nI-CacheI-Cache和和D-CacheD-Cache分离的哈佛结构分离的哈佛结构n增加数据写回的专门数据通路和寄存器增加数据写回的专门数据通路和寄存器减少冲突减少冲突执行周期:执行周期:移位移位/ /运算;运算;计算物理地址计算物理地址访问存储器周期:
39、访问存储器周期:读读/ /写存储器;写存储器;或缓冲一拍或缓冲一拍nThumbThumb指令为指令为1616位位,ARMARM指令为指令为3232位位。nThumbThumb指令为指令为二地址二地址,ARMARM指令一般为指令一般为三地址三地址。nThumbThumb指令集相比指令集相比ARMARM指令集,指令集,没有协处理器没有协处理器指指令,令,没有长乘和长乘加没有长乘和长乘加指令。指令。nThumbThumb指令除跳转指令外,指令除跳转指令外,不带条件码字段,不带条件码字段,ARMARM指令大多带有条件码字段。指令大多带有条件码字段。n指令执行时,由指令执行时,由CPSRCPSR的的T
40、T位位确定当前是否为确定当前是否为ThumbThumb指令。指令。ARMARM与与ThumbThumb指令集区别指令集区别ThumbThumb程序程序- CODE16 CODE16 CMP R0,#0 CMP R0,#0 BEQ next BEQ next MOV R1,#1 MOV R1,#1nextnext MOV R2,#2 MOV R2,#2ARMARM程序程序-CODE32CODE32CMP R0,#0CMP R0,#0MOVNE R1,#1MOVNE R1,#1MOVEQ R2,#2MOVEQ R2,#2ARMARM与与ThumbThumb工作状态工作状态nARMARM工作状态工作
41、状态-执行执行ARMARM指令指令nThumbThumb工作状态工作状态-执行执行ThumbThumb指令指令 工作状态切换:工作状态切换: 分为显式切换和隐式切换两种方式分为显式切换和隐式切换两种方式 执行执行BXBX或者或者BLXBLX指令指令 ThumbThumb状态下,发生异常,返回状态下,发生异常,返回ARMARM状态状态显式显式隐式隐式ARMARM状态状态ThumbThumb状态状态BX/BLX异常异常ARM9ARM9的存储器模式的存储器模式- -数据类型数据类型nARM9ARM9处理器对于字,半字,字节的长度定义处理器对于字,半字,字节的长度定义 由于由于ARM9ARM9为为32
42、32位处理器,存储字长为位处理器,存储字长为3232位。位。 字字-Word:32-Word:32位;位; 半字半字-HalfWord:16-HalfWord:16位;位; 字节字节-Byte:8-Byte:8位;位;n每连续的四个字节存放一个字每连续的四个字节存放一个字 边界对准问题边界对准问题端序问题端序问题边界对齐边界对齐-ARM920TARM920T强制强制边界对准边界对准目的:提高访存速度目的:提高访存速度数据:根据类型对准数据:根据类型对准指令:指令: ARMARM指令按指令按4 4字节对准字节对准ThumbThumb指令按指令按2 2字节对准字节对准 ARM9ARM9存储器模式存
43、储器模式ARM9ARM9支持两种存储端序,分别是:支持两种存储端序,分别是:n大端对齐(大端对齐(Big-Endian Big-Endian ) 构成一个字的四个字节,最构成一个字的四个字节,最高高字节存放在地址最字节存放在地址最低低的存储字节中,而最的存储字节中,而最低低字节存放在地址最字节存放在地址最高高的的存储字节中。存储字节中。n小端对齐(小端对齐(Little-Endian Little-Endian ) 构成一个字的四个字节,最构成一个字的四个字节,最高高字节存放在地址最字节存放在地址最高高的存储字节中,而最的存储字节中,而最低低字节存放在地址最字节存放在地址最低低的的存储字节中。
44、存储字节中。都是以最低地址作为都是以最低地址作为字字/ /半字的地址半字的地址ARM9ARM9存储器模式存储器模式ARM9ARM9支持两种存储端序,分别是:支持两种存储端序,分别是:n大端对齐(大端对齐(Big-Endian Big-Endian ) 构成一个字的四个字节,最构成一个字的四个字节,最高高字节存放在地址最字节存放在地址最低低的存储字节中,而最的存储字节中,而最低低字节存放在地址最字节存放在地址最高高的的存储字节中。存储字节中。n小端对齐(小端对齐(Little-Endian Little-Endian ) 构成一个字的四个字节,最构成一个字的四个字节,最高高字节存放在地址最字节存
45、放在地址最高高的存储字节中,而最的存储字节中,而最低低字节存放在地址最字节存放在地址最低低的的存储字节中。存储字节中。都是以最低地址作为都是以最低地址作为字字/ /半字的地址半字的地址端序影响端序影响- 12H12H34H34H56H56H78H78H最低地址最低地址最高地址最高地址0 x500000200 x50000023小端小端大端大端vv存(存(STRSTR)取()取(LDRLDR)指令的实际操作方式)指令的实际操作方式 eg. LDR R1,R0 eg. LDR R1,R0vv字节字节/ /半字操作的特殊功能寄存器的引用地址半字操作的特殊功能寄存器的引用地址 因边界对准,仍然占用因边
46、界对准,仍然占用4 4个字节地址个字节地址 引用习惯:引用低位引用习惯:引用低位 eg. eg.以操作单字节的以操作单字节的UARTUART发送数据寄存器发送数据寄存器UTXH0UTXH0为例为例ARM9ARM9存储器模式存储器模式端序控制端序控制- 920T 920T处理器处理器 内核内核BIGENDBIGEND信号电平状态决定:信号电平状态决定: 高电平高电平- - 采用大端对准采用大端对准 低电平低电平- -采用小端对准采用小端对准 通过协处理器通过协处理器CP15CP15的控制寄存器的控制寄存器C1C1进行配置:进行配置: C17 = 0 - C17 = 0 - 小端对准(默认)小端对
47、准(默认) = 1 - = 1 - 大端对准大端对准 ARM9ARM9存储器模式存储器模式- -示意图示意图大端对齐模式大端对齐模式最高字节最高字节最低字节最低字节 (0H) = 12345678H12H34H56H78HARM9ARM9存储器模式存储器模式- -示意图示意图小端对齐模式(常用)小端对齐模式(常用) (0H) = 12345678H最高字节最高字节最低字节最低字节78H56H34H12HARM9ARM9的的7 7种运行模式种运行模式v 正常模式正常模式v 异常模式异常模式 USR(User) 普通用户模式普通用户模式 SYS(System) 系统模式系统模式特权模式特权模式 F
48、IQ(Fast Interrupt Requst) 快速中断请求快速中断请求 IRQ( Interrupt Requst) 普通外部中断模式普通外部中断模式 ABT( Abort) 中止模式中止模式 UDF( Undefine) 未定义模式未定义模式 SVC( Supervisor) 管理模式管理模式特权模式下,可通过修改特权模式下,可通过修改CPSRCPSR的的MODEMODE位位切换模式切换模式特权模式特权模式ARMARM为各种异常模式提供独为各种异常模式提供独立的寄存器,方便异常处理立的寄存器,方便异常处理ARM9ARM9的的7 7种运行模式种运行模式异常模式异常模式 进入原因进入原因主
49、要目的主要目的FIQFIQ外部/设备快速快速中断请求请求处理IRQIRQ外部/设备普通普通中断请求请求处理ABTABT取指令或者数据过程中,MMU/MPU指示给定的地址无效地址无效存储器保护保护处理UDFUDF不属于不属于ARM/Thumb/ARM/Thumb/协处理器协处理器指令的指令进入流水线软件模拟模拟硬件协处理器SVCSVCSWISWI指令和复位(复位(ResetReset)操作系统的受保护模式5 5种异常模式对应种异常模式对应7 7种类型的异常事件种类型的异常事件ARM9ARM9的内部寄存器的内部寄存器v寄存器组织情况寄存器组织情况不分组寄存器不分组寄存器 R0-R7R0-R7、R1
50、5R15通用寄存器通用寄存器分组寄存器分组寄存器 R8-R14R8-R14- - 所有工作模式下,访问的都是同一物理寄存器所有工作模式下,访问的都是同一物理寄存器- R13R14- R13R14 有特殊用途有特殊用途- - 存在存在影子寄存器影子寄存器,不同工作模式下,使用的是,不同工作模式下,使用的是 不同的一组物理寄存器不同的一组物理寄存器状态寄存器状态寄存器CPSR CPSR 当前程序状态寄存器当前程序状态寄存器SPSR SPSR 异常模式下保存状态寄存器异常模式下保存状态寄存器(3131个)个)(6 6个)个)- R15- R15 是程序计数器是程序计数器PCPCARM9ARM9的内部