CELL体系的结构、性能及其应用前景
2011-03-18李文韬
李文韬
(同济大学 软件学院,上海 201804)
1 CELL体系结构产生的背景
1.1 桌面计算机的结构演化与回归
在近30年的桌面系统体系结构的变迁中,除了CPU以外,桌面系统的其他部件的功能也在不断增强。1985年的Amiga机器由于结合工作站CPU和视频游戏处理芯片而在DOS时代实现了GUI多用户界面。虽然Amiga公司1994年破产,但 Amiga机器也创下了百万台的销量。
纵观历史,计算机界似乎总是在不停的重复着从前进到回退再前进的道路。
在处理器体系结构中的上一次回归是RISC。当VAX开启了变长指令,多寻址模式等CISC技术之后,处理器设计变得越来越复杂,纯粹的 CISC很难设计,也难以实现;这时提倡精简的RISC替代了VAX处理器体系结构称主流技术。在1980~1990年代,RISC思想几乎遍布所有厂商的处理器。即使CISC风格的Intel和AMD处理器也借鉴了RISC的经验,处理器并不直接执行复杂而功能强大的 x86指令级,而将其转换为数条简单的内部微码,甚至通过解释执行的方法在一个RISC风格的核心上运行。RISC只针对最常用的简单指令设计并优化,提供大尺寸的寄存器堆,并使用超标量多发射技术,进一步结合乱序执行以减少处理器中的暂停。
但是,今天的RISC已经背离它的宗旨越来越远了。为了获取更高的性能,RISC处理器(包括 CISC on RISC的x86处理器)的发射宽度越来越大,流水线越来越深,分支预测算法层次越来越多,寄存器数目也不断增加,更值得注意的是指令集不断被扩展。比较一下 PA-RISC,Alpha21264-EV8,SPARC IV,PowerPC G4,Power4这些最新 RISC的代表和 Pentium III/IV以及 Althron,将可发现RISC处理器并不比CISC简单多少,而且Intel总能设计出比RISC主频更高的CISC处理器。
在去除工艺上的差异之后,大部分RISC在Die面积、晶体管数目和最大功耗上都超过了同期的 CISC处理器。RISC处理器的大量硅片面积被不断增大的 Cache、集成的存储控制接口所占用,当然这也使得RISC处理器在Spec FP性能上一直领先于x86系列。但是x86处理器在工作频率上却远远超出了所有的RISC,而一般的常识却是简单的RISC更容易实现高主频。在多发射超标量和存储接口的上的重点设计制约了RISC处理器的主频提升。对更高性能的渴望让RISC变得越来越庞大、复杂,如今新处理器设计获得的性能回报变得越来越少,而复杂度却在急速增长。处理器技术又一次接近了发展瓶颈,新的技术回归过程开始启动,所不同的是这次回归的是向量并行技术,而Cell是这一过程的先行者。
1.2 向量化多核心的CELL处理器
当桌面系统的网络,图形等部分也已经复杂到用专门的处理器进行处理时。为了降低生产成本,并最大限度利用集成度提高和芯片内部互连的优势,STI选择了Cell结构,将多个处理器和存储,I/O控制逻辑整合到一个Cell芯片中。
2005国际固态电路年会ISSCC上最重要的一件事情莫过于,2月7号STI联盟第一次公开发布Cell处理器的细节。在ISSCC2005会议上共有5篇论文与Cell处理器相关,涉及Cell处理器的总体结构,流处理单元,电路设计,存储和I/O。从Cell展现的性能和微体系结构上看,无论最终是否在市场上获得成功,它都是主流处理器设计的一个巨大飞跃。正如IBM的设计目标“supercomputer on desktop”所阐述的,Cell结合了多核心,多线程,Superscalar,功耗控制,高速存储接口和I/O等所有处理器和体系结构设计中顶尖的技术,以及IBM最新的90纳米铜互连SOI生产工艺[1]。从Cell上可以看到曾经流行的向量处理方法再次回归,这次向量并行技术给微处理器设计带来的前所未有的飞跃。
2 CELL的结构与性能
2.1 CELL的结构总揽
一个单独的CELL芯片的组成包括[2]:1个POWER处理器单元(PPE);8个协同处理器单元(SPEs);单元相互连接总线(EIB);2个Rambus XDR内存控制器;Rambus Flex IO接口。其中,按分裂不同,可以将SPE分解成SXU、LS、SMF或者SPU、SMF。
2.2 CELL的性能
在ISSCC2005上公布的第一款Cell性能指标包括:占用圆片Die面积 221mm2;晶体管数目234M;90纳米8层铜互连低 K介质 SOI制造工艺,1.3V工作电压下主频为4.6GHz,预测功耗在50到80W之间,使用散热器时的工作温度为 85摄氏度;外部I/O互连通讯主频为6.4GHz,I/O与存储总带宽超过100GB/s;9个核心同时运行10个线程;内部使用4X128位的环状总线互连,96Bytes/Cycle;单精度浮点性能超过256GFlops,双精度浮点超过25GFlops。
3 CELL与其它体系结构的比较
3.1 Cell与PC处理器
由于Intel和AMD推动x86体系结构,不断推出高性能和大量廉价的处理器x86在每一场对决中均获胜出。当x86和高速的RISC竞争时,它利用了和RISC相似的技术拉近了速度差距,并使得RISC已经没有明显的优势。三个曾经显赫的RISC处理器系列(Alpha MIPS PA-RISC)已经成为历史。即使Intel自己的Itanium也快被Opteron扫出中低端服务器市场。Sun也受到了打击,已经宣布取消下一代Ultra SPARC产品线,转向全新的设计(MAJC?)并且开始销售威胁自己低端产品的Opteron服务器。Power似乎还在挣扎,但这也是因为IBM有足够的资源支持他,并保持其竞争力,并且在Power面向的高端市场(Apple MAC)上x86还缺乏号召力。
对于Intel和AMD而言,Cell是一个完全不同的竞争者。主频的差距如此巨大,除了对x86结构大修之外别无他法来赶上性能差距。x86并非没有任何触动,但是不论Intel或者AMD都没有足够新颖的改变以跟上Cell。有传闻说Intel现在得到了许多NVidia的专利许可[Intel + NVidia]并考虑在一个芯片上集成一打处理器核心。但是如果 Intel在一个芯片上集成超过2个P4处理器,在成本上将不会有任何优势。最大的可能就是x86复制Cell的设计,用多个简单的核心来加速应用并控制成本。
但是与PC处理器竞争并不是简单的性能问题。PC用了5年时间来赶超Amiga的硬件系统,用了10年时间才用上与之类似的操作系统。相同的例子也发生在Apple的Mac平台上。性能的优势并不足以对PC处理器产生威胁,即使及其巨大的性能领先,关键的问题在软件。Cell可以运行多个相同的操作系统,Linux+特殊的翻译软件,它可以用难以察觉区别的方式模拟PC,软件和价格也将不会成为问题。
在PC市场上真正有能力对Cell性能构成威胁的不是通用CPU,而是GPU。但即使面对最先进的GPU,Cell在主频,性能,和通讯带宽上仍有巨大优势,几乎所有GPU可以加速的应用都适用于Cell,并且Cell更加通用。
3.2 Cell与服务器处理器
服务器市场上兼容性和软件基础的因素要少。很多应用是可以向量化。后台数据库处理是服务器领域最常见的应用,现在的研究表明这类应用可以通过GPU加速,那么相同的方法也可以在Cell上使用。
然而服务器中有xml这种难以从SPE并行向量结构中获益的应用。实际上这类应用大多是存储I/O密集型的,特殊的存储结构或许可以对提高性能有所帮助。单纯的高性能处理器都无法提高这类应用的效率。有很多应用不能从Cell中获得更高效率,将Sun服务器上的EDA应用移植到Cell上也几乎不可能,因此Cell在服务器市场上的作为目前看来还只能依靠IBM对自己服务器结构的升级决策。
如果服务器需要的是上佳的分布式处理能力和灵活的扩展性,Cell无疑是最好选择,但是应用是困扰其在服务器上广泛应用的最大问题。
3.3 Cell与超级计算处理器
Cell的设计风格容易让人联想起Cray的超级计算系统。无论是熟悉的向量处理方式还是在设计过程中对性能孜孜不倦的追求。如果纯粹计算峰值性能,要进入目前的Top500行列只需要8颗Cell芯片,也就是说如果有能力让两个PS3协同工作,任何人都可以进入Top500。560个 Cell芯片就可以获得第一的排名。
另外的超级计算应用需要大量的内部通讯,因此在 PC集群上运行效果不佳。Top500上没有将这部分评价单独出来,但确实有这样一个利用大机柜系统,曾一度被Cray统治,PC集群尚不得门而入的领域。Cell具有高速的通讯连接,这使得他非常适合于这类领域,虽然大量Cell的协同工作还需进一步的工程工作,但从 Cell的第一份专利开始多Cell多级互连就是最重要的内容之一。Cell不仅仅会取代PC集群,在集群失败的领域也可一展身手。
在设计Cell这样的系统时往往有很多折中,几乎在所有的场合Cell的设计者都没有选择折中而是直接选择了性能,即使这会使得程序员的工作变得复杂。这也让人联想到Cray。从60年代到90年代IBM和Cray之间争相建造最快的计算机。Cray每次都获得了完美的胜利,他将性能边界提高到这样的水平:最后能击败Cray设计的只能是下一代Cray设计。IBM制造了灵活的商用机器,Cray选择更少的灵活性和特性,大部分设计都在追求无止境的速度。现在Cell在延续曾经的对手Cray所选择的道路,虽然Cell没有使用砷化镓工艺,也没有使用液态氮冷却系统。
3.4 Cell与嵌入式处理器
Cell进入高性能嵌入式领域或许只是时间问题,对于更广阔的其他嵌入式应用而言,功耗是制约Cell使用的最大问题。即将使用的65纳米生产工艺可以部分解决这一问题。并且Cell本身包括10个温度探测器和控制电路,在无需如此巨大的SPE处理能力时可以关闭数个SPE内核以降低功耗。Cell在开始设计时就说明了单个芯片中的SPE数目是可选择的。有很多公司使用 IBM的硅处理技术,如果有合适的许可证制度Samsung, Chartered,Infineon甚至AMD都会需要并生产 Cell。不同厂商生产的 Cell芯片内部的 SPE数目和性能可能并不相同,但这并不阻碍软件Cell在分布式计算环境中在不同厂商的Cell芯片上运行。这似乎是一个看似大同的Cell芯片社会。
4 CELL的应用及前景
4.1 CELL的应用
4.1.1 对并行应用的支持
作为一个侧重向量结构设计的芯片,向量并行是最合适的应用。科学计算,物理和生物模拟这些以往在向量并行超级计算机中广泛使用的计算模式都可以从 Cell体系结构中受益。而STI声称Cell真是一个“桌面超级计算机”的设计方案。对于传统不可向量化的应用而言,单颗Cell芯片的性能至少和两个甚至更多PowerPC 970或者P4 3.6G处理器相当。对于可向量化的应用而言唯一潜在的问题就是相对受限的内存容量。Cell芯片本身有很大的寻址能力,但是目前的XDR存储方案只支持 256MB RAM的直接连接。即使这样,Cell还是可以通过I/O单元形成Stream Processing来获得不错的性能。
现在的 GPU已经在开始处理科学计算中的部分问题了。同时对于通用或者桌面应用领域,GPU也开始逐步分担CPU的繁重计算任务。这是完全合理的,很早以前NVidia的GPU在流水线数量,深度和功能单元和晶体管数目上已经超过了Intel的x86处理器。计算机中的3D图形芯片在很多性能上早已超过通用处理器。
Cell的结构和运行方式和GPU很接近,目前GPU在高性能和通用领域的进展几乎无一例外的都可以完全套用到Cell上,并且Cell具有更好的通用性,更好的移植环境和更高更均衡的性能支持。
而从设计一开始Cell就面向了更加通用的领域,而GPU一直专门正对图形处理。对于开发者而言改写那些非3D的应用程序在Cell上要更容易写。并且Cell有快速的内部总线供主处理核心和向量处理核心通讯使用,这和目前 GPU的使用方式有本质的区别。
4.1.2 对并行应用的支持桌面应用
除了那些目前GPU已经可以加速的桌面应用之外,兼容PowerPC的PPE核心为Cell提供的广阔的应用前景。桌面应用的一个重要问题就是需要一个合适的操作系统。很难相信Microsoft会乐意为Cell芯片开发一个Windows版本。IBM声称在基于Cell的工作站上已经可以同时运行多个操作系统,包括目前流行的 Linux。Linux是一个强壮的操作系统,并且是目前流行的话题,但它尚不足以成为一个消费型的操作系统。另外两个可能在 Cell上运行的操作系统是OS X和AIX,而Apple的OS X正是一个成熟的消费型操作系统。经过多年的发展OS X已经成为一个易用,界面优化,功能强大的桌面型操作系统,虽然由于Apple不打算向Mac之外的机器提供License和软件支持,其市场份额一直局限在专用领域。但Cell出现的时机可能为OS X再次进入广大的桌面市场提供了机会。
4.1.3 对并行应用的支持在分布式计算领域
Cell是一个高性能分布式计算体系结构。它由硬件和软件Cell构成,软件Cell包括数据和程序,它们被送往硬件Cell进行计算并返回结果,机间耦合度强,属于异构性多处理机系统[3]。Cell被设计以适合从 PDA到服务器的全部工作,可以用完全不同的系统构建一个adhoc Cell计算机。一个Cell系统中的单一计算处理单元甚至单独的一个Cell都是高性能的处理器。Cell在某些指定的应用上能够接近理论最大性能。预期低廉的价格,极高的性能和广泛的使用使得Cell使构造分布式计算环境的良好选择。
4.1.4 CELL在嵌入式领域的应用
STI的另外一个成员Toshiba计划在自己的HDTV中使用Cell芯片,这为Cell芯片开辟了广阔的嵌入式应用市场。注意到 IBM一直将Real Time和Security作为Cell的设计目标之一,而这两点是目前嵌入式市场最迫切的要求。
视频和音频是两个可以不断吞噬处理能力的领域。GPU已经被广泛用于加速音频处理,而Cell比GPU更加通用、性能更高。音频总是被分成多个通道分别处理之后在混音,许多操作都可以被向量化。未来的 HDTV这样的嵌入式往往需要一个高性能的处理器加上一个专用的 DSP芯片来完成视频/音频解码、纠错、信号分离等任务,开发一个专用芯片代价极高并且昂贵。Cell的强大性能意味着无需开发专用芯片,单一Cell芯片就足以完成所有的任务。Cell在高性能嵌入式市场上也有良好的前景。
4.1.5 游戏市场
Cell的第一个商业领域就是游戏市场,SCEI最新的PS3已经在2005年3月进行过内部展示。Sony(SCEI)声称其主要的游戏软件开发商已经获得了基于Cell的PS3开发系统,包括PS原型,基于Cell的开发工作站和专门针对 Cell优化的开发环境和 OpenGL库。Cell的设计师紧盯 raw computing power而不是图形能力(PS3上将使用NVidia的图形处理芯片),由于到硬件功能被转移到软件上使得开者有更多的灵活性。现在的问题是使用了4个Cell芯片互连结构和NVidia最新图形芯片的PS3是否能成为第一个实现实时光影跟踪的游戏终端。
4.2 CELL的市场前景
处理器的设计、开发和制造有巨大的成本开销,市场份额的大小往往是处理器成败的关键因素。
虽然一直被吹嘘为PlayStation 3的主要技术,Cell的设计目标显然要更加宏大。作为巨大的电子制造商,Sony和Toshiba购买各式各样不同的组件,开发Cell的一个主要目标就是这两家公司希望在构建自己产品的时候降低开销。诸如Blu-ray,HDTV和HD Camcorders以及PS3这样的下一代消费类电子产品需要新的芯片来提供所需的高级计算能力。Cell将应用在全部这些需求中且可能用得更广,IBM将会用Cell来构建服务器,同时Cell可以销售给第三方制造商。
对于首先使用Cell的PlayStation,一年内因为PS3而销售的Cell芯片就有8000万颗。虽然还不足以超过x86芯片在PC市场上的销售量,但对于一个处理器而言这已经是一个相当好的起步了。更值得注意的是Toshiba在其HDTV中使用Cell芯片,同时宣布Cell将被STI联盟之外的公司用于类似的设计。与全球巨大的TV市场相比,PC的销量就不足为奇了。H.264标准下的HDTV需要极大的处理能力。和传统的定制芯片比较起来通用处理器要低效很多,虽然专用芯片开发起来相当复杂,昂贵,但是巨大的需求量可以降低价格并且可以使功耗降到最小。然后Cell的加入将使一切改变,一颗通用目的的向量处理器将同时具有充足的处理性能和低廉的价格,开发简单并且有通用的特征。
IBM已经制造了基于Cell芯片的工作站,并且预期用Cell处理器板构造的超级计算机在一个 Rack上可以达到16Pflops的性能。64个Rack机架就可以达到TFLOPS[4]。虽然目前基于Cell的工作站只被SCEI用于PS3的开发。未来IBM没有任何理由不用Cell替代 PowerPC和Power处理器来生产他们原本Power构架下的工作站和服务器。
另一个更雄心勃勃的可能市场是PC。虽然STI在Cell设计中并没有表现出对 PC市场的关注,几乎每一个关注Cell芯片的人都忍不住预测 Cell对PC市场的冲击。Linux的出现已经使得Windows不再是PC操作系统和软件的唯一选择,并且Linux的跨平台特性使得应用移植到不同体系结构下相对简单。Cell能否在给 x86处理器带来类似的冲击呢?就性能、功耗和成本而言,x86已经没有任何优势。如果Cell能够获得价格较低的消费级操作系统支持,用虚拟化或者二进制翻译技术来面对以往 Wintel联盟克敌制胜的巨大软件应用基础,它将会在PC市场上有所作为。