注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

My Unix World

不要迷恋Unix,Unix只是计算世界很小的一部分!

 
 
 

日志

 
 

【Copy】重归向量处理-STI联盟 Cell 处理器分析  

2008-12-11 20:37:48|  分类: C-CPU |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

STAR: STR-01-01-2005-0317
标题: Back to Vector - The analysis of STI Cell processor
作者: bigblue@smth
来源: STI专利,ISSCC2005论文,HPCA Keynotes,网站资料

2005国际固态电路年会ISSCC上最重要的一件事情莫过于,2月7号STI联(Sony, Toshiba, IBM)盟第一次公开发布Cell处理器的细节。在这次ISSCC2005会议上共有5篇论文与Cell处理器相关(7.4, 10.2, 20.3, 26.7, 28.9),涉及Cell处理器的总体结构,流处理单元,电路设计,存储和I/O。从Cell展现的性能和微体系结构上看,无论最终是否在市场上获得成功,它都是主流处理器设计的一个巨大飞跃。正如IBM的设计目标"supercomputer on desktop"所阐述的,Cell结合了多核心,多线程,SuperScalar,功耗控制,高速存储接口和I/O等所有处理器和体系结构设计中顶尖的技术,以及IBM最新的90纳米铜互连SOI生产工艺。从Cell上可以看到曾经流行的向量处理方法再次回归,这次向量并行技术给微处理器设计带来的前所未有的飞跃。

1 处理器设计技术的再次回归

整个计算机界似乎总是在不停的重复着"前进-回退-再前进"的步调。很多基础性的创新结构在很早之前都被提出了,但由于市场、技术和现实条件的限制最终只有很少的技术在一段时间内成为主流。一种主流技术在走到生命尽头之后,以前一种被遗忘技术可能被人们从故纸堆中翻出来,以崭新的面目引导新的技术革新。

在处理器体系结构设计中的上一次回归是RISC。当VAX开启了变长指令,多寻址模式等CISC技术之后,处理器设计变得越来越复杂,纯粹的 CISC很难设计,也难以实现;这时提倡精简的RISC替代了VAX处理器体系结构称主流技术。在80-90年代,RISC思想几乎遍布所有厂商的处理器。即使CISC风格的Intel和AMD处理器也借鉴了RISC的经验,处理器并不直接执行复杂而功能强大的x86指令级,而是将其转换为数条简单的内部微码,甚至通过解释执行的方法在一个RISC风格的核心上运行。RISC只针对最常用的简单指令设计并优化,提供大尺寸的寄存器堆,并使用超标量多发射技术,进一步结合乱序执行以减少处理器中的暂停。

这些听起来都没有什么问题,但是回顾一下历史我们会发现今天的RISC背离它的宗旨越来越远了。为了榨取更高的性能,RISC处理器(包括 CISC on RISC的x86处理器)的发射宽度越来越大,流水线越来越深,分支预测算法层次越来越多,寄存器数目也不断增加,更值得注意的是指令集不断被扩展 (AltiVec)。比较一下PA-RISC,Alpha21264-EV8,SPARC IV,PowerPC G4,Power4这些最新RISC的代表和Pentium III/IV以及Althron,你会发现RISC处理器并不比CISC简单多少,而且Intel总能设计出比RISC主频更高的CISC处理器。

表1 2001年.18微米工艺主流处理器对比
处理器类型 结构风格 生产厂商 发布时间 主频 生产工艺 Die 晶体管数 功耗
Pentium IV CISC Intel 2001 1.3-2GHz 0.18um 217 42M 48-60W
Althorn CISC AMD 2001 1.7GHz 0.18um 37.5M 75W
PA-RISC 8700 RISC HP 2001 750MHz 0.18um 304 186M 45W
SPARC III RISC SUN 2001 1050MHz 0.18um 210 29M 75W
MIPS R1400A RISC MIPS/SGI 2002 17W
PowerPC G4+ RISC IBM/Motorola 2001 1GHz 0.18um 106 33M 21.3W
Power4 RISC IBM 2001 1.3GHz 0.18um 440 174M 150
Alpha21264c RISC DEC/Compag/HP 2001 1GHz 0.18um 15.2 152M 100W
资料来源hp, intel, hotchips, www.geek.com

从表1的对比中可以看到,在去除工艺上的差异之后,大部分RISC在Die面积,晶体管数目和最大功耗上都超过了同期的CISC处理器。 RISC处理器的大量硅片面积被不断增大的Cache,集成的存储控制接口所占用,当然这也使得RISC处理器在SpecFP性能上一直领先于x86系列。但是X86处理器在工作频率上却远远超出了所有的RISC,而一般的常识却是简单的RISC更容易实现高主频。在多发射超标量和存储接口的上的重点设计制约了RISC处理器的主频提升。对更高性能的渴望让RISC变得越来越庞大、复杂,如今新处理器设计获得的性能回报变得越来越少,而复杂度却在急速增长。处理器技术又一次接近了发展瓶颈,新的技术回归过程开始启动,所不同的是这次回归的是向量并行技术,而Cell是这一过程的先行者。

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
  • 九个核心同时运行10个线程
  • 内部使用4X128位的环状总线互连,96Bytes/Cycle
  • 单精度浮点性能超过256GFlops,双精度浮点超过25GFlops
所有指标中最引人注意的莫过于其内部的9个执行核心与同时运行的10个线程。虽然多核心,多线程处理器结构早在IEEE Computer 97未来处理器体系结构专刊上就受到的大家的重视,其后CMP,SMT的研究和芯片也逐渐成熟,但Cell是第一个同时应用异构多核心和同时多线程SMT 技术的主流处理器。

SIDE BAR 多线程和多核心技术的应用
SMT最早应用在传说中的Alpha21364也就是Alpha21264-EV7/8上,但由于Alpha的夭亡21364从未被作为正式产品公布。Intel在接手Alpha团队之后推出HyperThreading,在x86上实现了SMT。接着Power5也开始应用SMT技术。相比 IA-64在ILP上不遗余力却收效甚微的工作,利用多线程技术,尤其是SMT技术来开发线程级并行要更加简捷,并且收效更为显著。
IBM早在Power4芯片中就开启了在一个芯片中同时集成两个硬件执行核心Core的先例。虽然Power4中的单个核心比Power3还要简单,但Power4成功的取代了PowerPC在IBM服务器中的核心地位。AMD刚刚公布了基于其X86-64的双内核处理器,Intel也推出了双核心的Itanium, Xeon服务器级处理器,下一季度双核心的Pentium D将开始准备替代使用了4年的Pentium 4处理器。多核心集成除了带来片内互连的高带宽,降低SMP成本之外,还带来的安全性,可靠性等方面的优势。当然多个复杂核心封装在一个内核中,会增加 Die面积,降低成品率,抬高生产成本。

表格 2 Cell参数和其他主流处理器性能对比(0.25um以上工艺生产)
参数指标 Cell P IV Power5 其他处理器Max值 其他处理器Min值
性能 处理器 性能 处理器
厂商 STI Intel IBM
发布时间 2005 2004 2004
Die面积 (mm2) 221 146 389 475 PA-8500 47 PPC G4
415 Power4 30? Mips 1400
晶体管总数(M) 234 55 276 325 Itanium 12.5 Alpha211264c
L1Cache容量I/D 32K Icache 12k uOPs 64KB/32KB 0.75MB/1.5MB PA-8700 16KB/16KB Itanium
32k Dcache tcache
SPE 256KB 8KB Dcache

L2Cache容量 512KB 512KB 1.92MB 3MB Itatium 256KB PIII PIV-1
功耗(W) 50-80w? 70-100w 100W 125W Power5+ 5.4W PPC G4-500
5W TM5500
指令发射宽度 PPE2*2 2*3? 8 10 E2k 3 (2+1 branch) Lots
9 AMD-MP
工作主频 4.6G 3.6G 1.4G 2.4G Opteron
内部互连带宽 73.6GB/s
外部互连带宽 73.6GB/s 6.4GB/s Xeon3.6G
存储带宽 25.6GB/s
GFLOPs 256G FP or 26G Double

注:其它芯片带宽数据待补充,主要是AMD和Intel的多核心结构的带宽数据

3 Cell的结构

3.1 桌面计算机的结构演化


在开始详细分析Cell的结构之前,不妨先看一下近30年的发展过程中桌面系统体系结构的变迁。除了CPU而外,桌面系统的其他部件的功能也不断增强。85年的Amiga机器由于结合了工作站CPU和视频游戏处理芯片而在DOS时代实现了GUI多用户界面。虽然Amiga公司94年破产,但 Amiga机器也创下了百万台的销量。Amiga的例子说明,除了处理器之外,系统的其他部分也很重要。

图 1桌面系统的演化*

如图1所示当桌面系统的网络,图形等部分也已经复杂到用专门的处理器进行处理时。为了降低生产成本,并最大限度利用集成度提高和芯片内部互连的优势,STI选择了Cell结构,将多个处理器和存储,I/O控制逻辑整合到一个Cell芯片中。

3.2 向量化的多核心Cell处理器


从图2可以看到,以内部互连EIB总线为核心,8个完全相同的SPE(Synergistic Processor Element)向量处理核心和一个PowerPC兼容的PPE(Power Processor Element)核心围绕在环状数据总线四周。XIO接口提供与Rambus XDR内存的高速互连,FlexIO提供了高速I/O通道。

图 2Cell芯片结构*

IBM为Cell体系结构制定了multi-core, flexible, broadband, real-time, security的设计目标,在了解完Cell的各个组成部分之后,再回来看究竟Cell芯片是如何达到以上设计目标的。

3.3 PPE (Power Processing Element)


主要的处理核心是一个兼容PowerPC指令的双线程双发射顺序执行RISC核心。虽然IBM在Power4和Power5以及Power5 的简化版本PowerPC 970(PPC G5)上积累了足够的高性能乱序发射超标量,多线程和高存储带宽RISC处理器的经验。但是Cell的主处理核心并没有使用简化的Power4或者 PPC970核心,取而代之的是一个顺序超标量结构。但是这个核心保留了两项关键的处理器设计:超标量和多线程技术。

图 3 PPE核心在Cell芯片中的位置*

64位的Power体系结构,以及有极大相似性的PowerPC体系结构是目前仅存的两种RISC体系结构之一(另一个幸存者是SPARC,而Sun已经将SPARC的后续高性能版本完全交由HLA,自己转向MAJC这类全新的设计)。Alpha,PA-RISC和MIPS在工作站/服务器市场上已经逐渐消失。MIPS在嵌入式领域有足够的份额,但也不断受到ARM的侵蚀。PPC 440在嵌入式领域有良好的盛誉,由于其功耗和性能方面的优势,常常被用于网络处理器或者媒体处理器的原型或基础处理器,Xilinix的大规模FPGA 中也集成了PPC核心。IBM在服务器市场的巨大份额支持Power处理器和PowerPC处理器有足够的销量。并且PowerPC的最大用户Apple 在操作系统,开发环境和应用软件上也有巨大积累。Cell的PowerPC兼容PPE核心意味者很多应用可以不加修改,或者很少修改之后就能移植到全新的 Cell结构上。

3.3.1 快速简单的PPE核心


整个PPE核心包括3个主要部分512K L2 Cache,32KB L1 I&D Cache, 以及PXU(Power体系结构执行单元)。整个Cell芯片中的Cache都是由PPE控制的,和目前Pentium M/D/4以及Power 4越来越大,越来越复杂的Cache系统而言,PPE的Cache容量适中,对于双发射的顺序执行核心而言这样的Cache完全有能力满足取值、执行的要求。

顺序执行意味着在PXU中将不会再有重定向之类的位于处理核心关键路径上的全局网络。在以往的超标量设计,这类乱序执行的硬件网络常常是 Timing延迟的瓶颈。超标量技术使得处理器一个周期可以完成超过一条指令,也就是说IPC能够超过1,然而而实际的使用表明,即使4发射甚至8发射的乱序执行核心,在单一程序上的IPC也很少能超过2。但是发射宽度加倍之后,增加的设计工作复杂度要远远超过一倍。

相比不停地艰难发掘ILP(指令级并行)而言,线程级并行TLP中包含着巨大的性能提高空间。由于POSIX线程标准的制定,以及交互式 GUI和多任务多用户操作系统的广泛使用,多线程的应用场景随处可见。SMT的研究和HyperThreading的使用表明在一个处理器核心上支持多个线程要比纯粹提高处理器的发射宽度更容易,对整个应用的加速效果更好。
顺序执行核心的一大缺点就是处理经常要处于暂停状态等待相关指令的结束,然后再发射完成新的指令。对于一些应用程序而言这样的执行核心将延缓程序的执行, Cell的高主频可以弥补部分性能损失。并且对于大多数桌面应用而言,现在的处理器核心已经超过需求很多。真正需要性能的是媒体处理,科学计算,物理模拟,生物数据分析模拟等计算密集型的应用,而这部分应用正是Cell擅长的,SPE能很好的利用向量和并行化技术来加速这些应用。

3.3.2 VMX扩展


另外一个值得注意的是PPE包含VMX(也就是PowerPC上的AltiVec多媒体扩展[1],Apple称为Volocity Engine)。VMX这个名字最早出现在MPF(MicroProcessor Forum)上IBM公布的PowerPC970FX处理器资料上,以往Power结构中是不包括VMX或者AltiVec技术的。而VMX本身就是一个向量处理单元,或者说是类似于SSE,SSE2的SIMD扩展。PPE中的VMX向量单元加上8个SPE向量处理单元,Cell芯片的每个处理的单元都充满的并行和向量。

VMX有32个128位寄存器,每个寄存器可以保存16个8位,或者8个16位或者4个32位数据。32为数据可以是单精度浮点或者符号/无符号整数。VMX不支持64位数据是因为IBM认为两个64位数据共同操作获得的性能不足以弥补向量化带来的额外开销。VMX包括从存储器中load向量,将向量结果写回存储器,以及向量算术运算操作。相比x86平台中的MMX,MMX2,SSE,SSE2/SSE3而言,VMX有更多的寄存器,使用特殊的VRSAVE寄存器来降低任务切换时的开销,并且具有对图像处理和加密非常有效的permutation指令。

3.3.3 Cache存储


PPE的Cache包含Load/Store一致性协议。在过去的专利中STI声称在Cell中只有PPE有Cache,而其他的SPE (APU)之有本地存储local Memory而非Cache。在专利所述的Cell芯片Cache模式中,单个Cell芯片的应用无需考虑多核心互连的Cache一致性协议,因此可以使用相对简化的Cache控制逻辑。

而在ISSCC会议上进一步的消息表明SPE的Local Memory可以被配置成为Cache使用,那么在单个Cell芯片中也包含的Cache一致性的问题。这可能是由于无论IBM或者Sony都需要在他们的设备中使用多个Cell芯片,Cache一致性是无法回避的问题。而IBM发展Cell芯片的一个初衷就是去除目前PC结构中愈来愈复杂的南北桥芯片,让Cell芯片直接和存储、I/O交互。因此Cell芯片中集成多芯片互连Cache一致性协议控制是一个必然的选择。因此一个可能的选择是Cache一致性协议并没有融合到SPE和PPE的设计中,而是作为Cell一个可以选择使用的单独部件。在后面SPE核心的介绍中会进一步介绍Local Memory与Cache的关系。

3.4 SPE (Synergistic Processing Element)


虽然PPE是一个不错的核心,但是Cell的性能源泉却是8个向量化的SPE核心,这8个核心也就是Cell这个名字的来源。单从性能指标上看Cell象一个放大了的VMX扩展单元。但实际上SPE是一个独立,可重配置的向量处理器。在ISSCC2005会议上论文7.4以Cell处理器的流处理单元为题讨论了SPE向量处理器的设计。

3.4.1 单个SPE处理核心


每个SPE包含2千1百万个晶体管,其中1千4百万个用于存储单元,其余7百万用于控制逻辑,峰值性能达到32Gflops/32Gflops。

图 4 SPE向量处理核心在Die中的位置*

SPE是一个双发射的SIMD处理器。向量宽度也就是寄存器宽度为128位,和VMX一样最多为16路向量。一个SPE中共有128个128 位寄存器,并配有256KB的本地存储单元LS (Local Storage),集成DMA控制器允许16个读写请求。SPE是一个高度可配置的处理单元,单个SPE可以被配置成不同的运行方式和存储保护模式。一个 Cell芯片中的8个SPE或者多个Cell芯片中的不同SPE可以配置用于协同处理。

SPE中共有4个SIMD处理单元,分别位于两条流水线FXU even pipeline和 FXU odd pipeline(图 5)。在Even Pipeline上有浮点和整数SIMD单元,而Odd Pipeline上是Permute和Channel单元。Permute单元可以用其他寄存器中的部分域或部分位来构造128位寄存器中的数据内容,甚至可以随机选择。Channel单元主要与SPE中的DMA协同完成向量的读取和写入操作。

由于要支持vmuaddfp这类乘加指令,每条流水线中的单元都可以同时读取3个128b(16B)的源操作数,并写回一个128位的结果。需要注意的是乘加指令并非SIMD类操作。在SPE中还有许多这类处理单个128位数据的指令,甚至包含分支这样的控制类指令。与VMX功能部件的另外一个最大不同就是,SPE给出了双精度浮点的性能峰值,而VMX(Altivec)是不处理64位数据的。
SPE的各个功能部件从Local Storage中获取数据和指令。作为本地存储器,LS并非绝对是一个哈佛结构的Cache,并且很多情况下,LS不会作为Cache使用。SPE不能直接从内存或者其他核心读写数据,这些外部读写请求都交由SPE中的DMA控制器处理,通过Cell芯片的内部互连EBI总线来访问非本地存储器中的数据和指令。

图 5 SPE内部组织结构框图*

图 6 SPE内部流水线结构*

从图 5和图 6中可以看到SPE无论从功能,性能和复杂程度上来看都是一个完全的向量处理器,而不仅仅是放大了的VMX单元。SPE与VMX的指令集也不完全相同,但 SPE中应该包含的绝大多数VMX指令,从VMX代码转换为SPE应该非常简单。

3.4.2 SPE中的本地存储器


在最早的Cell处理器专利中,SPE的本地存储器Local Storage是与Cache完全不同的结构。由于IBM习惯与在自己的服务器中使用单一地址映像的技术,因此很多人猜测Local Storage的使用是为了避免使用复杂的虚存技术,并减少用于Cache动态映射的Tag结构和一致性控制逻辑。但是之后STI的报告中Local Storage似乎又具有的Cache的功能。

但就LS和Cache的存储单元而言,都是使用SRAM来实现的。不同的是Local Storage是静态映射的,其内部的数据可以直接通过特定的地址空间访问到。而Cache中的内容是动态映射的,无法在指令中使用特定地址直接访问 Cache。在实现上Cache要比Local Storage复杂。
在Cell芯片中明确的Cache是PPE中包含的L1和L2Cache。很难想象258KB Local Storage会作为SPE的L1 Cache和PPE共享512KB的L2Cache,如果真是这样,虽然EIB是一个高速,高带宽的内部互连结构,L2Cache也可以直接连接在EIB 上,整个系统将受限于L2 Cache的读写端口带宽。因此如果如果SPE中的Local Storage能够被动态配置成Cache使用时,它应当和PPE中的L2 Cache处于同一级别。(IBM的专利中说明SPE是一个可以被动态配置存储包含的核心,整个Cell芯片也是如此)无论Local Storage被当作静态映射的存储空间还是Cache使用,当SPE需要的数据或者指令无法在Local Storage中命中时,读写请求都会通过DMA控制器发送到EIB总线上。同样连接在EIB总线上的XDR存储控制器或者I/O控制器接收读写请求,并配合完成相应操作。

由于Local Storage和Cache的实现方式不同,一个可能的方法是在SPE中之完成了静态映射Local Storage所需要的存储单元已经很少的一部分控制逻辑使得Local Storage可以被动态配置。而8个SPE的Local Storage被配置成Cache使用所需要的控制逻辑和一致性协议被单独出来。或者有可能STI实际上在一个SPE上实现了功能完全的Cache并且其可重配置存储空间,而将其称为Local Storage,但从STI公布的Die图面积划分上看这完全可能。或者SPE中的DMA控制器就有Cache配置这样的功能。在STI提交的多份专利中 DMAC是变化最多,最不明确的部件,分布式和集中式的DMAC都有提及。

Local Storage向SPE功能单元提供数据的带宽是16B/Cycle,DMA的带宽是128B/Cycle。

3.4.3 多个SPE的协同工作方式


一个Cell芯片中的8个SPE有两种代表性的协同工作方式:并行向量处理和流处理。

图 7 多SPE的协同工作方式

单个的SPE作为SIMD处理核心而言,与Cray的向量处理单元相比在向量宽度(deep/long vector)和功能单元数上都有不小差距。但是8个SPE可以一起完成大规模的向量并行处理,可以是8个128位的向量,也可以是32个32位向量的处理。而EIB上提供的向量数据读写带宽峰值可以到384GB/s,8个SPE单精度浮点性能超过256Gflops,双精度浮点性能超过 25Gflops。IBM声称基于Cell的一个服务器机架就可以达到16Tflops的性能。目前在单芯片浮点运算能力上只有来自Nvidia和ATI 的GPU可以与Cell相比。"nVIDIA的GeForce 6800 Ultra在片断处理(fragment processing)时可以达到40GFlops的速度。与之相比,Intel 3GHz的Pentium4在使用SSE指令时,其理论峰值仅仅6GFlops。"并且GPU可以通过STL之类的技术实现多个芯片协同工作,但于 Cell相比仍有不少差距。

Stream Processing是目前流行的处理技术,在多媒体处理和加密/解密中有丰富的应用实例。Cell中的单个SPE可以作为流处理链(Stream Chain)中的一个步骤,或者用数个SPE完成一个步骤。单个Cell芯片中8个SPE可以形成多种Stream Processing Chain。多个Cell芯片中的SPE可以构成更大,更复杂的流处理链。

Cell芯片最引人注意的一点是这两种工作方式是可以动态配置的。根据软件应用的不同,甚至一个Cell芯片的8个SPE可以一部分完成长向量的并行处理,而另外一部分组成流处理链。

3.4.4 SPE的其他特性


SPE中的执行核心称为SPU(Synergistic Processing Unit)。SPU除了包含类似VMX的SIMD指令外,还实现了控制类指令,支持图形处理中常用的单精度浮点操作,以及IEEE 双精度浮点操作(类似Top500中的Leader BlueGene)。为了简化SPU的设计,SPU中没有包含存储保护和分支预测之类现代处理功能。这部分功能被包含在SPE的DMAC控制器中。 DMAC中包含称为Branch Hint的功能,目前还不知道它与常用的分支预测有多大区别和相似。

3.5 Cell的存储和I/O端口


Cell的存储和I/O端口技术来自Rambus。Cell芯片引脚中的90%是Rambus定义用于存储和I/O连接的。

图 8 Cell中的存储和I/O带宽*

存储方面使用的是Rambus XDR技术。Cell中集成了两个XDR控制器和双Bank的RAM相连。XDR的工作主频是3.2GHz,每次存取两个字节的数据,在双控制器双 Bank的配置下,存储峰值带宽达到了25.6GB/s。但是需要注意的是XDR本身是为嵌入式系统提供的存储技术,目前只能支持至多256MB内存,这显然不符合现代应用的潮流。下一步Cell可能扩展XDR标准,以支持更大的内存。目前或者可以通过高速I/O通道以老的桥接方式连接更大容量的内存,但这一方法与Cell的简捷,在性能上aggressive的设计风格显然不符。

Cell芯片I/O部分使用Rambus的FlexIO技术。FlexIO的工作频率可以在400MHz到8GHz之间选择,并且向后兼容 HyperTransport,RapigIO和SPI-4等互连总线技术。目前Cell中的FlexIO工作频率为6.4GHz,7条输出通道提供 44.8GB/s的输出带宽,5条输入通道提供32GB/s的输入带宽,总带宽为76.8GB/s。

存储和I/O部分的带宽总和超过100GB/s,并且XDR和FlexIO控制器直接连接在内部的EIB总线上,并不隶属与PPE或者某一个 SPE。相比x86阵营中的HyperTransport,Infiniband和3G I/O等技术而言,Cell的外部连接带宽是一个难以想象的数字。(常用的HyperTransport工作主频在800MHz和1GHz,带宽从 200MB/s到12.8GB/s[5])

FlexIO是高度可配置的总线技术,除了与I/O设备交互,完成PC南桥芯片的工作外,它还可以用于多Cell芯片互连,多系统互连等更加复杂的任务。

3.6 环状EIB内部互连总线


Cell中9个处理器核心的通讯以及访存、I/O都是通过内部的互连总线EIB(Element Interconnect Bus)实现的。EIB必须提供足够的高的带宽,以避免互连成为Cell发挥器巨大计算能力的瓶颈。因此EIB总线实际上包含了4个环状的数据通路,每个数据通路都是128位(16B)宽,支持多个总线传输事务。EIB总线的峰值数率是每周期传输96B数据,在4.6GHz主频的Cell芯片中峰值带宽达到可观的147GB/s,完全可以满足同时向9个处理核心提供通讯,访存和I/O的要求。同一时间在EIB上可以存在超过100个总线请求。

(注*: 图改自IBM H.Peter.Hofstee在HPCA05的KeyNotes)

4 Cell的软件和应用

Cell处理器和体系结构都按照简捷,快速的风格进行,并且倾向于在性能上准确Aggressive的设计,这使得Cell的编码模式可能和以往有很大不同。STI在定义Cell体系结构的时候将Cell芯片中的处理核心称为硬件Cell,而将其上运行的最小软件单位称为软件Cell。一个软件Cell包含运行所需要的程序指令和数据(也被称为Apulet)。按照理想的模式,软件Cell可以在任意的硬件Cell上运行,在多芯片系统下甚至可以被操作系统调度到另外一个Cell芯片的SPE上运行。而这部分调度工作是操作系统完成的,对开发人员和用户完全透明。这使得Cell是一个高度可扩展的的体系结构,从设计的一开始就考虑了大规模分布式系统的应用。

软件Cell中包含源、目标和响应地址字段,其格式和内容依赖于使用的硬件网络,软件Cell可以被发送到不同的硬件Cell中。也有独立于网络的地址来定义特殊的Cell。这使得可以在网络上的一台特定主机可以将一个软件Cell发送到任意的硬件Cell。
SPE使用的是虚拟地址,然后一旦DMA命令发射出去虚拟地址就被映射成为实际地址。软件Cell中包含这些DMA命令以从存储器中获得数据进行操作处理,如果SPE被用于处理流,Cell中将包含描述何处读取数据,何处回写结果的命令。一旦SPE建立完毕就被驱使完成Cell。 虽然这一系统的实际工作方式仍然很不清晰,但是显然有某些适应性机制允许Cell在一个网络上出现,消失。软件Cell的系统设计在一个以此为基础的操作系统上显然更为高效,但是也可以通过在现有操作系统上增加一层来支持它。Cell应该不会因为运行操作系统的不同而添加限制。(IBM具有设计实现无关接口的良好习惯)

然而这样的结构也带来的其他的不便。从Cray发展向量超级计算系统的时候起,书写向量并行程序就是一个非常复杂和困难的工作。编译技术上的自动向量化auto-vectoring工作也进展缓慢。并且Cell的程序员还需要说明应用的不同组成部分和他们之间的通讯。在Cell体系结构上获得最佳性能的方法还是需要直接面向SPE做优化。令人高兴的是IBM已经有了面向Cell的编译开发环境,Sony已经向各个电视游戏开发商提供了PS3的开发平台和裁减并正对Cell优化后的OpenGL库。而且PS3开发环境将回到开发人员熟悉的类似PC工作环境,而不需要向PS2一样需要大量深入到汇编语言层。现在的问题是Cell需要占领多大的市场,对于特定市场的应用和软件的支持如何?

4.1 Cell对并行应用的支持

作为一个侧重向量结构设计的芯片而言,向量并行是最合适的应用。科学计算,物理和生物模拟这些以往在向量并行超级计算机中广泛使用的计算模式都可以从Cell体系结构中受益。而STI声称Cell真是一个"桌面超级计算机"的设计方案。对于传统不可向量化的应用而言,单颗Cell芯片的性能至少和两个甚至更多PowerPC 970或者P4 3.6G处理器相当。对于可向量化的应用而言唯一潜在的问题就是相对受限的内存容量。Cell芯片本身有很大的寻址能力,但是目前的XDR存储方案只支持 256MB RAM的直接连接。即使这样,Cell还是可以通过I/O单元形成Stream Processing来获得不错的性能。

实际上现在的GPU已经在开始处理科学计算中的部分问题了。目前的研究和使用情况表明"很多计算可以通过GPU加速,包括稀疏线形系统求解,物理模拟,线形代数操作,偏微分方程,快速傅立叶变换,水平集合计算,计算几何问题,以及非经典图论,例如体绘制,光线跟踪和流形象化。"。在 SC2004会议上已经出现了使用GPU Cluster实现高性能计算的论文。
同时对于通用或者桌面应用领域,GPU也开始逐步分担CPU的繁重计算任务了。这是完全合理的,很早以前Nvidia的GPU在流水线数量,深度和功能单元和晶体管数目上已经超过了Intel的x86处理器。计算机中的3D图形芯片在很多性能上早已超过通用处理器。以前他们被限制在3D图形处理但是自从梯度(shader)的加入,他们被用于许多更加具有通用性任务中,这样的通用性和通用处理器并非没有区别,但是Shader 4.0将比以前的版本具有更多的通用性。

目前Apple已经开始使用称为Core Image和Core Audio的技术,通过利用GPU的资源来加速多媒体应用的处理速度。而Microsoft也承诺最新的DirectX Next将在Shader中包括更多的通用能力。

Cell的结构和运行方式和GPU很接近。而从设计一开始Cell就面向了更加通用的领域,而GPU一直专门正对图形处理。对于开发者而言改写那些非3D的应用程序在Cell上要更容易写。并且Cell有快速的内部总线供主处理核心和向量处理核心通讯使用,这和目前GPU的使用方式有本质的区别。目前的GPU只能通过慢速的AGP或者PCI-Express总线来访问内存。虽然PCI-Express比AGP提升了许多,但是共享板上总线的性能总是受限的。目前GPU和主存之间的数据传输相当慢。

目前GPU在高性能和通用领域的进展几乎无一例外的都可以完全套用到Cell上,并且Cell具有更好的通用性,更好的移植环境和更高更均衡的性能支持。

4.2 Cell在分布式计算领域

Cell是一个高性能分布式计算体系结构。它由硬件和软件Cell构成,软件Cell包括数据和程序(apulets),它们被送往硬件 Cell进行计算并返回结果。但是这个结构并不是固定的,如果你有一台计算机,一台PS3和一台HDTV都基于Cell处理器,它们可以协同工作。这种模式已经被讨论很多年,但是Cell是第一个这样的设计和实现。想象一下在你在电视机上观看电影时PS3每5分钟为SETI运算一会。你也许会为SETI花费的运算感到惊奇,的确,Cell的速度非常快。

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

一个Cell系统中的单一计算处理单元被称为处理元(PE Processing Element)并且甚至单独的一个Cell都是高性能的处理器,理论上他们具有250GFLOPS的处理能力。在计算世界中通常很多理论上的最大性能图表(带宽,处理性能,吞吐率)在现实生活几乎无法看到。Cell在某些指定的应用上能够接近理论最大性能。预期低廉的价格,极高的性能和广泛的使用使得 Cell使构造分布式计算环境的良好选择。

4.3 Cell对桌面应用的支持

除了那些目前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再次进入广大的桌面市场提供了机会。

拥有一个专门为Cell芯片定制的Native本地操作系统是发掘Cell极高处理能力的最佳选择。但是就像目前的CPU对于大多数桌面应用而言已经绰绰有余,Cell还可以通过虚拟化技术来支持多个操作系统。最早在IBM的370/390大型机上就通过了虚拟化技术实现了在一个机器上运行多个操作系统,Transmeta的动态二进制翻译更可以在VLIW硬件核心上高效模拟X86处理平台。Cell的如此强劲的性能使得使用虚拟化或者类似二进制翻译的技术之后其性能仍然可以和x86处理器上的本地执行相比较。

4.4 Cell在游戏市场上的应用

Cell的第一个商业领域就是游戏市场,SCEI最新的PS3已经在05年3月进行过内部展示,预期在05年的E3展会上将会正式发布并销售。Sony(SCEI)声称其主要的游戏软件开发商已经获得了基于Cell的PS3开发系统,包括PS原型,基于Cell的开发工作站和专门针对 Cell优化的开发环境和OpenGL库。

Cell的设计师紧盯raw computing power而不是图形能力(PS3上将使用Nvidia的图形处理芯片),由于到硬件功能被转移到软件上使得开发者有更多的灵活性。现在的问题是使用了4 个Cell芯片互连结构和Nvidia最新图形芯片的PS3是否能成为第一个实现实时光影跟踪的游戏终端。

一个有趣的联想是PS3现在唯一有威胁的市场竞争者Microsoft的Xbox2也是基于PowerPC核心的处理器设计的,并且处理器也是一个双发射结构。虽然其更可能是一个传统的超标量乱序执行RISC结构,将其上面的游戏移植到Cell结构上应该也不会很困难。

4.5 Cell在嵌入式领域的应用

STI的另外一个成员Toshiba计划在自己的HDTV中使用Cell芯片,这一下子为Cell芯片开辟了广阔的嵌入式应用市场。注意到 IBM一直将Real Time和Security作为Cell的设计目标之一,而这两点是目前嵌入式市场最迫切的要求。

对于数字信号处理DSP而言,其内部广泛使用的FFT快速傅立叶变换是一个高度可向量化的算法,它可从Cell上获得极大的性能提高。DSP 中更多的应用可以用Stream Processing的方法加速,而Cell提供的高度灵活,可配置的Stream Process方案。Cell芯片在性能上的巨大优势使得其替代传统DSP的障碍就只包括芯片的功耗和价格了。在下面的章节可以看到这两个问题都可以很好的解决。

视频和音频是两个用于可以不断吞噬处理能力的应用领域。GPU已经被广泛用于加速音频处理,诸如Core Image之类的技术完全可以应用到Cell上,并且Cell比GPU更加通用,性能更高。音频总是被分成多个通道分别处理之后在混音,许多操作都可以被向量化。

为了的HDTV这样的嵌入式往往需要一个高性能的处理器加上一个专用的DSP芯片来完成视频/音频解码,纠错,信号分离等任务,开发一个专用芯片代价极高并且昂贵。Cell的强大性能以往着无需开发专用芯片,单一Cell芯片就足以完成所有的任务。Cell在高性能嵌入式市场上也有良好的前景。

5 Cell的市场前景

处理器的设计、开发和制造有巨大的成本开销,市场份额的大小往往是处理器成败的关键因素。即使再好的设计(如Alpha)如果没有足够的市场份额将处理器的成本降低,最终将无法在市场上立足。

目前市场上最为成功的桌面处理器是x86结构,整个PC市场04年的销售量是1.75亿台,总销售额是1945亿美元,大部分的市场被 Wintel联盟占领,AMD在北美和欧洲也占据了部分市场,而PowerPC在桌面市场的销量完全依靠Apple的Mac机器。因此每年市场上销售的 x86结构的处理器大约在1.75亿片。

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

对于首先使用Cell的PlayStation,从01年至今累计销售的PS2超过8000万台,每台平均售价是300美元。以此可以预测 PS3的年销售量大约是2000万台,年销售额大约在8亿-6亿美元之间。同时需要注意的是每台PS3上使用了4颗Cell芯片,因此一年因为PS3而销售的Cell芯片就会有8000万颗。虽然还不足以超过x86芯片在PC市场上的销售量,但对于一个处理器而言这已经是一个相当好的起步了。

更值得注意的是Toshiba在其HDTV中使用Cell芯片,同时宣布Cell将被STI联盟之外的公司用于类似的设计。与全球巨大的TV 市场相比,PC的销量就不足为奇了。H.264标准下的HDTV需要极大的处理能力。和传统的定制芯片比较起来通用处理器要低效很多,虽然专用芯片开发起来相当复杂,昂贵,但是巨大的需求量可以降低价格并且可以使功耗降到最小。然后Cell的加入将使一切改变,一颗通用目的的向量处理器将同时具有充足的处理性能和低廉的价格,开发简单并且有通用的特征。

IBM已经制造了基于Cell芯片的工作站,并且并且预期用Cell处理器板构造的超级计算机在一个Rack上可以达到16Pflops的性能。64个Rack机架就可以达到Tflops。虽然目前基于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市场上有所作为。

6 Cell与不同市场处理器的比较

Cell被设计用于广泛的市场,从PDA,游戏终端,桌面工作站到服务器和超级计算系统。在这每一个领域中都有了成熟的主流体系结构和庞大的软件基础。除了搭上PS3顺利进入游戏终端市场之外,Cell能否与其他领域目前处于领导地位的处理器结构竞争呢?

6.1 Cell与PC处理器

由于Intel和AMD推动x86体系结构,不断推出高性能和大量廉价的处理器x86在每一场对决中均胜出。当x86和高速的RISC竞争时,它利用了和RISC相似的技术拉近了速度差距,并使得RISC没有明显的优势。三个曾经显赫的RISC处理器系列(Alpha MIPS PA-RISC)已经成为历史。即使Intel自己的Itanium也快被Opteron扫出中低端服务器市场。Sun也受到了打击,他已经宣布取消下一代UltraSPARC产品线,转向全新的设计(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更加通用。

6.2 Cell与服务器处理器

服务器市场上兼容性和软件基础的因素要少很多。很多应用是可以向量化。后台数据库处理是服务器领域最常见的应用,现在的研究表明这类应用可以通过GPU加速,那么相同的方法也可以在Cell上使用。

然而服务器中也有xml这种难以从SPE并行向量结构中获益的应用。实际上这类应用大多是存储I/O密集型的,特殊的存储结构或许可以对提高性能有所帮助。单纯的高性能处理器都无法提高这类应用的效率。有很多应用不能从Cell中获得更高效率,将Sun服务器上的EDA应用移植到Cell上也是一个天方夜谈式的任务,因此Cell在服务器市场上的作为目前看来还只能依靠IBM对自己服务器结构的升级决策。

如果服务器需要的是极佳的分布式处理能力和灵活的扩展性,Cell无疑是目前最好的选择,但是应用是困扰其在服务器上广泛应用的最大问题。

6.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没有使用砷化镓工艺,也没有使用液态氮冷却系统。

6.4 Cell与嵌入式处理器

Cell进入高性能嵌入式领域只是时间问题,对于更广阔的其他嵌入式应用而言,功耗是制约Cell使用的最大问题。即将使用的65纳米生产工艺可以部分解决这一问题。并且Cell本身包括10个温度探测器和控制电路,在无需如此巨大的SPE处理能力时可以关闭数个SPE内核以降低功耗。 Cell在开始设计时就说明了单个芯片中的SPE数目是可选择的。有很多公司使用IBM的硅处理技术,如果有合适的许可证制度Samsung, Chartered,Infineon甚至AMD都会需要并生产Celll。不同厂商生产的Cell芯片内部的SPE数目和性能可能并不相同,但这并不阻碍软件Cell在分布式计算环境中在不同厂商的Cell芯片上运行。这似乎是一个看似大同的Cell芯片社会。

7 总结

从2001年开始Sony,Toshiba和IBM超过400名研究人员开始设计Cell体系结构,最终在2005年呈现了另类的Cell处理器芯片。以前的处理器市场上从未出现如此大的性能飞跃,并同时可以用如此低廉的价格出售。结构风格的巨变使得应用开发和移植称为Cell面临的最大问题。似乎STI已经有了可供选择的方案,但具体的性能还不得而知。即使Cell最终没有在整个计算机工业中获得辉煌的胜利,其体现的设计风格和追求也会象 Cray的超级计算机一样成为人们用于谈论和试图模仿的对象。

参考资料【under construction】

[1] Suzuoki et al. United States Patent No: US 6,809,734.
[2] ISSCC2005
[3] PowerPC的AltiVec SIMD扩展技术http://www-128.ibm.com/developerworks/library/ pa-unrollav1/
[4] [AltiVec Micro] Keith Diefendorff, Pradeep K. Dubey, Ron Hochsprung, Hunter Scales, AltivecExtension to PowerPC acclerates Media Processin, IEEE Micro, vol.20 no.2, 2000.
[5] [HyperTransport]MindShare, Inc., Don Anderson, Jay Trodden, HyperTransportTM System Architecture. Addison Wesley, 2003.
[6] GPU used for general purpose processing, http://www.gpgpu.org/ http://www.shadertech.com/
  评论这张
 
阅读(422)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017