当前位置: 首页 > news >正文

世界第一台通用计算机:ENIAC

目录

  • 简介
  • 基本信息
  • 误传
  • 研发过程
    • 研发的原因
    • 时间就是胜利
    • 冯·诺依曼
    • 战争的作用
  • 发展
    • 实际发展
    • 更新发展
    • 历史澄清

简介

ENIAC,全称为Electronic Numerical Integrator And Computer,即电子数字积分计算机。ENIAC是继ABC(阿塔纳索夫-贝瑞计算机)之后的第二台电子计算机和第一台通用计算机。

它是完全的电子计算机,能够重新编程,解决各种计算问题。它于1946年2月14日在美国宣告诞生。 承担开发任务的人员由科学家约翰·冯·诺依曼和“莫尔小组”的工程师埃克特、莫希利、戈尔斯坦以及华人科学家朱传榘组成。总工程师埃克特在当时年仅25岁。

基本信息

世界上第一台现代电子数字计算机埃尼阿克(ENIAC),诞生于1946年2月14日的美国宾夕法尼亚大学,并于次日正式对外公布。

ENIAC长30.48米,宽6米,高2.4米,占地面积约170平方米,30个操作台,重达30英吨,耗电量150千瓦,造价48万美元。它包含了17,468根真空管(电子管)7,200根水晶二极管,1,500 个中转,70,000个电阻器,10,000个电容器,1500个继电器,6000多个开关,计算速度是每秒5000次加法或400次乘法,是使用继电器运转的机电式计算机的1000倍、手工计算的20万倍。

误传

曾有误传ENIAC是第一台计算机,实际上,真正的第一台电子计算机是阿塔纳索夫-贝瑞计算机(Atanasoff–Berry Computer,简称ABC计算机)。事实上ABC计算机不可编程,且非图灵完全,只能进行线性方程组的计算。它的价值是确定了一些现代计算机设计思想,如采用二进制、可重用的存储器等。所以说ENIAC是第一台通用计算机。

研发过程

研发的原因

研制电子计算机的想法产生于第二次世界大战进行期间。当时激战正酣,各国的武器装备还很差,占主要地位的战略武器就是飞机和大炮,因此研制和开发新型大炮和导弹就显得十分必要和迫切。为此美国陆军军械部在马里兰州的阿伯丁设立了“弹道研究实验室”。

美国军方要求该实验室每天为陆军炮弹部队提供6张射表以便对导弹的研制进行技术鉴定。事实上每张射表都要计算几百条弹道,而每条弹道的数学模型是一组非常复杂的非线性方程组。这些方程组是没有办法求出准确解的,因此只能用数值方法近似地进行计算。

时间就是胜利

不过即使用数值方法近似求解也不是一件容易的事!按当时的计算工具,实验室即使雇用200多名计算员加班加点工作也大约需要二个多月的时间才能算完一张射表。在“时间就是胜利”的战争年代,这么慢的速度怎么能行呢?恐怕还没等先进的武器研制出来,败局已定。

为了改变这种不利的状况,当时任职宾夕法尼亚大学莫尔电机工程学院的莫希利(John Mauchly)于 1942年提出了试制第一台电子计算机的初始设想——“高速电子管计算装置的使用”,期望用电子管代替继电器以提高机器的计算速度。

美国军方得知这一设想,马上拨款大力支持,成立了一个以莫希利、埃克特(John Eckert)为首的研制小组开始研制工作、预算经费为15万美元,这在当时是一笔巨款。

冯·诺依曼

让研制工作十分幸运的是,当时任弹道研究所顾问、正在参加美国第一颗原子弹研制工作的数学家冯·诺依曼(von Neumann,1903-1957,美籍匈牙利人)带着原子弹研制(1944年)过程中遇到的大量计算问题,在研制过程中期加入了研制小组。原本的ENIAC存在两个问题,没有存储器且它用布线接板进行控制,甚至要搭接几天,计算速度也就被这一工作抵消了。

1945年,冯·诺依曼和他的研制小组在共同讨论的基础上,发表了一个全新的“存储程序通用电子计算机方案”——EDVAC(Electronic Discrete Variable Automatic Computer)在此过程中他对计算机的许多关键性问题的解决作出了重要贡献,从而保证了计算机的顺利问世。

虽然ENIAC体积庞大,耗电惊人,运算速度不过几千次,但它比当时已有的计算机要快1000倍,而且还有按事先编好的程序自动执行算术运算、逻辑运算和存储数据的功能。ENIAC宣告了一个新时代的开始。从此科学计算的大门也被打开了。

战争的作用

但为什么世界上第一台电子计算机要退至40年代中期才得以问世呢?这里面主要是实际需要是否迫切和资金是否到位的问题。实际需要当然一直都存在,谁不想拥有一种最先进的计算工具呢?但光是需求并不能决定一切。凡研制一种新工具,总是需要先期投入大量资金(研制ENIAC时,一开始就投资15万美元,但最后的总投资高达48万美元,这在40年代可是一笔巨款!)。能为一种未问世的工具大胆出钱的总是少数。

最后还是战争使计算机的诞生成为现实。事实上各种各样的社会需求中,战争期间的需求始终是最迫切的,因为事关生死存亡。政府和军方总是出手大方,将最新的科技成果应用到诸如战略和常规武器的研制工作上,以确保己方在军事上处于领先地位。

电子计算机正是在第二次世界大战弥漫的硝烟中开始研制的。如前面所述,当时为了给美国军械试验提供准确而及时的弹道火力表,迫切需要有一种高速的计算工具。因此在美国军方的大力支持下,世界上第一台通用计算机ENIAC于1942年开始研制。参加研制工作的是以宾夕法尼亚大学莫尔电机工程学院的莫西利和埃克特为首的研制小组。

发展

实际发展

ENIAC每秒能进行5000次加法运算(据测算,人最快的运算速度每秒仅 5次加法运算),每秒400次乘法运算。它还能进行平方和立方运算,计算正弦和余弦等三角函数的值及其它一些更复杂的运算。

这在当时是很了不起的成就。原来需要20多分钟时间才能计算出来的一条弹道,现在只要短短的30秒。这可一下子缓解了当时极为严重的计算速度大大落后于实际要求的问题。

由于当时冯·诺依曼正参与原子弹的研制工作,他是带着原子弹研制过程中遇到的大量计算问题加入到计算机的研制工作中来的。因此可以说,ENIAC为世界上第一颗原子弹的诞生也出了不少力。

但即使在当时看来,ENIAC也是有不少缺点的:除了体积大,耗电多以外,由于机器运行产生的高热量使电子管很容易损坏。只要有一个电子管损坏,整台机器就不能正常运转,于是就得先从这1.8万多个电子管中找出那个损坏的,再换上新的,是非常麻烦的。

更新发展

人们当然不会满足于此的。所以自第一台计算机问世以后,越来越多的高性能计算机被研制出来。计算机已从第一代计算机发展到了第四代计算机,正在向第五代计算机、第六代计算机发展。像最初制造出来的ENIAC一样,许多高性能的计算机总是在为尖端和常规武器、特别是核武器的研制服务。

和人类发明的所有工具一样,计算机的产生也是由于实际需要方得以问世的。从18世纪以来,科学技术水平有了长足的进步。制造电子计算机所必需的逻辑电路知识和电子管技术已经在19世纪末和20世纪初出现并得以完善。因此可以说制造计算机的基础科学知识已经完备了。

历史澄清

在国内的绝大部分媒体上都会出现世界上第一台电子计算机是上世纪1946年由美国人莫克利(John Mauchly)发明的ENIAC文字记载,但另一种说法却是:世界上第一台电子计算机是由美国爱荷华州立大学的约翰· 文森特·阿塔纳索夫(John Vincent Atanasoff)教授和他的研究生克利福特·贝瑞(Clifford Berry)先生在1937年至1941年间开发的“阿塔纳索夫-贝瑞计算机(Atanasoff-Berry Computer,简称ABC)”。

而在国内的朋友们竟很少有人知道此事真相, 不少国内的作者在他们的专著、教材中,甚至科普活动中,仍然宣传ENIAC是世界上第一台计算机。因此,做为一名IT工作者有必要本着科学的精神,替前人查清事实,希望通过此文有助于纠正这个在国内知识界长期存在的重大学术误会,以正视听。

这里有计算机、电子计算机、通用电子计算机等概念,计算机的出现甚至可以追述到17世纪的加法机。(也称帕斯卡机,这是一台机械计算机)。ABC计算机是第一台电子化的计算机,非图灵完备、不可编程是其最大限制。而现代计算机的概念应等同于通用电子计算机,即图灵完备,可编程等。

经证实,世界上的第一台电子计算机应为“ABC”。1941年,“ENIAC”的发明者之一莫科里在阿坦纳索夫家借住5天,借此机会“盗取”了研究成果及想法,之后与埃克特一起制造了“ENIAC”并申请了专利,被世人称为“现代计算机之父”而阿坦纳索夫并未重视自己的重大发明“ABC”,学校也没有重视此项发明,并拆掉了“ABC”。后经过美国法院判决,推翻并吊销了莫科里的专利,“现代计算机的基本想法是来自约翰-文森特-阿坦纳索夫。事实上,阿塔纳索夫所在的爱荷华大学并没有为ABC计算机申请专利,而且打官司的也不是几位计算机设计者本人,而是两家计算机公司,Honeywell和Sperry Rand公司。

本文完。整理不易,希望大家支持。

相关文章:

  • JAVA学习----HashSet类
  • 文章组合生成-免费文章组合生成软件
  • 华为面试应该怎么准备?
  • JDBC如何记忆
  • C语言之预处理
  • Flutter 系列---入门篇
  • 全球与中国汽车多楔带行业发展趋向分析及投资前景预测报告2022-2028年
  • Java IO流详解
  • 迷宫_Sarsa算法_边做边学深度强化学习:PyTorch程序设计实践(2)
  • iOS视频捕获入门篇
  • 数据可视化系列教程|六大组件基础知识
  • 《MySQL技术内幕:InnoDB存储引擎》学习笔记-第二章
  • 无线能量传输(WPT)中收发线圈的等效电路模型
  • 回归预测 | MATLAB实现BP神经网络多输入单输出回归预测
  • 新手入门:APP软件测试需要考虑哪些方面
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • Java方法详解
  • Mysql5.6主从复制
  • php ci框架整合银盛支付
  • python学习笔记-类对象的信息
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 目录与文件属性:编写ls
  • 盘点那些不知名却常用的 Git 操作
  • 使用agvtool更改app version/build
  • 最简单的无缝轮播
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​业务双活的数据切换思路设计(下)
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #大学#套接字
  • (12)Linux 常见的三种进程状态
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (接口封装)
  • (三)mysql_MYSQL(三)
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)h264中avc和flv数据的解析
  • (转)Linux下编译安装log4cxx
  • .NET Core 中插件式开发实现
  • .NET Framework与.NET Framework SDK有什么不同?
  • .Net8 Blazor 尝鲜
  • .NET下ASPX编程的几个小问题
  • @Bean, @Component, @Configuration简析
  • [] 与 [[]], -gt 与 > 的比较
  • [2013AAA]On a fractional nonlinear hyperbolic equation arising from relative theory
  • [AIGC] 开源流程引擎哪个好,如何选型?
  • [Android]How to use FFmpeg to decode Android f...
  • [BT]BUUCTF刷题第4天(3.22)
  • [CDOJ 838]母仪天下 【线段树手速练习 15分钟内敲完算合格】
  • [CISCN2019 华东北赛区]Web2