[0050] 圖3為本發明一個實施例中交換機的結構示意圖;
[0051] 圖4為本發明另一個實施例中交換機的結構示意圖;
[0052] 圖5為本發明又一個實施例中交換機的結構示意圖;
[0053]圖6是本發明一個實施例中計算機間數據交換系統的結構示意圖。
【具體實施方式】
[0054] 下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完 整地描述。顯然,所描述的實施例僅是本發明一部分實施例,而不是全部的實施例。基于本 發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實 施例,都屬于本發明保護的范圍。
[0055] QPI是一種基于包傳輸的串行式高速點對點連接協議,采用差分信號與專門的時 鐘進行傳輸,可以提升更高的訪問帶寬。一組QPI可以具有20條數據傳輸線,以及發送(TX) 和接收方(RX)的時鐘信號。
[0056] -個QPI數據包包含80位,需要兩個時鐘周期或四次傳輸完成整個數據包的傳送 (QPI的時鐘信號速率是傳輸速率的一半)。在每次傳輸的20bit數據中,有16bit是真實 有效的數據,其余四位用于循環冗余校驗,以提高系統的可靠性。另外,QPI是雙向的,在發 送的同時也可以接收另一端傳輸來的數據,這樣,每個QPI總線總帶寬=每秒傳輸次數(即 QPI頻率)X每次傳輸的有效數據(即16bit/8=2Byte)X雙向。所以QPI的效率更高。
[0057] 此外,QPI另一個亮點就是支持多條系統總線連接,系統總線將會被分成多條連 接,并且頻率不再是單一固定的。根據系統各個子系統對數據吞吐量的需求,每條系統總線 連接的速度也可不同,更具彈性。
[0058] 如圖1所示,本發明實施例提供了一種計算機間數據交換的方法,該方法可以包 括以下步驟:
[0059] 步驟101 :利用QPI總線將至少兩個計算機分別連接到交換機的支持QPI協議的 各個端口;
[0060] 步驟102 :所述交換機接收所述至少兩個計算機中的第一計算機發送到支持QPI 協議的第一端口的QPI協議數據;
[0061] 步驟103 :所述交換機查找所述至少兩個計算機中的接收數據的第二計算機,確 定所述第二計算機連接的支持QPI協議的第二端口;
[0062] 步驟104 :所述交換機從所述第二端口將QPI協議數據發送給所述第二計算機。
[0063] 在本發明一個實施例中,為了提高交換機傳輸數據的準確性,在步驟101之后,進 一步包括:建立每一個計算機的標識與該計算機連接的支持QPI協議的端口的對應關系, 使得交換機能夠準確的定位計算機;在每一個計算機中劃分發送地址空間,并在每一個計 算機中將發送地址空間劃分為分別對應于其他每一個計算機的子發送地址空間;在每一個 支持QPI協議的端口上,設置該端口對應的計算機中的每一個子發送地址空間對應的計算 機的標識,通過該過程可使計算機為交換機提供更加準確的數據發送方的信息和數據接收 方的信息,以使交換機能夠準確的傳輸數據,而且計算機也可獲知該數據是由哪一臺計算 機提供。那么,在步驟102中所述發送到支持QPI協議的第一端口的QPI協議數據中攜帶 有對應于所述第一計算機為所述第二計算機劃分的第二子發送地址空間的信息;步驟103 的具體實現方式則可以為所述交換機根據所述第二子發送地址空間,查找所述第二子發送 地址空間對應的所述第二計算機標識,然后根據所述第二計算機的標識,確定所述第二計 算機連接的支持QPI協議的第二端口。
[0064] 在本發明一個實施例中,為了提高交換機傳輸數據的準確性,在步驟101之后,進 一步包括:在每一個計算機中劃分接收地址空間,并在每一個計算機中將接收地址空間劃 分為分別對應于其他每一個計算機的子接收地址空間,在每一個支持QPI協議的端口上, 設置該端口對應的計算機中的每一個子接收地址空間對應的計算機的標識;在步驟104之 前,進一步包括:將在所述第二計算機中所述第一計算機標識對應的第一子接收地址空間 的信息寫入所述QPI協議數據。那么,步驟104的具體實現方式可以為:所述交換機從所 述第二端口將攜帶有所述第一子接收地址空間信息的所述QPI協議數據發送給所述第二 計算機為所述第一計算機劃分的第一子接收地址空間。另外,在步驟104之后,可進一步包 括:從所述第二計算機為所述第一計算機劃分的第一子接收地址空間中,讀取所述QPI協 議數據。
[0065] 在本發明一個實施例中,為了便于管理發送地址空間,在每一個計算機中建立 ACPI模擬設備,所述劃分發送地址空間包括:在所述ACPI模擬設備中劃分出發送地址空 間。
[0066] 在本發明一個實施例中,為了便于管理接收地址空間,在每一個計算機中建立 ACPI模擬設備;
[0067] 所述劃分接收地址空間包括:在所述ACPI模擬設備中劃分出接收地址空間。
[0068] 在本發明另一實施例中也提出了一種計算機間數據交換的方法,如圖2所示,該 方法可以包括步驟如下:
[0069] 步驟201 :利用QPI總線將至少兩個計算機分別連接到交換機的支持QPI協議的 各個端口;
[0070] 步驟202 :建立每一個計算機的標識與該計算機連接的支持QPI協議的端口的對 應關系;
[0071] 在該過程中,交換機可為其自身存在的支持QPI協議的各個端口進行編號,如編 號可以為端口 1,端口 2,端口 3,端口 4,然后,為各個端口對應的計算機建立標識,如:將端 口 1連接的計算機標識為001,端口 2連接的計算機標識為002,端口 3連接的計算機標識 為003,端口 4連接的計算機標識為004,并可為端口與計算機的標識生成信息表,如表1所 示。同時,交換機可將該信息表反饋給各個計算機。通過該信息表,交換機可以清楚地定位 每個計算機所連接的端口,以能夠準確的對數據進行傳輸。
[0072] 表1交換機生成的信息表
[0073]
[0074] 步驟203 :在每一個計算機建立ACPI模擬設備,并在該ACPI模擬設備中劃分發送 地址空間和接收地址空間;
[0075] 通過在計算機中建立ACPI模擬設備,可通過訪問計算機中ACPI模擬設備,來實現 計算機與交換機的信息交互,使計算機內存管理更加規范。在該步驟中,可在每一個計算機 建立的ACPI模擬設備劃分出兩個空間記為空間A和空間B,其中,空間A作為發送地址空間 映射到交換機,空間B為接收地址空間對應物理內存,那么,計算機通過觸發空間A即可通 過交換機發送信息,通過觸發空間B即可訪問其獲取到的其他計算機發送的消息,即計算 機通過操作該ACPI設備可實現與遠程計算機的信息交互。
[0076]值得說明的是,本步驟是發明實施例的最優選擇,在該步驟中,可只建立發送地址 空間,而接收報文數據仍可采用現有技術完成,或者,可只建立接收地址空間,而發送報文 數據仍可采用現有技術完成。當僅建立發送地址空間時,步驟204則僅涉及到對發送地址 空間的進一步劃分,步驟205也就僅建立了子發送地址空間與計算機編號的對應關系。當 僅建立接收地址空間時,步驟204則僅涉及到對接收地址空間的進一步劃分,步驟205也就 僅建立了子接收地址空間與計算機編號的對應關系。
[0077] 步驟204 :在每一個計算機的ACPI模擬設備中將發送地址空間劃分為分別對應于 其他每一個計算機的子發送地址空間,將接收地址空間劃分為分別對應于其他每一個計算 機的子接收地址空間;
[0078] 該步驟主要是與交換機連接的各個計算機通過獲取連接在交換機上的計算機的 個數、各個計算機的編號范圍以及計算機自身的編號,并根據獲取的這些內容,在空間A和 空間B中,為其他計算機劃分出一定的空間,即將空間A進一步劃分為對應于其他計算機的 子發送地址空間例如:計算機001為計算機002劃分出的子發送地址空間為C-D,為計算機 003劃分出的子發送地址空間為E-F,為計算機004劃分出的子發送地址空間為G-H,將空間 B進一步劃分為對應于其他計算機的子接收地址空間,例如:計算機001為計算機002劃分 出的子接收地址空間為0-P,為計算機003劃分出的子接收地址空間為Q-R,為計算機004 劃分出的子接收地址空間為S-T。那么,如果計算機001向計算機002發送報文數據時,將 會將自發送空間C-D對應的地址信息放入報文數據中,如果計算機001訪問子接收空間地 址0-P即可獲取到計算機002發送給計算機001的報文數據。值得說明的是,這兩個空間 A和B的總和占總地址空間的比重很小,使用該空間不會影響到計算機的性能。
當前第2頁
1 
2 
3 
4