多核体系结构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多处理器的体系结构
前言
随着单个处理器的性能越来越逼近其物理极限,现在的处理器设计方向可以大致有两类,一是采用单片上集成多个核中或者采用一个核中多个物理线程的方法来达到并行的目的,从而提高性能;另一个方向是嵌入式应用,这有两种思路即将通用处理器扩展、改装成能适合各种嵌入式应用(90%的份额是DSP),或者将DSP扩展、改装以吸收部分通用微处理器的特点。事实上,在2000年,嵌入式芯片的销售量已经是通用PC微处理能的两倍多。但是从编译的角度来看DSP 由于其不规则、复杂的结构以及指令集结构,导致无法很好的利用编译器。当然,现在DSP的一个研究方向就是吸收通用微处理器的特点,以方便编译器的使用。
按键字多处理器体系结构 SMP SMT CMP
多发射处理器(Multi-issue processor)
多发射处理器包括超标量(Superscalar)和超长指令字(Very-Long Instruction Word,VLIW)处理器,其思想是允许在一个时钟周期内发射多条指令以减少处理器的平均CPI, 更好地利用处理器的功能部件。提高多发射处理器资源利用率的关键问题是:如何在程序中找到足够的指令级并行性。超标量处理器在每个时钟周期发射由硬件动态确定的指令,而VLIW处理器则在每个时钟周期发射出编译器确定的固定数目的操作。超标量处理器是依赖硬件来发现ILP,而VLIW处理器则依赖编译器来发现ILP。不管是超标量还是VLTW处理器都只能挖掘同一个线程的ILP来提高处理器资源利用率。当多发射处理器不能发现足够的指令来添满发射槽时,水平浪费(Horizontal Waste)就发生了。此外当资源冲突造成多发射处理器在接下来的时钟周期中不能发射指令,则造成了垂直浪费(Vertical Waste)。如图1所示为多发射处理器中可能造成的垂直浪费和水平浪费情况。图1中空白块表示该指令发射槽(Issue Slot)浪费了;不同的填充色表示不同线程。现代超标量处理器包括:DEC/Compaq 21162,PowerPC,MIPS R10000,Sun UltraSparc.HP PA-8000。现代VLIW处理器包括:Intel IA-64(Itanium),transmeta Crusoe。
多线程处理器(Multi-thread processor)
为了减少长延迟对处理器效率的影响,例如减少cache不命中和执行时间长的指令对处理器效率的影响,在单个处理器内部实现多个硬件线程。当某个线程处理 cache不命中时,其他线程可以以继续执行有效工作,从而隐藏访存延迟,提高综合性能。多线程处理器的优点在于由于能够快速切换线程上下文,因此多线程处理器能在每个时钟周期发射一个独立线程的指令。能够利用线程级并行提高处理器资源的利用率。其主要缺点是由于每个时钟周期只能允许一个线程活跃,所以没能发现横向的资源效率。多线程处理器通常为每个线程维护独立的PC和寄存器,可以分为细粒度多线程,即每个时钟周期都可以进行线程切换,以及粗粒度多线程,即可以等到有长延迟操作时再做线程切换。
同时多线程处理器(Simultaneous multi-thread processor)
同时多线程是一种处理器体系结构,它结合了超标量和多线程处理器的特点,可以同时减少水平和垂直浪费。SMT在一个时钟周期内发射来自多个线程的多条指令。同时多线程技术在两个方面提高了处理器的总体性能。
首先SMT允许在一个时钟周期内执行来自不同线程的多条指令。因此在一个时钟周期内SMT能够同时利用程序的TLP和ILP消除水平浪费,提高处理器发射槽以及功能部件的利用率。另外,SMT允许任何活动线程的组合来发射指令。当由于长延迟操作或者资源冲突导致只有一个活动线程时,该线程能够使用所有可获得的发射槽。这就使得,可以通过使用其他线程的未阻塞指令来消除垂直浪费。由于SMT处理器在每个时钟周期可以选择多个线程的指令执行,因此能够更好地利用处理器资源。取指阶段有更多选择,比如可以增加取非投机指令执行的可能性,可以同时提高水平和垂直的资源效率。尽管多发射处理器在一个时钟周期内能执行多条指令,但是当在一个时钟周期内不能找到足够的并行指令时,多发射处理器效率会下降。多线程处理器可以能够克服长延迟操作和资源冲突所带来的限制,但是不能有效地利用处理器中的所有资源。SMT结合了超标量和多线程的好处,而不需要很大的如芯片面积之类的代价。为了允许在一个时钟内发射多个线程的多条指令SMT为每个线程维护一套独立的体系结构状态,包括通用寄存器、控制寄存器和其他的状态寄存器等。
其主要缺点是,由于采用集中式指令发射,指令发射阶段变得复杂。
单片多处理器(Chip multi-processor)
单片多处理器就是将多个计算内核集成在一个处理器芯片中,从而提高计算能力。
按计算内核的对等与否CMP可分为同构多核和异构多核。计算内核相同、地位对等的称为同构多核,现在Intel和AMD主推的双核处理器,就是同构的双核处理器。计算内核不同、地位不对等的称为异构多核,异构多核多采用“主处理核+协处理核”的设计,IBM、索尼和东芝等联手设计推出的Cell 处理器正是这种异构架构的典范。处理核本身的结构,关系到整个芯片的面积、功耗和性能。根据Amdahl 定理,程序的加速比受制于串行部分的比例和性能,所以,从理论上来看似乎异构微处理器的结构具有更好的性能。
CMP处理器的各CPU核心执行的程序之间需要进行数据的共享与同步,因此其硬件结构必须支持核间通信。高效的通信机制是CMP处理器高性能的重要保障,目前比较主流的片上高效通信机制有两种,一种是基于总线共享的Cache 结构,一种是基于片上的互连结构。
总线共享Cache结构是指每个CPU内核拥有共享的二级或三级Cache,用于保存比较常用的数据,并通过连接核心的总线进行通信。这种系统的优点是结构简单,通信速度高,缺点是基于总线的结构可扩展性较差。
基于片上互连的结构是指每个CPU核心具有独立的处理单元和cache,各个CPU核心通过交叉开关或片上网络等方式连接在一起。各个CPU核心间通过消息通信。这种结构的优点是可扩展性好,数据带宽有保证;缺点是硬件结构复杂,且软件改动较大。
多核多线程处理器
这是单片多处理器和多线程的结合体,也是未来的处理科体系结构的一个可能的发展趋势。现在也有叫clustered SMT processor也属于这种类型。其结构特点是一个片上有多个处理器,同时每个处理器内部支持多个线程,所以说是单片多处理器和多线程的结合体。单独采用片上多处理器的优点是,能够把许多时间关键的资源分布到不同的处理器上,因此能够使逻辑稍微简单,也能够提高时钟频率;其缺点是不同处理器之间通信延迟很大。单独采用SMT/MT能够增加指令发射宽度,消除掉许多延迟;其缺点是必然增加单个处理器上的时间关键的资源的竞争,如寄存器堆和重命名机制,同时这种竞争必然会要求利用出复杂的逻辑。但是可以看到上述两种结构具有明显的互补性,所以说,多处理器多线程是一个发展方向。