文档介绍:四十年,是一个人的半辈子;四十年,在人类进化的道路上可能只是一次小小的回眸。在IT的历史上,四十年前正是第一款微处理器发明的时间,在这四十年间微处理器遵循着“摩尔定律”中所描述的速度发展着,而摩尔定律所描述的微处理器发展速度直到今天还依然在生效着。
了解计算机的用户应该还记得全球第一台计算机ENIAC诞生于1946年,诞生于美国宾夕法尼亚大学,这台计算机的“始祖”使用了18800个真空管,长50英尺,宽30英尺, 占地1500平方英尺,重达30吨,而它的运算速度仅仅是每秒机型5000次加法运算而已,这一计算速度当然无法和现在的计算机相比,但在当时确实是惊人的发明。
大家知道,一般来讲,处理器的性能和工作频率
成正比,而制约频率提高的一个基本因素是电流通路
的长度。晶体管尺寸变小意味着电流通路缩短,因此
从这个角度上看有可能进一步提高频率。以往,随着
微电子工艺的改进,仅靠提高频率的确也能使处理器
性能不断提高,然而,当微电子工艺达到一定程度时,
频率达到一定高度,一些以前显得不很关键(或者说
能够有效应对)的物理现象(热量、量子效应等)逐步
变成了不可逾越的障碍———工作频率已经不可能再
被显著提高了。
人们认为多核处理器是一个方向,
最有可能在设计复杂性、性能以及功耗诸方面达到最
优权衡。这种认识在近两年越来越清晰,不仅各个主
要厂家纷纷推出多核处理器,形成了未来处理器必然
多核的势态,而且其中蕴含的技术挑战也引起了学术
界的浓厚兴趣。
多核处理器,指的是在一个芯片内含有多个处理
核心而构成的处理器。所谓“核心”,通常指包含指令
部件、算术/逻辑部件、寄存器堆和一级或者二级缓存
的处理单元。在芯片上,多个核心通过某种方式互联
起来,使它们能够交换数据,从而可以对外表现为一
个统一的多核处理器。
多核的优势
目前的研究认为,多核处理器相比相同工艺、相
同面积的单核处理器具有如下优势:
(1)并行化程度提高。对于任何一段程序来讲,其
中隐含的指令级并行性(ILP)都是有限的。多核处理
器有利于同时开发 ILP 和线程级并行(TLP),从而发
掘出程序中潜在的更高并行性
[2]
。
(2)可实现更高的总发射带宽。由于避免了集中
式控制逻辑随发射带宽增加带来的额外开销,多核处
理器在同样面积上相比超标量处理器能够达到更高
的总指令发射带宽
[3]
。
(3)核内和芯片内的连接意味着低延迟、高带宽。
在多核处理器中,每个核内部的连线相对较短,于是
降低了信号传输延迟
[2,4]
,而在芯片内部核与核之间
的连接没有管脚的限制,从而可以实现很高的带宽
[3-4]
。
(4)有利于散热。频率越高,就产生越多的热量。
多核处理器的每个核心运行在较低频率上;通过使用
多个核心并行工作来提供高性能
[5]
。
(5)有利于节能。从能耗的角度讲,如果多核处理
器中的多个核心不会被全部用到,那么就可以关闭掉
那些暂时不用的处理器,从而节省能源
[5]
。
(6)设计时间减少。因为允许复制一个已经验证
过的处理器,多核处理器能够减少设计时间
[2]
多核的潜在问题
虽然在总体性能和能源效率方面上多核具有明
显优势,但是从目前多核的技术和人们对于其应用能
力上看,还有两方面的潜在问题:
(1)为了达到总体性能和能源的有效性,在同一
工艺条件下,每个核心在芯片上所占的面积实际上较
小,意味着每个核心比相应的单核处理器要简单,从
而计算能力相对较弱。对于那些本质上必须串行执行
的程序来讲,由于很难利用到多个核心,它们在多核
情况下可能会运行得更慢。一般来讲,不能简单地期
望 N 核处理器能够达到 N 倍的性能。
(2)当核心数目增多时,虽然理论上可以通过并
行处理得到性能提升,但是目前人们并没有完全清楚
如何将各种类型的应用有效分布到各个并行处理单
元上协同工作。另外,从体系结构角度来讲,多个核心
如何能有效地互联通信,如何有效地共享缓存资源,
以及如何能够在有限的片外管脚数目上达到多个核
心总体需求的 I/O 带宽等问题都还具有很大的挑
战性。
多核能怎么样?是单纯追求 2,4,8,16,…,发展下去,还是在核心数、核心复杂度、同异构性、工作频率、可编程性等诸因素间不断寻求新的优化平衡?如果总是不忘多核的初衷,后者应该是基本的思路。
因此,在这样一个多维的设计空间寻找一个最优点才是有意义的挑战。当人们为了研究的便利,将这个空间投影到某个子空间的时候,应该不忘有一个更大的空间背景,其本质追求是更综合有效地利用芯片上的晶体管资源。例如,开始考虑“可重构计算”思想在芯片级的实
现,试图将芯片内