非馮諾依曼結構電腦

脫離了馮·諾依曼結構原有模式的計算機,例如光子計算機光處理器利用光的高速和無干擾性,使用光學元件構成處理器,尚在研發中),並行計算機、數據流計算機以及量子計算機等。

基本介紹

  • 中文名:非馮諾依曼結構電腦
  • 舉例:光子計算機等
  • 計算機歷史:50餘年
  • 特點:無干擾性
回顧,說法一,說法二,非諾依曼化,哈佛結構,

回顧

現代計算機自問世以來已歷經50餘年的歷史,但計算機所遵循的基本結構形式始終是馮·諾依曼機結構。它的基本結構特徵是“共享數據和串列執行”的計算機模型。
按照這種結構,程式和數據放在共享存儲器內,CPU取出指令和數據進行相應的計算,因此CPU與共享存儲器間的信息通路成為影響系統性能的“瓶頸”。多年來在並行計算機結構及處理的研究已經取得了很多成果,如陣列機、流水機、向量機等,使計算速度有了很大提高,但就本質上仍無法克服馮·諾依曼機結構上的缺陷。
隨著計算機發展,人們除了繼續對命令式語言進行改進外,提出了若干非馮·諾依曼型的程式設計語言,並探索了適合於這類語言的新型計算機系統結構,大膽地脫離了馮·諾依曼原有的計算機模式,尋求有利於開發高度並行功能的新型計算機模型,例如光子計算機光處理器利用光的高速和無干擾性,使用光學元件構成處理器。尚在研發中),並行計算機、數據流計算機以及量子計算機等。

說法一

傳統的馮·諾依曼型結構屬於控制驅動方式。它是以命令式語言為對象,指令的執行次序受指令計數器的控制,因而指令是串列執行的。也就是說有指令控制器控制指令執行的次序和時機,當它指向某條指令時才驅動該條指令的執行。這種結構特點是“程式存儲,共享數據順序執行”。計算中有一條單一的控制流從一條指令傳到下一條指令(由指令計數器PC提供,執行K、K+1、……指令),執行指令所需要的運算元通過指令中給定的地址來訪問,指令執行結果也通過地址存入一個共享的存儲器中。並行控制流模型,採用操作符Fork和Join來顯式地表示並行性,它允許在同一時刻有幾個控制流同時活動。並行控制流模型中,關鍵技術之一是要有相應的同步手段(如Join操作符)來處理數據的相關性。
並行控制流計算機雖然擺脫了傳統計算機單一控制流束縛,但它仍然存在以下兩個缺點:
(1)通常要用程式計數器PC來指明指令的執行過程。
(2)通過訪問一個共享的存儲器在指令之間傳送數據
針對“控制驅動”方式對並行計算的限制,20世紀70年代以來,提出了下面多種與馮·依曼型計算機截然不同的新概念模型的系統結構

說法二

由於傳統馮.諾依曼計算機體系結構天然所具有的局限性,從根本上限制了計算機的發展。
(1)採用存儲程式方式,指令和數據不加區別混合存儲在同一個存儲器中,(數據和程式在記憶體中是沒有區別的,它們都是記憶體中的數據,當EIP指針指向哪 CPU就載入那段記憶體中的數據,如果是不正確的指令格式,CPU就會發生錯誤中斷. 在CPU的保護模式中,每個記憶體段都其描述符,這個描述符記錄著這個記憶體段的訪問許可權(可讀,可寫,可執行).這最就變相的指定了哪個些記憶體中存儲的是指令哪些是數據)
指令和數據都可以送到運算器進行運算,即由指令組成的程式是可以修改的。
(2)存儲器是按地址訪問的線性編址的一維結構,每個單元的位數是固定的。
(3)指令由操作碼地址組成。操作碼指明本指令的操作類型,地址碼指明運算元和地址。運算元本身無數據類型的標誌,它的數據類型由操作碼確定。
(4)通過執行指令直接發出控制信號控制計算機的操作。指令在存儲器中按其執行順序存放,由指令計數器指明要執行的指令所在的單元地址。指令計數器只有一個,一般按順序遞增,但執行順序可按運算結果或當時的外界條件而改變。
(5)以運算器為中心,I/O設備與存儲器間的數據傳送都要經過運算器。
(6)數據以二進制表示。
從本質上講,馮.諾依曼體系結構的本徵屬性就是二個一維性,即一維的計算模型和一維的存儲模型,簡單地說“存儲程式”是不確切的。而正是這二個一維性,成就了現代計算機的輝煌,也限制了計算機的進一步的發展,真可謂“成也馮,敗也馮”。
馮·諾依曼計算機的軟體和硬體完全分離,適用於作數值計算。這種計算機的機器語言同高級語言在語義上存在很大的間隔,稱之為馮.依曼語義間隔。造成這個差距的其中一個重要原因就是存儲器組織方式不同,馮·諾依曼機存儲器是一維的線性排列的單元,按順序排列的地址訪問。而高級語言表示的存儲器則是一組有名字的變數,按名字調用變數,不考慮訪問方法,而且數據結構經常是多維的(如數組,表格)。另外,在大多數高級語言中,數據和指令截然不同,並無指令可以像數據一樣進行運算操作的概念。同時,高級語言中的每種操作對於任何數據類型都是通用的,數據類型屬於數據本身,而馮.諾依曼機的數據本身沒有屬性標誌,同一種操作要用不同的操作碼來對數據加以區分。這些因素導致了語義的差距。如何消除如此大的語義間隔,這成了計算機面臨的一大難題和發展障礙。
馮.諾依曼體系結構的局限嚴重束縛了現代計算機的進一步發展,而非數值處理套用領域對計算機性能的要求越來越高,這就亟待需要突破傳統計算機體系結構的框架,尋求新的體系結構來解決實際套用問題。在體系結構方面已經有了重大的變化和改進,如並行計算機、數據流計算機以及量子計算機、 DNA計算機等非馮計算機,它們部分或完全不同於傳統的馮.諾依曼型計算機,很大程度上提高了計算機的計算性能。

非諾依曼化

必須看到,傳統的馮·諾依曼型計算機從本質上講是採取串列順序處理的工作機制,即使有關數據巳經準備好,也必須逐條執行指令序列。而提高計算機性能的根本方向之一是並行處理。因此,近年來人們謀求突破傳統馮·諾依曼體制的束縛,這種努力被稱為非諾依曼化。對所謂非諾依曼化的探討仍在爭議中,一般認為它表以下三個方面的努力。
(1)在馮·諾依曼體制範疇內,對傳統馮·諾依曼機進行改造,如採用多個處理部件形成流水處理,
依靠時間上的重疊提高處理效率;又如組成陣列機結構,形成單指令流多數據流,提高處理速
度。這些方向已比較成熟,成為標準結構;
(2)用多個馮·諾依曼機組成多機系統,支持並行算法結構。這方面的研究比較活躍;
(3)從根本上改變馮·諾依曼機的控制流驅動方式。例如,採用數據流驅動工作方式的數據流計算
機,只要數據已經準備好,有關的指令就可並行地執行。這是真正非諾依曼化的計算機,它為並
行處理開闢了新的前景,但由於控制的複雜性,仍處於實驗探索之中。

哈佛結構

特點:
使用兩個獨立的存儲器模組,分別存儲指令和數據,每個存儲模組都不允許指令和數據並存,以便實現並行處理
具有一條獨立的地址匯流排和一條獨立的數據匯流排,利用公用地址匯流排訪問兩個存儲模組(程式存儲模組和數據存儲模組),公用數據匯流排則被用來完成程式存儲模組或數據存儲模組與CPU之間的數據傳輸;
兩條匯流排由程式存儲器和數據存儲器分時共用
在典型情況下,完成一條指令需要3個步驟,即:取指令、指令解碼和執行指令。從指令流的定時關係也可看出馮.諾曼結構與哈佛結構處理方式的差別。舉一個最簡單的對存儲器進行讀寫操作的指令,指令1至指令3均為存、取數指令,對馮.諾曼結構處理器,由於取指令和存取數據要從同一個存儲空間存取,經由同一匯流排傳輸,因而它們無法重疊執行,只有一個完成後再進行下一個。
如果採用哈佛結構處理以上同樣的3條存取數指令,如下圖所示,由於取指令和存取數據分別經由不同的存儲空間和不同的匯流排,使得各條指令可以重疊執行,這樣,也就克服了數據流傳輸的瓶頸,提高了運算速度。
哈佛結構強調了總的系統速度以及通訊和處理器配置方面的靈活性。
TI 公司DSP採用的改進型哈佛結構其改進之處在於 在數據匯流排和程式匯流排之間進行局部的交叉連線。這一改進允許數據存放在程式存儲器中,並被算術運算指令直接使用,增強了晶片的靈活性。只要調度好兩個獨立的匯流排就可使處理能力達到最高,以實現全速運行。改進的哈佛結構還可使指令存儲在高速快取器中(Cache),省去了從存儲器中讀取指令的時間,大大提高了運行速度。

相關詞條

熱門詞條

聯絡我們