20 世纪 80 年代中期一个漆黑寒冷的夜晚,一位年轻的学生穿过英国剑桥古老的街道,来到一座维多利亚时代的演讲厅。一进大楼,他就和其他几十名学生一起听了一场关于新电脑硬件的演讲。
本文引用地址:发表演讲的人为 BBC 微型计算机的制造商 Acorn Computers 工作。他的演讲令人吃惊。Acorn 需要更换 BBC micro 中使用的老化的 8 位 6502 微处理器。他们看过英特尔和摩托罗拉等美国公司的新设计,但并不喜欢,所以他们自己设计了一个新处理器。
对于一家没有经验的公司来说,从头开始设计微处理器似乎很大胆。接下来的事情更加引人注目。Acorn 设计的芯片是 32 位的,而不像竞争对手那样是 16 位的。它不仅速度更快,而且耗电量也少得多。
那个学生就是我。新的微处理器是第一台 Acorn RISC 机器,这是我们现在称为 的一系列设计中的第一个。那天晚上有很多事情我的记忆已经消失了。我认为主持人是 Steve Furber,但我有点不确定。我不相信那天晚上有新系统的演示。我确实记得对 Acorn 的新微处理器感到惊讶、印象深刻并且有些怀疑。
快进将近四十年,我们现在已经不知道故事是如何发生的,而 处理器设计现已用于全球数千亿台设备。
在本系列文章中,我将重温 的故事,从它在 Acorn 中的起源开始。因为有很多关于这个故事的优秀和广泛的描述,所以最初我有点不愿意写 Arm 的早期故事,但最后我觉得这个故事的有几个方面值得更多关注。但最后我觉得这个故事的几个方面值得更多关注。我希望,即使您熟悉 Arm 的故事,您也会发现一些新的兴趣点。
在这一系列的故事中,我们将寻求回答一个简单的问题。为什么这种来自一家最终失败的小型英国公司的架构变得如此重要,并且能够在更大的竞争中生存和繁荣?
那么,让我们一起穿越到70年代后期英国古老的大学城剑桥。
剑桥处理器单元
这一切都始于克莱夫·辛克莱 (Clive Sinclair):一位富有远见、热衷于发明新玩意儿的发明家,同时也是一位成功的商人。
辛克莱在 1960 年代初期开始了他的职业生涯,为电子爱好者撰写技术指南。他很快开始销售各种电子产品,从收音机到计算器,再到数字手表。
1978 年,辛克莱与一个员工克里斯·库里(Chris Curry) 合作,推出了基于 National Semiconductor SC/MP 8 位微处理器的计算机套件 MK14。当辛克莱不愿进一步开发 MK14 时,库里与大学物理学研究生赫尔曼·豪瑟合作,后者也对 MK14 产生了兴趣。
豪瑟出生于奥地利,在离开去剑桥攻读博士学位之前,他在维也纳获得了第一个学位。豪瑟遇到了克里斯·库里,后者分享了他对微处理器的热情,并说服这位奥地利人与他一起创办一家公司,以制造基于微处理器的产品。
新公司最初被称为(有点像预言)Cambridge Processor Unit Limited(或 CPU Ltd)。他们还需要一个商标名称,并希望这个名称能够让他们在广告和电话通讯录中领先于 Apple。Acorn 似乎适合一家想要发展壮大的公司,因此“Acorn Computers”诞生了。
1980 年代,赫尔曼·豪瑟 (Hermann Hauser) 和克里斯·库里 (Chris Curry) 在剑桥国王学院的操场
剑桥大学计算机实验室的安迪·霍珀(Andy Hopper)很快加入了库里和豪瑟的行列,收购了他的公司 Orbis,该公司当时正在将 Cambridge Ring 网络系统(早期的专有以太网竞争对手)商业化。霍珀成为 CPU / Acorn 的董事,同时继续他在大学的工作。
很快,他们雇用了大学里的几个聪明的年轻学生,史蒂夫·弗伯和索菲·威尔逊。弗伯来自英国曼彻斯特,正在攻读空气动力学博士学位。他加入了剑桥大学微处理器组,这个协会主要为了喜欢制造计算机的人而设,并且已经使用 Signetics 2650 微处理器制造了一台机器。当初,参加了协会的会议,并且邀请史蒂夫·弗伯来担任兼职。
威尔逊也来自英格兰北部,在约克郡的利兹长大。豪瑟通过剑桥大学微处理器小组认识了他,因为他在低功耗电子领域具有专业知识,因为豪瑟想要制造一个“电子钱包”,现在被称为“个人数字助理”。威尔逊分享了她一直在研究的其他设计,包括基于单板微处理器的计算机。很快,威尔逊在完成大学学位的同时也为 Acorn 工作。
带有 Acorn 标志的 Acorn System 1
他们一起将威尔逊的单板设计开发为 Acorn System 1。随后是 Acorn System 2 和 Acorn Atom,这次是一个带键盘的完整系统,所有这些都基于 MOS Technology 6502 微处理器。
然后在 1981 年,BBC 开始寻找微型计算机设计来配合新的电视剧。BBC 已经通过其 1978 年首次播出的节目“Now the chips are down”开始了一场关于计算影响的全国性辩论。现在,在英国政府的支持下,BBC 的新系列节目将重点关注计算机知识。Acorn 出价,提出了团队在几天内完成的设计,与其他几家公司竞争,包括库里的前任老板 Clive Sinclair 的 Sinclair Research。Acorn 赢了,Sinclair 很生气,很快就推出了他自己的 ZX Spectrum,虽然不那么复杂,但价格便宜得多。
BBC 竞赛的获胜者,最初在 Acorn 中被称为“Proton”,后来成为“BBC Micro”或亲切地称为“Beeb”。Acorn 和 Sinclair 机器很快在英国个人电脑市场上大获成功,BBC Micro 在学校处于领先地位,而 ZX Spectrum 在家庭中处于领先地位。Acorn 非常成功,以至于到 1983 年 9 月,该公司能够在伦敦证券交易所上市,市值超过 1 亿英镑。
6502 的继任者
BBC Micro 于 1981 年底推出,但不久之后弗伯和威尔逊意识到他们将面临更新设计的问题。它使用的 6502 微处理器于 1975 年首次推出,现在已经老化,没有明显的继任者。到那时,英特尔、摩托罗拉和国家半导体等公司出现了更为复杂的 16 位设计。
Acorn 团队观察了这些新出现的 16 位微处理器的性能,并没有留下深刻印象。BBC Micro 能够通过所谓的“Tube”接口添加“第二个处理器”。这使团队能够快速构建电路板以支持不同的处理器,同时仍然使用 BBC Micro 进行输入和输出。该团队比较了 6502、摩托罗拉 68000、英特尔 80186 和美国国家半导体 32016 的性能,并对新设计的糟糕性能感到惊讶。引用 Steve弗伯的话来说:
“我们已经形成了一个坚定的观点,即计算机性能的主要决定因素是可以访问处理器的内存带宽。理论上 32016 有一个很好的指令集,而 6502 有一个原始的指令集,但如果你看一下性能,你会发现它只是随带宽缩放。16 位微处理器无法使用人们放入这些机器的内存中可用的带宽。”
因此,他们得出结论,这些新的微处理器因浪费了他们使用的商用动态随机存取存储器芯片可用的存储器带宽而受到阻碍。他们对新处理器响应中断的速度也很不满意,这比他们从 6502 上获得的性能还差。
输入 RISC
安迪·霍珀已经意识到美国正在对一种新的处理器设计方法进行研究,并反过来向豪瑟介绍了这些想法。一天,豪瑟将一篇关于该主题的学术论文放在了史蒂夫·弗伯的办公桌上。该论文讨论了加州大学伯克利分校正在开发的称为“精简指令集计算机”的概念。很快,Acorn 团队就阅读了伯克利的 RISC-1 处理器以及斯坦福的 IBM 801 和 MIPS 等类似设计的论文。
他们对论文中提出的方法很感兴趣,尤其是 RISC-1 论文描述了一个由一小组研究生开发的微处理器。于是史蒂夫弗伯和威尔逊开始开玩笑说也许他们可以制造自己的微处理器。1983 年夏天,威尔逊开始草拟一个可能的 RISC 指令集。
接下来他们着手寻找更多关于微处理器设计的信息。他们前往以色列访问 National Semiconductor,与开发 32016 的团队交谈。在那里,他们对构建这种复杂 CPU 的大型团队正在进行设计的修订版 H 并且仍在修复错误(并且需要花费直到修订版 K 左右,直到这些错误被修复)。
他们还前往亚利桑那州,在那里 6502 的原始设计师之一 Bill Mensch 建立了西部设计中心,并正在设计他自己的 6502 扩展版本。期望找到另一座拥有数百名工程师的大型办公楼,他们相反,他找到了郊区的平房,而 Mensch 正在雇用使用 Apple II 计算机的学生来帮助设计。
通过美国大学或小型商业团队设计的架构示例,他们开始认为也许他们真的可以构建自己的架构。因此在 1983 年 10 月,Acorn 团队开始认真地开发新的微处理器。
除了芯片设计团队,没有时间也没有资源
豪瑟后来开玩笑说,他给了团队两件别人不会给他们的团队的东西:“没有时间,也没有资源”。这不完全是真的,他给了他们一个半导体设计团队!
Acorn 并不是半导体设计的新手:BBC Micro 包含两个由 Acorn 设计的芯片。英国半导体制造商 Ferranti 提供了一种名为“Uncommitted Logic Array”(或 ULA)的产品,其中包含许多逻辑门,但允许公司通过指定最终金属层进行定制。BBC Micro 使用 ULA 进行视频和串行处理,以及链接到任何第二个处理器。
豪瑟创造了一个说法,“未来将有两种类型的计算机公司,一种是具有硅设计能力的,另一种是已经死亡的。” 因此,在霍珀的鼓励下,豪瑟招募了一个规模虽小(大约十几人)但能力出众的硅设计团队。
Acorn 随后与圣何塞公司 VLSI Technology合作。VLSI(可以恰当地称为 Fairchildren 之一,因为其中三位创始人以前曾在 Fairchild 工作)根据合同制造半导体以及集成电路设计工具。客户可以使用这些工具来创建 VLSI 随后构建的设计。
与 Acorn 的合作并不是 VLSI Technology 第一次与计算机制造商合作。1982 年,史蒂夫·乔布斯 (Steve Jobs) 接洽他们,为乔布斯计划中的 Macintosh 计算机设计和制造定制集成电路。VLSI 技术团队迅速交付了一个工作原型,以 Apple 工程师 Burrell Smith 的名字命名为 Integrated Burrell Machine,但其性能令人失望,因此并未在 Mac 中使用。
Acorn 设计团队使用 VLSI Technology 的软件安装在昂贵的、由摩托罗拉 68000 驱动的 Apollo 工作站上。
因此,有了“免费”的 VLSI 设计团队,豪瑟和弗伯开始着手构建他们的微处理器。该指令集由威尔逊设计,作为第一步,他为 Basic 中的设计构建了一个仿真器,该仿真器在具有 6502 第二处理器的 BBC Micro 上运行。弗伯反过来采用了这个初始的指令集架构设计并开发了一个微架构来实现它,两者一起工作以随着项目的开发改进架构。
弗伯和威尔逊的方法是务实的。他们在其他 RISC 设计中采用了他们喜欢的东西,并省略了他们不喜欢的东西或者他们无法解决如何有效实现的东西。Arm 的设计并不是他们在伯克利、斯坦福或 IBM 论文中看到的方法的直接复制。相反,他们采用了通用的 RISC 方法,并对其进行了调整,添加了 Acorn 团队知道有用的功能。
在整个过程中,Acorn 团队并不相信新设计会成功。一方面,他们认为 RISC 显然是一个好主意,以至于一家更大的公司会采用它并用另一种基于 RISC 的设计来主导市场。另一方面,他们预计微处理器设计中一定有一些他们错过的问题,并且会导致项目失败。
ARM 1 指令集
威尔逊和弗伯谈到了指令集和微架构设计之间的紧张关系。有些东西威尔逊可能希望包括在内,但与微体系结构不协调。在指令集的开发过程中,威尔逊、弗伯和豪瑟会在午餐时间前往当地的酒吧,讨论和辩论设计的最新问题。
他们开发的设计的三个特点脱颖而出。首先,他们凭借全 32 位设计超越了当时的许多竞争处理器。其次,他们专注于充分利用(非多路复用的)三十二位数据总线可以提供的内存带宽。最后,新处理器的寻址范围很大,基于 26 位地址,因此允许高达 64 兆字节的内存,远远超过当时计算机设计的典型容量。
他们提出的设计的其他主要特点包括:
十六个 32 位用户可寻址寄存器(R0-R15 和 R15 是一个巧妙组合的程序计数器和标志寄存器)。
另外八个 32 位寄存器可在管理员模式下访问,有助于支持对中断的快速响应。
一个简单的三级指令流水线。
指令集保持简单,符合 RISC 概念。只有 45 条指令具有五种不同的寻址模式。
“加载-存储”架构,数据处理操作仅在寄存器上执行,而不在内存位置上执行。
在为新设计取名字时,考虑到它使用了 RISC 概念,“ Acorn RISC MachineAcorn RISC Machine ”是显而易见的选择,它当然自然地缩写为 ARM。
新的 ARM 处理器以 6MHz 运行——低于 80286 或 68000 等竞争产品——但更高的内存带宽和流水线执行足以弥补较慢的时钟速度。该团队甚至通过使用“页面模式”周期来提取更多带宽,从而加快单页内的连续内存访问,而廉价的动态 RAM 现在可以提供这种访问。
不过,威尔逊为 ISA 添加了一些新颖的功能。大多数指令都有条件执行选项,这意味着它们将根据特定标志的状态执行或跳过。
该架构还包括一个“桶形移位器”。到目前为止,威尔逊和弗伯已经看到了 Apple Lisa(1983 年 1 月推出)和 Macintosh(1984 年 1 月推出),并且知道图形用户界面 (GUI) 可能是未来前沿机器的关键要求。桶形移位器将使新的 Acorn 设计能够更轻松地处理 GUI 软件所需的操作。威尔逊和弗伯对桶形移位器的重视可以从以下事实推断出来:实现它的电路占据了大约 10% 的硅芯片。
下图演示了如何对所有(寄存器到寄存器)“数据处理”指令进行编码。左表显示了如何将指令编码为 32 位指令,右表是一个示例指令。
这条指令中包含了很多内容。它仅在“负”标志清零时执行,并对其中一个操作数执行 4 位逻辑移位。尽管如此,ARM 1 仍可以在每个时钟周期执行这些指令之一。
即使与 6502 等 8 位设计相比,该指令集也非常“规则”。以至于我认为这很简单,不仅要记住完整的指令集,而且还要记住所有指令的编码,这对于英特尔 80286 来说会更难。值得注意的是,ARM 1 指令集是由具有丰富的汇编语言编程经验的人设计的,并没有明确设计为编译器的目标,就像这种情况一样,例如,对于 IBM 801。
该设计没有浮点运算,甚至没有整数乘法或除法,也没有内存管理硬件,目的是在额外的支持芯片中提供这些功能。没有缓存,因为内存仍然足够快以保持处理器以全时钟速度运行。
ARM 设计通常遵循 Berkeley 和其他论文中阐明的广泛 RISC 原则,但有些指令显然与 RISC 不同。尽管该设计遵循“加载-存储”架构,无法将内存访问与数据操作结合起来,但它确实有单独的指令来指定多个寄存器加载或存储。
总的来说,设计仍然非常简单。在大多数方面,它是迄今为止设计的最简单的 RISC 芯片。Berkeley RISC-1 是 Berkeley RISC 项目中出现的第一个处理器设计,它使用了 44,500 个晶体管并具有 78 个 32 位寄存器和六个 14 位寄存器“窗口”。MIPS R-2000 基于斯坦福大学的工作并于 1986 年推出,使用了 110,000 个晶体管。相比之下,第一个 ARM 微处理器使用了不到 25,000 个晶体管。
第一批流片
弗伯前往德国慕尼黑的 VLSI 进行一些最终测试,然后在 1985 年 1 月将完成的设计“流片”。第一批芯片于 1985 年 4 月 26 日从 VLSI 运抵,大约在设计工作开始后 18 个月。
该团队将芯片插入他们为其设计的电路板,并通过“管”接口连接到 BBC 微型计算机,但是没有反应。豪瑟让团队的其他成员解决问题,两个小时后,他被叫回现场,因为系统已经开始工作了。一个简单的 BASIC 程序已经在屏幕上写了一条“Hello World”消息。
因此,新的 CPU、电路板和 Sophie威尔逊的 BBC BASIC 的新版本——用汇编语言手动编写——为新架构首次工作。
一件值得注意的事,豪瑟团队希望通过使用成本为几美分的塑料封装而不是成本为几美元的陶瓷封装来降低成本,构建一种低功耗设计、低成本的芯片。尽管他们打算将其用于台式机,团队的目标还是芯片功耗低于一瓦。但是由于缺乏精确估算功耗的工具,他们犯了错误。
芯片从 VLSI 运抵几天后,弗伯决定测试功耗情况。尽管 CPU 正在工作。他将电流表连接到 CPU后,他还是惊讶地看到读数为零。经过一番调查,他发现由通过其他引脚泄漏的电流供电的, CPU 电源引脚已断开连接。事实证明,新的微处理器只用了十分之一瓦特,比他们一直设定的目标好十倍左右。
较低的功耗几乎完全归功于设计的简单性。正如史蒂夫·弗伯 (Steve Furber) 后来所说的那样,“除了简单之外,低功耗特性并不神奇”。
较低的功耗并没有以牺牲性能为代价。最初打算以大约 1.5 倍的 VAX 11/780 性能执行,原型最终实现了 DEC VAX 11/780 的 2 到 4 倍的性能;这大约相当于原来基于 IBM 80286 的 PC AT 或以 16.67 MHz 运行的摩托罗拉 68020 的 10 倍。
Acorn 处理器比当时的一些替代 RISC 设计(例如 MIPS R2000)慢,但制造成本要低得多。
与Intel于1985年推出的80386形成鲜明对比。80386 使用了 275,000 个晶体管,但与英特尔 80386 的 1.5 µm 相比,新的 Acorn 处理器在使用保守的 3 µm 工艺时使用了不到十分之一的晶体管,性能优于它。
威尔逊曾表示,该项目的灵感来自于“MIPS for the mass”的口号。他们设计了一种可以低成本制造的强大处理器。该团队和 RISC 概念已得到证实。
Acorn遇到麻烦
与此同时,Acorn 的业务开始分崩离析。
1982 年,由于与克里斯·库里的前任老板 Clive Sinclair 的持续竞争,Acorn 设计了一款机器,可以在蓬勃发展的家用电脑市场上与 Sinclair Spectrum 竞争。Spectrum 使用 Ferranti ULA 来大幅降低成本,因此 Acorn 也采用了类似的方法。一开始,弗伯和其他 Acorn 工程师并不同意:“我们并没有那么热衷于进行这种降低成本的活动,但最终我们被克里斯和赫尔曼说服了,认为市场是存在的。”
结果是 Acorn Electron(也称为“Elk”),一种基于 6502 的主要 BBC Micro 兼容机器,它再次使用 Ferranti ULA(这次有 2400 个逻辑门——比之前使用的大得多)来缩小BBC 机器中使用的集成电路数量从 100 多个增加到大约 12 个。
Electron 的存在很快就广为人知,因为库里和豪瑟在媒体上谈论它。但是机器一再被推迟,因为弗伯和他的团队正在努力解决 ULA 的问题。
当 Electron 在 1983 年晚些时候推出时,它获得了普遍正面的评价,除了一个缺点:与 BBC Micro 相比它非常慢,部分原因是该机器的内存带宽较差。
Keith 和 Steven Brain 在流行计算周刊上写到:“Electron 的一个主要特型是 RAM 的组织方式。为了经济起见,Electron使用了四个 64Kb RAM 芯片,但由于这些芯片一次只能读取四位,内存访问时间实际上翻了一番,因此 Electron 比 BBC 慢得多。”
但是,提高 Electron 的产量也存在问题。Ferranti 一直在努力生产足够的工作 ULA,并在 1984 年 Acorn 委托 VLSI Technology 制作了 CMOS 版本的电路。然而,到 1984 年英国的家用电脑市场急剧萎缩。
Acorn 剩下 4300 万英镑的不可出售股票。Acorn 还曾试图打入美国的计算机市场,但最终以彻底失败告终。它在 1983 年的最后六个月赚取了超过 500 万英镑的利润,但在 1984 年下半年变成了近 1100 万英镑的亏损。
1985 年 2 月,该公司不得不寻求财务帮助,它以意大利公司 Olivetti 的形式出现,该公司投资超过 1000 万英镑,以换取公司将近一半的股份。豪瑟和库里持有大量股份,但失去了对公司的控制权。
Acorn RISC 机器揭晓
新微处理器的开发一直是一个严密保守的秘密。最令人惊讶的是,在他们就购买 Acorn 的股份进行谈判时,甚至对 Olivetti 也保密。不过,现在机器开始工作了,关于 Acorn 新处理器的消息逐渐传遍了全世界。
当弗伯于 1985 年 7 月打电话给记者,向他们介绍新的微处理器时,他感到难以置信。后来,1985 年 11 月版的英国最受欢迎的计算机杂志《个人计算机世界》以“新机器的灵魂”为标题,以新处理器作为封面。Acorn 新处理器的秘密揭晓。在内部,该杂志以“RISCy 业务”字样开头。精简指令集处理器 (RISC) 时代已经开始……”
在大西洋彼岸,Byte 杂志于 1986 年 1 月跟进,在第 387 页发表了一篇报道。对新微处理器的详细描述以:“它代表了 RISC philosophy在性能、开发时间以及它的易用性和低制造成本方面的惊人证明。”
首批ARM微处理器用于BBC Micro二代处理器评估系统。一个奶油色的“奶酪楔”形盒子,附在 BBC Micro 上并标有“Acorn”。ARM 评估系统包含一个 ARM 微处理器和 1 兆字节的动态随机存取存储器。它还为这种新机器提供了一系列令人印象深刻的编程语言:Sophie Willson 的 BBC Basic、C、Fortran、LISP、汇编程序甚至 PROLOG。
ARM 1 CPU带有 ARM 1 CPU 的 Acorn 评估系统电路板
这是第一次有人可以购买 RISC 处理器。ARM1 是第一个商用 RISC 处理器。ARM 评估系统现在是 Acorn 团队可用的最快的机器,因此成为该团队用来设计 ARM 微处理器及其后续产品的芯片的工具之一。现在的问题是,现在控制着 Acorn 的 Olivetti 将如何使用他们在不知不觉中获得的技术。
我们将在本系列的第二部分中了解接下来发生的事情。
Chip Letter网站上作者Babbage发布了关于ARM的早期故事,详细描述了ARM企业成长初期的历程,半导体产业纵横进行不改变文意的编译整理,以飨读者。