ARM体系结构授课人:***Email:*****课程性质:研究生专题时间:2014-2015春季学期3-5周课时数:10目录ARM处理器概述ARM体系结构概览ARM编程模型ARM指令集简介ARM异常处理ARM处理器概述嵌入式处理器概述ARM简介ARM的发展历程ARM处理器的技术优势ARM处理器的特点ARM的业务模型嵌入式处理器概述嵌入式处理器是嵌入式系统的核心,目前32位嵌入式处理器是市场的主流。32位嵌入式处理器市场,我们可以发现超过100家的芯片供应商和近30种指令体系结构。在1996年以前,最成功的嵌入式处理器是Motorola公司的68000系列。这时的嵌入式处理器市场还包括其它体系结构,如Intel公司的I960,Motorola公司的Coldfire,Sun公司的Sparc,以及嵌入式X86系列平台。当然,最引人注目的还是ARM公司的ARM系列、MIPS公司的MIPS系列,以及Hitachi公司的SuperH系列。其中ARM和MIPS都知识产权公司,把他们的微处理器IP技术授权给半导体厂商,由他们生产形态各异的微处理器芯片。嵌入式处理器评价指标1功耗一般的嵌入式处理器都有三种运行模式:运行模式(operational);待机模式(standbyorpowerdown);停机模式(andclock-off)。功耗的评测指标是MIPS/W。2代码存储密度CISC计算机具有较好的代码存储密度,而RISC计算机由于用子程序实现复杂指令功能、指令编码长度固定等原因,往往需要更多的指令来完成完成同样功能,从而增加了代码长度。Hitachi的SuperH采用了定长的16位指令。ARM则采用16位扩展的Thumb指令集,由片内的逻辑译码器将其实时解码为32位指令。MIPS则采用MIPS16方法来解决这个问题。影响代码密度的另一个因素是采用的C编译器。虽然ANSIC是当前嵌入式领域的标准编程语言,但面向对象的语言将逐渐成为主流。3集成度嵌入式处理器一般都为专用市场设计的,需要较高的集成度,但把所有的外围设备都集成到一个芯片上也不是一种办法,这会使芯片变复杂,引脚变密,增加系统设计和测试的复杂性。集成外围设备时要考虑简化系统设计,缩短整个系统的开发周期。4多媒体加速为实现多媒体加速功能,嵌入式处理器的设计者在传统指令集的基础上增加了JPEG和MPEG解压缩的离散余弦变换指令。还有厂商针对智能手机和移动通讯市场,将RISC和DSP集成在一个芯片上,如TI的OMAP。评估嵌入式系统处理器的主要指标MIPS测试基准。测试方法是计算在单位时间内各类指令的平均执行条数,单位:MIPS。Dhrystone。测试基准是一个简单的C语言程序,不适于嵌入式系统的测试,有许多漏洞。EEMBC。基于每秒钟算法执行的次数和编译代码大小的统计结果。ARM简介ARM全称为AdvancedRISCMachines,ARM公司是32位RISC结构IP(IntelligenceProperty)核提供商。ARM公司主要设计ARM系列RISC处理器内核,授权ARM内核给生产和销售半导体的合作伙伴,ARM公司不生产芯片。ARM公司另外也提供基于ARM架构的开发设计技术,包括软件工具,评估板,调试工具,应用软件,总线架构,外围设备单元,等等。ARM微处理器的应用领域工业控制领域无线通讯领域网络应用消费电子产品成像和安全产品ARM当前主要还是应用于消费类电子领域。到目前为止,基于ARM技术的处理器应用约占据了32位嵌入式微处理器75%以上的市场份额。全球80%的GSM/3G手机、99%的CDMA手机以及绝大多数PDA产品均采用ARM体系的嵌入式处理器,“掌上计算”相关的所有领域皆为其所主宰。ARM技术正在逐步渗入到我们生活的各个方面。ARM微处理器系列ARM7系列ARM9系列ARM9E系列ARM10E系列ARM11系列SecurCore系列Cortex系列Intel的StrongARM和Xscale系列ARM的发展历程ARM公司成立于1981年,最初为英国教育界设计小型机,取得成功后,开始设计自己的芯片,采用RISC体系结构,并命名为“AcornRISCMachine”。ARM公司的第一款芯片ARM1在1985年被设计出来,次年又设计了真正实用的ARM2。ARM2具有32位数据线、24位地址线和16个寄存器,这可能是当时最简化的32位微处理器,仅有30000个晶体管,而4年前Motorola的68000则有68000个晶体管。这种精简的结构使ARM2具有优异的低功耗特性,性能也超过了当时的Intel286(134K个晶体管)。1990年ARM公司另外组建了一个名为“AdvancedRISCMachines”的公司,专门从事ARM系列微处理器的开发。1991年ARM推出第一款RISC嵌入式微处理器核ARM6。1993年ARM推出ARM7核。1995年ARM的Thumb扩展指令集结构为16位系统增加了32位的性能,提供业界领先的代码密度。1998年ARM公司在伦敦证券交易所和NASDAQ上市。ARM7TDMI是ARM公司最成功的微处理器IP之一,至今在蜂窝电话领域已销售了数亿个微处理器。DEC公司获得ARM公司授权设计并生产了StrongARM系列微处理器,主频达到了233MHz,而功率不到1瓦。后来DEC公司StrongARM部门被Intel并购,Intel公司用StrongARM取代了他们境况不佳的i860和i960体系,并在此基础上开发了新的体系结构XScale系列。世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。目前,Motorola、IBM、TI、Philips、VLSI、Atmel和Samsung等几十家大公司都获得了ARM公司的授权,生产形态各异的ARM芯片。ARM处理器的技术优势1低能耗当初刚刚起步的嵌入式应用对运算性能并不苛求,但对芯片的功耗却相当敏感。而相对同时期的其他解决方案,ARM架构的能效比优势非常明显。2应用方案非常灵活由于ARM公司只是提供了一个高效精简的核心,各半导体厂商可根据自身需求进行应用设计,架构灵活简便、扩展力很强。如厂商可为多媒体信号处理加入相关的指令集,或为Java相关的应用加入高效执行单元,或增加3D图形协处理器等等。3得到大量的软件支持包括WindowsCE、Symbian和PalmOS在内的手持设备三种主要操作系统系统都是基于ARM架构所设计。目前,ARM已经牢牢占领手机、PDA以及其他的掌上电子产品市场,这些领域都非常注重软件兼容和设计延续性,ARM在这些领域会继续保持优势。ARM处理器的特点ARM处理器的3大特点如下:小体积、低功耗、成本低、高性能;16位/32位双指令集;全球众多的合作伙伴。当前ARM体系结构的扩充包括:Thumb:16位指令集,用以改善代码密度;DSP:用于DSP应用的算术运算指令集;Jazeller:允许直接执行Java代码的扩充。ARM处理器系列提供的解决方案包括:在无线、消费电子和图像应用方面的开放平台;存储、自动化、工业和网络应用的嵌入式实时系统;智能卡和SIM卡的安全应用。ARM的业务模型ARM创造和设计IP。Partner把ARMIP和其他IP集成进产品。OEM用来自ARMPartner的芯片设计制造最终用户产品。ARMIP:ARM6,ARM7,ARM9,ARM10,ARM11等。可扩展:Thumb,DSP,SIMD,Jazelle等。其它IP:UART,GPIO,memorycontrollers等。ARM体系结构概览ARM体系结构版本ARM体系结构更新体系结构变化ARM流水线ARM微处理器特性ARM9TDMIARM处理器结构综述ARM微处理器的选型ARM体系结构版本Version1在ARM1处理器中实现,没有商业化支持除乘法指令外基本数据处理字节、字以及多字load/store支持包括bl的跳转指令支持用于操作系统软件中断指令swi26bit地址总线Version2Multiply&Multiply-accumulate指令支持协处理器的指令为FIQ模式增加了2个备份寄存器swp和swpb指令支持线程同步26bit地址总线Version3推出32位寻址能力增加了当前程序状态寄存器CPSR增加了备份程序状态寄存器SPSR增加mrs和msr指令访问CPSR和SPSR增加终止模式和未定义异常模式T—16位压缩指令集M—增强型乘法器(32X32→64or32X32+64→64),产生全64位结果Version4增加了半字load和store指令增加了系统模式明确定义了可能引起未定义指令异常的指令不再与以前版本26位地址空间兼容Version5版本改进了ARM和Thumb之间的交互增加前导零计数指令CLZ(CountLeadingZeros),用于整数除法和中断优先级排队增加了软件断电指令为协处理器提供更多可选择指令更严格的定义了乘法指令对标志位的影响E---增强型DSP指令集,包括全部算法操作和16位乘法操作J---支持新的JAVA,提供字节代码执行的硬件和优化软件加速功能Version6增加了SIMD功能扩展,适用于电池供电高性能便携设备,针对多媒体应用优化,音视频处理性能提高了4倍。在ARM11处理器中适用ARM体系结构更新体系结构变化THUMB指令集(‘T’)THUMB指令集:32位ARM指令集的子集,按16位指令重新编码代码尺寸小(upto40%compression)简化设计161632-bitdata16A[1]MuxThumb指令解码MuxMuxT标志ARM指令解码阶段1阶段2D[31:0]0110FetchDecodeExecute长乘法指令(‘M’)32x32=64bit.提供全64位结果增强DSP指令集(‘E’)可附加在ARM中的DSP指令64bit转换在v5版本中第一次推出处理器内核的变化D:在片调试.处理器可响应调试暂停请求I:EmbeddedICE.支持片上断点调试ARMDSP指令集对于音频DSP应用提高70%的处理速度。Jazelle提供比基于软件的JAVA虚拟机(JVM)更高的性能与非JAVA加速核相比,提供8倍JAVA加速性能和降低80%的功耗。139字节码直接在硬件上执行,88个字节码在软件上执行。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核ARM流水线ARM流水线的级数ARM9流水线增加到5级,增加了存储器访问段和回写段,使ARM9处理能力平均可达到1.1Dhrystone,指令吞吐量增加了约13%。随着流水线深度(级数)的增加,每一段的工作量被削减了,这使得处理器可以工作在更高的频率,同时改进了性能。负面作用是增加了系统的延时,即内核在执行一条指令前,需要更多的周期来填充流水线。流水线级数的增加也意味着在某些段之间会产生数据相关。ARM流水线结构的发展ARM微处理器特性AMBA总线高级微控制器总线协议(AMBA-AdvancedMicrocontrollerBusArchitecture)是1996年提出的,被ARM处理器做为片上总线结构。最初的AMBA总线包含ARM系统总线(ASB)和ARM外设总线(APB)。ARM高性能总线(AHB)是新的标准