陣列處理機

陣列處理機

陣列處理機(Array Processor)也稱并行處理機(Parallel Processor)通過重複設置大量相同的處理單元PE(Processing Element),將它們按一定方式互連成陣列,在單一控制部件CU(Control Unit)控制下,對各自所分配的不同數據并行執行同一組指令規定的操作,操作級并行的SIMD計算機,它適用於矩陣運算。

結構介紹


陣列處理機實質上是由:專門對付數組運算的處理單元陣列組成的處理機;專門從事處理單元陣列的控制及標量處理的處理機;專門從事系統輸入輸出及操作系統管理的處理機,組成的一個異構型多處理機系統。
陣列處理機上并行演演算法的研究與結構緊密聯繫在一起,并行處理機處理單元陣列的結構又是適合於一定類型計算問題而專門設計的結構。

分析


Illiac IV陣列
Illiac IV陣列PU由64個處理單元(PE)、64個局部存儲器(PEM)和存儲器邏輯部件(MLU)組成。
陣列控制器CU實際上是一台計算機。它除了對陣列的處理單元實行控制以外,還能利用本身的內部資源執行一整套指令,用以完成標量操作,且在時間上與各PE的數組操作并行進行。
陣列控制器的功能如下:
1.對指令流進行控制和解碼,包括執行一整套標量指令;
2.向各處理單元發出執行數組操作指令所需的控制信號;
3.產生並向所有處理單元廣播公共的地址部分;
4.產生並向所有處理單元廣播公共的數據;
5.接收和處理由各PE計算出錯、系統I/O操作、B6700所產生的陷阱中斷信號。
陣列控制器CU與處理單元陣列之間的信息聯繫,共有以下四條信息通路:
CU匯流排 局部存儲器PEM經過CU匯流排把指令和數據送往陣列控制器,以8個64位字為一信息塊。此處的指令是指分佈存放在陣列存儲器中用戶程序的指令;而數據可以是處理所需的公共數據,先將它們傳送到CU,再利用CU的廣播功能傳送到各處理單元。
公共數據匯流排CDB 這是64位匯流排,用作向64個處理單元同時廣播公共數據的通路。例如,作為公共乘數的常數就不必在64個PEM中重複存放,可以由CU的某一個寄存器送往各處理單元。又如,指令的操作數和地址部分也要經過CDB匯流排傳送。
模式位線 每一個處理單元都可以經過模式位線把它的“模式寄存器”狀態傳送到CU中來,送來的信息中也包括該處理單元的“活動”狀態位。只有那些處於“活動”狀態的處理單元才執行單指令流所規定的公共操作。從64個處理單元送往CU的模式位在CU的累加寄存器中拼成一個模式字,以便在CU內部執行一定的測試指令,對此模式字進行測試,並根據測試結果進行程序轉移動作。
指令控制線 指令控制線大約200根,包括處理單元微操作控制信號,處理單元存儲器地址信號和讀/寫控制信號,由CU發送到陣列處理單元PE和存儲器邏輯部件MLU中。
Illiac IV輸入輸出系統有磁碟文件系統DFS、I/O分系統和B6700管理計算機組成
磁碟文件系統DFS是兩套大容量并行讀寫磁碟系統及其相應的控制器。每套有13台磁碟機,總容量為1E9位;每台磁碟機有128道,每道1個磁頭,并行讀寫,數據寬度為256位,最大傳輸率為5.02E8位/秒;平均等待時間為19.6毫秒。如果兩個通道同時發送或接收數據,則數據寬度為512位,最大傳輸率為1E9位/秒。
I/O系統包括三部分,即輸入/輸出開關IOS、控制描述字控制器CDC、輸入/輸出緩衝存儲器BIOM。
1.IOS的功能:一是作為名副其實的開關,把DFS或可能連上的實時裝置轉接到陣列存儲器,進行大批數據的I/O傳送;二是作為DFS和PEM之間的緩衝,以平衡兩邊不同的數據寬度。
2.CDC的功能是對陣列控制器的I/O請求進行管理。此時,CDC將使B6700計算機中斷,由它設法響應I/O請求,並通過CDC給CU送回相應的響應代碼,在CU中設置好必需的控制狀態字。然後,CDC促使B6700啟動PEM的載入過程,由DFS向PEM送入程序和數據。在PEM載入完畢后,又由CDC向CU傳送控制信號,使它開始執行Illiac IV的程序。
3.BIOM的功能:它處在DFS和B6700之間,是為了取得二者之間傳送頻寬上的匹配。
B6700管理計算機的作用是:管理全部系統資源,完成用戶程序的編譯或彙編,為Illiac IV進行作業調度、存儲分配、產生I/O控制描述字送至CDC、處理中斷、提供操作系統所具備的其他服務。

缺點


許多問題不能很好地映射為嚴格的數據并行演演算法,
在某一時刻,陣列處理機只能執行一條指令,當程序進入條件執行并行代碼時,效率會下降
很大程度上是單用戶系統,不容易處理多個用戶要同時執行多個并行程序情況
不適合於小規模的系統
陣列處理機是美國寶來公司和伊利諾大學合作研製生產的機器,它是最早(1972年)問世的SIMD計算機。

兩種基本結構


陣列機的兩種結構
陣列機的兩種結構
根據存儲器模塊是以分佈方式存取還是集中方式存取,陣列機可分為兩種基本結構:分散式存儲器的陣列機和集中共享存儲器的陣列機。
分散式存儲器的陣列機
分散式陣列處理機的基本結構如圖(a)所示。這種陣列機的主要結構特徵如下:
(1)具有N個相同的處理單元PE,它由處理器Pi和局部存儲器Mi組成。只要數據分配得當,各個Pi主要將從自己的Mi中獲取數據進行操作。各個PE將通過IN實現相互間必要的數據交換,因此,IN是單向的。
(2)CU中具有自己的存儲器,以存放系統程序和用戶程序,此外,它也可存放各個PE所需的共享數據。CU的主要功能是對指令解碼和判別它應在何處執行。對於標量或控制類指令,CU本身中含有運算部件可以直接執行;若是向量指令,它就將此指令廣播給各個PE去執行。
(3)各個PE同步執行來自CU的操作命令。但是並不一定每個操作非得所有PE都參加,CU將對PE實行屏蔽控制,只有那些未被屏蔽的活躍PE才可參加操作。CU還控制互連網路IN,使各個PE之間通過IN實現相互之間必要的數據交換。當相互需要交換數據的兩個PE不直接相連時,就需要經過它們之間的中間PE來完成連接。
共享存儲器的陣列機
圖(b)中示出了這類型的陣列機結構。它與圖(a)中分散式存儲器的陣列機結構的區別主要在於:
(1)每個PE沒有局部存儲器。存儲器模塊以集中形式為所有PE(通過IN)共享。
(2)互連網路受CU控制,用來構成PE和M之間的數據交換通路。要求互連網路具有同時連接PE到M或M到PE的雙向性。系統中的一個PE可以與任何另一個PE實現數據交換(只要有任何一個存儲模塊同時與這兩個PE相連接)。當兩個需交換數據的PE之間沒有共享的存儲模塊時,可能需要經過多次的傳送之後,方可實現交換。