1985年4月27日,第一个Arm微处理器被成功点亮,至今已经36周年。
在此,转载一篇机器之心编译的关于ARM起源史的文章。
第一颗Arm芯片
作者:JASON TORCHINSKY 机器之心编译 编辑:Panda、蛋酱
苹果 M1 芯片性能强大,展现了 ARM 处理器在桌面计算机市场的巨大潜力,而在此之前,ARM 早已成为智能手机市场的绝对霸主。这种已然控制世界的芯片究竟诞生自何处?说起来你可能不信,故事要从一档电视节目讲起。
2020 这一年的大部分时间,都有是新闻和悲惨事件在无情地打击着我们,让人感觉无法继续。但大部分人还是坚持了下来,而我们做到这一点的方式是使用我们随时随身携带的小型手持式计算机。目前,我们仍然将这种设备称为「phone(电话)」,这其实是一种简化得可笑的名称。
幸运的是,在我们这些不断刷坏新闻的人的眼前,有一个振奋人心的故事:用来刷这些新闻的手机,以及我们相当多的数字活动都发生在同一种装置上,即 ARM 系列 CPU。随着苹果公司推出基于全新 M1 CPU(ARM 架构处理器)的 Mac 系列产品并广受好评,现在是时候谈谈这些已然控制世界的芯片的来源了。
如果你正在写一部基于现实故事的剧本,由于某某原因,你必须说明大多数手机、游戏机、ATM 和无数其它设备中最常用的中央处理器是什么,而你必须从当前的主要生产商(比如英特尔)中选择一个。在你描绘的世界中书写这类事物是合理且适宜的,因为人们能够理解。如果某个行业巨头已经确立市场主导地位,那么将其写入故事就不会让看故事的人感到怪异或生疏。
但是,如果你决定将这些 CPU 都归功于一家几乎不为人知的公司,而且这家公司还位于一个通常不被认为是高科技创新全球领导者的国家?而如果这类 CPU 的存在至少间接上要归功于一档教育类电视节目呢?如果你写出了这样的剧本,制片人有可能让你将剧本回炉重造:认真点,好不好?
然而在某种程度上讲,事实就是如此。
故事要从一档电视节目讲起
ARM 处理器控制着全世界超过 1300 亿台设备。如果没有它,就没有如今的现代生活。但是,ARM 处理器的起源故事却相当古怪。在其发展旅程中,充满了看似糟糕的运气转而变成了关键机遇的事件;其出人意料的技术优势在某些设备上一开始的应用却遭遇惨败,而最终被证明是至关重要的。
但是,让这一切变化起来的却是一档电视节目——BBC 在 1982 年播出的《计算机程序(The Computer Programme)》。这是 BBC 的一档科普节目,旨在告知当时的英国人这些花哨的新式机器究竟是什么,那时候的个人电脑看起来就像是连接着电视机的蹩脚打字机。
这档节目是英国政府和 BBC 共同发起的「计算机素养项目(Computer Literacy Project)」的一部分,它们担心英国对当时正在美国发生的个人计算革命毫无警觉和准备。不同于大多数电视节目,BBC 希望在节目中配备一台计算机,该计算机将用于解释基本的计算概念并教授一些 BASIC 编程。这些计算概念包括图形和声音、连接到图文网络的能力、语音合成乃至一些基础的人工智能。也因此,该节目所需的计算机必须相当好才行,以致于市面上根本就没有能实现 BBC 的愿望的产品,无法满足制片人的要求。
因此,BBC 向英国计算机产业界发出了呼吁。当时主导英国计算机产业的公司是 Sinclair——一家靠计算器和小型电视机发家的公司。但最终,一家更小却雄心勃勃的初创公司获得了这份利润丰富的合同:Acorn Computers.
Acorn 的发展
Acorn 是一家位于剑桥的公司,在开发了原本是为运行水果机(fruit machine)的计算机系统后创立于 1979 年。水果机在美国称为 slot machine,即老虎机 / 赌博机。之后,Acorn 将这款计算机系统变成了一款小型的爱好者计算机系统,其使用了 6502 个处理器。这个 CPU 与 Apple II、Atari 2600、Commodore 64 等许多计算机系统所用的 CPU 属于同一 CPU 系列(这种 CPU 设计将会变得很重要,所以请不要忘记它。
Acorn 当时已经开发了一款家用计算机 Atom,当 BBC 伸出橄榄枝时,他们开始计划开发 Atom 的后续版本,也就是后来名为 BBC Micro 的产品。
BBC 的要求让所得到的机器成为那个时代颇为强大的机器,但其实并没有 Acorn 原本的 Atom 后继版设计那么强大。原本的 Atom 后继版会有两个 CPU:一个已经过检验的 6502 和一个尚待决定的 16 位 CPU。
Acorn 后来放弃了那款 CPU,但保留了一个名为 Tube 的接口系统,这让机器可以连接更多额外的 CPU(后来也变得很重要)。
BBC Micro 的工程开发着实推进了 Acorn 的极限能力,因为那是那个时代相当前沿的计算机。这其中涉及到一些非常出彩的设计决策——这些决策虽然当时还不成熟,但已经可行了,比如使用一个电阻器组让工程师必须将自己的手指重新放到主板上对应的位置上才能让机器开始工作。
当时没人知道为什么只有当一根手指放到主板上的某个特定点时机器才会工作,但当他们想办法实现用电阻器模仿手指触碰后,他们很满意机器能够工作,然后继续在其上研发。
事实证明,BBC Micro 是 Acorn 取得的一大成功,这款产品成了 1980 年代英国主要的教育用计算机。
读到这里的人可能都知道,在计算历史上,1980 年代是一段非常重要的时期。IBM 的 PC 于 1981 年推出,为后来几十年的个人计算设定了标准。1983 年,苹果公司推出了 Mac 时代前的产品 Apple Lisa。至此,窗口 - 图标 - 鼠标式的图形用户界面主宰个人计算的革命开始了。
Acorn 看到了这些进展并且意识到如果他们希望保持竞争力,他们需要比可靠但逐渐过时的 6502 更强大的处理器来驱动未来的计算机。Acorn 实验了大量 16 位 CPU:6502 的 16 位变体版本 65816、Apple Macintosh 使用的 Motorola 68000、相对罕见的 National Semiconductor 32016。
它们都不能满足 Acorn 的要求,因此 Acorn 联系了英特尔,看能否将 Intel 80286 CPU 实现到他们的新架构中。英特尔完全没有搭理他们。
RISC 相关业务
此处剧透一下:事实将证明这对英特尔来说是一个非常糟糕的决定。
Acorn 后来做出了改变命运的决定:设计自己的 CPU。受 Western Design Center(该公司当时正在开发 6502 的新版本)的精益运营(lean operation)模式的启发,且研究了一类名为精简指令集计算(RISC)的新型处理器设计概念后,Acorn 决定采取行动,工程师 Steve Furber 和 Sophie Wilson 是这一项目的核心成员。
现在,RISC 处理器相对应的是复杂指令集计算(CISC 处理器)。下面非常简单地解释一下这两个概念究竟是什么意思:
CPU 都有一组可以执行的运算——它们的指令集。CISC CPU 的指令集非常庞大和复杂,让它们能在 CPU 的多个「时钟周期」内执行复杂的任务。这意味着其复杂性实际上被内置到了芯片硬件本身之中,这就意味着软件代码可以简单一点。因此,CISC 机器的代码可以减少指令数量,但这种 CPU 用来执行这些指令的周期数量会增大。
你可能已经猜到,RISC 则相反:芯片本身的指令和硬件更少,而且每个指令都可以在单个时钟周期内执行完毕。由此造成的结果是代码更长,因此看起来似乎效率更低,这又意味着需要更大的内存,但芯片本身却更简单了,因此能更快地执行简单的指令。
Acorn 非常适合设计一款 RISC CPU,因为他们之前最熟悉的芯片 6502 就常被认为是 RISC 的一种原型设计。互联网上对此有很多看法(不可避免的),这里也无意与任何人争辩,但至少可以说 6502 有类似 RISC 的一些特质。
这款新芯片是如此的 RISC,可以说 Sophie Wilson 在为 Acorn 的新处理器设计指令集时,显然受到了 6502 的多项设计概念的直接启发。
多亏了互联网,《Archimedes 高性能计算机系统》手册还能在网上找到完整版:http://chrisacorns.computinghistory.org.uk/Computers/Archimedes.html
《Archimedes 高性能计算机系统》手册封面。
使用 BBC Micro 的 Tube 接口作为测试平台,Acorn 将基于 RISC 开发的新型 CPU 称为 Acorn RISC Machine,简称 ARM。Acorn 的芯片生产供应商 VLSI 开始为 Acorn 的内部研发生产 ARM CPU。不久之后,生产可用的 ARM2 版本研发成功。
1987 年,第一款基于 RISC 的生产级个人电脑 Acorn Archimedes 问世,其使用的正是 ARM2 CPU。事实证明,尽管这款 ARM 处理器的晶体管数量比英特尔的 286 芯片少 245 000 个,但却具有更优的性能。
事实表明,Archimedes 搭配其 ROM 中的 Arthur OS,造就了一款灵活、高速和强大的机器。它配备有那个时代优良的图形显示、一个图形用户接口以及一些炫酷快速的低多边形演示和游戏——这是为了展现这台机器的速度,而这速度又要归功于其精简的 CPU。
这第一款基于 ARM 的计算机宣称是那个时代最快的个人电脑,其性能表现超过英特尔的 80286 好几倍。
「少」即是「多」
ARM 更少的晶体管就能说明 ARM 本身相对简单的特性,也因此,在同等计算性能条件下,ARM 芯片的功耗要低得多,发热量也小得多。
ARM 的低功耗和低发热特性并不在初始的设计规划中,因为 Acorn 的目标是为桌面计算机设计 CPU,但事实将会证明:这些特性是计算史中最幸运和最有益的副产品。
这种低功耗和低发热的特性使得 ARM 成为了移动设备的天然选择。正是因为这样的原因,苹果公司在 1980 年代末开始寻找一种足够强大、同时又能用 AA 电池驱动且不会把手烧痛的 CPU。苹果公司希望这款 CPU 能强大到可把手写文本转译成计算机文本并还能运行 GPU,这在当时有点异想天开。苹果希望驱动的手持式设备是臭名昭著的 Newton,而只有快速和精简的 ARM 核能够驱动它。
苹果和 Acorn 的芯片合作商 VLSI 与 Acorn 一起合作,将 ARM 部门拆分出去建立了一家名为 Advanced RISC Machines 的新公司,这让 ARM 这个简写形式保留了下来。在这一联盟下,加上苹果公司可观的资源注入,ARM 开发出了 ARM6 核以及基于该核的首款生产级芯片 ARM610 CPU。这款芯片的 20 MHz 版本成了驱动 1993 年的 Apple Newton 的处理器。
虽然 Newton 壮烈惨败,但事后来看,这款产品的意味却要深远得多:由 ARM CPU 驱动的手持式电池驱动型触屏设备。现在,全世界数十亿台智能手机都符合这一描述。而在大多数人的印象中,其第一次现场测试是在《辛普森一家》的剧集中,其中 Newton 将手写的「Beat up Martin」识别成了「Eat up Martha」。
《辛普森一家》中描绘的 Apple Newton。
ARM610 后来继续驱动着新一代 Acorn Archimedes 计算机和一款基于 Newton 的怪异笔记本电脑 eMate。2001 年,ARM7 内核的 CPU 被用在了苹果的 iPod 和任天堂的 Game Boy Advance 中。2004 年任天堂推出的双屏游戏机 Nintendo DS 使用了两个 ARM 处理器。
然后到了 2007 年,苹果推出了第一代 iPhone,其处理器为 ARM11 内核的 CPU。自那以后,ARM 开始大肆扩张。
ARM CPU 变成了智能手机的默认选择——不管是苹果手机还是其它公司的产品。不管是台式机还是笔记本还是服务器,只要使用的不是英特尔芯片,那么就必然使用了 ARM CPU。现在,有了 ARM Chromebook 和苹果的 MacOS 新款 ARM 台式机和笔记本,ARM 似乎最终又回到了自己的起点——桌面计算机。
多年以后,ARM 的起源故事仍然值得讲述,因为它是由一系列不可能、奇怪、毫无规划的事件串联而成的,而且还涉及到看似不可能的来源。尽管 ARM 无疑已经主导了今天的世界,但比英特尔 / AMD 那种带给人的行业巨兽般的感觉,ARM 微末的开端使其看起来就像是一个毫无感觉的庞然大物。
花点时间回头思考一下:
因为英国人觉得自己在计算机革命中落后了,于是他们决定制作有关计算机的电视节目。为了做这个节目,他们需要一台计算机,因此一家英国小公司设计了一种很好的计算机。而当这家小公司需要制造更快的 CPU 时,由于英特尔不愿意搭理他们,所以他们做出了自己的 CPU。这种内部设计的 CPU 刚好又低功耗且发热少,于是得到了苹果公司的注意,然后将其用在了大多数人认为是苹果的最大失败的产品中。当然,自那以后,这家公司开始走向占领世界之路。
如果这是我编的,你会说我设计的桥段过于古怪或实在太多了,就像是韦斯 · 安德森(Wes Anderson)导演的电影。但这其实是现实故事。
但是,如果现实是一场模拟,我敢打赌那也是由 ARM 驱动的。
上一篇:芯原联合Khronos举办全球研讨会,加速图像处理开发
下一篇:NVIDIA为广大开发者提供50余项全新升级版AI工具及培训材料
推荐阅读最新更新时间:2024-11-09 15:50
- LTC1258CS8-4.1 低功率、低电压电源基准的典型应用电路
- LTC1562,滤波器提供 4 阶巴特沃斯低通特性
- DER-871 - 基于InnoSwitch3-MX和InnoMux芯片组的26W多输出电源,用于显示器和电器
- 使用 ON Semiconductor 的 FAN2504S 的参考设计
- LTC4162IUFD-FFSM 9V 至 35V 2 节 3.2A 充电器的典型应用,具有 PowerPath 和 2A 输入限制
- 使用 Analog Devices 的 LT1302CN8 的参考设计
- EVAL-AD5675SDZ,用于评估 AD5675 八通道、16 位 nanoDAC+ 的评估板
- 多功能双热插拔控制器/电源排序器允许带电背板插入
- Sp34063A 1.5A 降压/升压/反相 DC-DC 开关稳压器的典型升压转换器电路
- 使用 ON Semiconductor 的 NCP5667 的参考设计