EEJournal

专题文章
现在就订阅

五十年(或六十年)的处理器开发……为了这个?

“登纳德尺度和摩尔定律都死了,现在怎么办?”——大卫·帕特森博士的四幕戏剧

“我们走到桥头自然直,然后把它们烧在身后,除了烟味的记忆和曾经流泪的自负,我们没有任何进步的证明。”——汤姆·斯托帕德《罗森克兰茨和吉尔登斯特恩已死

3月15日,大卫·帕特森博士向大约200名吃着披萨的工程师快速介绍了半个世纪的计算机设计。他在德州仪器圣克拉拉校区E号楼的一个大会议室的讲台上发表了题为“计算机架构50年:从大型机cpu到DNN tpu和开放RISC-V”的IEEE演讲。这是一部偶然成功和坑洞、天坑和吞噬整个建筑的黑洞的历史。

帕特森以20世纪60年代和开创性的IBM System/360项目开始了他的演讲,该项目建立在1951年莫里斯·威尔克斯(Maurice Wilkes)对微编程的早期开发的基础上。那是很久很久以前的计算机时代了。演讲快结束时,帕特森展示了一张震撼人心的图表,准确地显示了登纳德·斯吉尔定律(Dennard Scaling)的消亡以及摩尔定律(Moore’s Law)的消亡是如何改变我们设计计算机的方式的。最后,他解释了这些冲击在技术上的事后影响。

观看大师们在他们所选择的领域中发挥作用总是一种乐趣,帕特森是真正的计算机体系结构大师,以及驱动它的力量;他从1976年开始教授这一主题,并与人合著了权威畅销书《计算机体系结构:定量方法约翰·亨尼西博士的新书,现在已经是第六版了。(“你应该买!他建议道。)所以帕特森现在远在几光年之外马尔科姆·格拉德威尔他掌握学科需要1万小时,结果证明了这一点。

在75分钟的演讲中,帕特森将演讲分为四幕,吸引了观众。就像汤姆·斯托帕德的荒诞主义戏剧“罗森克兰茨和吉尔登斯特恩死了”一样,没有一件事——没有一件事——似乎是按计划进行的。

大卫·帕特森博士在3月15日赢得ACM 2017年A。图灵奖。(来源:Steve Leibson)

第一幕:IBM系统/360,DEC的VAX和CISC的前奏

20世纪50年代和60年代见证了大型机指令集架构(isa)的大量实验。(大型机几乎是当时唯一被设计的计算机。)几乎每一个新的主机都有一个“新的和改进的”ISA。到20世纪60年代早期,仅IBM一家就销售了针对商业、科学和实时应用的四种计算机系列——650、701、702和1401——所有这些计算机都采用相互不兼容的isa。四个不兼容的计算机isa意味着IBM还要开发和维护四套完全独立的外围设备(磁带驱动器、磁盘和鼓式驱动器以及打印机)和四套软件开发工具集(汇编程序、编译器、操作系统等)。

这种情况显然是不可持续的,因此IBM进行了一场豪赌。它决定为所有的机器开发一个二进制兼容的指令集。一个独立于硬件的指令集来管理它们。首席架构师Gene Amdahl和他的团队开发了System/360架构,设计用于一系列具有8、16、32和64位数据路径的低成本到高成本机器上。

为了简化IBM System/360处理器硬件的硬件开发,开发团队选择对难以设计的控制逻辑使用微编程。莫里斯·威尔克斯(Maurice Wilkes)在1951年首次构想了微程序设计,并于1958年首次用于EDSAC 2计算机。所以,在某种意义上,微编程在IBM启动System/360项目时就已经是一种被证明有效的技术了,而这个项目又一次证明了它的重要性。

微程序处理器控制立即在大型机设计中开花结果,特别是在半导体存储芯片出现并开始遵循摩尔定律之后。也许大规模微编程的最好例子是1977年推出的DEC VAX。VAX 11/780是一款由TTL和存储芯片组成的具有开创性的小型机,它成为了本世纪剩余时间的性能基准。

DEC工程师开发VAX ISA的时候,汇编语言编码还是主流,部分原因是工程上的惯性(“我们一直都是这样做的”),部分原因是当时基本的高级编译器生成的机器代码与紧凑的手工汇编语言相比不太好。VAX ISA的指令支持大量程序员友好的寻址模式,包括执行复杂操作(如队列插入/删除和多项式求值)的单个机器指令。VAX工程师乐于设计减轻程序员负担的硬件。微编码使得向ISA中添加新指令变得很容易,99位宽的VAX微程序控制存储空间膨胀到4096个单词。

专注于创建越来越多的指令来减轻汇编语言程序员的负担,这被证明是DEC的VAX真正的竞争优势。程序员喜欢让他们的工作更容易的电脑。对于许多计算机历史学家来说,VAX 11/780标志着CISC(复杂指令集计算)的诞生。

第二幕:偶然的成功与巨大的失败

DEC VAX 11/780小型机在微处理器开始爆发的时候达到了顶峰。几乎所有早期的微处理器都是CISC机器,因为减轻程序员的负担仍然是一个竞争优势,即使计算机缩小到一个芯片。英特尔的Gordon Moore在Fairchild公司开发了摩尔定律,他的任务是开发一个后续的ISA,以取代8位Intel 8080/8085(和Z80) ISA的意外成功。Moore从IBM非常成功的System/360项目(一个ISA来统治所有的ISA)和DEC的CISC小型机VAX系列中借鉴了一页,还试图开发出最终的ISA -一个Intel ISA来维持剩余的时间。

在当时8位微处理器还只有16位地址空间的时候,这款全新的终极英特尔ISA拥有32位地址空间和内置的内存安全性。它可以容纳以一个比特开始的任何比特长度的指令。它将用最新最棒的高级语言Ada编程。

这个ISA后来成为了英特尔iAPX 432,对英特尔来说,这是一个非常大、非常雄心勃勃的项目。

如果你研究一下“革命性的”iAPX 432的历史,你会发现它是一个巨大的失败。实现iAPX 432 ISA所需的硬件非常复杂。因此,芯片的实现大大延迟了。(它需要6年的开发周期,直到1981年才出现。)当微处理器最终出现时,它的速度非常慢。

Gordon Moore在项目早期看到iAPX 432将需要很长时间来开发,所以他在1976年启动了一个并行崩溃项目,以开发一个不那么雄心勃勃的16位微处理器,该微处理器基于成功的8位8080 ISA的源代码兼容扩展。开发团队只有一年的时间来生产芯片,所以他们花了整整三周的时间来开发ISA。结果是8086-one ISA统治了所有国家,至少几十年。

一个问题是:根据英特尔内部人士自己的描述,8086微处理器是一条狗。

英特尔8086的性能落后于它最接近的微处理器竞争对手:优雅的摩托罗拉68000(一个披着16位服装的32位处理器)和16位Zilog Z8000。尽管性能不佳,IBM还是选择了英特尔8086作为其IBM个人电脑项目,因为英特尔在以色列的工程师已经开发出了8088:带有8位总线的8086的变种。8088微处理器的运行速度比8086稍慢,但它的8位总线似乎与现有的外围芯片更兼容,而且它降低了PC主板的制造成本。

IBM预计今年将售出约25万台IBM个人电脑。然而,它的销量却超过了1亿台,而英特尔8088也意外地成为了一款轰动一时的产品。

第三幕:RISC, VLIW的诞生,以及泰坦尼克的沉没

1974年,就在第一个商用微处理器问世后不久,IBM的约翰·科克(John Cocke)正试图为电子电话交换机开发一种控制处理器。他计算出控制处理器需要执行大约1000万条指令/秒(MIPS)来满足应用程序的需求。当时的微处理器速度太慢了一个数量级,甚至IBM的System/370大型机也达不到要求。它的输出速度约为2 MIPS。

因此,Cocke的801项目团队开发了一种具有流水线数据路径和快速、非微编程控制电路的彻底流线型处理器架构,通过将指令数量减少到最低限度来简化控制挑战。(这台机器被称为IBM 801,因为它是在IBM托马斯·j·沃森研究中心的801号楼开发的。)IBM 801项目实现了第一个RISC(精简指令集计算机)ISA。

由此产生的801计算机原型机采用小型摩托罗拉MECL 10K芯片,输出了惊人的15 MIPS,轻松满足了设计要求。由于减少的指令数量比CISC指令集更不适合程序员,Cocke的团队必须开发优化编译器,以承担从用高级语言编写的复杂算法创建高效机器代码的额外负担。

科克因此被称为“RISC之父”。IBM从未制造过电话交换机,但801处理器不断发展,最终成为IBM POWER RISC处理器长系列的基础,广泛用于其大型机和服务器。

后来,DEC的几个工程师发现,大约20%的VAX的CISC指令消耗了大约80%的VAX微码,但只占整个程序执行时间的0.2%。太浪费了!考虑到IBM 801项目的结果和DEC工程师的发现,也许CISC体系结构并不是那么好。

事实证明,事实并非如此。

1984年,斯坦福大学教授约翰·亨尼斯发表了一篇具有里程碑意义的论文,题为《VLSI处理器架构,证明了RISC isa和架构对于VLSI处理器实现的优越性。Patterson在他的演讲中总结了Hennessy的证明:RISC本质上更快,因为CISC机器每条指令需要比RISC机器多6倍的时钟。即使CISC机器只需要执行RISC机器一半的指令,但如果你计算一下,RISC机器本质上比CISC机器快3倍。

因此,今天pc中的x86处理器可能看起来仍然在执行软件兼容的CISC指令,但是,一旦这些指令从外部RAM跨越到处理器,指令切碎器就会将x86机器指令分割成更简单的“微操作”(Intel-Speak for RISC指令),然后在多个RISC执行管道上调度和执行。今天的x86处理器通过演变成RISC机器而变得更快。

一些处理器架构师决定开发一个比RISC或CISC更好的ISA。一个非常宽的指令字应该可以将多个并行操作打包到一个巨大的机器指令中。建筑师将这种ISA变体称为VLIW(超长指令字)。VLIW机器从RISC的书中借鉴了一页,期望VLIW软件编译器能够找出如何调度和将从高级源代码生成的指令打包到VLIW机器代码中。

英特尔认为VLIW isa看起来非常有吸引力,并开始开发VLIW处理器,这将成为其进入即将到来的64位微处理器世界的入口。英特尔将其VLIW ISA命名为“IA-64”。像往常一样,英特尔开发了自己的命名法。VLIW在Intel-Speak中变成了EPIC(显式并行指令计算)。EPIC不会基于x86指令集,部分原因是为了防止AMD复制。

后来,惠普的PA-RISC工程师发现RISC快要没油了,他们也发现了VLIW漏洞。惠普与英特尔于1994年联合开发了64位VLIW/EPIC架构。其结果被称为安腾微处理器。宣布的目标是在1998年交付第一台安腾处理器。

但是,VLIW处理器和编译器将很难开发,这一点很快就变得清晰起来。英特尔直到1999年才宣布Itanium的名称(Usenet的书呆子们立即将Itanium处理器命名为“Itanic”),而第一款可用处理器直到2001年才发布。2017年,随着英特尔宣布IA-64的寿命结束,“泰坦尼克”最终被遗忘。(参见“英特尔终止安腾项目:可能是世界上最昂贵的失败芯片项目”)。

英特尔的EPIC是一个史诗级的失败——微处理器版的加·加·宾克斯。当时这似乎是个好主意。

帕特森说,Itanium、EPIC和VLIW处理器的消亡有几个原因:

  • 分支是不可预测的,这使得调度和将并行操作打包到VLIW指令字中变得复杂。
  • 不可预测的缓存错过缓慢的执行,并创建可变的执行延迟。
  • VLIW isa会爆炸代码大小。
  • 为VLIW机器创建好的优化编译器太难了。

Donald Knuth,也许是世界上最著名的计算机算法奇才,观察到,“Itanium方法……被认为是非常棒的——直到它被证明所希望的编译器基本上是不可能编写的。”

看起来编译器只是在简单的类似risc的架构上做得更好。

作为通用微处理器,VLIW架构失败了。然而,这个概念后来找到了归宿,这把我们带到了第四幕。

第四幕:登纳德缩放和摩尔定律已死,但dsa、tpu和Open RISC-V还活着

在汤姆·斯托帕德(Tom Stoppard)的戏剧《罗森克兰茨和吉尔登斯特恩已死》(Rosencranz and Guildenstern are Dead)中,从莎士比亚的《哈姆雷特》(Hamlet)中选取的两个不起眼的角色,最终在最后一幕结束时发现,他们在整部剧中都已经死了。在帕特森处理器历史的最后一幕中,丹纳德尺度和摩尔定律已经消亡。以下是轩尼诗和帕特森合著的最新版书中的一幅图,生动地讲述了整个故事:

资料来源:John Hennessy和David Patterson,《计算机体系结构:定量方法》,6/e。2018

从这张图中你可以看到,从1986年到2004年,RISC微处理器享受了近20年的快速性能提升,因为它们超越了摩尔定律(每个新的半导体工艺节点上多了2个晶体管)和登纳德缩放(每个工艺节点上每个晶体管的功耗减半,速度快了2倍)。然后Dennard Scaling失效了,单个处理器不再变得更快。每个节点的晶体管功耗也停止了一半的下降。

业界仅依靠摩尔定律进行补偿,每个节点增加2倍晶体管,并迅速增加单个芯片上的处理器数量,从而迎来多核时代。在这个时代,处理器性能翻倍的时间间隔从1.5年延长到3.5年,在阿姆达尔定律(Amdahl’s Law,转述为“在任何给定的应用程序中都只有这么多可利用的并行性”)出现之前,这个时间间隔持续了不到10年。很少有应用程序可以让几十个处理器忙个不停。

摩尔定律就此消亡。

根据帕特森的说法,最终结果是,自2015年以来,处理器性能的提升急剧下降到每年微不足道的3%。摩尔定律的处理器加倍时间不再是1.5年甚至3.5年。现在二十年

游戏结束了吗?“不,”Patterson说,在处理器架构领域还有很多有趣的事情要做。

一个例子:领域特定体系结构(dsa),这是专门构建的处理器,试图加速一些特定于应用程序的任务。VLIW架构未能用于通用计算,但对分支少得多的DSP应用程序有意义。另一个例子:谷歌的TPU(张量处理单元),它在一块硅片上使用65,536个乘法/累加(MAC)单元的大规模阵列来加速DNN(深度神经网络)的执行。

事实证明,降低精度的矩阵数学是实现真正快速dnn的关键。谷歌TPU中的65,536个8位mac运行在700MHz,并提供92个TOPS(兆运算/秒)。这比服务器CPU快30倍,比GPU快15倍。考虑到28nm TPU较低的功耗(服务器级CPU或gpu的一半),性能/功耗优势分别翻倍至60倍和30倍。

巧合的是,在加州大学伯克利分校教书和工作了40年之后,大卫·帕特森教授最近退休了。他现在是谷歌公司TPU项目的杰出工程师。

帕特森说,另一件有趣的事情是开发开源isa。以前创建开源isa的尝试OpenRISC而且OpenSPARC仅举两个例子——它还没有席卷全球,但让帕特森兴奋不已的是闪亮的新开源ISARISC-V,这是他在伯克利促成的。帕特森说,看看SoC,你会看到许多带有不同isa的处理器。“为什么?他问道。

为什么在一个芯片上需要通用ISA、图像处理ISA、视频处理ISA、音频处理ISA和DSP ISA ?为什么不只是有一个或几个简单的isa(和一个软件开发工具链),您可以在特定于应用程序的处理中使用和重用它们呢?为什么不让ISA开源,这样任何人都可以免费使用它,每个人都可以改进它?帕特森对这些问题的唯一答案是RISC-V ISA。

新成立的RISC-V基金会它在概念上与成功的Linux基金会类似,已经拥有100多家成员公司,其运作方式类似于RISC-V ISA的标准机构。基金会的使命是推动RISC-V ISA的采用,并指导其未来的发展。巧合的是,“退休”的大卫·帕特森博士是RISC-V基金会的副主席。

就像Rosencranz和Guildenstern一样,Dennard Scaling和Moore’s Law在Patterson的历史戏剧的结尾也死了,然而关于计算机架构的有趣的事情仍然有待完成。

“没有什么比令人难以置信的死亡更令人难以置信了。”——摘自《Rosencranz and Guildenstern are Dead》

Epilog: 3月21日,就在IEEE演讲的一周后,ACM通过以下方式认可了Patterson和Hennessy对计算机体系结构的贡献颁发2017年ACM A.M.图灵奖表彰他们“开创了一种系统的、定量的计算机架构设计和评估方法,对微处理器行业产生了持久的影响”。

关于“50(或60)年的处理器开发……为了这个?”的13个想法

  1. RISC已经被打败了。
    加载和存储以访问内存。
    操作(处理)数据的ALU指令。
    条件执行路径的分支。

    以及所有的超标量寄存器文件。

    正如本文所述,它可以使编译高级语言变得更容易。

    if、else、for、while、do、switch和assign可以在硬件中执行,而无需编译到ISA。

    RISC isa已经过时了。只需要进行执行高级语言语句的真正硬件设计,而不要考虑如何轻松地将其编译为ISA。然后,编译器将变得过时或演变为连接预定义的功能块(OOP风格)。

    1. 令人遗憾的是,整个世界都被洗脑了,以至于RISC绝对是终极处理器。

      我在IBM System360/75上工作,它不是微编程的,但被NASA用于任务控制。定点指令有加载、存储和注册来注册算术/逻辑操作——与RISC相同——但也有浮点和十进制指令,甚至乘法和除法!

      之前的“科学”基本上是RISC,所以约翰·科克、乔治·拉登和帕特森博士真的没有发明任何东西。在某些方面,他们更像是把孩子和洗澡水一起倒掉了。

      因为RISC不做系统需要的浮点运算或除法(因为它们是多周期指令)。

      我们生活在一堆乱七八糟的营销炒作和胡扯中。

      如果有人添加除法指令,RISC V将被称为什么?还是不被允许?浮点数也是一样。

留下回复

有特色的博客
2023年3月31日
了解半导体行业如何(以及为什么)正在向芯片支持的多模系统发展,我们的研究文章在麻省理工学院的技术评论见解。文章《全行业看向多晶片系统的发展》首先出现在新视野芯片设计....上
2023年3月31日
Verisium Debug平台针对可伸缩性进行了优化,支持模拟运行和仿真的调试,其中必须支持加载大型源文件和处理大量探测数据。加入这个免费的Cadence培训网络研讨会,学习如何自动化你…
2023年3月30日
您是否迫切需要一个项目经理来启动一个新项目或挽救一个正在失控的现有项目?

有特色的视频

第一个CXL 2.0 IP互操作性演示与遵从性测试

Synopsys对此

在本视频中,高级研发工程师Rehan Iqbal将指导您通过Synopsys CXL IP通过合规测试,并演示我们与Teladyne LeCroy Z516锻炼器的无缝互操作性。这个首创的互操作性演示证明了Synopsys致力于提供可靠的IP解决方案。

点击这里了解更多关于Synopsys CXL的信息

特色粉笔谈话亚博里的电子竞技

太阳能电池优化室内应用
太阳能电池技术比以往任何时候都更受欢迎,但当涉及到光伏电池技术的新应用时,我们才刚刚开始触及表面。在这一集Chalk Talk中,Ame亚博里的电子竞技lia Dalton与来自TDK的Chris Burket聊了聊光伏电池的基础知识,TDK的a-SI薄膜太阳能电池与当今市场上其他太阳能电池技术的区别,以及可以利用这种强大技术的酷炫新应用。
2022年5月26日
37657的浏览量
Baidu