要想提高CPU的运算能力要想提高CPU的运算能力,有两种途径:一种是提高每一个运算部件的效率,制造出更强大的核心,以质取胜;另一种是增加运算部件的数量,在CPU内放置更多的核心,以量取胜。
这两种思路,引领着通用CPU在几十年的发展道路上快速成长,它们为了提升运算能力这个同样的目标,又互相支撑、促进和竞争,同时衍生出更多富有创新价值的设计???? CPU 作者:Frame 选择更多的核心,还是更强的核心,已经不只是用户的任务,而成为整个CPU 业界关注的焦点。
在传统思路的基础上,我们也看到了越来越多的架构革新。
对用户来说,采用哪种方式提升性能并不重要,因为对于运算能力增强的渴望,是永无止境的。
站在应用的角度上讲,CPU用户需要更强大的处理能力,制造商在相同成本上提供更出色的性能,就能获得市场。
以性能价格比来衡量一套系统或对比多套系统,是永远没有错的。
下文正是根据不同厂商提供的不同产品,为大家带来更多思想上的启示,让大家更明确地认识和选择适合自己的CPU产品。
本世纪初,Intel明确表示,多核心CPU解决方案是摩尔定律发展的必然产物。
Intel反复表明着自己的鲜明观点:主频不变的情况下,从单核增加到多核,功耗增加是线性的,更容易控制,摩尔定律晶体管增加的趋势完全可以转换到集成多核心上来。
同时AMD也在努力着,花费巨大代价设计出原生多核特别是原生4核,以及AMD努力推广,都表明了它鲜明的立场与发展方向。
在各个市场层面,IBM与SUN,Intel和AMD,还有更多厂商,无一例外都在积极实践着多核心CPU的制造和应用。
在桌面级市场上,多核心CPU同样正在以惊人的速度普及。
毋庸置疑,以多核心作为未来CPU的发展趋势是明智之举。
但就目前的发展水平和市场情况来看,多核心CPU正在面临种种考验和压力,多核之路的确坎坷不平。
1 这里提及的多核心,实际上是我们现在能够看到实际产品的对等多核心CPU,如Athlon64 X2、Core 2 Duo和Core 2 Quad等CPU。
所谓多核心CPU技术,是在同一个硅晶片(Die)上集成了多个独立物理核心,在实际工作中多颗核心协同工作,以达到性能倍增的目的。
多核心技术在应用上的优势有两个方面,一方面是为用户带来更强大的计算性能,更重要的一方面则是可满足用户同时进行多任务处理和多任务计算环境的要求。
单核心CPU在面对多个任务时,必须为不同的任务分配CPU资源,我们可以形象理解为:单核心CPU将CPU资源变成时间片,多个任务采用时间片轮转的方式共享资源。
面对日益增长的CPU主频和晶体管规模,芯片巨头Intel逐渐意识到:这样继续下去,自己的制造技术将不能应对迅猛增长的功耗和发热。
AMD方面,受制于较短的CPU流水线和相对缓慢的工艺更新,也面临着主频难以提升的窘境。
形成鲜明对比的是,IBM早在2001年成功产出了世界上第一款双核处理器——POWER 4,POWER4处理器拥有2个64位PowerPC 核心。
应该说多核之门由IBM打开,Intel与AMD迅速迈进,加速了整个业界的多核进程。
但是多核处理器仅是解决方案的一部分,更大的问题在于软件开发没有跟上硬件开发的进展。
2 在现在单线程应用广泛的情况下,程序绝大多数情况下只能使用到一个核心。
这是由于CPU在工作时是受软件高度控制的。
它要处理的问题是软件提出的,问题到了CPU中变成具体线程,如果软件编写时使用单线程,它在被CPU执行时只能调用一个线程。
多余的那个内核和其他线程由于没有权限执行而浪费。
尽管利用并行CPU提高总体软件性能的概念至少已经出现近40年了,但是在开发工具方面,使这种方法进入商业市场的东西却非常少。
可供程序员迅速开发出来的程序还是单线程的。
在广为关注的游戏编程方面,并行多线程编程是非常困难的,在桌面级多核CPU诞生的最初几年里,所有游戏开发商都把并行游戏编程视为噩梦。
在软件下,我们的CPU普遍遇到上图这种环境。
双核心CPU 的一个核心运行系统检查和一些后台程序,另一个核心运行前台任务。
这样使用似乎合理,但是我们仔细思考后就会发现,Core1基本是空闲的,因为后台程序在任何时刻,都只会消耗微小的CPU资源。
而在实际应用中,不可否认有一些程序对多核心做出了非常好的优化,如上图。
它们可以将自己分身,放在不同的核心上同时运行,这样提供了非常可观的性能增益。
在优化最合理的情况下,多核心CPU甚至可以做到性能线性增长,也就是说每增加一个核心都能带来等同于第一个核心那样强大的性能。
3 针对此情况,我们必须要引入加速比的定义,才可以为大家更清楚地解释多核心CPU带来的性能提升。
加速比定义为串行算法在单CPU上的运行时间与并行算法在多CPU上的并行运行时间之比。
加速比可以告诉我们,性能是否与核心数目的增长同步。
下图能够简单表示多核心CPU的加速比情况。
图中P代表性能,N代表核心数目。
正如上面所介绍,如果得到了有效的多线程优化,性能将会基本呈线性增长,更多的核心自然带来更高的性能,用户每次增加核心数目,都能感觉到性能的大幅度增长。
而运行单线程软件时,无论使用多少个核心,性能和单核心基本没有区别。
图上图,在某专业服务器上,多CPU共同处理一个任务的表现,纵轴为加速比,在这个实例中,我们可以对上文所提到的加速比概念更加明晰。
由于程序做出了有效优化,图中的多CPU服务器性能优异。
如上图,我们不能忽视,在大规模并行运算领域,增加大量的CPU,是提高系统运算能力的关键。
这条路在今天继续发挥巨大作用,但由于应用环境不同,我们不能简单地以大规模并行运算的发展来预测多核CPU的未来进程。
多核心CPU的另外一个重要优势是在繁多的程序压力下,能提供非常快速的响应能力。
而在单核心CPU上,由于多个程序共享CPU资源,往往造成响应不及时,如果遇到异常情况,系统可能在一段时间内由于CPU资源被占用而完全失去响应能力。
4 在对等多核心的组织形式方面,Intel和AMD执行着各自不同的多核架构。
在2005年,我们看到了Smithfield登场,这款被用来替换掉Tejas的处理器实际上是两枚Presoctt粘在一同一枚管芯达成的双核方案,显然当时Intel 把更多精力放在下一代双核心Conroe身上。
这时AMD双核心Athlon 64 X2架构使用了Direct Connect Architecture,增添了“系统请求接口”System Request Interface,SRI和“交叉开关”Crossbar Switch。
它们的作用是对两个核心的任务进行仲裁、及实现核与核之间的通信。
随后Intel原生的双核心Conroe架构诞生了,它与双核心Athlon 64 X2的争斗一直延续到今天。
为了继续压制AMD,Intel在有了第一次“粘贴”的经验下,很快推出了四核心CPU,如下图,它的构成方式同样很简单。
两颗核心封装在一个芯片上,却需要通过前端总线并绕行北桥芯片进行通信。
但图片告诉我们的不只是Core 2 Quad的核心构成方式,Intel用数据证明,4颗核心(2个双核CPU)封装在一起并没有争用总线资源。
如图,1333MHz前端总线可以提供8.5GB/s带宽,而Core 2 Quad在数据密集型操作中,最多使用了其中的5 GB/s 带宽。
AMD方面,为了应对对手的4核CPU,在Core 2 Quad之后发布了AMD 4X4平台,它使用2颗双核CPU通过HyperTransport总线直接通信,但由于没有封装在一个芯片上,会带来很多麻烦。
在经历了诸多磨难后,终于在2007年9月发布了迟到的“原生4核”CPU,它同样使用了Direct Connect Architecture,显著提高了多核心效率。
现在让我们看看桌面市场上,各款多核心CPU的表现,因为要讨论架构不同架构带来的影响,所以我们把对比重点放在方面,得分会因具体CPU性能而异,但架构特性会明显体现。
这里我们使用的软件是CINEBENCH 9.5,它对多核心做出了非常好的优化,而且结果方便分析。
CINEBENCH 的渲染任务可以在同一台计算机上测试多达16个处理器的性能,让系统性能达到极限。
CPU型号C2D-E6300 A64 X2 5000 C2D-QX6850 AMD FX74 Yorkfield 2.33GHz 单核得分313 385 387 457 429 多核得分579 712 1234 1463 1371 1.85 1.85 3.19 3.20 3.20 我们看到,经过优化设计的Core 2 Duo和Athlon 64 X2表现优秀,形象地说:111.85,这个加速幅度是比较大的,达到了较高的利用率。
Core 2 Quad虽然没有争用系统总线资源,但是由于核心的交换效率和交换延迟,和两个CPU分置的AMD 4X4平台基本相当。
AMD FX74由于采用的高效的互连总线,加速比让我们满意,但两颗CPU的功耗和平台成本总体高于Core 2 Quad。
Intel的45纳米Penryn家族Yorkfield仍然使用了两个双核CPU使用前端总线连接的形式,在芯片组的支持下,达到了3.20的加速比。
我们没有获得准确的原生四核设计的AMD K10 Barcelona系列得分,但它的加速比应该高于使用HyperTransport总线连接的AMD 4X4平台。
单核CPU是否走到了尽头?广大的用户是否只能购买更多的核心,并期待得到完美的优化,才能得到满意的性能线性增长的不仅是性能,还有功耗和发热,谁来为这些“副产品”买单?1 向着性能增长这同一个目标,更多芯片厂商做出了不懈探索。
为了证明更强的核心仍然是我们追求的重要目标,打开多核心CPU之门的IBM,做出了近乎于背道而驰的举动——新一代高性能芯片POWER 6,维持上一代芯片双核心设计,而增强了单个核心的性能。
IBM POWER 6处理器,继续驻足双核,但是重新擎起性能的“杀手锏”——频率。
据IBM介绍,伴随芯片主频的提升,散热问题会变得越来越严重,一方面这将消耗更多的电能,另一方面,散热问题也会限制芯片的制造材质。
这个观点已被业界一致认同,并为多核心CPU做了强劲的催化剂,但POWER 6告诉我们,更强大的核心性能完全有待挖掘,应用新技术和新思路,我们可以让单个核心继续高速发展。
2 对于竞争对手对更多线程处理能力的追求,IBM有不同看法,多线程技术虽可提高同一时间内并行处理任务的效率和能力,但是却需要软件开发商提供相关软件的支持。
以IBM AS400来说,早在1995年就实现了双线程,但是IBM当时在改造支持双线程的系统软件上花了很多功夫。
在运算性能需求更多的商业领域,目前很多企业的应用却还非常需要单线程技术,单线程编程的软件仍然占到绝大多数。