馮·諾依曼結構(普林斯頓結構)

馮·諾依曼結構

普林斯頓結構一般指本詞條

馮·諾依曼結構也稱普林斯頓結構,是一種將程式指令存儲器和數據存儲器合併在一起的存儲器結構。程式指令存儲地址和數據存儲地址指向同一個存儲器的不同物理位置,因此程式指令和數據的寬度相同,如英特爾公司的8086中央處理器的程式指令和數據都是16位寬

數學家馮·諾依曼提出了計算機製造的三個基本原則,即採用二進制邏輯、程式存儲執行以及計算機由五個部分組成(運算器、控制器、存儲器、輸入設備、輸出設備),這套理論被稱為馮·諾依曼體系結構。

基本介紹

  • 中文名:馮·諾依曼結構
  • 外文名:Von neumann structure
  • 別稱普林斯頓結構
  • 創造人:馮·諾依曼
  • 描述領域:計算機
  • 性質:存儲器結構
發展歷史,特點及局限,特點,局限,哈佛結構以及兩者區別,哈佛結構,兩者區別,展望,

發展歷史

在計算機誕生之前,人們在計算的精度和數量上出現了瓶頸,對於計算機這樣的機器的需求就十分強烈,馮·諾依曼的邏輯和計算機思想指導他設計並製造出歷史上的第一台通用電子計算機。他的計算機理論主要受自身數學基礎影響,且具有高度數學化、邏輯化特徵,對於該理論,他自己一般會叫作“計算機的邏輯理論”。而他的計算機存儲程式的思想,則是他的另一偉大創新,通過內部存儲器安放存儲程式,成功解決了當時計算機存儲容量太小,運算速度過慢的問題。
馮·諾依曼馮·諾依曼
第二次世界大戰期間,美軍要求實驗室為其提供計算量龐大的計算結果。於是便有了研製電子計算機的構想。面對這種需求,美國立即組建研發團隊,包括許多工程師與物理學家,試圖開發全球首台計算機(後世稱作ENIAC機)。雖然採取了最先進的電子技術,但缺少原理上的指導。這時,馮·諾依曼出現了。他提出了一個至關重要的方面:計算機的邏輯結構。馮·諾依曼從邏輯入手,帶領團隊對ENIAC進行改進。他的邏輯設計具有以下特點:
(1)將電路、邏輯兩種設計進行分離,給計算機建立創造最佳條件;
(2)將個人神經系統、計算機結合在一起,提出全新理念,即生物計算機。
即便ENIAC機是通過當時美國乃至全球頂尖技術實現的,但它採用臨時存儲,將運算器確定成根本,故而缺點較多,比如存儲空間有限、程式無法存儲等,且運行速度較慢,具有先天不合理性。馮·諾依曼以此為前提制定以下最佳化方案:
(1)用二進制進行運算,大大加快了計算機速度;
(2)存儲程式,也就是通過計算機內部存儲器保存運算程式。如此一來,程式設計師僅僅通過存儲器寫入相關運算指令,計算機便能立即執行運算操作,大大加快運算效率。
馮·諾依曼結構示意圖馮·諾依曼結構示意圖

特點及局限

特點

現代計算機發展所遵循的基本結構形式始終是馮·諾依曼機結構。這種結構特點是“程式存儲,共享數據,順序執行”,需要 CPU 從存儲器取出指令和數據進行相應的計算。主要特點有:
(1)單處理機結構,機器以運算器為中心;
(2)採用程式存儲思想;
(3)指令和數據一樣可以參與運算;
(4) 數據以二進制表示;
(5)將軟體和硬體完全分離;
(6) 指令由操作碼運算元組成;
(7)指令順序執行

局限

CPU 與共享存儲器間的信息交換的速度成為影響系統性能的主要因素,而信息交換速度的提高又受制於存儲元件的速度、存儲器的性能和結構等諸多條件。
傳統馮·諾依曼計算機體系結構的存儲程式方式造成了系統對存儲器的依賴,CPU 訪問存儲器的速度制約了系統運行的速度。集成 電路 IC 晶片的技術水平決定了存儲器及其他硬體的性能。為了提高硬體的性能, 以英特爾公司為代表的晶片製造企業在積體電路生產方面做出了極大的努力,且獲得了巨大的技術成果。 現在每隔 18 個 月 IC 的集成度翻一倍,性能也提升一倍,產品價格降低一半,這就是所謂的“摩爾定律”。 這個規律已經持續了40 多年,估計還將延續若干年。然而,電子產品面臨的二個基本限制是客觀存在的:光的速度和材料的原子特性。首先,信息傳播的速度最終將取決於電子流動的速度,電子信號在元件和導線里流動會產生時間延遲,頻率過高會造成信號畸變,所以元件的速度不可能無限的提高直至達到光速。第二,計算機的電子信號存儲在以矽晶體材料為代表電晶體上,集成度的提高在於電晶體變小,但是電晶體不可能小於一個矽原子的體積。 隨著半導體技術逐漸逼近工藝尺寸極限,摩爾定律原導出的規律將不再適用。
對馮·諾依曼計算機體系結構缺陷的分析:
(1)指令和數據存儲在同一個存儲器中,形成系統對存儲器的過分依賴。如果儲存器件的發展受阻,系統的發展也將受阻。
(2)指令在存儲器中按其執行順序存放,由指令計數器PC指明要執行的指令所在的單元地址。 然後取出指令執行操作任務。所以指令的執行是串列。影響了系統執行的速度。
(3)存儲器是按地址訪問的線性編址,按順序排列的地址訪問,利 於存儲和執行的機器語言指令,適用於作數值計算。但是高級語言表示的存儲器則是一組有名字的變數,按名字調用變數,不按地址訪問。機器語言同高級語言在語義上存在很大的間隔, 稱之為馮·諾依曼語 義間隔。消除語義間隔成了計算機發展面臨的一大難題。
(4)馮·諾依曼體系結構計算機是為算術和邏輯運算而誕生的,目前在數值處理方面已經到達較高的速度和精度,而非數值處理套用領域發展緩慢,需要在體系結構方面有重大的突破。
(5)傳統的馮·諾依曼型結構屬於控制驅動方式。它是執行指令代碼對數值代碼進行處理,只要指令明確,輸入數據準確,啟動程式後自動運行而且結果是預期的。一旦指令和數據有錯誤,機器不會主動修改指令並完善程式。而人類生活中有許多信息是模糊的,事件的發生、發展和結果是不能預期的,現代計算機的智慧型是無法應對如此複雜任務的。

哈佛結構以及兩者區別

哈佛結構

哈佛結構的計算機分為三大部件:(1)CPU;(2)程式存儲器;(3)數據存儲器。它的特點是將程式指令和數據分開存儲,由於數據存儲器與程式存儲器採用不同的匯流排,因而較大的提高了存儲器的頻寬,使之數位訊號處理性能更加優越。
哈佛結構是一種將程式指令存儲和數據存儲分開的存儲器結構。中央處理器首先到程式指令存儲器中讀取程式指令內容,解碼後得到數據地址,再到相應的數據存儲器中讀取數據,並進行下一步的操作(通常是執行)。程式指令存儲和數據存儲分開,可以使指令和數據有不同的數據寬度,如Microchip公司的PIC16晶片的程式指令是14位寬度,而數據是8位寬度。
為避免將程式和指令共同存儲在存儲器中,並共用同一條匯流排,使得 CPU 和記憶體的信息流訪問存取成為系統的瓶頸,人們設計了哈佛結構,原則是將程式和指令分別存儲在不同的存儲器中,分別訪問。如此設計克服了數據流傳輸瓶頸,提高了運算速度,但結構複雜,對外圍設備的連線與處理要求高,不適合外圍存儲器的擴展, 實現成本高,所以哈佛結構未能得到大範圍的套用。但是作為馮式存儲程式的改良手段,哈佛結構在CPU 內的高速快取 Cache中得到了套用。通過設定指令快取和數據快取,指令和數據分開讀取,提高了數據交換速度,極大克服了計算機的數據瓶頸。通過增加處理器數量,中央處理單元從最初的單核向雙核、四核的方向發展,在馮氏計算機的簡單結構下,增加處理器數量,也極大提高了計算機的運算性能。存儲程式的方式使得計算機擅長數值處理而限制了其在非數值處理方面的發展。
哈佛結構處理器有兩個明顯的特點:使用兩個獨立的存儲器模組,分別存儲指令和數據,每個存儲模組都不允許指令和數據並存;使用獨立的兩條匯流排,分別作為CPU與每個存儲器之間的專用通信路徑,而這兩條匯流排之間毫無關聯。
改進的哈佛結構,其結構特點為:以便實現並行處理;具有一條獨立的地址匯流排和一條獨立的數據匯流排,利用公用地址匯流排訪問兩個存儲模組(程式存儲模組和數據存儲模組),公用數據匯流排則被用來完成程式存儲模組或數據存儲模組與CPU之間的數據傳輸。

兩者區別

馮·諾依曼理論的要點是:數字計算機的數制採用二進制;計算機應該按照程式順序執行。人們把馮諾依曼的這個理論稱為馮諾依曼體系結構。從ENIAC到當前最先進的計算機都採用的是馮諾依曼體系結構。所以馮諾依曼是當之無愧的數字計算機之父。
根據馮諾依曼體系結構構成的計算機,必須具有如下功能:把需要的程式和數據送至計算機中;必須具有長期記憶程式、數據、中間結果及最終運算結果的能力;能夠完成各種算術、邏輯運算和數據傳送等數據加工處理的能力;能夠根據需要控制程式走向,並能根據指令控制機器的各部件協調操作;能夠按照要求將處理結果輸出給用戶。
哈佛結構是為了高速數據處理而採用的,因為可以同時讀取指令和數據(分開存儲的)。大大提高了數據吞吐率,缺點是結構複雜。通用微機指令和數據是混合存儲的,結構上簡單,成本低。假設是哈佛結構:你就得在電腦安裝兩塊硬碟,一塊裝程式,一塊裝數據,記憶體裝兩根,一根儲存指令,一根存儲數據……
是什麼結構要看匯流排結構的。51單片機雖然數據指令存儲區是分開的,但匯流排是分時復用的,所以頂多算改進型的哈佛結構。ARM9雖然是哈佛結構,但是之前的版本也還是馮·諾依曼結構。早期的X86能迅速占有市場,一條很重要的原因,正是靠了馮·諾依曼這種實現簡單,成本低的匯流排結構。處理器雖然外部匯流排上看是諾依曼結構的,但是由於內部CACHE的存在,因此實際上內部來看已經算是改進型哈佛結構的了。

展望

馮·諾依曼結構開啟了計算機系統結構發展的先河,但是因為其集中、順序的的控制而成為性能提高的瓶頸,因此各國科學家仍然在探索各種非馮·諾依曼結構,比如,數據流計算機,函式式程式語言計算機等都是較為著名的非馮·諾依曼結構。
近幾年來人們努力謀求突破傳統馮·諾依曼體制的局限,各類非諾依曼化計算機的研究如雨後春筍蓬勃發展,主要表現在以下四個方面:
(1)對傳統馮·諾依曼機進行改良,如傳統體系計算機只有一個處理部件是串列執行的,改成多處理部件形成流水處理,依靠時間上的重疊提高處理效率。
(2)由多個處理器構成系統,形成多指令流多數據流支持並行算法結構。這方面的研究目前已經取得一些成功。
(3)否定馮·諾依曼機的控制流驅動方式。設計數據流驅動工作方式的數據流計算機,只要數據已經準備好,有關的指令就可並行地執行。這是真正非諾依曼化的計算機,這樣的研究還在進行中,已獲得階段性的成果,如神經計算機。
(4)徹底跳出電子的範疇,以其它物質作為信息載體和執行部件,如光子、生物分子、量子等。 眾多科學家正為進行這些前瞻性的研究。

相關詞條

熱門詞條

聯絡我們