嵌入式系统及开发应用第二讲ARM体系结构Outline2、ARM体系结构3、ARM编程模型工作状态CPU工作模式寄存器组织异常内存与IO1、嵌入式微处理器主流的嵌入式微处理器•目前主流的嵌入式微处理器系列主要有ARM系列、MIPS系列、PowerPC系列、SuperH系列和X86系列等。•属于这些系列的嵌入式微处理器产品很多,有上千种以上。01002003004005001997199819992000ARMMIPSHitachiSHPowerPCUnits(millions)Source:AndrewAllison,InsideTheNewComputerIndustry,January2001EmbeddedRISCProcessorShipments32位浪潮的到来02,0004,0006,0008,00010,00012,00014,00016,000MillionsofUnits2000200120022003200420052006200720082009MPUMCU(excl.DSP)CoresSource:SemicoResearchCorp.andSIA/WSTS02,0004,0006,0008,00010,00012,000MillionsofUnits200020012002200320042005200620072008200932-Bit+16-Bit8-Bit4-BitTotalMCU,bySub-Category(excl.DSP)TotalEmbeddedControlMarketShipmentsbyType总共约26亿个32位处理器付运,占总数96亿的27%2005年ARM为17亿个,约占32位总量的70%左右X86系列主要由AMD,Intel,NS,ST等公司提供,如:Am186/88、Elan520、嵌入式K6,386EX、STPC等。主要应用在工业控制、通信等领域。国内由于对X86体系比较熟悉,得到广泛应用,特别是嵌入式PC的应用非常广泛。MPC/PPC系列Motorola推出的MPC系列,如MPC8XX。IBM推出PPC系列,如PPC4XX。主要应用在通信、消费电子及工业控制、军用装备等领域。MPC/PPC系列•IBMPowerPC集成10/100Mbps以太网控制器、串行和并行端口、内存控制器以及其它外设的高性能嵌入式处理器。•MotorolaMPC高度综合的SOC设备,它结合了PPC微处理器核心的功能、通信处理器和单硅成分内的显示控制器。这个设备可以在大量的电子应用中使用,特别是在低能源、便携式、图象捕捉和个人通信设备。技术0.25微米CMoSSA-12E282Dhrystone2.1MIPS@200MHz375Dhrystone2.1MIPS@266MHz200/100/66/50MHz266/133/66/66MHz晶体数量480万电源消耗1.1瓦信号I/O300温度范围-40到80度电源供应2.5V(逻辑电路),3.3V(I/O),支持5VI/Os456-Ball,EnhancedPBGA(35mmx35mm)性能频率(CPU/SDRAM/PCI/EBC)封装PowerPC405GP技术规格*Dhrystone是一个综合性的基准测试程序,它是为了测试编译器和CPU处理整数指令和控制功能的有效性,人为地选择一些“典型指令综合起来形成的测试程序。ARM系列•ARM(AdvancedRISCMachine)公司是一家专门从事芯片IP设计与授权业务的英国公司,其产品有ARM内核以及各类外围接口。•ARM内核是一种32位RISC微处理器,具有功耗低、性价比高、代码密度高等三大特色。•目前,90%的移动电话、大量的游戏机、手持PC和机顶盒等都已采用了ARM处理器,许多一流的芯片厂商都是ARM的授权用户(Licensee),如Intel、Samsung、TI、Motorola、ST等,ARM已成为业界公认的嵌入式微处理器标准。ARMFamilyARM7™FamilyARM9™FamilyARM10™FamilyARM11™Family150DMIPS300DMIPS500DMIPS1000DMIPSARMCortex™FamilyARM720TARM1136JARM1176JZARM1026EARM920T/ARM922TARM926EJCortexAApplicationProcessorARM7TDMIARM1156T2ARM1026EARM946ECortexREmbeddedRTControllerARM7TDMIARM966EARM968ECortexMMicro-controllerARMArchitecture当前的主流ARM处理器•ARM7–世界上最为广泛使用的CPU之一–100MHz•ARM9–100-300MHz1.7BARMPowredshipmentinyearof2005,31%isARM9based.ARM11芯片已经面世•ARM11–300-700+MHz–SIMD指令扩展支持更丰富的多媒体应用–40家授权芯片公司,一些已开始量产FOMAN902iFirstARM11basedphoneOMAP2420i.MX31/i.MX31L目前最快的嵌入式处理器•最快的处理器提供超过2000DMIPS的性能–运行于1GHz频率(90nmor65nm制造工艺)•功耗小于300mWARMCortexA8ApplicationProcessorCortex-M3实现$1ARM芯片•ARMCortexArchitecture•Thumb-2ISA•3StagePipeline•1.22DMIPS/MHz–30%overARM7TDMI•33Kgates–30%smallerthanARM7TDMI•LuminaryMicro的Stellaris系列MCU产品售价仅1美元ARMCortex-M3微控制器内核,专门针对MCU应用领域而设计,突出低成本、低功耗和高效率。领先嵌入式处理器技术发展讨论•多处理器技术–单处理器技术的性能提升终有一天会遭遇瓶颈–对嵌入式系统而言,尤其要考虑付出的代价–把任务进行并行分解是理想的选择–ARMMPcore可以集成1-4个ARM11处理器–关键是要提供给软件开发者一个友好的编程界面•64位处理器?–哪儿是系统性能瓶颈?–是需要64位地址还是64位数据?–嵌入式系统比PC有更好的条件来解决系统性能和带宽问题•PC系统在主板上,扩展系统带宽需要扩大每个组件的接口带宽•SoC只需扩展片内总线,非常容易实现–AMBA支持8-1024位总线宽度•许多SoC设计以及ARM处理器内部已经使用64位数据总线如何选择嵌入式微处理器•微处理器内核的选择–有无MMU–OS的考虑•系统的工作频率•芯片存储器的容量•片内外设的考虑–实际应用的要求–接口时序Outline2、ARM体系结构3、ARM编程模型工作状态CPU工作模式寄存器组织异常内存与IO1、嵌入式微处理器图2.1.1ARM体系结构方框图ARM处理器的分类•结构体系版本(Architecture)–ARMv4T–ARMv5TE–ARMv6–ARMCortex(v7)•ProcessorFamily–ARM7–ARM9–ARM10–ARM11–ARMCortex•按应用特征分类–应用处理器•ApplicationProcessor–实时控制处理器•Real-timeController–微控制器•Micro-controller特征:MMU,Cache最快频率、最高性能、合理功耗特征:MPU,Cache实时响应、合理性能、较低功耗特征:nosub-memorysystem一般性能、最低成本、极低功耗ARM体系结构的命名规则ARM{X}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}x——系列y——存储管理/保护单元z——CacheT——Thumb16位译码器D——JTAG调试器M——快速乘法器I——嵌入式跟踪宏单元E——增强DSP指令J——JazelleF——向量浮点单元S——可综合版本,以源代码形式提供的ARM核v4v5TESA110v4TARM720TARM7TDMI-SARM920TARM940TARM922TARM966E-SARM946E-SARM1020Ev5TEJ/Jazellev6/JazelleARM7EJ-SARM926EJ-SARM1026EJ-SARM11Micro-ArchitectureRoadmapofARMV4/V5/V6系列相应产品性能特点ARM7系列ARM7TDMI,ARM7TDMI-S,ARM720T,ARM7EJ三级流水性能:0.9MIPS/MHz,可达到130MIPs(Dhrystone2.1)ARM9系列ARM920T,ARM922T五级流水,性能:1.1MIPS/MHz,可达300MIPS(Dhrystone2.1),单32-bitAMBAbus接口,支持MMUARM9E系列ARM926EJ-S,RM946E-S,ARM966E-S,ARM968E-S,ARM996HS五级流水,支持DSP指令。性能:1.1MIPS/MHz,可达300MIPS(Dhrystone2.1),高性能AHB,软核(softIP)ARM10系列ARM1020E,ARM1022EARM1026EJ-S6级流水支持分支预测(branchprediction),支持DSP指令。性能:1.35MIPS/MHz,可达430+Dhrystone2.1MIPS,,可选支持高性能浮点操作,双64位总线接口,内部64位数据通路系列相应产品性能特点ARM11系列ARM11MPCore,ARM1136J(F)-S,ARM1156T2(F)-S,ARM1176JZ(F)-S8级流水线(9级ARM1156T2(F)-S),独立的load-store和arithmetic流水线,支持分支预测和返回栈(ReturnStack)。强大的ARMv6指令集,支持DSP,SIMD(SingleInstructionMultipleData)扩展,支持ARMTrustZone、Thumb-2核心技术。740Dhrystone2.1MIPS,低功耗0.6mW/MHz(0.13µm,1.2V)Cortex系列Cortex-A8,Cortex-M3,Cortex-R4Cortex-A系列:面向用于复杂OS和应用的应用处理器(applicationsprocessors),支持ARM,ThumbandThumb-2指令集。Cortex-R系列:面向嵌入式实时领域的嵌入式处理器,支持ARM,Thumb,和Thumb-2指令集。Cortex-M系列:面向深嵌入式价格敏感的嵌入式处理器,只支持Thumb-2指令集SecurCore系列SecurCoreSC100,SecurCoreSC200用于SmartCard和SecureIC的32-bit解决方案。支持ARM和Thumb指令集,软核。具有安全特征和低成本安全存储保护单元ARMV4•ARMV4是目前支持的最老的架构,是基于32-bit地址空间的32-bit指令集。ARMv4除了支持ARMv3的指令外还扩展了:支持halfword的存取支持byte和halfword的符号扩展读支持Thumb指令提供Thumb和Normal状态的转换指令进一步的明确了会引起Undefined异常的指令对以前的26bits体系结构的CPU不再兼容ARMv4T•ARMv4T增加了16-bitThumb指令集,这样使得编译器能产生紧凑代码(相对于32-bit代码,内存能节省到35%以上)并保持32-bit系统的好处。•Thumb在处理器中仍然要扩展为标准的32位ARM指令来运行。用户采用16位Thumb指令集最大的好处就是可以获得更高的代码密度和降低功耗。ARMV5TE•1999年推出ARMv5TE其增强了Thumb体系,增强的Thumb体系增加了一个新的指令