基本工作原理
數據流計算機中也不存在指令計數器。指令得以啟動執行的時機取決於運算元具備與否。程式中各條指令的執行順序僅僅由指令間的數據依賴關係決定。因此,數據流計算機中指令的執行是異步並發地進行的。在數據流程式中,由於“數據驅動”要求每條指令標明其運算結果的流向,也就是指向將本指令的運算結果作為運算元的那條目標指令。因此數據流程式中只有一條鏈路,即各條指令中指向目標指令的指針。在數據流計算機中,沒有變數的概念,也不設定狀態,在指令間直接傳送數據, 運算元直接以“令牌”(Token)或“數值”的記號傳遞而不是作為“地址”變數加以訪問。因此操作結果不產生副作用,也不改變機器狀態,從而具有純函式的特點。所有數據流計算機通常與函式語言有密切的關係。
其他類型的數據流計算機
動態數據流計算機結構
動態數據流計算機結構
動態數據流計算機模型圖
,在動態數據流計算機中,每個數據令牌都帶有標號(令牌標號及其他特徵信息),從而使數據流程圖中的一條有向分支線上可同時傳送(帶不同標號)幾個數據令牌,它不需要用控制令牌來確認指令間數據令牌的傳送。而是採用一個專門硬體(匹配部件)對數據令牌中的標號進行符合比較並加以識別,匹配部件將標號加到數據令牌上並完成標號的匹配工作。匹配部件將各個處理部件送來的結果數據令牌賦予相應的標號,並將流向同一指令的數據令牌進行匹配成對或成組,然後將它們送往更新/讀出部件,當一條指令所要求的數據令牌都到齊後,就立即從指令存儲器中取出這條指令,並把該指令與數據令牌中攜帶的運算元一起組成一個操作包形成一條可執行指令,送入可執行指令佇列。如果指令所要求的數據令牌沒有全部到齊(匹配失敗),則把剛剛到達的數據令牌暫時存入匹配部件的緩衝存儲器中,以供下次匹配時再使用。
從原理上分析,動態數據流計算機能更加充分地開發程式中的並行性,且中間結果不返回存儲器,從而減少了操作開銷。
動態數據流計算機結構
分為三大類,第一類是以Arvind為代表的網路結構型計算機,第二類是以Manchester為代表的環形結構計算機,第三類是以EDDY為代表的網狀結構數據流計算機。下面僅介紹環形計算機的結構特點、工作原理、指令及數據令牌格式。Manchester動態數據流計算機是環形結構計算機的典型代表,其結構框圖如圖8.2.13所示。它的五個功能部件按順時針方向進行通信,組成一條環形流水線。數據令牌是主要的通信單位,令牌主要由運算元、標號及目標結點指針等部分組成。
處理部件
由15個PE組成,這些PE可並行地執行指令。它們可執行定點、浮點、數據轉移及打標記等指令。每個PE都有輸入緩衝器和輸出緩衝器。8×8開關網路可同時提供多條通路與外部交換信息。令牌佇列可存放64K個數據令牌。 匹配部件按照令牌的特徵值對令牌進行匹配,它內部有16K×97位的緩衝存儲器。緩衝存儲器有8組組相聯存儲器組成, 採用硬體散列技術來減少相聯比較器的位數。 當從令牌佇列中送來的數據令牌與匹配部件中已經存在的令牌相匹配(有相應的特徵值)時,表示令牌中目標地址欄位指示的指令為可執行指令,於是97位數據令牌和36位匹配特徵值合在一起組成 133位的令牌組包送往結點存儲器。如果從令牌佇列送來的數據令牌不能與匹配部件中已經存放的令牌相匹配時,則把新送來的令牌暫時存入匹配部件的緩衝存儲器中。
結點存儲器按照匹配部件送來的令牌組包中給定的目標地址取出指令,並把令牌組包中攜帶的運算元代入指令中, 形成167位的執行包送往處理部件。
Manchester動態數據流計算機的指令與數據令牌格式見圖8.2.14所示,編程採用高級數據流語言Lapse, 這是一個單賦值的程式設計語言。其中的語法規則與Pascal語言基本相同。 Lapse語言還可用一個語句描述整個數組的運算。
其他類型的數據流計算機
除上述靜態和動態兩種典型的數據流計算機之外,還有幾種其他類型的數據流計算機。其中有的克服了典型數據流計算機某些方面的缺點,有的繼承了傳統計算機中已經證明行之有效的某些並行處理技術。因此,從某種意義上說,這些結構類型代表了目前數據流計算機的發展方向。譬如美國第一台實際可運行的數據流計算機DDM-1(Data Device Machine-1)採用樹型結構。 其中每個單元可以連到一個祖先單元和最多9個子單元。 還有提高並行級別的(利用複合函式驅動)的數據流計算機同時採用多級並行(任務級、作業級、複合函式級、指令級多級驅動)的數據流計算機,同步與異步相結合的數據流計算機還有控制流和數據流相結合的計算機系統。數據流計算機研究
Data Flow Computer數據流計算機解決了傳統計算機時鐘偏移的問題,具有低功耗和高並行性等優點.本文介紹了數據流計算機的發展驅動、基本機率、設計方法、程式語言,以及現有的數據流計算機;最後展望了數據流計算機的研究方向和重點.數據流計算機雖然還沒有得到實際套用,但具有很高的研究價值.