基礎:計算機是什麼
馮紐曼架構(von Neumann architecture)
/ fon NOY-mahn /
想像一間只有一名工人的小工坊。有一個老闆負責讀指示、下命令(控制單元),有一張擺著工具、真正動手做事的工作檯(資料路徑),有一個又大又單一的架子同時放著指令單與零件(記憶體),還有一道用來收貨與出貨的門(輸入輸出)。一切都透過共用的走廊溝通(匯流排)。這個簡單卻影響深遠的電腦藍圖,就是馮紐曼架構,得名自 1945 年描述它的數學家 John von Neumann。
它的決定性特徵,是指令與資料共用同一塊記憶體,並透過共同的路徑存取。處理器分成控制單元(負責提取、解碼指令並指揮一切)與資料路徑(存放暫存器,以及真正做運算的算術邏輯單元)。記憶體存放儲存的程式與其資料,輸入輸出連接外部世界,匯流排則是把這一切綁在一起的導線。機器只是不斷重複:從記憶體提取一條指令、解碼、執行、再重複。
你用過的幾乎每一台通用電腦,都遵循這個模型。它一個著名的弱點是馮紐曼瓶頸:因為指令與資料共用通往記憶體的單一路徑,每一條指令與每一筆資料都得擠過同一道門,處理器可能會餓著肚子等它。現代結構的許多部分——快取、更寬的記憶體路徑、整套記憶體階層——都是對這道共用門的回應。
在馮紐曼機器上,提取下一條指令與載入一筆資料都走同一條記憶體路徑。若兩者相爭,其中一個就得等——這種爭用正是這個設計著名的瓶頸。
通往記憶體的單一共用門:簡單、通用,也是瓶頸的來源。
這個模型以馮紐曼命名,但其實奠基於許多人(Eckert、Mauchly 等)的工作;那份報告掛了他的名字,所以這份功勞——無論公不公平——就這麼跟著他了。
又稱
另見