基礎:機器模型
馮紐曼架構(von Neumann architecture)
/ fon NOY-mahn /
如果儲存程式是原理,馮紐曼架構就是把它蓋起來的標準藍圖。它以 1945 年描述它的數學家 John von Neumann 命名,把電腦勾勒成幾個彼此接線、相互合作的部件:一個負責「思考」的處理器、一塊同時存放指令與資料的主記憶體,以及一條與外界溝通的管道。
這份藍圖有三大塊。CPU(中央處理器)內含一個做實際運算的算術邏輯單元,以及一個指揮交通的控制單元。記憶體是一整片編了號的格子所組成的均一儲存區,程式碼和資料都住在裡面。而輸入/輸出(I/O)則連向外界——鍵盤、螢幕、磁碟、網路。它們由匯流排相連,那是一組共用的導線,來回傳遞位址、資料與控制訊號。CPU 以一個迴圈運作:從記憶體讀一條指令、解碼、執行、再重複。
為何重要:這是幾乎所有系統程式設計所假設的心智模型。它也是一個著名限制的來源——「馮紐曼瓶頸」:因為程式碼與資料共用一塊記憶體、共用一條通往 CPU 的路徑,處理器常常得等記憶體,而記憶體比 CPU 慢得多。光是這個事實,就驅動了系統設計裡的一大片——從 CPU 快取,到為何記憶體排佈與區域性對效能如此關鍵。
當你按下一個鍵,I/O 硬體把它送進記憶體;CPU 的控制單元取出一條指令,算術單元也許把它和某個快捷鍵比對,I/O 再把一個字元送到螢幕。每一步都在 CPU 與記憶體之間透過匯流排往返。
CPU、一塊共享記憶體、I/O,由匯流排相連——這就是經典的馮紐曼示意圖。
它的近親「哈佛架構」把指令和資料放在分開的記憶體裡。多數通用 CPU 在程式設計層面是馮紐曼式的,內部卻使用哈佛式的分離快取,所以這兩個概念在真實硬體中其實是模糊交織的。
又称
另见