首页 > 范文大全 > 正文

核“芯”压倒一切

开篇:润墨网以专业的文秘视角,为您筛选了一篇核“芯”压倒一切范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

以目前制造工艺来看,微处理器的主频发展已经快要进入瓶颈阶段。如果再不改变“频率至上”的研发思路,那么下一代产品将面临性能无法显著提高的尴尬。对于厂商而言,此时从提高效率着手是唯一切实可行的出路。而除了流水线核心架构上的技术研发,双核乃至多核技术无疑又是一条捷径。伴随着Intel和AMD两强在PC市场的多核技术推进,乃至非x86市场的多核技术普及应用,我们已经彻底进入了一个多核时代。

解析多核计算技术

双CPU系统早就登陆PC领域

Intel在桌面平台的第一代双核处理器

即便是运行一个操作系统,我们的处理器也会被多个进程占用大量资源。尽管Windows等操作系统号称是多任务处理,然而真正工作时CPU只能在不同的时间段分别处理不同的进程,并不存在真正意义上的后台程序(所谓后台程序,只是占用处理器的时间段极短)。因此,多核计算技术的出现让人非常期待,尤其是在这个主频提升艰难的年代里。

1.多核技术的前身:双CPU方案

尽管Windows操作系统的一大特色是多任务,但是从根本上说,如今的X86架构的处理器还无法实现多任务。学过操作系统原理的人们都知道,Windows中所谓的多任务,仅仅是将时间分成极小的片段分配给不同的进程,每一个进程依次操作。显然,这种操作模式会严重影响多个大型软件同时运行时的效率。同样,在服务器领域,用户面对多任务时也渴望CPU能够拥有真正的多线程工作能力。

为此,业界在高端工作站以及服务器市场率先引入了双CPU,从而大大加强了多任务下的性能。当然,双CPU的价值并不仅仅在于执行多任务。如果应用软件专门为双CPU加以优化,那么其性能提升幅度同样是相当明显的。在图形处理方面,Photoshop和3DMAX 都支持双CPU,所以对于这类用户群体来说,双CPU是有用武之地的。

从CPU设计角度来看,在一个CPU的整体封装内实现两个内核难度是极大的,因此双CPU成为惟一可行的工作方式。对于双CPU系统而言,两个CPU依靠芯片组以及操作系统的支持实现负载量分配,而互相之间的数据交换则通过北桥芯片来完成。以我们最为熟悉的PC为例,其实进入Pentium II时代之后,桌面级的双CPU方案已经悄然出现。1999年,Intel的440BX芯片组支持双CPU功能,而Celeron处理器又因为推出时间仓促而没来得及屏蔽双CPU功能,因此DIY用户也能以较低的成本组建双CPU系统。

但是,并不是每一款CPU都具有组成双CPU系统的能力,因为Intel与AMD都在CPU出厂前屏蔽了这一功能,特别是在定位于中低端市场的产品中。由于使用双CPU的主要是企业用户与发烧级用户,因此CPU生产商都推出了专门支持这一技术的产品,并在命名方式上加以区别,不过价格自然要高一些。

2.多核处理器前世今生

所谓“多核”处理器,就是采用独立缓存的设计,将多个核心整合在同一芯片上以提高性能,控制能耗的增长,降低功率密度。将双核甚至多核的缓存整合在一起,理论上可以让每个处理器核心以更快的速度存取更多的数据,晶体管数量也更为经济。这样的设计效率和成本符合技术和市场的发展方向。

双核处理器架构很早就出现在RISC处理器上,IBM在2001年10月就推出基于双核的Power 4处理器。Sun和HP先后也推出了基于双核架构的UltraSPARC IV以及PA-8800芯片。虽然在x86领域出现双核处理器已经是2004年的事,但在x86领域中出现双核架构,对业界的影响远比在RISC架构上出现双核的影响要大。毕竟从成本、性能和易用性的综合考虑,x86架构服务器的市场空间和应用领域显然更为广阔。

多核多线程x86产品和单核处理器产品相比,有着明显的性能优势。它能够以更低的频率处理更高的工作负载,因而能够避免通常由多处理器设计导致的功率需求和散热问题。多核多线程x86服务器系统在市场端已经取得了一定的成绩,但从技术端来看,x86指令集依然十分复杂,仍存在编码长度不一的问题。更重要的是,这样的指令集架构将直接影响服务器产品最为重要的可靠性和稳定性。相对而言,一直占据高端服务器市场的RISC架构处理器,之所以能够屹立至今,其对于高端客户最大的价值在于RISC架构有利于实现更出色的系统可靠性。为了不断实现新的性能超越和新功能,x86指令集数年来只好不断更新、增加新的指令。

3.多核在桌面级应用的优势在哪里?

多核处理器的出现无疑是一场及时雨,这将给我们的应用局面带来翻天覆地的变化。以时下最热门的HDTV为例,解码1600×1200分辨率WMV HD所花费的CPU和GPU资源已经相当惊人。如果还指望在第二个显示器上流畅运行Photoshop,那无异于是痴人说梦。然而在双核时代,这一尴尬局面将得到极大的改善,让后台运行大型程序成为轻而易举的事情。与以往的双CPU SMP运算相比,如今的双核处理器能够更好地分配,以便协调工作,从而达到更加出色的效果。

即便是最常见的应用场景,我们也能充分感受到双核所带来的好处。很多用户都喜欢一边BT下载一边玩游戏,而此时便会感觉到游戏速度明显变慢。不要简单地以为BT下载软件仅仅占用硬盘,它对于CPU的占用率也同样不小。而如果能够启用双核处理器,那么一切问题都将迎刃而解。同样的例子还有一边玩游戏一边听音乐,甚至一边进行视频压缩等高消耗应用,一边上网聊天等。双核处理器带给我们的是真正自由的应用模式,不必担心某个程序耗尽系统资源而束缚其他应用。

更为重要的是,未来的操作系统与应用软件也将针对双核进行充分优化,因此其应用价值将是勿庸置疑的。尽管目前很多测试软件中无法显示出双核处理器的优势,但是请不要怀疑这一发展趋势,而且很多应用中的实际体验是普通性能测试软件所无法展现出来的。以目前支持双核的Maya、3DS Max、Cinema 4D、Truespace、AutoCAD、SoftImag、LightWave 3D、QuakeIII等应用软件为例,双核所带来的性能提升是显而易见的。随着Intel和AMD纷纷进入双核时代,未来Vista操作系统和应用软件充分为双核优化也将是必然的趋势,这也是最坚不可摧的应用基石。

即便是运行一个操作系统,我们的处理器也会被多个进程占用大量资源。尽管Windows等操作系统号称是多任务处理,然而真正工作时CPU只能在不同的时间段分别处理不同的进程,并不存在真正意义上的后台程序(所谓后台程序,只是占用处理器的时间段极短)。因此,多核计算技术的出现让人非常期待,尤其是在这个主频提升艰难的年代里。

1.多核技术的前身:双CPU方案

尽管Windows操作系统的一大特色是多任务,但是从根本上说,如今的X86架构的处理器还无法实现多任务。学过操作系统原理的人们都知道,Windows中所谓的多任务,仅仅是将时间分成极小的片段分配给不同的进程,每一个进程依次操作。显然,这种操作模式会严重影响多个大型软件同时运行时的效率。同样,在服务器领域,用户面对多任务时也渴望CPU能够拥有真正的多线程工作能力。

为此,业界在高端工作站以及服务器市场率先引入了双CPU,从而大大加强了多任务下的性能。当然,双CPU的价值并不仅仅在于执行多任务。如果应用软件专门为双CPU加以优化,那么其性能提升幅度同样是相当明显的。在图形处理方面,Photoshop和3DMAX 都支持双CPU,所以对于这类用户群体来说,双CPU是有用武之地的。

从CPU设计角度来看,在一个CPU的整体封装内实现两个内核难度是极大的,因此双CPU成为惟一可行的工作方式。对于双CPU系统而言,两个CPU依靠芯片组以及操作系统的支持实现负载量分配,而互相之间的数据交换则通过北桥芯片来完成。以我们最为熟悉的PC为例,其实进入Pentium II时代之后,桌面级的双CPU方案已经悄然出现。1999年,Intel的440BX芯片组支持双CPU功能,而Celeron处理器又因为推出时间仓促而没来得及屏蔽双CPU功能,因此DIY用户也能以较低的成本组建双CPU系统。

但是,并不是每一款CPU都具有组成双CPU系统的能力,因为Intel与AMD都在CPU出厂前屏蔽了这一功能,特别是在定位于中低端市场的产品中。由于使用双CPU的主要是企业用户与发烧级用户,因此CPU生产商都推出了专门支持这一技术的产品,并在命名方式上加以区别,不过价格自然要高一些。

2.多核处理器前世今生

所谓“多核”处理器,就是采用独立缓存的设计,将多个核心整合在同一芯片上以提高性能,控制能耗的增长,降低功率密度。将双核甚至多核的缓存整合在一起,理论上可以让每个处理器核心以更快的速度存取更多的数据,晶体管数量也更为经济。这样的设计效率和成本符合技术和市场的发展方向。

双核处理器架构很早就出现在RISC处理器上,IBM在2001年10月就推出基于双核的Power 4处理器。Sun和HP先后也推出了基于双核架构的UltraSPARC IV以及PA-8800芯片。虽然在x86领域出现双核处理器已经是2004年的事,但在x86领域中出现双核架构,对业界的影响远比在RISC架构上出现双核的影响要大。毕竟从成本、性能和易用性的综合考虑,x86架构服务器的市场空间和应用领域显然更为广阔。

多核多线程x86产品和单核处理器产品相比,有着明显的性能优势。它能够以更低的频率处理更高的工作负载,因而能够避免通常由多处理器设计导致的功率需求和散热问题。多核多线程x86服务器系统在市场端已经取得了一定的成绩,但从技术端来看,x86指令集依然十分复杂,仍存在编码长度不一的问题。更重要的是,这样的指令集架构将直接影响服务器产品最为重要的可靠性和稳定性。相对而言,一直占据高端服务器市场的RISC架构处理器,之所以能够屹立至今,其对于高端客户最大的价值在于RISC架构有利于实现更出色的系统可靠性。为了不断实现新的性能超越和新功能,x86指令集数年来只好不断更新、增加新的指令。

3.多核在桌面级应用的优势在哪里?

多核处理器的出现无疑是一场及时雨,这将给我们的应用局面带来翻天覆地的变化。以时下最热门的HDTV为例,解码1600×1200分辨率WMV HD所花费的CPU和GPU资源已经相当惊人。如果还指望在第二个显示器上流畅运行Photoshop,那无异于是痴人说梦。然而在双核时代,这一尴尬局面将得到极大的改善,让后台运行大型程序成为轻而易举的事情。与以往的双CPU SMP运算相比,如今的双核处理器能够更好地分配,以便协调工作,从而达到更加出色的效果。

即便是最常见的应用场景,我们也能充分感受到双核所带来的好处。很多用户都喜欢一边BT下载一边玩游戏,而此时便会感觉到游戏速度明显变慢。不要简单地以为BT下载软件仅仅占用硬盘,它对于CPU的占用率也同样不小。而如果能够启用双核处理器,那么一切问题都将迎刃而解。同样的例子还有一边玩游戏一边听音乐,甚至一边进行视频压缩等高消耗应用,一边上网聊天等。双核处理器带给我们的是真正自由的应用模式,不必担心某个程序耗尽系统资源而束缚其他应用。

更为重要的是,未来的操作系统与应用软件也将针对双核进行充分优化,因此其应用价值将是勿庸置疑的。尽管目前很多测试软件中无法显示出双核处理器的优势,但是请不要怀疑这一发展趋势,而且很多应用中的实际体验是普通性能测试软件所无法展现出来的。以目前支持双核的Maya、3DS Max、Cinema 4D、Truespace、AutoCAD、SoftImag、LightWave 3D、QuakeIII等应用软件为例,双核所带来的性能提升是显而易见的。随着Intel和AMD纷纷进入双核时代,未来Vista操作系统和应用软件充分为双核优化也将是必然的趋势,这也是最坚不可摧的应用基石。

Intel 酷睿2四核处理器

多核处理器技术难点

实现多核设计之后,对于厂商的制造技术要求也非常高,因此目前多核技术的发展并非一帆风顺。毫无疑问,只有在解决这些难点之后,多核处理器才能真正大放异彩。

1.内部总线的连接

双CPU系统之所以效率不佳,很大一部分原因是两个CPU之间的连接总线不顺畅。但是,千万不要以为多核技术就顺利解决了这一问题,因为同样是封装在一块芯片的多核,不同产品的核心之间连接方法不尽相同。以老迈的Pentium D为例,这种多核处理器采用多个核心共享前端总线的方式,将两个独立的内核封装在一起,因此实际效率几乎等同于双CPU。

进入Core架构的时代之后,Intel开始进行大刀阔斧的改进。此时,Core 2 Duo乃至Core 2 Quad全面采用内部总线传输数据并共享二级缓存,因此双核效率也大幅度提高。同样,AMD从一开始设计时就考虑到了对多核的支持。CPU里集成了内存控制器,消除系统架构方面的挑战和瓶颈。K8两个处理器核心做在同一个硅片上,双核之间以芯片速度通信,进一步降低了处理器之间的数据传输延迟。

2.工艺设计的难点

对于任何CPU制造商而言,要在小小的核心面积中实现多个内核,这无疑是有着巨大难度的。在晶体管集成度能力有限的情况下,采用多核技术无疑是对制作工艺的巨大考验。然而更加重要的是,多核技术并不意味着彻底摆脱对主频的依赖,因此多核势必导致CPU的极限频率降低。现在,65nm工艺已经普及,这对于双核设计来说可谓非常适时。而在面对四核的技术需求时,恐怕只有下一代的45nm工艺才能真正实现普及。

3.软件的优化程度

以往的软件都是为单核而设计的,因此,如何减小线程切换的次数成了关键。然而,对于具有超线程技术的处理器而言,这反而可能成为阻碍性能发挥的绊脚石。以3D游戏应用为例,此时应用程序更加依赖于处理器的浮点运算单元,而多核技术并行处理的优势将难以发挥。其实,从以往大多数双处理器的测试情况来看,浮点性能的提升都是微乎其微的,甚至还会因为占有系统资源而造成性能下降。不可否认,在软件未能优化的情况下,多核技术也很难跳出这一怪圈。

值得我们关注的是,即便是在没有为超线程技术优化的前提下,部分现有的应用程序的执行效率也能大大提升。以MP3压缩、DivX编码、PhotoShop操作等应用为例,现有双核处理器都获得了不错的性能提升。出现这一情况也并不奇怪,以上应用更多地依赖于CPU的智能执行,需要调用到多个运算单元,而这恰恰是多核技术的强项。

多核处理器发展趋势

多核处理器的进展

1.主动提高多核效率

在某些情况下,双核处理器反而会令单一程序的执行效率下降,这究竟是为什么呢?其实处理器中的两个内核都拥有共享的缓存,因此,必须保持每个物理内核的缓存信息一致,否则就会出现运算错误。例如在系统的内存数据区记录着A=1,如果第一个处理器对此数据区进行读写操作,并且改写为A=0,那么第二个处理器内核的缓存也必须进行更新,把A更新为0,否则的话,在以后的操作中数据就会出错。这样一个过程就是缓存数据的一致性,这也是导致性能降低的主要原因之一。

事实上,双核处理器的这一弊病由来已久。在双CPU以SMP方式工作时,甚至打开Intel的超线程功能时,都会发现类似的情况。所不同的是,不同的双核解决方案在处理“缓存数据一致性”时的表现截然不同,譬如AMD Athlon 64 X2和Intel酷睿就比Pentium D的处理效果更好,但是这也并不能避免特定应用程序中的性能下降现象。在已经的Intel迅驰4中,我们可以看到新版Merom采用了Intel动态加速技术(IDA),这主要用于提升双核的协作效率,甚至可以说是新版Merom最大的亮点,其意义远远超过增加二级缓存或是提高前端总线。

已经在使用双核处理器的用户都有这样一种体验:大多数情况下我们使用的都是单线程软件,而双核处理器有时难以发挥很好的作用,甚至会造成工作效率降低。而现在,通过IDA技术的帮助,迅驰4可以针对单线程任务或是大范围非并行指令更加合理地分配流水线,甚至面对单线程应用时只由一个核心来工作,从而提高性能,并且另一个空闲的内核能够进入深度休眠状态,降低处理器的功耗,同时也延长续航时间。而当有新的线程进入队列时,休眠的内核就会根据需要开始工作,切换时间短到不影响性能表现。

2.从双核到多核

从单核到双核,再到四核,普通用户能否从这些变化中获得更好的运算性能,目前这一问题尚处于争论之中。多核带来的优势主要在于可同时运行多个应用程序,或以多个线程运行同一任务。多线程应用允许将一个应用负载分成几个部分同时解决,多核处理器正好提供了这一优势。但由于大多数应用程序并非多线程设计,因此使用多核处理器带来的性能提升也非常有限。

在服务器和工作站领域,非x86处理器在多核技术的帮助下实现了非常不错的应用效果,这是由其单一的硬件环境以及强势的软件优化所造成的良性局面。但是,在PC领域,双核的运作效率尽管不容否定,可还远没有达到理论上的理想境地。因此,四核技术能否真正发挥作用,还有待时间的验证。但是可以肯定的是,Intel和AMD已经在PC领域打响了这场多核技术大战,四核处理器的发展方向已经成为主流。

3.配套的软件开发工具包

多核是一种硬件技术,需要软件配合,才能发挥多核的优势。那么,现在软件的并行处理能力能否与多核相匹配呢?在服务器领域,相关的软件(包括操作系统)应用多核的能力已经成熟。因为服务器的系统一直以来就是为多线程的应用设计的,多核的推出对于系统而言只是拓宽了高速公路,把从前的单车道变成了多条车道同时行驶。但是,在PC领域,如桌面和移动电脑,多数的软件和操作系统还不能很好地同多核相匹配。

在Intel有一个专门的软件与解决方案部门(SSG)承担着推动软件开发的任务,每推出一款新的处理器,SSG的任务就是开发一些软件工具来帮助ISV理解新处理器的用处并利用其新的功能来进行开发。事实上,AMD也有类似的部门,并经常一些开发软件工具包,帮助软件开发商优化代码,实现对多核计算更好的帮助。

链 接:双CPU与双核技术的区别

尽管我们有时将这两个概念混为一谈,但是事实上后者的效率要远远高于前者。双CPU各自有独立的缓存以及接口,可是这对于性能发挥并不利。由于缺少互相之间的高速数据传输通道,再加上负荷量分配上的不合理,导致双CPU在很多情况下的应用效果并不理想。更加重要的是,双CPU的成本无法令人满意。反观现在的双核技术,两个核心整合在一个硅片上,这样就提高了协作效果,并且有助于降低成本。

链 接:命运起伏的超线程技术

超线程(Hyperthreading)技术可以让Pentium4处理器以双计算单元并行的方式执行指令线程,并允许一块CPU同时管理两条进程,每一组寄存器分别处理一条指令。但是与物理意义上的多CPU系统不同,每条指令都需要共同抢占处理器资源,包括在缓存中存放数据以及通过前端总线发送数据等。这就意味着采用超线程技术的单CPU系统的实际效能并不等同于配置两块物理CPU的系统。不过,与双CPU系统相比,超线程技术不仅也可以提供多线程处理功能,而且并不需要使用支持双CPU的主板,系统的整体拥有成本更低。本来Intel在其酷睿系列处理器中已经放弃了超线程技术,但是在2007年3月公布的未来处理器蓝图中,Intel表示将在2008年推出的Nehalem处理器中重新采用超线程技术。Nehalem处理器将包含1~8个内核,每个内核都支持超线程技术,可以处理两个独立的软件线程。