
多處理器和多計算機
本章將討論多處理器和多計算機。
多處理器系統互連
並行處理需要使用高效的系統互連,以便在輸入/輸出和外設、多處理器和共享記憶體之間進行快速通訊。
分層匯流排系統
分層匯流排系統由一個匯流排層次結構組成,該層次結構連線計算機中的各種系統和子系統/元件。每個匯流排由多個訊號線、控制線和電源線組成。不同的匯流排,如本地匯流排、背板匯流排和I/O匯流排,用於執行不同的互連功能。
本地匯流排是在印刷電路板上實現的匯流排。背板匯流排是一種印刷電路,在其上使用許多聯結器來插入功能板。連線輸入/輸出裝置到計算機系統的匯流排稱為I/O匯流排。
交叉開關和多埠記憶體
交換網路在輸入和輸出之間提供動態互連。小型或中型系統大多使用交叉開關網路。如果可以解決增加的延遲問題,多級網路可以擴充套件到更大的系統。
交叉開關和多埠記憶體組織都是單級網路。雖然單級網路的構建成本較低,但可能需要多次傳遞才能建立某些連線。多級網路具有多個交換盒級。這些網路應該能夠將任何輸入連線到任何輸出。
多級和組合網路
多級網路或多級互連網路是一類高速計算機網路,主要由網路一端上的處理單元和另一端上的儲存單元以及連線它們的交換單元組成。
這些網路被應用於構建更大的多處理器系統。這包括Omega網路、蝴蝶網路等等。
多計算機
多計算機是分散式記憶體MIMD架構。下圖顯示了多計算機的概念模型:

多計算機是訊息傳遞機器,它們應用分組交換方法來交換資料。在這裡,每個處理器都有一個私有記憶體,但沒有全域性地址空間,因為處理器只能訪問自己的本地記憶體。因此,通訊不是透明的:程式設計師必須在其程式碼中顯式地放置通訊原語。
沒有全域性可訪問的記憶體是多計算機的一個缺點。這可以透過使用以下兩種方案來解決:
- 虛擬共享記憶體 (VSM)
- 共享虛擬記憶體 (SVM)
在這些方案中,應用程式程式設計師假設一個全域性可定址的大型共享記憶體。如果需要,應用程式進行的記憶體引用將轉換為訊息傳遞範例。
虛擬共享記憶體 (VSM)
VSM是硬體實現。因此,作業系統的虛擬記憶體系統在VSM之上透明地實現。因此,作業系統認為它正在一臺具有共享記憶體的機器上執行。
共享虛擬記憶體 (SVM)
SVM是作業系統級別的軟體實現,並得到處理器記憶體管理單元 (MMU) 的硬體支援。在這裡,共享的單元是作業系統記憶體頁面。
如果處理器定址特定的記憶體位置,則MMU會確定與記憶體訪問關聯的記憶體頁面是否在本地記憶體中。如果頁面不在記憶體中,在普通的計算機系統中,它將由作業系統從磁碟交換進來。但在SVM中,作業系統從擁有該特定頁面的遠端節點獲取該頁面。
多計算機的三代
在本節中,我們將討論多計算機的三代。
過去的設計選擇
在選擇處理器技術時,多計算機設計人員選擇低成本的中粒度處理器作為構建塊。大多數平行計算機都是使用標準的現成微處理器構建的。為多計算機選擇了分散式記憶體,而不是使用共享記憶體,這將限制可擴充套件性。每個處理器都有自己的本地記憶體單元。
對於互連方案,多計算機具有訊息傳遞、點對點直接網路,而不是地址交換網路。對於控制策略,多計算機的設計人員選擇非同步MIMD、MPMD和SMPD操作。加州理工學院的Cosmic Cube(Seitz,1983)是第一代多計算機中的第一個。
現在和未來的發展
下一代計算機從使用全域性共享虛擬記憶體的中粒度到細粒度多計算機發展而來。第二代多計算機目前仍在使用。但使用更好的處理器(如i386、i860等),第二代計算機已經發展了很多。
第三代計算機是下一代計算機,其中將使用VLSI實現的節點。每個節點可能具有一個14-MIPS處理器、20-Mbytes/s路由通道和16 KB的RAM整合在一個晶片上。
英特爾Paragon系統
以前,同構節點用於製造超立方體多計算機,因為所有功能都由主機提供。因此,這限制了I/O頻寬。因此,為了有效地或以高吞吐量解決大型問題,無法使用這些計算機。英特爾Paragon系統旨在克服這一難題。它將多計算機變成了網路環境中具有多使用者訪問的應用程式伺服器。
訊息傳遞機制
多計算機網路中的訊息傳遞機制需要特殊的硬體和軟體支援。在本節中,我們將討論一些方案。
訊息路由方案
在採用儲存轉發路由方案的多計算機中,資料包是最小的資訊傳輸單元。在蟲洞路由網路中,資料包進一步細分為微塊。資料包長度由路由方案和網路實現確定,而微塊長度受網路大小的影響。
在**儲存轉發路由**中,資料包是資訊傳輸的基本單元。在這種情況下,每個節點都使用資料包緩衝區。資料包透過一系列中間節點從源節點傳輸到目標節點。延遲與源和目標之間的距離成正比。
在**蟲洞路由**中,從源節點到目標節點的傳輸是透過一系列路由器完成的。同一資料包的所有微塊都以流水線方式以不可分割的序列傳輸。在這種情況下,只有頭部微塊知道資料包的去向。
死鎖和虛擬通道
虛擬通道是兩個節點之間的邏輯連結。它由源節點和接收節點中的微塊緩衝區以及它們之間的物理通道形成。當為一對分配物理通道時,一個源緩衝區與一個接收緩衝區配對以形成一個虛擬通道。
當所有通道都被訊息佔用並且迴圈中的任何通道都沒有釋放時,將發生死鎖情況。為了避免這種情況,必須遵循死鎖避免方案。