来自 科技 2021-01-15 21:20 的文章

CPU的新发展方向,应该往哪走?

    包云岗,中国科学院计算技术研究所研究员、博士生导师、中国科学院大学教授,中国开放指令生态(RISC-V)联盟秘书长,从事计算机体系结构和开源芯片方向前沿研究,主持研制多款达到国际先进水平的原型系统,相关技术在华为、阿里等国内外企业应用。他曾获「CCF-Intel青年学者」奖、阿里巴巴最佳合作项目奖、「CCF-IEEECS」青年科学家奖等奖项。
 
    2020年底给某大厂做过一个报告,包含两部分内容:一部分是关于计算机体系结构,尤其是CPU结构的演变;另一部分关于处理器芯片设计方法。这里把第一部分内容贴出来回答一下这个知乎问题。
 
    1.首先回顾一下计算机体系结构领域三个定律:摩尔定律、牧村定律、贝尔定律。摩尔定律就不用多说了,但想表达一个观点是摩尔定律未死,只是不断放缓。
 
    2.摩尔定律让芯片上的晶体管数量不断增加,但一个问题是这些晶体管都被充分用起来了吗?最近MIT团队在《Science》上发表了一篇文章《There’splentyofroomattheTop:WhatwilldrivecomputerperformanceafterMoore’slaw?》,给出他们的答案:显然没有!
 
    可以来看一下MIT团队开展的一个小实验(见下面PPT):假设用Python实现一个矩阵乘法的性能是1,那么用C语言重写后性能可以提高50倍,如果再充分挖掘体系结构特性(如循环并行化、访存优化、SIMD等),那么性能甚至可以提高63000倍。然而,真正能如此深入理解体系结构、写出这种极致性能的程序员绝对是凤毛麟角。
 
    问题是这么大的性能差异到底算好还是坏?从软件开发角度来看,这显然不是好事。这意味着大多数程序员无法充分发挥CPU的性能,无法充分利用好晶体管。这不能怪程序员,更主要还是因为CPU微结构太复杂了,导致软件难以发挥出硬件性能。
 
    如何解决这个问题?领域专用架构DSA(Domain-SpecificArchitecture)就是一个有效的方法。DSA可以针对特定领域应用程序,定制微结构,从而实现数量级提高性能功耗比。这相当于是把顶尖程序员的知识直接实现到硬件上。
 
    3.第二个定律是牧村定律(也有称「牧村波动」)。1987年,原日立公司总工程师牧村次夫(TsugioMakimoto)提出,半导体产品发展历程总是在「标准化」与「定制化」之间交替摆动,大概每十年波动一次。牧村定律背后是性能功耗和开发效率之间的平衡。
 
    对于处理器来说,就是专用结构和通用结构之间的平衡。最近这一波开始转向了追求性能功耗,于是专用结构开始更受关注。
 
    4.第三个定律是贝尔定律。这是GordonBell在1972年提出的一个观察,具体内容如下面的PPT所述。值得一提的是超级计算机应用最高奖“戈登·贝尔奖”就是以他的名字命名。
 
    5.贝尔定律指明了未来一个新的发展趋势,也就是AIoT时代的到来。这将会是一个处理器需求再度爆发的时代,但同时也会是一个需求碎片化的时代,不同的领域、不同行业对芯片需求会有所不同,比如集成不同的传感器、不同的加速器等等。如何应对碎片化需求?这又将会是一个挑战。
 
    6.这三个定律都驱动计算机体系结构向一个方向发展,那就是「DSA」。如何实现DSA,这又涉及到两个方面:
 
    为了追求性能功耗,有三条主要的设计原则(见下面PPT);
 
    为了应对碎片化需求,则需要发展出处理器敏捷设计新方法。(这个回答就不介绍敏捷设计方法了)
 
    7.在谈一些具体技术之前,我们可以先总体看一下过去几十年CPU性能是如何提升的。下面这页PPT列出了1995-2015这二十年Intel处理器的架构演进过程——这是一个不断迭代优化的过程,集成了上百个架构优化技术。
 
    这些技术之间还存在很多耦合,带来很大的设计复杂度。比如2011年在SandyBridge上引入了大页面技术,要实现这个功能,会涉及到超标量、乱序执行、大内存、SSE指令、多核、硬件虚拟化、uOPFusion等等一系列CPU模块和功能的修改,还涉及操作系统、编译器、函数库等软件层次修改,可谓是牵一发动全身。(经常看到有人说芯片设计很简单,也许是因为还没有接触过CPU芯片的设计,不知道CPU设计的复杂度)