实践检验真理 多核成绩优异 突破微体系结构局限

服务器在线10月29日报道:一段时间以来,我们能注意到在常规处理器结构中出现了收益递减的规律。随着性能的提升,交付的成功性就会递减:发展越快,摩尔定律可能性就越小。

英特尔公司将摩尔定律和Pollack准则(根据英特尔公司微处理器研究实验室负责人Fred Pollack的名字命名)相结合证明了这个观点。Pollack注意到每个系列的英特尔体系结构(从i386开始)在性能上每提高1.4到1.7倍,都会需要两到三倍的硅体积。概括的说就是性能的提升与复杂性是成正比的。在这两代的处理器中,性能提高了两倍,相应的复杂性也增加了四倍;速度加快了四倍,所需的晶体管数量也扩大了16倍。

期间,有很多人认为这也能决定是什么是处理过程中的局限性因素:不是什么平版印刷术或者量子物理学,而是在一个非常狭小的物理空间里处理大量工作负载的能量密度(内核的能量密度好比火箭喷发不可遏止)。

随着功耗和微体系结构增强的局限性限制了单一处理器的发展,人们开始把注意力集中到多处理器或者多核芯片体系结构上来。桌面系统处理器也开始使用这个概念。事实上,多核产品已经有一定的历史了。例如专注于无线基础系统的半导体公司PicoChip研发的picoArray芯片,内置300个内核,从2002年开始就已经在市场上出现了。

因为多核的使用能克服单处理器系统的局限性,很多用户就认为多核无所不能。picoChip的经验告诉我们这项技术的影响是非常微妙的。不过它确实具备比单处理器更强的处理能力。对我们和我们的用户而言,最重要的是多核能够允许picoArray芯片每美金处理Mips(每秒百万条指令)的数量比标准的处理器多十倍。

在实践中的意义就在于,在同等价格和同样的功耗下,一个芯片就能具备比标准数字信号处理多十倍的处理能力。一个能执行在低成本低功耗的情况下需要一个大型的现场可编程门阵列(FPGA)才能运用的应用程序。

从更实用的角度来说,DSP解决方案彻底改善了无线领域的经济效益并开创了市场,比如3G femtocells技术(就是大家所熟知的低成本的3G接入点、WiMAX家庭基站),就要求更多的处理能力,更快的占领市场。picoArray芯片设计成为WiMAX基站的现行标准(WiMax即无线带宽技术),它同样对处理能力和材料成本有严格的要求。

对多核处理器还存在着一些误解。一个误解就是多核这个术语本身指的就是一项单一的技术。事实上,多核包含了多种含义,和两个要素要有所区分:内核的体积和内核的数量。

很明显,象桌面电脑这种多核处理器和类似picoArray芯片这种有上百个内核同时工作的产品之间存在着巨大的差异。但是不可否认的是这两个系统事实上都是多核的。

在内置系统的需求和普通意义上的笔记本电脑之间存在着一个主要的分歧。对后者而言,一个开放的环境在不断变化的情况下(由于用户肯、一在任何时候运行任何程序)更强调性能的一致性,比如硬件产品的更新换代等。比较而言,后者比较常见,通过执行单一任务重新编译代码来适应硬件的变化。

事实上,内核的体积和阵列的大小都是多核体系架构下影响每美金处理Mips(每秒百万条指令)数据的基本要素。必须对设备的目标应用软件有充分的了解后来考虑这两个要素。PicoChip公司在无线信号处理方面对目标应用软件适用的内核体积和每美金处理Mips(每秒百万条指令)的晶体管数量都做过仔细的分析研究,可以大大降低无线系统的成本及功耗。由此研制出的英特尔公司8086处理器内核相对来说就比Pentium 4减少了复杂性。

我们的分析显示根据硅晶片Mips/mm2(每秒百万条指令与平方毫米的比)或者Mips/mW(每秒百万条指令与兆瓦的比)计算,一个十六位,三向,长指令字符的体系架构,三个深管线和一个100到200兆赫的时钟是最适宜的。按照达尔文的逻辑我们可以得出这样的结论:这是一个相当于内置了超过十亿个手机的体系架构。如果要求更高效率的体系架构,那么随之而来的就是不可思议的价格压力和快速循环的周期。

采用这样的体系架构,我们可以在每台机器上都安装成千上百个内核。那么多处理器系统的一个传统问题就迎刃而解了:这个问题就是性能的有限提升就会带来复杂性的大量增大和可用性的大幅降低。证据就是独立的基准显示每美金和每瓦特要多获取10x到20x的性能,只需要同样的晶体管数量就能产生这种戏剧性的结果。

让我们来关注一下它的可用性,这是最为重要的问题。支持交互式处理器通信的硬件体系从多核架构中获取更多性能是非常重要的。还有软件开发工具链对设计方案而言要么成功要么毁灭。每美金处理Mips(每秒百万条指令)的数量当然是越多越好,但是如果设计团队要花费两倍的时间来驾驭Mips(每秒百万条指令),通过picoChip的多核DSP来实现软件无线电,提供快捷、高性价比解决方案。这就是为什么picoChip公司要在工具链上有所投入来支持结构化编程的原因了。

由此我们可以得出结论,虽然多核的优势有很多论据可以佐证,在这个问题上不是单纯的靠增加内核的数量就能面对所有关键性的挑战。我们必须测算处理器单元的数量和体积来满足应用软件的需要,提供交互式处理器的通信能力,最重要的是,保证软件设计者能够尽可能多的产出符合标准,直观的的工具链来。

坏消息是多核还面临很多的挑战和问题,好消息是多核产品已经在市场的考验中证明了自己。