冯·诺伊曼结构(英語:),也称馮·紐曼模型(Von Neumann model),是一种将程序指令存储器和数据存储器合并在一起的電腦設計概念结构。
冯·诺伊曼结构
冯·诺伊曼结构(英語:),也称馮·紐曼模型(Von Neumann model)或普林斯顿结构(Princeton architecture),是一种将程序指令存储器和数据存储器合并在一起的電腦設計概念结构。本詞描述的是一種實作通用圖靈機的計算裝置,以及一種相對於平行計算的序列式架構參考模型(referential model)。
冯·诺伊曼结构的設計概念。
本架構隱約指導了將儲存裝置與中央處理器分開的概念,因此依本架構設計出的計算機又稱存储程序计算机。
理論
存储程序计算机在体系结构上主要特点有:
- 以运算单元为中心
- 采用存储程序原理
- 存储器是按地址访问、线性编址的空间
- 控制流由指令流产生
- 指令由操作码和地址码组成
- 数据以二进制编码
歷史
最早的計算機器僅內含固定用途的程式。現代的某些計算機依然維持這樣的設計方式,通常是為了簡化或教育目的。例如一個計算器僅有固定的數學計算程式,它不能拿來當作文書處理軟體,更不能拿來玩遊戲。若想要改變此機器的程式,你必須更改線路、更改結構甚至重新設計此機器。當然最早的計算機並沒有設計的那麼可程式化。當時所謂的「重寫程式」很可能指的是紙筆設計程式步驟,接著制訂工程細節,再施工將機器的電路配線或結構改變。
而儲存程式型電腦的概念改變了這一切。藉由創造一組指令集架構,並將所謂的運算轉化成一串程式指令的執行細節,讓此機器更有彈性。藉著將指令當成一種特別型態的靜態資料,一台儲存程式型電腦可輕易改變其程式,並在程式控制下改變其運算內容。 冯·诺伊曼结构與儲存程式型電腦是互相通用的名詞,其用法將於下述。而哈佛結構則是一種將程式資料與普通資料分開儲存的設計概念,但是它并未完全突破冯.诺伊曼架构。
儲存程式型概念也可讓程式執行時自我修改程式的運算內容。本概念的設計動機之一就是可讓程式自行增加內容或改變程式指令的記憶體位置,因為早期的設計都要使用者手動修改。但隨著索引暫存器與間接位置存取變成硬體架構的必備機制後,本功能就不如以往重要了。而程式自我修改這項特色也被現代程式設計所棄揚,因為它會造成理解與除錯的難度,且現代中央處理器的管線與快取機制會讓此功能效率降低。
從整體而言,將指令當成資料的概念使得組合語言、編譯器與其他自動編程工具得以實現;可以用這些「自動編程的程式」,以人類較易理解的方式編寫程式;從局部來看,強調I/O的機器,例如Bitblt,想要修改畫面上的圖樣,以往是認為若沒有客制化硬體就辦不到。但之後顯示這些功能可以藉由「執行中編譯」技術而有效達到。
此架構當然有所缺陷,除了下列將述的