多处理器的体系结构

多处理器的体系结构

 

随着单个处理器的性能越来越逼近其物理极限,现在的处理器设计方向可以大致有两类,一是采用单片上集成多个核中或者采用一个核中多个物理线程的方法来达到并行的目的,从而提高性能;另一个方向是嵌入式应用,这有两种思路即将通用处理器扩展、改装成能适合各种嵌入式应用(90%的份额是DSP),或者将DSP扩展、改装以吸收部分通用微处理器的特点。事实上, 在2000年,嵌入式芯片的销售量已经是通用PC微处理能的两倍多。但是从编译的角度来看DSP由于其不规则、复杂的结构以及指令集结构,导致无法很好的利用编译器。当然,现在DSP的一个研究方向就是吸收通用微处理器的特点,以方便编译器的使用。

 2.1相关的体系结构介绍

2.1.1多发射处理器(multi-issue processor) 多发射处理器(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。

2.1.2 多线程处理器(multi-thread processor) 为了减少长延迟对处理器效率的影响, 例如减少cache不命中和执行时间长的指令对处理器效率的影响,在单个处理器内部实现多个硬件线程。当某个线程处理 cache不命中时,其他线程可以以继续执行有效工作,从而隐藏访存延迟,提高综合性能。 多线程处理器的优点在于由于能够快速切换线程上下文,因此多线程处理器能在每个时钟周期发射一个独立线程的指令。能够利用线程级并行提高处理器资源的利用率。其主要缺点是由于每个时钟周期只能允许一个线程活跃,所以没能发现横向的资源效率。 多线程处理器通常为每个线程维护独立的PC和寄存器,可以分为细粒度多线程,即每个时钟周期都可以进行线程切换,以及粗粒度多线程,即可以等到有长延迟操作时再做线程切换。

2.1.3 同时多线程处理器(simultaneous multi-thread processor) 同时多线程是一种处理器体系结构,它结合了超标量和多线程处理器的特点,可以同时减少水平和垂直浪费。 SMT在一个时钟周期内发射(Isssue)来自多个线程的多条指令。同时多线程技术在两个方面提高了处理器的总体性能: (l)SMT允许在一个时钟周期内执行来自不同线程的多条指令。因此在一个时钟周期内SMT能够同时利用程序的TLP和ILP消除水平浪费,提高处理器发射槽以及功能部件的利用率(如图1e) (2)理论上来说,SMT允许任何活动线程的组合来发射指令。当由于长延迟操作或者资源冲突导致只有一个活动线程时,该线程能够使用所有可获得的发射槽。这就使得,可以通过使用其他线程的未阻塞指令来消除垂直浪费。 由于SMT处理器在每个时钟周期可以选择多个线程的指令执行,因此能够更好地利用处理器资源。取指阶段有更多选择,比如可以增加取非投机指令执行的可能性,可以同时提高水平和垂直的资源效率。尽管多发射处理器在一个时钟周期内能执行多条指令,但是当在一个时钟周期内不能找到足够的并行指令时,多发射处理器效率会下降。多线程处理器可以能够克服长延迟操作和资源冲突所带来的限制,但是不能有效地利用处理器中的所有资源。SMT结合了超标量和多线程的好处,而不需要很大的代价(例如芯片面积)。为了允许在一个时钟内发射多个线程的多条指令SMT业为每个线程维护一套独立的体系结构状态包括通用寄存器,控制寄存器和其他的状态寄存器等。 其主要缺点是,由于采用集中式指令发射指令发射阶段变得复杂,采用什么策略发射指令的问题;另外,未来微处理器设计主要采用功能分布的方法来克服片上线延迟,而集中式发射束缚了功能分布,这是不如片上多处理器的地方。 2.1.4单片多处理器( chip multi-processor) 随着单个芯片上晶体管数目的增加,构造片上多处理器系统成为可能。片上多处理器是指中在单个芯片上的多个处理器核所构成的多处理器系统。片上多处理器系统允许线程在多个处理器核上并行执行,它利用线程级并行性来提高系统性能。然而由于片上多处理器系统的资源是采用划分方式的,当没有足够线程时,资源就浪费了。图1d即为CMP的发射槽利用图。片上多处理器的主要好处是片上的处理器核可以很简单,使得设计和验证时间短 ,也易于获得较高主频。 典型的CMP系统包括: Standford Hydra,IBM Power4,Sun MAJC,Broadcom sb1250,Cradle's Universal Microsystem。 在程序运行时,允许线程在多个处理器上执行,利用线程级并行性来提高系统性能。其主要缺点是,由于资源是各个处理器独有的,所以当没有足够的线程时会造成资源浪费。必须注意的是,严格的讲,此处关心的线程数最小仅仅指单纯的线程数,而应该指(线程数X并行性),因为如果线程的并行性不高(比如一个线程长时间依赖于另一个线程)再多的线程在某一个时刻表现出来的实际效果是很差的。 2.1.5多核多线程处理器 这是单片多处理器和多线程的结合体,也是未来的处理科体系结构的一个可能的发展趋势。现在也有叫clustered SMTprocessor也属于这种类型。其结构特点是一个片上有多个处理器,同时每个处理器内部支持多个线程,所以说是单片多处理器和多线程的结合体。 单独采用片上多处理器的优点是,能够把许多时间关键的资源分布到不同的处理器上,故能够使逻辑稍微简单,也能够提高时钟频率;其缺点是不同处理器之间通信延迟很大。单独采用SMT/MT能够增加指令发射宽度,消除掉许多延迟;其缺点是必然增加单个处理器上的时间关键的资源的竞争,如寄存器堆和重命名机制,同时这种竞争必然会要求利用出复杂的逻辑。 但是可以看到上述两种结构具有明显的互补性,所以说,多处理器多线程是一个发展方向。但必须指出的是,这种体系结构最大的瓶颈就是随着处理速度提高,对共享资源的竞争将更加激烈。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值