详细解读多核心关 键 词:多核 cell
Cell处理器
阅读提示:本文对Cell处理器的架构做了详细的介绍,在服务器领域,除了intel,amd提供的处理器以外,cell处理器也非常适合用作服务器的处理器。采用Cell处理器的服务器适用处理对网络带宽有较高要求的多媒体等应用。
一、引言
请看几件非常有趣的事情:
1. 由于Intel在关于它们的多核心微处理器构架的将来计划上变得比以前更公开了,Intel的
Spring IDF 2005变成了一个多核心CPU的节日。Intel的计划中有10款以上的多核心CPU设计,而它们在IDF上解释得很清楚了。
2. 在GDC 2005上,AGEIA宣布它们已经开发了一个物理处理单元(Physics Processing Unit,
PPU),它能够被用于处理非常现实的物理及人工智能模型。
3. Johan De Gelas在他探索更高处理能力的道路上更进了一步,发现多核心CPU在游戏市场
中有相当大的潜力,不过要以增加程序调试时间为代价。
那么,这三件事有什么共同之处呢?三者的结合基本上概括了我们已经知道的关于Cell微处理器 - 多核心CPU的内容,它的一部分是为了相当难编程的并行物理/AI处理而设计的。
在宏观层面上,Cell是不难理解的;最让人感兴趣的是设计者如何达到目的。在这篇文章中,我们将集中于Cell的设计主张和构建模块,最终目的是理解Cell为什么会这样设计。
作为IBM,Sony和Toshiba之间的共同投资,Cell微处理器是Sony即将到来的Playstation 3的核心部件。不过,这一次Sony和Toshiba还打算在从消费电子到服务器和工作站的所有产品中使用Cell(或它的一部分)。如果你还没有什么概念的话,那也该知道Cell作为微处理器,特别是非x86的微处理器,已经让某些人寄予了非常高的期望了。
使用模式
在进入Cell的构架之前,让我们来谈一点关于Cell及其它微处理器当前面对的工作负荷类型。
在过去,办公应用程序性能是隐藏在微处理器发展背后的推动因素。在多重任务处理和E-mail应用上,以前是单个应用程序执行,而我们在很大程度上谈论的是办公应用软件,文字处理,电子制表软件等等。因此,大多数微处理器是为了惊人的单个应用程序,单个任务性能设计的。
由于微处理器变得更加强劲了,所以软件也升级了 - 多任务处理环境诞生了。然而,大多数的电脑用户仍然集中在单个应用程序使用上,所以微处理器发展继续侧重于单线程性能(单个应用程序,单个任务性能)。
几年过去了,单线程的性能要求提高了。Microsoft Word不再是作为界定的应用程序了,而像游戏,媒体处理和动态内容创建这些东西变成了占用最多CPU的应用软件。这就是我们现今面对的工作负荷,办公, 3D游戏,3D内容创建和媒体编码/解码/转码的混合消耗了我们的CPU周期。但为了了解Cell这么一个新构架的创建,你必须理解这些工作量的极限在哪。正如今天需要执行的应用程序类型与10年前运行的那些大不相同一样,同样的情况在下一个十年也会发生。而假定一个新的微处理器构架要5年左右来开发的话,那么现在引入一个面向这些新的使用模式的新构架是切实可行的。
Intel在最近的IDF上就将来的使用模式谈了很多,比如像实时声音识别(甚至是翻译),开放式搜索(例如Google图像搜索),游戏中更好的物理和AI模型,更多特性丰富的用户界面(例如手势识别)等等这些东西。这些是将来的使用模式,而同样地,它们对微处理器和相关的构架有不同的一套要求。
支持这些使用模式类型需要的性能等级明显比我们今天可用到的更高。按照惯例,从一代微处理器到下一代,性能的增长通过优化单线程性能来实现。有许多改进单线程性能的方法,要么提高时钟速度,要么增加每个时钟执行的指令数(IPC)。更进一步说,从一个单独的线程中能够实现越多的并行处理,性能就会越好 - 这类并行是指指令级的并行(ILP),它包括在一个线程中同时执行尽可能多的指令。
通过增加ILP改进性能所具有的问题是从一代到下一代,只能带来10% - 20%的性能增长。然而,我们谈到用于未来的使用模式要求明显多于过去已经获得的这类提升。由于功率限制阻止了时钟速度放得太高,那显然需要另一种改进性能的方法。
在微处理器行业中主要的厂商几乎一致认同,获得必要的性能提升的唯一办法就是向多核心构架迁移。通过多线程应用程序和多核心处理器的结合,应该能够满足这些类型的应用程序所需要的性能增长。与侧重于提高ILP来改进性能不同,这些多核心处理器是在线程级上并行操作来改进性能的(线程级并行 - TLP)。
不过事情并不是这么简单的。需要做出许多深思熟虑后的决定。在多核心微处理器中每个核心需要多大的运算能力?是需要强劲处理器的小型阵列还是较简单处理器的大型阵列?它们相互之间如何通信?怎样处理为多核心处理器提供足够的内存带宽呢?
Cell微处理器就是对这些问题的一个解答。
二、Cell的宏观概述
Cell是跟即将到来的AMD和Intel多核心CPU几乎一样的多核心处理器,唯一的差异是Cell的构架不是完全同类的核心集。
Cell的执行核心
Cell构架以9个独立核心的配置登场:一个PowerPC Processing Element(PPE)及八个Synergistic Processing Element(SPE)。PPE和SPE是明显不同的,但全部八个SPE是彼此相同的。
PPE是IBM对Cell方案的主要贡献。它似乎也跟被用在下一代Xbox控制台中的核心非常相似,就是说IBM对Cell所承担的义务并不是一定要让它用在从消费电子到PC的所有设备中,而仅仅是两个主要的游戏控制台而已。
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的第一