戴吾三
ENIAC是世界上第一台成功运行的电子计算机,这一重大发明并非横空出世。通过梳理ENIAC的族谱,那些早期有直接或间接联系的计算机器层见叠出,它们的诞生和发展伴随着一代代探索计算机器的科学家的身影。
ENIAC的全称是电子数字积分计算机(electronic numerical integrator and computer),它是世界上第一台成功运行的电子计算机。按ENIAC的读音,中文译作“爱尼亚克”。2016年适逢ENIAC问世70周年,当年那个庞然大物早已被压缩到豆粒大小,且运算速度被“后代”远远超越。沧桑之变,令人感慨万千。
ENIAC并非横空出世,通过梳理它的族谱,可以了解到它的那些“远亲近亲”——那些早期有直接或间接联系的计算机器。
ENIAC的远亲
17世纪,随着数学和天文学的发展及其在航海和商业中的应用,人们对算术运算机器的需求开始显现。
1642年,年轻的法国数学家、哲学家帕斯卡(B.Pascal)发明了一台加法机,能够对多达9位的数字进行加法运算。帕斯卡的加法机装在一个长方形盒子里.上表面是一行齿轮,每个齿轮上都围有一个固定环,环上刻有从0到9的数字。这些齿轮分别对应于个位、十位、百位等。当个位齿轮上的数字由9进位到0(即10)时,十位齿轮上的数字就会相应增加。
1671年,德国数学家莱布尼茨(G.W.Leibniz)制造出一台备受关注的计算机器原型。他认识到帕斯卡机器的弱点,尤其是它在进行乘法运算时,缺点更为明显。如果通过连续的加法运算来实现乘法运算,被乘数就必须先存放在寄存器里,在计算时再把寄存器里的被乘数陆续传人机器的加法计算部分。莱布尼茨发明了一种方法,即依靠主轴的单独转动来旋转调节轮,转动次数显示在被乘数的寄存器上。他先是采用伸缩齿轮及其他机械,后又采用具有步进齿的圆柱体(今称其为莱布尼茨轮)。
从本质上说,帕斯卡和莱布尼茨的机器都还是手动机械计算装置,它们更像是一架结构复杂的算盘。直到19世纪上半叶,英国数学家巴比奇(C.Babbage)取得突破,令计算机器从手动机械时代跃入自动机械时代。
1791年12月16日,巴比奇出生于伦敦郊区,父亲是一位银行家。少年时的巴比奇对自动机械充满兴趣,同时也热爱数学,两者的学科相距很远,这在一般人看来很难理解。1810年,巴比奇进入剑桥三一学院,这里是英国数学研究的重镇。不过,巴比奇很快就感到失望,因为他发现自己现有的数学知识比导师懂得还多,更深入的知识他在剑桥却寻觅不到。于是,他设法搜罗外国的数学著作,他通过书商得到了法国数学家拉格朗日(J.-L.Lagrange)的《解析函数论》和拉克鲁瓦(S.F.Lacroix)的《微积分专论》。
巴比奇的人生不乏趣闻,而真正让他青史留名的是他的计算机器设计。巴比奇意识到机械原理和数学相结合的可能性,他有心制造一台“差分机”。当时,数学家(尤其是法国数学家)对“有限差分方法”已经有了近百年的研究,该方法能将高阶计算简化为单纯的加法,而且易于程序化,可快速编制不同函数的数学用表。1820年,巴比奇确定了设计方案,用两年时间制造出一台模型。1822年,他在皇家天文学会描述了这台机器:“我曾用差分法作为我的机器制造的原理,在刚完成的机器中我把自己限于使用两阶差分。借助这台机器,我已重复地构造出平方表和三角数表,以及其中包含许多质数的奇异公式X2+X+41的表。”
巴比奇的工作受到英国政府的关注。英国政府非常重视天文、航海数表,希望降低制定新表所花费的人力,故支持巴比奇的计划——制造能计算20位数的六阶差分的大规模差分机。该机器若研制成功,不仅能计算出指定函数的值,而且能排版,避免排字中的人为错误。1823年,研制工作正式启动,历经十年,政府投入的经费达17000英镑,因迟迟不见成果,最后英国政府失去耐心。而巴比奇有了更大的抱负,他要制造一台“分析机”,一台真正通用的自动计算机器。
1834年,瑞典斯德哥尔摩一本技术杂志的总编辑朔伊茨(G.Scheutz)注意到巴比奇的差分机设想。三年后,他和儿子(斯德哥尔摩皇家理工学院的学生)设计出连同打印装置的一台差分机,能计算5位数的二阶或三阶差分。其后,朔伊茨还设计了一台较大的可计算15位数的四阶差分的机器。朔伊茨的机器以每小时120行的速度工作,并能完成匀称的8位数的铅版打印。相比朔伊茨的机器,巴比奇的差分机仍是一堆零件。
巴比奇已在1832年完全转向“分析机”制造。他的分析机主要由两大部分构成:执行四则运算过程的设备以及保存待加工处理的数据和中间结果的存储器。存储器由1000个寄存器组成,每个寄存器可存放一个50位数。待处理数据从存储器中选取,进行运算(例如相加)后将结果返回到存储器中的另一个存储单元。整个过程的控制通过一套穿孔卡片来实现,这是受法国人雅卡尔(J.M.Jacquard)1801年发明的提花机穿孔卡片的启发。
巴比奇有生之年的大部分时间都耗费在研制分析机上,但直到1871年去世,仍未制造出正式的产品。1906年,在巴比奇的儿子陆军少将巴比奇(H.P.Bab-bage)的监造下,分析机才终于问世,该机如今存放在伦敦科学博物馆里。
巴比奇的设想因超前时代而终未成功。诚如美国科学史家格雷克(J.Gleick)评价:“它既是一件失败之作,但又是人类最伟大的智力成就之一。……其重要意义得到追认,犹如灯塔在历史长河中熠熠生辉。”
ENIAC的近亲
19世纪末,人类进入电气时代,计算机器从自动机械计算开始向电动计算发展。
1887年,美国人口普查局的统计学家霍利里思(H.Hollerith)为了提高统计效率,有心效仿巴比奇制造计算机器,并采用穿孔卡片方式。霍利里思借助由电报机发展而来的机电技术,使用机电计数器来计算具有特定穿孔的卡片数量,并使用一个电磁控制装置来分离选择的卡片。该设备试验了一万多个来回,结果显示,其计数时间是最好的手控系统的3/4,制表时间则是1/6。
霍利里思意识到他的机器也能用于其他方面,为了开拓应用领域,他于1896年创建了制表机器公司。1911年,霍利里思的公司与制造自动计时器的Inter-national Time Recording公司以及Dayton Scale公司合并,共同组建成计算制表记录(Computing Tabulating Recording)公司。1914年,沃森(T.J.Watson)被聘为新公司的总裁。1924年,公司改名为国际商用机器(lntemational Business Machines,IBM)公司,自此掀开了新篇章。
1937年,有关计算机的理论与实践发生新飞跃。英国数学家图灵(A.M.Turing)发表了《论可计算数及其在判定问题中的应用》(On computable numbers,with an application to the Entscheidungs problem)一文。论文中,图灵给“可计算性”下了一个严格的数学定义,并提出著名的“图灵机”(Turing machine)设想:制造一种十分简单但运算能力极强的计算装置,计算所有能想象得到的可计算函数。
1937年,美国哈佛大学的艾肯(H.Aiken)得到美国海军部的经费支持,开始设计机电式的计算机,IBM负责承建。几年前艾肯研读巴比奇的著作时受到启发,开始基于卡片穿孔机的工作原理以及类似自动电话中的继电器部件来制造巴比奇构思的自动计算机。1944年,艾肯和他的团队研制成功自动程控计算机(auto-matic sequence controlled calculator,ASCC),当年8月移交给哈佛大学
ASCC后又称为Mark I,其体积庞大,重5吨,长51英尺,高8英尺,有近800000个部件和长达500英里的电线。Mark I采用全继电器,参与运算的数据通过电信号从一个机械计数器转向另一个计数器,两个数的加减运算是0.3秒,乘法运算是3秒钟,而除法运算大约是10秒钟。以上运算的速度不能算快,但精确度极高,能准确完成小数点后23位数字的运算。Mark I在哈佛大学为科学和I程计算服务了15年之久。后来,艾肯和团队又制造了MarkⅡ、MarkⅢ和MarkⅣ三种计算机。1947年,MarkⅡ交付给位于弗吉尼亚州达尔格伦的美国海军试验基地使用。
同在1937年,贝尔实验室的施蒂比茨(G.R.Stibitz)在摆弄继电器时发现,二进位数值和电路图之间有近似之处。他做了一个简易的电路模型,展示给同事们看,结果引起大家的兴趣和公司主管的注意。公司支持施蒂比茨成立研发小组,采用继电器建造一台用于电话网络复数计算的机器。1939年4月项目启动,10个月后机器成型。这台复数计算机器(complex number calculator)像一台高级的桌面计算器,操作员通过键盘把需运算的指令敲人,一会儿就打印出答案。更令人称奇的是,这台机器可以通过电线进行远程计算。1940年11月9日,施蒂比茨在新罕布什尔州达特茅斯学院举行的美国数学会上当场进行演示,用电传打字机输入数字,通过一条专用电话线,几分钟后远在新泽西州的贝尔实验室的机器自动解算并打印出答案。会场为之轰动,有两位与会者更表现出浓厚兴趣,其中一位是数学家、控制论的创始人维纳(N.Weiner),另一位就是后来成为ENIAC设计者的莫奇利(J.Mauchly)。
约在1936年,从事飞机设计的德国工程师楚泽(K.Zuse)因深感人工计算的繁重,决心造一台计算机器。两年后,他制成一台采用二进位制、可编程的机械式计算机模型,取名Z-1。它采用“穿孔带”的输入程序,不过这不是纸带,而是35毫米电影胶片:数据由一个数字键盘敲入,计算结果用小电灯泡显示。Z-1性能不理想,第二年,楚泽用朋友给他的电话公司替换下的一些继电器,组装成电磁式计算机Z-2,这台机器工作良好。楚泽的研究引起德国飞机实验研究所的关注,给予他一笔资助。1941年,新的电磁式计算机Z-3完成,这是一台基于二进制的可编程计算机,使用了2600个继电器,每秒钟可进行3-4次加法运算,可在5秒钟之内完成一次乘法运算。
楚泽在德国战败后流落到瑞士,几乎被人遗忘。直到1958年,他的故事才浮出水面,渐为美英计算界所知。
ENIAC的至亲
按美国学者扬(J.Young)的说法,真正意义上的电子计算机始于1937年12月的一个冬夜,时任艾奥瓦州立大学(lowa State University)物理系的副教授阿塔纳索夫(J.V.Atanasoff)在一家小酒馆里,在一叠餐巾纸上绘出电子计算机的设计图。其后由他和助手贝里(C.Berry)研制的计算机(Atanasoff-Berry com-puter,ABC),堪称ENIAC的至亲。
1903年10月4日,阿塔纳索夫出生于纽约州的哈密尔顿。父亲是来自保加利亚的移民,母亲是小学数学教师。家中有9个孩子,阿塔纳索夫排行老大。1925年,阿塔纳索夫从佛罗里达大学毕业,获电子工程学士学位;1926年在艾奥瓦州立大学获数学硕士学位:1930年在威斯康星大学获理论物理博士学位。
1936年,阿塔纳索夫受聘为艾奥瓦州立大学物理系的副教授,负责教授研究生量子物理学,他因缺乏有效的计算工具而感到恼火,便萌生制造一台计算机的想法。当时,麻省理工学院工程学院院长布什(V.Bush)主持建造了一台微分分析机(differential analyzer),这是一个重达百吨,由马达、轴承和齿轮构成的铁制平台,被媒体誉为“机械大脑”。事实上,布什的微分分析机与巴比奇分析机没有什么关联,但不可否认两者很相似,因为从本质上说,微分分析机仍然是机械式的。
阿塔纳索夫受布什微分分析机的启发,带着一位研究生造出一台简单的齿轮传动的机器,可用来计算两个变量的方程。然而,要处理有几十个变量的方程,这种机械装置远达不到要求。不断思索之后,阿塔纳索夫想到使用放大器、电阻和电容等电路元件来制造一台电子计算机。他想到采用二进制(这受到教数学的母亲的影响),把所有数字转换成二进制数字串,只包含1和0,并用电子脉冲来实现,有电流相当于l(开),无电流相当于0(关)。确定了计数系统,还得想出存放这些l和0的方法,阿塔纳索夫想到电子管,这是构成电路的关键元件。但问题是,当时电子管价格昂贵,如果采用几百支电子管,经费会大大超出预算。最终,阿塔纳索夫想到采用每个价格仅为几美分的纸质电容,它们大约每秒钟可以充电或放电一次,这使得在计算过程中将旧数改写成新数成为可能。采用电容可以以很低的成本建造大的存储系统——既用于存放原始数字,也用于存储过渡数据的“库房”(今称为内存),其技术关键在于必须保持数据的同步刷新。在那个寒冷的12月的夜晚,阿塔纳索夫驱车几百英里跑到邻近的伊利诺伊州的小酒馆喝酒(那里对饮酒持宽容态度),他在餐巾纸上描绘出用链条带动电容滚筒的系统设计图,同时也画了其他相关的电路。
那晚从伊利诺伊州返回后,阿塔纳索夫花费一年的时间细化并重新设计了计算机器,之后给校方写了一份建议。1939年初,学校批给他650美元经费,用于雇一名助手、买材料和订制零件。很幸运,阿塔纳索夫找到了得力的助手贝里。阿塔纳索夫教过贝里几堂物理课,在读研究生贝里当时正在寻找兼职工作,两人一拍即合。擅长动手的贝里给阿塔纳索夫的机器注入了生命。到1940年底,机器样机开始运行,能够计算一系列复杂的方程。受到成功的激励,阿塔纳索夫和贝里准备申请专利,同时再向校方申请经费,以建造正式的机器。遗憾的是,学校并不理解计算机器的发展前景,没有给予支持。
1940年12月,阿塔纳索夫去费城参加美国科学促进会的年会,在分组会议上听到莫奇利的演讲,主题是使用计算机器计算预报天气。莫奇利所用的是布什微分分析机,这种机电式计算机对处理气象的大数据明显不给力。莫奇利推测说电子计算似乎可以胜任。会后,阿塔纳索夫找到莫奇利,告诉他自己已经建造了一台机器,正是用电子来解复杂的方程组。听到这个信息,莫奇利非常感兴趣。大会结束后几天,他就写信给阿塔纳索夫,表达造访的愿望。
1941年6月,莫奇利来到艾奥瓦州立大学与阿塔纳索夫见面。阿塔纳索夫详细地给他解释了计算机的逻辑电路,演示运用穿孔卡片读入机器运算方程,指明电子化刷新存储鼓的技术关键。晚上,莫奇利则钻研阿塔纳索夫和贝里给学校专利律师起草的申请文件。5天的时间,莫奇利收获满满。
1941年夏,莫奇利应国防部的邀请为在摩尔学院举办的夏季电气工程计划讲课,期间他遇到了埃克特(J.P.Eckert),埃克特小他12岁,当时是实验室的管理员。莫奇利很快将埃克特视为知己,两人都关注电子技术和计算机器,经常就新的电路和想法谈至深夜。莫奇利已熟悉阿塔纳索夫一贝里计算机,现在又找到了能干的埃克特,希望他能够帮助自己也造一台。
ENIAC的问世
1941年12月7日,日军空袭珍珠港,迫使美国对日宣战。很快,美国陆军的弹道实验室找到宾夕法尼亚大学摩尔学院,征用该院的布什微分分析机来建立火炮射击表,以计算各种条件下武器的射程。从迫击炮到海军大口径火炮,每种武器的数字各不相同,而且要考虑到季节风向、地面起伏、炮筒仰角以及炮弹大小等因素。为完成射击表中必需的数据,军队还征募了数百名受过教育的女性,进行人工计算。然而到了1942年夏天,战争波及的地形越来越广阔而多变,射击表的数据已然跟不上,必须要全部重新计算。人工计算一条弹道要花5天时间,虽然微分分析机可在一小时内完成同样量的工作,但是它有个令人始料未及的问题:计算结果会有1%的误差,误差是齿轮和转盘的物理限制造成的。换言之,如果炮弹射程为5英里,微分分析机的计算结果会有250英尺的误差。更糟的是,一张包括3000到4000种弹道的射击表,要耗时1个月才能做出来。
负责摩尔行动的是美国陆军中尉戈德斯坦(H.Goldstine),他毕业于密歇根大学,获数学博士学位。1942年秋天,他一上任便发现情况一团糟,马上行动,征用本地区能够找到的所有机械式计算机和加法机,同时再征募200多人力做手工计算,尽管如此,到1943年初,他仍然觉得射击表的制作越来越拖后腿。
1943年3月的一天,戈德斯坦正对积压下的工作叫苦,正好被一个学生无意听到,他告诉戈德斯坦他的老师莫奇利有创新的想法,使用电子技术的计算机器的运算速度至少快1000倍。戈德斯坦喜出望外,很快在摩尔学院找到莫奇利,认真听他讲述电子数字式计算机器。谈话结束后,戈德斯坦立即让莫奇利抓紧写一份书面报告。莫奇利和埃克特花了几天时间,写出一份有关计算机器的详细备忘录。然而,有许多具体问题难以解决,为此,莫奇利专程去位于马里兰的海军兵工实验室,此时阿塔纳索夫已被调往那里从事引信和炸弹研究。莫奇利向阿塔纳索夫询问计算机器的难点,他以国家安全为借口,没有透露他正在研究的东西。
1943年4月9日,弹道实验室的主管批准莫奇利一埃克特计划,摩尔学院承担研制ENIAC,由莫奇利担任总体设计,并组织团队。到1944年初.ENIAC设计完成并开始建造,它被定为绝密级。1945年11月.ENIAC试运行,它主要有控制、运算、存储、输入和输出五部分组成,每秒钟能执行约5000次加法运算或50次乘法,运算速度是继电器式计算机的100倍,这是人类计算速度实质性的大飞跃。
1946年2月15日,ENIAC在正式庆典上揭开面纱,相关报道登上《纽约时报》头版。同年底,ENIAC被运往阿伯丁弹道研究实验室,开始了它的计算生涯。虽说ENIAC为弹道计算而研制,却没有赶上在二战中发挥作用,不过它在氢弹的研制中立了大功。除了可完成常规的弹道计算外,ENIAC后来还在天气预报、原子核能、风洞试验等诸多领域显露身手。
ENIAC自1945年底正式建成使用,到1955年10月2日光荣“退休”,它实际运行了80223个小时。
ENIAC引起的纠纷
1946年3月,ENIAC正式问世一个月,莫奇利和埃克特离开宾夕法尼亚大学,创办了电子控制器公司(Electronic Controls Corporation)。公司后正式注册为埃克特一莫奇利计算机公司,这是世界上第一家计算机公司。促使他们“下海”的原因是,两人宣布将申请专利引起了宾夕法尼亚大学的不满,校方坚持研究成果的专利技术都归学校所有,个人无权申请。两人开始拒绝,后来表示妥协。在承诺放弃权利后,莫奇利和埃克特想出新招,就电路和刷新存储技术申请一系列专利,岂料这对ENIAC团队的其他成员造成了伤害。
1947年6月26日,莫奇利和埃克特为ENIAC申请专利,所写的材料多达207页,其中绘制的设计图就有91页。这一专利直到1964年2月4日才获准并公布,此时,电子管技术早已过时。莫奇利和埃克特不善经营,公司1950年2月被雷明顿·兰德公司收购。
故事并未结束。1964年ENIAC专利的公布引起阿塔纳索夫的强烈不满,他认为莫奇利剽窃了他的想法,因为利用电子管执行数字计算与逻辑运算,使用电容器进行数值存储,数据输入采用打孔读卡方法,采用二进位制等基本思想都是他首先提出的。阿塔纳索夫和贝里也实际制造出了样机,遗憾的是,他们两人为此所写的专利文件不幸被艾奥瓦州立大学的律师搞丢了。此外,战时因物品短缺他们的两台样机被拆掉,马达等部件被用于其他物理和电气工程项目,唯一无法拆散的元件内存鼓放在物理大楼一个靠近锅炉的房间,里面积满了灰尘。
阿塔纳索夫状告莫奇利。法庭上,莫奇利讳莫如深,不承认他曾经向阿塔纳索夫请教过计算机的设计原理,甚至矢口否认在1941年曾去过艾奥瓦州立大学造访并住了5天这些事情,竟然说“不记得了”。然而,阿塔纳索夫当年的同事知道实情,有些人还健在,他们出于正义而作证。经过数年调查,1973年,美国明尼苏达地区法院认定ENIAC的设计制造深受ABC计算机的影响,ENIAC不能作为一项独立的发明,法院判决莫奇利和埃克特的专利无效,认定阿塔纳索夫是真正的电子计算机的发明人。
二战后,贝里一直留在南加州,为多家航空承包商工作。阿塔纳索夫后与贝里失去了联系,所以贝里从不知道自己动手制作的机器会成为电子计算机的鼻祖。1963年,他自杀了,十年后的法院判决确立了他在计算技术历史上的地位。
追溯历史可知,计算机经历了机械式、机电式和电子式几个阶段,世界上第一台电子计算机当推阿塔纳索夫和贝里发明的ABC计算机,然而谈及第一台成功运行的电子计算机,就当属莫奇利和埃克特制造的ENIAC。
由ENIAC繁衍(变异)出更多的计算机后代,展开还有更长的故事。