1.1 第一台电子数字计算机的诞生
世界上第一台电子数字计算机于1946 年在美国宾夕法尼亚大学诞生,它的名字叫ENIAC(埃尼阿克),是电子数值积分计算机(The Electronic Numerical Integrator and Computer)的缩写。在第二次世界大战期间,美国军方每天需要计算6张火炮射程表以便对导弹的研制进行技术鉴定。每张射程表都要计算几百条弹道,而每条弹道的数学模型是一组非常复杂的非线性方程组。飞行时间为60秒的弹道,使用当时最新式的微分分析仪计算也需要20分钟。为了提高计算速度,美军求助于美国宾夕法尼亚大学的摩尔电机学院,承担这次开发任务的“莫尔小组”由埃克特、莫克利、戈尔斯坦、博克斯四位科学家和工程师组成。1946年,世界上第一台电子数字计算机ENIAC投入试运行,用ENIAC 计算弹道参数,60秒弹道的计算由原来的20分钟减少为30秒,大大缩短了计算时间。
ENIAC是个庞然大物,高8英尺(约2.44米)、宽3英尺(约0.9米)、长100英尺(约30.48米),使用了18 000个真空电子管,耗电174千瓦,占地170平方米,重达30吨,与现在的计算机相比,它的计算能力并不强,每秒可进行5 000次加法运算或50次乘法运算,可进行平方、立方、sin和cos函数数值运算等。ENIAC如图1.1所示。
图1.1 世界上第一台电子数字计算机ENIAC
用今天的标准来看,ENIAC是那样的“笨拙”和“低级”,其功能远不如今天最普通的一台个人计算机,但在当时它已是运算速度的绝对冠军,并且其运算的精确度和准确度也是史无前例的。以圆周率(π)的计算为例,中国的古代科学家祖冲之利用算筹,耗费15年心血,才把圆周率计算到小数点后7位数。一千多年后,英国人香克斯以毕生精力计算圆周率,才计算到小数点后707位。而使用ENIAC 进行计算,仅用了40秒就达到了这个记录,还发现香克斯的计算中,第528位是错误的。ENIAC 运行了十年的时间,但其算术运算量比有史以来人类进行的所有运算总和还要大得多。它的诞生是一个历史的里程碑,标志着人类进入了一个崭新的信息革命时代。
但是ENIAC与现代电子计算机还有很大的差距,因为其采用十进制操作,不能存储程序,只能通过开关、电缆或硬连线实现编程。1945年3月,冯·诺依曼和他的研究小组公布了“存储程序”式计算机EDVAC 的方案,这标志着现代计算机的诞生。但由于种种原因,EDVAC直到1951—1952年才开始运行。同样著名的另一个“存储程序”式计算机是英国剑桥大学所研制的EDSAC,于1949年5月在剑桥大学开始运行。“存储程序”式计算机的特点可归纳如下:
(1)计算机由运算器、控制器、存储器、输入设备和输出设备五大部件组成;
(2)指令和数据均用二进制形式表示;
(3)指令和数据以同等地位存放于存储器内,并可按地址访问;
(4)指令在存储器内按顺序存放,但也可以根据运算结果或某种设定条件改变指令执行顺序。
存储程序思想的重要意义在于,人们可以根据自己的预想编写程序,然后将编好的程序送入存储器,并启动计算机工作,计算机就能在没有操作人员的干预下,自动逐条地取出指令和执行指令。