Chen 的个人资料既不回头,何必不忘。既然无缘,何须誓言。今日种种...照片日志列表更多 工具 帮助

日志


6月17日

zzCell体系结构解释-第五部分:结论和参考文献

小结:


Cell体系结构包含了下面的内容:


Cell处理器


这是一个9核心的处理器,其中一个是基于Power构建兼容PowerPC,作为控制器的核心。其余8个称作SPE的是高性能的向量处理器。每一个SPE 包含自己的高速RAM,可以达到32GFlops(32位单精度)的性能。SPE是独立的处理器可以单独工作也可以链接起来处理流式数据,这时不同的 SPE将完成流处理中的不同步骤。这种充当流处理器的能力可以完全开发目前Cell 10倍于最快桌面处理器的性能。


除了处理能力外Cell包含了一个高性能的多通道存储子系统,以及一组高速互连机制将Cell和其他Cell芯片或者I/O设备连接起来。


分布式处理


Cell是专门为协同工作而设计的,虽然他们可以直接通过高速内部互连连接在以前,他们也可以通过其它方式或者分布在一个网络上。Cell并不是专门为游戏或者计算而建立的,他们也可以用在从PDA到TV的设备中,并且所有基于Cell的设备可以被整合成一个单一的系统。这一特性的基础是 Cell以软件Cell为单位进行操作,软件Cell中包含了程序和数据这些例程信息。


并行计算通常比较复杂,对于Cell而言操作系统将管理所有资源并将任务均衡分布,而无需为应用重新编。如果需要更高的计算能力只需要添加更多的Cell,即使新的Cell推出也无需替换掉已有的Cell。


总之Cell是一个为分布和并行处理设计的体系结构,依照极度aggressive的设计原则而设计的强劲的计算引擎。Cell将会大量生产,以极低的价格提供巨量的计算资源。


结论


第一个基于Cell的桌面计算机将会是领先其后进许多的最快桌面系统。即使高端的多核心x86系统也不能接近他的性能。多处理器和DSP的制造商门将会有一段艰苦的和Cell战斗的日子。在以前从没有看到过如此的性能飞跃,并且未来再次看到类似飞跃的希望不大。整个工业界将感受到Cell的震动波,未来将会有巨大的改变。


极高性能并且廉价的Cell将会是尊敬的PC面临的新挑战。由于巨大软件基础的优势,PC总是能击败每一个竞争者,但是这次这个优势不那么明显了。现在很多软件都可以在linux上运行并且逐渐脱离了对x86处理器和Microsoft的依赖。现在很多PC的性能都超过了实际所需,再加上高速 JIT模拟器这一因素,如果需要的话Cell完全可以脱离PC而提高对PC的兼容能力。


Cell攻击的不仅仅是PC工业,他会在部分要求高性能的嵌入式应用领域被广泛使用。这意味着Cell的产量将会是x86处理器的数倍,而这将进一步拉低价格。由于基于PC的数字家庭娱乐方案要比基于Cell的方案更复杂,更昂贵,Cell将阻塞x86进入家庭娱乐的道路。


Cell将颠覆整个工业界,以前从未有人制造如此大的性能飞跃,即使有接近的也无法以如此低廉的价格提供。PC制造商们将被迫反击,无论 Cell未来在市场中的进展如何,未来几年中所有的处理器都会提供比目前多得多的处理资源。即使Cell最终失败,他也留下的足够多的遗产。


参考文献和进一步的阅读材料


关于Cell的微处理器报告


[Cell Patent]专利

专利编号 NO. 6,809,734 专利申请编号 NO.20020138637


[INQ] 2003年关于Cell的分析文章 http://www.theinquirer.net/?article=7078


[Recent Details] IBM网站消息

http://www-03.ibm.com/chips/news/2004/1129_cell1.html

http://www-03.ibm.com/chips/news/2004/1129_cell2.html


[Specs] Cell图片说明 http://pcweb.mycom.co.jp/photo/news/2004/11/29/011bl.jpg


[3rd party] 在Toshiba的消息发布中提到的可以向他们自己的客户销售Cell的厂商

http://www.toshiba.co.jp/about/press/2002_04/pr0201.htm


[SETI] SETI@home 利用分布式计算技术寻找外星智慧这样的工程可以从Cell中受益。SETI@home中使用了大量的FFT,可以从Cell上获得巨大的性能受益,SPE 的局部存储器特别有用。http://setiathome2.ssl.berkeley.edu/index.html


[Rambus] Sony和Toshiba获取了Rambus的许可证以在Cell中使用Rambus的技术


[GFLOPs]

如何计算这一数值的方法并没有公布,相信240GFlops这一数值指的是32位单精度的浮点操作。浮点操作可以是16位,32位(单精度)和64位(双精度)的。Top500超级计算机中考虑的是双精度浮点,因此并没有可比性。考虑到单个SPE有这样的能力,一个处理器单元PE将有能力达到 128GFLOPS(双精度),这仍然是任何正常处理器的20倍。


[G6] 假设使用的是基于Power 5的G6


[Vector] 向量处理 http://www.nus.edu.sg/Major/SVU/techinfo/vector_processing.html\


[Stream] ACM queue杂志中对流处理器的介绍 http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=128


[PC + GPU] Nvidia的高性能GPU http://www.extremetech.com/article2/0,1588,1567087,00.asp


[GPU] 一篇关于GPU并通过通过GPU集群获得高性能的论文

http://www.cs.sunysb.edu/~vislab/projects/urbansecurity/GPUcluster_SC2004.pdf


[GPGPU] GPU可以被用于通用计算。所有相关的应用都对Cell有效

http://www.gpgpu.org/

http://www.shadertech.com/


[Nvidia]

PS3将使用Nvidia的图形技术


[Top500]

最高性能前500台超级计算机,希望Cell能迅速改变它。www.top500.org


[PCShare]

计算机市场分析,在1984年C64占有最大得市场份额http://www.pegasus3d.com/total_share.html


[Intel + Nvidia]

Intel和Nvidia亲密接触?http://www.beyond3d.com/forum/viewtopic.php?t=18309


[Project Z]

Intel和Nvidia达成了协议,从HP获得了新的队伍,Project Z曝光。这一项目是一个极高并行性的处理器,单谁也不知道Intel到底在计划什么。 http://www.theinquirer.net/?article=20286


[MultiCore]

8核心的Opteron http://www.theinquirer.net/?article=20128


[Transmeta]

Transmeta退出芯片制造 http://www.theregister.com/2005/01/05/transmeta_exiting_chips/


[Alien]

PC也可以非常昂贵 http://www.alienware.com/ALX_pages/main_alx.aspx


[Future]

PC受到了未来计算的威胁 http://www.osnews.com/story.php?news_id=5987


[DirexX Next]

http://www.beyond3d.com/articles/directxnext/


[EE-GPU]

EETimes上有一组文章描述使用GPU为通用计算服务 http://www.eetimes.com/in_focus/silicon_engineering/showArticle.jhtml;jsessionid=HDHCGZVPWKEZ0QSNDBCCKH0CJUMEKJVN?articleID=55300904&_requestid=835375


[Cray]

超级计算机设计师Seymour Cray也谈论过Cell


[Entertainment]

Intel计划推出基于PC的家用多媒体中心 http://www.theinquirer.net/?article=20623

[Calc]

目前我们没有任何的性能图表,因此所有的数据和图表都是从专利或者4.6G芯片身上得出的。很多性能数值可能都是最大的猜测值。


SETI运算的5分钟?这是基于1.33GHz的G4(6小时/单元@10GFlops)一级一个4x250的Cell组,并且假设SETI客户端可以全速使用G4上的Altivec并且在PS3上也一样。


SETI使用了很多很多的FFT并且包含很多很多的乘加指令。如果我们加上G4以他的峰值运行,而PS3中的4个Cell芯片也一样,那么4Cell组合将在5分钟内完成在G4上运行6小时的SETI运算。


1.33GHz的G4有10.64GFlops等能力(使用AltiVec时每秒完成8条乘加指令)

6小时=21,600秒

21,600 * 10.64 = 229,824

229,824/1,000(4Cells@250GFlops)

=229秒

=3分49秒


保守起见选择结果为5分钟。


升级内容


超过4GHz的主频

100GB/s的存储和I/O带宽

两个XDR控制器得到25.6GB/s

两个可配置接口得到76.8GB/s

当前每个Cell的主存限制在256MB,但这是指直接相连的主存,可用通过I/O接口连接更多的内存

8个SPE,都是128位宽的向量单元,每个都有128个寄存器

SPE每周期发散两条指令

峰值256GFlops

支持双精度算术操作

每个SPE有256KB的本地存储

通过4个128位宽的环进行内部通讯,每周期可以传送96B

PPE可以处理两个线程(注意不是基于Power5结构的)

PPE上有VMX

PPE有512KB Cache

动态电源管理技术

10个热感应器

90纳米下221平凡毫米尺寸

2亿3千4百万 234M个晶体管

90纳米SOI,Low K,8层铜互连工艺

6个月内IBM开始批量生产,Sony将在1年后生产并使用65纳米工艺


可以同时运行多个操作系统包括Linux


Apple可能已经加入了,因为VMX(也就是AltiVex)是Apple倡导的,因此只需要很少的修改OS X上就可以从PPE上引导起来-虽然还需做一些优化工作。


专利中的某些体系结构已经发生了变化

本地存储的容量增加到256KB

本地存储也可以被用作"locking cache",因此它可以作为Cache或者本地存储。而在专利中明显说明本地存储不是Cache

专利中的1024位内部总线没有实现,但是多环内部总线可以每周期传送96B数据

SPE中包含了MMU和DMA控制器,而专利中没有说明SPE中包含MMU


Cell芯片


让Local Memory同时也能按照Cache的方式工作也需是一个明智的做法。这样SPE到SPE之间的数据传输将不需要再去访问RAM,这可以极大提高流处理的速度。Cell芯片中可能已经实现了Cache的控制逻辑,但可能这部分是与本地存储分离的。这样就无需在本地存储和cache之间做折中了。(但是原来剔除cache一致性协议,让设计简化的修饰亦不存在了,这可能增加了实现的困难,并限制主频进一步提高)


PowerPC PPE的核心并不是基于Power5的,这可能是最大的令人惊奇之处。PPE是一个双发射的顺序多线程PowerPC处理器,并具有VMX。这和其他现在已经非常复杂的乱序执行PowerPC处理器是完全不同的。(看起来这是一个经过简化并升级之后的Power3)


简单的PPE设计非常适合Cell。但是如此简单的核心也可能让某些应用变得缓慢,但是也有许多任务可以随着主频的提高而加速。简单的VMX也可以运行得更快。


有趣得是PPE是一个双发射处理器,这从一个侧面可以印证XBox2使用了双发射处理器得传言,另外一个传言是说这个核心实际来自未来将要公布得PowerPC 300系列处理器。


澄清


Arstechnica给这篇文章写了一篇评论,文中的内容和口气使得我必须再写一篇反驳。我从未再其他地方看到过这样的批评,我猜测这是由于误解和某人那天心情不好而造成的。


我之所以在发布之后写下这些内容是因为显然很多人都不清楚Cell的工作方式。在读完的Sony的专利之后我明白了其后优秀的想法,因此将其发掘出来并解释给大家听是一个不错的选择。 

zzCell处理器解释,第四部分:Cell对决PC

到今天PC已经击败了道路上的所有敌手。无论当时有多么接近于替代PC,所有的竞争者都消失了。如果Cell进入桌面计算机,那他可能成为PC的另外一个牺牲品。但也有理由相信Cell不仅仅成为PC面临的最大危险,同时也有击败PC的足够能力。

奉承的诚恳形式就是盗窃

20年前当工程师Jay Miner设计一个视频游戏时(他设计了Atari 2600芯片),他决定做一个更出色的工作:将一个视频游戏芯片和一个工作站处理器结合起来制作了一台桌面计算机。这个叫做Lorraine的原型最终以 Commodore Amiga的名义进入市场。Amiga用硬件加速了高色彩值的显示器,使用基于GUI的多任务操作系统,多采样声音通道和一个快速的32位处理器。在那时 PC只有文本显示器,一个嘟嘟响的扬声器,并在一个16位的处理器上运行MSDOS。Amiga有上百万台的销量,但是制造商在1994年破产了。

和许多可能更优秀的平台一样,Amiga被PC扫入历史的垃圾堆。

无论对手提供多好的操作系统和硬件设备,PC都可以将每一个竞争者从道路上清除掉。1985年的Amiga领先当时的PC很多年,PC用了5年才使用了相同的硬件,用来10年才追赶上Amiga的操作系统。但和以前的对决一样,PC仍然是赢家。PC得以成功的原因是巨大的软件基础,以及模范竞争者的能力,低价和高性能在早期很长一段时间里面都不是主要因素。如果现在阅读一下Amiga的手册,你将会发现它完全是现代PC的描述。Amiga为桌面系统引入了图形加速芯片和多任务系统,但是现在所有的计算机都有这样的配置。

对于Amiga而言,并不是价格和硬件击败了它。MSDOS上巨量的应用程序阻止它进入更大的市场。Commodore的能力将自己害死了。NeXT是下一个例子,它也提供了更好的硬件和更好的基于Unix的操作系统,但也没能撼动PC。它也是下一个被PC赶超并窃取所有最佳特性的牺牲品,13年后消费级的PC才具有与之相同的存储保护。

PC有能力获得竞争者的所有最佳特性,虽然这一过程可能需要很长时间,过去的记录显示PC每次都成功了。PC能够再次窃取Cell的特性并将它抛到一边么?

Cell对决x86

看起来这是一场没有胜者的战斗。由于Intel和AMD推动x86体系结构,不断推出高性能和大量廉价的处理器x86在每一场对决中均胜出。当x86和高速的RISC竞争时,它利用了几乎和RISC相似的技术拉近了速度差距,并使得RISC没有明显的优势。

三个曾经显赫的RISC处理器系列(Alpha MIPS PA-RISC)已经成为历史。即使Intel自己的Itanium也快被Opteron扫出中低端服务器市场。Sun也受到了打击,他已经宣布取消下一代UltraSPARC产品线,转向全新的设计(MAJC?)并且开始销售一度威胁自己低端SPARC产品线的Opteron服务器。Power似乎还在挣扎,但这也是因为IBM有足够的资源支持他,并保持他的竞争力,并且在Power面向的高端市场上x86还缺乏号召力。

对于Intel和AMD的处理器而言,Cell是一个完全不同的竞争者。主频的差距如此巨大,除了对x86结构大修之外别无他法来赶上性能差距。x86并非没有任何触动,但是不论Intel或者AMD都没有足够新颖的改变以跟上Cell。有传闻说Intel现在得到了许多Nvidia的专利许可 [Intel + Nvidia]并考虑在一个芯片上集成一打处理器核心,但谁知道圣诞老人在准备什么呢?[Project Z]

AMD和Intel都可以提供多核心的处理器,但是高速的x86处理器往往功耗更高。为了在一个芯片上集成两个Opteron,AMD不得不降低主频以将功耗控制在100W附近。Intel在Pentium4上也采用了相同的做法。Pentium-M是一个高性能、低功耗的优秀产品,它比Pentium4 更适合多核心设计,在以后几年中将可以看到4到8个核心的设计。

Cell可以加速很多常用的应用,相比之下PC的性能显得可笑。如果Intel集成10个核心,那么他们在性能和价格上都不会有任何优势。SPE是专门的向量处理器而x86不是。当然x86有SSE向量单元,但这是无法和单个SPE相提并论的。

并且Cell有天然的并行特征。如果需要更多的计算能力,只需要简单的增加额外的Cell,操作系统将负责将软件Cell分布到第二或者第三个处理器上。而对于PC而言,确实许多操作系统都支持多处理器,但是很多应用如果不经修改都无法支持多处理器,这一过程将需要花费很多很多年。Cell的应用从一开始就是可扩展的。

Cell可能在性能上超过x86处理器一大截,但是历史上PC有能力击垮性能上的强者。高速并不足够打倒PC。

Cell与软件

和PC竞争的主要问题不在处理器上,而是在软件上。一个新的处理器显然有更高的性能,但是如果没有软件就毫无用处。PC常胜的原因就是充足的软件,这使得无论多高性能,有多少优点的竞争者都遭到失败。高性能系统的市场是有限的,大量销售的是低端系统。

Cell有足够的性能并且将成为廉价的芯片。但没有足够的软件它能挑战PC么?以前这个问题的答案是简单的,但是现在PC市场的变化,以及其他一些原因使得Cell有能力构成威胁:

第一个原因是Linux。Linux已经显示了他是分割Window PC软件市场的可选操作系统,Linux一个最大的不同是它可以跨平台。如果你的软件需要运行在linux上,那么更换硬件平台将不会成为问题,大多数软件可以在不同的处理器上运行。

第二个原因是成本,其他的平台经常使用昂贵的定制组件并且产量很少。这使得他们的价格高于PC,这是显然的缺点。开始的时候Cell可能比较贵,不过一旦 Sony和Toshiba的工厂开工,它的产量将会巨幅攀升,价格也随之降低,在PS3和TV上的使用无疑将使得Cell芯片的产量足够大。IBM也会制造Cell并且还有许多公司使用IBM的硅处理技术,如果有License,Samsung,Chartered,Infineon甚至AMD都会需要并生产Celll。

第三个原因是计算能力,大多数PC都不需要他们实际提供的计算能力,Cell强调这一点是因为它能够将密集负载分摊到SPE上。这意味着如果你需要运行特殊的软件,你可以用模拟的方法。这不会显得特别慢,因为现在的PC处理器的能力绰绰有余,使用今天先进的基于JIT的模拟器,你不会感觉到差别。

许多高端PC的购买原因恰恰是那些可以被Cell加速的应用。而且这部分高性能用户往往关注工具胜于平台,除了游戏市场似乎再没有Microsoft有控制力的领域。由于Cell(或者一组Cell)带来的巨大加速,许多高性能用户在他们需要的软件被移植或者可以模拟执行时应该乐于转移到新平台上。

Cell会很便宜、高性能,运行多个相同的操作系统,如果这些还不够,它可以用难以察觉区别的方式模拟PC,软件和价格将不会成为问题。供货也不会成为问题,你可以在任何地方买到Playstation。这一次PC以往击败竞争者的优势已经不在,PC在性能,软件和价格上都不占优。但这并不是说Cell可以放心占据PC的领地,并没有那么简单。

攻击

IBM计划销售基于Cell的工作站,一段时间里面他们的价格不会便宜,除了PlayStatioin的开发人员而外,市场也不会很大。

Cell不仅仅以特殊工作站和Playstation的方式出现,也许以一种或者其他桌面计算机的方式出现(Genesi正在考虑可行性)。当他们这样做的时候,他们将开始颠覆整个PC工业。

即使单一一个Cell也超过顶级的多处理器PC许多倍。这是致命的,Cell无疑是构成通用多处理器更有效的选择。

内部感染

虽然这不会在短时间内发生,但是没有什么可以组织PC制造商们在一个PCI express卡或者一块主板上包含一个Cell处理器。微软可能对支持一个竞争者并不感兴趣,但这并不意味着STI成员不会提供驱动支持。一旦这一方式可行,开发者可以在PC应用中使用Cell,这也是非常有趣的地方。计算密集的任务将转移到Cell上,并且PC将不再需要一个快速的x86处理器,低价较慢的处理器就够了。

有些公司可能想进一步降低成本而这里确实有一种方法。Cell中包含一个至少PowerPC 970级别的处理器,因此它可以被看作是一个相当快速的处理器。因为没有必要使用一个高速的x86处理器,为什么不模拟一个?从PC中去掉x86和支持芯片组将节约大笔成本开销。一个没有x86处理器的x86计算机听起来很奇怪,但Transmeta就是这样做的。也许已经脱离处理器制造行列的 Transmeta可以为Cell提供二进制翻译模拟技术。

Cell是非常非常高性能的处理器。同时未来它也会变得相当便宜。Cell很有潜力构建一个低成本的PC。由于Cell不依赖于PC的计算和存储部件,它也和PC的优缺点无关。Sony可以制造一张插卡让高端游戏终端中运行起一个最低性能的PC。如果这样的产品能有很大销量,PS3开发套件组就无需为PC 开发一个独立的版本了,这对于PC游戏市场是一个灾难。

当你使用一个模拟执行的操作系统时,拥有一个本地执行的操作系统总是更好的选择。Linux总是可行的,但是Linux还不足以成为一个消费级的操作系统,在这点上他还有很长的路。但已经有一个可以在Power体系结构上运行的消费级操作系统 OS X。

Cell对决Apple

Cell可以是Apple的复仇女神或者救世主,他是最显然的Cell潜在用户。由于Cell核心使用的PPE是兼容PowerPC的,并且可以加速 Apple主要客户的基础应用,Cell对Apple是一个不错的选择。由于Cell并不能加速所有应用,因此如果作为标准G5/G6的协处理器可以同时从两种结构中获益。

Apple在OS X "Tiger"中展现的Core Image技术已经开始使用GPU来处理3D计算之外的任务,相同的技术可以用在Cell的SPE上。可能这就是为什么Apple排在第一位的原因。

如果其他使用Cell制造计算机的厂商没有一个明确的消费级操作系统可用,用于OS X的Apple将第二次有机会成为新的Microsoft。他们能抓住这个机会么?一个以Cell起跳的计算机制造业对Apple也是非常危险的。当 MAC和PC的操作系统和CPU不同的时候,系统之间可以有巨大的差距,定价的不同也可以接收的。如果有足够多的低价机器可以运行OS X,那么目前的价格差距就显得过大了,这可能不足以击倒Apple,但对他而言这绝对不是个好消息。

PC制造商其实不关心他们使用的组件或者他们运行的操作系统,他们只想出售PC。如果Apple打算重新考虑OS X的授权方式并让硬件制造商们开始使用Cell,他们可以克隆Microsoft惯用的招数来对付他们的老冤家了。相信太多公司会因为从 Microsoft的铁钳中解放出来而兴奋得不能自己。如果Apple能够降价的话就更好了,他们很容易把Microsoft从操作系统获得的利润裁减 400%。

开放OS X的许可证并不会摧毁Apple的硬件生意,总是有一个追求高端更酷系统的市场存在的。Apple有坚实的软件基础可象现在一样给他们的硬件带来附加值。所有人都会和今天一样为此买单。

对于未来的计算而言,PC工业将会受到远东低成本计算机的威胁。这一说法的基础是在PC工业中微软和Intel都享受的高额利润率。由于可以制造出价格低廉而速度足以满足大多数要求的低成本计算机,运行Linux而不需向微软支付任何费用,如果这一系统可以完成大多数人想要做的事情,并以足够低廉的价格出售,那么它将会从下面几点攻击整个PC市场。


基于Cell运行OS X的系统将足够便宜(当然还要取决于Apple给OS X的定价),但是Cell绝对的性能优势将超过任何最高性能的PC机。这些系统会象热蛋糕一样的出售,并且如果价格能将得足够低它将在PC制造商们刚刚开始发展得低价市场上出售。对Apple而言这里有巨大的机会,如果不抓住的话那简直就是发疯- 因为如果Apple不做其他的厂商将开始做这一工作 -微软已经在Xbox2操作系统上积累了足够的PowerPC经验。

Cell有压过PC性能的优点,但它同时也具有PC的有限。在Apple的帮助下,Cell将可以运行现在市场中争论的最好的OS,并且价格低廉。新的 Mac mini看起来就准备象一个热蛋糕一样出售,想象一下当它装备了一颗Cell芯片之后会是什么景象... ...

看起来PC的这个竞争者足够取而代之,但是PC仍然有反击的机会,PC已经在考虑超过你想象的性能。

PC相关:Cell与GPU

PC手中的武器就是GPU。在计算能力上高性能GPU是Cell唯一现实的竞争者。

GPU总是比通用处理器性能更高[PC + GPU][GPU],自从可编程梯度(programmable shaders)引入之后这部分处理能力也可以被开发人员利用,虽然是针对图形专门的设计,也可以被用于其他目的。下一代的梯度(shaders)承诺有更多的通用能力[DirectX Next]。

GPU具有和Cell相似的操作方式,他们也有许多称为顶点vertex或者象素梯度pixel shaders的并行向量处理器,他们是针对3D对象或者象素的顶点流处理而设计的,但是许多计算密集的应用经过修改之后也可以在其上运行[EE-GPU]。

ATI和Nvidia的激烈竞争使得GPU越来越快,并且现在SLI技术再次被用于将两个GPU耦合在一起获得更高的计算能力(3D fax的Vodoo3显卡最早使用了SLI技术)。

虽然GPU是Cell的唯一竞争者,但基于很多原因GPU似乎并不能追赶上Cell。

Cell在一开始时就比GPU具有更多的通用性,SPE并不是针对图形专门设计的,因此对于开发者而言改写非3D算法所需要的工作会更少。
Cell有更通用的PPE和SPE共享快速的存储器。这与PC有本质区别,PC上的GPU有自己的高速存储器并且只能通过AGP总线(或者PCI- Express总线)来访问系统主存。PCI Express可以加速性能,但与CPU共享的总线性能总是会受限的。而且PCI xpress还没有得到厂商的完全支持,目前GPU从GPU向主存传输数据相当慢。

Nvidia或者ATI不会很快赶上Cell性能还有另外一个原因。上一次PC虽然快速赶上并超过PS2,但这次Sony似乎希望这个过程要更困难一下,因此Cell以高度aggressive的方式来进行设计。

Cray因子

Cray因子是Intel,AMD,Nvidia和ATI都无言以对的。

从专利上可以明显的看出设计者在开发Cell体系结构时的方法。在设计这样的系统时往往有很多折中,几乎在所有的场合Cell的设计者都没有选择折中而是直接选择了性能,即使这会使得程序员的工作变得相当复杂。

Cell的设计和现代微处理器有巨大差距,那些看起来不可缺少的部分被彻底改变或者整个去除了。计算的首要原则,现代计算的基础-抽象-被完全抛弃,在这里没有JIT,你可以直接访问硬件。这是极度aggressive的设计方法,比你在其他任何其他系统中看到的都更aggressive, Alpha处理器即使在全盛时期也没有接近这样的aggressive。在追求纯净,不搀杂,实在的性能过程中设计者设计了一个只有Seymour Cray的设计才能与之相提并论的处理器。

从60年代到90年代IBM和Cray之间争相建造最快的计算机。Cray每次都获得了完美的胜利,他将性能边界提高到这样的水平:最后能击败Cray设计的只能是下一代Cray设计。

IBM制造了灵活的商用机器,Cray选择更少的灵活性和特性,大部分设计都在追求无止境的速度。如果仔细看一下未来GPU的开发计划[DirectX Nextt],显然他走的是一条灵活-特性的道路。这是一个软件厂商期望的系统。软件商们将开始使用GPU上的虚存,并且已经开始使用一个cache缓存来保存最常用的数据,事实上看起来GPU将迅速成为一个通用CPU。

Cell的方式和Cray一样。虚存占用空间并且延缓数据访问。在Cell体系结构中有虚存但不是在运行期runtime,OS保存虚拟的地址直到一个软件Cell可以通过实际地址从Memory中读写数据。Cell同样具有一个简单受限的存储包含机制,一小块片上的存储空间保存了表示哪个SPE可以访问哪块存储的表格,这个表格很小并且永不被flush,这意味着它的速度会很快。

CPU和GPU使用Cache来隐藏访问主存的延时,Cray并不使用Cache而仅仅是将主存做得超级块。Cell使用了相同的方法,在SPE中没有明显的cache,只有很小但是非常快速的本地存储器。本地RAM不需要一致性协议并且可以直接寻址,程序员总能知道里面存储了什么,应用需要声明每一个载入。由于这降低了复杂度并且少量的本地RAM将非常快,甚至比Cache还快。如果在每个时钟周期可以传输两个机器字(256bit),就可以实现 147GB/s的性能,并且永远不会发生Cache失效。

在设计Cell体系结构时的aggressiveness意味着要产生一个可比较性能的对手很难,很难。x86结构是没有希望的,如果要追上cell, x86最终不得不复制Cell的设计。GPU同样也很难达到目的,GPU的时钟速度落后Cell十倍,产生大得多热量并且最高性能部分只有占很低比例。如果要接近Cell的工作频率,GPU的设计需要全盘重新考虑。

Cell设计者没有用砷化镓来生产芯片,也没有将他们浸泡在液态氟中,因此他们并没有达到和Seymour Cray一样的aggressive,但是PlayStation 4还会这样么... ...

替代选择

可能其它未提及的厂商可以使用不同的设计哲学制造一个高性能的多核心向量处理器。这完全可能并可以接近Cell的性能,这是由于Cell为了高主频而选择的设计可能引入某些限制。如果使用一个更低的主频,它就可以允许更慢并且更小的晶体管。这意味着可包含的向量单元可以增加,并且更重要的是片上存储空间可以加大。作为高主频的弥补,更小的存储带宽将运行更慢但更低成本的RAM。

这可能并不是Cell针对性能的做法,但是由于处理器可以更好的从额外的RAM获得足够数据。功耗可以比现在的Cell更低但是可扩展性并不是全部市场都需要的。在嵌入式市场社有足够多的公司沉醉在Cell中,因此可能很快从这些公司中可以看到通用的设计。PC处理器和VPU的制造商也可以使用这样的设计,但是如果让新设计在目前的PC体系结构中工作是一个大问题。

结果

Cell是PC有史以来面临的最大的挑战者,由于Cell可以运行相同的软件PC传统在软件上的优势不再明显。在价格和出货量上也不能压倒Cell。最后PC更不能在Cell的基础领域与之竞争,由于Cell由一组公司设计制造,可以向任何人出售,x86不会比Cell更普遍。看来PC终于遇上了他的对手

Microsoft的影响很难判断。由于在Cell上没有相同级别的控制力,微软那么对Cells的支持将相当困难。由于Cells是一个分布式的体系结构,可以使用一个windows机器作为客户机让其他所有都运行Linux或者其他操作系统。多数机器不运行Windows,这一定不讨微软喜欢。

即使主要计算由Cell完成,Windows原则上只提供接口也有问题。移植这个接口需要花费时间,而在Cell上运行的软件Cell是独立的,不需要向任何操作系统移植,软件Cell是对操作系统一无所知的。微软似乎也不会喜欢这一点。

并不清楚STI联盟成员是否有兴趣和PC对决。但是Cell和PC总会在某个地方发生碰撞。

但是即使Cell最终成为决定性的体系结构,这也需要许多年,或者数十年。并且在一些领域Cell对PC并没有特别的优势,因此在很长,很长的时间里x86仍然会存在。

Cell威胁到了目前由Wintel主导的PC工业。Intel和Microsoft过去用于保卫自己的传统招数不再有效,但这并不意味者一切就注定了,永远不要低估这些公司。即使最终什么都不发生,这也会是一场有趣的斗争。 

zzCell体系结构解释-第三部分:Cellular Computing

Cell不是一个奇特的图形芯片,它试图用于通用计算领域。Navidia提供PS3上的图形硬件似乎验证了这一说法。SPE并不象正常的微处理器一样具有通用性,但是Cell通过包含一个正常PowerPC微处理器的PPE弥补了这一点。


Cell应用


正如在第一部分所说,Cell并不仅仅是为了ps3来设计,但是Cell擅长的应用究竟有哪些呢?


Cell不可能在每一件事情上都工作得很好,某些应用可能完全不能被向量化,而某些应用可能因为频繁读取存储块的系统降低性能。对于这些应用最好是PPE能够起到更好的作用,然而专利中似乎假设PPE只能被操作系统使用。


游戏GAME


游戏是当然的设计目标,Cell从一开始就是作为游戏终端进行设计的,如果在游戏上没有良好的表现那肯定有问题。Cell的设计师紧盯raw computing power而不是图形能力,因此我们将看到硬件功能被转移到软件上而开发者有更多的灵活性。现在的问题是PS3是否能成为第一个实时光影跟踪的游戏终端。


3D图形


这又是Cell的重要设计目标领域,图形具有巨大的并行特性,可向量化和流化的各种问题可以让SPE得到完全的应用,因此使用的Cell越多就可以获得更快的图形性能。现在有很多不同高性能图形技术方面的研究,希望Cell能够被他们所使用,而这些技术也能通过Cell使自己成为主流技术。如果你认为现在的图形技术已经足够好了,在Cell上你可能会得到某些惊喜。


视频


图像操作显然可以被向量化,Photoshop已经显示了图像处理向量化的巨大效果。视频处理可以用类似的方法加速并且Apple将有能力仅使用目前GPU来加速"Core Image核心图像"中的视频处理,Cell显然可以加速GPU可以处理的任何应用。


视频编解码也可以被向量化,因此格式转换和各种控制操作都可以从Cell上获益,希望Cell能够颠覆目前的专业视频处理硬件。


音频


音频是一个永远对计算能力感到不足的领域。今天的电子音乐家们使用多路虚拟合成器,每路合成器上有多路声音。传统的合成方法是采样现实的每种乐器音。所有这些都需要自己的处理能力,而这还是在为每路通道上加入不同音效之前的工作。接下来可能需要一个全局音效并压缩每一个通道,完成最后的混音。许多操作都可以被向量化。Cell是每个音乐家的梦想,也是每个看着PC开始侵蚀防线的合成器制造商的噩梦。


数字信号处理DSP


数字信号处理中主要使用的算法是FFT(快速傅立叶变换),将信号分离到不同的频域空间以做进一步处理。FFT是一个高度可向量化的算法,在很多向量单元和微处理器中包含了特殊的指令专门加速这一算法。


现在有成千上万的DSP应用,他们中的大多数可以被流化,因此Cell可以应用在他们中。一旦价格和功耗下降到足够低,Cell可以被使用到各种不同的消费类和工业用电子产品上。


SETI


DSP应用的一个最好的例子,同样也是基于FFT,Cell将无止境的推动SETI@home计划(用分布计算方法利用计算机空闲周期为寻找外星只会生命做运算)。每一个基于Cell的设备都可以加入到SETI@home中去。其他众多的分布式应用可以从Cell中获益。


科学


对于传统的(不可向量化)的应用而言,目前的Cell系统至少和4颗PowerPC 970芯片加上高速存储接口的性能相当【由于PPE比作者预测的简单这句化应该被修改,单个Cell芯片性能超过单个PowerPC970处理器是勿庸置疑的】。对于可以向量化的系统而言就是完全另外一回事了。一个潜在的问题可能是相对受限的内存容量(这也许只会出现在PS3上,Cell芯片本身有很大的寻址访问能力)。即使有这样的存储限制Cell也可用通过I/O单元流式处理来获得不错的性能。


GPUs已经应用到了科学计算中而Cell显然可以直接应用到相同领域中。"很多计算可以通过GPU加速,包括稀疏线形系统求解,物理模拟,线形代数操作,偏微分方程,快速傅立叶变换,水平集合计算,计算几何问题,以及非经典图论,例如体绘制,光线跟踪和流形象化。"


超级计算


许多现代超级计算机使用便宜且高性能的商业PC集群方案。现在凑足250台PC你就可以打入Top500排行榜。而为了相同的目的你只需要8 个Cell芯片,560个Cell芯片可以让你排到第一位。这是一个向后兼容性完全不那么重要的领域,而且变化迅速,未来基于Cell的系统可能会迅速替代PC集群。


另外的超级计算应用需要大量的内部通讯,因此在PC集群上运行效果不佳。Top500上没有将这部分评价单独出来,但是确实有这样一个使用大机柜系统,一度被Cray统治,PC集群尚不得门而入的领域。Cell具有高速的通讯连接,这使得他非常适合于这类领域,虽然大量Cell的协同工作还需进一步的工程工作。Cell不仅仅会取代PC集群,在集群失败的领域也可一展身手。


如果Cell具有64位乘加指令(如果没有的话就太奇怪了),8000个Cell就可以实现PetaFlop,这是一个难以打破的记录。【这里考虑的是双精度浮点,单精度浮点的能力是双精度浮点的10倍。不过用乘加指令来Double Flops性能不太道义】


服务器


这是一个再多可向量化都不能使人惊讶的领域。然而XML和类似的处理似乎都无法从SPE中获得帮助,而存储结构会更有用(这也是XML如此令人惊奇的低效的原因)。但是服务器通常要在后台数据库上做很多工作。


针对包含实际数据的商用数据库的研究发现他们可以从GPU的运行中获益。当然这部分应用也可以通过Cell加速。因此Cell可以使服务器受益。


流处理应用


与通常的处理器最大的一个不同就是Cell中的SPE可以被串联起来构成一个流处理器。一个流处理器获得一个数据流,并按照一系列的步骤来处理。其中的每一个步骤可以通过不同的SPE完成,甚至不同Cell中的不同SPE。


例子:数字电视接收器


用观看数字电视所需的机顶盒作为流处理的例子,实际上整个过程要比播放MPEG影片包含更多复杂的处理。下面包含了你在观看一部最新的星际迷航记使所需要做的处理工作:


a. COFEM解调

b. 纠错

c. 信号分离

d. 反扰频 De-scrambling

e. MPEG视频解码

f. MPEG音频解码

g. MPEG缩放

h. 显示构建

i. 对比度和亮度处理


这些操作通常由定制硬件和专用DSP结合来完成。当然他们也可以用软件来实现,但即使并不是全部由硬件完成计算也需要一颗性能相当强劲的处理器-而这仅仅是标准MPEG2定义所需要的处理。H.264标准下的HDTV需要大得多的处理能力。和定制的芯片比较起来通用处理器要低效很多,虽然专用芯片开发起来相当复杂,昂贵,但是巨大的需求量可以降低价格并且可以使功耗降到最小。


上面的任务都使可以被向量化的,并且按照可以流化的一个顺序进行。一个Cell处理器可以被建立用一个或者多个SPE来执行每一个步骤,这意味这无需再开发专用芯片并且可用软件支持新的标准。Cell能力强大到单个Cell芯片就足够完成全部处理,即使以高清晰的标准来看也是一样。 Toshiba计划在自己的HDTV产品中使用Cell。


不可加速的应用


仍然有很多应用不能被Cell处理器加速,也有很多应用移植起来不那么简单。因此在服务器市场之后很难预测Cell还能走多远。


但是通常PC要么不需要太高的性能,或者就可以被Cell加速,Intel和AMD已经开始推出多核心的x86,但当Cell可以获得大得多的性能并迅速降价之后又会发生什么呢?


PC市场上可能要发生一场空前的大战。过去的胜利和失败可能过于简单,这一次则不是这样。

Cell是PC有史以来面临的最大的挑战者,由于Cell可以运行相同的软件PC传统在软件上的优势不再明显。在价格和出货量上也不能压倒Cell。最后PC更不能在Cell的基础领域与之竞争,由于Cell由一组公司设计制造,可以向任何人出售,x86不会比Cell更普遍。看来PC终于遇上了他的对手。


并不清楚STI联盟成员是否有兴趣和PC对决。但是Cell和PC总会在某个地方发生碰撞。


但是即使Cell最终成为决定性的体系结构,这也需要许多年,或者数十年。并且在一些领域Cell对PC并没有特别的优势,因此在很长,很长的时间里x86仍然会存在。


Cell威胁到了目前由Wintel主导的PC工业。Intel和Microsoft过去用于保卫自己的传统招数不再有效,但这并不意味者一切就注定了,永远不要低估这些公司。即使最终什么都不发生,这也会是一场有趣的斗争。

zzCell体系结构解释-第二部分:进入Cell处理器内部

   Cells和常用处理器的一大区别就是在Cell中SPE链接起来以流处理器方式工作的能力。一个流处理器获取数据之后,按照一系列的步骤来处理它。每一个步骤都可以用一个或者多个SPE来实现。


一个Cell处理器可以通过用一个或者多个SPE承担流中的一个步骤来执行流操作。为了完成流操作,一个SPE从输入中读取数据进入其自身的本地存储器,执行处理步骤,然后将结果写入预先定义的RAM空间中,第二个SPE取走刚刚写入的数据,进行处理并写入RAM中的第二个区域。根据应用的需求,这一序列可以使用多个SPE,同时SPE可以读写多个RAM块。如果单个Cell的计算能力不足,在其他Cell中的SPE可以用来构成更长的链。


流处理器通常并不需要大存储带宽,但是Cell具有这一能力。依照专利,每一个Cell可以通过一个8体(bank)控制器直接访问64MB 数据。如果在流处理中各个步骤使用RAM中的不同bank,完成流处理的SPE可以同时读写不同bank。


你仍然认为你的PC很快么?

多Bank存储器和SPE对高负载的流应用计算可以让Cell达到峰值工作。在这些应用中Cell可以接近它的理论峰值,并提供比目前任何桌面处理器高出一个数量级的计算能力。

如果获得足够的主频(超过3.0GHz)并且使用专门优化的代码(SSE汇编),5个通过HyperTransport连接起来的双核心Opterons可以达到一个Cell在流处理上相似的性能。

PlayStation 3计划将装备4个Cell。


通用桌面处理器并不针对高性能向量处理进行设计。它们有以SSE或者Altivec形式出现的向量处理单元,但是这些集成的单元将分享处理器的资源。SPE是专门的高速向量处理器,并配备自己的本地存储器,除了部分存储之外无需再共享其他任何资源。另外总共8个SPE可以使计算性能达到足够可观的地步。


如此巨大的性能差距看起来似乎使可笑的,但这并不是没有先例的。事实上只要你用于一个足够先进的现代图形加速卡,你的系统将具备很多你不曾想到的能力。


"例如,nVIDIA的GeForce 6800 Ultra在片断处理(fragment processing)时可以达到40GFlops的速度。与之相比,Intel 3GHz的Pentium4在使用SSE指令时,其理论峰值仅仅6GFlops。"[GPU]


计算机中的3D图形芯片在很多性能上早已超过通用处理器。以前他们被限制在3D图形处理但是自从梯度(shader)的加入,他们被用于许多更加具有通用性任务中[GPGPU],这样的通用性和通用处理器并非没有区别,但是Shader 4.0将比以前的版本具有更多的通用性。


硬实时处理


某些流处理需要严格的时间并且"硬"实时数据处理器的设计也已经在考虑中。一个"绝对时钟"被用于保证一个处理操作在说明的时间限制内完成。这个实用的功能同时保证与下一代Cell兼容,因为定时器本身是和处理部分独立的。


硬实时处理通常是在专门定制的特殊操作系统(如QNX)控制之下的。Cell的专门硬件支持意味着有更多的操作系统可以在某种程度上实现硬实时。但是这仅适用于使用SPE的任务,因此QNX并不会就此消失。


直接存取控制器DMAC


DMAC是Cell中非常重要的部分,它充当着通讯集线器hub的功能。PPE并没有直接将指令发往SPE但是会将他们发往DMAC并由后者选择合适的动作,这在载入和保存数据时显得特别重要,同时取消了PPE和SPE直接相连的必要性。


由于DMAC处理了所有进出Cell的数据,它需要通过极高带宽的总线系统进行通讯。专利中除了说明总线可以是一个传统总线或者一个包交换网络外并没有更多的内容。包交换网络会占用更多的硅片面积但是可以达到更高的带宽,由于这条总线需要数10GB/s的传输性能,使用包交换网络的可能性更大。从专利上更进一步知道这一总线宽度达到了恐怖的1024位。【实际Cell芯片的内部互连是4条128位宽的环状EIB总线,宽度位512位,峰值传输带宽为96B*4.6GHz=441GB/s】


在书写专利的时候似乎DMAC的结构并没有完成,因此在两份专利中出现的DMAC由不同的设计。分布和集中式的DMAC结构都在专利中提及。


显然DMAC是Cell设计中最重要的部分之一,虽然其本身并不做任何处理,但是必须满足任意两点之间数十GB/s访存数据流。如果预测正确的话,PS3将具有100GB/s的存储接口,如果均分倒4个Cell上,每个DMAC将需要每秒处理至少25GB。它同时要实现存储保护,能够保证 PPE和SPE之间访存和通讯的顺序,除了高速而外它还是高度复杂的工程部件。


存储器


与其他处理器一样Cell体系结构中的存储系统也是针对raw speed设计的,它将同时具有低延时和高带宽。前面提到过访存以1024位的块为单位。专利中并没有说明这样做的原因,但可能是:


虽然这样会降低灵活性,它同样会降低访存的延时-而延时是目前阻碍计算机性能增长最大的一个原因。能够更快的原因是,大单位块需要的地址解析更简单,而粒度越细的块访问需要更复杂的逻辑,并需要更长的时间进行查找。实际的查表操作可能在存储芯片中并不重要,但是每一个查找都会引发一个包含将地址从bank控制器发送到存储器件的查找事务,而这是需要时间的。这一时间由于每一个存储操作都需要而变得重要,而每增多一位需要解析的地址,查找的数目就会增加一倍。


如果PC上有512MB主存,RAM查找需要解析29位地址,但是由于系统每次最少读取64位数据,实际只要解析26位地址。如果只解析23位地址,PC就需要读取更多的数据。


注意:这里并没有考虑需要一个额外数据位时的I/O和图形地址空间。


在Cell设计中有8个8MB的bank(for PS3),并且如果最小的读取单位时是1024位,地址解析为13位。另外有3位用于选择Bank,但这部分工作是在芯片中完成的因此影响很小。每一位地址都会将需要查找的Memory增加一倍,因此PC每秒要比Cell多做上千倍的存储查找工作。Cell的存储总线将会有更多的空闲带宽和时间用于传输数据,因此实际工作的性能将更加接近理论传输峰值速率。Cell的实际情况是否如此并不得知,但在CPU的Cache中是这样的。


一个真实的情况是Cell使用非常高速的存储连接,Sony和Toshiba从Rambus那里获得了3.2GHz存储技术的 License。每一个存储Bank获得3.2GB/s的传输率,整个Cell的存储带宽将达到25.6GB。即使这条总线并不大(64数据pin给所有 8B数据),但可以降低芯片的制造成本。(现实的情况是目前Rambus交给STI的XDR存储总线方案是为嵌入式系统设计的,最大存储限制在256MB 之内,相信以后会提高这一限制)

在没有了解到目前顶级图形卡内部已经达到50GB/s的传输率时,100GB/s看起来时一个巨大的数字,其实不过是将成熟技术的指标在若干年后double了一倍。但以前这些都仅仅是理论数字从来没实际达到,比较而言Cell的带宽将比其他竞争者更加接近于理论峰值,因此会有更好的性能。


SPE需要从Cell中访问数据,尤其是建立的Stream很长时,因此Cell包括一个高速的互连机制。这也是来自于Rambus的技术,两条可配置的总线FlexIO和XIO都工作在6.4GHz主频之下,总的带宽达到76.6GB/s。这一技术和目前流行的HyperTransport 是完全不同色实现。


如果有超过4个Cell芯片共存,将会有额外的交换系统来提供高速的存储访问。这一系统可以被用在基于Cell的工作站中。现在并不清楚超过 8个Cell是如何通讯的,但是Switch系统应该可以扩展以应付更多的Cell芯片互连。IBM声称单一机架的工作站性能已经达到16TFlops,这需要64个Cell芯片,因此显然有一个很好的互连系统来连接他们。


存储保护

在DMAC中有存储系统的保护措施。Memory被分成沙盒"sandboxes",用一个掩码来判定那一个或者一组SPE可以对其进行访问。这个检查过程是访问执行之前在DMAC中进行的。如果用一个SPE试图读写错误沙盒,存储访问将会被禁止。


现有的处理器硬件都包含了许多更加复杂的存储保护措施。页表被用于表示存储块的使用情况,当前数据在RAM还是在磁盘。随着访存能力的提高,页表本身所需的存储空间会变得很大,不能一次完全提供给处理器,这意味这如果CPU试图读取一个存储器位置,它需要首先从存储器中获得一个页表,然后在从磁盘中读取数据-如果考虑到TLB,多级页表和页失效过程,过程将变得更复杂。


在Cell中SPE可以选择是否发出一个存储访问请求,在DMAC中的一个特殊SRAM来完成表操作,而且其内容永远不会被Flush更新或清空。这一系统可能在灵活性上有所缺失,但是非常简单,高速。


软件Cell


软件Cell是一个包含数据和程序(Apulet)的容器,也包含这个apulet运行所需要的其他数据和指令。软件Cell中包含源、目标和响应地址域,这些内容依赖于使用的硬件网络,软件Cell可以被发送到不同的硬件Cell中。也有独立于网络的地址来定义特殊的Cell。这使得可以在网络上的一台特定主机可以将一个软件Cell发送到任意的硬件Cell。


SPE使用的是虚拟地址,然后一旦DMA命令发射出去虚拟地址就被映射成为实际地址。软件Cell中包含这些DMA命令以从存储器中获得数据进行操作处理,如果SPE被用于处理流,Cell中将包含描述何处读取数据,何处回写结果的命令。一旦SPE初始化建立完毕就被驱使完成Cell。


虽然这一系统的实际工作方式仍然很不清晰,但是显然有某些适应性机制允许Cell在一个网络上出现,消失。


软件Cell的系统设计在一个以此为基础的操作系统上显然更为高效,但是也可以通过在现有操作系统上增加一层来支持它。Cell应该不会因为运行操作系统的不同而添加限制。【IBM具有设计实现无关接口的良好习惯】


多Cell系统怪兽


整个Cell体系结构上的重要一环就是并行处理。软件Cell可以漂亮的被送到任何地方,并且这一过程与特定的传输方法是相互独立的。在动态运行时决定软件Cell在哪个硬件Cell上运行构成了Cell体系结构的关键特性。如果需要更多的计算能力,插上更多的Cell就可以了。


如果你有一堆Cell可以通过WiFi连接,无线网络可以用于分发软件Cell。这样的系统并非设计得象机柜式计算系统那样工作,也就是说他们并不是围绕着一组共享得存储器来设计。每一个Cell都有自己的存储器,并可以访问系统中的全部存储单元,当然使用自己的存储器,或者使用具有高速内部互连的Cell组中的共享存储将更加高效。


更多Cell的连接方式在专利文档中没有更多论述,但是软件Cell的分发方式使得Cell系统中可以使用任何网络技术,即使允许ad-hoc的方式来处理cell,也无需因为使用不同类型的网络而重写软件。


并行处理系统将许多通常由硬件处理器的复杂性转移到软件上。这种做法通常会延缓处理速度,但有增加灵活性的好处。你可以直接将一堆软件 Cells交给计算机而它自己可以选择如何将他们分布到各个硬件节点上。如果你的系统方式变化(Cell增加或者减少)操作系统将完成相关处理,而无需用户或者程序员的干涉。


为并行处理书写软件通常是非常困难的任务而Cell绕开了很多问题。程序员需要说明那些任务需要被完成,以及任务之间的关系,Cell的操作系统和编译器将完成其余的工作。【?目前的自动向量编译技术并不理想】


在未来,你将具有如同单一计算机一样工作的多计算机系统,而不仅仅是离散的多台机器。升级不在意味着替换掉原有系统,而是增强。进一步你的"计算机"将包括协同工作的PDA,TV和录像机,他们可以合成一体象单一计算机一样工作。


具体的处理方式


Cell体系结构在许多方面都极尽所能的获得最大性能,但是在一个地方却和整个业界走了相反的路线。操作系统是程序和硬件交互的根本方法,它使得开发人员无需每次都自己写一份驱动程序。发展到现在操作系统已经包含各种各样的复杂任务,实现这一目的的途径之一就是从硬件中抽象出更多的内容。


面向对象编程在抽象上走的更远。这也包括类似Java这样提供其自身环境,而将应用从单一的操作系统中独立出来的技术。Web实际上也完成了相同的工作,你看到的页面和提供这个页面的服务器在平台上是完全不相关的。你无需专门为Mac或者Windows写一个特定版本的HTML文档。底层硬件,操作系统和Web服务器已经被完全抽象化了。


即使硬件制造商们也开始做抽象化的工作,Transmeta拥有x86兼容的处理器产品线,但实际上这些处理器与x86大相径庭。 Transmeta在软件上提供了抽象层以屏蔽处理器的内部细节,其内部不仅不是x86,还是一个完全不同的VLIW体系结构。但这并不仅仅发生在 Transmeta或者x86上,大多数现代处理器的内部体系结构和他们的编程模型都有很大的区别。


如果在computing中存在一条法则,那就是抽象--当今计算技术中的重要部分。但是Cell放弃了他。Cell的编程模式是具体的 concrete,当你为一个SPE编程时,你将编写SPE中到底有什么,而不是某些抽象。你将会直接面对硬件。


这似乎时一种亵渎的行为,通常可以举出很多理由来说明为什么这是一个糟糕的想法,但是这种直接面对硬件的方法有一个最大的优点:性能。每一个被添加的抽象层次都带来了可观的计算开销,一次抽象可以十倍的降低性能。考虑到大多数现代系统中在一个抽象层上都还有更多的层次,你就能明白在几年前运行如飞的50MHz 486为什么今天看起来象一只年迈的老狗,你需要一颗更现代的处理器来解决后来添加的抽象层次。


去除抽象的一个巨大缺点就是将极大的增加开发的复杂度,并且将限制硬件设计者改变系统的方式。而后者是抽象盛行的重要原因。但如果你注意到进几年来现代处理器并没有多大改变,你就会理解Cell的设计显然并不希望他们的体系结构会有什么重大的变化,因此选择了从一开始就固定住设计。系统仍然有某些灵活性,至少在一段时间之后可以做些修改。


然而Cell的方法也可以得到某些抽象的好处。Java通过抽象操作系统和硬件已经实现了跨平台的兼容性,它提供的虚拟机在所有平台上保持一直,底层的硬件和操作系统可以改变但是虚拟机不会。


Cell提供了某些和Java类似的特性,但却是以完全不同的方式。Java提供了在所有平台上都一样,基于软件的"虚拟机",Cell则通过硬件提供了这样类似Java虚拟机的机器。在OS X上书写的Cell代码和在Windows、Linux和Zeta上的Cell代码是完全相同的,应用在任何情况下都是相同的硬件Cell来执行它。


硬件DRM


某些人也许会奇怪在Cell硬件中包含了DRM(数字辐射计?)。Sony是一家媒体公司,和行业里的其他公司一样大力推广DRM型的解决方案。同时注意到Cell也面向HDTV,BluRay/HD-DVE系统,任何高清晰度的内容都在DRM的严格控制之下,因此Sony不得不加入这部分能力,否则他们将在自己的目标市场中自削一臂。但是硬件DRM并不是Cell中的秘密武器,在以前的机顶盒甚至IBM大型机的crypto硬件都包含它。


其他设置以及未来


在Cell体系结构中也包含未来技术的机会,可能的互连结构正在设计中,无疑在PS3中将使用这一技术,但显然设计者也在考虑当铜导线达到其物理极限时(大约在10GHz),除硅之外的其他材料将会出现在制造领域,但这是另外一个更重大的计划。


Cell的设计并不是完全固定的,SPE的数目时可变的,并且SPE中可以包含更多的浮点或整数单元。在某些情况下SPE可以被其他诸如 I/O单元或者图形处理器代替。Navidia将提供PS3使用的图形硬件,因此这部分工作可能被包含在一个修改过的Cell中。


由于摩尔法则持续有效,单个芯片中的晶体管数目不断增加,而设计师将从其中获益。在专利中提到了包含4个Cell的单个芯片,但也有其他的设置来满足不同的Cell应用。


当多个SPE操作流数据时,他们将数据写回RAM然后在读出,添加缓冲buffer使得SPE到SPE可以直接写数据将会更加灵活。直接传输在专利中有所提及但没有更多深入内容。


结束语


Cell体系结构本质上就是一个包含一组8个极高性能向量处理器的通用Power或PowerPC处理器,并且有高速的存储和I/O系统,以及一个相当智能的任务分布系统使得ad-hoc集群可以建立起来。


目前还不太清晰的是这个设计将会走多远。削弱cache和动态虚存管理的系统是很不寻常的,并且在过去20年里从没有任何现代通用处理器这样做过。只有Seymour Cray的某些设计能与之相比。Cell不仅仅是速度快,由于使用了很多顶尖的设计,业界的其他公司在一段时间内很难赶上它。


只有一种方式来总结:这个系统并不仅仅是摇滚,它将演奏德国的重金属。

zzCell 体系结构( Nicholas Blachford) - 第一部分:Cell内部

 获得Cell体系结构的细节很困难。相关的通告总是很模糊,直到专利揭示了部分细节,大部分人忽略了这一点。但是刨根问底的人在上面写了一个小故事。不幸的是专利似乎是一个机器人律师以文本形式running Gentoo,阅读就象解密一样。最糟糕的是专利并没有描述Cell的最终系统是怎样的,只是给出了许多不同的选择。【幸亏ISSCC2005和 HPCA2005会议上STI联盟的成员公布了第一款Cell芯片的细节。大多数内容和Nicholas Blachford在04年写这片文章时相差不远。】


通过当前发布的新Cell工作站和新的细节以及说明文档,现在也许可以描述基于Cell的系统。专利是冗长而充满混淆的文档。特别要注意的是实际的Cell处理器和从专利中得出的描述会存在差别。


背景


虽然一直被宣传为PlayStation 3的主要技术,Cell的设计目标显然要更加宏大。作为巨大的电子制造商,Sony和Toshiba购买各式各样不同的组件,开发Cell的一个主要目标就是这两家公司希望在构建自己产品的时候降低开销。诸如BluRay,HDTV和HD Camcorders以及PS3这样的下一代消费类电子产品需要新的芯片来提供所需的高级计算能力。Cell将应用在全部这些需求中且可能用得更广, IBM将会用Cell来构建服务器,同时Cell可以销售给第三方制造商。


Sony和Toshiba以前就在PlayStation2上合作过,但是这次的复杂设计需要来自第三个合作方的帮助来完成新芯片的设计和制造。IBM带来的并不仅仅是它的芯片设计专家,同时也带来的行业中顶尖的硅处理工艺以及实践能力-即使最大的芯片公司发生问题时也是ibm接收了寻求帮助的请求。 IBM帮助过的公司都是半导体行业中知名企业。


在Cell项目中已经消耗了巨额的投资,价值数十亿美元的65纳米芯片厂建造了两座,同时Sony向IBM支付了数亿美元意在Fishkill建造一条生产线。在第一块芯片走出生产线之前已经消耗了数亿美元的研发费用。


那么究竟Cell体系结构是怎样的呢?


Cell是一个高性能分布式计算体系结构。它由硬件和软件Cell构成,软件Cell包括数据和程序(称为apulets APU+let+s?),它们被送往硬件Cell进行计算并返回结果。


但是这个结构并不是固定的,如果你有一台计算机,一台PS3和一台HDTV都基于Cell处理器,它们可以协同工作。这种模式已经被讨论很多年,但是 Cell是第一个这样的设计和实现。想象一下在你在电视机上观看"contact"【第三类接触?】时PS3每5分钟为SETI运算一会。你也许会为 SETI花费的运算感到惊奇,坦诚的说,Cell的速度非常快。


可以走的更远一些,没有任何理由阻止你的系统将软件Cell分布到一个网络或者甚至整个世界上去。Cell的设计适合从PDA到服务器的全部工作,因此你完全可以用完全不同的系统构建一个ad-hoc Cell计算机。


扩展只是Cell的能力的一部分,单一的系统就具有足够的计算能力。一个Cell系统中的单一计算处理单元被称为处理元(PE Processing Element)并且甚至单独的一个Cell都是高性能的处理器,理论上他们具有250GFLOPS的处理能力。在计算世界中通常很多理论上的最大性能图表(带宽,处理性能,吞吐率)在现实生活几乎无法看到。Cell在某些指定的应用上能够接近理论最大性能。


说明


一个处理元PE(或者硬件Cell)包括下面的部分:


a.. 一个处理单元PPE

b.. 8个SPE

c.. DMAC

d.. I/O接口÷


说明中没有包括的细节有


a.. 4.6 GHz

b.. 1.3V

c.. 有散热器的工作温度85摄氏度

d.. 片外通讯6.4GHz主频


为了满足内部处理的需求高速存储和I/O是必需的。为此Sony和Toshiba从Rambus那里获取了"Yellowstone"和"Redwood"的许可证,Rambus也参与了6.4GHz I/O的设计。


处理器单元(PPE)


PPE是一个64位的"Power 体系结构"处理器。Power体系结构是IBM一段时间内同时用于描述PowerPC和Power处理器的名词。目前只有3种处理器适用这一名词: Power5,Power4和源自Power4的PowerPC 970(也就是 G5)。

按照IBM的说法Cell处理器是多线程,多核心的,由于SPE基本上肯定不会是多线程的,看来PPE应该是基于Power5核心的-与不久的将来在Apple机器上使用的G6使用一样的核心。IBM声称有这一芯片的开发计划但"下一代970"的叫法让大家感到困惑。

当然IBM也有可能开发了一个完全不同,以前从未提到的64位处理器。从IBM的行事方式看这并非没有可能。在蓝色基因超级计算机种使用的 440处理器与可以在嵌入式系统中发现的440已经完全不同了,但仍然使用440这个名字。

如果PPE基于Power设计,那么不能期望很高的主频,Power核心功耗巨大,因此需要降低主频以降低功耗。【事实上PPE是一个简化的Power结构处理,顺序执行双发射双线程,高主频的简单设计】

PS3据称有4个Cell因此内部可能有4个基于Power的核心。如果意识到PPE实际上不过是控制器,真正的运算在SPE上,就不会对这样的设计感到惊讶了。


附属处理单元(SPE)


每一个Cell芯片包含8个SPE。SPE都有各自独立的向量处理单元。包含128个128位寄存器,达到32GFlops的流水浮点单元以及32Gops的4流水整数单元。SPE同时包含一个256KB的本地存储器而不是Cache结构,同时在运行时可能使用简化的虚存系统。


独立处理

SPE并不是协处理器,他们完全是独立的处理器。PPE使用软件Cell建立SPE环境,并驱使他们开始运算。SPE执行软件Cell中的 apulet直到完成或者被通知停止。PPE通过远程过程调用RPC唤醒SPE,RPC并非直接送到SPE,而是通过执行所有存储器读写的DMAC来完成的。


向量处理器

SPE是向量(Vector或者SIMD)处理器,可以在一条指令中同时完成多个操作。向量计算从1970开始就运用在超级计算中,现代处理器中的多媒体扩展(SSE或AltiVec)是同样的原理。每个SPE每周期可以完成4个32位操作(如果算上乘加操作则是8个)。运行的程序必须被向量化,在很多诸如视频,音频,3D图形和科学计算这样的应用领域这是可行的。


AltiVec?

向量单元SPE和PowerPC G4和G5中使用的AltiVec单元(VMX)类似。但是多处不同说明了他们的区别。首先寄存器的数目从AltiVec的32个增长到128个,其次 SPE使用了本地存储而AltiVec没有,再次Altivec是PowerPC指令级的一个扩展,作为PowerPC处理器的一部分工作,而SPE是完全独立的处理器。无疑他们有很多相似的地方,但是不能期望存在任何直接的兼容性。但是在两者之间的转化应该不会太复杂。

http://www.blachford.info/computer/Cells/Cell_APU.gif


SPE本地存储器


非直接的Cache和虚存使得SPE的工作方式与传统处理器不同。这很可能让SPE上的编程变得很困难,但这样的设计是为了降低复杂度并提高性能。


传统Cache

传统的处理器执行寄存器操作来读写主存,直接访问主存比Cache慢上百倍。Cache被用来保存主存中的部分正在使用的内容,当你在操作 1MB的数据时往往只有很小的一部分(可能只是几百字节)会出现在Cache中,有很多Cache的设计可以保存更多甚至全部的内容,但由于太贵或者太慢都没有被使用。

如果需要的数据没有在Cache中处理器暂停等待获得数据,这将让处理器空转上百周期。高端服务器处理器(Power,Itanium这类具有大容量快速Cache)在等待存储器上的开销会达到总运行时间的80%。

双核心处理器很快就会成为主流,通常两个核心需要共享Cache。另外如果其中一个核心或者其他系统组件试图访问Cache中的同一块数据,陈旧的数据需要更新。

支持这些复杂操作将在逻辑设计和时间上付出巨大开销,同时限制了传统系统中访问主存的速度,随着处理器核心的增多问题复杂度也在增加。传统处理器中的Cache加速了访存,这是折中的结果。


SPE本地存储-不是Cache

为了解决Cache设计带来的复杂性并提高性能,Cell设计师选择了一条独一无二的激进道路。他们在Cell中使用了一系列的本地存储器,每个SPE一份,总共有8个本地存储器。

SPE通过寄存器操作来读写本地存储器。本地存储器以1024b的块来访问主存,但是SPE并不能直接访问主存。

不使用Cache工作模式,设计师可以剔除很多复杂设计。本地存储器只能由单一的SPE访问,并没有任何与SPE或者本地存储器直接相连的一致性访问机制。

这听起来象是一个难以编程很不灵活的系统,但可以让SPE寄存器达到难以置信的速度。对一个SPE而言,如果一个周期内两个寄存器可以从本地存储器中读写数据,那么将实现147GB/s的吞吐率,所有本地存储将获得上TB/s的高带宽--目前在消费市场上的任何使用Cache的处理器都无法接近这一指标。 SPE需要足够的数据,通过使用本地存储器Cell设计师证明能够提供足够的带宽。


一致性Coherency

虽然在SPE之间不存在一致性机制,但是有一种给RAM中某些额外数据在本地存储中加入额外"busy"的机制,以避免两个SPE同时访问相同存储器时产生问题。在相关专利中极多的图表用于解释这一机制。由于仅仅标记数据是否可读取以及哪一个SPE试图获取数据,这个系统是比保持Cache与最新内容一致简单得多的实现。


这一系统仍然会增加存储访问的复杂性并且降低它的速度,存放在RAM中的额外数据可以加速访问但是对于额外硅面积和相关开销而言可能并不值得这样做。


并不知道从Power体系结构中分离出来的PPE在一致性方面的机制。但是作为传统的处理器设计,假设有正常的Cache和一致性即使是安全的做法。


SPE如果有足够合适的数据将成为很有性能潜力的处理器。但是... ...


SPE同时也可以串连起来以流方式使用多个并行SPE来处理数据。在这一模式下一个Cell可以接近其理论峰值的250GFlops。在第二部分将介绍这一内容,以及Cell内部的其他部分。

zzCell 体系结构( Nicholas Blachford) - 介绍

Sony,Toshiba和IBM(简称为STI联盟)为PlayStation 3设计的"Cell 处理器"承诺未来的计算能力将迅速达到极低的价格。后文中包含了Cell 体系结构,及其深远的影响,这些影响并不仅仅局限于游戏市场,它将遍布整个计算机工业界。


由STI透露的内容往往模糊不清,仅有相关的专利申请可以获得(局部的)最小细节。不幸的是这些专利如此难以阅读,这使得即使在技术社区中Cell也不是一个普遍的话题。


作者试图在第一和第二部分解释描述了Cell体系结构的相关专利,从Cell处理器到其上运行的"Software Cell"。


Cell是一个向量处理结构,这在某些方面限制了它的使用,但也意味着大量的工作可以从向量处理中获益。在第三部分将涉及向量处理方面的内容。


虽然PC在过去对所有竞争者而言一直是一个总是不断强并不断进取的对手,在市场上出现的第一台使用Cell处理器的机器将从PC手中夺取性能王冠,并可能是永远的夺走。在第四部分将解释为什么PC在过去总是获胜,而Cell为什么能击败它。


在第5部分将有一些结论和参考文献的列表。如果不愿意阅读在第一和第二部分Cell处理器的全部细节,这里有一个简短的概括。

第一部分:Cell内部


在第一和第二部分将分析Cell体系结构,第一部分涵盖了Cell处理器中硬件。


a.. 背景

b.. 什么是Cell体系结构

c.. Power结构处理单元PPE(Power Processing Element or PU:Processor Unit)

d.. 附加处理单元(Synergistic Processing Element or APU:Attached Processor Units)

e.. SPE本地存储

第二部分继续Cell的内部结构分析,流处理(stream processing)机制和Cell软硬件的其他部分

a.. 流处理

b.. 硬实时处理

c.. DMAC (DMA直接存取通道)

d.. 存储

e.. Software Cell

f.. 多Cell群

g.. 硬件DRM

h.. 其它以及未来可能的设置

第三部分:cell计算Cellular Computing


于正常的CPU不同,Cells的主要性能来自向量处理单元SPE,这部分将关注可以从Cells获益的应用。


a.. Cell 应用

b.. 游戏

c.. 3D图形

d.. 视频

e.. 音频

f.. DSP(数字信号处理)

g.. SETI(search for extraterrestrial intelligence 探索外星智能生物?)

h.. 科学计算

i.. 超级计算

j.. 服务器

k.. 流处理应用

l.. 不能加速的应用

第四部分:Cell与PC的对比

虽然有许多其他平台在各个方面显示出更高的水平,x86 PC几乎获得了整个计算机市场。这部分将考察PC如何走上主导位置以及为何Cell能将其拉下王座。


a.. 奉承的诚恳形式是盗窃

b.. Cell与x86

c.. Cell与软件

d.. 攻击

e.. Cell与苹果

f.. Cell与GPU 图形图像处理器

g.. Cray因子

h.. 结果

第五部分:结论和引文

a.. 小节

b.. 结论

c.. 引文和进一步的阅读材料