1, dark silicon的起源
在我的上一篇文章功耗对处理器的限制有多大中,其实已经间接提到了现在处理器设计中的十分普遍的现象——dark silicon,也叫“暗硅”。意思是说,由于功耗的限制,一个很高端的处理器,比如多核的,其实同一时刻只能有很少的一部分门电路能够工作,其余的大部分处于不工作的状态,这部分不工作的门电路,就叫做“暗硅”。
暗硅究竟是怎么产生的呢?下面这张图是个很好的示意:
对于一个65nm下的4核处理器,假如额定功耗允许其四个核心能够同时全速工作。当工艺尺寸缩小到32nm的时候,以前4核处理器的面积将能够容纳16个新的核(因为每个核的面积变得只有以前的1/4了),但是,是不是新工艺下的处理器就能16个核心都工作呢?
不行。能够同时工作的仍然只能有4个核。
为什么?
可以简单计算一下:
假设两代工艺之间,缩放因子是S,S大于1(典型值是1.41)。那么:
上图中S是64nm/32nm = 2。
芯片的晶体管数量将乘以S^2,变成4倍;
晶体管的切换频率可以乘以S,变成2倍;
因此计算能力将乘以S^3,变成8倍;
晶体管的电容将减小S,因为特征尺寸减小了,变成1/2;
总功耗将变成以前的S^2倍(总功耗与晶体管数量和切换频率成正比,和电容成反比),即4倍;
为了保持总功耗不变,芯片的利用率将只能变成以前的1/S^2,即1/4;
所以对于上例,虽然总共有16个核,仍然只能有4个核可以工作。
当然了,这4个核可以运行S倍的频率(2倍频),所以实际上整个chip的性能还是增加了2倍,尽管很遗憾整个chip中有12个核处于“暗硅”状态。
关于上面的计算,下表总结的更好:
需要指出的是,工艺尺寸缩小其实是有两种,一种是Dennardian缩小,一种是Post-Dennardian缩小。Dennardian缩小就是说,随着工艺尺寸的缩小,chip的供电电压等比例的缩小;比如180nm的chip供电电压是1.8V,130nm的chip供电电压就降为1.3V。Post-Dennardian缩小就是说,随着工艺尺寸的缩小,chip的供电电压保持不变。早期的IC设计,大概1995年之后,开始了Dennardian缩小;近几年来,随着工艺尺寸缩小到40nm,28nm,20nm,14nm等等,其实chip的供电电压已经开始保持不变了(大概1.2V左右),这就是Post-Dennardian缩小。
对于Dennardian缩小,同样的面积能够容纳的晶体管增多S^2倍,系统频率也增加S倍,但是因为供电电压降低了S^2,电容也减少了S倍,所以总功耗是不变的。也就是说,摩尔定律带来的结果是S^3倍计算能力的提高。
对于Post-Dennardian缩小,同样的面积能够容纳的晶体管增多S^2倍,系统频率也增加S倍,但是因为供电电压不变,电容减少了S倍,所以总功耗增大了S^2倍。为了保持总功耗不变,chip利用率将减小为以前的1/S^2倍,摩尔定律带来的结果是只有S倍计算能力的提高。
这当然是个估算,只是从基本原理上理论了摩尔定律究竟有多大的效益,但是并不影响我们理解“暗硅”现象是怎么产生的——很大一部分原因是因为随着特征尺寸的不断减小,chip的供电电压没法继续降低,所以总功耗难以降低导致的。
2,为什么要做多核
有人说,工艺尺寸缩小了,我为什么一定要保持chip面积不变?干嘛非要整成16个核?如果我们还是4个核,chip面积就能够减小到1/4,芯片成本也会减小到1/4。
这其实是个商业问题。有多种理由使得厂家更加愿意做多核处理器,而非保持核心数量不变,做更小的chip来减小成本。
其实早先联发科做8核CPU的时候,某通是很不屑的:
联发科全球第一枚八核芯片型号为 MT6592,通过 AMR 的 big.LITTLE 架构将 8 个低功耗的 Cortex-A7 内核整合到了一起,其中 4 个为 1.7GHz 频率,另外 4 个为 2GHz 频率。对此,高通特别嘲笑称,芯片并不需要多内核,每一瓦提供的性能最重要。不过随后高通自行打脸,也公布了两枚八核处理器,分别为Snapdragon 615,以及 Snapdragon 810。
根据论文的分析,做更多核心的理由如下:
(1)芯片面积的成本没那么重要
芯片的面积成本所占比重越来越小。把芯片做得变成以前的1/4小,芯片的成本并不会就减小到以前的1/4。芯片的成本构成很复杂,随着工艺尺寸的缩小,硅片本身的成本越来越低。芯片的引脚,封装和设计,测试,销售等成本构成了芯片成本很重要的部分,而这些成本跟芯片面积并没有线性关系。
所以芯片做得太小,并不能省很多钱,尤其是对于近几年的工艺。
(2)没有噱头
尽管受限于总功耗,更多的核心数也是白搭,没法工作。但是毫无疑问8核处理器就是比4核处理器更让消费者觉得牛逼。而且,通过一些设计优化,其实也确实有可能让更多的核心能够工作,或者至少低频工作。因此,也确实某种程度上能够提高系统性能。
尤其是增加一些专用的核心,对于特殊任务做加速,可以很明显的提高性能。就好像新工艺允许你使用18般兵器,尽管你只能一次使用9般,但是你可以根据具体的任务选择最适合的9般兵器。假如你只有9般兵器,那么也就不存在选择的可能了。
我们再看一下联发科Helio X20 10核处理器的介绍:
联发科发布全新的Helio X20,这款处理器将率先使用十个核心,它也是全球首款Tri-Cluster三架构处理器。这款处理器将采用3种架构混搭,包括两个主频2.5GHz的A72、四个2.0GHz主频的A53以及四核1.4GHz主频的A53。十个核心自然要考虑到功耗,肯定不能什么时候都全部开启。所以,联发科提供了三种工作模式:经济模式下,仅四个低频A53核心工作,平衡负载模式下,开启四个高频A53核心,只有在极限负载模式下,才会开启另外两个A72核心。
(3)更大的chip,更好散热
这个公式是芯片的最高温度公式,其中A就是芯片面积。其余几个参数就不讲了,只是用这个公式告诉大家,A减小不利于散热。
参考文献:Taylor M B. Is dark silicon useful?: harnessing the four horsemen of the coming dark silicon apocalypse[C]//Proceedings of the 49th Annual Design Automation Conference. ACM, 2012: 1131-1136.