嵌入式系统设计与实例开发第三章基于ARM的处理器体系结构主要内容•3.1ARM体系结构3.1.1ARM微处理器结构3.1.2ARM工作状态3.1.3ARM微处理器的寄存器组织3.1.4ARM微处理器的指令结构•3.2ARM9处理器简介3.2.1与ARM7处理器的比较3.2.2OMAP5912处理器简介ARM简介•ARM即AdvancedRISCMachines的缩写。•1985年4月26日,第一个ARM原型在英国剑桥的Acorn计算机有限公司诞生,由美国加州SanJoseVLSI技术公司制造。•20世纪80年代后期,ARM很快开发成Acorn的台式机产品,形成英国的计算机教育基础。•1990年成立了AdvancedRISCMachinesLimited。ARM简介•20世纪90年代,ARM32位嵌人式RISC(ReducedInstructionSetComputer)处理器扩展到世界范围,占据了低功耗、低成本和高性能的嵌入式系统应用领域的领先地位。•32位RISC处理器受到青睐,领先的是ARM嵌入式微处理器系列。•ARM公司虽然只成立10多年,但在1999年因移动电话火爆市场,其32位RISC处理器占市场份额超过了50%,2001年初,ARM公司的32位RISC处理器市场占有率超过了75%。ARM简介•ARM公司是知识产权供应商,是设计公司。由合作伙伴公司来生产各具特色的芯片。•ARM公司商业模式的强大之处在于其价格合理,全世界范围有超过100个合作伙伴--包括半导体工业的著名公司。ARM公司专注于设计,其内核耗电少、成本低、功能强,特有16/32位双指令集。ARM已成为移动通信、手持计算、多媒体数字消费等嵌入式解决方案的RISC标准。3.1ARM体系结构•3.1.1ARM微处理器结构•1.RISC设计思想传统的复杂指令集计算机(ComplexInstructionSetComputer,CISC)结构有其固有的缺点,即随着计算机技术的发展而不断引入新的复杂的指令集,为支持这些新增的指令,计算机的体系结构会越来越复杂。3.1.1ARM微处理器结构•1.RISC设计思想1979年美国加州大学伯克利分校提出了RISC的概念。RISC并非只是简单地去减少指令。RISC是一种设计思想,其目标是设计出一套能在高时钟频率下单周期执行、简单而有效的指令集。RISC的设计重点在于降低由硬件执行的指令的复杂度,因为软件比硬件容易提供更大的灵活性和更高的智能。因此,RICS设计对编译器有更高的要求。3.1.1ARM微处理器结构编译器编译器处理器处理器生成代码生成代码CISCRISC更高的复杂性更高的复杂性CISC强调硬件的复杂性RISC注重编译器的复杂性CISC与RISC的不同RISC和CISC之间的主要区别指标RISCCISC指令集一个周期执行一条指令,通过简单指令的组合实现复杂操作;指令长度固定指令长度不固定,执行需要多个周期流水线流水线每周期前进一步指令的执行需要调用微代码的一个微程序寄存器更多通用寄存器用于特定目的的专用寄存器Load/Store结构独立的Load和Store指令完成数据在寄存器和外部存储器之间的传输处理器能够直接处理存储器中的数据RISC的4个设计准则•(1)指令集RISC处理器减少了指令种类。RISC的指令种类只提供简单的操作,使一个周期就可以执行一条指令。编译器或者程序员通过几条简单指令的组合来实现一个复杂的操作(如除法操作)。RISC采用定长指令集,每条指令的长度都是固定的,允许流水线在当前指令译码阶段去取其下一条指令;而在CISC处理器中,指令长度通常不固定,执行也需要多个周期。RISC的4个设计准则•(2)流水线指令的处理过程被拆分成几个更小的、能够被流水线并行执行的单元。在理想情况下,流水线每周期前进一步,可获得最高的吞吐率;而CISC指令的执行需要调用微代码的一个微程序。RISC的4个设计准则•(3)寄存器RISC处理器拥有更多的通用寄存器。每个寄存器都可存放数据或地址。寄存器可为所有的数据操作提供快速的局部存储访问;而CISC处理器都是用于特定目的的专用寄存器。RISC的4个设计准则•(4)Load/Store结构处理器只处理寄存器中的数据。独立的load和store指令用来完成数据在寄存器和外部存储器之间的传送。因为访问存储器很耗时,所以把存储器访问和数据处理分开。这样有一个好处,就是可反复地使用保存在寄存器中的数据,而避免多次访问存储器,从而达到提高程序执行性能的目的。3.1.1ARM微处理器结构•2.ARM设计思想为了使ARM指令集能够更好地满足嵌入式应用的需要,ARM指令集和单纯的RISC定义有以下几个方面的不同:一些特定的指令周期数可变内嵌桶形移位器产生了更为复杂的指令Thumb16位指令集条件执行3.1.1ARM微处理器结构•3.ARM微处理器系列分类及ARM体系的变种当前应用较为广泛的ARM微处理器核有ARM7、ARM9、ARM9E、ARM10E产品系列,每个系列都提供了一套特定的性能来满足设计者对功耗、性能和体积的需求。在ARM体系中增加的某些特定功能称为ARM体系的某种变种(variant)。ARM体系的变种•(1)Thumb指令集(T变种)Thumb指令集是将ARM指令集的一个子集重新编码而形成的一个指令集。ARM指令长度为32位,Thumb指令长度为16位。与ARM指令集相比,Thumb指令集具有一定的局限性,即完成相同的操作,Thumb指令通常需要更多的指令。因此,在对系统运行时间要求苛刻的应用场合,ARM指令集更为适合。Thumb指令集没有包含进行异常处理时需要的一些指令,所以在异常中断的低级处理时,还是需要使用ARM指令。这种限制决定了Thumb指令需要和ARM指令配合使用。ARM体系的变种•(2)长乘法指令(M变种)M变种增加了两条用于进行长乘法操作的ARM指令:其中一条指令用于实现32位整数乘以32位整数,生成64位整数的长乘法操作,另一条指令用于实现32位整数乘以32位整数,然后再加上32位整数,生成64位整数的长乘加操作。在需要这种长乘法的应用场合,使用M变种比较合适。然而,在有些应用场合中,乘法操作的性能并不重要,在系统实现时就不适合增加M变种的功能。ARM体系的变种•(3)增强型DSP指令(E变种)E变种包含了一些附加的指令,这些指令用于增强处理器对一些典型DSP算法的处理性能,主要包括:几条新的实现16位数据乘法和乘加操作的指令,实现饱和的带符号数的加减法操作的指令。所谓饱和的带符号数的加减法操作是在加减法操作溢出时,结果并不进行卷绕(wrappingaround),而是使用最大的正数或最小的负数来表示。进行双字数据操作的指令,包括双字读取指令LDRD、双字写入指令STRD和协处理器的寄存器传输指令MCRR/MRRC、Cache预取指令PLD。ARM体系的变种•(4)Java加速器Jazelle(J变种)ARM的Jazelle技术将Java的优势和先进的32位RISC芯片完美地结合在一起。Jazelle技术提供了Java加速功能,可以得到比普通Java虚拟机高得多的性能。与普通的Java虚拟机相比,Jazelle使Java代码运行速度提高了3倍,而功耗降低了80%。Jazelle技术使得程序员可以在一个单独的处理器上同时运行Java应用程序、已经建立好的操作系统、中间件以及其他应用程序。与使用协处理器和双处理器相比,使用单独的处理器可以在提供高性能的同时,保证低功耗和低成本。ARM体系的变种•(5)ARM媒体功能扩展(SIMD变种)ARM媒体功能扩展为嵌入式应用系统提供了高性能的音频/视频处理技术。这就要求处理器能够提供很强的数字信号处理能力,同时还必须保持低功耗,以延长电池的使用时间。ARM的SIMD媒体功能扩展为这些应用需求提供了解决方案。SIMD变种的主要特点是:可以同时进行两个16位操作数或者4个8位操作数的运算,提供了小数算术运算,用户可以定义饱和运算的模式,两套16位操作数的乘加/乘减运算,32位乘以32位的小数MAC,同时8位/16位选择操作。3.1.1ARM微处理器结构•4.ARM体系结构的命名规则ARM产品通常以ARM[x][y][z][T][D][M][I][E][J][F][-S]形式出现。后缀变量含义x系统,如ARM7、ARM9y存储管理/保护单元zCacheTThumb16位译码器(T变种)DJTAG调试器M长乘法指令(M变种)I嵌入式跟踪宏单元E增强型DSP指令(E变种)JJava加速器Jazelle(J变种)F向量浮点单元S可综合版本ARM体系结构命名规则附加要点•ARM7TDMI之后的所有ARM内核,即使“ARM”标志后没有包含“TDMI”字符,也都默认包含了TDMI的功能特性;•JTAG是由IEEE1149.1标准测试访问端口和边界扫描结构来描述的,是ARM用来发送和接收处理器内核与测试仪器之间调试信息的一系列协议;•嵌入式ICE宏单元是建立在处理器内部用来设置断点和观察点的调试硬件;•可综合,意味着处理器内核是以源代码形式提供的。这种源代码形式可被编译成一种易于EDA工具使用的形式。3.1.1ARM微处理器结构•5.ARM微处理器系列ARM微处理器目前包括下面几个系列,以及其它厂商基于ARM体系结构的处理器,除了具有ARM体系结构的共同特点以外,每一个系列的ARM微处理器都有各自的特点和应用领域。•ARM7系列ARM9系列•ARM9E系列ARM10E系列•ARM11系列SecurCore系列•Inter的XscaleInter的StrongARMARM微处理器系列•(1)ARM7微处理器系列ARM7内核采用冯·诺伊曼体系结构,数据和指令使用同一条总线。内核有一条3级流水线,执行ARMv4指令集。ARM7系列微处理器主要用于对功耗和成本要求比较苛刻的消费类产品。其最高主频可达130MIPS。ARM7系列微处理器的主要应用领域为:工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。ARM微处理器系列•ARM7微处理器系列具有如下特点:•具有嵌入式ICE-RT逻辑,调试开发方便;•极低的功耗,适合对功耗要求较高的应用;•能够提供0.9MIPS/MHz的三级流水线结构;•代码密度高并兼容16位的Thumb指令集;•对操作系统的支持广泛,包括WindowsCE、Linux、PalmOS等;•指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代;•主频最高可达130MIPS,高速的运算处理能力能胜任绝大多数的复杂应用。ARM微处理器系列•(2)ARM9微处理器系列ARM9系列采用5级指令流水线,能够运行在比ARM7更高的时钟频率上,改善了处理器的整体性能。ARM9的存储器系统根据哈佛体系结构重新设计,区分了数据总线和指令总线。ARM9系列的第一个处理器是ARM920T,包含独立的数据指令Cache和MMU。该处理器能够被用在要求有虚拟存储器支持的操作系统上。ARM9系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。ARM微处理器系列•(3)ARM9E微处理器系列ARM9E系列微处理器是ARM9内核带有E变种的一个可综合版本,使用单一的处理器内核提供了微控制器、DSP、Java应用系统的解决方案,极大地减少了芯片的面积和系统的复杂程度。ARM9E系列微处理器提供了增强的DSP处理能力,很适合于那些需要同时使用DSP和微控制器的应用场合。ARM9E系列微处理器包含ARM926EJ-S、ARM946E-S和ARM966E-S三种类型。ARM微处理器系列•(4)ARM10E微处理器系列ARM10E系列微处理器具有高性能、低功耗的特点,由于采用了新的体系结构,采用6级整数流水线,与同等的ARM9器件相比较,在同样的时钟频率下,性能提高了近50%。同时,ARM10E系列微处理器采用了两种先进的节能方式,使其功耗