50(或60)年的处理器开发……为此吗?

“邓纳德的定律和摩尔定律已经死了,现在呢?” -大卫·帕特森(David Patterson)的四幕戏剧

“我们烧毁了冲向这里的桥梁,没有其他运动迹象,除了记忆中闻到了烟雾的气味,并假设烟雾引起了眼泪。”-“罗森坎茨和吉尔登斯滕死了”,汤姆·斯托帕德的荒唐戏剧

3月15日,戴维·帕特森(David Patterson)博士向听众介绍了约200名吃比萨的工程师。 在IEEE演讲题目为“计算机体系结构的50年:从中央处理器到DNN TPU和Open RISC-V”的IEEE演讲中,医生向他们简要介绍了他们在E楼大型会议室E的大型会议室中的看台上建造计算机的历史。 这是一个随机起伏,跌落和黑洞吞没了整个建筑的故事。

Patterson基于Maurice Wilks 1951年初的微程序设计工作,于1960年代开始了具有突破性的IBM System / 360项目。 按照IT的标准,它是很久以前的。在演讲结束时,Patterson展示了一个惊人的图表。 它清楚地说明了Dennard比例定律的死与Moore定律的死是如何完全改变了计算机系统的设计方法。 最后,他解释了这些冲击的遗留技术后果。

很高兴看到真正的大师如何从事他最喜欢的工艺,而Patterson确实是计算机体系结构及其控制力方面的专家。 他从1976年开始教授该主题,并与人合着了真正的畅销书《计算机体系结构》。 约翰·轩尼诗(John Hennessy)博士的“定量方法” 。 这本书最近幸存于第六版。 因此,帕特森的成绩比马尔科姆·格拉德威尔Malcolm Gladwell)制定的10,000小时里程碑要高出一个数量级,以达到在任何学科上的精通。 它是可见的。

帕特森用75分钟的时间吸引了观众的注意力,将表演分为四幕。 就像汤姆·斯托帕德(Tom Stoppard)的荒诞戏剧“罗森坎茨和吉尔登斯滕(Desendtern)死了”一样,这个故事似乎没有任何内容-根本没有任何内容-按计划进行。


David Patterson博士于2018年3月15日在IEEE圣塔克拉拉山谷分校获得了2017年ACM图灵奖。 资料来源:史蒂夫·莱布森(Steve Leibson)

第一幕:IBM System / 360,DEC VAX和CISC Prelude


在1950年代和1960年代,使用大型机的命令集体系结构(ISA)进行了宏大的实验(当时,除大型机外,几乎没有设计任何计算机)。 几乎每个大型机都有一个“新的和改进的” ISA。 到1960年代初,只有IBM发行了四行计算机:650、701、702和1401,它们是为商业,科学和实时应用程序设计的。 它们都具有相互不兼容的命令集体系结构。 四个不兼容的ISA意味着IBM正在开发和维护四套完全独立的外围设备(磁带驱动器,磁盘/鼓驱动器和打印机),以及四套软件开发工具(汇编器,编译器,操作系统等)。 。

情况显然似乎不稳定。 因此,IBM大赌一把。 她决定为她的所有机器开发一套二进制兼容的指令。 一个与设备无关的指令集,可满足所有要求。 首席架构师Gene Amdahl和他的团队开发了System / 360架构,旨在通过8位,16位,32位和64位数据总线在从低成本到昂贵的系列产品中实现。

为了简化IBM System / 360处理器的开发,开发团队决定对难以设计的控制逻辑使用微码。 莫里斯·威尔克斯(Maurice Wilkes)于1951年发明了微码,并于1958年首次用于EDSAC 2计算机。 从某种意义上说,在启动System / 360项目时,微码已经成为一种成熟的技术。 然后他再次证明了自己的价值。

处理器微代码立即反映在大型机设计中,特别是当半导体存储芯片使摩尔定律受挫时。 大规模使用微码的最大例子也许是1977年推出的DEC VAX。 VAX 11/780是基于TTL和存储芯片的创新型微型计算机,一直是本世纪末性能的基准。

DEC工程师在汇编程序编程盛行的时候创建了ISA for VAX,部分原因是工程惯性(“我们一直这样做”),部分原因是当时基本的高级编译器生成的机器代码丢失了手写的简洁性汇编代码。 VAX ISA指令支持大量程序员友好的寻址模式,并包括执行复杂操作(如插入/删除队列和计算多项式)的单独机器指令。 VAX工程师对硬件的开发感到高兴,该软件使程序员的工作变得更轻松。 微代码使向ISA添加新指令变得容易,并且99位VAX固件控件被扩展为4096个字。

事实证明,不断扩展指令数量以简化汇编程序员的生活,这已证明是DEC VAX的真正竞争优势。 程序员喜欢使工作更轻松的计算机。 对于许多计算机历史学家来说,VAX 11/780标志着CISC处理器体系结构的诞生(带有完整的指令集)。

第二幕:随机成功和重大失败


微处理器繁荣开始时,DEC VAX 11/780小型计算机达到顶峰。 几乎所有第一个微处理器都是CISC机器,因为减轻编程器的负担仍然具有竞争优势,即使将计算机压缩为单个芯片也是如此。 英特尔的戈登·摩尔(Gordon Moore)在飞兆半导体公司提出了摩尔定律,他的任务是开发下一代ISA,以取代意外流行的8位英特尔8080/8085(和Z80)ISA。 Gordon Moore参与了非常成功的IBM System / 360项目(一个ISA管理所有事务),另一个来自DEC的CISC小型计算机的DEC系列,另一部分则尝试开发通用的指令集体系结构-单个Intel ISA可以一直使用到最后个世纪。

当时,8位微处理器在16位地址空间中运行,而新的Intel ISA指令集体系结构具有32位地址空间和内置内存保护。 她支持以一位开头的任意长度的指令。 它使用最新,最高级的语言:Ada进行编程。

该ISA被认为是Intel iAPX 432处理器的一部分,对于Intel而言,这是一个非常庞大且雄心勃勃的项目。

如果您研究“革命性的” iAPX 432的历史,您会发现它以严重的失败而告终。 IAPX 432架构所需的硬件非常复杂。 结果,该芯片的发布被大大延迟了。 (它需要6年的开发周期,直到1981年才出现。)当微处理器最终出现时,它的速度异常缓慢。

摩尔在项目开始时就意识到开发iAPX 432会花费很多时间,因此在1976年,他基于成功的8位ISA从8080的扩展,启动了一个并行项目,以开发雄心勃勃的16位微处理器,并在源代码级实现了兼容性。代码。 开发人员只有一年的时间来发布该芯片,因此他们只有三周的时间来开发ISA。 结果是至少在接下来的几十年中,采用了8086处理器和一个通用ISA。

唯一的问题是:根据英特尔内部人员的描述,8086微处理器的性能非常弱。

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

根据IBM的预测,计划销售大约250,000台IBM PC计算机。 相反,销售额超过了1亿,而Intel 8088则是随机但绝对受到冲击。

第三幕:RISC,VLIW的诞生和“ Itanika”的沉没


1974年,在第一个商用微处理器出现之后,IBM John Kok尝试开发一种用于电子电话总机的控制处理器。 他估计控制处理器需要每秒执行大约1000万条指令(MIPS)才能满足应用程序需求。 那时的微处理器要慢一个数量级,甚至IBM System / 370大型机也不适合该任务:它产生了大约2 MIPS。

因此,Kok团队在项目801的框架内,开发了一种彻底现代化的处理器体系结构,其中包括一条传送带总线和一个无需微码的快速控制电路-通过将指令数量减少到最少以简化管理成为可能。 (该机器被命名为IBM 801,因为它是在Thomas J. Watson IBM研究中心的801大楼中开发的)。 IBM 801首次实现了RISC体系结构(精简指令集)。

原型计算机801建立在小型芯片Motorola MECL 10K上,它们共同提供了15 MIPS的空前性能,很容易满足技术要求。 由于缩短的指令集对程序员而言不如CISC指令集方便,因此Coca团队不得不开发优化的编译器。 他们承担了用高级语言编写的复杂算法创建高效机器代码的额外负担。

此后,Kok被称为“ RISC之父”。 IBM从未发布过电话交换机,但801处理器不断发展,并最终成为IBM大型RISC处理器系列的基础,该系列产品广泛用于其大型机和服务器。

后来,DEC的几名工程师发现,VAX的CISC指令中约有20%占据了微码的约80%,但仅占程序总执行时间的0.2%。 这样的费用! 鉴于IBM 801项目的结果和DEC工程师的发现,可以假定CISC体系结构不是那么好。

该假设得到确认。

1984年,斯坦福大学教授约翰·轩尼诗(John Hennessey)在IEEE Transactions on Computers杂志发表了一篇具有里程碑意义的文章,题为“ VLSI处理器体系结构” ,他证明了架构和ISA在RISC上对于VLSI处理器实现的优越性。 Patterson在演讲中总结了Hennessey的证明:RISC定义上更快,因为CISC机器所需的指令周期是RISC机器的6倍。 即使CISC机器需要完成同一任务的一半指令,但RISC计算机的速度实际上比CISC快三倍。

因此,现代计算机中的x86处理器似乎只执行与CISC兼容的软件指令,但是,一旦这些指令从外部RAM进入处理器,它们就会立即被切成/切成更简单的“微命令”(如Intel称为RISC指令),然后在多个RISC管道中排队并执行。 当今的x86处理器已经变得更快,已成为RISC机器。

一些处理器体系结构开发人员已决定开发ISA,它将比RISC或CISC更好。 借助非常长的机器指令(VLIW),将许多并行操作打包成一条巨大的机器指令成为可能。 建筑师将此版本的ISA称为VLIW(超长指令字)。 VLIW机器借用了RISC操作的原理之一,委托编译器负责计划和打包从高级源代码生成的VLIW指令的机器代码。

英特尔认为VLIW架构看起来非常有吸引力-并开始开发VLIW处理器,该处理器将成为进入不可避免的即将到来的64位处理器世界的应用程序。 英特尔将其称为VLIW ISA IA-64。 像往常一样,英特尔开发了自己的术语和名称,以熟悉的术语。 在Intel Jargon中,VLIW已演变为EPIC(显式并行指令计算)。 EPIC体系结构不应基于x86指令集,部分原因是为了防止AMD复制。

后来,HP PA-RISC工程师还认为RISC的开发潜力几乎已被耗尽-他们也感染了VLIW。 1994年,惠普与英特尔合作开发了一个联合的64位VLIW / EPIC架构。 结果将称为Itanium。 目标是宣布在1998年推出第一个Itanium处理器。

但是,很快变得很清楚,开发VLIW处理器和编译器将很困难。 英特尔直到1999年才宣布名称为Itanium(Usenet中的机智立即将其称为“ Itanik”处理器),并且第一款可运行的处理器仅在2001年发布。 当英特尔宣布完成IA-64的工作时,Itanic在2017年安全地淹死了。 (请参阅“英特尔沉没了安腾处理器:也许是世界上最昂贵的失败处理器项目。”

EPIC架构也已成为史诗性的失败-来自《星球大战》的JJ Jinx的微处理器版本。 尽管一次似乎是个好主意。

Patterson说,Itanium,EPIC和VLIW处理器因多种原因而死亡。

  • 不可预测的分支使并行操作的规划和打包复杂化为VLIW命令字。
  • 不可预测的缓存未命中会减慢执行速度,并导致可变的执行延迟。
  • VLIW指令集增加了代码量。
  • 事实证明,为VLIW机器创建好的优化编译器太困难了。

也许世界上最著名的计算机算法专家Donald Knuth指出:“ Itanium方法似乎很棒-直到事实证明所需的编译器基本上是不可能编写的。”

编译器似乎对像RISC这样的简单体系结构做得更好。

VLIW架构没有制造通用微处理器。 但是后来他们仍然找到了自己的呼唤,这使我们进入了戏剧的第四幕。

第四幕:丹纳德的定律和摩尔定律已死,但DSA,TPU和Open RISC-V仍然有效


在汤姆·斯托帕德(Tom Stoppard)的剧本中,罗森克兰兹(Rosencrantz)和吉尔登斯特恩(Guildenstern)已死,从莎士比亚的《哈姆雷特》(Hamlet)抢夺的两个微不足道的角色终于在上一幕的结尾明白了他们在整个剧中都死了。 在处理器历史的最后一幕中,Patterson因Dennard的定标律​​和Moore律而死。 这是轩尼诗和帕特森(Hennessey and Patterson)最新版的绘画,以图形方式显示了整个故事:


资料来源:John Hennessey和David Patterson,“计算机体系结构。 定量方法”,第6版。 2018年

该图显示,从1986年到2004年,RISC微处理器根据摩尔定律(每轮新工艺技术的晶体管数量增加了两倍)和Dennard缩放定律(速度提高了一倍,每个晶体管的功耗降低了两倍),在1986年至2004年间提供了近二十年的快速生产率增长。工艺技术的每个新分支)。 然后,丹纳德的缩放定律死了-各个处理器停止加速。 晶体管的能量消耗在每个阶段也不再减半。

业界通过完全依靠摩尔定律使晶体管数量增加一倍来弥补这一点,并迅速增加了芯片上的处理器数量,从而进入了多核时代。 在这个时代(不到10年),在Amdahl的法律生效之前,生产率的倍增间隔从1.5年增加到3.5年(措辞为“在每个应用程序中对并行性的利用有限”)。 很少有应用程序可以完全加载数十个处理器。

然后,摩尔定律也消失了。

根据Patterson的说法,结果是,自2015年以来,处理器性能的增长已降至每年可忽略的3%。 摩尔定律加倍现在发生在1.5年甚至3.5年内。 现在已经二十岁了

游戏结束了吗? “不,”帕特森说。 在处理器体系结构中,您可以尝试一些更有趣的事情。

一个示例:域特定体系结构(DSA)是经过特殊设计的处理器,它们试图加快特定应用程序的少量任务的执行速度。 VLIW体系结构不适合通用处理器,但对于分支少得多的DSP应用来说却很有意义。 另一个示例:Google TPU(张量处理单元),在单个芯片上使用65 536个单位的乘法加法(MAC)来加速DNN(深度神经网络)的执行。

事实证明,降低精度的矩阵计算是实现真正快速DNN的关键。 Google TPU中的65,536个八位MAC块以700 MHz的速度运行,并提供92 TOPS(每秒的操作数)性能。 这比服务器CPU快30倍,比GPU快15倍。与服务器CPU或GPU相比,将28纳米TPU中的功耗乘以一半-分别在能源/功耗方面获得60倍和30倍的优势。

碰巧的是,大卫·帕特森(David Patterson)教授在加州大学伯克利分校任教40年后,最近辞职。现在,他在Google担任TPU开发项目的“紧急工程师”职位。

Patterson说,另一个有趣的事情是创建了开源ISA架构。之前的尝试(包括OpenRISCOpenSPARC)并未取得成功,但是Patterson谈到了一种全新的开源ISA-这是RISC-V他在伯克利帮助开发。帕特森说,看一下SoC,您将看到许多具有不同ISA的处理器。 “为什么?”他问一个问题。

为什么我们需要一个通用ISA,另一个用于图像处理的ISA,以及一个用于视频处理的ISA,用于音频处理的ISA和单个芯片上的ISA DSP?为什么不制作仅一个或多个可用于特定应用程序的简单ISA(以及一套软件开发工具)?为什么不使ISA开放源代码,以便每个人都可以免费使用和改进此体系结构? Patterson对这些问题的唯一答案是RISC-V ISA。

刚刚成立的RISC-V基金会与成功的Linux Foundation类似。它已经包括100多家公司,他负责RISC-V ISA的标准化工作。基金的使命是为RISC-V ISA的实施及其未来发展做出贡献。碰巧的是,“退休”的大卫·帕特森博士是RISC-V基金会的副主席。

像Rosencrantz和Guildenstern一样,丹纳德的缩放定律和摩尔定律在帕特森(Patterson)历史剧的结尾时就死定了,但是计算机体系结构中有趣的事件才刚刚开始。

该剧说:“没有什么比令人信服的死亡更具说服力了。”

结束语:3月21日,在IEEE演讲后仅一周,计算机技术协会(ACM)就授予Patterson和Hennessy对计算机体系结构的贡献,并授予其2017年ACM Turing奖 “以创新,系统,计算方法设计和评估计算机体系结构,对微处理器行业的持久影响。”

Source: https://habr.com/ru/post/zh-CN411989/


All Articles