电子计算机之父冯·诺伊曼

2016-05-30 02:08戴吾三
科学 2016年3期
关键词:德斯坦组件计算机

戴吾三

第二次世界大战期间,冯·诺伊曼参与美国原子弹秘密研发,因处理大量的计算而关注电子计算机研究。当他介入ENIAC研制时,发现了深层问题,为此撰写报告,为电子计算机的发展指明了方向。

电子计算机发展史上有一位里程碑式的人物,他就是美籍匈牙利裔科学家冯·诺伊曼(J.von Neumann)。

第二次世界大战期间,冯·诺伊曼参与美国原子弹的秘密研发,因处理大量的计算而关注电子计算机研究。当他介入ENIAC研制时,很快洞察问题所在。撰写专题报告,高瞻远瞩地指明了电子计算机发展的方向。战后,冯·诺伊曼继续深入研究并推广计算机的应用,由此获得“电子计算机之父”的美誉。

如今大半个世纪过去了,电子计算机已与当年天差地别,而冯·诺伊曼阐发的思想和基本理念仍熠熠生辉。

作为一位在纯数学、理论物理学、博弈论等方面都有卓著贡献的科学家,冯·诺伊曼是如何开创电子计算机研究的?重温这段特殊的历史,会给我们带来有益的启示。

优越环境助天才

1867年奥地利和匈牙利组建奥匈帝国,此后50年匈牙利迎来了繁荣时期。当时的布达佩斯在欧洲是排名第六的大城市,经济发展,文化和学术繁荣,同时它也成为犹太人选择迁居的两大城市之一(另一个城市是纽约)。在这里,凭借着聪明和勤奋,不少犹太人很快成为有钱、有地位的医生、律师和商人。

1903年12月28日,冯·诺伊曼出生于匈牙利首都布达佩斯。他出生时,父亲已是一位富有的犹太银行家,1913年荣获贵族封号,这成了他们家姓中yon(冯)的由来。冯·诺伊曼很小便接受家庭教师的教育,先后学习德语、法语、英语、拉丁语和希腊语。6岁时,他已能用希腊语与父亲闲谈。在日后冯·诺伊曼对计算机技术做出贡献的过程中,拉丁语和希腊语都起到了重要作用。

冯·诺伊曼在学龄前还学习算术、击剑和钢琴,他对击剑和钢琴都不怎么用心,而对算术十分着迷。小冯·诺伊曼心算能力超强,记忆力惊人,他头脑里塞满了大量的数学常数和公式。

1914年,10岁的冯·诺伊曼进入路德中学学习(这是布达佩斯最好的三所中学之一)。数学老师拉茨(L.Ratz)很快便发现冯·诺伊曼的才能,他与冯·诺伊曼的父亲商量,按照匈牙利培养天才少年的传统,请布达佩斯大学的数学教授进行个别指导。先是塞格(G.Szeg8)教授每周到家里一两次,与小冯·诺伊曼讨论数学定理、定律,并留一些思考题。两年的初步训练后,再由其他几位数学教授上场,其中指导最多的是费凯特(M.Fekete),中学快毕业时,冯·诺伊曼与费克特合作撰文,讨论某种极小多项式的零点及超限直径问题,这篇论文刊登在《德国数学协会杂志》上,当时冯·诺伊曼还不到17岁。1921年,冯·诺伊曼参加中学毕业会考,同时获得了厄特沃什奖。后来他又在匈牙利的数学竞赛中轻而易举拔得头筹。

上大学要面临专业的选择。经过家庭协商,冯-诺伊曼答应到国外读化学,同时在布达佩斯帕兹曼·彼得大学注册为数学博七学位候选人。1921-1923年,冯·诺伊曼主要在柏林大学学习化学,然后在1923年秋天参加苏黎世联邦理工学院化学工程系二年级的入学考试,1925年获得化学工程学士学位。

在此期间,冯·诺伊曼主要听的还是数理方面的课程,并同著名数学家交往。冯·诺伊曼非常仰慕大数学家希尔伯特(D.Hilbert),大学期间,他去格丁根拜访希尔伯特。这两位年龄相差超过40岁的数学家,在希尔伯特的花园或书房里常常一谈就是几个小时。冯·诺伊曼充分吸收希尔伯特的公理化思想,致力于集合论的基本概念分析并加以公理化。1926年春天,冯·诺伊曼以论文《集合论的公理化》获得布达佩斯帕兹曼·彼得大学的数学博士学位,当时他还不满23岁。

1926年,希尔伯特向美国洛克菲勒基金会提出申请,资助冯·诺伊曼到格丁根来。那时,格丁根是量子力学的研究中心之一,许多有才华的数学家、物理学家都被这门新兴的物理学所吸引。先是1925年海森伯(w.K.Heisenberg)创立矩阵力学,继之1926年薛定谔(E.Schrodinger)创立波动力学,他们的努力促进了量子力学的诞生。有意思的是,这两人各自为战,互不买账。冯·诺伊曼很快看出,表面上海森伯和薛定谔的数学论证不同但结果相似,这意味着他们的研究其实是一回事。冯·诺伊曼引入希尔伯特空间及其算子的理论,一举证明了这两种形式等价,并给出量子力学的严格数学基础。1932年,冯·诺伊曼发表《量子力学的数学基础》(德文版),在学术界产生了很大影响。

1927年,冯·诺伊曼到柏林大学当无薪讲师(其报酬来自学生的学费),两年后又到汉堡大学当讲师。当时,德国大学的教授职位有数额限制,如果教授不退休,讲师就不能递补。冯·诺伊曼分析判断,三年内德国可能会有3个教授席位的空缺,而竞争递补的讲师有四十多人。虽说自己的工作足以出人头地,可是年纪轻轻想当教授难免阻力重重。加之对德国“会为1918年复仇”的担忧,因而冯·诺伊曼表示,美国方面的任何工作邀请他都会考虑。

移居美国新发展

1920年代,美国经济已居世界首位,科学发展却不如西欧。洛克菲勒基金会高薪聘请欧洲的学者、名家到美国讲学,若能定居更好。爱因斯坦(A.Einstein)、海森伯等大人物都留恋欧洲的学术环境而不愿前来,一些科学家短期来访后又回到欧洲。当时美国聘请工作由两人负责,康普顿(A.Compton)负责物理学,维布伦(o.Veblen)负责数学。维布伦1910年起就在普林斯顿大学任教,1929年他受邀到牛津访问,同时在欧洲搜寻适宜来美的数学家。在意大利的一次数学会议上,他与冯·诺伊曼交谈,留下良好印象,冯·诺伊曼则早已萌生移居美国的念头。

1929年10月,维布伦正式向冯·诺伊曼发出邀请,请他到普林斯顿大学讲授量子理论,每周2-3节课,任期为1930年到1933年,每年一学期。同时受邀的还有冯·诺伊曼的好友维格纳(E.Wigner)。冯-诺伊曼欣然接受邀请,1930年1月携新婚妻子踏上新大陆,从此与美国结下了不解之缘。普林斯顿大学先聘冯·诺伊曼当一学期的讲师,第二年就升他为教授。冯·诺伊曼喜欢美国的生活,并很快适应了新环境。

1933年,犹太富商班伯格兄妹(L.Bamberger和C.Bamberger)向普林斯顿高等研究院的遗赠最终改变了爱因斯坦的命运,改变了冯·诺伊曼的命运,甚至改变了美国科学的面貌。最初确定高等研究院的首批人员名单时,对年轻的冯·诺伊曼的委任没有通过。然而仅仅过了几天,数学家外尔(H.Weyl)欲接替希尔伯特在格丁根的职位而推掉高等研究院的聘任,于是机会就降I临在了冯·诺伊曼身上,那时他刚过29岁。

至此,冯·诺伊曼顺风顺水,除了继续在德国肩动的研究外,他又开辟了多个研究新方向,其中特别重要的有遍历理论、拓扑群理论和算子代数理论(后人为了纪念冯·诺伊曼,又把算子代数称为冯·诺伊曼代数)。临近第二次世界大战爆发,冯·诺伊曼的研究方向发生了转变,他从纯粹数学转向应用数学。1930年代中期,冯-诺伊曼对流体力学中的湍流问题感兴趣,由于要解非线性方程,因此需要处理的数据很多,而当时的台式机械加法机无法胜任数据处理工作。冯·诺伊曼开始研究数值分析,并关注计算机的改进。

1937年,受维布伦的推荐,冯·诺伊曼成为阿伯丁弹道研究实验室的兼职顾问,该实验室设在马里兰州的阿伯丁试验场,直属美国陆军军械局。在第一次世界大战后的二十几年间,阿伯丁的枪炮射击表变得越来越复杂,实验室专门购置了一台布什微分分析机做运算,这种分析机由电动机、齿轮和转盘组成,进行大量运算时误差不可避免。冯·诺伊曼通过研究,与肯特(R.Kent)合作写成的论文《从逐次差分估计可能误差》在1940年作为阿伯丁实验基地的第175份报告公开发表。其后两年间,冯-诺伊曼对这份报告又做了3次增补,扩大了他在军界和数学界的影响。

1940年年底,冯·诺伊曼已成为弹道研究实验室科学咨询委员会的成员,并兼任美国数学学会和美国数学联合会战争筹备委员会弹道学首席顾问等职。随着实际问题的增多,冯·诺伊曼的研究扩展到爆炸冲击波理论,很快他又以爆炸计算大师出名,而这给他带来更多的任务。

1943年9月,冯·诺伊曼成为曼哈顿计划的重要成员,经常飞往位于新墨西哥州洛斯阿拉莫斯的原子弹秘密基地工作。当时由于铀235有限,洛斯阿拉莫斯的科学家也在研发使用钚239的核弹,冯·诺伊曼负责研究爆聚,以使爆炸冲击波压缩原子弹钚核心达到临界质量。计算爆聚必须解大量非线性方程式,最初大部分计算是靠纸和笔进行。

1944年4月,基地理论部配备了IBM穿孔卡片台式计算机,大大提高了计算效率。人工计算两组10位数的乘法(如1 234 567 809×9 087 654 321)大约要5分钟,新机器可以在10-15秒内完成,这立即引起了冯·诺伊曼的关注。他从1944年夏天起就到贝尔实验室考察用继电器制造的复数计算机;又去访问哈佛大学,考察Mark I的计算机是否能为原子弹的研究派上用处。这两种机器做两组10位数的乘法大约用1秒钟,但在解复杂的方程时,优势并不明显。

从夏天到秋天,冯-诺伊曼搭火车穿梭于哈佛大学、普林斯顿大学、贝尔实验室和阿伯丁试验场之间,像蜜蜂般飞来飞去。在奔波的过程中,冯·诺伊曼不断思考如何对现行的计算机做改进,而在看过宾夕法尼亚大学的ENIAC后,他的思想逐步明确:要制造既能以电子速度运转,又能在内部存储和修改程序的计算机。

投身研究计算机

确切地说,冯·诺伊曼只是分身来研究计算机的。诚如1943年7月他在写给友人的信中所说:“我不知道自己应该一女侍二夫还是一女侍三夫。”所谓一女侍二夫是指冯·诺伊曼同时在美国陆军军械局和海军军械局兼职,而一女侍三夫是指他又受邀做洛斯阿拉莫斯基地的顾问,从爆聚研究开始关注电子计算机。

说来也巧,1944年8月的一天,冯·诺伊曼在阿伯丁试验场火车站的站台上,与ENIAC计划的联络官戈德斯坦(H.Goldstine)中尉邂逅。当时,戈德斯坦在站台上等候北上的火车,虽然他与冯·诺伊曼素未谋面,却立刻认出这位大数学家。戈德斯坦后来回忆道:“我冒昧地走向这位世界闻名的大人物,跟他做自我介绍,并开始攀谈。幸好冯·诺伊曼为人亲切和善,总是竭力让别人在他面前放松。等冯-诺伊曼搞清楚我在研发计算机,而且我们的计算机每秒钟可以完成333次乘法运算时,谈话的气氛立刻改变,而更像是数学博士学位的答辩。”

在戈德斯坦的极力邀请下,冯·诺伊曼几天后访问宾夕法尼亚大学,参观正在建造的ENIAC。埃克特(J.P.Eckert)对这位大数学家十分好奇,心里早已想好怎样判断冯·诺伊曼是不是“真的天才”:只要看他提出的第一个问题是否关于机器的逻辑架构。结果,冯·诺伊曼果真一开始就提出这个问题,令埃克特叹服不已。

冯·诺伊曼发现,ENIAC计算他给出的方程要比哈佛的Mark I快得多,但是启动慢很多。使用Mark I计算一个7项级数需要15分钟,启动时间仅为3分钟;而使用ENIAC计算只需1秒钟,准备时间则需要15分钟。显然,ENIAC在处理许多不同的问题时,启动准备已是严重的缺陷。冯·诺伊曼很快发现症结所在——ENIAC缺乏程序存储能力。

其实在过去的一年里,莫奇利(J.Mauchly)和埃克特绞尽脑汁,想方设法把程序存储到机器内部,而冯·诺伊曼从贝尔实验室、哈佛大学和其他地方吸收的思想,一下就提升了他们对存储程序思考的层次。冯·诺伊曼成为ENIAC团队的顾问后,大力推动他的理念:计算机程序应该与一般资料都存储在相同的记忆装置上,这样会便于工程师在机器运作时修改程序。

冯·诺伊曼和ENIAC团队连续开了多次会议,1945年春天的四次正式会议尤其具有意义,会议记录甚至以“与冯·诺伊曼的会议”为标题。冯·诺伊曼在黑板前来回踱步,以苏格拉底式的提问带动讨论,他吸收众人的想法,消化琢磨后再写在黑板上。冯·诺伊曼的超凡才智令人生畏,他宣布任何的事情很少有人会反驳,只有女程序操作员詹宁斯(J.Jennings)敢冒大不韪。有一天,詹宁斯因为和冯·诺伊曼看法不同,与他起了争执,会议室中的男性全都以难以置信的眼光看着詹宁斯。但冯·诺伊曼偏着头沉吟半晌后,同意了詹宁斯的看法。

冯·诺伊曼深知计算机程序设计基本原则的重要性。他明白要设计出简洁的指令集,严谨的逻辑和精确的表达缺一不可。詹宁斯回忆说:“他非常详细地向我们解释,为何需要或不需要某个特殊的指令。这是我生平头一回了解程序码的重要性,以及它背后的逻辑和整个指令集必备的元素。”

正是经过了反复讨论和思想的不断碰撞,ENIAC团队向陆军军械部提出建议,改进并制造新一代的电子计算机。新机器将采用二进位制,而非ENIAC的十进位制,将采用汞延迟线做存储装置,并使用“冯·诺伊曼结构”的许多部分(虽然不是全部)。新机器名为“电子离散可变自动计算机”(electronic discrete variable automatic calculator),

缩写为EDVAC。冯·诺伊曼提议为EDVAC起草一个逻辑框架报告。按戈德斯坦的说法,这将相当重要,因为此前没有人为ENIAC起草过这类文件。

报告草案指方向

1945年6月,冯·诺伊曼把所写的报告手稿寄给戈德斯坦。戈德斯坦将手稿交付打字员录入,打字稿长达101页。扉页上的标题是“关于EDVAC的报告草案”(First Draft of a Report on the EDVAC),只署了冯·诺伊曼_人的名字,下有美国陆军军械部与宾夕法尼亚大学的合同编号。报告草案共油印了24份,于1945年6月30日发布。

报告草案虽并未定稿,但内容已非常丰富,主要表述了两个重要思想:一是控制计算机的程序应该存放在存储器中,而不由开关连线来完成编程(开关连线会大大降低计算机的运行效率)。二是计算机应该采用二进制,而不是十进制(十进制的方式会导致计算机的内部结构变得异常复杂)。

报告草案明确计算机内部结构应该有五部分组成:中央运算(central arithmetical,CA)、中央控制(central control,缩写CC)、存储(memory,缩写M)、输入设备(input,缩写I)和输出设备(output,缩写0)。有关原文表述如下——

2.2第一:鉴于这种设备的主要功用是一台计算机,它需要经常执行基本的数学运算,包括加、减、乘,除。因此很合理地,这种设备需要包括专门负责这些运算的组件。

……毕竟,这种设备必须有它的中央运算部分,即构成第一部分:CA。

2.3第二:设备的逻辑控制,即能非常有效地实现运算的正确排序的中央控制组件。

如果设备需要保证其灵活性,也就是说尽可能做到全能型,那就必须有一个独立的组件,其功能处于给出特定指令和定义特定问题之间,使得不管怎样的指令通过这个组件都能被对应执行。上游组件必须在设备中以某种形式储存(这在1.2中已经提及),下游组件则由运算操作组件构成。这里的中央控制组件即构成第二部分:CC。

2.4第三:任何一个可执行长时间复杂运算序列的设备都需要有一个相当大的存储容量……

(b)处理复杂问题的指令会构成大量的数据资料,特别是当代码需要依情况改变时,这些数据资料必须被记忆……

毕竟,完整的存储构成设备的第三部分:M。

2.6这三个特殊部分CA,CC(合称C)和M,与人类的神经系统中的联络神经元相类似,而神经系统中的传入神经和传出神经则与之后介绍的输入组件和输出组件对应……

该设备还必须加入一个能使输入和输出组件联接的特殊介质,我们称这种介质为外部记录介质:R……

2.7第四:该设备必须要有传输的组件,使信息从R传到c和M。这个输入组件即第四部分:I。之后我们会讲,所有信息从R(经由I)传到M是最好的路径。而不要直接传到C……

2.8第五:该设备必须要有传输的组件,使信息从C、M传到R,这个输出组件即称第五部分:O。之后我们会讲,所有信息从M(经由O)传到R是最好的路径,而不要直接从C传出……

从上引冯·诺伊曼报告草案中的这部分内容,可以清楚地看到一套逻辑完整的计算机结构,这种结构后称为“冯·诺伊曼结构”,五个部分如今表述为运算器、控制器、存储器、输入设备和输出设备。

大半个世纪过去了,尽管计算机在元器件技术等方面发生了翻天覆地的变化,但绝大多数计算机都仍以“冯·诺伊曼结构”为设计基础。

战后研究再深入

二战结束后,美国好几所大学都想挖走冯·诺伊曼,而他还是选择留在普林斯顿高等研究院,退役的戈德斯坦也追随偶像来到这里,他和伯克斯(A.W.Burks)成为冯·诺伊曼的重要助手。从1946年到1951年,这三个人就计算机研究共同发表了多篇原创性论文。

戈德斯坦回忆道,冯·诺伊曼会以谈话或在黑板上列出大纲的形式,就一篇论文的主题提出建议,先由戈德斯坦(有段时间与伯克斯一起)落实成文,然后冯·诺伊曼会提一些增补意见,戈德斯坦再据此修改文稿。在此阶段,冯·诺伊曼也可能会大手笔地把论文重写一遍。待论文发表后,冯·诺伊曼会开办讲座或进行非正式谈话,比之前论文的阐述又进一步。由于冯·诺伊曼的思维快捷,一般人很难及时搞清楚他到底要干什么。其实,冯·诺伊曼的核心思想很明确,就是找到计算机的最佳新设计。在所有的部件中,冯·诺伊曼认为存储器是最具革新性的,他决心打造出一台由内部存储器控制的通用全自动计算机。

理想的存储器应当具有无限容量并可以不受限制地随机存取,依当时的技术,这样的存储器显然无法制成,但冯·诺伊曼强调每一项改进都应该朝着这个目标迈进。鉴于存储器的存储成本相对计算成本要高很多,冯·诺伊曼建议通过建立存储器层次来实现这个目标。初级存储器体积很小,可以随机、快捷地存取;接下来是二级存储器,它能把信息自动转换到初级存储器。

在进行理论研究的同时,冯·诺伊曼也推动普林斯顿高等研究院的计算机建造,由于多种原因,项目进展相对迟缓,但最终这部称为IAS(高等研究院的缩写)的计算机以及它在美国最初的七个子产品,从1952年到1954年先后进入完全运转状态。所有产品都向冯·诺伊曼在高等研究院发表的论文致敬,正是这些论文成为这些机构研发计算机的蓝本。这七台计算机是洛斯阿拉莫斯国家实验室的MANIAC(Mathematical Analyzer,Numerical Integratorand Computer)、兰德公司的JOHNNIAC(Johnv.Neumann Integrator and Automatic Computer)、阿尔贡国家实验室的AVIDAC(Argonne Version of the Institute's Digital Automatic Computer)、阿伯丁弹道研究实验室的ORDVAC(Ordnance Di screte Variable Automatic Computer)、橡树岭国家实验室的ORACLE(Oak Ridge Automatic Computer and Logical Engine)、伊利诺伊大学的ILLIAC(llinois Automatic Computer)以及最为重要的IBM701。701很快使IBM占领了全球市场,从那以后IBM就不断向冯·诺伊曼表达感激之情。

普林斯顿高等研究院在国外的子产品研究开始仅限于大学这个象牙塔内,没有抓紧进行商业开发。直到1950年代初,普林斯顿高等研究院的克隆产品才开始在全世界出现——从悉尼大学的SILLIAC到以色列的WEIZAC、德国慕尼黑的PERM、瑞典的BESK,甚至莫斯科科学院的BESM。

可以说,正是1945-1949年冯·诺伊曼在高等研究院发表的论文部分地推动了真正意义上的计算机革命。

在人生的最后几年,冯·诺伊曼开始思考“细胞自动机”。1953年在瓦尼克桑讲座上,他想象将来某一天,人类能够制造出由机械细胞组成的自动机……在生命的最后阶段,冯·诺伊曼还在将计算机与人脑进行比较:大脑在进行多位数求和时要慢得多,但是大脑还有许多其他能力,如视觉认知、想象、横向思考能力和确定关注对象等,这是计算机所不具备的。冯·诺伊曼写道:大脑“这种不同的逻辑结构,其标志是更小的逻辑深度和算术深度(这比我们在其他同样条件下所用的逻辑深度和算术深度小得多)。冈此,中央神经系统中的逻辑学和数学,当我们把它作为语言来看时,它一定在结构上和我们日常经验中的语言有着本质的不同。”

1957年2月8日,冯·诺伊曼因癌症去世。他尚未完成的讲稿在他去世后以《计算机与人脑》为题出版。

如今,各种类型的电子计算机遍布世界,而它们几乎都采用冯·诺伊曼体系结构。这位天才人物的贡献,值得我们永世铭记。

猜你喜欢
德斯坦组件计算机
无人机智能巡检在光伏电站组件诊断中的应用
计算机操作系统
欧元之父瓦莱里·吉斯卡尔·德斯坦去世,享年94岁
法国前总统: 中国就是中心之国
法国前总统德斯坦感染新冠去世
新型碎边剪刀盘组件
基于计算机自然语言处理的机器翻译技术应用与简介
U盾外壳组件注塑模具设计
信息系统审计中计算机审计的应用
风起新一代光伏组件膜层:SSG纳米自清洁膜层