两大图灵奖得主力作:计算机架构的新黄金时代

b713ed6bd34fb2eb6dc4afd800d09dc7.png

来源|Communications of ACM

撰文|John L. Hennessy, David A. Patterson

编译|机器之心

John Hennessy 和 David Patterson 是 2017 年图灵奖获得者,目前这两位学者都供职于谷歌,前者是谷歌母公司 Alphabet 的董事会主席,后者任谷歌杰出工程师,致力于研究机器学习和人工智能。他们更为人所知的就是共同完成的计算机系统结构学科「圣经」《计算机体系结构:量化研究方法》了。

本文《计算机架构的新黄金时代》是两人于 2019 年新发表的文章,完整介绍了计算机芯片的发展历程,以及所有架构的未来趋势,值得所有希望了解硬件架构的人阅读。

4fb22441edc63047b5f169ec17fa726c.png

图注:2019 年 2 月刊发

2018 年 6 月 4 日,我们做的图灵讲座(Turing Lecture)是以回顾自 20 世纪 60 年代以来计算机架构的发展开头的。除了那个回顾,我们还在讲座中介绍了当前的难题和未来机遇。我们还预测未来十年计算机架构领域将迎来下一个黄金时代,就像 20 世纪 80 年代我们所开展的那些帮助我们获得图灵奖的研究一样——必将改善计算机的成本、能源、安全以及性能。

「不能铭记过去的人注定要重蹈覆辙。」——George Santayana,1905

f438ed7553221abced083769f3f490fc.png

软件与硬件是通过一个叫指令集架构(Instruction Set Architecture, ISA)的词汇表进行对话的。在 1960 年代早期,IBM 有四个互不兼容的计算机产品线,每个都有自己的 ISA、软件堆栈、I/O 系统和利基市场(分别针对的是小型企业、大型企业、科研和实时应用)。包括 ACM 图灵奖获得者 Fred Brooks, Jr. 在内的 IBM 工程师都认为他们可以创造一种能有效统一所有这四种 ISA 基础的单个 ISA。

他们需要一种技术解决方案,让便宜的 8 位数据通路计算机与高速的 64 位数据通路计算机都能共用一个 ISA。这些数据通路是处理器的「身体」,它们在其中执行算术运算但相对而言较容易「变宽」或「变窄」。对于那时以及现在的计算机设计者来说,最大的难题是处理器的「大脑」——控制硬件。受软件编程的启发,计算先驱和图灵奖获得者 Maurice Wilkes 提出了简化控制的方法。控制可被描述为一个二维数组,他称之为「控制存储器(control store)」。这个数组的每一列都对应于一条控制线,每一行都是一个微指令(microinstruction),而编写微指令则被称为微编程(microprogramming)。一个控制存储器包含一个用微指令编写的 ISA 解释器,所以执行一个常规指令需要多个微指令。这种控制存储器是通过内存实现的,成本比逻辑门要低得多。

表 1 列出了 IBM 在 1964 年 4 月 7 日宣布的新 System/360 ISA 的 4 种型号。数据通路的变化范围有 8 倍,内存容量的变化范围有 16 倍,时钟频率是 4 倍,性能是 50 倍,成本接近 6 倍。成本最高的计算机的控制存储器最宽,因为更复杂的数据通路使用更多控制线。成本最低的计算机因为硬件更简单而有更窄的控制存储器,但因为它们需要更多时钟周期来执行一个 System/360 指令,所以需要更多微指令。

37b39e57ac4ede4dcbbd20e27ca28b88.png

表 1:IBM System/360 系列四个型号的特性;IPS 表示每秒执行指令数。

在微编程的推动下,IBM 将公司的未来押在了这款新 ISA 上,寄希望其能革新计算行业,为 IBM 赢得回报。IBM 成功主宰了这一市场,IBM 计算机家族的大型机后裔在推出 55 年后仍然每年创造着 100 亿美元的收入。

正如我们反复看到的那样,尽管市场并不是评判各种技术问题的完美裁判,但鉴于架构和商业计算机之间联系紧密,市场才能最终决定那些往往需要大量工程投入的架构创新是否成功。

集成电路,CISC,432,8086,IBM PC

当计算机开始使用集成电路时,摩尔定律意味着控制存储器可以变大很多。更大的内存反过来又意味着允许使用更复杂的 ISA。要知道,数字设备公司(Digital Equipment Corp.)在 1977 年推出的 VAX-11/780 的控制存储器为 5120 字×96 位,而其前一代仅有 256 字× 56 位。

某些制造商选择开放微编程功能,让选定的客户能添加定制功能,他们称之为「可写控制存储器(WCS)」。最有名的 WCS 计算机是 Alto,这是图灵奖得主 Chuck Thacker 和 Butler Lampson 及其同事于 1973 年一起为施乐(Xerox)帕洛阿托研究中心开发的。这实际上是第一款个人计算机(PC),配备有首款位映像显示器(bit-mapped display)和首个以太网局域网。用于这种全新显示器和网络的设备控制器是存储在一个 4096 字×32 位 WCS 中的微程序。

1970 年代的微处理器(比如英特尔的 8080)仍处于 8 位时代,主要依靠汇编语言编写程序。互相竞争的设计者会通过添加新的指令来赶超彼此,他们会通过汇编语言示例来展示自己的优势。

戈登·摩尔(Gordon Moore)相信英特尔的下一代 ISA 将会伴随英特尔的一生,因此他聘用了很多聪明的计算机科学博士,并将他们送到波特兰去发明出色的下一代 ISA。英特尔最早命名为 8800 的计算机架构项目雄心勃勃——放在任何时代而言都称得上如此,显然也是 1980 年代最有野心的。它有基于 32 位的寻址能力、面向对象的架构、位长可变的指令以及用时新的编程语言 Ada 编写的自己的操作传统。

可惜这个雄心勃勃的项目几年之后停摆了,迫使英特尔在圣克拉拉开始了一项紧急替换工作,在 1979 年推出了一款 16 位微处理器。英特尔给了新团队 52 周时间来开发新的「8086」ISA 以及设计和构建芯片。鉴于日程紧迫,这个团队实际上是把 8080 的 8 位寄存器和指令集扩展成了 16 位,最后在 3 个常规工作周内只用了10人周的工作量就完成了这款 ISA 的设计。这个团队按时完成了 8086 的开发,但在发布时却没引起什么关注。

英特尔非常幸运,IBM 当时正在开发一款个人计算机来与 Apple II 竞争,并需要一款 16 位微处理器。IBM 之前感兴趣的是 Motorola 68000,其 ISA 与 IBM 360 类似,但却落后于 IBM 激进的计划。IBM 转而使用 8086 的 8 位总线版本。IBM 在 1981 年 8 月 12 日推出了这款 PC,希望到 1986 年时能售出 25 万台。而实际上该公司在全球售出了 1 亿台,为这款紧急代换的英特尔 ISA 铺垫了一个非常光明的未来。

英特尔原本的 8800 项目更名了为 iAPX-432,并最终在 1981 年推出,但它需要多块芯片并且存在严重的性能问题。该项目在 1986 年被再次终止,这一年,英特尔在 80386 中对 16 位 8086 ISA 进行了扩展,将其寄存器从 16 位扩展到了 32 位。因此,摩尔的预测就是正确的了——下一代 ISA 确实会和英特尔一样长寿,但市场选择了紧急代换的 8086,而不是专门精心开发的 432。正如 Motorola 68000 和 iAPX-432 两者的设计师都学到的那样:市场往往缺乏耐心。

从复杂指令集到精简指令集计算机

1980 年代早期,人们对更大型控制存储器中大型微程序使用的复杂指令集计算机(CISC)进行了一些研究。Unix 表明即使操作系统也可以使用高级语言编写,关键问题随之变成了「编译器会生成什么指令?」,而不是「编程者会使用什么汇编语言?」。硬件/软件接口的显著改进为架构创新带来了机会。

图灵奖得主 John Cocke 与其同事为小型计算机开发了更简单的 ISA 和编译器。作为实验,他们将自己研究的编译器的目标重新设定为:仅使用 IBM 360 ISA 中简单的 register-register 操作和 load-store 数据传输,避免更复杂的指令。他们发现使用这个简单的子集时,程序运行速度可快达三倍。Emer 和 Clark 发现 VAX 指令中 20% 的指令需要 60% 的微代码(microcode),但这些指令仅在实际执行中占据 0.2% 的时间。

David Patterson 把在 DEC 的一次学术休假投入到了研究减少 VAX 指令中的漏

  • 13
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值