尽管阿塔纳索夫研制的计算机以及专利申请资料的遭遇不佳,但他留下的研制资料对后来通用计算机研制起了深远的影响。
莫克利参观阿塔纳索夫研制的计算机
1940年12月美国科学进步协会的年会上,阿塔纳索夫结识了莫克利(John Willian Mauchly, 1902 - 1980)。
当时,莫克利执教于费城郊区的厄西那斯学院,教授物理课程。他的父亲是一位物理学家,他本人毕业于约翰*霍普金斯大学,教课之于研究宇宙射线和太阳黑子对地球天气的影响。为了解决研究中的复杂计算问题,曾经研制一台模拟计算机用于计算。在这次大会上,他宣读了一篇论文,主题是关于如何通过机器计算比较天气和太阳活动。同时,也提出了如何改进计算装置提高计算的效率。他认为当时普遍使用的布什微分分析机在处理大量计算问题时有相当大的局限性以及效率低下,而机电式计算机由于机电部件反应缓慢(毫秒ms级别),解决问题的出路在应用电子电路(反应时间在微微秒级 ,其中1毫秒 = 1000 微妙)。
阿塔纳索夫听这篇报告后,非常兴奋,并在会后与莫克利谈到自己研制成功的电子计算机。尽管莫克利提到了应用电子电路制造计算机的想法,但仅仅是停留在构想阶段,得到这一消息非常震惊。于是,在阿塔纳索夫盛情邀约下,莫克利于1941年6月驱车赶往阿塔纳索夫所在的艾奥瓦州立大学计算机研究所参观那台专用电子计算机。
阿塔纳索夫给莫克利演示了ABC 计算机的计算过程,介绍机器的结构,讲述了其用穿孔卡片输入运算数据,以及如何用电子电路控制运算,电弧穿孔技术以及二进制电容存储技术。尽管不理解采用二进制作为数据表示及运算的好处,但这台计算机极快的运算速度令莫克利感到着迷。他白天研究这台计算机的原理,晚上仔细研读阿塔纳索夫的专利申请材料。知己难遇,阿塔纳索夫毫不保留的把自己制造电子计算机的所有核心技术都讲解给了莫克利。
五天后,莫克利因为要参加美国国防部为宾夕法尼亚州立大学莫尔电气工程学院研究生办理的培训班匆匆离去。时间虽短,他对ABC 的关键技术了然于胸,并决定制造一台更完美的计算机。
莫克利与埃克特对通用电子计算机的研究
在国防训练班的电子学课堂上,莫克利认识了在莫尔电气工程学院攻读研究生的埃克特(John Presper Eckert , 1919 - 1995)。埃克特富裕的家庭令他拥有一间带工作台的车库,从小迷恋电子设备的他在车库里制造了很多电子设备,这极大的锻炼了动手能力并积累了丰富的电气制造经验。莫克利向埃克特讲述了自己对电子计算机的构想,埃克特认可了该构想并认为可以实现。1942年莫克利转到宾州州立大学任教,教学之余与埃克特投入到ABC计算机的研究改造中去。同年,莫克利撰写《高速计算装置的使用》,在文中阐述了他们研制计算机的方案。
二战中阿伯丁弹道实验室的难题
二战中,日本偷袭珍珠港后,美日开战。宾夕法尼亚州立大学的所有布什微分分析机被阿伯丁弹道实验室征用,用于弹道轨迹计算。尽管如此,弹道轨迹计算速度依然缓慢。负责计算弹道轨迹计算项目的戈德斯坦改进微分分析机,把一条60秒弹道轨迹计算时间压缩到20分钟内,但是每天计算6张包含900条弹道的火力表依然是困难重重,原因是微分分析机的机械部件速度缓慢并且计算精度低(1%)。
ENIAC研制项目启动
必须改进计算装置,但苦于没有相关人才。当得知莫克利的计算机方案后,戈德斯坦找到莫克利并且讲述了自己需求,并建议莫克利撰写一份研制计算机的报告提交美国军方。这份报告被讨论后,得到美国军方认可并确定了要制造的计算机名称为“电子数字积分机和计算机 Electronic Numerical Integrator And Computer” ,简称“ENIAC” ,中文翻译爱尼艾克。
1943年7月项目正式启动,美国军方提供15万美元研究经费,由莫尔电气学院用于制造一台秒级完成弹道轨迹运算的电子计算机,用于帮助计算火力表提高效率。
项目成立后,戈德斯坦作为军方代表协调和管理项目的执行,莫克利担任顾问负责ENIAC的总体设计,埃克特担任总工程师协助莫克利完成总体设计,负责解决制造中出现的一系列困难复杂的技术问题。莫尔学院同时召集大量的高级工程师等技术人员参与设计制造。
完成总体设计和基本准备后,就开始了具体的制造阶段。项目并不是一帆风顺的,埃克特一直泡在实验室里,不但对制造的电子元器严格把关,而且对制造过程中遇到的困难都深入分析,找寻解决方案。
戈德斯坦与冯*诺依曼的邂逅
1944年夏天,ENIAC进入到制造最关键阶段。一天傍晚,戈德斯坦上尉在弹道实验室返回费城的火车站 - 阿伯丁火车站遇到了当时已经世界闻名的数学家冯诺伊曼博士(John Von Neumann, 1908 - 1957)。
冯诺伊曼出生于匈牙利的犹太人家庭,父亲是一名银行家。冯诺伊曼六岁会心算八位数字除法,八岁学会微积分。17岁冯诺伊曼和他的教授合写了第一篇数学论文。1926年获得匈牙利布达佩斯大学数学博士学位,后转向物理学研究。到1930年,他已成为完成数理化皆通的学者,备受世人瞩目,先后在柏林大学,汉堡大学任教。美国数学家韦伯伦教授招收英才,使冯诺伊曼有机会来普林斯顿大学任教。1933年,冯诺伊曼与爱因斯坦一同被评为普林斯顿大学的终身教授,成为普林斯顿大学高级研究员数学所的6位奠基教授之一,随后由于德国纳粹迫害犹太政策,他加入美国国籍。二战后,冯诺伊曼被选为美国科学院院士和原子能委员会委员,成为美国政府高级科学顾问之一。此时,他正参与“曼哈顿计划” ,即原子弹研制项目。
戈德斯坦怀着崇敬的心情走过去做了自我介绍,而冯诺伊曼也没有摆架子,双方交谈融洽。戈德斯坦向冯诺伊曼介绍自己正参与的研制每秒计算333次乘法运算的计算机时,冯诺伊曼很感兴趣,并连连发问。原来,冯*诺伊曼参与的“曼哈顿计划” 遇到了和阿伯丁弹道实验室面临的相似问题 - 曼哈顿计划需要计算核裂变当量的计算量非常大,据估计超过有史以来所知计算量的总和,靠人力无法完成。他们调用了IBM公司的台式卡片机,并投入大量人力,但进展缓慢;后来,又调用了哈弗大学的机电式马克-I进行计算,仍然不能得到令人满意的计算速度。计算速度低下严重制约着项目的进展,当得知莫尔学院正在研制高速计算设备,岂能不心动 ?因为他知道这台机器一旦研制成功,“曼哈顿计划”的进度问题得到解决将成为可能。
冯*诺依曼的贡献
1944年8月,冯诺依曼来到莫尔学院参观ENIAC,提出的第一个问题是关于ENIAC的逻辑结构,这让埃克特暗自佩服。莫克利与埃克特邀请冯诺依曼加入并担任顾问,并进行指导和支持。
冯诺依曼的加盟对项目起到巨大作用,一方面,由于他的特殊身份,军方对项目的信心大增,项目资金也由最初的15万美元增加到接近50万美元,极大支持了项目因遇到问题不断修改方案的资金需求;另一方面,冯诺依曼的技术才能位项目注入了活力,他加入后就参与讨论分析遇到的技术难题,尤其是存储问题。针对调试和制造中遇到的问题,总能给出独特的解决方案。对项目的成功起着莫大的作用。
ENIAC研制成功
1945年春ENIAC研制成功并投入运行,基本满足了设计要求。建成后的ENIAC俨然是一台庞然大物,占地168平米,占满整个房间。它有2.5米高,0.914米宽,30.48米长,重量达30吨。它使用16种不同型号的188000个电子管,1500个继电器,70000个电阻,18000个电容器,这些元件通过5万个焊头和11.265千米铜导线连在一起,机器时钟100KHZ,内部有20个字节的寄存器,每个字长10位,采用十进制运算,速度达到5000次每秒。
用这台计算机,把60秒弹道轨迹的计算时间,由微分机需要的20小时缩短到30秒,满足了军方的火力表计算时限要求。随后,ENIAC又帮助曼哈顿计划顺利解决了核裂变的复杂方程问题,为第一课原子弹的研制成功加快了进度。
1946年2月10日,经过一年的试运行,ENIAC与世人见面。美国陆军军械部和莫尔电气学院共同举行了新闻发布会,宣布世界上第一台电子计算机由莫尔电气工程学院研制成功。
ENIAC研制成功并投入运行,标志着人类进入了新的计算时代,开启了信息时代的大门。美国《时代周刊》的一名记者在参观完ENIAC机的运算后写道:“它的电子智慧开启了一个新世界”。
ENIAC计算机投入运行后,被运送到马里兰州的军方阿伯丁试验基地。除了被用于弹道计算外,还为很多科研项目进行数据处理计算,其中最有名的是天气预报,飞机设计等风洞试验,原子核能计算,宇宙射线计算和圆周率计算等项目。人类历史上第一台通用电子计算机一直运行到1955年10月2日才退役,实际运行时长达80223小时。
ENIAC计算机专利权问题
仔细观察ENIAC的逻辑结构和设计,其设计思想都是ABC计算机的翻版。但是,莫克里并未向世人说明,不能不说是一种遗憾。
1967年霍尼韦尔公司与买下ENIAC计算机专利权的斯佩里兰德公司因ENIAC专利权发生一场官司。最终,经过6年取证和135次庭审,法院最终于1973年判决斯佩里兰德公司败诉,判决ENIAC专利权无效。判决书写着:“莫克利和埃克特并不是自己最先发明了自动化的电子计算机,而是从阿塔纳索夫博士的发明中获得有关材料的。”
尽管,在整个庭审中和判决后,莫克利一直拒绝承认从阿塔纳索夫那里获取有价值的信息,但是人们从判决结果中认识到事情的原貌。阿塔纳索夫被称为真正的电子计算机之父。
ENIAC计算机的优缺点
ENIAC计算机与以往计算机相比,有很大的优点:
1) 计算速度快;
2) 有内部记忆存储能力;
3)有逻辑判断力;
4)计算结果有较高的准确度和可信度;
当然,也有很多缺点:
1)采用十进制未采用二进制,导致运算器设计复杂;
2)无程序存储能力;
3)存储容量小;
4)故障率高;
5)耗电量大;
ENIAC计算机的改造与冯*诺依曼计算机体系结构
ENIAC的缺点是在制造和调试过程中发现的,冯诺依曼加入后提出了采用十进制的缺点,运算器的复杂导致最终乘法运算速度只有每秒50未达到每秒333次的预期目标。但是项目已经完成早期设计,只能进行适当的维护和修补。
冯诺依曼认识到改进设计对机器性能的影响,与莫克利和埃克特等项目组成员进行讨论研究,制定了改进方案。
1945年6月,冯诺依曼起草一份新的计算机设计报告--《关于离散变量自动电子计算机的草案》,提交陆军军械部并获得批准用于研制新型计算机。在这份长达101页的报告中,冯诺依曼给这种新型计算机命名为“散变量自动电子计算机”,简称“EDVAC”,中文音译“爱达法克”。
EDVAC的设计方案在两个方面根本解决了ENIAC的缺点:
1)以二进制代替十进制。二进制的状态,更容易用电子电路的断开与接通两种状态表达0,1;另一方面,运算得以简化,单位加法运算 只有0+0, 0+1, 1+0, 1+1四种状态,加减乘除都可以用加法器来实现,简化了运算部件的复杂程度和运算速度;
2)提出了在计算机内部存储器存储程序的概念。EDVAC机的内存采用水银延迟线来存储指令,设计有1024个字节,程序指令以及数据通过穿孔卡片输入。机器把这些信息读入内存单元后,便可自动执行特定计算任务。若要改变计算任务,只需要读入代表不同含义的穿孔卡片即可自动完成不同计算任务,实现了通用性,避免人工手动干预,提高运算速度。
经过这两方面改进,EDVAC机的组成可分五部分:
1)运算器
用于加减乘除等算术运算及逻辑运算
2)逻辑控制器
用于自动控制机器指令,协调程序自动化执行
3)存储器
用于存储程序的指令和数据
4)输入装置
读入程序指令和数据,送至存储器
5)输出装置
把计算机运算结果和人们要求的数据送出
EDVAC机的设计方案奠定了现代计算机的结构框架,并沿用至今,这一体系结构被称为“冯*诺依曼机” 。