SEARCH

內儲程式是誰提出的

內儲程式是誰提出的

關於「內儲程式是誰提出的」這個問題,答案指向了計算機科學發展史上的兩位重要人物:約翰·馮·諾依曼 (John von Neumann)莫里斯·威爾克斯 (Maurice Wilkes)

雖然「內儲程式」這個概念的出現並非源於某一個單一的 eureka 時刻,但通常認為,約翰·馮·諾依曼 在其1945年撰寫的報告《關於ENIAC的初步設計報告》中,系統地闡述了「存儲程序」(Stored-program)的概念,並對未來的計算機設計產生了深遠影響。這份報告是現代計算機體系結構的基礎,被認為是「馮·諾依曼體系結構」的奠基之作。

馮·諾依曼的貢獻在於,他首次清晰地提出了將指令(即程序)和數據都存儲在計算機的同一內存區域中。在此之前,計算機的設計通常是將程序通過物理線路或者穿孔卡片等方式直接硬連到計算機的硬體中,修改程序需要重新進行物理連接,效率極低。馮·諾依曼的想法是,計算機應該能夠像處理數據一樣,通過電子方式讀寫指令,從而使得程序的修改和載入變得非常靈活和快速。

然而,將理論付諸實踐並實際構建出第一台真正意義上實現內儲程式概念的計算機的,是英國劍橋大學的 **莫里斯·威爾克斯** 及其團隊。他們於1949年成功研製出 **EDSAC (Electronic Delay Storage Automatic Calculator)**。EDSAC 是世界上第一台投入實際運行的內儲程式計算機,它完全按照馮·諾依曼的設想,將程序和數據存儲在內存中,並且能夠通過編程來執行複雜的計算任務。

因此,我們可以這樣理解:

  • 理論提出者: 約翰·馮·諾依曼 (John von Neumann) - 在理論上系統闡述了內儲程式的概念。
  • 實踐實現者: 莫里斯·威爾克斯 (Maurice Wilkes) - 領導團隊建造了第一台成功運行的內儲程式計算機 EDSAC。

在計算機科學的歷史發展中,這兩位科學家的工作都具有里程碑式的意義。馮·諾依曼的理論為計算機的未來發展指明了方向,而威爾克斯的實踐則將這一偉大的設想變成了現實,開啟了通用計算機的新時代。

馮·諾依曼的理論貢獻

馮·諾依曼的報告詳述了計算機應具備以下幾個基本組成部分,這些也構成了現代計算機的基礎:

  1. 運算器 (Arithmetic Logic Unit, ALU): 負責執行算術和邏輯運算。
  2. 控制器 (Control Unit, CU): 負責解釋指令併發出控制信號,指揮各部件協同工作。
  3. 存儲器 (Memory): 用於存儲程序指令和數據。這是「內儲程式」概念的核心所在。
  4. 輸入設備 (Input Device): 用於將外部信息輸入計算機。
  5. 輸出設備 (Output Device): 用於將計算機的計算結果輸出。

其中,存儲器能夠存儲程序指令,意味著計算機可以根據存儲在內存中的指令序列自動執行一系列操作,而無需外部干預。這極大地提高了計算機的處理速度和靈活性。

莫里斯·威爾克斯的實踐成就

威爾克斯和他的團隊在劍橋大學開發的 EDSAC 計算機,是第一個真正意義上實現了內儲程式的計算機。EDSAC 的成功標誌著計算機技術邁入了一個新的階段。它能夠存儲多達1024個35位字的程序和數據,並能夠高效地執行指令。

EDSAC 的建造過程也充分體現了當時計算機科學的艱辛與智慧。在有限的技術條件下,威爾克斯團隊克服了重重困難,將馮·諾依曼的理論轉化為可運行的機器。

總結來說,當我們討論「內儲程式是誰提出的」時,通常是在探討其理論基礎的提出者。從這個意義上說,約翰·馮·諾依曼 是最為關鍵的人物。而 莫里斯·威爾克斯 則是將這一革命性概念首次成功實現的先驅。

「計算機的基本思想是,機器可以被賦予一台『思考』的能力,或者更確切地說,一台『執行指令』的能力,並且這些指令可以像數據一樣被存儲和修改。」 - 約翰·馮·諾依曼 (意譯)

為何內儲程式概念如此重要?

內儲程式概念的出現,是計算機發展史上的一個**分水嶺**。在此之前,計算機的程序通常是**固化在硬體中**(例如通過改變電路連接來實現)。這意味著,要改變程序的運行方式,就需要重新進行大量的物理連接,這不僅耗時耗力,而且非常不靈活。就好比一個玩具,它的功能是固定的,無法通過軟體來改變。

引入內儲程式后,計算機的程序被存儲在與數據相同的內存區域。這就意味著,計算機可以像讀取數據一樣,通過電子方式快速地讀取和執行指令。程序可以被方便地修改、載入和刪除,極大地提高了計算機的靈活性、通用性和效率。這使得計算機不再是單一功能的「機器」,而是可以根據不同的程序來執行各種任務的「通用計算設備」。

這個概念為後來計算機的普及和飛速發展奠定了堅實的基礎,我們今天所使用的所有計算機,從智能手機到超級計算機,都遵循著內儲程式的原理。


常見問題 (FAQ)

如何區分「提出」內儲程式概念與「實現」內儲程式概念?

「提出」概念通常是指在理論層面、通過文字或理論模型,首次清晰地闡述了一個新的思想或原理。在這個過程中,可能還沒有實際的物理設備來驗證。
「實現」概念則是指將理論付諸實踐,利用現有的技術條件,成功地建造出能夠運行該理論的實際設備。這個過程需要工程技術、資源投入和大量的實踐嘗試。
在內儲程式的例子中,馮·諾依曼是在理論上「提出」了存儲程序計算機的核心思想,而威爾克斯則是在實踐中「實現」了這一概念,建造了第一台真正意義上的內儲程式計算機。

馮·諾依曼體系結構是否完全等同於內儲程式?

不完全等同,但內儲程式是馮·諾依曼體系結構的核心組成部分。
馮·諾依曼體系結構是一個更為廣泛的概念,它描述了一台通用計算機應當具備的五大基本組成部分:運算器、控制器、存儲器、輸入設備和輸出設備,並且強調了程序和數據存儲在同一內存中。
內儲程式(Stored-program)是這個體系結構中關於「存儲器」功能的關鍵原則,即指令可以像數據一樣存儲在內存中,並由控制器按順序讀取和執行。可以說,內儲程式是馮·諾依曼體系結構得以實現的基石。

在馮·諾依曼之前,是否有人提出過類似的想法?

在馮·諾依曼之前,一些早期的計算機,如阿塔納索夫-貝瑞計算機 (ABC) 和 ENIAC,就已經展現了對程序控制的初步探索。例如,ENIAC 雖然是硬連線計算機,但可以通過插拔線纜和設置開關來改變其程序,這已初步具備了一定的程序控制能力。
然而,馮·諾依曼的偉大之處在於,他系統地、清晰地闡述了將指令與數據統一存儲在同一內存中,並通過一套通用的指令集來執行的理論框架。他的報告具有前瞻性和完整性,為後續計算機的設計提供了明確的藍圖,是現代計算機體系結構的基礎。可以說,他將模糊的設想發展成了成熟的理論。