来源: 计算所控制计算实验室
6月4日,在今年的国际计算机体系结构大会ISCA2018的图灵奖演讲会上,ACM/IEEE邀请了2017年图灵奖获得者John Hennessy与David Patterson联合进行了一场关于未来计算机体系结构发展道路探索的精彩演讲。二位图灵奖得主介绍了在Dennard缩放定律与摩尔定律逐渐终结过程中,计算机安全需求、领域专用语言、开源硬件、硬件敏捷开发等诸多新技术,展望了体系结构迎来了新黄金时代。
国际计算机体系结构大会ISCA是计算机体系结构领域的顶级会议,也是计算机领域有名的难会之一。在2008年该会第一次在北京召开之前,我国在该会议上发表过不到5篇论文。该会也是我们控制计算实验室瞄准的主要会议之一,2000年在会议上取得突破,后续在该会议上连续发表过2篇论文,并在体系结构另一个顶级会议HPCA上发表过多篇论文。
本次图灵奖演讲会上,两位图灵奖得主首先回顾了微处理器与指令集架构(ISA)的发展历程,并由此分析目前体系结构的挑战并以此探讨该领域未来新机遇。
图文编辑 | 薛兴华
一、计算架构的历程
从大型机,小型机到微处理器,RISC与CISC、VLIW的角力。
20世纪60年代早期,IBM的4种系列机型,每种都有独立的指令集架构、I/O二级存储系统、组装、编译器等,尽管这些机型在商业、科学、实时领域的市场均不错,但却遇到了严重的机型不兼容问题,这意味着公司需针对各系列的机型均投入相当大的成本。因此,IBM决定统一所有机型的指令集。
之前,英国科学家Maurice Wilkes(1967年图灵奖获得者,第一台实际运行的存储程序计算机EDSAC的提出者)提出微程序的概念和设计控制单元,解决了计算的控制难题。从1964年起IBM延续该设计思路,随后其设计的微控制单元在多方面性能均有提升,直到现在,微控制理念在主流处理器中仍一直沿用,公司在Fred Brooks(1999年图灵奖获得者)等人的努力下也因此获得了更好的发展,领导了计算机行业多年。
由于逻辑运算、RAM与ROM均以晶体管实现,半导体RAM与ROM具有类似的速度,摩尔定律以及RAM对微程序的重写能力,促使了复杂指令集(CISC)的诞生。同时,微程序设计在学术界非常流行,最著名的可写控制存储计算机是1973年由Chuck Thacker(2009年图灵奖获得者)领导设计的Xerox Alto,Xerox Alto是第一台现代个人计算机,首次使用了图形用户界面以及具有以太网功能,其像素转换与以太网控制器采用了微编码技术。
由于半导体技术推动,微程序设计在70年代发展迅速,期间出现了经典的Intel i432、8086以及8088处理器。8086采用16比特架构,可兼容8bit处理器8080。在8080后,Intel还研发过i432处理器,当时(1975)被认为是最具雄心的微处理器,它抛弃了继承x86的技术路线,基于32位功能,面向对象架构,拥有以Ada编写的自定义操作系统,然而该处理器存在一些性能、复杂性以及可用性上的问题,商业上失败告终。IBM在1981在其个人计算机(PC)采用了Intel 8088处理器,尽管该PC出色的销量导致了Intel 8086 “一夜成名”,但PC软件的兼容性也使得8086系列看清了未来发展方向。
直到20世纪80年代,计算机行业逐渐从组成转向高级语言编程发展,编译器越来越重要。John Cocke与其在IBM的团队致力于流水线处理器开发,通过引入IBM内部的高级编译器,利用简单的寄存器对寄存器控制与读写命令,其运行速度相比已存的编译器快3倍。
DEC公司的研究人员发现,在VAX11/180中,其指令平均执行时间(CPI)较长,微程序的60%由20%指令组成,但其执行时间约只占0.2%,同时,复杂指令集扩展也导致了微程序出现诸多漏洞。这些问题引发了Patterson对新指令集的思考,并创建了新的精简指令集RISC。
基于RISC的架构利用SRAM作为用户可见指令缓存,利用简单的ISA可实现硬件流水线,具备更好的芯片可集成度,其寄存器分配方案有利于存取ISAs,因此,在伯克利分校与斯坦福大学努力下,诞生了一系列基于RISC架构的处理器。
早在1991年,研究者证明,尽管CISC在运行中执行较少的指令,但其指令的平均执行周期较长,而RISC则在相同的硬件配置下比CISC的执行速度快4倍。在随后的PC 时代,许多硬件将x86指令转换为内部RISC指令,在MPU内使用RISC技术,这一策略使得x86指令集继续主导了服务器与PC领域,然而,后PC时代直到现在,已超过99%的处理器均使用RISC,其中大部分要归功于ARM。
Intel自1994年起与惠普联合开发了一种针对Intel IA-64架构的纯64位微处理器Itanium /Itanium 2,其指令集是EPIC(二进制对象代码兼容的VLIW指令集),具有明确的并行指令计算,当时被认为是一个趋势,很多企业(包括Microsoft, SGI, Hitachi, Bull, …)也尝试放弃RISC而转向Itanium。
然而,“EPIC Failure”!由于编译器难以处理代码中的复杂依赖关系(指针),代码尺寸爆炸问题以及不可预知的分支与缓存未命中,尽管采用了乱序技术缓解了缓存延迟,但EPIC仍然失败了。专家们也指出Itanium产品的延迟和表现不佳,因此被芯片行业称为“Itanic”,如同Titanic。
“The Itanium approach … was supposed to be so terrific, until it turned out that the wished-for compilers were basically impossi- ble to write.”——Donald Knuth, Stanford
总结历史我们发现,CISC与VLIW分别在30和15年内未出现过新的通用ISA。尽管VLIWs在嵌入式DSP市场比较出色,但其在通用架构的竞技场中已败下阵来。如今在ISAs上我们达成了共识,RISC最终被大家认可是最普适的指令集!
二、当前架构的挑战
Dennard缩放定律与摩尔定律的终结、硬件增强安全
能耗成为架构设计的关键约束条件。Dennard缩放定律表示:晶体管面积的缩小使得其所消耗的电压以及电流会以差不多相同的比例缩小。但在晶体管越来越小时,量子隧穿效应开始介入,晶体管开始出现漏电现象,使得晶体管在更小的工艺时静态功耗反而增大,这导致了Dennard缩放定律终结。
晶体管尺寸缩小速度放缓,摩尔定律即将迎来终结。摩尔定律表示:在成本不变的情况下,集成电路上可容纳的晶体管数目按照一定时间呈指数级增长。不过后来随着硅工艺发展趋于其物理瓶颈,摩尔定律开始滞缓,从1965年的一年翻一倍,1975年改为2年翻一倍,1997年又改为18个月翻一倍,最终,摩尔本人在2003年指出:摩尔定律还能坚持十年。
此外,提升芯片频率等措施将进一步加大芯片的散热问题,同时指令级并行方面也出现了较大的局限性和低效性,单核性能已难以进一步扩展。因此学者们转向多核架构的研究,开始了多核时代。然而,随着芯片集成度增大,为了在现有的散热技术上保证芯片不至于过热或功耗过大,多核芯片中有一部分和其余部分不能同时使用,出现了暗硅现象(不能同时使用的部分),Amdahl定律使得设计高性能的多核架构越来越难。
随着时间推移,单核速度性能提升的比例由上世纪80年代的每年22%降低至现在的3%,处理器性能提升速度逐年放缓,甚至接近停滞。而DRAM容量扩充速度也由上世纪70年代开始的平均每年1.5倍降低至现在的1.1倍,针对DRAM的摩尔定律也开始逐渐失效。
当前,技术似乎已经达到了其极限,而能耗却增长迅速,能耗已作为最主要的芯片设计限制条件,体现了现有技术对晶体管的利用低效。所以,如何提高现有技术对晶体管的利用率将是一条重要的思路。
安全问题一直为人们关注,过去人们想到很多方法维持系统安全,但多数不好用或开销过大而逐渐被淘汰。早期人们发现提出了硬件抵抗攻击的方案,但其验证难度较大,且还面临着内核与微内核规模爆炸问题,这些方案逐渐被人们放弃。当前几乎所有的软件都必须构建安全系统,但仍存在软件缺陷,所以硬件必须对安全领域有所作为。
因此由安全问题也带了对指令集架构ISA的新定义:
“What the machine language programmer must know to properly write a correct but timing-independent program.”
怎样才能使机器语言程序员写出正确的,且没有时间依赖性的程序?现在的体系结构面临着大量的“幽灵”猜测(时序攻击,大于10kb/s),将来也会有更多的微架构式攻击,我们是通过资源隔离还是关闭多线程以保证安全?这需要新的体系架构具备防止时序泄露的能力。
所以,由于当前摩尔定律减缓,Dennard定律也被终结,微体系结构指令层并行,多核等技术的低能效,计算机安全状态也让人尴尬,而又似乎不太可能用纯软件方法保证其安全,这些挑战将推动体系结构如何发展?
三、体系结构新机遇
专用软硬件协同设计、架构开源、敏捷硬件开发。
当摩尔定律放缓时,我们将如何加快处理速度?
以软件为中心的方法尽管在编程方面比较方便,但在执行上非常低效;而以硬件为中心的方法只剩下了专用架构,尽管只能完成少量的任务,但执行非常高效!因此,专用软硬件协同设计将成为不二之选。假定以Python执行矩阵乘法运行速度为1,通过专用硬件的加速比可达到62806,可见专用加速架构存在巨大的机遇。
专用架构的设计:将硬件架构进行定制并使其具备特定领域应用特征,使该领域的一系列应用任务都能高效执行。相比通用架构,专用架构的设计需要设计者对专用领域知识更加了解。当前比较流行的专用架构包括:机器学习领域的神经网络处理器,图形图像、虚拟现实领域的图像处理器(GPUs),可编程网络交换机及接口等。
专用架构采用单指令多数据流(SIMD)、用户控制与缓存技术,使其在并行性以及带宽利用率上相比通用架构更加高效,通过结合专用领域的编程语言,可在应用任务上获得高水平的加速效果。此外,专用架构可利用低精度的浮点或定点数运算,如将32bit或64bit的数据转化为8bit或16bit定点数据,可在精度允许范围内大幅降低硬件运算开销。
领域专用语言如OpenGL,TensorFlow等可对专用架构所需的常用操作进行总结,如矩阵、向量或稀疏向量的操作。然而,如果领域专用语言(DSL)程序与专用架构保持独立性,将导致编译上的困难。因此,针对通用应用任务,可以利用高级语言及其编译器实现在通用架构(如RISC)执行,而针对领域专用应用任务,则实现领域专用软硬件协同设计并以高级编译技术进行优化与匹配。
有趣的是,由于机器学习的火热,该领域发表论文的数量也呈摩尔定律上升!
在机器学习领域,比较有代表性的专用架构中,Google设计的张量处理器(TPU v1,耗时36个月,数十亿),可用于神经网络运算、神经机器翻译、AlphaGo匹配等诸多任务,该专用处理器架构内部含有可完成65536(256x256)8bit规模乘累加单元的矩阵运算模块,4MB片上累加存储以及24MB单独缓存,其片上存储相比GPU多3.5倍,此外还包含了两个2GMHz左右的DDR3 DRAM通道,8GB片外DRAM存储,700M时钟频率,峰值操作可达到92T/s,其运算速率相比GPU快25倍以上,比CPU快100以上。
我们需要明白所研制的芯片的应用是什么,标准是什么,一套合理的测试基准(Benchmark),用以评估机器学习不同架构的芯片性能,同时能给机器学习芯片领域研究人员带来激励。不管是机器学习或其他领域,成套Benchmark的构建不可或缺。
机会有很多!但体系结构设计也需要新方法,我们需要重新垂直组建计算机架构团队,他们需要掌握包括应用、DLSs以及相关编译技术、体系结构原理、技术实现等。John总结到:“Everything old is new again!”过去旧的技术重新变成新的了!
David Patterson:操作系统及其编译器均可开放,为什么架构就不能呢?David回顾了RISC-V架构的设计历程,并讲述了由于RISC-V及其扩展版本的简洁、模块化、开放性、可扩展等诸多特点,为专用架构的灵活设计与开发提供了条件,有望成为开源硬件基础。
而在深度学习加速器领域,英伟达开放了其神经网络加速架构NVDLA,其配套工具及说明均可在GitHub上获得,具有可拓展及灵活性等优点,而该加速架构所使用的主处理器则可采用RISC-V核。由于FPGAs的可塑性、RISC-V以及其软件的开放,开发者可在线快速开发与验证。
架构免费开源将使任何人都可以低门槛接触并参与开发,并可自由扩展以支持专用架构,更多的人或团队参与开源的处理器设计,将加速领域创新,形成更有竞争力的市场。
“就像Linux对处理器的开放程度那样,希望将来能创建对所有计算装置都开放的工业级ISAs。”
硬件敏捷设计,只需要很小的团队花较短的时间即可实现原型迭代。在敏捷硬件设计过程中,设计者可通过软件以高级语言对开发者的创新架构进行描述与仿真;然而所设计的模型在软件中并不能运行数十亿或更多的周期,开发者需借助FPGA工具进行验证,云FPGA的开放,使开发者无需购买验证硬件即可实现FPGA验证。经过前述步骤的迭代过程,即可准备流片,由于摩尔定律迟缓,当前的流片成本也逐渐降低,减轻了团队流片的成本压力。这种敏捷开发在伯克利试验过,一个团队在短短5年时间里即可制造10次芯片,使团队积累了丰富的芯片设计经验。
随着Dennard缩放定律与摩尔定律的终结,体系结构开始着重于提高性能,降低成本及功耗,计算机安全机制亟待革新,领域专用语言DSL催生了专用架构的产生,免费/开放的架构资源与开发套件,以及云FPGAs的开放使任何人都可定制硬件,硬件敏捷开发等诸多条件促成了体系结构的新黄金时代!
未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。
未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。
如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”