在标准叙事中,计算机的演变是迅速而短暂的。它始于二战时期实验室中存放的巨型机器。微芯片将它们缩小到桌面上,摩尔定律预测了它们将变得多么强大,而微软则利用了软件。最终,出现了小型、廉价的设备,可以进行股票交易并在世界各地传输视频。这是研究计算历史的一种方式——过去 60 年固态电子的历史。
但计算在晶体管出现之前就已存在。古代天文学家开发了预测天体运动的方法。希腊人推断出了地球的形状和大小。税收被汇总;距离被绘制。然而,一直以来,计算都是人类的追求。它是算术,一种像阅读或写作一样的技能,可以帮助人们理解世界。
计算时代源于对这种限制的摒弃。加法机和收银机率先出现,但同样关键的是,探索使用我们现在所说的“程序”来组织数学计算。程序的概念最早出现在 19 世纪 30 年代,比我们传统上认为的计算机诞生早一个世纪。后来,二战后出现的现代电子计算机催生了通用计算机的概念——一种能够进行任何类型信息处理的机器,甚至包括对其自身程序的操控。这些就是驱动我们今天世界的计算机。然而,即使计算机技术已经成熟到无处不在且看似无限的程度,研究人员仍在尝试利用来自大脑、生物系统和量子物理学的新鲜见解来构建全新的机器类型。
关于支持科学新闻
如果您喜欢这篇文章,请考虑通过以下方式支持我们屡获殊荣的新闻报道: 订阅。通过购买订阅,您正在帮助确保关于塑造我们今天世界的发现和想法的具有影响力的故事的未来。
差分机
1790 年,法国大革命开始后不久,政府决定共和国需要一套新的地图来建立公平的财产税收系统。* 他还下令从旧的帝国测量系统转换为新的公制系统。为了方便所有换算,法国地形测量局开始计算详尽的数学表格集。
然而,在 18 世纪,计算是由手工完成的。一个由 60 到 80 名人工计算机组成的工厂车间进行加法和减法运算,以填写地形测量局地籍表项目表格的每一行。这是一项苦差事,不需要高于基本算术和读写能力的特殊技能。事实上,大多数计算机是失业的理发师——在革命时期的法国,贵族的发型可能会危及一个人的脖子。
该项目大约花了 10 年时间完成,但到那时,饱受战争蹂躏的共和国没有必要的资金来出版这项工作。手稿在科学院沉寂了数十年。然后在 1819 年,一位前途光明的英国年轻科学家查尔斯·巴贝奇在访问巴黎时看到了它。巴贝奇当时 28 岁;三年前,他当选为英国最著名的科学组织皇家学会会员。他对人工计算机的世界也非常了解——他曾在不同时期亲自监督天文和精算表的编制。
回到英国后,巴贝奇决定他要用机器而不是人工计算机来复制法国的项目。当时的英国正处于工业革命的阵痛之中。曾经由人力或畜力完成的工作正在让位于机器的效率。巴贝奇看到了蒸汽和力量、可互换零件和机械化的世界的力量,并意识到它可以取代的不仅仅是肌肉,还有大脑的工作。
他在 1822 年提出了建造他的计算引擎的建议,并在 1824 年获得了政府资助。在接下来的十年里,他沉浸在制造业的世界中,寻求最好的技术来制造他的引擎。
1833 年,巴贝奇庆祝了他的奇迹年。那一年,他不仅制造出了他的计算机器(他称之为差分机)的功能模型,还出版了他的经典著作《论机器和制造业的经济》,确立了他作为世界领先的工业经济学家的声誉。他在伦敦德文郡街的家中举办周六晚宴,社会名流云集。在这些聚会上,差分机模型被作为谈话素材展出。
一年后,巴贝奇放弃了差分机,转而追求一个更宏伟的愿景,他称之为分析机。差分机仅限于制作表格的单一任务,而分析机则能够进行任何数学计算。像现代计算机一样,它将有一个执行算术运算的处理器(“磨坊”)、用于保存数字的内存(“商店”),以及通过用户输入(在这种情况下是通过穿孔卡片)来改变其功能的能力。简而言之,这是一台在维多利亚时代技术中构思出来的计算机。
然而,巴贝奇放弃差分机转而研究分析机的决定并没有受到欢迎,政府也拒绝向他提供额外资金。但他没有气馁,而是制作了数千页详细的笔记和机器图纸,希望政府有一天会资助建造。直到 20 世纪 70 年代,即计算机时代深入发展之后,现代学者才首次研究了这些论文。正如其中一位学者所说,分析机几乎就像在另一个星球上设计的现代计算机。
黑暗时代
本质上,巴贝奇的愿景是数字计算。像今天的设备一样,这种机器根据一组指令操作数字(或数字),并产生精确的数值结果。
然而,在巴贝奇失败后,计算进入了英国数学家 L. J. 康里所称的数字计算黑暗时代——这个时期一直持续到二战。在此期间,计算主要通过所谓的模拟计算机完成,模拟计算机使用机械模拟来模拟系统。例如,假设一位天文学家想要预测日食等事件的时间。为了以数字方式做到这一点,她将数值解开普勒运动定律。她还可以创建一个模拟计算机,一个由齿轮和杠杆(或简单的电子电路)组成的太阳系模型,这将使她能够将时间“运行”到未来。
在二战之前,最先进的实用模拟计算仪器是范内瓦·布什于 1929 年在麻省理工学院开发的微分分析仪。当时,美国正在大力投资农村电气化,而布什正在研究电力传输。此类问题可以用常微分方程编码,但这些方程非常耗时才能求解。微分分析仪允许在不进行任何数值处理的情况下获得近似解。这台机器体积相当大——占据了一个相当大的实验室——并且有点像鲁布·戈德堡式的齿轮和旋转轴结构。为了“编程”机器,技术人员使用螺丝刀、扳手和铅锤连接设备的各个子单元。虽然设置起来很费力,但一旦完成,该设备可以在几分钟内求解手工需要几天才能完成的方程。在美国和英国建造了十几台这种机器。
其中一台机器被送到了美国陆军位于马里兰州阿伯丁试验场的基地,该基地负责为部署准备野战武器。为了将火炮瞄准已知射程的目标,士兵必须设置炮管的垂直和水平角度(仰角和方位角),以便发射的炮弹能够沿着所需的抛物线轨迹飞行——先是冲向天空,然后落到目标上。他们从射击表中选择角度,射击表包含各种目标距离和地理条件的众多条目。
射击表中的每个条目都需要积分一个常微分方程。一个由 200 名计算机组成的现场团队需要两到三天的时间才能手工完成每次计算。相比之下,微分分析仪只需要大约 20 分钟。
一切都在变化
1941 年 12 月 7 日,日本军队袭击了美国海军在珍珠港的基地。美国参战了。动员意味着军队需要越来越多的射击表,每个射击表包含大约 3000 个条目。即使使用微分分析仪,阿伯丁的计算积压也在增加。
在距离阿伯丁 80 英里的路上,宾夕法尼亚大学摩尔电气工程学院也有自己的微分分析仪。1942 年春天,该学院一位 35 岁的讲师约翰·W·莫奇利提出了一个加速计算的想法:构建一台“电子计算机”[原文如此],用真空管代替机械部件。莫奇利是一位戴眼镜、理论思想家,可能无法独自制造这台机器。但他找到了他的补充,即该学院一位精力充沛的年轻研究员 J. Presper (“Pres”) Eckert,后者已经展现出工程天才的火花。
在莫奇利提出最初的建议一年后,经过各种偶然和官僚延误,该建议传到了赫尔曼·戈尔茨坦中尉手中,他是一位 30 岁的芝加哥大学数学博士,是阿伯丁和摩尔学院之间的技术联络官。几天之内,戈尔茨坦就获得了该项目的批准。ENIAC(电子数字积分计算机)的建造于 1943 年 4 月 9 日开始。那天是埃克特的 23 岁生日。
许多工程师对 ENIAC 是否能够成功表示严重怀疑。传统观点认为,真空管的寿命约为 3000 小时,而 ENIAC 的初始设计要求使用 5000 个真空管。按照这个故障率,机器在真空管损坏导致停机之前,最多只能运行几分钟。然而,埃克特明白,真空管往往会在开启或关闭的压力下发生故障。他知道,出于这个原因,广播电台从不关闭其发射管。如果真空管在远低于其额定电压的情况下运行,它们的使用寿命会更长。(到机器完成时,真空管的总数将增加到 18,000 个。)
埃克特和他的团队在两年半内完成了 ENIAC。这台成品机器是一项工程技术壮举,一个重达 30 吨的庞然大物,耗电 150 千瓦。该机器每秒可以执行 5000 次加法运算,并且计算弹道的时间比炮弹到达其实际目标的时间还要短。这也是偶然性在发明中经常发挥作用的一个典型例子:虽然摩尔学院当时并不是领先的计算研究机构,但它恰好在正确的时间、正确的地点遇到了正确的人。
然而,ENIAC 在 1945 年完成,为时已晚,无法在战争中发挥作用。它的功能也有限。它一次最多只能存储 20 个数字。编程这台机器需要数天时间,并且需要操作类似于繁忙电话交换机内部的电缆网络。此外,ENIAC 被设计用于求解常微分方程。一些挑战——特别是曼哈顿计划所需的计算——需要求解偏微分方程。
约翰·冯·诺伊曼是曼哈顿计划的顾问,他在 1944 年夏天访问阿伯丁时了解了 ENIAC。冯·诺伊曼于 1903 年出生于匈牙利一个富有的银行世家,是一位数学神童,他很快就完成了学业。23 岁时,他成为柏林大学有史以来最年轻的编外讲师(大致相当于副教授)。1930 年,他移民到美国,并与阿尔伯特·爱因斯坦和库尔特·哥德尔一起成为新泽西州普林斯顿高级研究院的首批教员。他于 1937 年加入美国国籍。
冯·诺伊曼很快认识到这台机器计算能力强大,在他访问阿伯丁后的几个月里,他与埃克特、莫奇利、戈尔茨坦和阿瑟·伯克斯(另一位摩尔学院讲师)一起开会,敲定了后继机器 EDVAC(电子离散变量自动计算机)的设计。
EDVAC 比 ENIAC 有了巨大的改进。冯·诺伊曼引入了沃伦·麦卡洛克和沃尔特·皮茨的想法和术语,他们是神经科学家,他们开发了一种大脑逻辑运算理论(这就是我们获得“内存”这个计算机术语的地方)。他认为机器由五个核心部分组成:内存不仅保存数值数据,还保存操作指令。算术单元执行算术运算。输入“器官”使程序和数据能够传输到内存中,输出器官记录计算结果。最后,控制单元协调整个系统。
这种布局或架构使得无需改变机器的物理结构即可更改计算机程序。程序保存在内存中,并且可以瞬间修改。此外,程序可以操作其自身的指令。这个功能不仅使冯·诺伊曼能够求解他的偏微分方程,而且还将赋予现代计算机科学核心的强大灵活性。
1945 年 6 月,冯·诺伊曼代表该小组撰写了他的经典著作《关于 EDVAC 的报告初稿》。尽管它尚未完成,但它在计算专家中迅速传播,产生了两个后果。首先,再也没有第二稿。其次,冯·诺伊曼最终获得了大部分发明功劳。
机器进化
计算机随后 60 年在社会中的普及是一个漫长的故事,必须在另一个地方讲述。也许最引人注目的发展是,最初为数学计算而设计的计算机,通过正确的软件,被证明可以无限地适应不同的用途,从商业数据处理到个人计算,再到全球信息网络的构建。
我们可以将计算机发展视为沿着硬件、软件和架构三个方向进行的。过去 50 年硬件方面的改进是传奇般的。笨重的电子管在 20 世纪 50 年代后期让位于“分立”晶体管——即单独焊接在位的单个晶体管。在 20 世纪 60 年代中期,微电路将多个晶体管——然后是数百个晶体管,然后是数千个晶体管——连接到硅“芯片”上。20 世纪 70 年代早期开发的微处理器将完整的计算机处理单元放在一个芯片上。微处理器催生了 PC,现在控制着从洒水系统到弹道导弹的各种设备。
软件的挑战更为微妙。1947 年和 1948 年,冯·诺伊曼和戈尔茨坦发表了一系列报告,名为《电子计算仪器的问题规划和编码》。在这些报告中,他们列出了数十种数学计算例程,期望一些低级“编码员”能够毫不费力地将它们转换为可工作的程序。但事实并非如此。编写程序并使其工作的过程极其困难。第一个发现这一点的是剑桥大学计算机科学家莫里斯·威尔克斯,他创建了第一台实用的存储程序计算机。在他的回忆录中,威尔克斯懊悔地回忆起 1949 年的那个时刻,“我充分意识到,我余生的大部分时间都将花在查找自己程序中的错误上。”
他和剑桥大学的其他人在一种符号形式中开发了一种编写计算机指令的方法,这使得整个工作更容易且不易出错。计算机将采用这种符号语言,然后将其转换为二进制代码。IBM 于 1957 年推出了 Fortran 编程语言,这大大简化了科学和数学程序的编写。在 1964 年,达特茅斯学院的教育家约翰·G·凯梅尼和计算机科学家托马斯·E·库尔茨发明了 Basic,这是一种简单但功能强大的编程语言,旨在普及计算并将其带给全体本科生。有了 Basic,即使是学童——包括年轻的比尔·盖茨——也可以开始编写自己的程序。
相比之下,计算机架构——即构成计算机的子系统的逻辑排列——几乎没有进化。今天使用的几乎每台机器都与 1945 年的存储程序计算机共享其基本架构。这种情况类似于汽油动力汽车——多年来,两者都出现了许多技术改进和效率提升,但基本设计基本相同。虽然肯定有可能设计出更出色的设备,但两者都实现了技术史学家所谓的“封闭”。几十年的投资产生了如此出色的收益,以至于没有人有充分的理由投资于替代方案。
然而,激进的进化存在多种可能性。例如,在 20 世纪 80 年代,人们对所谓的超大规模并行机器产生了浓厚的兴趣,这种机器包含数千个同时运行的计算元件,专为计算密集型任务而设计,例如天气预报和原子武器研究。计算机科学家还从人脑中寻找灵感。我们现在知道,大脑不是由灰质制成的通用计算机。相反,它包含用于不同任务的专用处理中心,例如面部识别或语音理解。科学家们正在将这些想法应用于“神经网络”,用于汽车牌照识别和虹膜识别等应用。它们可能是数百年历史的进程中的下一步:将大脑的力量嵌入机器的内部。
*勘误 (10/15/09):此句子在发布后已编辑,以更正事实错误。