跳到主要内容

白话架构(2)- 从摩尔到英特尔

· 阅读需 18 分钟

戈登·摩尔:摩尔定律终将失效,但创新不会停止……未来需要材料、架构、算法的协同突破。

1946年,第一代计算机的代表 ENIAC 诞生了。按照英文的名称简写方式,它的全称其实是:Electronic Numerical Integrator and Computer,中文翻译为:电子数值积分计算机。

PS:像不像漫威里的神盾局( S.H.I.E.L.D.),全称长到无以复加:Strategic Homeland Intervention, Enforcement and Logistics Division,中文翻译为:国土战略防御攻击与后勤保障局。🤣

在之前的故事中,我们知道冯·诺依曼在 ENIAC 的研发后期也加入了顾问团队,随后和整个团队的人一起确立了现代计算机的架构:冯·诺依曼架构

冯·诺依曼加入 ENIAC 顾问团队后,他发现的问题正是: ENIAC 使用物理插线方式编程,性能极低。冯·诺依曼架构中重点提到的一点:存储器,就是用于解决此问题的。

使用物理插线的方式来编程,正是最原始的二进制实现。

  • 线路连通代表此位为1
  • 线路未连通代表此位为0

在 ENIAC 的时代,使用电子管作为主要电子元件,如图中所示,电子管就这么大一个🖐。

电子管

第一代的计算机,特点就是:体积庞大、耗电量大、运算速度慢。

如 ENIAC 体积庞大到占地 170 平方米,重达 30 吨。而为了给它供电,专门建造了一个大型的变电站,据说它一开机,附近地区的电灯都会变暗,它就像一个“电老虎”。

这也就是,在当时你走进一个房间,问:计算机哪呢?他们会告诉你:整个房间都是它。😅

ENIAC

冯·诺依曼架构齐名的哈佛架构,起源于 Mark I 计算机,它迭代到了第二代时,就叫 Mark II。

1947年9月9日,美国海军编程员格蕾斯・哈珀(Grace Hopper)所在的团队,在哈佛大学对 Mark II 计算机进行测试时,发现一只飞蛾(英文:bug)被困在计算机的第 70 号继电器上,导致了短路,引起计算机故障,这被记录为第一个计算机 bug。

也就是从此开始,计算机上发现的故障、漏洞、问题都被称之为:bug。畅想一下,如果当时是一只瓢虫(英文:ladybug)导致的故障,说不定现在计算机的漏洞我们就都叫:ladybug。🐞

世界上第一个计算机bug

时间来到了1947年12月16日, 在美国新泽西州墨累山的贝尔实验室里,威廉・肖克利(William Shockley)、约翰・巴顿(John Bardeen)和 沃特・布拉顿(Walter Brattain)成功制造出第一个晶体管

如图所示,我们可以明显看出来,晶体管的体积远远小于电子管。一般常见的电子管长度可能在几厘米到十几厘米不等,直径也有几厘米,而晶体管一般长度在 1 厘米左右甚至更小,宽度和厚度也都在几毫米级别。

晶体管

晶体管作为电子管的升级替代品,它体积的成倍减少,意味着相同面积下可以放入更多的元件,更多的元件意味着可以实现更复杂的逻辑,更复杂的逻辑实现也意味着性能的大符提升。此时必然会出现第二代晶体管计算机。

1954年,美国贝尔实验室研制成功的第一台晶体管计算机 TRADIC ,全称:Transistor Digital Computer,中文翻译:晶体管数字计算机。

TRADIC

1959年,IBM 成功制造了第一台商用晶体管计算机 IBM 7090。

IBM 7090

也是在第二代计算出现的前后,高级编程语言FORTRAN(1957年)、LISP(1958年)、COBOL(1959年)相继诞生。高级编程语言能现继出现,也是得益于硬件性能的大幅提升。

与前一代的电子管计算机相比,IBM 7090 的运算速度大幅提高,可达每秒 50 万次浮点运算。它的可靠性也显著增强,体积和功耗则大大降低。

科研人员使用 IBM 7090 参与一次卫星发射的计算,让卫星成功发射并进入预定轨道后, IBM 7090 在航空航天领域一炮而红。

在这个阶段,计算机的架构依然遵循冯·诺依曼架构,按照取指译码执行这样的串行流程执行命令,这就是单指令流和单数据流(SISD)

由此我们展开想象的翅膀去推论,在之后的技术发展中,肯定会有新的模式出现,如:单指令流和多数据流(SIMD)和多指令流和多数据流(MIMD)。

在这一阶段还出现了早期“中央处理器(CPU)”概念,但此时 CPU 仍由多个分立电路板构成,还并未成为独立元器件。

同一时间,集成电路技术也在不断发展。

1958年9月12日,杰克·基尔比(Jack Kilby)成功制造出世界上第一块锗基集成电路,包含一个晶体管、三个电阻和一个电容,被称为“单片电路”(Monolithic Circuit)。2000年,基尔比因集成电路发明获得诺贝尔物理学奖。

在基尔比发明的同时,罗伯特·诺伊斯(Robert Noyce),在仙童半导体(Fairchild Semiconductor)提出基于平面工艺(Planar Process)的集成电路,利用二氧化硅层实现元件间的绝缘和连接,并于1960年,在仙童半导体领导研究制造出首个可量产的硅基集成电路。

诺伊斯后来联合戈登·摩尔(Gordon Moore,”摩尔定律“的提出者)在1968年创办了英特尔(Intel),英特尔后来的故事就人尽皆知了。

时间进入二十世纪六十年代后,科学技术发展更快了。

材料科学的发展,让我们有了可以制造小尺寸晶体管的材料,如:高介电常数(高 - k)材料;光刻技术的进步,可以让我们在电路板上刻画出更细更小的电路图;器件结构的创新,则让我们能更好的利用空间来组织元件结构。

伴随着这些技术的进步,结合之前集成电路的发明,中小规模集成电路(SSI、MSI)既而出现。

首先出现的是小规模集成电路(SSI),在它们上面,每个芯片上所包含的电子元器件数目小于 100 个,主要用于实现一些基本的逻辑门电路、触发器等简单的逻辑功能,如常见的 74 系列逻辑门芯片。

74芯片示意图

接着是中规模集成电路(MSI),在它们上面元器件数目在 100 到 3000 个之间,能够实现较为复杂的逻辑功能,例如计数器、译码器、数据选择器等。

在中小规模集成电路的基础上,第三代计算机就此诞生了。1964年,IBM 公司于推出的一系列大型计算机: IBM 360。

在开发 IBM 360 系列时,IBM 公司投入了巨大的人力和物力,集合了众多顶尖的科学家和工程师。这个项目的规模非常庞大,以至于当时参与开发的人员都不知道自己具体负责的部分在整个系统中处于什么位置。

IBM 360 具有统一的指令集架构,使得软件可以兼容同系列的计算机;而 IBM 360 采用模块化的设计思想,使得它可以组合成适用于不同应用场景的系统。

由于它的成功,推动了计算机产业的发展,促进了信息技术的应用,更是培养了大量计算机人才。

IBM 360

IBM 360 计算机成功了,但它的操作系统的开发却是一场灾难。在之前我们提到:IBM OS/360 操作系统,作为首个大规模复杂软件,包含 500 万行代码,由 3000 人开发,但最终超预算 5 倍,延期 4 年才发布。

这次的软件开发灾难,也是推动后续软件工程发展的典型例子。不管从它计算机硬件的成功,还是对它操作系统软件的反思, IBM 360 都具有历史里程碑意义。

计算机更新换代的同时,CPU 也逐渐发展。

再说说前面提到的戈登·摩尔(Gordon Moore),他是英特尔联合创始人,他在1965年《电子学》杂志上发表了著名的摩尔定律(Moore's Law)。摩尔定律原始表述为:集成电路上可容纳的晶体管数量,约每18-24个月增加一倍,同时成本下降一半。

此定律预言了之后很长一段时间内 CPU 的发展进程。

1971年,首款用于计算器微处理器,Intel 4004,诞生了,它采用4位处理器,2300个晶体管,主频740kHz。

1972年,Intel 发布 8008 处理器,开始成为计算机的标准 CPU。

1974年,Intel 推出 8080 处理器,被认为是第一个真正有用的 CPU 设计,为后续个人计算机的发展奠定了基础。

1978年,Intel 8086 主导个人计算机市场,而随着技术的迭代第四代计算机也即将出现。

Intel 8086

光刻技术是集成电路制造中的关键技术,随着光刻技术的发展,可以在同面积的电路板上蚀刻更多的电路。半导体制造工艺不断创新和完善,我们可以制造纯度更高的半导体材料,能提升晶体管的开关速度和可靠性。

有了这些技术的支持,第三代计算机所依赖的小规模集成电路进一步发展,变成了:大规模集成电路(LSI)和超大规模集成电路(VLSI)。第四代计算机由此也发展起来,我们当前使用的个人计算机都是第四代计算机。

超大规模集成电路示意图

第四代计算的典型代表是 IBM PC 和苹果 Macintosh。

1981年,IBM 推出的个人计算机(PC),采用了 Intel 8066 的升级版本 8088 微处理器,开启了个人计算机的新时代。

在当时,IBM 公司决定采用开放式架构,允许第三方厂商为其开发硬件和软件,这次早期的开源决定,使得 IBM PC 迅速占领了市场,成为了现个人计算机(PC)的标准之一,也催生了无数的软件和硬件开发商,形成了一个庞大的产业生态系统。

IBM PC

1984年,苹果公司推出的 Macintosh 计算机具有图形用户界面(GUI),与当时以命令行界面为主的计算机相比,具有更好的用户体验,更加直观和易于操作。它引领了计算机用户界面的变革,推动了图形设计、桌面出版等领域的发展。

Macintosh

随着 IBM PC 和 苹果 Macintosh 的发布,计算机进入了高速发展时期,CPU 也更是一天一个变化。

1989 年,Intel 推出的 80486 芯片将 80386 和数学协处理器 80387 以及一个 8KB 的高速缓存集成在一个芯片内。它在 80X86 系列中首次采用了 RISC(精简指令集)技术,还采用了突发总线(Burst)方式,大大提高了与内存的数据交换速率。

这个就是也 486 时代,现代计算机的 CPU 基本都在此基础上进行发展迭代。计算机的指令集在主要也发展为:RISC(精简指令集)、CISC(复杂指令集)。

在之后的 CPU 发展过程中,由于 CISC提升代码密度,所以 x86 架构主要采用 CISC,主导个人计算市场; 而 RISC 能提升效率,所以 ARM 和 MIPS 架构采用了 RISC,主导移动设备。

从第一代计算机发展到第四代计算机,主要的架构依然是冯·诺依曼架构冯·诺依曼架构将计算机的硬件部分划为了几个核心:运算器控制器存储器输入\输出装置

CPU 最终集成了冯·诺依曼架构中的:运算器和控制器。

由于技术的发展和突破,集成电路的制程不断减小,才使得摩尔定律得以延续,但在2000年后,单核性能瓶颈到达瓶颈,多核与并行计算成为发展趋势,各厂商推动多核 CPU 的发展(如Intel Core系列)以及与 GPU 协同计算。

到了2006年,制程达到 26nm 时,技术再一次突破,英特尔才推出了新一代的 Intel Core 2 Duo,然后到2020年,制程达到 5nm 时,ARM 架构的 Apple M1 推出,又标志着摩尔定律继续延续。

但由于物理极限,即:

  1. 量子隧穿效应:晶体管尺寸低于3nm时,电子可能“穿越”绝缘层,导致漏电。
  2. 热密度问题:芯片功耗密度接近核反应堆水平,散热成为瓶颈。

最终 CPU 可能会迎来摩尔定律的终点,但技术永远不会止步。

每一代计算机的发展和演化,CPU 概念的出现、演进和突破,都离不开科学界和工业界的共同努力。而软件工程的发展,也伴随着硬件的发展。后面我们将继续拨开架构的面纱。