馮·諾依曼機
馮·諾依曼機(von Neumann machine)👨🏽⚕️,又稱馮·諾依曼計算機,根據馮·諾依曼提出的存儲程序概念設計的計算機⬇️。主要特征是:指令與數據都以二進製形式儲存在存儲器裏;指令根據其儲存的順序執行💌。
馮·諾伊曼結構(von Neumann architecture),也稱馮·諾伊曼模型(Von Neumann model)或普林斯頓結構(Princeton architecture)🌦,是一種將程序指令存儲器和數據存儲器合並在一起的計算機設計概念結構。依據馮·諾伊曼結構設計出的計算機稱為馮·諾依曼計算機,又稱存儲程序計算機。
簡介
馮·諾依曼型計算機一般具有以下五個功能:必須具有長期記憶程序、數據🤦♂️、中間結果及最終運算結果的能力;能夠完成各種算術、邏輯運算和數據傳送等數據加工處理的能力🤘🏻;能夠根據需要控製程序走向🤴🏿,並能根據指令控製機器的各部件協調操作🪷;能夠按照要求將處理結果輸出給用戶🦛。
馮·諾依曼型計算機從本質上講是采取串行順序處理的工作機製,即使有關數據已經準備好,也必須逐條執行指令序列🧏♂️。而提高計算機性能的根本方向之一是並行處理。因此⏱,近年來人們謀求突破傳統馮·諾依曼體製的束縛,這種努力被稱為非諾依曼化。對所謂非諾依曼化的探討仍在爭議中🧔🏿♂️,一般認為它表現在以下三個方面的努力🏜。
(1)在馮·諾依曼體製範疇內,對傳統馮·諾依曼機進行改造🙋🏽,如采用多個處理部件形成流水處理,依靠時間上的重疊提高處理效率;又如組成陣列機結構🔓,形成單指令流多數據流🧑🏼🔧,提高處理速度。這些方向已比較成熟🤳🏽,成為標準結構👨🏽🎓;
(2)用多個馮·諾依曼機組成多機系統🛏,支持並行算法結構📗。這方面的研究目前比較活躍;
(3)從根本上改變馮·諾依曼機的控製流驅動方式。例如,采用數據流驅動工作方式的數據流計算機👰🏻♀️,只要數據已經準備好🏋🏻♂️,有關的指令就可並行地執行。這是真正非諾依曼化的計算機🛂,它為並行處理開辟了新的前景,但由於控製的復雜性,仍處於實驗探索之中。
馮·諾依曼結構
馮·諾依曼體系結構的計算機🌲🙇🏻♀️,其基本設計思想就是存儲程序和程序控製。
特點
采用二進製形式表示數據和指令🥰:在存儲程序的計算機中◾️,數據和指令都是以二進製形式存儲在存儲器中的✅。從存儲器存儲的內容來看兩者並無區別.都是由0和1組成的代碼序列,只是各自約定的含義不同而已。計算機在讀取指令時🚣♀️👩🦯,把從計算機讀到的信息看作是指令🔭;而在讀取數據時,把從計算機讀到的信息看作是操作數。數據和指令在軟件編製中就已加以區分,所以正常情況下兩者不會產生混亂。有時我們也把存儲在存儲器中的數據和指令統稱為數據🧕🏼,因為程序信息本身也可以作為被處理的對象9️⃣🙋🏻♂️,進行加工處理,例如對照程序進行編譯,就是將源程序當作被加工處理的對象。
采用存儲程序方式👨🏼🌾:這是馮·諾依曼思想的核心內容𓀄。如前所述📂,它意味著事先編製程序⛈,事先將程序(包含指令和數據)存入主存儲器中,計算機在運行程序時就能自動地、連續地從存儲器中依次取出指令且執行。這是計算機能高速自動運行的基礎。計算機的工作體現為執行程序🧑🏼🍳,計算機功能的擴展在很大程度上也體現為所存儲程序的擴展👉。計算機的許多具體工作方式也是由此派生的📯。馮·諾依曼機的這種工作方式,可稱為控製流(指令流)驅動方式。即按照指令的執行序列🏨,依次讀取指令,然後根據指令所含的控製信息,調用數據進行處理。因此在執行程序的過程中,始終以控製信息流為驅動工作的因素,而數據信息流則是被動地被調用處理🥾。為了控製指令序列的執行順序👃🏻,設置一個程序(指令)計數器PC(Program Counter),讓它存放當前指令所在的存儲單元的地址🏣。如果程序現在是順序執行的,每取出一條指令後PC內容加l👮🏼,指示下一條指令該從何處取得👂🏼。如果程序將轉移到某處,就將轉移的目標地址送入PC,以便按新地址讀取後繼指令🧑🏻✈️。所以,PC就像一個指針,一直指示著程序的執行進程🧏♀️,也就是指示控製流的形成。雖然程序與數據都采用二進製代碼🏰,仍可按照PC的內容作為地址讀取指令,再按照指令給出的操作數地址去讀取數據♾。由於多數情況下程序是順序執行的,所以大多數指令需要依次地緊挨著存放,除了個別即將使用的數據可以緊挨著指令存放外、一般將指令和數據分別存放在該程序區的不同區域內。
由運算器、存儲器、控製器、輸入設備和輸出設備五大部件組成計算機系統,並規定了這五部分的基本功能🤽♀️。
局限性
目前CPU的處理速度和內存容量的成長速率要遠大於兩者之間的流量🪗,將大量數值從內存搬入搬出的操作占用了CPU大部分的執行時間🧯,也造成了總線的瓶頸。
程序指令的執行是串行的,由程序計數器控製🧑🦼,這樣使得即使有關數據已經準備好,也必須遵循逐條執行指令序列,影響了系統運行的速度;
存儲器是線性編址🙎🏻♂️,按順序排列的地址訪問,這是有利於存儲和執行機器語言,適用於數值計算。但高級語言的存儲采用的是一組有名字的變量🧘🏿,是按名字調用變量而非按地址訪問,且高級語言中的每個操作對於任何數據類型都是通用的,不管采用何種數據結構🚵🏿♂️,多維數組、二叉樹還是圖🏋🏼♂️🍊,最終在存儲器上都必須轉換成一維的線性存儲模型進行存儲。這些因素都導致了機器語言和高級語言之間存在很大的語義差距,這些語義差距之間的映射大部分都要由編譯程序來完成,在很大程度上增加了編譯程序的工作量。
馮·諾依曼體系結構計算機是為邏輯和數值運算而誕生的,它以CPU為中心,I/O設備與存儲器間的數據傳送都要經過運算器🚴🏼♀️,在數值處理方面已經達到很高的速度和精度,但對非數值數據的處理效率比較低,需要在體系結構方面有革命性突破。
其他類型計算機
近幾年,在計算機體系結構研究方面也已經有了重大進展,越來越多的非馮計算機相繼出現🔉,如光子計算機、量子計算機、神經計算機以及DNA計算機等等。
光子計算機(Photonic computer)是一種采用光信號作為物質介質和信息載體👨🏼🎤,依靠激光束進入反射鏡和透鏡組成的陣列進行數值運算🥺、邏輯操作和信息的存儲和處理。它可以實現對復雜度高🐈⬛、計算量大、實時性強的任務的高效、並行處理,比普通電子計算機快1000倍,在圖像處理、模式識別和人工智能方面有著非常巨大的應用前景💃🏻。
神經計算機(Neural computer)是一種可以並行處理多種數據功能的神經網絡計算機,它以神經元為處理信息的基本單元👥,將模仿大腦神經記憶的信息存放在神經元上。神經網絡具有自組織、自學習、自適應及自修復功能,可以模仿人腦的判斷能力和適應能力。美國科學家研究出的神經計算機可以模擬人的左腦和右腦,能識別語言文字和圖形圖像,能控製機器人行為🙍♂️,進行智能決策。它的左腦由100萬個神經元組成,用於存儲文字和語法規則🚴🏿♂️✬,右腦由1萬多個神經元組成🛌🏿,適用於圖形圖像識別💃🏻。這將有可能成為人工智能硬件發展的主攻方向。
量子計算機(Quantum computer)是遵循量子力學規律進行高速數學和邏輯運算⇒、存儲及處理量子信息的物理裝置⚖️。量子計算機本身的特性🤯,擴充了邏輯和數學理論,通過核自旋👩🚀🧎🏻♂️➡️、光子、束縛離子和原子等製成的量子位👩🏿✈️,創造出經典條件下不可能存在的新的邏輯門。馬約拉納費米子反粒子就是自己本身的屬性🚪,或許是令量子計算機的製造變成現實的一個關鍵。與經典的比特位不同,對量子位操作1次等同於對經典位操作2次,因為量子不像半導體只能記錄0和1🧑🦳👩🏽🏫,它可以同時表示多種狀態。這些都為新的算法實現提供了條件,也為人工智能的發展提供了可能的硬件條件。
文章來源🐋:百度百科 鏈接👊🏻:https://baike.baidu.com/item/%E5%86%AF%C2%B7%E8%AF%BA%E4%BE%9D%E6%9B%BC%E6%9C%BA/59369302?fr=aladdin