服务器 频道

巅峰之作 IBM Power 7处理器架构分析

含有4个Power5 die和4个36MB L3缓存的Power5处理器

  和以往的IBM Power处理器不太一样,IBM Power7是一个单晶片的八核处理器,而不是如Power5那样由多个晶圆合体(Power7据说支持单个处理器两个晶圆,也就是形成一个16核心处理器)。IBM Power7是一个典型的多核心处理器,每个核心的架构如下图: 


单个IBM Power7核心
IFU:Instruction Fetch Unit,指令拾取单元
CRU/BRU:Condition Register Unit/Branch Unit,条件寄存器单元/分支单元
LSU:Load/Store Unit,存取单元
ISU:Instruction Schdule Unit,指令调度单元
DFU:Decimal Fixed Point Unit,十进制整数单元
FXU:Fixed Point Unit,整数单元
VSX FPU:Vector-Scalar Extension Floating Point Unit,向量/标量扩展浮点单元
通常,一条指令从左下开始顺时针执行到右下

   Power7处理核心的最大特点是它具有12个执行单元,以及4个同步多线程。这12个执行单元是:

  两个FXU整数单元+一个DFU十进制整数单元:十进制整数单元的用途目前暂时难以看到
  四个VSX FPU向量/标量扩展浮点单元:和传统的FPU不同,它可以进行向量计算。Power7基于Power Architecture版本2.06,扩展了指令集以支持向量运算,对比于通常的SIMD,向量运算会具有更高的效率,它可以更好地利用寄存器
  共四个LSU存取单元:内存存取——Load两个,Store两个——因此它紧挨着L1,以及L2
  一个CRU条件寄存器单元和BRU分支单元:POWER架构和我们常见的x86不同,有些时候,一种特别的浮点运算是由额外的单元执行而不是由通用整数单元执行,这就是和POWER架构的condition register条件寄存器相关的运算,它由CRU来执行
  BRU分支单元执行分支指令,实际上,它和CRU结合紧密,因此合在一起;CRU和BRU都有点偏向于控制单元(如IFU和ISU这样的就是彻头彻尾的控制单元),控制着指令的走向,因此它们靠近IFU指令拾取单元,也靠近L1/L2的位置

  Power7是OOOE(Out-of-Order Execution,乱序执行)架构的处理器,和上一代Power6的IOE(In-Order Execution,顺序执行)不同——有趣的是,Power5是OOOE的,也就是说,Power7又变回去了。

  顺序执行的结构简单,可以获得较高的运行频率,乱序执行则可以获得更好的运行效率,但是设计会变得复杂——设计不是问题,问题是发热量也随之增大。从结果来看,Power7的频率应该比Power6低一点。至于执行效率本身,乱序本身显然更好,Power7的流水线级数进行了缩减和优化以提升运行频率。

  Power7的内核相对来说是非常复杂的,12个相对独立执行单元的设计可不常见,如Nehalem约有9个执行单元(不过执行端口只有6个:三个运算端口,三个存取端口。三个运算端口可以同时执行三个整数运算和三个浮点运算)。Power7在每个时钟周期可以分发6条指令,Nehalem则是4条,在单位时钟的微指令执行能力上,Power7大约是Nehalem的1.5倍。

  强大的执行能力让Power7可以具有更多的多线程能力:每个Power7具有4个同步多线程,Power5和Power6都是两个。同步多线程是充分利用乱序架构的好方法,相对来说,顺序架构利用起来就比较难。近年来处理器的发展是追求低功耗、大规模并行,越来越走向多路处理了,既然走向了多核心,那么走向更多路的SMT同步多线程也就顺理成章了,相对来说Power7的功耗并不高,见后。在并行编程方面,进展比较缓慢,但进步总是有的。

  显然,多线程技术将会越来越盛行,我们熟悉的x86世界:AMD已经宣布要采用多线程技术,而Intel的Nehalem将来可能会进化到4个多线程。

商用处理器
类别IBM Power5IBM Power6IBM Power7Fujitsu SPARC64 VIFujitsu SPARC64 VIISun UltraSPARC T1Sun UltraSPARC T2IBM/Sony/Toshiba CellIntel NetBurstIntel Nehalem-EXIntel AtomIntel Itanium 2
Montecito
核心数量228248891812
线程数2x22x28x42x24x28x48x81x2+8(异构)1x28x21x22x2
多线程SMTSMTSMTCMTSMTFMTFMT+SMTSMTSMTSMTSMTCMT
流水线OOOE乱序IOE顺序OOOE乱序OOOE乱序OOOE乱序IOE顺序IOE顺序IOE顺序OOOE乱序OOOE乱序IOE顺序IOE顺序

 

0
相关文章