並行處理計算機系統
正文
同時執行多個任務或多條指令或同時對多個數據項進行處理的計算機系統。早期的計算機是串列逐位處理的,稱為串列計算機。隨著計算機技術的發展,現代計算機均具有不同程度的並行性。並行處理計算機主要指以下兩種類型的計算機:①能同時執行多條指令或同時處理多個數據項的單中央處理器計算機;②多處理機系統。隨著電子器件的發展,計算機的處理能力有顯著提高。但是,僅僅依靠器件的進展而達到的速度提高,遠不能滿足現代科學、技術、工程和其他許多領域對高速運算能力的需要。這就要求人們改進計算機結構,採用各種並行處理技術,以便大幅度地提高處理速度和解題能力。
並行處理計算機的結構特點主要表現在兩個方面:①在單處理機內廣泛採用各種並行措施;②由單處理機發展成各種不同耦合度的多處理機系統。並行處理的主要目的是提高系統的處理能力。有些類型的並行處理計算機系統(如多處理機系統),還可以提高系統的可靠性。由於器件的發展,並行處理計算機系統具有較好的性能價格比,而且還有進一步提高的趨勢。
結構原理 並行處理計算機的結構主要有流水線方式、多功能部件方式、陣列方式、多處理機方式和數據流方式。
流水線處理機 將指令的執行過程分解為若干段,每段進行一部分處理。一條指令順序流過所有段即執行完畢獲得結果。當本條指令在本段已被處理完畢而進入下段時,下條指令即可流入本段。因此,在整個流水線上可以同時處理若干條指令。若各段的執行時間均為一個時鐘節拍,則在正常情況下每拍可以輸出一個結果,即完成一條指令。這就可加快處理機的速度。圖1是將指令處理分為取指令、指令解碼、取運算元、執行第四段的流水線結構示意圖。
![並行處理計算機系統](/img/0/294/nBnauM3X1kTNzADMwIzMxgDM5ETMwADMwADMwADMwADMxAzLzEzL1kzLt92YucmbvRWdo5Cd0FmLzE2LvoDc0RHa.jpg)
多功能部件處理機
一台處理機具有多個功能部件。各功能部件可以並行地處理數據,因而處理機可以使用不同的功能部件並行執行幾條指令,以提高處理速度。如有的計算機具有浮點加、定點加、浮點乘、浮點除、邏輯操作、移位等多個對不同數據進行處理的功能部件。一些流水線向量機也含有多個功能部件。程式在執行中因對各部件的需求不平衡,各功能部件不可能全部處於忙碌狀態。指令間的相關性也影響機器的效率,如本條指令所需的功能部件尚在執行其他指令;又如本條指令所需運算元恰為尚未執行完畢的指令的結果等。陣列處理機 一台處理機由多個相同的處理部件和一個統一的控制器組成。這個控制器解釋指令並傳送操作命令至全部處理部件。各處理部件按照控制器的命令同時進行完全相同的操作。陣列處理機又可分為浮點陣列處理機和位片式陣列處理機兩類。
ILLIAC-Ⅳ機屬於浮點陣列處理機(圖2),包括64個完全相同的處理部件(PU)和一個公共的控制部件(CU)。每個處理部件包括一個能執行64位浮點操作的處理單元(PE)和一個容量為2k字的存儲器(PM)。64個處理部件排列成8×8陣列。每個處理部件與四鄰處理部件均有直接數據通路。
![並行處理計算機系統](/img/9/f82/nBnauM3XwMTMxIDMwIzMxgDM5ETMwADMwADMwADMwADMxAzLzEzLwMzLt92YucmbvRWdo5Cd0FmL0E2LvoDc0RHa.jpg)
在直接耦合多處理機系統中,實現處理機與存儲器、處理機與處理機之間連線的互連網路十分重要。互連網路有三種主要形式。
① 匯流排結構:匯流排結構是多處理機系統中最為簡單的網路結構。實際的多處理機系統的互連網路,往往是在匯流排結構的基礎上發展起來的(圖3)。
![並行處理計算機系統](/img/d/509/nBnauM3X3MjM4MDMwIzMxgDM5ETMwADMwADMwADMwADMxAzLzEzL3MzLt92YucmbvRWdo5Cd0FmL0E2LvoDc0RHa.jpg)
![並行處理計算機系統](/img/8/263/nBnauM3XxczN5QDMwIzMxgDM5ETMwADMwADMwADMwADMxAzLzEzLxczLt92YucmbvRWdo5Cd0FmLzE2LvoDc0RHa.jpg)
數據流處理機 數據流處理機是受到人們重視的高度並行的處理機。它雖保留了存儲程式的做法,但在主要原理上已與諾依曼計算機結構不同。它不按程式計數器指出的指令順序執行程式,只要所需運算元全部具備,指令即可被執行,亦即程式的執行不是由控制流驅動,而是由數據流驅動。
![並行處理計算機系統](/img/e/48e/nBnauM3XyEDM4UDMwIzMxgDM5ETMwADMwADMwADMwADMxAzLzEzLyEzLt92YucmbvRWdo5Cd0FmLwE2LvoDc0RHa.jpg)
並行算法和並行語言 提高並行處理效率的關鍵之一是並行算法。算法須適應計算機的結構。如果一種算法所表達出來的並行度與計算機的並行度基本一致,便能提高計算機的解題效率。
在向量計算機中,提高並行度的主要問題在於把可並行處理的運算元用向量表示。許多常用的數值計算法,如數列求和、 矩陣乘、 高斯消元、快速傅立葉變換等,已成功地在向量計算機上實現了並行處理。較為通行的並行語言基本上是FORTRAN語言的擴展。
在多處理機系統中,提高程式並行性的關鍵,是把任務分解成足夠多的可同時操作的進程。在程式語言中,還須擴充能明確表達進程並發性的語句,以便程式運行時能為相應的控制機構提供控制和管理手段,其中包括並行任務的派生、通信和調度。ADA語言為描述多處理機並行程式結構提供了必要的語句。為適應數據流計算機而出現的若干數據流語言如Id語言和 VAL語言已經在試用。其重要特點是把數組看成是值而不是目標。用數據流語言編寫的程式能夠自然地表達出最大的運算並行性。
參考書目
金蘭、王鼎興、沈美明:《並行處理計算機結構》,國防工業出版社,北京,1982。