57游戏  www.57yx.com  -  最全面的游戏资讯门户
热门游戏:永恒之塔 SD敢达 伊苏战记 开心online
当前位置 :| 主页>电视游戏>PS3>

详细解读PS3多核心Cell处理器

来源:TGBUS 作者: 时间:2008-10-23

  PPE是一个新核心,不同于IBM制造的其它任何PowerPC核心。虽然PPE拥有现代任何通用微处理器的基本功能,但它有目的地作了简化。PPE在 Cell中的作用是处理任何通用微处理器能够运行的任务;基本上任何能够在Athlon 64上运行的就会在PPE上运行。

  PPE配备了64KB L1缓存和512KB L2缓存,并且拥有类似于Intel Hyper Threading的SMT技术。PPE使用了一个严格有序的核心,这在桌面x86市场上从最初的Pentium消亡以来就再没有见到过了(Pentium Pro把无序执行带到了x86市场),所以向有序核心的转变是一个引人注意的地方。PPE还只是一个2流程核心,那意味着它最多能够同时执行两条指令。作为对照,Athlon 64是3流程核心,所以立即可以感觉到,PPE是比任何桌面产品简单得多的核心。PPE还支持IBM的VMX指令集(即Altivec)。跟Cell处理器的其它核心非常相似的是,PPE被设计为运行在非常高的时钟速度下。

  关于PPE没有太多让人感觉不平常的地方,也就是它是一个小,高速,有效率的核心。跟Pentium 4或Athlon 64相比,PPE无疑会落败,但PPE的构架符合性能需求上的变化。例如,商业/办公应用程序中的性能需要非常强劲,非常快的通用微处理器,但游戏控制台中的性能则不然。最初的Xbox使用了修改过的Intel Celeron 733MHz处理器,而当时最快的桌面产品有2.0GHz的Pentium 4和1.60GHz的Athlon XP。假如Cell的第一个应用是Sony的Playstation 3,那么PPE的简单是不出奇的。如果Cell想要进军PC的话,那PPE显然必须得到加强,或至少搭配多个PPE才行。

  Cell的Die的主要部分由八个Synergistic Processing Element(SPE)组成。如果把PPE看作是通用微处理器的话,那么SPE就是稍微有些特殊侧重点的通用处理器了。

  

  每个SPE是一个功能完整的独立微处理器,但被极度简化了,并且不像PPE那样通用。SPE没有缓存,但每个SPE却拥有256KB的局部器(稍后我们将讨论局部器和缓存之间的差异)。每个SPE还拥有总共达7个的执行单元,包括一个整数单元,所以SPE能够执行整数运算以及SIMD浮点计算。 SPE是双流程的,也就是说它们最多能够执行2条并行的指令。SPE和PPE两者都采用双流程,引起了对Cell晶体管数量和芯片大小的关注,因为增加流程宽度直接关系到这两个关键的项目。

  SPE没有分支预报器,意味着它们完全依靠软件分支预报。编译器有方法能够消除分支,而SPE构架非常有助于像解开回路这样的事情。任何初级程序员对回路都很熟悉,在那里一行或多行代码被重复,直到满足某个条件为止。那个条件(例如i < 100)的校验通常会导致分支,所以消除那个分支的一个办法是简单地解开回路。如果在一个应该执行100次的回路中有一条语句,那要么可以把它留在回路中并照样执行,要么可以取消回路并简单地复制该语句100次。最终结果是相同的 - 唯一的差别是在一种情况下有分支条件,而另一种情况导致了更多行待执行的代码。

  打开回路具有的问题是需要很多寄存器来解开若干循环,那就是每个SPE拥有128个寄存器的原因了。SPE原先应该使用VMX(Altivec) ISA,但由于需要多于32个的寄存器,SPE执行了新的ISA,支持128个寄存器。

  每个SPE在每个时钟只能够处理两条指令,也就是说每个SPE最多能够同时执行两条指令。微处理器的流程宽度在很大程度上可以决定微处理器将有多大;例如,Itanium 2采用6流程核心,所以作为2流程核心的SPE明显小于大多数的通用微处理器。

  最后,我们在SPE上看到的是它们牺牲了一些正常的改进ILP的技巧,以便能够在一个单独的Die上塞进更多的SPE,为了更大的TLP而有效地牺牲掉一些ILP。既然行业前进的方向是这样,那么向极其侧重TLP设计的迁移是很有意义的,但同时,它将相当依赖于使用非常特殊的开发模型的开发商。

  很明显,Cell的设计师把SPE当作运行高度并行化工作量的手段,正如Derek Wilson在他关于AGEIA PhysX PPU的文章中所提到的:“特征很好地适应PC内专门的处理器的图形,它的性质之一就是任务是可无限并行化的。每个帧需要处理数十万,甚至上亿个的像素。渲染需要处理得越细致,并行任务就变得越多。这对物理模型同样成立。相对于现实世界,物理世界是连续的,而不是离散的。拥有越多的处理能力,就能够立刻模拟更多的东西,从而能够越实际地逼近现实世界。”

  由于NVIDIA为Playstation 3提供GPU,所以Cell的SPE阵列在游戏控制台中由一个明确的目的 - 物理及AI处理。许多人认为,SPE的阵列能够接管GPU的像素处理工作量,但对于高性能控制台来说,那不是很有意义的选择。SPE阵列能够提供更好的基于CPU的3D渲染,但对于这个SPE阵列来说,那将是艰苦的工作,不如使用专门的GPU硬件。

  Cell的On-Die内存控制器

  多年以来,我们知道Rambus的内存和接口技术远远领先于竞争对手。问题是它以前从未在PC上得到很好地实现。在RDRAM用于PC的早期,Rambus品牌收到了相当负面的评价,并且由于Rambus对DDR世界的诉讼使得该公司的形象变得更差了。

  Rambus在许多消费电子设备中已经获得了成功,例如HDTV及Playstation 2,所以当Cell宣布大量使用Rambus技术的时候,并不让人太过吃惊。正如我们早先报导的,在Cell上大约90%的针脚用到了Rambus技术。剩下的10%大部分是测试针脚,所以Rambus基本上掌握了出入Cell处理器的所有数据。它们以两个方法来做到这一点:

  首先,Cell包含了一个On-Die双通道XDR内存控制器,每条通道有36-bit宽(ECC为32-bit)。Cell的XDR内存总线运行在 400MHz下,但XDR内存以8倍于内存总线时钟的速度传输数据 - 那意味着获得了3.2GHz数据通讯数据。最终结果是类似于GPU显存带宽的25.6GB/s。我们知道,在增加处理器核心数量的时候,内存带宽需求会惊人地增长 - 由于Cell中的9个核心,XDR是理想的选择。注意到GeForce 6800GT就向它的GPU提供了32GB/s的显存带宽,所以看到Playstation 3的GPU搭配它自己的局部存储器以及能够共享系统内存和带宽也不会太令人吃惊。