目前CPU/ASIC基本都是使用CMOS逻辑电路, 而工艺水平的改进使CMOS管延迟减小,也就使每条指令可以在更短的时钟周期内完成。也就是主频可以随工艺加深而得以提高。 我们再看下为什么工艺加深会让晶体管延迟减小,下图是CMOS晶体管的截面示意图,晶体管的开关速度是收很多因素的影响,其中电场强度和电子迁移率。 电场强度是受加载到源漏两极的电压以及沟道长度的影响。 沟道长度(也就是平时说的28nm,16nm工艺)越窄,电场强度就越大,CMOS管的开关速度就越快。 但是随着工艺加深,沟道长度越来难以缩短,也就是说CMOS管的延迟难以再缩小。那么为什么还是要不停的改进工艺,目的就是更小的面积容纳更多的晶体管,从而可以通过更复杂的电路设计比如并行运算, 行为预测等来提高芯片性能。
主流中央处理器的确在05年之后就很少超过4GHz的频率。登纳德定律说单核上晶体管数量每两年能翻一倍,然而05年之后碰到了瓶颈,之后就很少提登纳德定律,只能依靠并行运算来为摩尔定律续命。我们可以看到上图的绿线指示的是主流中央处理器的频率,不但没能上升,近来还有下降的趋势。工程师们天生是要为整个系统做权衡的。而在登纳德定律和摩尔定律都生效的年代,电子工程师不需要权衡,只要做一件事:把晶体管做小。无需权衡,只要做小,那简直是电子工程师的黄金年代。然而五十年过去了,黄金时代已经过去,工程师们必须做权衡。 需要权衡的瓶颈包括是内存读取瓶颈,指令行并行处理瓶颈,和散热瓶颈。而散热瓶颈被认为是最难以跨越的。[1] 先说内存读取。中央处理器和内存是分离的两个区域,之间依靠信道连接,而信道是有带宽的。处理器的晶体管数量每两年翻一倍,然而带宽的增长达不到它的速度,所以内存读写所占的时间逐渐超过处理器计算的时间,削弱了创新的动力
再说指令行并行处理。CPU主频每翻一倍,只要所有元件都能完成运算,整个系统的运行速度就能上升一倍。然而每个元件和电线都是有物理属性的;电信号传过元件后会有延迟,受元件电阻和电容影响;电信号在电线中也只能以介质中的光速传播,小于3亿米每秒,大约2亿米每秒。4GHz时是每秒40亿下时钟,电信号只能前进6厘米。工业界近20年来为了加快主频,在其他方式都到极限后采用了流水线式设计,把一条指令拆成多个时钟来完成,以此在一条指令完成时间不变的情况下,增加单位时间的吞吐量。上图是我学架构时设计的五级流水线式处理器构架,把一条机械语言拆成取指令,解码指令,处理,写回内存,和写回寄存器五级。而英特尔i7现在的技术把整个指令拆到了二十四级[2],如此细致的拆分令人发指,同时也很难再想象如何再改进。 而温度是最可怕的权衡。超过4GHz后,温度上升造成的性能损失超过了指令行处理加速获得的性能提升。如果说前两个瓶颈还能依靠设计解决,那这个瓶颈就只能靠新材料或是工艺来解决了。而现代计算机所依赖的物理元件,MOSFET,全称金属氧化物半导体场效应管,从登纳德定律出现到05年四十年时间内都没有更好的替代产品。最新出了一批新的场效应管,然而没能在根本上解决散热的问题。