在X86领域,英特尔和AMD在今后两年内还是会基于传统的多核心方案继续发展,其中,英特尔在下半年带来的Merom架构以高效率见长,但它非常缺乏扩展的空间;而AMD公司在未来两年内更多是对
现有的AMD64架构进行改良。
在过去数十年历史中,微处理器业界一直为提高芯片的运算性能而努力,得益于IC设计和半导体制造技术的交互拉动,微处理器的运算性能始终保持高速度提升状态,芯片的集成度、工作频率、执行效率也在这个过程中不断提升,计算机工业由此改变。在大家熟知的X86领域,处理器的技术进步更是对世界产生重大的影响,作为PC机的核心,X86处理器事实上担任起信息技术引擎的作用。
伴随着X86处理器的性能提升,PC机可以完成越来越多的任务:从最初的Basic到功能完善的DOS系统,再到图形化的Windows 95,从平面二维到3D环境渲染,从一个无声的纯视觉界面进入到视觉、音频结合的多媒体应用,计算机实现彼此相互联网,庞大的Internet日渐完善,电子商务应用从概念到全球流行;
与硬件技术高速发展相对应,PC应用也朝向前所未有的深度和广度拓展:视频媒体转向HDTV高清晰格式,3D渲染朝向电影画质进发,操作系统的人机界面也从2D的GUI进入到三维时代,高速互联网接入和无线技术方兴未艾,应用软件越来越智能化,所有这些应用都要求有高性能的处理器作为基础。而除了应用驱动外,激烈的市场竞争也成为微处理器业界竞相研发新技术、提高产品性能的主要推动力。
在2006年,我们将看到具有卓越能源效率的英特尔Merom架构出台,AMD则以双通道DDR2-800支持与之抗衡,同时双核心产品成为桌面和移动芯片的新标准,X86处理器进入到性能跃升阶段。
毋庸置疑,X86处理器已然成为计算机工业的主导力量,在高端服务器和嵌入领域广泛使用的RISC处理器反而少被提起。事实上,RISC处理器一直都以远超X86产品的卓越性能和锐意进取的技术创新著称,几乎所有先进的设计技术都是首先出现在RISC领域,之后才被X86产品所借鉴。而换一个角度来看,RISC处理器领域的每一次技术创新又反过来对X86产品产生重大影响,因此,了解当前RISC领域的尖端技术便意味着能够明晰X86处理器的未来走向。
今天,微处理器全面转向多核心体系,无论RISC芯片还是X86芯片皆是如此,不过我们在本文中所要介绍的并不是人们熟知的双核心Pentium D或者Athlon64 X2,而是当前多核微处理器领域的最新技术成果以及面向未来的新颖概念,它们包括RISC领域的黑马、P.A.Semi公司的PWRficient双核处理器,SUN公司推出的 UltraSPARC T1八核心处理器,英特尔公司Many Core计划的实质以及AMD正在考虑的HyperTransport协处理器架构。
在这同时,我们也将向大家介绍各微处理器厂商对未来技术发展的不同理解,以及软件业如何应对为多核平台编程的巨大挑战。
高度整合的架构
P.A.Semi公司的PWRficient处理器在去年微处理器论坛(MPF2005)上正式揭晓。对于P.A.Semi这个名字,相信所有人都感到陌生,这家专门从事RISC处理器设计的技术型企业成立于2003年,创始者都是微处理器业界的顶尖人物。其CEO曾负责Alpha服务器芯片和StrongARM手持机芯片的开发;负责技术的副总裁科勒也曾从事Alpha芯片的开发,后来进入AMD公司帮助定义了Opteron芯片的架构;另一负责架构的副总裁皮特同样曾为Alpha架构服务,在DEC公司发生的数次并购中先后进入康柏、惠普和英特尔。
在MPF2005论坛上,P.A.Semi公司对外公布其设计的双核心PWRficient处理器,高度整合的设计令外界耳目一新,并兼具低功耗和高性能两大特性。该公司同时表示,PWRficient弹性的架构可被方便扩展到八核心或用于超级计算机系统,在高端服务器领域颇具竞争力。
在设计PWRficient之时,P.A.Semi面临的第一个问题就是指令系统的选择,X86无疑更加流行、市场更广阔,但该领域被英特尔、AMD把持,机会有限,加上X86指令系统复杂低效,与PWRficient的高端定位相悖。P.A.Semi最终选择了IBM的Power架构,这样PWRficient处理器便成为IBM Power大家族中的一个新成员。
但除此之外,PWRficient与IBM的Power芯片并没有太多的共同点,它拥有一套极富弹性的架构、高度整合以及低功耗特性。PWRficient主要定位在刀片服务器和低运营成本的服务器集群,P.A.Semi公司将英特尔的Sossaman Xeon处理器(Yonah架构)作为主要的竞争对手。
我们先来看看PWRficient的系统架构,如图1,我们可以看到,PWRficient与通常的处理器逻辑非常不同,除了CPU内核和二级缓存外,它还包括一个名为ENVIO的智能型I/O子系统。换句话说,PWRficient上包含CPU和ENVIO I/O子系统等两大逻辑,两者通过一个名为CONEXIUM Interchage的高速交换总线联结为一个有机系统。CPU部分为两个代号为PA6T的64位Power CPU内核,运行频率为2GHz。
与其他双核芯片不同的是,PWRficient的每一个 PA6T内核都拥有自己的DDR2内存控制器,但两者是以相互独立的模式而非组成共享的双通道。此种设计的好处在于每个CPU内核都能拥有属于自己的内存资源,最大限度降低内存抢占的几率。每个CPU内核都可支持64位或32位模式运作,具有诸如超标量、乱序执行、三发射等技术特性。另外,PA6T内核也都直接整合了硬件级的虚拟技术支持,可以在多套系统同时运行时仍保持出色的性能。
PA6T内核整合了64KB指令缓存和64KB数据缓存,而两个PA6T核心再共同分享2MB容量的二级缓存。PWRficient并没有采用类似Xeon的大缓存方案,原因就在于它的每个核心都有自己的内存,出现内存抢占的几率远低于共享总线的落后设计。
两个PA6T核心、2MB二级缓存和两个DDR2内存控制器都是通过CONEXIUM Interchage交换总线联结为一体,如果未来有需要,也可以在这条交换总线上联结四个内核甚至八个内核。但CONEXIUM的功能不仅于此,PWRficient处理器中的ENVOI I/O子系统也是通过这套总线与CPU逻辑直接通讯。与我们通常所见的固定模式不同,ENVOI相当灵活且富有弹性,它直接整合了八个PCI Express控制器(每个控制器提供4GBps带宽)、两个10GbE网络控制器(万兆以太网)和四个GbE(千兆以太网)控制器,这三部分I/O逻辑共享24对串行传输线路。
设备制造商可根据自身情况对这24对串行线路进行灵活配置,例如在NAS网络存储系统中,可以让连接磁盘系统的PCI Express传输获得更多线路资源,如果需要多端口的网络访问,那么便可以将线路资源朝向10GbE和GbE系统倾斜。这种高度弹性的架构让制造商拥有宽松的设计空间,可以根据企业的不同需要定制出最科学的服务器系统。而这种高度整合设计还有一个益处在于:无论是PCI Express系统还是网络系统,数据传输时的总线延迟都极短,进而获得卓越的数据传输效能。
尽管PWRficient专门针对服务器应用,但它的设计思想对于X86产品仍然十分有借鉴意义。AMD计划在下一代处理器架构中引入类似的高度整合设计,直接内建PCI Express控制器,以提高系统的数据传输性能。事实上,整个芯片组的功能都可以被处理器所整合,这对于芯片组厂商而言显然不是什么好消息。
除了高度整合设计外,卓越的每瓦性能也是PWRficient处理器的主要卖点之一。PWRficient的核心频率为2GHz,芯片最高能耗区区25瓦,平均运行能耗甚至仅有5W的超低水平。IBM公司将重点放在高性能的Power 5/6和游戏机领域,对低功耗芯片重视不足,PWRficient便不会与IBM的产品有什么冲突。P.A.Semi公司将英特尔Sossaman核心的低功耗型Xeon作为主要对手,尽管Sossaman基于效率出众的Yonah架构,但它的能源效率远无法同PWRficient相提并论。
PWRficient 2GHz的实际性能略高于Sossaman Xeon 2.5GHz,但后者的能耗达到73瓦,整整比PWRficient高出两倍。对服务器系统而言,低功耗芯片的意义不仅在于散热更佳,最大的好处在于能够节约出可观的运营成本。P.A.Semi公司作出了详细的对比:如果要构建一套运算速度达到32TFLOPS标准的服务器集群,需要使用6400枚Sossaman Xeon处理器,连带配套芯片组、万兆网卡等组件,整套集群的能耗将达到467200瓦;
而如果转用PWRficient平台,只需4000枚芯片就能够实现相同的性能,由于主要功能都被CPU直接集成,配套的芯片组也变得简单,整个集群的功耗只有92000瓦,相当于英特尔Sossaman Xeon平台的1/5,集群的空间占用、散热系统费用也更为低廉。如果选择PWRficient平台,集群系统的运营费用可以被大幅度削减,对本例的32TFLOPS集群系统而言,就是每年可节约出至少100万美元运营费用,PWRficient的优势十分明显。
PWRficient将采用IBM的65纳米SOI工艺进行制造,P.A.Semi公司计划在下半年推出处理器样品,2007年正式上市。该芯片的主要销售对象包括服务器厂商、网络设备厂商,甚至还包括家电厂商,尤其在刀片服务器和服务器集群系统中,PWRficient具有明显的优势。但光有优秀的产品不足以说明问题,P.A.Semi只是一家小规模的技术型公司,自身没有服务器制造和推广力量,只有获得服务器厂商的支持才能够将PWRficient推向实用化。而对IBM来说,既然没有更多的精力来开发低功耗Power芯片,将P.A.Semi收归旗下不失为一个好选择。
图1 PWRficient处理器的逻辑架构,整合了大量的I/O功能,堪称一款SOC(片上系统)型芯片。
SUN公司在2005年底推出的UltraSPARC T1也是微处理器领域的又一巅峰之作。同PWRficient的高度整合设计不同,UltraSPA
RC T1的重心放在多任务并行功能,这是由UltraSPARC T1自身的定位所决定的。UltraSPARC T1主要针对承担网络中枢的高端服务器系统,这类服务器主要面向高吞吐量的事务计算,需要在同时处理大量的并发任务,而这些任务又都不需要复杂的运算。
因此,SUN公司采用非均衡的思想来设计UltraSPARC T1:每个基本的CPU内核都相当精简,但都能够很好地完成相应的数据处理任务,由于精简核心占据的晶体管资源较少,处理器就能够集成更多的硬件内核;同时在较单纯的数据处理任务中,每个CPU核心的执行管线都不会被充分利用,在此基础上导入多线程技术将能够进一步提高系统的并行能力。我们可以看到,UltraSPARC T1拥有八个对等的硬件内核,每个内核可同步执行4个线程,这样仅仅一枚处理器就具备同时执行32个不同任务的能力。
UltraSPARC T1的晶体管总量只有3亿个左右,峰值能耗只有区区80瓦,执行效率相当出众。我们必须注意的是,UltraSPARC T1虽然具有超凡的事务处理能力,可它的科学计算能力十分糟糕,原因就在于SUN根据自身特殊的需要,采用不对等的设计。
UltraSPARC T1的CPU核心设计得非常简单,它的流水线很短,也没有包含浮点运算单元,只有在八个核心之外附加了一个浮点运算器。这样每个核心的晶体管占用就很少,为芯片低功耗奠定基础;UltraSPARC T1的每个核心均只运行在1.2GHz的低频率下,这也是拜短流水线设计所赐,芯片节能就不难理解了。UltraSPARC T1的每个核心都拥有16KB一级指令缓存和8KB的一级数据缓存,并具备奇偶检查能力(Parity Check),可以自行侦测缓存错误。
如果数据串中有1bit出现错误,缓存自身可对其进行修正,由此保证在苛刻环境下的运行可靠性。在二级缓存方面,UltraSPARC T1实行八核心共享的机制。由于核心数量众多,如果继续采用独立缓存设计的话,缓存同步操作需要耗费可观的运算资源,共享设计显然是更理想的选择。但为众多的核心分配缓存资源也是一个令人头疼的事情,SUN通过Crossbar连接架构来解决问题:八个核心在Crossbar的统一分配下获取缓存资源,有效避免了存取冲突。
一个比较特殊的地方就是UltraSPARC T1的二级缓存容量只有3MB,对一枚拥有八个硬件核心的处理器而言似乎少得可怜,但RISC处理器与X86处理器处理的任务迥异,提高缓存容量对X86处理器的性能影响立竿见影,但UltraSPARC T1面向网络运算,而这类运算对缓存容量并不十分依赖,起到决定作用的是核心的性能。
多线程支持是UltraSPARC T1的一大亮点。UltraSPARC T1拥有一项名为CoolThreads的多线程技术,该技术令UltraSPARC T1的每个硬件核心都拥有同步执行4个线程的能力。这样,八核心的UltraSPARC T1可以在同一时间运行32个线程,具有超强的多任务处理能力。虽然英特尔的芯片很早就引入HyperTreading超线程功能、允许CPU执行两个线程,但HyperTreading设计僵化,线程一旦进入执行位置就无法替换,这样即便该线程耗费大量的执行资源和时间也必须持续等候。
在不少时候,此举反而会令系统的效能降低,这也是HyperTreading发展多年,但始终都没有获得广泛推行的主要原因。而SUN、IBM等RISC处理器厂商在多线程技术领域有更深厚的实力,如IBM的Power 5系列具备线程动态转移功能,在线程运行开始即可对执行状况和资源使用进行实时侦测,如某个线程久拖不完或资源占用高,其余的核心又处于闲置状态时便立即将它转移,同时将运算资源和等候时间抚平,令系统保持卓越的并行执行效率。
UltraSPARC T1的 CoolThreads技术也具有类似的动态转移功能,任何一个执行单元有空余时,都可抓取已排入其他位置的待处理线程加以执行,由此维持八个核心的均衡负载。
UltraSPARC T1的整合内存控制器相当强大,它并不是像常规多核处理器一样只内建1组,而是拥有多达4组内存控制器,每个控制器都可以支持双通道ECC DDR2-533MHz内存、传输位宽达到144bit。在运行过程中,如果有4bit以下的内容错误,UltraSPARC T1的内存控制系统可自行纠正,如果错误数量提高到8bit,UltraSPARC T1仍然具备识别能力,系统可保持长时间的稳定运作。
另外,每组内存控制器都可以连接4个DIMM内存槽,因此一枚UltraSPARC T1处理器最多可管理多达16个DIMM模组,创造该领域的最高记录。毋庸置疑,UltraSPARC T1以4组144bit内存接口来对应8核心已经是相当充足,但SUN提供了更多的选择。在必要时候,用户可以将每两个控制器捆绑在一起,相当于将原本相互独立的4组内存系统变成两组可并行存取的结构,从而将内存系统的传输速度提高一倍。倘若系统执行的任务对数据传输有很高的要求,开启这项功能将对系统性能提升起到立竿见影的作用。
而在多路扩展方面,UltraSPARC T1采用的是SUN独有的JBus高速互联总线,JBus 1.0规格早在2003年4月就发布,采用128bit位宽的地址/数据接口,总线频率在150MHz-200MHz之间,峰值传输速率可达到3.1GBps。虽然成就远不如AMD的HyperTranspot总线,但JBus的性能同样可满足多处理器数据交换的要求,毕竟UltraSPARC T1拥有八个核心和32个独立线程,处理器之间不需要交换太多的数据。
除了八核心版本外,SUN公司还将推出较低定位的六核心、四核心UltraSPARC T1,但三者其实都出自相同的晶圆,只是将存在瑕疵、但关闭部分内核后可正常运行的芯片作为六核或四核型号。令人惊讶的是,UltraSPARC T1非常节能,在八核心、32个线程都激活状态下的典型功耗仅有72瓦,峰值功耗也只有80瓦,能源利用效率极其出色;另外,UltraSPARC T1还可以通过关闭某些核心来达到节能的目的。
当然,我们不能简单将UltraSPARC T1与X86处理器作直接的对比,毕竟两者面向不同的应用、设计思想迥异。但从UltraSPARC T1中我们可以接触到另外一种设计思想:即根据特定的应用来设计处理器,使得该处理器能够在既定应用中获得最佳的效能。这种思想在RISC业界已经开始风行,X86处理器受通用所累,暂时难以实现类似设计,但在未来我们不排除这种思想被X86业界借鉴的可能:例如英特尔/AMD可以专门针对游戏玩家和多媒体娱乐用户设计出强化浮点性能的娱乐型处理器,或者设计出强化整数性能、功耗更低的办公型处理器,这样办公用户不必为自己不需要的浮点性能多掏腰包,娱乐用户也能够获得性能更出色的产品。而对英特尔、AMD厂商来说,只要设计一个富有弹性的处理器架构,制造出不同定位的产品并不需要花费多少代价。
图2 SUN UltraSPARC T1处理器,精简核心、超多线程实现卓越的事务处理性能。
多核处理器同软件配合的讨论
在多核心处理器如火如荼发展的时候,软件业却远远没有来得及为此作准备。最早发现问题的是PS3、Xbox 360等平台的游戏开发商,由于两套系统完全不同于前一代产品,游戏开发者对此怨声载道,程序员普遍认为对多核心处理器编程近乎是一种灾难,因为程序员必须深入了解相应的硬件平台,然后据此编写代码,而让代码在两个核心之间平衡更是一大难题。 相对来说,PS3的Cell平台难度更大,程序员首次接触到主-从方式的多核平台,对如何发挥出协处理器的性能优势缺乏经验,由于编码的不到位,让Cell平台无法表现出与实际相称的高性能。同样的事情现在也出现在X86领域,双核平台的出现让软件开发商考虑对双核优化的重要性—但比较幸运的是,诸如办公软件、网页浏览器、内容创建工具等常规的商务软件对CPU性能要求不高,对双核优化也不见得会带来什么实质性的益处,因此主要的X86软件都不需要作出变动,真正需要考虑双核平台的仍然是X86平台下的游戏。 对此游戏开发商也是相当头疼,因为X86多核与PS3、Xbox 360游戏机的多核平台不同,未来的Many Core或HyperTransport协处理器平台也许又要作出改动。为了充分发挥硬件性能,设备厂商希望开发商深入了解对应多核处理器的细节—问题是现存多种多核架构,一一研究代价巨大。开发者都希望能够利用一个硬件无关的自动化通用开发平台进行设计开发,这样编码工作将变得相当容易,同时也能够保证代码拥有出色的适应性,遗憾的是,至少在目前这还是软件工业一厢情愿的想法。 当然,我们没必要因此对多核平台丧失信心,对X86 PC来说,使用多核心处理器能够极大提升系统的多任务效能,你可以在相同的时间里执行多项任务,借此提高办公效率—在软件业来不及跟上的时候,办公用户或许能够更多体验到双核平台的优势所在。 或HyperTransport协处理器平台也许又要作出改动。为了充分发挥硬件性能,设备厂商希望开发商深入了解对应多核处理器的细节—问题是现存多种多核架构,一一研究代价巨大。开发者都希望能够利用一个硬件无关的自动化通用开发平台进行设计开发,这样编码工作将变得相当容易,同时也能够保证代码拥有出色的适应性,遗憾的是,至少在目前这还是软件工业一厢情愿的想法。
当然,我们没必要因此对多核平台丧失信心,对X86 PC来说,使用多核心处理器能够极大提升系统的多任务效能,你可以在相同的时间里执行多项任务,借此提高办公效率—在软件业来不及跟上的时候,办公用户或许能够更多体验到双核平台的优势所在。
在多核心处理器如火如荼发展的时候,软件业却远远没有来得及为此作准备。最早发现问题的是PS3、Xbox 360等平台的游戏开发商,由于两套系统完全不同于前一代产品,游戏开发者对此怨声载道,程序员普遍认为对多核心处理器编程近乎是一种灾难,因为程序员必须深入了解相应的硬件平台,然后据此编写代码,而让代码在两个核心之间平衡更是一大难题。 相对来说,PS3的Cell平台难度更大,程序员首次接触到主-从方式的多核平台,对如何发挥出协处理器的性能优势缺乏经验,由于编码的不到位,让Cell平台无法表现出与实际相称的高性能。同样的事情现在也出现在X86领域,双核平台的出现让软件开发商考虑对双核优化的重要性—但比较幸运的是,诸如办公软件、网页浏览器、内容创建工具等常规的商务软件对CPU性能要求不高,对双核优化也不见得会带来什么实质性的益处,因此主要的X86软件都不需要作出变动,真正需要考虑双核平台的仍然是X86平台下的游戏。 对此游戏开发商也是相当头疼,因为X86多核与PS3、Xbox 360游戏机的多核平台不同,未来的Many Core或HyperTransport协处理器平台也许又要作出改动。为了充分发挥硬件性能,设备厂商希望开发商深入了解对应多核处理器的细节—问题是现存多种多核架构,一一研究代价巨大。开发者都希望能够利用一个硬件无关的自动化通用开发平台进行设计开发,这样编码工作将变得相当容易,同时也能够保证代码拥有出色的适应性,遗憾的是,至少在目前这还是软件工业一厢情愿的想法。 当然,我们没必要因此对多核平台丧失信心,对X86 PC来说,使用多核心处理器能够极大提升系统的多任务效能,你可以在相同的时间里执行多项任务,借此提高办公效率—在软件业来不及跟上的时候,办公用户或许能够更多体验到双核平台的优势所在。
专用协处理器实现效能跨越
PWRficient的高度整合思想、SUN UltraSPARC T1根据任务定制的精简核心、多任务方案令人耳目一新,但这两者其实都只是在现有多核架构基础上的革新,处理器本身仍然基于对等的多核心设计。
微处理器领域真正意义的架构革命将在未来数年内诞生,那就是多核架构将从通用的对等设计迁移到“主核心+协处理器”的非对等设计,亦即处理器中只有一个或数个通用核心承担任务指派功能,诸如浮点运算、HDTV视频解码、Java语言执行等任务都可以由专门的DSP硬件核心来完成,由此实现处理器执行效率和最终性能的大幅度跃进—IBM Cell、英特尔Many Core和AMD HyperTransport协处理器平台便是该种思想的典型代表。
下面,我们便从Cell入手,向大家介绍这种极具前途的新颖设计。
图3 Cell处理器基于“PPE主处理单元+SPE协处理器”的专用化设计,实现浮点性能的飞跃。
IBM Cell:开创全新的多核架构
IBM为索尼PS3游戏机定制的Cell是一枚拥有9个硬件核心的多核处理器,它的多核结构同以往的多核心产品完全不同。在Cell芯片中,只有一个核心拥有完整的功能,被称为主处理器,其余8个核心都是专门用于浮点运算的协处理器。其中,主处理器只是PowerPC 970的精简版本,其主要职能就是负责任务的分配,实际的浮点运算工作都是由协处理器来完成。
由于Cell中的协处理器只负责浮点运算任务,所需的运算规则非常简单,对应的电路逻辑同样如此,只要CPU运行频率足够高,Cell就能够获得惊人的浮点效能。而由于电路逻辑简单,主处理器和协处理器都可以轻松工作在很高的频率上—Cell起步频率即达到4GHz就是最好的证明。在高效率的专用核心和高频率的帮助下,Cell获得了高达256Gigaflops(2560亿次浮点运算每秒)的浮点运算能力,接近超级计算机的水准,远远超越目前所有的X86和RISC处理器。
作为对比,英特尔的4路Montecito安腾(双内核)系统也仅获得45Gigaflops的浮点性能。更令人惊讶的是,Cell只花费了区区2.34亿个晶体管,功耗在80-100瓦左右,能源利用效率比现在设计最佳的RISC和X86处理器都高出数十倍,这足以说明Cell专用、多核设计思想的优越性。
必须提到的是,Cell并非通用的处理器,虽然它具有极强悍的浮点运算性能,可很好满足游戏机和多媒体应用,但整数性能和动态指令执行性能并不理想,这是由任务的形态所决定的。未来耗费计算机运算性能最多的主要是3D图形、HDTV解码、科学运算之类的应用,所涉及到的其实都是浮点运算,整数运算只是决定操作系统和应用软件的运行效能(操作系统、Office软件等),而这部分应用对处理器性能要求并不苛刻,因此Cell将侧重点放在浮点运算性能,与SUN UltraSPARC T1专注事务处理的设计可以说有异曲同工之妙。
相较而言,当前的X86处理器都采用通用的核心,为了同时提高整数性能和浮点性能,CPU核心被设计得越来越臃肿,晶体管消耗越来越多,不仅导致芯片的功耗急剧增大,频率提升速度也非常缓慢。而且通用设计的另一个弊病在于,不管执行什么任务,芯片内的所有逻辑单元都消耗电力,导致X86芯片普遍存在能源利用率低的问题。
可以预见,倘若继续沿着现有的通用、多核设计方案向前发展,X86处理器将会陷入一系列的困境,例如芯片高度复杂,开发和制造成本越来越高、芯片功耗无法控制等等。面对这样的现实,X86业界转变思想势在必行。显然,IBM Cell的新颖设计非常值得参考,英特尔的Many Core和AMD HyperTransport协处理器计划可以视作Cell思想的变种。
图4 DSP与通用CPU执行专用任务时的效能和效率对比
Many Core:Cell思想的继承与发展
在2005年的IDF技术峰会上,英特尔对外公布了Many Core超多核发展蓝图。随着时间推移,Many Core计划越来越明晰,我们可以肯定它将成为英特尔未来的X86处理器架构。Many Core采用的也是类似Cell的专用化结构,我们知道,英特尔的四核心处理器采用对等设计,每个内核地位相同,而转到Many Core架构之后,其中的某一个或几个内核可以被置换为若干数量的DSP逻辑,保留下来的X86核心执行所有的通用任务以及对特殊任务的分派;DSP则用于某些特殊任务的处理。
依照应用不同,这些DSP类型可以是Java解释器、MPEG视频引擎、存储控制器、物理处理器等等。在处理这类任务时,DSP的效能远优于通用的X86核心,功耗也低得多。在图4中我们可以看到DSP与通用CPU的效率对比:功耗仅2瓦、特定功能的DSP芯片,在处理对应任务时的效能比75瓦功耗的通用CPU更加出色,且由于DSP构造简单、频率提升非常容易;由于DSP效能提升速度比通用处理器快得多,这样随着时间的推移,DSP的效能优势将越来越明显。
而如果处理器将高负载的专用任务转交给DSP执行之后,那么主核心的运算压力就大大减轻,系统整体效能将获得明显提升。
第一代Many Core架构处理器可能采用“3个通用X86核心+16个DSP内核”的组合(图5),我们可以看到,它的原型是一枚四核心处理器,只是将其中一个核心置换成16个DSP逻辑而已,因此处理器的总体结构和晶体管规模都不会有多大变化,但产品的实际水准将获得大幅度增强。在执行Java程序、视频解码、3D渲染等耗用CPU资源的任务中,DSP的效能都大幅优于通用核心,因此Many Core产品在执行这类专用任务时会有飞跃性的性能增益。
同时,DSP逻辑的能耗只有通用核心的几十分之一,可以让处理器的功耗出现可观的降低。当然,如果我们将英特尔的Many Core处理器与Cell相比,便会发现一个明显的差异:Cell的主核心非常简单,协处理器则非常强大;而Many Core的通用核心仍然居于主导地位,DSP更多只是一种辅助。
这种差异源自于二者不同的定位:Cell只要求具备强劲的浮点效能,而对整数运算不作要求,因此通用的主核心可以非常精简;但Many Core必须考虑兼容大量的X86应用软件,专用的任务居于从属性地位,在第一代产品中采用“三个通用核心+16个DSP核心”的组合应该是比较恰当的。
根据英特尔的远景规划,第二代Many Core产品将在2015年前后面世。这当然过于遥远了,但我们不妨来看看它是一款什么样的产品(图6)—拥有8个通用X86核心、64个专用DSP逻辑,片内缓存容量高达1GB,晶体管规模则达到200亿。受限于半导体工艺,后两个目标或许很难完全实现,但Many Core设计将毋庸置疑成为标准,而英特尔从这往后将逐步引入Many Core Array架构,不断增强DSP的数量以及执行能力,通用核心的地位将随着时间推移不断减弱,直到最后完全可能实现以DSP占主导地位的专用化运算模式。
图5 从四核心平滑升级到“三核心+16DSP”的方案,即将其中一个通用核心置换成DSP阵列。
HyperTransport协处理器系统
在英特尔对Many Core概念作出具体探讨之时,AMD也在考虑自己的未来处理器架构。但与英特尔不同的是,AMD尚未考虑另起炉灶的Many Core计划,而是利用现有的HyperTransport连接架构,对多路服务器系统进行拓展。
Cray公司(克雷,著名的高性能计算机制造商)希望能在基于Opteron的超级计算机中使用矢量处理单元,以提升计算机的矢量运算效能。AMD方面并不是简单考虑在Opteron核心中增加一个矢量逻辑了事,而是计划以此为契机,建立一个以AMD为中心的企业生态圈—这或许过于抽象,但看完下文的分析之后大家便能够明了其中的含义。
我们知道,现有的Opteron多路系统并非采用共享前端总线的方式连接,而是借助专用的HyperTransport总线实现芯片间的直连。这样,每一颗Opteron处理器都可以直接与其他的处理器进行数据交换或缓存同步,不必占用内存空间,无论系统中有多少数量的Opteron,整套系统都能够保持高效率的运作。在该套平台中,HyperTransport总线处于中枢地位,而它除了作为处理器连接总线外,还可以连接PCI-X控制器、PCI Express控制器以及I/O控制芯片,也就是充当芯片间的高速连接通路。
AMD公司考虑的一套协处理器扩展方案也是以此为基础,即为多路Opteron平台开发各种功能的协处理器,这些协处理器都通过HyperTransport总线与Opteron处理器直接连接。对Cray提出的需求,AMD给出的解决方案就是,将八路Opteron中的一颗Opteron处理器置换成矢量协处理器,以此实现矢量计算性能的大幅度增长,而Opteron平台本身不需要作任何形式的变动。
在未来,这种拓展架构也可以延伸到PC领域,例如在PC中挂接基于HyperTransport总线的浮点协处理器、物理协处理器、视频解码器、专门针对Java程序的硬件解释器,甚至可以是由nVIDIA或ATI开发的图形处理器。为达成上述目标,AMD必须设计出一个高度稳定的统一接口方便用户进行扩展,而借助各种各样的协处理器,AMD64系统的性能将获得空前强化。
如果从逻辑层面来看,AMD HyperTransport协处理器系统的实质与英特尔Many Core平台其实完全相同,两者的区别更多是在物理组成方式:Many Core将专用的DSP逻辑直接整合于处理器内部,AMD的协处理器系统则是借助HyperTransport总线在外部挂接,这样用户就不必为了获得额外的性能购买新机,直接选择相应的协处理器挂接即可。由于协处理器类型将会非常丰富,每个用户都能从中找到最适合自己的产品,这在无形之中增强了AMD HyperTransport协处理器平台之于Many Core平台的竞争力。
HyperTransport协处理器方案最富杀伤力的地方并非在于灵活性,而在于AMD所创建的“共生模式”。AMD计划将HyperTransport协处理器授权给其他的专业IC设计公司,这样大量的第三方公司都可以为AMD64平台开发协处理器并分别销售,AMD自身只需要负责通用处理器的开发和HyperTransport原生态的维护。基于共同的利益,大量的第三方IC设计公司将紧密围绕AMD公司共同发展HyperTransport平台:通过销售协处理器,第三方IC公司能够获得丰厚的回报,AMD则通过平台授权和AMD64处理器的销售获得利润、并在第三方公司的帮助下提高市场份额。
至于终端用户,则可以在现有基础上通过增加或升级协处理器达成大幅度提高系统性能的目的—这便是AMD倡导的“友好生态系统”的实质。与AMD的开放策略形成鲜明对比,英特尔将变得越来越封闭,从迅驰到VIIV平台,第三方厂商的机会越来越少,英特尔希望将全部的商业利润都归自己所有,而不是与合作厂商共同分享机会。在这样的背景下,越来越多IC厂商转向对AMD平台的支持,因此AMD所倡导的友好生态系统其实已经有相当良好的基础。
图6 2015年的处理器蓝图,Many Core设计成为标准
前瞻:架构革命的前夜
尽管X86业界依然按部就班地进行性能提升,软件工业也是在以往基础上匍匐前进,但这场架构革命距离我们并不遥远。在RISC领域,针对实际应用对产品作定制化设计成为各个厂商的共识,而各个厂商在开发新一代架构时都会有意识地为处理器预留扩展定制的空间。
相信在未来,我们可以看到越来越多的专用型RISC处理器,例如游戏机/视频任务处理器、网络处理器、低耗能通用处理器、嵌入处理器等等;而在X86领域,英特尔和AMD在今后两年内还是会基于传统的多核心方案继续发展,其中,英特尔在下半年带来的Merom架构以高效率见长,但它非常缺乏扩展的空间;到2008年,英特尔才会陆续引入CSI总线并整合内存控制器,解决多路服务器系统扩展性的问题;大约到2010年,我们有望看到第一代Many Core处理器出台,X86处理器将转向一个全新的多核时代。
而AMD公司在未来两年内更多是对现有的AMD64架构进行改良,例如引入双通道DDR2-800支持和65纳米SOI工艺,服务器领域Opteron的优势不太容易被打破。大约在2008年,AMD将带来新一代的K9或K10,高度整合设计将被引入,更关键的是,AMD将带来HyperTransport 3.0和4.0版总线技术规范,并有可能开始启动协处理器计划。
由于HyperTransport 3.0/4.0将直接对协处理器提供支持,AMD只需要解决主处理器与协处理器的任务协作以及硬件连接标准的制定即可,接下来的协处理器开发工作便主要依靠第三方IC公司加以实现。如果AMD在新一轮变革中再度领先,那么在大量第三方企业和用户的支持下,英特尔在微处理器市场的主导优势很可能彻底丧失,最终出现两大平台分庭抗礼的格局。
当前微处理器技术发展的几个方向
提高架构执行效率、多核心设计、灵活的扩展弹性、深层次的功能整合是当前微处理器领域的四大技术发展方向。处理器效率低下的弊端主要出现在X86领域,X86指令集臃肿复杂,指令效率已明显低于RISC体系,如果不在芯片设计方面加以弥补,X86处理器很难获得媲美RISC产品的卓越性能。
衡量处理器效率通常有两个指标:一是芯片的能源利用效率,也就是每瓦性能,在消耗同等能源条件下,最终性能高的产品能源效率就较高;第二个指标便是芯片的晶体管效率,我们可以引入“每晶体管性能”来衡量,在消耗等量晶体管数量条件下,芯片效能高者效率就越高。
晶体管规模越大,制造成本越高,对芯片厂商来说,提高每晶体管性能能够在保持成本不变的前提下获得更卓越的性能。一般来说,每瓦性能和每晶体管性能总是被结合起来讨论,不同指令体系的产品在此相差甚远,例如当前顶级的RISC处理器与顶级的X86处理器作对比,我们便会发现X86芯片远远落后。
即便基于相同的指令体系但设计不同的产品,也可能存在悬殊的效率差异—一个最典型的例子就是英特尔Netburst架构与AMD64架构,Pentium 4芯片的功耗更高,晶体管规模也普遍更大,但性能无法同对应的AMD64架构产品抗衡。且Pentium 4芯片的能耗已超过百瓦,达到风冷散热的极限,无法进一步向上提升。
为了解决这个问题,英特尔将在今年中期引入Merom架构来代替Netburst,诚如我们之前的分析,Merom引入了RISC精简指令的思想,对X86架构进行根本性的改进得以大幅提高效率。而在RISC技术领域,提高效率也一直都是各制造商的目标,虽然RISC芯片在这方面已占据先天优势,但各芯片厂商仍然在此方面花费巨大的精力并获得斐然成果。在本文关于P.A.Semi的PWRficient双核处理器、SUN UltraSPARC T1八核处理器的分析中,我们将能看到这一点。
多核心设计可谓是提高每晶体管效能的最佳手段。在单核产品中,提高性能主要通过提高频率和增大缓存来实现,前者会导致芯片功耗的提升,后者则会让芯片晶体管规模激增,造成芯片成本大幅度上扬。尽管代价高昂,这两种措施也只能带来小幅度性能提升。而如果引入多核技术,便可以在较低频率、较小缓存的条件下达到大幅提高性能的目的。相比大缓存的单核产品,耗费同样数量晶体管的多核心处理器拥有更出色的效能,同样在每瓦性能方面,多核设计也有明显的优势。
正因为如此,当IBM于2001年率先推出双核心产品之后,其他高端RISC处理器厂商也迅速跟进,双核心设计由此成为高端RISC处理器的标准。而X86业界直到去年中期才开始尝试推出双核产品,预计实现全面普及要等到2006-2007年。
此时,RISC业界又朝向多核、多线程的方向发展,四核心、八核心设计纷纷登台亮相,并行线程数量多达32条,并且开始从通用多核体系转向简化核以及专用化的DSP,实现性能的跨越性提升—这些新设计和新方向也都将被X86业界所借鉴。
在多路服务器领域,芯片能否具有良好的扩展弹性至关重要,而这主要取决于以下两大要素:第一,处理器拥有一条专门的芯片间直连总线,这样当系统中拥有多枚处理器的时候,各个处理器可借助该总线进行通讯,从而实现高效的任务协作;第二,处理器是否将内存控制器直接整合、拥有一套独立的内存系统。这方面反面的例子就是英特尔的Xeon平台,如果要构建多路Xeon系统,那么就必须依赖于芯片组,多枚处理器共同分享一套内存系统。
处理器之间如果需要进行数据通讯,就必须经由“前端总线-北桥-内存”的链路,这个过程不仅耗费了可观的时钟周期,也消耗了总线和内存资源。更严重的是,这类系统存在内存抢占和缓存同步两个难题:内存抢占是指当多个处理器同时发起对内存中的某段数据进行存取指令时,各个处理器必须以抢占的方式获得内存存取权限—如果有一个处理器对某段数据进行修改,该处理器就会锁定这段数据,其他的处理器必须等待,导致性能提升幅度大打折扣。
系统中的处理器数量越多,此种内存抢占现象就会越频繁,最糟糕的时候将导致系统的性能不升反降。缓存同步主要出现在多处理器/多内核协作处理同一任务时,各个处理器或内核必须进行缓存同步。由于Xeon缺乏直接沟通渠道,缓存同步操作也必须依赖“前端总线-北桥-内存”的链路进行,效率较为低下。
相比之下,AMD的Opteron平台就没有这两个问题:借助HyperTransort总线,Opteron处理器可实现直接通讯,加之Opteron拥有独立的内存控制器,不存在内存抢占的问题,因此该平台非常易于扩展。Opteron在服务器领域对Xeon造成强大的压力,很大程度上就是得益于此。至于RISC领域,芯片直连总线和整合内存控制器也早已成为处理器的标准设计,而英特尔在自己的技术蓝图上也表明将在2008年开始采用类似的设计。
对应用于PC的X86处理器而言,处理器的扩展弹性无关紧要,但整合内存控制器还是非常有意义,原因在于该项设计能够有效降低内存系统的延迟时间。事实上,这只是整合运动的开始,不少处理器厂商都在考虑让处理器整合越来越多的功能,例如SUN和AMD都在考虑在下一代架构中直接整合PCI Express控制器、I/O控制器甚至是图形功能,借此提升系统的I/O性能以及降低平台成本;P.A.Semi的PWRficient处理器则整合了10GbE和GbE网络控制器以及PCI Express控制器,目的是提高相应服务器的网络性能和I/O传输效能。尽管其他的处理器厂商似乎不为所动,但高度的整合无疑是未来处理器的发展方向之一。
多核处理器同软件配合的讨论
在多核心处理器如火如荼发展的时候,软件业却远远没有来得及为此作准备。最早发现问题的是PS3、Xbox 360等平台的游戏开发商,由于两套系统完全不同于前一代产品,游戏开发者对此怨声载道,程序员普遍认为对多核心处理器编程近乎是一种灾难,因为程序员必须深入了解相应的硬件平台,然后据此编写代码,而让代码在两个核心之间平衡更是一大难题。
相对来说,PS3的Cell平台难度更大,程序员首次接触到主-从方式的多核平台,对如何发挥出协处理器的性能优势缺乏经验,由于编码的不到位,让Cell平台无法表现出与实际相称的高性能。同样的事情现在也出现在X86领域,双核平台的出现让软件开发商考虑对双核优化的重要性—但比较幸运的是,诸如办公软件、网页浏览器、内容创建工具等常规的商务软件对CPU性能要求不高,对双核优化也不见得会带来什么实质性的益处,因此主要的X86软件都不需要作出变动,真正需要考虑双核平台的仍然是X86平台下的游戏。
对此游戏开发商也是相当头疼,因为X86多核与PS3、Xbox 360游戏机的多核平台不同,未来的Many Core或HyperTransport协处理器平台也许又要作出改动。为了充分发挥硬件性能,设备厂商希望开发商深入了解对应多核处理器的细节—问题是现存多种多核架构,一一研究代价巨大。开发者都希望能够利用一个硬件无关的自动化通用开发平台进行设计开发,这样编码工作将变得相当容易,同时也能够保证代码拥有出色的适应性,遗憾的是,至少在目前这还是软件工业一厢情愿的想法。
当然,我们没必要因此对多核平台丧失信心,对X86 PC来说,使用多核心处理器能够极大提升系统的多任务效能,你可以在相同的时间里执行多项任务,借此提高办公效率—在软件业来不及跟上的时候,办公用户或许能够更多体验到双核平台的优势所在。