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