內儲程式是誰提出的
关于“內儲程式是誰提出的”这个问题,答案指向了计算机科学发展史上的两位重要人物:约翰·冯·诺依曼 (John von Neumann) 和 莫里斯·威尔克斯 (Maurice Wilkes)。
虽然“內儲程式”这个概念的出现并非源于某一个单一的 eureka 时刻,但通常认为,约翰·冯·诺依曼 在其1945年撰写的报告《关于ENIAC的初步设计报告》中,系统地阐述了“存储程序”(Stored-program)的概念,并对未来的计算机设计产生了深远影响。这份报告是现代计算机体系结构的基础,被认为是“冯·诺依曼体系结构”的奠基之作。
冯·诺依曼的贡献在于,他首次清晰地提出了将指令(即程序)和数据都存储在计算机的同一内存区域中。在此之前,计算机的设计通常是将程序通过物理线路或者穿孔卡片等方式直接硬连到计算机的硬件中,修改程序需要重新进行物理连接,效率极低。冯·诺依曼的想法是,计算机应该能够像处理数据一样,通过电子方式读写指令,从而使得程序的修改和加载变得非常灵活和快速。
然而,将理论付诸实践并实际构建出第一台真正意义上实现內儲程式概念的计算机的,是英国剑桥大学的 **莫里斯·威尔克斯** 及其团队。他们于1949年成功研制出 **EDSAC (Electronic Delay Storage Automatic Calculator)**。EDSAC 是世界上第一台投入实际运行的內儲程式计算机,它完全按照冯·诺依曼的设想,将程序和数据存储在内存中,并且能够通过编程来执行复杂的计算任务。
因此,我们可以这样理解:
- 理论提出者: 约翰·冯·诺依曼 (John von Neumann) - 在理论上系统阐述了內儲程式的概念。
- 实践实现者: 莫里斯·威尔克斯 (Maurice Wilkes) - 领导团队建造了第一台成功运行的內儲程式计算机 EDSAC。
在计算机科学的历史发展中,这两位科学家的工作都具有里程碑式的意义。冯·诺依曼的理论为计算机的未来发展指明了方向,而威尔克斯的实践则将这一伟大的设想变成了现实,开启了通用计算机的新时代。
冯·诺依曼的理论贡献
冯·诺依曼的报告详述了计算机应具备以下几个基本组成部分,这些也构成了现代计算机的基础:
- 运算器 (Arithmetic Logic Unit, ALU): 负责执行算术和逻辑运算。
- 控制器 (Control Unit, CU): 负责解释指令并发出控制信号,指挥各部件协同工作。
- 存储器 (Memory): 用于存储程序指令和数据。这是“內儲程式”概念的核心所在。
- 输入设备 (Input Device): 用于将外部信息输入计算机。
- 输出设备 (Output Device): 用于将计算机的计算结果输出。
其中,存储器能够存储程序指令,意味着计算机可以根据存储在内存中的指令序列自动执行一系列操作,而无需外部干预。这极大地提高了计算机的处理速度和灵活性。
莫里斯·威尔克斯的实践成就
威尔克斯和他的团队在剑桥大学开发的 EDSAC 计算机,是第一个真正意义上实现了內儲程式的计算机。EDSAC 的成功标志着计算机技术迈入了一个新的阶段。它能够存储多达1024个35位字的程序和数据,并能够高效地执行指令。
EDSAC 的建造过程也充分体现了当时计算机科学的艰辛与智慧。在有限的技术条件下,威尔克斯团队克服了重重困难,将冯·诺依曼的理论转化为可运行的机器。
总结来说,當我們討論“內儲程式是誰提出的”時,通常是在探討其理論基礎的提出者。從這個意義上說,約翰·馮·諾依曼 是最為關鍵的人物。而 莫里斯·威尔克斯 則是將這一革命性概念首次成功實現的先驅。
“计算机的基本思想是,机器可以被赋予一台‘思考’的能力,或者更确切地说,一台‘执行指令’的能力,并且这些指令可以像数据一样被存储和修改。” - 约翰·冯·诺依曼 (意译)
為何內儲程式概念如此重要?
內儲程式概念的出現,是计算机发展史上的一个**分水岭**。在此之前,计算机的程序通常是**固化在硬件中**(例如通过改变电路连接来实现)。这意味着,要改变程序的运行方式,就需要重新进行大量的物理连接,这不仅耗时耗力,而且非常不灵活。就好比一个玩具,它的功能是固定的,无法通过软件来改变。
引入內儲程式后,计算机的程序被存储在与数据相同的内存区域。这就意味着,计算机可以像读取数据一样,通过电子方式快速地读取和执行指令。程序可以被方便地修改、加载和删除,极大地提高了计算机的灵活性、通用性和效率。这使得计算机不再是单一功能的“机器”,而是可以根据不同的程序来执行各种任务的“通用计算设备”。
这个概念为后来计算机的普及和飞速发展奠定了坚实的基础,我们今天所使用的所有计算机,从智能手机到超级计算机,都遵循着內儲程式的原理。
常見問題 (FAQ)
如何區分“提出”內儲程式概念與“實現”內儲程式概念?
“提出”概念通常是指在理论层面、通过文字或理论模型,首次清晰地阐述了一个新的思想或原理。在这个过程中,可能还没有实际的物理设备来验证。
“实现”概念则是指将理论付诸实践,利用现有的技术条件,成功地建造出能够运行该理论的实际设备。这个过程需要工程技术、资源投入和大量的实践尝试。
在內儲程式的例子中,冯·诺依曼是在理论上“提出”了存储程序计算机的核心思想,而威尔克斯则是在实践中“实现”了这一概念,建造了第一台真正意义上的內儲程式计算机。
馮·諾依曼體系結構是否完全等同於內儲程式?
不完全等同,但內儲程式是馮·諾依曼體系結構的核心組成部分。
馮·諾依曼體系結構是一個更為廣泛的概念,它描述了一台通用計算機應當具備的五大基本組成部分:運算器、控制器、存儲器、輸入設備和輸出設備,並且強調了程序和數據存儲在同一內存中。
內儲程式(Stored-program)是這個體系結構中關於“存儲器”功能的關鍵原則,即指令可以像數據一樣存儲在內存中,並由控制器按順序讀取和執行。可以說,內儲程式是馮·諾依曼體系結構得以實現的基石。
在馮·諾依曼之前,是否有人提出過類似的想法?
在馮·諾依曼之前,一些早期的计算机,如阿塔納索夫-贝瑞计算机 (ABC) 和 ENIAC,就已经展现了对程序控制的初步探索。例如,ENIAC 虽然是硬连线计算机,但可以通过插拔线缆和设置开关来改变其程序,这已初步具备了一定的程序控制能力。
然而,冯·诺依曼的伟大之处在于,他系统地、清晰地阐述了将指令与数据统一存储在同一内存中,并通过一套通用的指令集来执行的理论框架。他的报告具有前瞻性和完整性,为后续计算机的设计提供了明确的蓝图,是现代计算机体系结构的基础。可以说,他将模糊的设想发展成了成熟的理论。

