技术分析: Power6 与安腾走上了同一条道 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


  为了提高时钟频率, Power6 这个特立独行的架构改乱序执行为有序执行,终于走上了回归路。直到大约 15 年前,大多数 CPU 一次只能处理一条指令。那时,如果采用流水线设计,譬如摩托罗拉 68040 或者英特尔 80486 ,那么可以同时在不同执行阶段处理不同的指令。

 

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />   从安腾到 Power6

  乱序执行一直发展良好,直到后来英特尔推出了一种全新的技术。意义重大的安腾处理器拥有真正独一无二的引擎,并使用了重要的显式并行指令计算( EPIC )技术。先不说安腾处理器的超过 100 种的指令格式组合、庞大的慢速寄存器组等,它实际上重新采用了有序执行技术。所以,编译器不得不完成所有工作,以确保执行单元始终处于忙碌状态。除了浮点处理密集型应用外,要做到这一点并非易事,只要看看安腾系统的基准测试结果就会明白。

  在后续的发展中,安腾架构的这一做法从来没有变过。相反, Sun 一度改用了富士通公司使用无序技术的 SPARC64 ,而不是它自己的使用有序技术的 UltraSPARC IV 。其他的重要架构如 x86 则继续采用无序技术,使用了 Core 2 K10 等新引擎,并进一步改进了这种方案,以便充分利用每 MHz

  如果你出于某种原因需要 AIX ,那么 Power 的重要性就不言而喻了。 Power4 Power5 都是高速、但复杂的采用乱序技术的 RISC 处理器,它结合了四路超标量执行机制和非常高的系统带宽。不过, Power6 却回到了有序技术时代。原因何在?

  一个答案就是,如果 Power6 的同步多线程效果好,那么对单一线程浪费执行资源就不用太担心:在这种情况下,只要同步运行两个线程就行。另外,为了进一步大幅提升性能,频率提高一倍、二级高速缓存增加一倍、缩短算术逻辑单元( ALU )的延迟等方面恐怕更关键。即使那样,浮点处理部件还会保留有一定的乱序执行功能 —— 这是在通用处理器的浮点运算部分首次引入十进制浮点处理单元( FPU )。 同步双线程执行、负荷预测机制以及增强的数据和指令预取功能,提升了有序执行超标量核心的性能。 ”IBM 是这么评价其新芯片的。

   Power5+ 的五路无序执行被 Power6 的七路有序执行所取代,但即使如此,也有几个地方需要注意: Power5+ 一个线程每个周期最多只有五条指令,而 Power6 一个线程增加了二条指令,这对计算型线程和内存搜寻型线程组合来说更有优势。 Power5+ 更关注内部资源,而 Power6 在大部分时候等待内存,所以每个周期两次操作完全够了。那么性能方面有什么提升呢?看一下基准测试 specfp2006 ,频率为 2.2GHz Power5+ 在这方面能达到 14.9 ,当然是在经过改动的 Power5 机器上实现的;而频率为 4.7GHz Power6 能达到 22.3 ,时钟频率提高了一倍多,性能提升却不到一半。

  所以, Power6 7.9 亿个晶体管分布在尺寸比较大的 341 平方毫米上,超过了 Barcelona/Agena 283 平方毫米,仅比尺寸庞大的安腾小了一点,它确实大幅提升了性能,尽管没有了乱序技术。虽然高速缓存和内存带宽随着时钟频率的提高都水涨船高,但是仍然可以说,在时钟频率相同情况下,重新使用有序技术会在处理单线程任务时导致性能下降 30% 左右。

  为此,我们不得不等待更新的 Power6 系统以及下一版本 AIX 在编译器方面的进展,以减少这种性能损耗。不过对 Power6 来说,采用有序技术确实明显提升了处理器的性能。安腾同样采用了有序技术,但是至少到现在还没有看到明显的成效。 x86 恐怕再也不会出现有序技术。

  不过,处理器技术的发展一日千里, Power6 设计者不会坐井观天。再过一段时间,英特尔公司的 3.6GHz Harpertown“Penryn” AMD 公司 3GHz Barcelona 处理器就会陆续面世,都会对 IBM Power6 构成重大挑战。 IBM 必须牢记 : 对采用有序技术的这类处理器而言,随着每一代后续 CPU 的问世,在编译器方面需要做的工作更多。同时,并不是每个人都会有时间重新编译自己的应用程序。