计算机史
第二章 来去匆匆的过客——机电计算机
在本世纪30—40 年代,由于在穿孔式计算技术主面取得的重要进展,以及在某些技术领域 (例如在电话自动交换设备的研制中)使用继电器的成功经验,一些科技人员,提出了几种可以完成复杂计算工作的通用机电计算机的研制方案,巴贝奇分析机中由蒸汽驱动的齿轮,已被继电器取代。从而使巴贝奇未能实现的理想,在这时变成了现实。
尽管机电计算机的研制在计算机发展史中仅占了短暂的一页,但这些计算机的研制者们为现代计算机的发展,揭开了序幕。他们以自己的聪明才智和坚强毅力;为电子计算机的发展铺平了道路。
一、自费研究起家的发明家
最早的用继电器进行程序控制的机电计算机,在40 年代上半叶由德国和美国几乎同时制成。
这些计算机的主要研制者,在德国是楚泽,在美国是艾肯和斯蒂比兹。楚泽的工作稍早于美国学者,但在当时美国的学者并不了解。他们是各自相互独立地完成研制工作的。
楚泽研制了一系列令人惊奇的计算机,与同一时期美国同行们制造的计算机相类似,而且有许多性能还超过了他们。
楚泽在 1910年生于维尔梅斯多夫,在东普鲁士受到早期教育。东普鲁士是一个比较保守的地方,为了离开这个闭塞的环境,楚泽进入了一所比较开放的学校。
在十几岁时,楚泽就被工程科学迷住了。17岁时,他进入柏林工业大学,经过预科和本科八年的学习年,取得了土木工程学士的学位。
大学毕业后,楚泽在柏林的一家飞机工厂中找到了工作,他的任务是对飞机强度进行分析。这项工作需要反复进行冗长且令人生厌的计算,于是他产生了设法制造出一台机器来自动进行计算的念头。楚泽后来回忆说,当时的辅助计算工具只有计算尺,而计算任务日益繁重,要费很多的时间。因此,我想改变这种状况。
1934 年,楚泽开始拟订研制计划,并于 1936 年开始执行。他预料,重要的问题并不在于计算 (加减等)本身,而是在于中间步骤,也就是中间结果的记录和传送,正像人工计算时,人脑 “计算机”必须把它们记在纸上一样。
楚泽意识到,他必须找到一种传送中间结果的方法。最初,他想到利用一种穿孔卡系统来进行传送,但是由于这种系统安装起来太费劲而放弃了这种打算。
在楚泽设计的计算机中,有存贮单元、运算单元,连接这两个单元的选择单元,以及利用穿孔带来指挥的指挥单元。控制单元能通过传送指令来选择机械动作并控制运算单元的工作。
1936年,当楚泽对这些设想觉得很完善时,他就决定全力以赴,使这项研制计划付诸实施。
1937 年楚泽为自己设计的计算机制造出一种可存贮 64 位数的机械存贮单元,在这个单元中,采用在细孔中移动针尖位置来指明数字0 或数字 1 的方法,从而把二进制数表示出来,这样就使楚泽制造出的存贮器非常紧凑,体积大约只有 1立方米。
在 1938 年,楚泽设法把这个存贮器同一个机械运算单元连结起来。为此,他用钢锯把圆钢锯成数千片薄片,然后用螺栓把它们拧在一起,一台机器就安装起来了。这就是楚泽在朋友协助下试制成功的第一台二进制计算机 ——Z—1 型计算机。但 Z—1 型仍然是一种纯机械式的计算装置,不仅运算速度慢,可靠性也差,始终未能投入使用。
由于Z—1号性能并不理想,随后楚泽就立即开始设计机械部件与电磁继电器混用的计算装置。
楚泽的第二台计算机在结构上又朝前迈进了一步。他的朋友帮助他储存了一批从电话公司更换下来的继电器,于是这台命名为Z—2型的计算机很快就在 1939年完工了。
由于使用了继电器,Z—2 型的可靠性比 Z—1 型要差些,但是运行却很正常。
这时楚泽被应征入伍,研制工作面临中断的处境。他的朋友和合作者施赖尔博士向军方提交书面材料,推荐楚泽研制工作的重要价值,使楚泽免服兵役。而同时楚泽的研究成果引起了德国飞机实验研究所的注意。这个研究所迫切希望消除飞机在飞行时机翼出现的颤振,这需要进行一系列十分复杂的运算,他们看出计算机能促使解决机翼颤振问题所需要的大量计算快速完成,因此决定为楚泽计算机的研制提供经费。但是战争期间工厂从不休假,楚泽只能利用晚间进行研制。
楚泽在得到资助后,就立即投入到新型的继电器计算机——Z—3 型计算机的研制中去,不过试制工作仍在家里的客厅中进行。在第二次世界大战期间的1941年,楚泽的Z—3 型计算机开始运行。Z—3 型计算机是世界上第一台采用电磁继电器进行程序控制、穿孔带作输入的通用自动计算机。
Z—3 型计算机工作了三年。在 1944 年美军对柏林的一次空袭中,楚泽的住宅和 Z—3 型机都被炸毁。这时离德国法西斯的灭亡只有几个月的时间了。到 1945 年,楚泽又完成了 Z—4 型机的研制,Z—4 型机是一种比 Z—3型机更先进的机电式计算机,曾在V—2型火箭的研制中发挥过作用。为了避免Z—4 型机被炸毁,楚泽三番五次在柏林把Z—4 型机搬来搬去。在德国战败后,楚泽飘泊到瑞士的一个荒凉的村庄。他一度对软件很感兴趣,最早提出了 “程序设计”的概念,这对后来软件的发展有重要的影响。
1949年楚泽创办了“楚泽计算机公司”,计算机研制工作不断取得进展。许多大学和科研机构订购楚泽研制的计算机。Z—4 型机于 1949 年在瑞士苏黎世综合技术学院安装完毕,由于它的可靠性好,一直工作到 1958年。1954年前在苏黎世综合技术学院运行,1955年到 1958年为法国国防部效劳。
楚泽公司最初研制的计算机是Z—22型,1958年制造出电子管通用计算机 Z—22R型。
到60 年代初,楚泽公司已成了有千名雇员的大公司。但楚泽认为“计算机的发展速度越来越快,我们跟不上发展的步伐”。1966年,他主动退出竞争,把自己创办的公司出售给西门子公司。楚泽至今健在,仍以顾问的身份为西门子公司服务。
早在 1938年研制出计算机的楚泽,被人遗忘了几乎二十年才被公认为计算机的发明者,1956年被柏林工业大学授予名誉博士。现在他同夫人生活在一幢简朴的住宅里,安贫乐道,计算机的发明并没有使他富起来。在回忆他当年的发明动机时,他说:“我只是希望我的机器能够减轻人们的繁琐工作。”但是世人不会忘记他的历史功绩。
二、斯蒂比北和继电器计算机
在 20 世纪30 年代中叶,至少有三个利用继电器的功能来构思和研制计算装置。他们就是德国的楚泽,纽约的斯蒂比兹和麻省理工学院的艾肯。
尽管他们的研制工作,是在各自的环境中相互独立地进行的,所研制的机器,在许多方面都有很大的差别。但是有趣的是,他们三人所设计的这些机器,使用的元件和性能等方面有许多类似之处。每一种机器都是由控制的二进制继电器,和一些进行数的存贮和运算以及程序输入的穿孔带机电设备组成。而且每一种机器都能完成一系列的四则运算,还能按照计算的需要自动存贮和取出中间结果。
他们的研究成果,实现了巴贝奇建造分析机的理想。而使这个理想成为现实的条件,就是继电器技术的运用。
继电器是一种电磁装置,它利用一个电路的电流变化,去对另一个 (继电器)电路的电流进行遥控或自动控制。利用它能使一个回路保持接通,而使其他回路断开,因此它是一种 “开关装置”。
最初,继电器用来对电报收报机的电路进行控制,后来又用于电话中继接线。当电流切断,电磁消失,继电器就 “闭合”,一个闭合的断电器就能让一个电话接通;而一个 “断工”的继电器,就不能接通电话。
斯蒂比兹对继电器具有的逻辑功能很感兴趣。他发现继电器的闭合或断开的 “开关”操作,与二进制数之间有平行的对应关系,于是想到,可以用继电器的上述 “开关”操作来实现二进制数的加减运算。而一个用继电器装配的机器如果能进行加减,那么它就能进行乘除,这是因为乘或除,能分别转化为一系列的加或减,斯蒂比兹认为这非常有趣,于是决定用继电器来试装计算装置。
在早期的机电式计算机中,继电器用来作为一种开关装置。但继电器的开关速度大约为 1/100秒,使计算机的速度受到很大的限制。后来用电子管取代继电器,所制成的就是电子管计算机。
1937 年,在贝尔实验室工作的数学家斯蒂比兹,制造出一种复数计算机,称为 K型计算机。由于这台机器在厨房的餐桌上装配起来的,而在英语中, “厨房”的第一个字母为K,因此斯蒂比兹的妻子把这项小发明称为 K型机。斯蒂比兹把K型机中的继电器与电池接通后,发现确实能进行二进制的加法。不过在当地他本人并没有意识到他的这一项发明居然是促使计算机时代到来的前奏。
可是,当斯蒂比兹把自己研制的 K 型机带到贝尔实验室向同事们演示时,所得到的却是同事们的暗自发笑。当他提出整个计算机都能用继电器制造出来的想法时。他的同事认为这个主张是荒诞不经的,对他使用古老的、令人费解的二进制表示法来搞这一项发明,觉得简直不可思议。而且认为,即使它能制造出来,就需要几百个继电器,这与当时实验室中所用的台式计算机相比,既庞大又昂贵,毫无可取之处。
但是斯蒂比兹本人并不认为自己的想法是荒谬的。后来他又花了几个星期来进行周密的考虑和改进,从而使他的K型机更加完善了。
但是,促使斯蒂比兹的发明成为正式产品的推动力,是贝尔电话公司本身对 “复数”进行大量、复杂、准确计算的需要。
在30 年代的贝尔实验室,为了满足电路计算的需要,配备了满房间的女计算员,她们成天用台式计算机来计算复数的乘积和商。两个复数相乘,大约需要进行6 次四则运算,而两个复数相除则大约需要 12次运算。而且每次运算都需要暂时存贮许多中间结果,麻烦得很。
在 1938年初,计算任务越来越繁重,贝尔实验室的工作人员提议,把两个台式计算机用机械方式连接在一起,来简化复数的计算。在理论上,这样确实能节省计算员的时间和劳动,但这样组合成的大型计算机,不仅难于制造,操作起来也不容易,正是在这种情况下,人们才想起了斯蒂比兹设计的用继电器控制的K型机。
1938年夏天,斯蒂比兹所在数学室的主管试探地向他询问,他设计的那种小巧的继电器计算机能否进行复数的运算?斯蒂比兹肯定地回答说,可以作复数运算,并说他已经对这种计算机的大部分电路进行过研究。
斯蒂比兹很快就采用标准继电器和一些通用元件,为这种能进行复数运算的计算机画出了电路图。他的初步设想是别出心裁,与众不同的。一位电路专家看了他的电路图后,肯定它们确实是有应用价值的。于是这位电路专家对图纸作了一些必要的修改,研制工作很快就于 1938年9 月正式开始了。经过一年的努力,这一台后来称为贝尔实验室M—1型机,在 1939年9 月制造成功。
这台计算机开始只能作复数的乘除,因为这两种运算最费时间,而且这种计算机本来就是为了处理这种运算而特意制造的。用M—1型机进行一次复数乘法大约只要花45 秒钟的时间。
贝尔实验室计算机小组的人员在实践中发现,用计算机进行复数乘除果然十分方便,于是就决定立即对M—1型机加以改进,因为他们还想利用计算机进行复数的加减。经过两天的艰苦努力,他们终于如愿以偿,这样,M 型计算机就能进行复数的四则运算了。
1940年9 月,美国数学会的一次地区性会议在新罕布夏州汉诺威的达特默思大学举行。会议邀请贝尔实验室把他们的M—1型机向与会人员作演示。
在会议举行前,电报线架设工使用电报线把M—1型机所在地纽约与达特默思校园相连。
在会议上,贝尔实验室人员用M—1型机进行了出色的表演。在会上当场把一个数学问题打印出来并传输纽约,不到一分钟,电传打字机就开始打印出结果来了。
M—1型机安放在贝尔实验室的一个房间里,人们在使用计算机时,可以在很远的地方利用与它相连的三台电传打字机中的任何一台进行操作。斯蒂比兹把早年对农场火炉进行遥控的设想进一步应用到计算机上来了。演示结果表明,M—1型这种复数计算机,它的运算功能令人满意,给人们留下了深刻的印象。
M—1型机在达特默思大学成功的表演,是计算机发展史上一件大事,它开创了人类——对计算机进行远距离控制的先河。至今,计算机远程通信已成为现实,远隔万里的人们可以相互利用对方的计算机设备和所存贮的信息。
达特默思校园的这次会议特别引人注目,还因为它的参加者中有不少是美国最著名的数学家和后来一些重要计算机研制项目的带头人,如冯·诺伊曼,莫奇利和维纳等人。
尽管复数计算机 M—1型只能对复数进行计算,但是在贝尔实验室里却使用了好几年。M—1型机的成功,鼓励斯蒂比兹制订出进一上的研制计划,其中包括用穿孔带设备来改进计算机的性能。
M—1型机是这一系列中5种型号的第一种。它是唯一由贝尔实验室独立设计和制造的机器。
在它制成后,贝尔公司的负责人猛然发现它的全部试制费用竟高达 2万美元,大吃一惊,决定不再研制其他计算机了。
但是在 1941年 12月美国投入第二次世界大战后,贝尔实验室的研究转入军事项目,这些项目比和平时期的研究要涉及更多的计算。他们在战时研制的大部分计算机,是模拟计算机。但是还制造了5 台军用的数字继电器计算机,再加上M—1计算机和战争结束后自用的另一台计算机,总共有7 台数字计算机。
在5 台军用数字计算机中,第一台是 1943年安装在华盛顿特区的一种继电器数字计算机,称为M—2型机,它主要用来解决与防空高炮火力指挥有关的问题。
M—2型机主要用于 “内插”,由于“内插”是解决科学、工程问题一种很有用的数学运算,所以在战争结束后仍忙于为其他部门服务,它直到 1961年才被拆除。M—2 型机是最早的可编程的计算机之一,它还能进行误差检测,这是现代微电脑所具有一项标准功能。
在 M—2 型机开始投入运行之前,斯蒂比兹及同事们就着手准备研制新的、更大的、功能更强的机器——M—3、M—4 型机了。
M—3 与M—4型机是性能基本上相同的两种计算机,先后于1944年、1945年完成。它们与M—2型机相类似,不过存贮器容量更大,除了能进行“内插”外,还能把描述目标飞机和一些防空火包炮弹轨迹的弹道方程计算出来。虽然它们不是通用计算机,但在编程能力上已经具有一定程度的通用性。它们还具有搜索信息的功能,正如现代微电脑能搜寻磁带或磁盘上所存放的特定数据和程序一样。M—4 型机比 M—3 型机的功能稍多一些,例如它能计算某些三角函数等。
由于斯蒂比兹卓有成效的努力,在不到十年的时间里,总共推出了M 系列的5种型号的计算机。其中最大的一种计算机是M—5 型机。贝尔实验室为军方制造了两台M—5 型机。一台是为美国航空局设计的,另一台则是为阿伯丁弹道实验室而设计。
三、艾肯和马克型计算机
在德国的楚泽开始研制机电计算机之后不久,美国也有人开始进行类似的工作,除了前面介绍过的斯蒂比兹外,还有一位,他就是麻省理工学院的物理学家艾肯。1944年,由艾肯主持研制的马克 1号问世了。马克 1号及后来研制成的马克2 号,在计算机发展史上曾占有相当重要的地位。
在计算机先驱者的行列中,艾肯要算是大器晚成的了。艾肯在 1900年出生于美国新泽西州的霍博肯。由于家庭贫困,他在上职业高中时就不得不半工半读,以减轻家庭的负担。毕业后他在麦迪逊煤气公司找到一份工作,并争取到一个进入威斯康星大学学习的机会,在大学里他仍然坚持一面工作,一面刻苦读书。 1923 年他从大学毕业后,被麦迪逊公司任命为总工程师,工作之余,仍不忘继续学习新知识。到35 岁时,他毅然辞去待遇丰厚的工作,再次到大学去深造,先在哥伦比亚大学攻读,后来又进入哈佛大学物理系当博士研究生。他的博士论文的课题是有关电荷在空间传播问题的研究。为此需要大量繁琐的计算。正是由于这个原因,使艾肯在1937年就提出了研制新型自动计算机的备忘录,但是当时的哈佛大学对这类应用研究不感兴趣。
哈佛大学商学院建议艾肯同 IBM (国际商用机器)公司联系。这家公司的一名经理曾经看过麻省理工学院香农的博士论文,对香农在文中所提出的,利用开关电路模拟布尔逻辑的方法颇感兴趣,因此认为艾肯的设想很有价值。这时哈佛大学的两位著名教授对艾肯的备忘录也非常重视,并多方设法为艾肯争取经费。最后,IBM公司的董事长老沃森同意向艾肯提供资助。
IBM 对这一项有希望取得成功的研究项目很感兴趣。虽然并不指望通过艾肯的研制计划得到直接的经济利益,但它希望通过对这一项研制工作的资助,为 IBM公司获得赞助美国最有名望大学的美名。
艾肯在各方面的支持下,把自己原来的初步设想,逐步形成为完善的设计方案。
1939年近 40 岁的艾肯取得了博士学位。这一年他与 IBM公司正式签订研制合同,由美国海军提供经费。IBM公司委派了 4 名有经验的工程师与艾肯合作,“马克1号”的计算机正式开始研制了。经过四年坚持不懈的努力,在 1943 年,这台程序控制的自动计算机终于完工,1944 年于哈佛大学投入运行。
马克一号是一种完全机电式的计算机。它长 15米,高 2.4 米,大约同小火车头那么大。看起来有点像图书馆中大书架,不过在架子上放的不是书,而一排排继电器。在它运行时会发出咔嚓咔嚓的响声。
马克一号有 15万个元件,其中许多是可以移动的,此外还有800 千米的导线。
马克一号是世界上最早的通用型自动机电式计算机之一,其中用电话继电器代替了齿轮传动的机械机构,一共使用了3 千多个继电器。机器采用十进制,对 23位的数加减,一次需要0.3 秒,乘法则需要6秒。指令通过穿孔纸带传送。
马克一号在入场多方面可以说是巴贝奇分析机现代化的翻版,所不同的只不过用电来代替了蒸汽传动,但马克一号的问世却标志了现代计算机时代的开始。
马克一号每秒只能进行3 次运算。因此艾肯在1947年又研制出了速度较快的马克二号计算机。它同马克一号一样,仍是一种机械——继电器计算机,但马克二号中的继电器体积很大而且特别贵 (当时每个要15美元)。
马克二号每秒能进行8 次加法运算,如果开平方或求对数就要 12秒钟的时间,这同电子计算机相比是太慢了,但毕竟比马克一号要快些。
正当艾肯和他的资助人在剪彩仪式上引起激烈冲突之时,制造更好计算机的同样愿望,也激励着德国的工科大学生楚泽。楚泽在制造他的Z—4 型机时听到有关马克一号问世的消息。
虽然楚泽的Z 型系列机要早于马克一号、二克,但由于美、英两国对德国同行的工作毫无所知,因此马克一号、二号对美、英等国后来计算机的发展产生了重要的影响,并在计算机发展史上占有重要的地位。
直到马克二号研制成功以后,艾肯才开始制造电子管计算机,为什么艾肯转入研制电子计算设备拖了这么长的时间呢?
这是由于艾肯是一位非常小心谨慎的工程师,他最初对电子元件的可靠性没有把握。尽管电子技术在迅速发展,但艾肯仍决定通过降低速度来增加可靠性,因此他早期的目标是使计算设备实现机械化,虽然他那时已意识到计算设备实现电子化是必由之路。直到他看到在一些设备中电子元件能可靠地工作时,才决定他也要来搞电子的 (设备)。
在 1949年9 月,艾肯研制出使用电子管的计算机——马克三号。马克三号并没有完全实现电子化,在最后定型的样机中,不仅包含5000 个电子管,还使用了许多机械部件——2000 个继电器。
马克三号是艾肯研制的第一台内存程序的计算机,并在其中首先使用磁鼓作为数与指令的存贮器。从此以后磁鼓成为第一代 (电子管)计算机中最广泛使用的一种存贮器。
在马克三号中,8 个磁鼓能存贮 16位的 “字”4350 个,另一个磁鼓能存贮40000 条左右的指令。
在最初,马克三号的可靠性不够理想,运行时经常发出咔嚓咔嚓的声音。后来研制人员采取了一些措施,它就能很好地运行了,从而使它的可靠性与马克一号二克不相上下。
在马克三号的基础上,艾肯主持研制的马克四号在 1952年完工,被广泛地用于工程和科学方面的计算。
在马克四号完工后,艾肯不再研制新的计算设备,转而培养训练计算机人才,其中有些人后来成为美国研制第二代 (晶体管)电子计算机方面的科学家。在 1961年艾肯辞去教职后开办了艾肯实业公司,但在工作之余仍热心从事教学工作,并帮助大学建立计算中心。直到 1973年去世前,还始终为计算机事业的发展贡献自己的力量。
艾肯的主要贡献不仅在于研制出马克系列计算机,而且把哈佛大学变成一个著名的计算机培训基地,从而对二次大战后计算机的发展产生了重大影响。而且他研制马克型计算机的成功,激发起人们的创造热情,使人们制造更多更好计算机的愿望更强烈了。