您好,欢迎访问三七文档
CELL体系结构033289孙若曦033293刘侃引言Sony,Toshiba和IBM(简称为STI联盟)为PlayStation3设计的Cell处理器承诺未来的计算能力将迅速达到极低的价格。后文中包含了Cell体系结构,及其深远的影响,这些影响并不仅仅局限于游戏市场,它将遍布整个计算机工业界。CELL组成CELL内部那么究竟Cell体系结构是怎样的呢?Cell是一个高性能分布式计算体系结构。它由硬件和软件Cell构成,软件Cell包括数据和程序(称为apulets),它们被送往硬件Cell进行计算并返回结果。硬件CELL一个Cell处理器包含三个主要组成部分。以一个Power处理器单元作为主控处理器(PPE),另外两部分分别是八个单指令多数据流处理器(SPE)与一个可编程DMA控制器(DMAC)。处理器单元(PPE)PPE是一个64位的“Power体系结构”处理器。Power体系结构是IBM一段时间内同时用于描述PowerPC和Power处理器的名词。如果PPE基于Power设计,那么不能期望很高的主频,Power核心功耗巨大,因此需要降低主频以降低功耗。PPE实际上不过是控制器,真正的运算在SPE上。附属处理单元(SPE)每一个Cell芯片包含8个SPE。SPE都有各自独立的向量处理单元。包含128个128位寄存器,达到32GFlops的流水浮点单元。SPE同时包含一个256KB的本地存储器而不是Cache结构。附属处理单元(SPE)SPE并不是协处理器,他们完全是独立的处理器。PPE使用软件Cell建立SPE环境,并驱使他们开始运算。SPE执行软件Cell中的apulet直到完成或者被通知停止。PPE通过远程过程调用RPC唤醒SPE,RPC并非直接送到SPE,而是通过执行所有存储器读写的DMAC来完成的。附属处理单元(SPE)SPE是向量(Vector或者SIMD)处理器,可以在一条指令中同时完成多个操作。每个SPE每周期可以完成4个32位操作(如果算上乘加操作则是8个)。运行的程序必须被向量化,在很多诸如视频,音频,3D图形和科学计算这样的应用领域这是可行的。附属处理单元(SPE)非直接的Cache和虚存使得SPE的工作方式与传统处理器不同。这很可能让SPE上的编程变得很困难,但这样的设计是为了降低复杂度并提高性能。SPE本地存储为了解决Cache设计带来的复杂性并提高性能,Cell设计师选择了一条独一无二的激进道路。他们在Cell中使用了一系列的本地存储器,每个SPE一份,总共有8个本地存储器。SPE通过寄存器操作来读写本地存储器。本地存储器以1024b的块来访问主存,但是SPE并不能直接访问主存。不使用Cache工作模式,设计师可以剔除很多复杂设计。本地存储器只能由单一的SPE访问,并没有任何与SPE或者本地存储器直接相连的一致性访问机制。一致性Coherency虽然在SPE之间不存在一致性机制,但是有一种给RAM中某些额外数据在本地存储中加入额外busy的机制,以避免两个SPE同时访问相同存储器时产生问题。由于仅仅标记数据是否可读取以及哪一个SPE试图获取数据,这个系统是比保持Cache与最新内容一致简单得多的实现。直接存取控制器DMACDMAC是Cell中非常重要的部分,它充当着通讯集线器hub的功能。PPE并没有直接将指令发往SPE但是会将他们发往DMAC并由后者选择合适的动作,这在载入和保存数据时显得特别重要,同时取消了PPE和SPE直接相连的必要性。显然DMAC是Cell设计中最重要的部分之一,虽然其本身并不做任何处理,但是必须满足任意两点之间数十GB/s访存数据流。如果预测正确的话,PS3将具有100GB/s的存储接口,如果均分倒4个Cell上,每个DMAC将需要每秒处理至少25GB。它同时要实现存储保护,能够保证PPE和SPE之间访存和通讯的顺序,除了高速而外它还是高度复杂的工程部件。直接存取控制器DMACCell处理器内部硬实时处理某些流处理需要严格的时间并且硬实时数据处理器的设计也已经在考虑中。一个绝对时钟被用于保证一个处理操作在说明的时间限制内完成。这个实用的功能同时保证与下一代Cell兼容,因为定时器本身是和处理部分独立的。存储器与其他处理器一样Cell体系结构中的存储系统也是针对rawspeed设计的,它将同时具有低延时和高带宽。前面提到过访存以1024位的块为单位。存储保护在DMAC中有存储系统的保护措施。Memory被分成沙盒sandboxes,用一个掩码来判定那一个或者一组SPE可以对其进行访问。这个检查过程是访问执行之前在DMAC中进行的。如果用一个SPE试图读写错误沙盒,存储访问将会被禁止。Cells和常用处理器的一大区别就是在Cell中SPE链接起来以流处理器方式工作的能力。一个流处理器获取数据之后,按照一系列的步骤来处理它。每一个步骤都可以用一个或者多个SPE来实现。一个Cell处理器可以通过用一个或者多个SPE承担流中的一个步骤来执行流操作。为了完成流操作,一个SPE从输入中读取数据进入其自身的本地存储器,执行处理步骤,然后将结果写入预先定义的RAM空间中,第二个SPE取走刚刚写入的数据,进行处理并写入RAM中的第二个区域。根据应用的需求,这一序列可以使用多个SPE,同时SPE可以读写多个RAM块。如果单个Cell的计算能力不足,在其他Cell中的SPE可以用来构成更长的链。软件Cell软件Cell是一个包含数据和程序(Apulet)的容器,也包含这个apulet运行所需要的其他数据和指令。软件Cell中包含源、目标和响应地址域,这些内容依赖于使用的硬件网络,软件Cell可以被发送到不同的硬件Cell中。也有独立于网络的地址来定义特殊的Cell。这使得可以在网络上的一台特定主机可以将一个软件Cell发送到任意的硬件Cell。软件CellSPE使用的是虚拟地址,然后一旦DMA命令发射出去虚拟地址就被映射成为实际地址。软件Cell中包含这些DMA命令以从存储器中获得数据进行操作处理,如果SPE被用于处理流,Cell中将包含描述何处读取数据,何处回写结果的命令。一旦SPE初始化建立完毕就被驱使完成Cell。软件CELL每个Cell系统都有其全球惟一的标识符UUID,如果软件Cell必须穿过一个外部网络才能到达其目的Cell系统,那么它将会把自己封装到一个标准网络协议包,如TCP/IP包。下图描述了Cell专利中描述的软件Cell穿越一个链接几个不同基于Cell系统的公用网络时的情形。多Cell系统怪兽整个Cell体系结构上的重要一环就是并行处理。软件Cell可以漂亮的被送到任何地方,并且这一过程与特定的传输方法是相互独立的。在动态运行时决定软件Cell在哪个硬件Cell上运行构成了Cell体系结构的关键特性。如果需要更多的计算能力,插上更多的Cell就可以了。Cell应用游戏GAME游戏是当然的设计目标,Cell从一开始就是作为游戏终端进行设计的,如果在游戏上没有良好的表现那肯定有问题。Cell的设计师紧盯rawcomputingpower而不是图形能力,因此我们将看到硬件功能被转移到软件上而开发者有更多的灵活性。现在的问题是PS3是否能成为第一个实时光影跟踪的游戏终端。3D图形这又是Cell的重要设计目标领域,图形具有巨大的并行特性,可向量化和流化的各种问题可以让SPE得到完全的应用,因此使用的Cell越多就可以获得更快的图形性能。现在有很多不同高性能图形技术方面的研究,希望Cell能够被他们所使用,而这些技术也能通过Cell使自己成为主流技术。如果你认为现在的图形技术已经足够好了,在Cell上你可能会得到某些惊喜。其它还有视频,音频,数字图像处理,超级计算,服务器等等应用方面。CELL前景CELL与PC极高性能并且廉价的Cell将会是尊敬的PC面临的新挑战。由于巨大软件基础的优势,PC总是能击败每一个竞争者,但是这次这个优势不那么明显了。现在很多软件都可以在linux上运行并且逐渐脱离了对x86处理器和Microsoft的依赖。现在很多PC的性能都超过了实际所需,再加上高速JIT模拟器这一因素,如果需要的话Cell完全可以脱离PC而提高对PC的兼容能力。Cell攻击的不仅仅是PC工业,他会在部分要求高性能的嵌入式应用领域被广泛使用。这意味着Cell的产量将会是x86处理器的数倍,而这将进一步拉低价格。由于基于PC的数字家庭娱乐方案要比基于Cell的方案更复杂,更昂贵,Cell将阻塞x86进入家庭娱乐的道路。尾声Cell将颠覆整个工业界,以前从未有人制造如此大的性能飞跃,即使有接近的也无法以如此低廉的价格提供。PC制造商们将被迫反击,无论Cell未来在市场中的进展如何,未来几年中所有的处理器都会提供比目前多得多的处理资源。即使Cell最终失败,他也留下的足够多的遗产。
本文标题:CELL体系结构
链接地址:https://www.777doc.com/doc-3869334 .html