張守中 王 曉
(1、山東龍口91604 部隊,山東 龍口 265700;2、遼寧大連91550 部隊,遼寧 大連 116023)
隨著計算機互聯技術發展的日新月異,集群技術的應用也越來越深入和廣泛,通過集群系統可以將多臺同構或異構的計算機連接起來協同完成特定的任務,因此我們考慮利用基于集群技術的存儲通道MC 系統來實現數據的傳輸。
●技術性能定位在SMP 和標準網絡之間,帶寬100MB/s、延遲5s、開銷0.5s;●高可靠性,提供自動切換、錯誤修復等支持。
●32位數據通道;●由硬件自動實現對MC通道檢/糾錯功能,提供消息無錯到達檢測原語,可以保證MC 系統信道具有10-16的傳輸出錯率;●全部有硬件實現流控制,嚴格的消息順序控制,保證消息A 的傳輸錯誤對正在傳輸的消息B沒有任何影響;●MC上的節點互聯,采用32位16入口單級交叉開關結構,支持MC節點之間點到點、選播和廣播通信方式。
MC為一個基于標準PCI總線的分布共享存儲器方案。MC通過提供一個存儲器映射電路,實現源節點的一個虛擬存儲器(VM)頁面到目標節點的一個物理存儲器(PM)頁面的寫連接,而目標節點通過本節點VM到PM的存儲器讀映射,完成數據的讀取,從而實現源節點一個只寫VM頁面到目標節點的一個只讀VM的連接。在MC上連接的所有計算機節點稱之為簇節點。
圖1說明MC簇中兩個簇節點之間虛擬存儲器空間的連接。在圖1中節點1虛頁A(只寫)與節點2的虛頁E連接(只讀);節點2的虛頁F(只寫)與節點1 的虛頁J 連接(只讀)。

2.2.1 節點1的虛頁A(只寫)與節點2的虛頁E連接(只讀)的情形
應用程序通過系統調用,申請獲得MC頁C。
節點1 定義頁面C為只寫,它在節點1虛存空間中為A。節點1的存儲器虛實轉換將頁A對應到節點1的發送窗,即頁B,這是一個I/O空間;頁B通過MC接口板上的PCT完成到MC頁面C的映射。
節點2 定義MC頁C為只讀,它在節點2虛存空間中為E。節點2的存儲器虛實轉換將頁E對應到節點2的物理存儲器頁D,這是一個只讀頁;頁C通過節點2的MC接口板上的PCT完成到MC頁面C 到節點2物理存儲器頁面D的映射,這個映射由節點2的PCT控制,由DMA通道完成映射。
節點1 對頁面A的寫操作,經過一段時間(約5 s),就可以出現在節點2的物理存儲器頁面D中。節點2 的應用程序可以通過讀頁面E而取得節點1的數據。
節點2 的虛頁F(只寫)與節點1的虛頁J連接(只讀)的連接過程與此相似。
從程序使用MC連接的過程中可以看出,程序只能通過虛實地址轉換來訪問MC空間,因此,程序的可靠性和安全性是有充分保證的。這種使用MC的可靠性和安全性是由系統的虛擬存儲器管理系統的保護機制和安全機制提供的。MC空間的使用與程序存儲器空間的使用具有類似的步驟和相同的可靠性。
2.2.2 MC映射的一些可控制特性
為了便于程序設計控制,MC在定義存儲器映射時允許定義MC的以下一些控制位:
●發送位(只寫);●接收位(只讀);●廣播、選播或點到點方式定義;●本節點復制特性;●所有節點完成接收標志;●寫中斷
這些控制位在節點連接MC頁面時給予定義。
2.2.3 連接示例
圖2表示使用MC進行廣播、選播或點到點通信方式的連接示例。數字1、2和3分別代表三個連接,即“連接1”、“連接2”和“連接3”。
圖2中的連接分別表示了下面連接示例:
連接1:具有寫時中斷的單向點到點連接。由節點1 寫,節點3接收。
連接2:單向廣播。由節點3寫,所有節點接收。
連接3:雙向選播。節點2和4寫,節點2和4接收。
從圖2中可以看出,連接是以MC空間為標準的,即使用同一塊MC空間的為同一個連接。
2.2.4 MC連接特性參數
MC是基于存儲器頁面的連接,因此它的連接以頁面為粒度。在Alpha系統中,頁面大小為8KB。
目前的每個MC簇通過MC可以建立64K個連接,由于每個連接的粒度為一個頁面(8KB),所以在一個MC簇中,可以使用的MC總空間最大為
64K×8KB=512MB
這也就是MC 目前能夠提供的最大簇通信空間。
圖3說明MC連接中CPU、存儲器、I/O接口和MC通道之間的連接關系。其中MC卡是一塊占用一個PCI插槽的PCI卡,其輸出通道占用512MB只寫PCI存儲器空間,輸入通道占用另外一個512MB的PCI存儲器空間。這兩個512MB可以在4GB的PCI存儲器空間中的任意位置。


2.3.1 節點1的CPU訪問節點2的存儲器
節點1:
執行一條存指令,指令地址在MC空間,被映射到MC發窗,MC的發窗為I/O空間,因此指令操作通過CPU的cache、Buffers和系統總線,進入PCI總線。
PCI總線對寫進行譯碼,選中MC卡發送通道。
利用MC卡上的PCT信息對數據打包,形成MC 包。MC包由報頭、數據和包尾組成。報頭為目標節點標識,包尾為32位的CRC校驗數據。
送入MC網絡。
節點2:
MC卡接收MC網絡上來的數據,對其進行解包,去掉頭尾,得到數據;
使用MC卡上的PCT信息,根據數據包地


與一般的I/O設備一樣,MC卡通過總線橋,將數據送入物理存儲器中。
2.3.2 節點2的I/O設備訪問節點1的存儲器
PCI上的I/O設備可以象CPU一樣直接訪問MC卡,稱為I/O到MC直達。使用I/O到MC直達,節點無須通過其它節點訪問盤,盤會主動將數據送到最終需要的節點。
2.3.3 MC通信與cache數據的問題
由節點1送到節點2存儲器單元中的數據,允許節點2進入cache。因為DEC和Intel的CPU都支持這種外部數據到存儲器時的cache數據一致性校驗。當MC的接收通道通過總線橋將數據送入目標節點存儲器時,同時引起CPU中cache數據的一致性校驗。
MC系統下軟件的結構如圖4所示。
[1] 魯士文.計算機網絡原理與網絡技術[M].北京:機械工業出版社,1996.
[2] Andrew S.Tanenbaum.計算機網絡[M].清華大學出版社,1998.
[3] 許廣斌.基于linux的集群系統[J].2001.