結構介紹
陣列處理機實質上是由:專門對付數組運算的處理單元陣列組成的處理機;專門從事處理單元陣列的控制及標量處理的處理機;專門從事系統輸入輸出及作業系統管理的處理機,組成的一個異構型
多處理機系統。
陣列處理機上
並行算法的研究與結構緊密聯繫在一起,並行處理機處理單元陣列的結構又是適合於一定類型計算問題而專門設計的結構。
分析
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中。
輸入輸出系統
磁碟檔案系統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之間沒有共享的存儲模組時,可能需要經過多次的傳送之後,方可實現交換。