第2章ARM处理器和架构提纲1、ARM处理器概述2、ARM9处理器架构3、ARM9处理器内存管理4、ARM9异常处理ARM是什么?1、ARM处理器概述ARM公司简介ARM公司总部位于英国剑桥,全称AdvancedRISC(ReducedInstructionSetComputer即精简指令集计算机)MachinesARM公司是apple、nokia、Acorn、VLSI、Technology等公司的合资企业。独特的知识产权(IP)授权方式,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片。超过200家合作伙伴,包括Intel,IBM,SONY,NEC等ARM设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。ARM产品简介ARM处理器•ARM处理采用RISC架构,具有高性能、低成本、低耗能、合作伙伴众多等特点•应用范围极广,包括消费电子、工业控制、通信系统、网络系统、军工项目ARM系列产品•ARM7系列•ARM9系列•ARM9E系列•ARM10E系列•ARM11系列•SecurCore系列•Intel的StrongARM•Intel的Xscale1.2ARM指令集体系结构版本(1)ARM主要采用32位指令集,占据了32位RISC处理器80%的市场。2011年,ARM的客户报告了79亿ARM处理器出货量,占有95%的智能手机,90%的硬盘驱动器,40%的数字电视和机顶盒,15%的单片机,和20%的移动电脑。从成立至今,总共推出了7个版本的体系结构,不仅引入了Thumb16位指令集,而且在性能上也不断提高。1.2ARM指令集体系结构版本(2)V1版本该版本并未商业化,而只在原型机ARM1上出现过寻址空间为64M只提供基本的数据处理指令,甚至不包含乘法指令提供基于字节、字、多字的Load/store存储器访问指令子程序调用指令(BL)和链接指令完成操作系统调用的软件中断指令SWI1.2ARM指令集体系结构版本V2版本是V1版本的扩展,它还包括一个扩展版本v2a。ARM2采用了v2版本,而ARM3则是v2a架构。支持乘法指令和乘加指令支持协处理器操作指令对于快中断(FIQ)提供影子寄存器支持支持SWP和SWPB指令1.2ARM指令集体系结构版本(3)V3版本是ARM被大规模使用的开始地址空间扩展到32位,而且向前兼容(除了v3g子版本以外)26位的地址空间增加CPSR(CurrentProgramStatusRegister,当前程序状态寄存器)和SPSR(SavedProgramStatusRegister,备份程序状态寄存器)增加了两条指令:MRS指令和MSR指令增加了中止(Abort)和未定义两种异常模式改进了从异常返回的指令1.2ARM指令集体系结构版本(4)V4版本是被最广泛应用的ARM体系结构ARM7、ARM9、StrongARM都采用v4架构引入了Thumb状态增加了系统模式增加了对有符号、无符号半字和有符号字节的存/取指令1.2ARM指令集体系结构版本(5)v5版本ARM9E、ARM10和XScale都采用v5架构。提高了ARM指令集和Thumb指令集的混合使用的效率增加了前导零计数(CLZ)指令引入了软件断点(BKPT)指令增加了数字信号处理指令(v5TE版)1.2ARM指令集体系结构版本(6)v6版本ARM11处理器采用V6版本具备高性能定点DSP功能引入全新Jazelle技术支持SIMD(SingleInstructionMultipleData,单指令流多数据流)技术v6支持多微处理器内核1.2ARM指令集体系结构版本(7)v7版本是目前为止ARM处理器体系结构的最高版本定义了三大系列:“A”,”R”,”M”采用了Thunmb-2技术采用NEON技术,即进阶SIMD延伸集支持改良的浮点运算支持改良的运行环境,以迎合不断增加的JIT(JustInTime)和DAC(DynamicAdaptiveCompilation)技术的使用1.2ARM指令集体系结构版本(8)•2011年10月ARM终于宣布了自己的第一个64位指令集处理器架构“ARMv8”,引入了一个全新指令集A64。目前的ARMv7架构的主要特性都将在ARMv8架构中得以保留或进一步拓展•iphone5s采用A7处理器,A7是全球首款被用于智能手机上的ARM架构64位处理器1.3ARM微处理器系列ARM微处理器以及授权厂商基于ARM体系结构设计的微处理器现在主要有下面几个系列:ARM7系列,ARM9系列,ARM9E系列,ARM10E系列,ARM11系列,Cortex系列,SecurCore系列,StrongARM系列和XScale系列。其中ARM7、ARM9、ARM9E和ARM10为4个通用处理器系列,每一个系列都提供一套相对独特的性能来满足不同应用领域的需求。SecurCore系列专门为安全要求较高的应用设计ARM系列微处理器核特点ARM7ARM7TDMI:整数处理核ARM7TDMI处理器的可综合版本;ARM720T:带MMU的处理器核心,支持操作系统;ARM7EJ-S:带有DSP和JazelleTM技术,能够实现Java加速功能冯诺伊曼体系结构;3级流水线成熟的大批量的低功耗的32位RISC处理器,适用于价位低、功耗低的消费类应用。支持16位Thumb指令集典型处理速度为0.9MIPS/MHz,常见的系统主时钟为20MHz到133MHz指令系统与ARM9系列、ARM9E系列和ARM10系列兼容主频最高可达到130MHzARM9ARM920T:带有独立的16KB数据和指令Cache;ARM922T:带有独立的8位KB数据和指令Cache;ARM940T–包括更小数据和指令Cache和一个MPU•5级流水线可在0.18µm、0.15µm和0.13µm工艺的硅芯片上实现。支持数据Cache和指令Cache增加对32位ARM指令集的支持提供全性能的MMU(MemoryManagementUnit),支持WindowsCE、Linux、PalmOS等多种主流嵌入式操作系统典型处理速度为1.1MIPS/MHzARM9EARM926EJ-S:Jazelle技术,有MMU,可配置的数据和指令Cache,TCM接口;ARM946E-S:可配置的数据和指令Cache及TCM;ARM966E-S:针对要求高性能和低功耗的可预测的指令执行时间的硬实时应用设计ARM968E-S:最小、功耗最小的ARM9E系列处理器,针对嵌入式实时应用设计;5级流水线ARM9E是针对微控制器、DSP和Java的单处理器解决方案;ARMJazelle技术提供8倍的Java加速性能(ARM926EJ-S);可在0.18µm,0.15µm,0.13µm工艺的硅芯片上实现。使用单一的处理器内核,减少了芯片的面积和系统的复杂程度,在0.13µm工艺下最高性能可达到300MIPS(Dhrystone2.1测试标准);支持32位ARM指令集和16位Thumb指令集支持VFP9浮点处理协处理器增强的DSP处理能力,很适合于那些需要同时使用DSP和微控制器的应用场合ARM10EARM1020E:带DSP指令集,在片调试功能,独立的32KB数据和指令Cache,MMU支持;ARM1022E:与ARM1020E相同,只是独立的数据和指令Cache变为16KB;ARM1026EJ-S:同时具有MPU和MMU,可综合版本;6级流水线;对于3D图形运算和实时控制采用VFP协处理器,浮点运算性能最高可达650MFLOPS;优化的缓存结构提高了处理器访问低速存储器的性能;可在0.18µm,0.15µm,0.13µm工艺的硅芯片上实现,在0.13µm工艺下最高性能可达到430MIPS典型处理速度为1.25MIPS/MHz采用了两种先进的节能方式ARM11ARM11MPCore:可综合的多处理器核,1至4个处理器可配置;ARM1136J(F)-S:可配置的数据和指令Cache,可提供1.9位的MPEG4编码加速功能;ARM1156T2(F)-S:带集成浮点协处理器,带内存保护单元MPU;ARM1176JZ(F)-S:带针对CPU和系统安全架构扩展的TrustZone技术。8级流水线增强的Thumb、Jazelle、DSP扩展支持在0.13µm工艺下最高可达到550MHz支持多媒体指令允许用户在向要求授权时选择是否包括浮点处理器内核媒体处理能力强,功耗低,特别适合用于无线和消费类电子产品高数据吞吐量和高性能适合网络应用高实时性,能够满足高端的嵌入式实时应用系统SecurCoreSC100:第一个32位安全处理器;、SC110:在SC100上增加密钥协处理器;SC200:带Jazelle技术的高级安全处理器;SC210:在SC200上增加密钥协处理器SecurCore是专门为智能卡、安全IC提供的32位安全处理器,为电子商务、银行、网络、移动多媒体、公共交通提供安全解决方案;体积小、功耗低,代码压缩密度高;为快速增长的Java卡平台提供Java加速功能;提供了完善的32位RISC技术的安全解决方案带有灵活的保护单元,以确保操作系统和应用数据的安全采用软内核技术,防止外部对其进行扫描探测可集成用户自己的安全特性和其他协处理器CortexCortex-A:面向应用的微处理器,针对复杂操作系统和应用程序设计;Cortex-R:针对实时系统的嵌入式处理器;Cortex-M:针对成本敏感应用优化的深度嵌入式处理器;2004年发布,提供增强的媒体和数字处理能力,增加了系统性能;支持ARM、Thumb、Thumb-2指令集;Thumb-2指令集提供了更高的代码存储密度,进一步降低成本;分为三个系列:Cortex-A、Cortex-R和Cortex-MCortex-A面向高性能应用,它具有长达13级的流水线,并且可以支持1-4个核Cortex-R面向具有高实时性要求的应用,通常应用于专用集成电路(ASIC),仍然采用8级流水线Cortex-M是全球微控制器的标准,面向对能耗和价格有较高要求的用户,采用低延迟的3级流水线Intel系列StrongARM:ARMv4体系XScale:ARMv5TE体系,增加MMX指令StrongARM主要应用于手持设备和PDA,5级流水线,具有独立的数据和指令Cache,不支持Thumb指令集,目前已停产;由DEC公司设计的,后来在1997年卖给了Intel公司主要有四个型号:SA-110,SA-1100,SA-1110和SA-1500XScale是目前Intel公司主推的高性能嵌入式处理器,分通用处理器、网络处理器和I/O处理器三类。被广泛应用于智能手机、PDA领域。全性能、高性价比、低功耗的处理器支持16位的Thumb指令和DSP指令集1.3ARM微处理器系列x86架构与ARM架构对比(1)X86ARM体系结构CISCRISC代表公司Intel、AMDNvidia、高通、三星、TI、Marvell、MTK、苹果寄存器X86指令集只有8个通用寄存器4个数据寄存器(EAX、EBX、ECX和EDX),2个变址和指针寄存器(ESI和EDI),2个指针寄存器(ESP和EBP)6个段寄存器(ES、CS、SS、DS、FS和GS),1个指令指针寄存器(EIP),1个标志寄存器(EFlags)37个32位寄存器,其中31个通用寄存器,6个状态寄存器x86架构与ARM架构对比(2)X86ARM指令格式X86指令的长度是不定的,而且有几种不同的格式,结果造成X86CPU的解码工作非常复杂每条指令的长度都是相同的内存访问X86指令可访问内存地址使用LOAD/STORE模式,只有LOAD和STORE指令才能从内存中读取数据到寄存器,所有其他指令只对寄存器中的操作数计算指令集庞大的指令集精简的指令集成本高低功耗高低x86架构与ARM架构对比(3)X86ARM扩展部件的限制X86指令对于各种扩展部件的