对物理化学领域的世界顶尖科研工作者来说,梦里三生三世,十里桃花,皆是诺贝尔奖的一颦一笑;那么,对计算机领域大神们,则是知否知否,应该如何通过图灵大师的问答;
2017年 国际计算机学会(Association for Computing Machinary,ACM)提名斯坦福大学前校长约翰·L·轩尼诗(John L. Hennessy)以及加州大学伯克利分校退休教授大卫·A·帕特森(David A. Patterson)为2017年度ACM图灵奖获得者;
图灵奖项名单一出来,几乎所有人都认为,Hennessy和Patterson实至名归;作为计算机体系结构的两尊大神,也是芯片江湖的独孤求败;如果给这两个人写一个墓志铭,那么就是:
一:创办了一个门派(RISC),
二:撰写了一本秘籍(计算机体系架构-量化研究方法)
当年,在整个江湖,(从大型机到个人计算机)中使用的CISC(Complex Instruction Set Computing,复杂指令集计算)体系结构,在那个时候,复杂指令集(CISC)是主流的指令集架构。然而,随着RAM技术的发展,RAM速度越来越快,成本越来越低,因此在处理器上集成指令缓存成为可能。RISC的出现可谓水到渠成。研究发现计算机执行大多数程序时CISC指令集中绝大多数指令都只在极少的时间才被用到,因此专门为这些指令设计硬件并不划算。相反,使用精简指令集(RISC)可以大大简化硬件的设计,从而使流水线设计变得简化,同时也让流水线可以运行更快。
轩尼诗(Hennessy)和帕特森(Patterson)的提出RISC使整个业界认识到,原来处理器还可以这么玩。定长的指令结构,尽可能单周期的操作(也有多周期的操作),简洁的操作码和操作符,更简单的访问存储的结构,RISC带来更高的运行频率,看起来就像贝多芬的协奏曲一样和谐;
他们不但是理论的开创者,也是产业化的先锋,他们创办了MIPS,MIPS后来被Silicon Graphics收购,其处理器与斯坦福大学James Clark开发的定制图形相结合,为好莱坞在上世纪80年代末和90年代所依赖的高性能图形工作站提供了动力。
如今,师承他们衣钵的ARM一统嵌入式处理器的天下;如今形成了处理器移动端/嵌入式的ARM(RISC)和PC端/服务器端的intel(CISC)两强相争,楚河汉界的局面;(后续专门介绍RISC和CISC的恩怨情仇,此不展开);实际上intel的CISC指令集已经借鉴RISC的思想,在微码结构上也采用的RISC;
另一个使这两位大使的封神之路,是这本武林秘籍的出版;第一部《计算机体系结构:定量方法》(ComputerArchitecture:A QuantitativeApproach);他们两人开始合作,创建了一个系统的定量方法来设计更快,更低的功耗和降低复杂性的微处理器;计算机体系结构学科的里程碑式教科书。现已出版第六版,为几代架构师确立了经久不衰的量化研究方法。
Hennessy和Patterson的一生事业都钟情于计算机体系结构,致力于一个更为简洁和解决问题的体系结构;先是RISC;Patterson 老爷子近年来参与和领导的RISCV 又进一步,将整个指令集开源,可以调动更多的智慧和厂家来参与到开源的处理器架构中来,简洁,开源;
四十年间,处理器性能以每年1.4倍的速度指数上升,目前性能相比于四十年前改进了约一百万倍。在处理器架构角度,最大的进步包括位宽(由八位进化到了六十四位),指令级并行度(从最初每条指令需要4-10个时钟周期执行到现在每周期可以同时执行超过4条指令,这是10-20倍的改善),以及多核架构(由单核演化到32核)。从性能角度,时钟频率从3MHz进化到4GHz。这一切都是因为集成电路生产工艺进化为基础的。摩尔定律使得处理器晶体管数持续上升,但是因为晶体管功耗和晶体管面积缩小的速度基本相同,因此在前40年间芯片单位面积的功耗基本不变。
随着摩尔定律的趋于终结,功耗墙,存储墙,频率墙,如今的处理器应对新问题的越来越力不从心,而又不能给处理器保温杯里泡枸杞(泡冷水还有些用);面对AI的新应用,Hennessy和Patterson又开始给业界提出了DSA(Domain Specific Architecture,领域定制架构),与通用处理器不同的是,DSA专门解决一类问题;用马克思主义哲学的话,就是解决主要矛盾;而CPU就是眉毛胡子一把抓,什么都干,什么都干不好;
例如在AI芯片领域,卷积或矩阵的乘法,池化,非线性操作,取权重等操作,那就专门设计类似的指令来做,不用使用传统的RISC ,LOAD,MOV,OP,STORE等每次只能计算很少数据的低效处理方式;
GOOGLE的TPU就是一种DSA,TPU的指令集共计有十多条指令,主要的五条指令包括
- 读内存:将数据从CPU的内存中读取到TPU的Unified Buffer上。
- 读权重: 将weight从内存中读取到TPU的 Weight FIFO 上。
- 卷积/矩阵乘: 执行卷积或矩阵乘法操作。
- 非线性/池化 :执行人工神经网络中的非线性操作和Pooling操作。
- 写内存 :将结果从Unified Buffer写回CPU内存。
从给出的五条指令可以看出,TPU的指令集设计和通用处理器有很大的不同。指令需要显示指定数据在内存和片上buffer之间搬移的过程。而执行指令(矩阵乘法)直接指定了Buffer的地址,指令上并不能看到一系列通用寄存器。这是因为TPU本质上还是一个专用的处理芯片,其高性能和高效能都是建立在失去一定灵活性的前提下的。为了获得更高的性能;
从另一个意义上说,GPU也是一种DSA,这个本身为图像处理而存储在处理器,就是应用在图像领域的领域定制架构,而CUDA就是一种非常重要的DSL(领域定制语言);
Hennessy和Patterson早年提出并致力于RISC的发展和推广,当CPU在面临今天AI处理上的捉襟见肘,他们并不抱残守缺,提出提出DSA架构,通过DSA的思想,解决人工智能芯片领域的高能效,高性能的需求;GOOGLE的TPU正可以实践DSA的架构,正所谓:重剑无锋,大巧不工;
恰恰像一个轮回,当年的Hennessy和Patterson提出了RISC建立一个新的时代,如今的DSA架构,则更像CISC;一个指令可以完成更多的操作,但早已不是旧时模样;如今的Hennessy和Patterson在体系结构上早已超脱了RISC和CISC的束缚,达到了“不滞於物,草木竹石均可为剑。自此精修,渐进於无剑胜有剑之境”。
作者:歪睿老哥
来源:https://mp.weixin.qq.com/s/hcWP8D0CLfKxIYMAdQG7nw
作者微信公众号
相关文章推荐
更多IC设计技术干货请关注IC设计技术专栏。