馮·諾依曼結構

馮·諾依曼結構

馮·諾依曼提出的存儲程序原理
馮·諾依曼結構也稱普林斯頓結構,是一種将程序指令存儲器和數據存儲器合并在一起的存儲器結構。[1]程序指令存儲地址和數據存儲地址指向同一個存儲器的不同物理位置,因此程序指令和數據的寬度相同,如英特爾公司的8086中央處理器的程序指令和數據都是16位寬。數學家馮·諾依曼提出了計算機制造的三個基本原則,即采用二進制邏輯、程序存儲執行以及計算機由五個部分組成(運算器、控制器、存儲器、輸入設備、輸出設備),這套理論被稱為馮·諾依曼體系結構。
  • 中文名:馮·諾依曼結構
  • 别稱:普林斯頓結構
  • 性質:存儲器結構
  • 領域:計算機

發展曆史

在計算機誕生之前,人們在計算的精度和數量上出現了瓶頸,對于計算機這樣的機器的需求就十分強烈,馮•諾依曼的邏輯和計算機思想指導他設計并制造出曆史上的第一台通用電子計算機。他的計算機理論主要受自身數學基礎影響,且具有高度數學化、邏輯化特征,對于該理論,他自己一般會叫作“計算機的邏輯理論”。而他的計算機存儲程序的思想,則是他的另一偉大創新,通過内部存儲器安放存儲程序,成功解決了當時計算機存儲容量太小,運算速度過慢的問題。

第二次世界大戰期間,美軍要求實驗室為其提供計算量龐大的計算結果。于是便有了研制電子計算機的設想。面對這種需求,美國立即組建研發團隊,包括許多工程師與物理學家,試圖開發全球首台計算機(後世稱作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)徹底跳出電子的範疇,以其它物質作為信息載體和執行部件,如光子、生物分子、量子等。 衆多科學家正為進行這些前瞻性的研究。

相關詞條

相關搜索

其它詞條