第五章 科学全才建奇功
在 1945 年 6 月,当埃尼阿克(ENIAC)还未向外界公开时,著名科学家冯·诺伊曼就主持制订了埃德伐克(EDVAC)的研制方案,在这个方案中,首先提出了著名的“程序内存”概念,成为计算机发展史上的又一个重要里程碑。
1944 年夏季的一天,就在弹道实验室所在地的阿伯丁火车站,当时正从事 ENIAC 研制的戈尔斯坦看见冯·诺伊曼正在等车,就迎上前去与他交谈起来。冯·诺伊曼当时虽然已是世界著名的数学家了,但他平易近人,因此在开始交谈时气氛非常融洽,戈尔斯坦并不感到拘束,但当戈尔斯坦提起他们正在研制每秒运算 300 多次的电子计算机时,气氛就立刻严肃起来,冯·诺伊曼详尽无遗地向戈尔斯坦访问了有关的情况,很明显,正是 ENIAC 的研制方案引起了冯·诺伊曼的极大兴趣。
科学全才冯·诺伊曼是本世纪最杰出、最有影响科学家之一,他不仅同时在基础数学和应用数学两方面都作出了开创性的重大贡献,还对电子计算机的发展产生了深远的影响,被人尊称为“计算机之父”。
1903 年,冯·诺伊曼出生于布达佩斯一个匈牙利籍犹太人的家中,当时匈牙利还是奥匈帝国的一部分。
冯·诺伊曼从小就显示出超人的才华,他的记忆力超群,读过的书能立即一字不漏地复述出来,而且经久不忘。他的心算能力也令人赞叹不已。一次,有一位数学教师,遇到了一个复杂的计算问题,用台式计算机算了一个通宵,还是毫无眉目。而冯·诺伊曼听说后,眼睛盯着天花板沉思了一会儿, 不到 7 分钟就把正确答案口算出来了。随后又用了半个小时,连进行计算的最好方法也考虑出来了。
从少年时代起,他的老师和他的父亲就十分注意对他进行特殊的精心培养。1926 年在他 22 岁时就获得了数学博士学位。他一生通晓 7 种语言,这成为他从事广泛科学研究强有力的工具。
1930 年,冯·诺伊曼移居美国。1942 年,为了准备对德作战,美国按照曼哈顿计划,建立了洛斯·阿拉莫斯实验室,研制原子弹等尖端武器。1943 年,冯·诺伊曼以顾问的身份参加了这一实验室的工作,那时他还同时担任阿伯丁实验室的顾问。
在冯·诺伊曼 40 岁左右时,由于第二次世界大战期间美国研制原子弹等战略武器的需要,把他引入计算机科学的领域,从此以后,他就集中主要精力从事这个领域的研究。
在洛斯·阿拉莫斯实验室,为了研究原子核裂变反应过程,往往需要进行大量的计算。而要对一种裂变反应的传播作出肯定或否定的答复,就会涉及到数十亿次初等算术运算和初等逻辑判断,为此,洛斯·阿拉莫斯实验室同阿伯丁实验室一样,调集了上百名计算员日以继夜用台式计算机进行运算,然而结果还是不能令人满意。正如冯·诺伊曼所说:“为了完成这些计算,必须进行比迄今为止人类已进行过的全部计算总次数还要多得多的计算。”
因此,当冯·诺伊曼听一戈尔斯坦谈起研制电子计算机的情况时,就立刻敏锐地意识到 ENIAC 研制小组工作的深远意义。
1944 年夏天,冯·诺伊曼作为顾问与 ENIAC 研制小组一起活动。
当时 ENIAC 还在孕育之中,冯·诺伊曼就敏锐地发现,这个胎儿潜伏着来自机电式计算机母体的某些先天性的缺陷。这主要反映在:十进制记数限制了机器的存贮量;而“外插型”程序又增加了计算前的准备时间。为此, 冯·诺伊曼提议,开始孕育另一个胎儿,这就是后来研制的埃德伐克(EDVAC, 离散变量自动电子计算机的英文缩写)。
参加研制 EDVAC 的,除了冯·诺伊曼及莫奇利和埃克特外,还有戈尔斯坦和勃克斯等人。在这些人的共同努力下, 1945 年 6 月发表了由冯·诺伊曼主持制订的研制 EDVAC 的方案,它是一种全新的、采用“存贮程序”概念的通用电子计算机方案,在 EDVAC 中,用存贮设备使指令的执行实现了自动化。这种采用“存贮程序”的计算机,被称为冯·诺伊曼,成为随后研制计算机的楷模。因此,应该说,真正具有现代意义的电子计算机是从 EDVAC 开始的。
从开始研究原始的计算工具,到 ENIAC 的问世,人类经历了几千年以上漫长的岁月。但从 1944 年 8 月到 1945 年 6 月短短十个月内,计算机技术取得了迅猛的进展,许多崭新的思想,从一个富于首创精神的集体中不断涌现出来。
但是,在 EDVAC 方案提出后不久,由于发明权的争执,研制小组发生了令人痛心的分裂,这在科技史上是经常出现的。此后戈尔斯坦与勃克斯随同冯·诺伊曼回到了普林斯顿高等研究院,继续从事有关 EDVAC 逻辑结构的研究。
EDVAC 方案明确规定了计算机有五个主要部件:输入装置、运算器、存贮器、逻辑控制装置、输出装置,并说明了这五个部分的功能和相互关系。 EDVAC 方案有两项非常重大的改进:一是为了充分发挥电子元件工作特
点(高速和简便)而使用二进制,这样对于数的表示与存贮都比较适合,不仅运算速度快,还能节省存贮设备和简化逻辑线路。机器的主要工作并不是计算,而逻辑运算,因此制造二进制的运算器,就使计算机的结构紧凑且更通用化,这样在设计同一类型计算机时,工作量可大大减少。
EDVAC 方案的另一项改进,是提出了“程序内存”的概念,这样,不仅数据能存入存贮器,而且指令在用数字表示后也能存入存贮器,于是就可以像数据一样进行处理,通过一种专门的指令,从一条程序指令转到下一条程序指令的过程,就能自动完成。
“程序内存”概念被称为计算机发展史上的一个重要里程碑。利用这个概念,使程序的逻辑选择可以在机器内部进行,从而使所有运算真正实现了自动化。
“程序内存”的概念至今已经很自然地被人们接受,但在当时却是一项非常重大的突破。这个概念的提出,不仅使计算机的运算速度大大提高,而且使计算机的结构简化。当时 EDVAC 所使用的主要逻辑线路,在现代的计算机中仍然被使用,因此 ED- VAC 方案为现代电子计算机的设计奠定了基础。以后的计算机只是改变了实现逻辑线路的手段,例如用晶体管、集成电路代替了电子管,使用了磁芯等新的存贮手段等,以及对逻辑电路作了改进而已。
由于冯·诺伊曼主持制定的 EDVAC 方案为现代计算机的发展指明了正确的方向对现代计算机的设计产生了深远的影响,因此人们把现代计算机称为冯·诺伊曼型计算机。
在 EDVAC 方案的基础上,冯·诺伊曼、戈尔斯坦和勃克斯三人于 1946
年 6 月间在为普林斯顿大学高等研究院研制新的 IAS 计算机(IAS 是高等研究院英文名称的缩写)时,又提出了一个更完整的“电子计算机逻辑结构的初步探讨”的报告。这个报告的发表,在美国及西欧掀起了“计算机热”, 冯·诺伊曼的声望和影响,极大地促进了当时刚刚起步的计算机事业的发展。
冯·诺伊曼本人在普林斯顿高等研究院主持研制 ED-VAC,研制工作在极保密的情况下进行,直到 1951 年才告完成。这台计算机的特点一是快,二是通用性强,它不仅能应用于各种科学计算,甚至连复杂的数论问题也能解决, 而且可以用于信息检索、数字控制等方面。这是由于它采用二进制和存贮量大的缘故。
但是最早问世的内存程序的计算机并不是 EDVAC ,而是埃德萨克
(EDSAC,电子继电器存贮程序自动计算机),它是由英国剑桥大学的威尔克斯与他的同事在 1949 年 5 月完成的。
威尔克斯曾在 1946 年七八月间,到宾夕法尼亚大学参加过由冯·诺伊曼
主持一个训练班,在这个班听课的有来自英、美等国 20 个机构的 29 名专家。学习内容是计算机的设计理论和程序内存概念的运用。这个训练班办得很及时,它犹如一石激起千重浪,开创了计算机研制的新局面。当时,有好几台程序内存的计算机同时在英、美等国设计制造。威尔克斯在回国后,立即抓紧主持对 EDSAC 的研制,终于捷足先登地摘取了第一台“内贮程序”计算机研制者的桂冠。
在 EDSAC 中,有关的程序像数值数据一样,存入存贮器中,无论什么时间,无论使用几次都可以。计算机在运算时就能修改程序,在运算任务改变时就不再需要一一重新接线了,因此使用时比 ENIAC 方灵活得多。它只用了3000 个电子管,体积比 ENIAC 小得多,但存贮量却增加了。
ENIAC 采用的是十进制,而且是通过直接计数而不是用逻辑电路进行计算的。而 EDVAC 采用的是二进制,用逻辑电路来进行二进制数的算术运算, 而且还采用了再生存贮器。显然,参加 EDVAC 研制的莫奇利和埃克特仍沿用了阿塔纳索夫所提出的研制数字电子计算机的基本原理。
冯·诺伊曼除了在计算机理论和设计方面作出突出的贡献外,还大力开拓计算机在许多领域上的应用。在计算机许多先驱者中,冯·诺伊曼出类拔萃,其原因除了他本人的才智外,还由于他通过自己在许多领域中广泛使用电子计算机,为电子计算机的应用开辟了广阔的前景。
冯·诺伊曼同图林一样,认为计算机只是达到目的的一种手段。他只要有机会就毫不犹豫地利用计算机来解决各个科学领域中出现的问题。正是计算机强烈地激起他的才智,在原子物理、流体力学、计算数学等许多领域作出重大的贡献,在编程序时使用流程图也是由他首先倡导的。
在普林斯顿高等研究院,冯·诺伊曼还提出了一项用计算机进行气象预报的研究计划,这项研究最后开成为系统的气象数值预报的方法。
在电子计算机起步的阶段,主要用于科学和工程方面的计算。例如曾利用计算机来协助研制氢弹的工作,使氢弹的体积缩小到能够用导弹来发射的程度。但是在当时有一些有识之士,其中包括莫奇利和埃克特,他们已预见到计算机必定会在更多的领域中得到应用。冯·诺伊曼还敏锐地预见到,计算机还将能用于事务处理。
特别需要强调指出的是,冯·诺伊曼对计算机和人脑之间的相似性怀有浓厚的兴趣。他从神经学和心理学的角度对人脑思维过程进行研究,几乎独
立地、创造性地开拓出信息传递和自动机理论方面的研究领域。他虽然因病过早地于 1957 年 54 岁时去世,但他为现代计算机事业的发展开辟了广阔的道路,他本人作为对计算机发展一位最有影响的开拓者,名垂计算机发展的史册。