1943年是历史上一个有趣的时期。第二次世界大战在全世界范围内造成了巨大的死亡和破坏;Alan Turing 在布莱切利公园(Bletchley Park)结束了德国 Enigma 法规;美国陆军正在努力完善第一批原子弹的设计。
我们都听过 Alan Turing 和他那著名的 Enigma 破解机的故事。然而,大多数人完全没有意识到现代计算机的蓝图并非由图灵或布莱切利公园的科学家设计。被称为计算之父不无理由,但他并没有像我们所知的那样发明计算机。
事实证明,计算机其实主要是由另一个绝密的战时研究项目 PX 项目研发的。
故事始于宾夕法尼亚大学,由摩尔工程学院的一群聪明的科学家组成。该团队正在尝试构建以前从未构建过的东西,这是一种革命性的新型电子机器,能够以令人难以置信的速度计算弹道和火炮射击表。
约翰·普雷斯帕·埃克特 (John Presper Eckert) 和约翰·威廉·莫奇利 (John William Mauchly) 正在进行这项绝密研究。这两位杰出的计算机科学家从美国陆军军械局 (Army Ordnance Department) 获得资金,建造了这台创新的新机器。
John Mauchly 和 J Presper Eckert | ©Franklin Institute
电子数字积分器与计算机 (ENIAC) 被许多人认为是第一台电子通用计算机。代号为 PX 项目的 ENIAC 是图灵完备的,旨在为陆军编制计算火炮射击表的程序。
ENIAC 重达 30 多吨,长 80 英尺,体积十分庞大。它需要大量的人力才能组装,而且它由超过 20,000 个真空管和 5,000,000 个手工焊接接头组成。当时,ENIAC 在当时是前所未有的最复杂的电子系统。在接通电源的日子里,ENIAC 使用了超过 170 千瓦的电力。事实上,它耗费了太多的资源,甚至有传言说由于 ENIAC 的消耗,费城的市民使用的灯在打开时会变暗。
ENIAC 在摩尔电气工程学
“当电脑开机时,费城的灯光暗了下来……”
ENIAC 的革命性主要体现在它可以在 30 秒内计算出一个轨迹,而一个人用手工计算则需要 20 多个小时。
Eckert 和 Mauchly 的机器取得了巨大成功,军队对它的设计和性能都感到很满意。他们的机密研究项目也没有被忽视。事实上,它吸引了科学界最优秀、最聪明的人的关注,其中就包括著名的数学家和计算机科学家 约翰·冯·诺伊曼(John von Neumann)。
电子数字积分器和计算机(ENIAC)
约翰·冯·诺伊曼于 1943 年加入普林斯顿大学。他本身就是一位杰出的科学家; 他是一个神童,曾写过 150 多篇科学论文,是爱因斯坦的导师和同事。巧合的是,冯·诺依曼当时也在为美国军方从事另一个机密项目,即曼哈顿计划。在听说这台新机器的性能后不久,冯·诺依曼就意识到它在战争中的潜在用途,并于 1944 年夏天作为访问顾问加入了 ENIAC 研究团队。
普林斯顿的 Julian Bigelow,Herman Goldstine,Robert Oppenheimer 和 John von Neumann(CC BY-SA 3.0)
当埃克特和莫奇利第一次构思出这种机器时,他们并不知道,ENIAC 最终将被广泛用于改进氢弹设计所需的计算。
事实上,ENIAC 对氢弹的发展非常重要,据 ENIAC 项目科学家 Herman Goldstine 在他的著作《计算机:从 Pascal 到 von Neumann》中的说法,ENIAC 的首次官方测试是对氢弹进行计算, 而不是最初设计的火炮表计算。尽管 ENIAC 非常出色,但它的发明者很快意识到,利用约翰•冯•诺伊曼 (John Von Neumann) 的一些想法,它的设计可以得到进一步改进,并且在 ENIAC 甚至运行其第一个项目之前就开始研究它的继任者。
约翰·冯·诺依曼加入 ENIAC 项目的时间有点晚,无法参与第一台机器的设计,但他确实参与了下一台机器的讨论和设计,这台机器后来被称为 电子离散变量自动计算机(EDVAC)。
John von Neumann 博士
第一次技术丑闻
关于新型 EDVAC 机器的想法层出不穷;EDVAC 团队将定期开会讨论如何建造新的绝密机器。根据《计算历史编年史》的作者 Michael R. Williams 所说,新的 EDVAC 机器的设计是一项团队工作,而不是个人。
作为团队成员,约翰·冯·诺依曼(John von Neumann)参加了许多会议,他记笔记的习惯使他详细记录了这些设计讨论的结果。
约翰·冯·诺依曼 (John von Neumann) 整理了新 EDVAC 机器的设计、会议记录和架构,并决定将它们写进一份报告中。受到战争努力的迫切性的激励,并希望撰写一份报告,详细说明他认为未来类似的机器如何设计用于帮助战争。他亲手写了这份报告,并把这些笔记寄回费城,在那里,他的同事赫尔曼·戈德斯廷 (Herman Goldstine) 把它们打印了出来。
1945 年 6 月 30 日,冯·诺依曼和戈德斯廷决定发表一份 101 页的电子离散变量自动计算机 (EDVAC) 报告初稿。不幸的是,该报告只以草稿形式发表过; 冯·诺依曼发现自己太忙了,无法写下完整的计算机的设计,因为他一直专注于就原子问题向政府提供建议,并继续进行曼哈顿项目的工作。
冯诺依曼关于 EDVAC 的初稿报告
Goldstine 将论文副本分发给 EDVAC 的核心成员和一些经过高级安全许可的政府和教育机构。这篇论文很快就传到了英国的曼彻斯特,艾伦·图灵 (Alan Turing) 和艾伦·威尔克斯 (Alan Wilkes) 读了它。
很难描述这篇论文在当时有多轰动。它第一次有效地描述了所有现代计算机的蓝图; 创造了第一台存储程序数字计算机的蓝图。
对他的同事来说不幸的是,约翰·冯·诺依曼在他的报告草稿中没有提到或指出他们的大部分重要贡献。第一份草稿包含了他们的许多想法,但没有注明出处。
更糟糕的是,Goldstine 在输入冯·诺依曼的研究笔记时,把约翰·冯·诺依曼列为这篇论文的唯一作者,这就是为什么现在一些教科书普遍认为冯·诺依曼是计算机之父的原因。
这让他的同事感到非常恼火,因为论文中的许多想法实际上早于冯•诺伊曼对 ENIAC 和 EDVAC 项目的咨询。不仅如此,现代计算机的总体设计被称为冯·诺依曼式架构,这是研究团队不得不吞下的苦果。
电子离散变量自动计算机(EDVAC)
然而,缺少对 Eckert 和 Mauchly 的团队努力的归属或引用是有原因的。当时,EDVAC 项目是高度机密的。冯·诺依曼和戈德斯廷都意识到这种机器对国防的重要性,并发表声明说,如果要制造更多的机器,就必须扩大报告的分发范围。根据《自然和人工系统适应的观点》(PANAS)的作者,戈德斯廷在处理这个问题时没有引用任何 ENIAC 的机密设计,并试图使用更通用的术语来避免任何专利侵权。他还大量借鉴了麦卡洛克 (McCulloch) 和皮茨 (Pitts) 的著作,他们最近发表了一个神经元数学模型的新想法。
“我们认为冯·诺依曼采纳了我们的许多想法,并用麦卡洛克和皮茨的‘神经元符号’重写了它们”——埃克特 1976 年在洛斯阿拉莫斯会议上说
围绕这一事件的事实仍然没有定论。据 PANAS 的作者说,当时 EDVAC 项目的负责人里德沃兰 (Reid Warran) 教授参加了 1945 年 4 月和 5 月与冯诺伊曼举行的许多全天会议,他对这些会议记忆犹新。他对埃克特·莫切利控告冯·诺依曼的回答简短扼要:
“你不必与约翰尼在一起超过五分钟就能意识到他不是那种会写出别人想法的人”。
—EDVAC 主任 Reid Warren 教授
在第一份草案出炉后不久,EDVAC 小组就解散了,部分原因是与牛津大学的知识产权纠纷。事故发生后,EDVAC 工程团队被替换。具有讽刺意味的是,尽管对知识产权存在种种争议,但 EDVAC 机器最终建成时与冯•诺依曼的提议几乎没有相似之处,因为它没有将程序存储在与数据相同的内存中。即便如此,争吵和痛苦仍将持续数十年。
专利计算机
埃克特和莫奇利在 1947 年申请了专利,但在贝尔实验室或其他机构的各种挑战下,这项专利直到 1964 年才被授予。他们最初的公司在勉强摆脱破产后被斯佩里·兰德 (Sperry Rand) 收购。
斯佩里·兰德 (Sperry Rand) 一直试图迫使其他电脑公司以 1.5% 的销售费用为 ENIAC 设计授权,否则将面临专利侵权诉讼。IBM 决定以 1000 万美元和解,但当时另一家大型电脑制造商霍尼韦尔 (Honeywell) 在 1967 年决定起诉斯佩里•兰德(Sperry Rand),而不是支付超过 2.5 亿美元的版税。
这成为了美国历史上最重要和最漫长的法律案件之一,斯佩里·兰德真的拥有电脑的独家有效专利吗?
这场官司历时 6 年,共有 77 名证人出庭作证,25,686 件证物,以及一份长达 20,667 页的最终文字记录。法官厄尔拉尔森 (Earl R. Larson) 的最终判决于 1973 年 10 月 19 日公布,结果对霍尼韦尔有利;1964 年 ENIAC 专利无效。
对 Eckert 和 Mauchly 的最后一个打击是,专利失效的一个关键原因是 1945 年冯诺依曼博士的报告。
约翰文森特阿塔纳索夫
不仅如此,计算机科学家约翰·文森特·阿塔纳索夫 (John Vincent Atanasoff) 在此案中还被戏剧系地争议他是否在 1937 年发明了现代计算机。
Atanasoff 架构?
约翰·文森特·阿塔纳索夫(John Vincent Atanasoff)的机器后来被称为 Atanasoff-Berry 计算机,简称 ABC。这台机器是 1937 年构思出来的,直到今天人们仍然还在争论 ABC 是否应该被认为是第一台数字计算机。它的设计目的只是解决线性方程组,但它仍然有纸卡写入器 / 读卡器,它使用真空管,二进制指令和电子开关。但是,与 ENIAC 或 EDVAC 不同,ABC 不能用于通用计算,因为它不可编程或图灵完整。
达勒姆中心的 Atanasoff-Berry 计算机(复制),来源:Wikimedia Commons
毫无疑问,约翰·冯·诺依曼博士是科学史上最杰出的学者之一。在他 55 年的生命中,他为数学、物理和计算机科学做出了无数的贡献。
尽管由于当时项目的机密性,他并没有将其归功于他的同事,但许多现代编程语言、软件、硬件和计算机架构都是从 Eckert 和 Mauchly 的 EDVAC 团队以及冯诺依曼 1945 年那篇“臭名昭著”的论文的原始思想中派生出来的。
冯·诺依曼和戈德斯坦在 1945 年做出的选择最终开辟了计算机研究领域,这意味着现代计算机无法获得专利。单就这个原因而言,约翰•冯•诺伊曼 (John von Neumann) 仍有理由被认为是现代计算机之父。
以上信息来源于网络,由“京东云开发者社区”公众号编辑整理,
不代表京东云立场。原文内容可点击“阅读原文”进行查看