06_taro
2021-09-03 02:16:43 +08:00
大小核的目的是控制功耗,不是省电,不是省电,不是省电,重要的事情要说三遍。
省电只是控制功耗的一个副产品而已。
按照摩尔定律,晶体管数量每 18 个月翻一倍。这个翻一倍是什么概念?就好比本来我一个汽车里面有一个发动机,现在我技术进步了,发动机小型化了,前盖里安了两台发动机( O Gundam -> OO Gundam )。
问题是我的发动机仓并没有进化,我安装一台发动机的时候,靠自然散热加冷却剂能保持发动机仓 60 度,安装两台发动机后,尽管每台效率都提高了,但是提高的程度不够,出现了积热,不加处理的话发动机仓直奔 150 度。同时,每台发动机效率上升,在同样的功率输出下,发动机仓的进气量都要增加以保证更加充分的燃烧,而目前的进气通道不足以保证有足够的空气。
处理器也类似,处理器集成度上升了,温度控制的需求、功耗的需求其实都会随之上升。
这时候我有几个选择,一是大幅改进发动机仓内的技术,提高散热效率,增大进气管;或者降低发动机功率,可以在不改进散热和进气的前提下,下调最终输出能力,这样虽然发动机集成度上升,实际性能并不像发动机数量那样直接翻了一番。
实际上这两个方式都在用。现在的 PC 随着性能上升,对散热和电源的要求越来越高,同时性能提升的幅度并没有像摩尔定律那样每 18 个月翻一番(即使是在摩尔定律还有效,晶体管数量确实能翻一番的时期)。
这个时候引入大小核,让大核干重活,小核干杂事,增加的小核在散热上和功耗要求上并不会成倍增长,在散热和电源没有重大改进的情况下,仍然能做到整体性能的增加。处理器发挥性能的两个重要的瓶颈,一是温度墙,一个是功耗墙,靠增加小核的方式都能有效规避。这些都是以发挥性能为目的,和省电没有一分钱关系。
大小核策略在什么时候没有意义?一是温度功耗不会成为瓶颈时,譬如以前的 CPU,放个热管,不加风扇都能跑的时候,运行温度 40 度变成 60 度对我们来说完全没有影响,功耗 40W 提升到 65W,没问题我主板电源足够随便跑,这时候要增加性能只要死命提升大核或者增加大核就行了;二是当有一种核心,无论是高性能任务还是低性能任务,它的温控 /功耗曲线都接近于一条直线,并且都比另一种核心高,让另一种核心在任何情况下都没有相对优势,甚至没有比较优势(顺便一提,这里的第二种情况里的大小核效率优势,在国际经济学里叫做两种国家的贸易禀赋)
放在手机、笔记本这些有续航需求的产品里,大小核最大的特点变成了它的副产品,省电。汽车里还没有用起来,实际上飞机里就有类似的思路。飞机停在地面时,通信、传感器、空调等各种电气设备开个主发动机显然时脑抽,于是有一台更低功率的 APU 专门跑这些,另外飞机起飞爬升时主发动机忙着提供升力也没空管电气设备,也是靠 APU 继续提供。到达一定高度巡航了,主发动机空出来了,而且 APU 此时效率非常低,于是所有动力切换给主发。
但是在没有续航需求的时候,大小核的真正用处才能更明显地体现出来,就是纯粹的提高性能。
另外温度在处理器中其实是也是功耗的直接产物。能控制住功耗,温度自然会下来,另一个思路是反摩尔定律,不提高甚至降低晶体管密度。如果使用更先进制程譬如 14nm->7nm,但是内部实际晶体管密度不增加,仍然保持足够大的晶体管间隙,功耗和温度都可以下降,问题是这样会大大大大幅增加成本以及降低良率,Pentium 超过 Xeon 价不再是梦,实际上目前应该不可能有人干这事。
当然,前提是大小核调度靠谱,不要一核有难九核围观……