跳轉到

1945:ENIAC 與馮紐曼架構 — 儲存程式架構的誕生#

案情#

1945 年底,賓州大學摩爾電機工程學院的 ENIAC(電子數值積分計算機)完工:約 17,468 支真空管、重 27 噸、耗電 150 千瓦,1946 年 2 月 14 日公開揭幕。但真正改變世界的,是數學家約翰・馮紐曼(John von Neumann)於 1945 年 6 月起草的〈EDVAC 報告初稿〉(First Draft of a Report on the EDVAC)——它定義了「儲存程式電腦」的邏輯結構,後世稱為馮紐曼架構。

前因#

  • ENIAC 由莫奇利(John Mauchly)與埃克特(J. Presper Eckert)為陸軍彈道研究實驗室建造,用於計算火砲射表。
  • ENIAC 的致命弱點:程式以接線板與開關「硬接線」,改一次程式需數天手工重接。
  • 1944 年夏,馮紐曼在火車站月台巧遇 ENIAC 顧問戈德斯坦(Herman Goldstein),受邀加入顧問團。
  • 圖靈 1936 年已從理論上證明「程式可如資料般存於同一記憶體」;EDVAC 報告將此工程化。
  • 埃克特已提出以水銀延遲線做「超音波記憶體」,技術條件成熟。

線索與推理#

偵探重組案情:馮紐曼的貢獻不是「發明電腦」,而是把散落的工程直覺整合成一套邏輯學說。關鍵推理步驟有三。其一,「單一記憶體」:指令與資料皆為二進位數,存於同一記憶體,於是「修改程式」=「寫入記憶體」,速度從數天降到毫秒——這是從 ENIAC 的痛點反推的必然結論。其二,「分離但串接的五大單元」:算術單元(CA)、控制單元(CC)、記憶體(M)、輸入(I)、輸出(O),以一條匯流連接,控制流依序取指執行。其三,「報告只署馮紐曼之名」且廣為散發,使架構迅速成為公共知識——這也埋下莫奇利與埃克特的不滿,日後專利訴訟(Honeywell v. Sperry Rand, 1973)中 EDVAC 報告被引為「先前技術」,撤銷了 ENIAC 專利。偵探另須記錄陰影面: Eckert 與 Mauchly 曾主張「分離的程式記憶體」,馮紐曼的單記憶體設計簡單卻造成「馮紐曼瓶頸」(CPU 與記憶體間的通道成為效能限制),此瓶頸至今仍是電腦架構的核心課題。

理論#

馮紐曼架構示意:

單元 代號 功能 現代對應
記憶體 M 存指令與資料 RAM
算術/邏輯單元 CA 運算 ALU
控制單元 CC 取指、解碼、調度 Control Unit
輸入 I 讀入資料 I/O
輸出 O 輸出結果 I/O

基本執行迴圈(fetch–decode–execute):

\[ \text{PC} \rightarrow \text{IR} \leftarrow M[\text{PC}]; \quad \text{PC} \leftarrow \text{PC}+1; \quad \text{Execute}(\text{IR}) \]

馮紐曼瓶頸:CPU 與 M 間頻寬 \(B\) 限制吞吐量, \(T \ge \dfrac{N_{inst}}{B}\) 。ENIAC 性能:每秒約 5,000 次加法,比機械計算器快千倍。

後果#

  1. 1948 年曼徹斯特 Baby、1949 年 EDSAC、1951 年 UNIVAC I 依此架構問世,儲存程式成為工業標準。
  2. 莫奇利與埃克特離開學界創辦公司,開啟商用電腦產業(後被 Sperry 併購)。
  3. 1973 年專利判決確立電腦架構屬公共財,加速產業擴散。
  4. 馮紐曼瓶頸催生快取、哈佛架構、GPU 異構計算等七十年的架構演化史。

冷案檔案#

  • 時間:1945 年(ENIAC 完工、6 月 EDVAC 報告),費城。
  • 案由:ENIAC 證明電子計算可行;EDVAC 報告定義儲存程式架構。
  • 歷史定位:現代電腦的邏輯藍圖,所有數位裝置的祖型。