簡介
馮·諾依曼型計算機一般具有以下五個功能:必須具有
長期記憶程式、數據、中間結果及最終運算結果的能力;能夠完成各種算術、邏輯運算和
數據傳送等
數據加工處理的能力;能夠根據需要
控制程式走向,並能根據指令控制機器的各部件協調操作;能夠按照要求將處理結果輸出給用戶。
馮·諾依曼型計算機從本質上講是採取串列
順序處理的
工作機制,即使有關數據已經準備好,也必須逐條
執行指令序列。而提高
計算機性能的根本方向之一是並行處理。因此,近年來人們謀求突破傳統馮·諾依曼體制的束縛,這種努力被稱為非諾依曼化。對所謂非諾依曼化的探討仍在爭議中,一般認為它表現在以下三個方面的努力。
(1)在馮·諾依曼體制範疇內,對傳統馮·諾依曼機進行改造,如採用多個處理部件形成流水處理,
依靠時間上的重疊提高處理效率;又如組成陣列機結構,形成
單指令流多數據流,提高處理速
度。這些方向已比較成熟,成為標準結構;
(3)從根本上改變馮·諾依曼機的
控制流驅動方式。例如,採用
數據流驅動工作方式的
數據流計算機,只要數據已經準備好,有關的指令就可並行地執行。這是真正非諾依曼化的計算機,它為並行處理開闢了新的前景,但由於控制的複雜性,仍處於實驗探索之中。
馮·諾依曼結構
特點
採用
二進制形式表示數據和指令:在存儲程式的計算機中,數據和指令都是以二進制形式存儲在
存儲器中的。從存儲器存儲的內容來看兩者並無區別.都是由0和1組成的代碼序列,只是各自約定的含義不同而已。計算機在讀取指令時,把從計算機讀到的信息看作是指令;而在讀取數據時,把從計算機讀到的信息看作是
運算元。數據和指令在軟體編制中就已加以區分,所以正常情況下兩者不會產生混亂。有時我們也把存儲在存儲器中的數據和指令統稱為數據,因為程式信息本身也可以作為被處理的對象,進行加工處理,例如對照程式進行編譯,就是將
源程式當作被加工處理的對象。
採用存儲程式方式:這是馮·諾依曼思想的核心內容。如前所述,它意味著事先編製程序,事先將程式(包含指令和數據)存入
主存儲器中,計算機在運行程式時就能自動地、連續地從存儲器中依次取出指令且執行。這是計算機能高速自動運行的基礎。計算機的工作體現為
執行程式,計算機功能的擴展在很大程度上也體現為所存儲程式的擴展。計算機的許多具體工作方式也是由此派生的。馮·諾依曼機的這種工作方式,可稱為控制流(
指令流)驅動方式。即按照指令的執行序列,依次讀取指令,然後根據指令所含的
控制信息,調用數據進行處理。因此在執行程式的過程中,始終以控制
信息流為驅動工作的因素,而數據信息流則是被動地被調用處理。為了
控制指令序列的執行順序,設定一個程式(指令)
計數器PC(Program Counter),讓它存放當前指令所在的
存儲單元的地址。如果程式是
順序執行的,每取出一條指令後PC內容加l,指示下一條指令該從何處取得。如果程式將轉移到某處,就將轉移的目標地址送入PC,以便按新地址讀取後繼指令。所以,PC就像一個指針,一直指示著程式的執行進程,也就是指示控制流的形成。雖然程式與
數據都採用
二進制代碼,仍可按照PC的內容作為地址讀取指令,再按照指令給出的運算元地址去讀取數據。由於多數情況下程式是順序執行的,所以大多數指令需要依次地緊挨著存放,除了個別即將使用的數據可以緊挨著指令存放外、一般將指令和數據分別存放在該程式區的不同區域內。
局限性
程式指令的執行是串列的,由
程式計數器控制,這樣使得即使有關數據已經準備好,也必須遵循逐條執行指令序列,影響了系統運行的速度;
存儲器是線性
編址,按
順序排列的地址訪問,這是有利於存儲和執行
機器語言,適用於
數值計算。但
高級語言的存儲採用的是一組有名字的變數,是按名字調用變數而非按地址訪問,且高級語言中的每個操作對於任何
數據類型都是通用的,不管採用何種
數據結構,
多維數組、
二叉樹還是圖,最終在存儲器上都必須轉換成一維的線性
存儲模型進行存儲。這些因素都導致了機器語言和高級語言之間存在很大的語義差距,這些語義差距之間的映射大部分都要由
編譯程式來完成,在很大程度上增加了編譯程式的工作量。
馮·諾依曼
體系結構計算機是為邏輯和數值運算而誕生的,它以CPU為中心,
I/O設備與存儲器間的數據傳送都要經過運算器,在數值處理方面已經達到很高的速度和精度,但對非數值數據的處理效率比較低,需要在體系結構方面有革命性突破。
其他類型計算機
量子計算機(Quantum computer)是遵循
量子力學規律進行高速數學和
邏輯運算、存儲及處理
量子信息的物理裝置。量子計算機本身的特性,擴充了邏輯和數學理論,通過
核自旋、光子、束縛離子和原子等製成的
量子位,創造出經典條件下不可能存在的新的
邏輯門。
馬約拉納費米子反粒子就是自己本身的屬性,或許是令量子計算機的製造變成現實的一個關鍵。與經典的
比特位不同,對量子位操作1次等同於對經典位操作2次,因為量子不像半導體只能記錄0和1,它可以
同時表示多種狀態。這些都為新的算法實現提供了條件,也為人工智慧的發展提供了可能的硬體條件。