第2章--多核ARM体系结构.ppt_第1页
第2章--多核ARM体系结构.ppt_第2页
第2章--多核ARM体系结构.ppt_第3页
第2章--多核ARM体系结构.ppt_第4页
第2章--多核ARM体系结构.ppt_第5页
免费预览已结束,剩余54页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章多核ARM体系结构,目录,2.1微处理器的体系结构基础2.2ARM处理器体系结构2.3Cortex-A9处理器体系结构,2.1微处理器的体系结构基础,一、经典ARM处理器体系结构,1.1硬件基础,1、冯诺依曼体系结构模型,冯诺依曼体系的特点,1)数据与指令都存储在存储器中2)被大多数计算机所采用3)ARM7冯诺依曼体系,2、哈佛体系结构,哈佛体系结构的特点,1)程序存储器与数据存储器分开2)提供了较大的数存储器带宽3)适合于数字信号处理4)大多数DSP都是哈佛结构5)ARM9是哈佛结构,3、CISC:复杂指令集(ComplexInstructionSetComputer)具有大量的指令和寻址方式8/2原则:80%的程序只使用20%的指令大多数程序只使用少量的指令就能够运行。,4、RISC:精简指令集(ReducedInstructionSetComputer)在通道中只包含最有用的指令确保数据通道快速执行每一条指令使CPU硬件结构设计变得更为简单,为增加处理器指令流的速度,ARM7系列使用3级流水线.允许多个操作同时处理,而非顺序执行。,PC指向正被取指的指令,而非正在执行的指令,5、流水线技术:几个指令可以并行执行提高了CPU的运行效率内部信息流要求通畅流动,6、超标量执行,超标量(superscalar)CPU采用多条流水线结构。超标量CPU架构是指在一颗处理器内核中实行了指令级并行的一类并行运算,如图2-4所示。这种技术能够在相同的CPU主频下实现更高的CPU吞吐率(throughput)。,7、高速缓存(CACHE),当CPU处理数据时,它会先到Cache中去寻找,如果数据因之前的操作已经读取而被暂存其中,就不需要再从随机存取存储器(Mainmemory)中读取数据由于CPU的运行速度一般比主内存的读取速度快,主存储器周期(访问主存储器所需要的时间)为数个时钟周期。因此若要访问主内存的话,就必须等待数个CPU周期从而造成浪费。,8、总线和总线桥,32位多AHB总线矩阵,9、存储器系统,RAM:随机存取存储器SRAM:静态随机存储器DRAM:动态随机存储器,1)SRAM比DRAM快2)SRAM比DRAM耗电多3)DRAM存储密度比SRAM高得多4)DRAM需要周期性刷新ROM:只读存储器FLASH:闪存,10.乱序执行,乱序执行(out-of-orderexecution):是指CPU允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术。这样将根据个电路单元的状态和各指令能否提前执行的具体情况分析后,将能提前执行的指令立即发送给相应电路单元执行,在这期间不按规定顺序执行指令,然后由重新排列单元将各执行单元结果按指令顺序重新排列。,11.分支预测,(1)静态分支预测最简单的静态分支预测方法就是任选一条分支。这样平均命中率为50%。更精确的办法是根据原先运行的结果进行统计从而尝试预测分支是否会跳转。任何一种分支预测策略的效果都取决于该策略本身的精确度和条件分支的频率。(2)动态分支预测动态分支预测是近来的处理器已经尝试采用的的技术。最简单的动态分支预测策略是分支预测缓冲区(BranchPredictionBuff)或分支历史表(branchhistorytable)。,2.2ARM处理器体系结构,现代ARM处理器体系结构,ARM体系结构支持跨跃多个性能点的实现,并已在许多细分市场中成为主导的体系结构。ARM体系结构支持非常广泛的性能点,因而可以利用最新的微体系结构技术获得极小的ARM处理器实现和极有效的高级设计实现。实现规模、性能和低功耗是ARM体系结构的关键特性。已经开发了体系结构扩展,从而为Java加速(Jazelle)、安全性(TrustZone)、SIMD和高级SIMD(NEON)技术提供支持。ARMv8-A体系结构增加了密码扩展作为可选功能。,ARM处理器体系结构,1.Thumb,Thumb可向设计人员提供:卓越的代码密度,可实现最小的系统内存大小和最低的成本。在8位或16位总线上的8位或16位内存中实现32位性能,从而降低系统成本。设计人员可以同时使用16位Thumb和32位ARM指令集,这样,他们就可以灵活地根据应用需求在子例程级别上增强性能或调整代码大小。ThumbISA受ARM生态系统的广泛支持,包括完善的Windows软件开发环境以及开发和评估卡。,2.Thumb-2,Thumb-2指令集在原有Thumb指令的基础上做了如下的扩充:新的Thumb-2指令集现在可以实现所有的功能,这样就不需要在ARM/Thumb状态之间反复切换,代码密度和性能得到的显着的提高。,增加了一些新的16位Thumb指令来改进程序的执行流程;增加了一些新的32位Thumb指令以实现一些ARM指令的专有功能,32位的ARM指令也得到了扩充;增加了一些新的指令来改善代码性能和数据处理的效率,给Thumb指令集增加32位指令,就解决了之前Thumb指令集不能访问协处理器、特权指令和特殊功能指令的局限。,新的Thumb-2技术可以带来很多好处:,可以实现ARM指令的所有功能;增加了12条新指令,可以改进代码性能和代码密度之间的平衡;代码性能达到了纯ARM代码性能的98%;相对ARM代码,Thumb-2代码的大小仅有其74%;代码密度比现有的Thumb指令集更高;代码大小平均降低5%;代码速度平均提高2-3%。,1、ARMJazelle技术,用于加速执行环境的ARMJazelle技术可向ARMConnectedCommunity提供高质量的一流ARM体系结构解决方案,该解决方案是高性能、低功耗和低成本的完美组合。Jazelle技术是ARM提供的组合型硬件和软件解决方案。ARMJazelle技术软件是功能丰富的多任务Java虚拟机(JVM),经过高度优化,可利用许多ARM处理器内核中提供的Jazelle技术体系结构扩展。,高性能,JazelleDBX(DirectBytecodeeXecution,直接字节码执行)广泛用于为移动设备和其他消费类设备提供高性能Java,同时不会影响内存消耗、电池寿命或用户体验。JazelleRCT(RuntimeCompilationTarget,运行时编译目标)可显著降低与AOT和JIT编译关联的代码膨胀,从而使AOT技术能够应用于大众市场设备。,对于Java平台,开发人员可以选择:,对资源受限设备单独实现JazelleDBX,在这些设备中,编译器的可用内存或JIT编译时间开销平均值AOT或JIT不适合。在支持JazelleDBX和JazelleRCT的中型平台上,同时使用这两种解决方案(其中JazelleDBX针对解释的Java执行,JazelleRCT针对对用户体验问题(如启动时间)敏感的平台上的选择性AOT)。,JazelleRCT,将JazelleRCT用于JIT和AOT,以及使用JazelleDBX减少对用户体验问题(如启动时间)敏感的平台上有关JIT的启动时间和用户体验问题。在高端平台上,将JazelleRCT单独用于JIT和AOT(因为平台可能以GHz的频率运行),这样会减少启动时间等问题。,JIT与AOT,JIT:Justintime,在运行是动态编译,可以只编译那些经常使用的方法,提高效率。缺点是编译时自身需要耗资源AOT:Aheadoftime.运行前编译好,缺点是全编译了,不用的也编译了,解释时耗时间,JazelleDBX,在已有处理器架构上加硬件扩展可以同样支持直接运行Java字节码,而且保持了操作系统和应用程序的兼容性。架构扩展方案相当于为处理器附加了一套指令集,重用已有的处理器资源不会增加额外的硬件成本和功耗。带扩展的内核能够同时执行Java字节码及本地码,开发者可以充分利用已有的操作系统、应用程序开发技术,在Java程序可移植性和性能之间取得很好的平衡。JazelleDBX是一种硬件架构扩展技术,为ARM处理器引入了第三套指令集Java字节码。新指令集建立了一种新的状态,处理器在此状态下处理Java字节码取指、译码和维护Java操作数栈。,JazelleRCT,Java应用高速技术“JazelleRCT(RuntimeCompilerTarget,运行时编译器目标)”。此前该公司已经推出了解释器高速技术“JazelleDBX(DirectBytecodeeXecution,直接字节码执行)”。而此次则开发出了面向JIT(JustInTimeCompilation,即时编译)、DAC(DynamicAdaptiveCompilation,动态适应编译)和AOT(AheadOfTimeCompilation,预编译)等Java的各种编译器的技术。通过使用JazelleRCT最多可以把存储代码所需的内存容量-占用空间(Footprint)减至原来的1/3。,2、ARMTrustZone技术,TrustZone(TM)技术出现在ARMv6KZ以及较晚期的应用核心架构中。它提供了一种低成本的方案,针对系统单芯片(SoC)内加入专属的安全核心,由硬件建构的存取控制方式支援两颗虚拟的处理器。这个方式可使得应用程式核心能够在两个状态之间切换(通常改称为领域(worlds)以避免和其他功能领域的名称混淆),在此架构下可以避免资讯从较可信的核心领域泄漏至较不安全的领域。,TrustZone有两种工作模式,一种是正常模式(NormalWorld),可以执行富指令,称为REE环境(RichExecutionEnvironment),另一种模式就是安全模式(secureworld),只能执行受信指令,成为TEE环境(TrustedExecutionEnvironment)。,3、SIMD,SIMD(SingleInstructionMultipleData,单指令多数据流)能够复制多个操作数,并把它们打包在大型寄存器的一组指令集,例:3DNow!、SSE。以同步方式,在同一时间内执行同一条指令。,SIMD在性能上的优势,以加法指令为例,单指令单数据(SISD)的CPU对加法指令译码后,执行部件先访问内存,取得第一个操作数;之后再一次访问内存,取得第二个操作数;随后才能进行求和运算。而在SIMD型的CPU中,指令译码后几个执行部件同时访问内存,一次性获得所有操作数进行运算。这个特点使SIMD特别适合于多媒体应用等数据密集型运算。如:AMD公司引以为豪的3DNOW!技术实质就是SIMD,这使K6-2、雷鸟、毒龙处理器在音频解码、视频回放、3D游戏等应用中显示出优异的性能。,4、NEON,ARMNEON通用SIMD引擎可有效处理当前和将来的多媒体格式,从而改善用户体验。NEON技术可加速多媒体和信号处理算法(如视频编码/解码、2D/3D图形、游戏、音频和语音处理、图像处理技术、电话和声音合成),其性能至少为ARMv5性能的3倍,为ARMv6SIMD性能的2倍。NEON技术是通过清晰方式构建的,并可无缝用于其本身的独立流水线和寄存器文件。NEON技术是ARMCortex-A系列处理器的128位SIMD(单指令多数据)体系结构扩展,旨在为消费性多媒体应用提供灵活强大的加速功能,从而明显改善用户体验。它具有32个寄存器,64位宽(是16个寄存器,128位宽的双倍视图)。,简单来讲,NEON其实是一种SIMD(SingleInstructionMultipleData单指令流多数据流)技术。而SIMD,是指采用一个控制器来控制多个处理单元(处理器/处理微元),同时对一组数据中的每一个分别执行相同的操作从而实现空间上的并行性的技术。如下图所示。,NEON支持8-,16-,32-和64-bit的整数及单精度浮点数据,并以SIMD的方式运算,运行图形和游戏处理中关于语音视频的部分。在NEON中,SIMD最高可支持到同时16个运算。这个时候是以8bit的数据运算,而NEON的位宽是128bit,即为16个运算。另外一个NEON显著的特点是是他和VFP单元共用自己的寄存器堆,而与主核的寄存器堆区别开。一些数据显示:NEON可以在10MHz的CPU上运行MP3音效解码,且可以运行13MHz频率以下的GSMAMR(AdaptiveMulti-Rate)语音编码。,ARMv8-A,ARMv8-A将64位体系结构支持引入ARM体系结构中,其中包括:64位通用寄存器、SP(堆栈指针)和PC(程序计数器)64位数据处理和扩展的虚拟寻址两种主要执行状态:AArch64-64位执行状态,包括该状态的异常模型、内存模型、程序员模型和指令集支持AArch32-32位执行状态,包括该状态的异常模型、内存模型、程序员模型和指令集支持,这些执行状态支持三个主要指令集:,A32(或ARM):32位固定长度指令集,通过不同体系结构变体增强部分32位体系结构执行环境现在称为AArch32T32(Thumb),以16位固定长度指令集的形式引入,随后在引入Thumb-2技术时增强为16位和32位混合长度指令集。部分32位体系结构执行环境现在称为AArch32A64:提供与ARM和Thumb指令集类似功能的32位固定长度指令集。随ARMv8-A一起引入,它是一种AArch64指令集。,ARMISA,ARMISA不断改进,以满足前沿应用程序开发人员日益增长的要求,同时保留了必要的向后兼容性,以保护软件开发投资。在ARMv8-A中,对A32和T32进行了一些增补,以保持与A64指令集一致。,A32,ARM(通常称为A32)是一种固定长度(32位)的指令集。它是ARMv4T、ARMv5TEJ和ARMv6体系结构中使用的基础32位ISA。在这些体系结构中,该指令集用于需要高性能的应用领域,或用于处理硬件异常,如中断和处理器启动。对于性能关键应用和旧代码,Cortex体系结构的Cortex-A和Cortex-R配置文件也支持ARMISA。其多数功能都包括在与Thumb-2技术一起引入的Thumb指令集中。Thumb(T32)从改进的代码密度中获益。ARM指令的长度为32位,需要4字节边界对齐。,T32,成本敏感型嵌入式控制应用领域(例如手机、磁盘驱动器、调制解调器和寻呼机)一直在寻求通过某些方式在兼顾内存占用空间的前提下以最低成本实现32位性能和地址空间。Thumb(T32)指令集提供已压缩至16位宽操作码的、最常用的32位ARM指令的子集。在执行时,这些16位指令实时、透明地解压缩为完整32位ARM指令,且无性能损失。,ARM2012路线图,ARM公布2012年的一份产品规划路线图,展示了至少两款高性能处理器、一款低功耗微控制器和两款图形核心,代号上大都以天神、巨人来称呼。高端处理器核心我们会看到“Atlas”(希腊擎天神阿特拉斯)、“Apollo”(希腊太阳神阿波罗),二者都会基于新的ARMv8-A架构,支持64位计算,制造工艺上很可能会采用2xnm,而应用领域从服务器、桌面到平板机、智能手机全部不落。,授权,ARM表示,NVIDIA、AppliedMicro等四家厂商已经签下了这两个新核心的授权,而且还有两个高级合作伙伴。ARM没有透露Atlas、Apollo之间的具体差异,但很可能会像现在的CortexA15、A7那样以一大一小方式进行组合(BigLittle),普通的日常操作使用A7同时关闭A15,而在繁重计算任务下转向A15并关闭A7。,2.3Cortex-A9处理器体系结构,2.3.1Cortex-A9内核结构,Cortex-A9是性能最高的ARM处理器,可实现受到广泛支持的ARMv7体系结构的丰富功能。Cortex-A9处理器的设计旨在打造最先进的、高效率的、长度动态可变的、多指令执行超标量体系结构,提供采用乱序猜测方式执行的8阶段管道处理器,凭借范围广泛的消费类、网络、企业和移动应用中的前沿产品所需的功能,它可以提供史无前例的高性能和高能效。Cortex-A9微体系结构既可用于可伸缩的多核处理器(Cortex-A9MPCore多核处理器),也可用于更传统的处理器(Cortex-A9单核处理器)。可伸缩的多核处理器和单核处理器支持16、32或64KB4路关联的L1高速缓存配置,对于可选的L2高速缓存控制器,最多支持8MB的L2高速缓存配置,它们具有极高的灵活性,均适用于特定应用领域和市场。,2.3.2Cortex-A9单核处理器,Cortex-A9处理器提供了处理的高性能和高能效,从而使其成为需要在低功耗、成本敏感、基于单核处理器的设备中提供高性能的所有设计的理想解决方案。使用便利的可合成流和IP成品,Cortex-A9处理器可为基于ARM11处理器的现有设计提供理想的升级途径,这类设计需要在相似的硅成本和电源预算基础上提供更高的性能和更高级别的能效,同时使软件环境保持兼容。Cortex-A9单核处理器为独立指令和数据事务提供了双重、低延迟、Harvard64位AMBA3AXI主接口,在内存的缓存区域之间复制数据时,它能够维持每五个处理器周期执行四次双字写入。,2.3.3Cortex-A9MPCore多核处理器,借助Cortex-A9MPCore处理器的定向实现,移动设备的最高性能还可在现在的解决方案的基础上不断提高,具体方法是:利用设计灵活性和ARMMPCore技术提供的高级功率管理技术,在散热受限以及移动电源预算紧张的情况下维持运行。使用可伸缩的最高性能,该处理器可超过现今类似的高性能嵌入式设备的性能,并可在拓宽市场的基础上进行稳定的软件投资。,1、探听控制单元(SCU),探听控制单元(SCU)是ARM的多核技术信息处理中心,并负责管理的互连,仲裁,通信,缓存-2高速缓存和系统内存的传输,高速缓存一致性和其他所有的MPCore技术的处理器的多核功能。,2、AMBA3.0AXI总线,随着SoC设计复杂性的增加和CPU处理能力的提升,总线结构会成为系统性能的瓶颈。在多处理器SoC设计中,这种瓶颈现象更加明显。综合考虑成本、功耗和面积,SoC设计中选用何种高效的总线结构是比较困难的,同时总线结构对系统所要求达到的性能又是非常重要的。随着下一代高性能SoC设计的需要,比如多处理器核、多重存储器结构、DMA控制器等,AMBA需要新一代灵活性更强的总线结构,这就是AMBA3.0AXI总线,AMBA3.0AXI总线结构如图2-14所示。AXI是1999年发布的AMBA2.0的继承和提升,是ARM公司与其他的芯片制造商包括高通、东芝和爱立信等公司共同研发的。新协议的发布,为新一代高性能SoC的设计铺平了道路。,2.3.4Cortex-A9主要功能,1、TrustZone技术确保安全应用的可靠实现,适合从数字版权管理到电子支付等应用。获得技术和行业合作伙伴的广泛支持2、Thumb-2技术可为传统ARM代码提供最高性能,对于存储指令占用的内存,最多可节省30%的空间。3、JazelleRCT和DBX技术最多可使即时生产(JIT)和提前编译的字节码语言的代码大小缩小3倍,同时还支持Java指令的直接字节码执行,以便提高传统虚拟机的速度,4、优化的1级高速缓存性能和功率优化的L1高速缓存结合了最低访问延迟技术,可以在最大程度上提高性能和降低能耗。还为实现高速缓存一致性提供了增强处理器间通信的选项或支持富SMP功能操作系统的选项,以便简化多核软件开发5、可选的2级高速缓存控制器在高频率设计或需要降低与芯片外内存访问关联的能耗的设计中,最多可对8MB高速缓存内存提供低延迟、高带宽访问,6、先进的多核技术,(1)侦测控制单元SCU是ARM多核技术的中央智能单元,负责管理互连、仲裁、通信、高速缓存之间的传输和系统内存传输、高速缓存一致性以及支持所有多核技术的处理器的其他功能。Cortex-A9MPCore处理器也是首次向其他系统加速器和未经缓存的D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论