在 20 世纪 40 年代,计算机技术处于快速发展的关键时期。当时,世界上已经出现了一些早期的计算机,如 ENIAC(电子数字积分计算机),它是第一台通用电子数字计算机,但存在诸多局限性,例如程序与数据分开存储,在修改程序时需要手动重新布线,操作极为不便且效率低下。
1945 年,约翰・冯・诺依曼(John von Neumann)参与到计算机研发项目中。他以 “关于 EDVAC 的报告草案” 为题,起草了一份长达 101 页的报告。EDVAC(离散变量自动电子计算机)是当时正在研发的新一代计算机。在这份报告中,冯・诺依曼提出了采用 “存储程序”(stored-program)工作方式的通用电子计算机方案。
所谓 “存储程序” 工作方式,就是将程序和数据以二进制的形式一同存储在计算机的存储器中。计算机在运行时,能够自动地从存储器中读取指令和数据,并按照指令的要求进行各种运算和操作。这种设计理念与之前的计算机有着本质区别,极大地提高了计算机的通用性和灵活性。当需要改变计算机的工作任务时,只需更改存储在存储器中的程序即可,无需像 ENIAC 那样重新进行硬件布线。
冯・诺依曼的这份报告宣告了冯・诺依曼结构思想的诞生。冯・诺依曼结构思想对现代计算机的发展产生了深远影响,成为了现代计算机设计的基础框架。此后,几乎所有的计算机都遵循冯・诺依曼提出的这种存储程序式结构,包括计算机硬件的五大基本组成部分:运算器、控制器、存储器、输入设备和输出设备。运算器负责数据的运算处理;控制器依据程序中的指令来指挥和协调计算机各部件的工作;存储器用于存储程序和数据;输入设备将外部信息输入计算机;输出设备则将计算机处理的结果输出给用户。
一、EDVAC 报告的诞生背景
第二次世界大战期间,军事上对于高速计算的需求极为迫切。当时,美国陆军阿伯丁试验场的弹道研究实验室承担着大量复杂的弹道计算任务,传统的机械式计算器以及人工计算方式根本无法满足其对计算速度和精度的要求。ENIAC 的出现,在一定程度上缓解了这一计算压力,但它的缺陷也十分明显。ENIAC 采用十进制运算,并且程序与数据分离,这使得其在运算速度和编程灵活性上受到了极大的限制。为了克服这些问题,科学家们开始探索更为先进的计算机设计方案,EDVAC 的研发计划应运而生。
二、EDVAC 报告的具体内容
(一)存储程序概念的详述
在报告中,冯・诺依曼详细阐述了存储程序的概念。他指出,将程序和数据以二进制代码的形式存储于计算机的存储器中,计算机能够按照预定的顺序从存储器中读取指令,对数据进行处理。这一概念打破了以往计算机程序与数据分离的模式,使得计算机能够根据不同的任务需求,通过修改存储在存储器中的程序来灵活地执行各种运算,极大地提高了计算机的通用性。例如,在进行不同类型的科学计算时,只需将相应的计算程序存储到存储器中,计算机即可自动完成运算,而无需像 ENIAC 那样重新进行硬件连接和设置。
(二)计算机五大基本组成部分的设计
- 运算器:作为计算机进行数据处理的核心部件,运算器负责执行各种算术运算(如加、减、乘、除)和逻辑运算(如与、或、非)。它能够快速地对从存储器中读取的数据进行运算,并将运算结果返回给存储器或者直接输出。在 EDVAC 中,运算器的设计旨在提高运算速度和精度,以满足复杂计算任务的需求。
- 控制器:控制器犹如计算机的 “指挥中心”,它依据存储在存储器中的程序指令,有序地协调计算机各个部件的工作。控制器能够从存储器中读取指令,对指令进行译码,然后根据指令的要求向运算器、存储器、输入设备和输出设备发送控制信号,确保计算机的各个部件协同工作,实现预定的计算任务。例如,在执行一个简单的加法运算时,控制器会先从存储器中读取两个加数以及加法指令,然后将指令译码后向运算器发送运算信号,同时控制存储器准备接收运算结果。
- 存储器:存储器用于存储程序和数据。在 EDVAC 中,采用了汞延迟线作为主要的存储介质。汞延迟线利用声波在汞柱中传播的延迟特性来存储和读取数据,具有一定的存储容量和较快的读写速度。存储器的存在使得计算机能够在运行过程中随时访问所需的程序和数据,为存储程序工作方式的实现提供了关键支持。
- 输入设备:输入设备的作用是将外部信息输入到计算机中。在 EDVAC 中,输入设备包括磁带记录仪等,它能够将穿孔纸带上的数据或者其他外部设备输入的数据转换为计算机能够识别的二进制信号,并存储到存储器中。输入设备的存在使得计算机能够与外部世界进行交互,获取各种计算所需的数据。
- 输出设备:输出设备则负责将计算机处理的结果输出给用户。在 EDVAC 中,输出设备可以将计算结果以打印报表、显示在示波器上等方式呈现给用户。输出设备的设计使得用户能够直观地获取计算机的运算结果,从而判断计算任务是否完成以及结果是否正确。
(三)二进制的应用与优势阐述
冯・诺依曼在报告中深入探讨了二进制在计算机中的应用。他指出,由于电子元件具有双稳工作的特性,即可以通过两种稳定状态来表示信息,这与二进制中的 0 和 1 正好对应。因此,采用二进制能够大大简化计算机的逻辑线路设计。相比十进制,二进制在硬件实现上更加容易,因为只需要区分两种状态即可。而且,二进制的运算规则也相对简单,能够提高计算机的运算速度和可靠性。例如,在二进制加法运算中,只有 0+0=0、0+1=1、1+0=1、1+1=10 这几种基本情况,而十进制加法运算则要复杂得多。
三、EDVAC 报告对计算机科学的影响
(一)奠定现代计算机体系结构基础
EDVAC 报告所提出的存储程序结构和计算机五大基本组成部分的设计,成为了现代计算机体系结构的基石。自报告发布以来,几乎所有的计算机都遵循这一结构进行设计和制造。从大型主机到个人电脑,再到如今广泛应用的智能手机、平板电脑等移动设备,其基本的工作原理都是基于存储程序和程序控制。这种统一的体系结构使得计算机的设计和开发更加规范化、标准化,促进了计算机技术的快速发展和普及。例如,软件开发人员可以基于这一结构,开发出适用于各种计算机设备的软件,而无需针对不同的硬件结构进行大量的适配工作。
(二)推动计算机硬件技术的发展
存储技术的革新:报告中对存储器的设计要求促使科学家们不断探索新的存储技术。从最初的汞延迟线存储器,到后来的磁芯存储器,再到现代的半导体存储器(如随机存取存储器 RAM 和固态硬盘 SSD),存储技术不断取得突破。存储容量不断增大,读写速度不断提高,成本不断降低。这些存储技术的革新使得计算机能够存储更多的程序和数据,进一步提高了计算机的性能和应用范围。例如,随着存储容量的增大,计算机可以运行更加复杂的操作系统和大型应用程序,满足用户多样化的需求。
运算器和控制器的优化:为了满足存储程序结构对运算速度和控制精度的要求,运算器和控制器的设计也在不断优化。从早期使用真空管作为电子元件,到晶体管、集成电路的发明和应用,运算器和控制器的性能得到了极大的提升。运算速度越来越快,能够在更短的时间内完成复杂的计算任务。同时,控制器的功能也越来越强大,能够更加精确地协调计算机各个部件的工作,提高计算机的整体运行效率。例如,现代计算机中的多核处理器,通过多个运算核心同时工作,大大提高了计算机的运算能力。
(三)促进计算机软件技术的进步
- 操作系统的诞生与发展:存储程序概念为操作系统的诞生奠定了基础。操作系统作为管理计算机硬件与软件资源的程序,能够充分利用存储程序的特性,实现多任务处理、资源分配、文件管理等功能。随着计算机硬件性能的不断提升,操作系统也在不断发展和完善,从最初简单的单任务操作系统,到如今功能强大的多用户、多任务操作系统,如 Windows、Linux 等。操作系统的发展使得计算机的使用更加方便、高效,用户可以同时运行多个程序,而无需手动进行复杂的资源管理。
- 编程语言的演进:EDVAC 报告推动了编程语言的不断演进。从早期的机器语言和汇编语言,程序员需要直接与计算机的硬件打交道,编写程序的难度较大。随着计算机技术的发展和存储程序结构的普及,高级编程语言应运而生,如 FORTRAN、COBOL、C、Java 等。高级编程语言更加接近人类的自然语言,程序员可以使用更加直观、简洁的方式编写程序,然后通过编译器或解释器将程序转换为计算机能够理解的机器语言存储在存储器中执行。这大大提高了软件开发的效率和质量,使得更多人能够参与到计算机软件的开发中,丰富了计算机的应用场景。例如,使用 Python 语言,程序员可以用几行代码实现复杂的数据处理功能,而如果使用机器语言则需要编写大量的代码。
(四)影响计算机科学教育与研究方向
- 计算机科学教育体系的构建:EDVAC 报告所阐述的计算机体系结构和设计思想成为了计算机科学教育的核心内容。在大学计算机专业的课程设置中,计算机组成原理、操作系统、数据结构、编程语言等课程都围绕着这一核心展开。学生通过学习这些课程,掌握计算机的基本工作原理、体系结构以及软件开发的方法和技术,为今后从事计算机相关领域的工作打下坚实的基础。这种教育体系培养了一代又一代优秀的计算机专业人才,为计算机科学的发展提供了源源不断的智力支持。
- 计算机科学研究方向的确定:报告为计算机科学的研究指明了方向。在计算机体系结构方面,科学家们不断研究如何提高计算机的性能、降低能耗、增强可靠性;在软件技术方面,致力于开发更加高效、智能的操作系统、编程语言和应用程序;在人工智能、大数据处理、计算机网络等新兴领域,也都是基于 EDVAC 报告所奠定的基础进行拓展和创新。例如,在人工智能领域,计算机需要处理大量的数据和复杂的算法,这就要求计算机具有更高的运算速度和存储容量,而这些需求的满足都离不开对计算机体系结构和硬件技术的不断研究和改进。
(五)加速计算机在各领域的广泛应用
- 科学研究领域:计算机的快速发展使得科学家们能够进行更加复杂的科学计算和模拟。在物理学、化学、天文学等领域,计算机被用于模拟各种物理现象、化学反应和天体运动,帮助科学家们深入理解自然规律,解决一些以往难以通过实验或理论计算解决的问题。例如,在研究气候变化时,科学家们可以利用计算机建立复杂的气候模型,模拟不同的气候条件下地球的气候变化,为应对气候变化提供科学依据。
- 工业生产领域:计算机在工业生产中的应用实现了生产过程的自动化和智能化。通过计算机控制系统,企业可以对生产线上的设备进行实时监控和控制,提高生产效率、降低生产成本、保证产品质量。例如,在汽车制造行业,计算机辅助设计(CAD)和计算机辅助制造(CAM)技术的应用,使得汽车的设计和制造更加精确、高效,缩短了产品的研发周期。
- 商业与金融领域:计算机在商业和金融领域的应用改变了传统的商业模式和金融交易方式。企业利用计算机进行财务管理、市场营销、客户关系管理等,提高了企业的运营效率和决策水平。在金融领域,电子支付、网上银行、证券交易等业务的开展都离不开计算机技术的支持,使得金融交易更加便捷、安全、高效。例如,人们可以通过手机银行随时随地进行转账、查询账户余额等操作,大大提高了金融服务的便利性。
- 日常生活领域:计算机已经深入到人们日常生活的方方面面。从家庭娱乐(如观看电影、玩游戏)到学习(在线教育、电子图书),从通信(电子邮件、社交媒体)到出行(导航、在线预订车票和酒店),计算机为人们的生活带来了极大的便利。例如,通过在线学习平台,人们可以不受时间和空间的限制,获取各种优质的教育资源,提升自己的知识和技能。
EDVAC 报告在计算机发展史上具有举足轻重的地位。它不仅为现代计算机的设计和发展奠定了坚实的基础,推动了计算机硬件和软件技术的飞速进步,还深刻地影响了计算机科学教育、研究以及计算机在各个领域的广泛应用。约翰・冯・诺依曼凭借其卓越的智慧和创新精神,为人类社会的发展做出了不可磨灭的贡献。随着科技的不断进步,计算机技术将继续在 EDVAC 报告所开创的道路上不断创新和发展,为人类社会带来更多的惊喜和变革。