1.1 冯·诺依曼的定义
在1940年以前出版的字典中,“Computer”被定义为“执行计算任务的人”。当时虽然一些机器也能执行计算任务,但它们被称为计算器,而不叫计算机。1940年,为满足第二次世界大战中军事需要而开发的第一台电子计算装置问世之后,人们才开始使用“计算机”这一术语。
英国的一台名叫“巨人”(Colossus)的计算机早在1943年就投入了运行,用于破译德国的密码,但由于英国政府在1970年之前一直对它保密,人们并不了解。因此,一般认为,美国宾夕法尼亚大学于1946年2月14日研制成功的ENIAC(ElectronicNumericalIntegrator andCalculator,电子数字积分器和计算器)是世界上第一台多功能电子数字计算机(又称通用电子数字计算机),如图1-1所示。
图1-1 世界上第一台多功能电子数字计算机ENIAC
以JohnW.Mauchly和J.PresperEckert为首的小组于1943年开始研发ENIAC,这在当时来说是一台巨大的多用途电子计算机,主要用来为美国陆军计算弹道表,但是直到第二次世界大战结束后3个月,即1945年11月才制造完成。ENIAC长30.48m,宽1m,占地面积约170m2,有30个操作台,重达30t,功率150kW,造价48万美元。它包含了17468个真空管,7200个水晶二极管,70000个电阻器,10000个电容器,1500个继电器,6000多个开关,每秒执行5000次加法或400次乘法,是继电器计算机的1000倍、手工计算的20万倍。需要手工连接电缆并设置6000个开关进行编程[1]——这个过程一般需要两天的时间来完成。与此同时,同样类型的被称为EDSAC的计算机由英国剑桥大学的MauriceWilkes研制所功。
ENIAC于1946年2月15日被正式捐献给宾夕法尼亚大学莫尔电机工程学院,之后立即投入到原子能和新型导弹弹道技术的计算中。ENIAC此后进行过几次升级,一直使用到1955年。
1945年,一组工程师开始为美国军方的一个秘密项目工作,他们要研制“电子离散变量自动计算机”(Electronic Discrete Variable Automatic computer,EDVAC)。当时,杰出的数学家约翰·冯·诺依曼以“关于EDVAC的报告草案”为题,起草了长达101页的总结报告,在报告中对EDVAC计划进行描述,广泛而具体地介绍了制造电子计算机和程序设计的新思想。这个报告被视为“计算机科学史上最具影响力的论文”,是最早对计算机部件明确给出定义并描述了它们功能的文献之一,是计算机发展史上划时代的文献。第一台基于冯·诺依曼思想的计算机于1950年在美国宾夕法尼亚大学诞生,即EDVAC(见图1-2)。
图1-2 EDVAC(电子离散变量自动计算机)
基于冯·诺依曼提出的概念,可以把计算机定义为一个能接受输入、处理数据、存储数据,并产生输出的设备,如图1-3所示。
图1-3 冯·诺依曼模型
1)接受输入。所谓“输入”主要是指把信息送进计算机的过程。输入可能是由人、环境或其他计算机所提供的。计算机可以处理多种类型的输入,例如,文档里的单词和符号,用于计算的数字、图形、温度计的温度、麦克风的音频信号以及完成某个处理过程的指令,等等。输入设备收集输入信息,并把它们转化为计算机可以处理的形式。通常键盘是主要的输入设备。
2)处理数据。数据泛指那些代表某些事实和思想的符号。计算机可以用很多方法操作数据,这些操作称为“处理”。例如,计算机处理数据的方式包括:执行计算,对词汇或数字的列表进行排序,按用户指令修改文档或图片,以及绘图等。在计算机术语里,把处理定义为计算机操作数据时采取的一系列系统性活动。计算机在一个称为中央处理器(CPU)的设备中处理数据。
3)存储数据。计算机必须能存储数据,以便处理数据。依照数据使用的方式不同,计算机通常在不止一个地方存储数据。对于正等待处理的数据,计算机把它们放在内存中;当数据不需要立即处理时,计算机把它们放到外部存储器中。
4)产生输出。“输出”是指计算机生成的结果,也指产生输出结果的过程。报表、文档、音乐、图形、图片都是计算机输出的形式。输出设备用来显示、打印或传输计算机的处理结果。
冯·诺依曼对计算机所做的定义仍然适用于今天的几乎所有的计算机。