專利名稱:用于在計算節點之間進行數據通信的系統和方法
技術領域:
本發明涉及數據通信,并且尤其涉及一種使用錯誤檢查、時鐘信號線路以及冗余數據信號線路、例如三條電線來在計算節點之間提供冗余串行通信通路的數據通信系統和方法。
背景技術:
隨著諸如多節點服務器之類的多節點計算系統變得越發得流行,對節點之間的可靠通信的需要也在不斷增加。典型的多節點系統包括主要節點、其操作輔助于主要節點的一個或多個輔助節點,并且包括用于控制不同節點的多個服務處理器(或者其它系統管理硬件)。多節點計算系統的復雜性需要尖端的管理,以便使系統中的節點保持能夠覺察到其它節點的狀態。
節點之間的通信一般通過使用預定義的聯網協議來實現,所述聯網協議諸如是傳輸控制協議/網際協議(TCP/IP)。然而,使用諸如TCP/IP之類的協議的分組給節點之間的通信添加了不希望的等待時間(latency)。因為分組遞送過程中的等待時間會在另一節點(節點B)重置或者遇到錯誤時在節點(節點A)中引起機器檢查,所以這對于多節點計算系統而言是有問題的。對于正在操作的節點(節點A)來講,合乎需要的是,使其具有實時數據以便防止它生成機器檢查并且作用于非計劃中的錯誤。
潛在的解決方案是在兩個節點之間使用專用的通信線路。并行通信鏈路需要太多導電通路、例如電線,這需要更大的連接器,由此增加了成本并且用掉了節點連接器區域的重要部分。諸如以太網、通用異步接收器/發送器(Universal Asynchronous Receiver/Transmitter,UART)和IC間(Inter-IC,I2C)總線之類的串行接口均具有無助于解決上述問題的缺陷。例如,以太網需要數目巨大的邏輯(宏單元)和物理尺寸來實現。類似于以太網,使用UART也需要數目巨大的邏輯(宏單元)和物理尺寸來實現。這也增加了實現的成本。因此,把以太網和UART作為解決方案是不切實際的。I2C簡單并且有助于進行低等待時間的通信,但是它沒有提供任何方法用于檢查或者處理數據傳輸中的錯誤。因而,無法確保無錯誤的分組遞送。
另外,以太網、UART和I2C沒有提供信號通路冗余。此外,如果鏈接通路有噪聲,那么可以對時鐘但不可以對數據使用時鐘恢復。如果一條電線或者信號線路失效,那么端節點之間的通信會終止。因此,合乎需要的是,具有一種用于最小化節點之間的通信信號線路數量、但仍通過錯誤檢查處理來提供冗余通路以及確保的分組遞送的系統和方法。
發明內容
本發明致力于解決有關驗證領域中的缺陷,并且提供了一種新穎的并且是非顯而易見的多通信線路的通信系統和方法,其用于在多節點計算系統中的節點對之間進行通信。在這方面,所述系統利用例如3線信號通路的冗余信號通路、奇偶校驗以及經修改后的I2C通信協議,來提供冗余且可靠的低等待時間的通信系統。
依照一個方面,本發明提供了一種冗余通信系統,用于在第一計算節點和第二計算節點之間提供數據通信。把發送器提供作為第一計算節點的一部分。把接收器提供作為第二計算節點的一部分。第一信號線路運送第一數據信號。第一信號線路把發送器與接收器電氣耦合。第二信號線路運送作為第一信號的冗余的第二數據信號。第二信號線路把發送器與接收器電氣耦合。所述接收器評估數據信號以便確定錯誤的存在,并且如果在第一數據信號中檢測到錯誤,則第二節點使用第二數據信號。
依照另一方面,本發明提供了一種用于在第一計算節點和第二計算節點之間進行數據通信的方法,其中使用運送第一數據信號的第一信號線路把第一計算節點中的發送器與第二計算節點中的接收器電氣耦合。使用運送第二數據信號的第二信號線路把第一通信節點中的發送器與第二通信節點中的接收器電氣耦合,其中第二信號線路與第一信號線路是分開的。評估第一數據信號以便確定錯誤的存在。如果在第一數據信號中檢測到錯誤,則使用第二數據信號。
依照又一方面,提供了一種機器可讀的存儲設備,所述設備上存儲有計算機程序,所述計算機程序用于在第一節點和第二節點之間進行冗余數據通信,其中使用運送第一數據信號的第一信號線路把第一計算節點中的發送器與第二計算節點中的接收器電氣耦合,并且使用運送第二數據信號的第二信號線路把第一通信節點中的發送器與第二通信節點中的接收器電氣耦合,第二信號線路與第一信號線路是分開的。所述計算機程序包括指令集,當指令集由機器執行時,可使機器執行這樣一種方法,所述方法包括評估第一數據信號以便確定錯誤的存在,并且如果在第一數據信號中檢測到錯誤,則使用第二數據信號。
本發明的另外方面的一部分將在隨后的描述中闡述,一部分通過描述將會是顯而易見的,或者可以通過實踐本發明而獲知。將借助于特別是在所附權利要求書中提出的元件和組合來實現并且完成本發明的各個方面。應該理解的是,先前的一般描述和隨后的詳細描述都僅僅是示例性的和說明性的,而不是用來限制要求保護的發明。
并入此說明書中并且構成其一部分的附圖示出了本發明的實施例,并且結合該描述一起用于解釋本發明的原理。此處所示的實施例是當前優選的,然而,應該理解的是,本發明不局限于所示出的確切配置和手段,其中圖1是依照本發明原理構造的通信系統的框圖;圖2是現有技術的I2C通信系統的時序圖;圖3是依照本發明原理構造的具有奇偶校驗位的數據信號的時序圖;圖4是依照本發明原理構造的每個均具有奇偶校驗位的冗余數據信號的時序圖;并且圖5是本發明的數據通信處理的流程圖。
具體實施例方式
有益的是,本發明提供了多線的通信系統和方法,其用于在多節點計算系統中的節點對之間進行通信。本發明提供了一種例如3線信號通路的冗余信號通路、奇偶校驗以及經修改的I2C通信協議,以便提供適合于在節點之間進行通信的低等待時間的通信系統。
現在參考附圖,其中相似的參考符號表示相似的元件,圖1中示出了依照本發明原理構造的節點間(internodal)通信系統,并且其總體上以“10”來表示。節點間通信系統10包括計算節點12a和12b(此處合稱為“節點12”)。節點12包括發送器14和接收器16。值得注意的是,雖然節點12a只示出了發送器14,而節點12b只示出了接收器16,雖然為了便于說明而沒有在圖1中示出,但是應該理解的是,節點12a包括接收器,而節點12b包括發送器。
在圖1中示出的所述實施例中,發送器14和接收器16通過三個信號線路(例如,電線)電氣連接,所述三個信號線路即為時鐘信號18(SCL)、第一數據信號線路20(SDA)和第二數據信號線路22(SDB)。正如下面詳細描述的那樣,SDB 22運送作為由SDA 20運送的數據信號的冗余的數據信號。
節點12可以是任何計算設備,諸如可以在多節點服務器平臺中找到。假定本領域普通技術人員應該理解的是,除發送器14和接收器16以外,節點12還包括諸如中央處理單元、易失性和非易失性存儲器、輸入/輸出硬件和設備、內部總線等之類的其它硬件和軟件組件,用于允許節點12執行其預定功能。節點12可以是例如服務器片(server blade)、服務處理器或者管理硬件等。
從硬件的角度來看,發送器14可以基于I2C技術。有益的是,這種配置提供了低傳輸等待時間的設計方案,所述設計方案需要很少的宏單元(邏輯)來實現。然而,不同于本發明的是,已知的I2C發送器和接收器被設置為支持單個數據信號線路。如圖1所示,本發明的發送器和接收器提供了兩個信號線路,即SDA 20和SDB 22。這種雙信號線路配置在傳統的I2C系統上增加了另一信號線路。雖然需要額外的邏輯和驅動電路來創建并驅動冗余的SDB 22信號,但是這種需求方面的增加因為I2C通信系統的結構簡單而是很小的。接收器14被設置為驅動兩個信號線路上的數據信號。
時鐘信號線路、即SCL 18為發送和接收節點12所共用,并且由主節點12驅動。主節點12是通過系統管理軟件離線確定的。一旦主設備已經建立,它就從發送器14驅動時鐘信號線路上的公共時鐘并進而驅動至接收器16上的接收端口。
雖然上述硬件配置提供了冗余數據信號通路,但是還可以另外就在SDA 20上接收的數據信號是否有效做出確定。本發明的當前實施例使用奇偶校驗來驗證在SDA 20和SDB 22上于接收器16處接收的數據的完整性。參考圖2-4來描述依照本發明的奇偶校驗。
圖2是現有技術中的I2C通信系統的時序圖。在現有技術中,數據(SDA)和時鐘(SCL)是雙向的,并且多個設備通常耦合至這些線路。因此,當線路空閑時,主設備占用(seize)該線路并且啟動開始狀態,識別總線上的從屬設備,所述從屬設備將成為數據的接收器。一旦已經傳輸了地址,如圖2所示,那么正常的I2C數據傳輸包括開始狀態,然后是8個數據位。在已經傳輸了第八位之后,用于接收的從屬設備在下一時鐘信號把SDA線路拉低,以便確認接收到8個位。然而,即使接收器做出這種確認,也沒有辦法獲知傳輸是否無誤。可以跟隨有停止條件。
因而,所述I2C協議具有多個操作階段,即開始、設備尋址、確認、數據(可選)和停止。然而,因為本發明的當前實施例使用節點至節點的通信(參見圖1),所以傳統I2C的尋址階段是不需要的。本配置仍將允許I2C設備不采用奇偶校驗(如下所述)來工作。
參考圖3描述了把奇偶校驗添加到I2C協議。圖3是依照本發明原理構造的具有奇偶校驗位的數據信號的時序圖。發送和接收節點之間的通信是雙向的。然而,還可以設想到的是使用單向信號線路,并且提供相應的接收器和發送器對(未示出)。在單向通信的情況下,不需要接收器把SDA線路拉低來表明確認。不論是哪種情況,此時間段均可用于包括第九位、即奇偶校驗位的傳輸。
接收器16可以對8個傳輸的位執行奇偶校驗,以便確定所述傳輸是否無誤。如果所述傳輸無誤,那么接收器16可以轉向信號線路SDA 20和SDB 22,并且使用這些線路(或者其它單向的節點至節點的通信信號線路,例如從節點12b至節點12a的SDA)來確認數據字節的無誤接收。如果出現失敗、例如不良的奇偶校驗,那么接收節點、例如節點12b向發送節點、例如節點12a發送重試命令。值得注意的是,雖然根據奇偶校驗位和奇偶校驗描述了本發明,但是可以設想到的是還可以使用其它的錯誤檢查和確認方法。
參考圖1和4來描述對結合奇偶校驗的冗余物理連接的使用。圖4是依照本發明原理構造的均具有奇偶校驗位的冗余數據信號的時序圖。圖3和圖4的時序圖之間的主要區別在于圖4表明奇偶校驗位被包括作為SDA 20和SDB 22這兩者的一部分。有益的是,如果確定在SDA 20上接收的數據有錯誤,那么這樣做允許接收器16有機會對在SDB 22上接收的數據進行奇偶校驗。
參考圖5來解釋本發明的整體操作。圖5是本發明的數據通信處理的流程圖。最初,開始數據通信周期(步驟S100)。這種開始可以是在SDA 20和SDB 22上啟動I2C開始狀態和傳輸數據字節。一旦通信周期開始并且已經在SDA 20和SDB 22上傳輸了數據,則接收器16就諸如通過對數據進行奇偶校驗來評估在SDA 20上接收到的數據,以便確定SDA 20上的傳輸是否無誤(步驟S102)。如果奇偶校驗是OK,即,數據被無誤地接收了,那么節點12b將使用該數據字節(步驟S104)。
如果對在SDA 20上接收的數據的評估(奇偶校驗)確定存在錯誤(步驟S102),那么接收器16評估在SDB 22上接收到的數據,以便確定該數據是否無誤,即,通過奇偶校驗(步驟S106)。如果在SDB 22上接收到的數據的奇偶校驗表明數據被無誤地接收了,那么節點12b將使用SDB 22的數據字節(步驟S108)。如果對在SDB 22上接收到的數據的評估(奇偶校驗)確定存在錯誤(步驟S106),那么節點12b向節點12a傳輸重新發送請求和/或否定確認(noacknowledgement)(步驟S110)。不論是在SDA 20和/或SDB 22上接收到的數據的奇偶校驗揭示出有錯誤的任何一種情況下,都可以設想到的是,所述系統可以啟動并且執行診斷以便確定是存在長期狀態還是存在臨界的狀態。在成功地接收到數據的情況下,節點12b在用于支持從節點12b到節點12a的通信的、雙向的SDA 20和SDB 22上或者單向的發送器/接收器對上發送確認。
本發明可以依照硬件、軟件、或者硬件和軟件的組合來實現。本發明的方法和系統的實施方式可以在一個計算機系統中依照集中化方式來實現,或者依照不同元件跨越多個互連的計算機系統分布設置的分布式方式來實現。適合于實現此處所述方法的任何類型的計算機系統或者其它設備都適用于執行此處所述的功能。
硬件和軟件的典型組合可以是具有計算機程序的通用計算機系統,當載入并且執行所述計算機程序時,其控制所述計算機系統,以便使所述計算機系統執行此處所述的方法。本發明還可以被包含在計算機程序產品中,該計算機程序產品包括能夠實現此處所述方法的所有特征,并且當將其被載入計算機系統中時,能夠執行這些方法。
在當前上下文中的計算機程序或者應用是指,指令集的以任何語言、代碼或符號形式的任何表述方式,所述指令集用于使具有信息處理能力的系統直接或者在進行如下步驟之一后執行特殊的功能,所述步驟包括a)轉換為另一種語言、代碼或符號;b)依照不同材料形式再現。顯然,在不脫離本發明的精神或基本屬性的情況下,本發明可以用其它特定形式實現,因此,本發明的范圍應該由隨后的權利要求書、而不是先前的說明書來限定。
權利要求
1.一種冗余通信系統,用于在第一計算節點和第二計算節點之間提供數據通信,所述通信系統包括作為第一計算節點的一部分提供的發送器;作為第二計算節點的一部分提供的接收器;用于運送第一數據信號的第一信號線路,所述第一信號線路把所述發送器與接收器電氣耦合;用于運送作為第一信號的冗余的第二數據信號的第二信號線路,所述第二信號線路把所述發送器與接收器電氣耦合;以及所述接收器評估第一數據信號以便確定錯誤的存在,如果在第一數據信號中檢測到錯誤,則第二節點使用第二數據信號。
2.如權利要求1所述的系統,還包括用于把發送器與接收器電氣耦合的時鐘信號線路。
3.如權利要求1所述的系統,其中,第一數據信號和第二數據信號都包括奇偶校驗位,其中評估第一數據信號以便確定錯誤的存在,包括使用所述奇偶校驗位來對所接收的第一數據信號進行奇偶校驗。
4.如權利要求3所述的系統,其中,如果確定第一數據信號有錯誤,那么所述接收器通過進一步評估所述第二數據信號來確定錯誤的存在,而使用第二數據信號。
5.如權利要求4所述的系統,其中,如果確定所述第二數據信號有錯誤,那么第二節點向第一節點傳輸重新發送請求和否定確認中的至少一個。
6.如權利要求5所述的系統,其中,第一通信信號線路和第二通信信號線路是雙向的,并且其中重新發送請求和否定確認中的至少一個是使用第一數據信號線路和第二數據信號線路從第二節點傳輸到第一節點的。
7.如權利要求6所述的系統,其中所述發送器的電特性對應于I2C發送器的電特性,而接收器的電特性對應于I2C接收器的電特性。
8.一種用于在第一計算節點和第二計算節點之間提供數據通信的方法,所述方法包括如下步驟使用運送第一數據信號的第一信號線路把第一計算節點中的發送器與第二計算節點中的接收器電氣耦合;使用運送第二數據信號的第二信號線路把第一通信節點中的發送器與第二通信節點中的接收器電氣耦合,所述第二信號線路與第一信號線路是分開的;評估第一數據信號以便確定錯誤的存在;并且如果在第一數據信號中檢測到錯誤,則使用第二數據信號。
9.如權利要求8所述的方法,還包括使用時鐘信號把所述發送器與接收器電氣耦合。
10.如權利要求8所述的方法,其中,第一數據信號和第二數據信號都包括奇偶校驗位,其中評估第一數據信號以便確定錯誤的存在的步驟包括使用所述奇偶校驗位來對所接收的第一數據信號進行奇偶校驗。
11.如權利要求10所述的方法,其中,如果確定第一數據信號有錯誤,那么進一步評估所述第二數據信號,以便確定錯誤的存在。
12.如權利要求11所述的方法,還包括如果確定所述第二數據信號有錯誤,那么向發送器傳輸重新發送請求和否定確認中的至少一個。
13.如權利要求12所述的方法,其中,第一通信信號線路和第二通信信號線路是雙向的,并且其中重新發送請求和否定確認中的至少一個是使用第一數據信號線路和第二數據信號線路從第二節點傳輸到第一節點的。
14.如權利要求12所述的方法,其中,所述發送器的電特性對應于I2C發送器的電特性,而接收器的電特性對應于I2C接收器的電特性。
15.一種機器可讀的存儲設備,所述設備上存儲有計算機程序,所述計算機程序用于在第一節點和第二節點之間提供冗余數據通信,其中使用運送第一數據信號的第一信號線路把第一計算節點中的發送器與第二計算節點中的接收器電氣耦合,并且還使用運送第二數據信號的第二信號線路把第一通信節點中的發送器與第二通信節點中的接收器電氣耦合,所述第二信號線路與第一信號線路是分開的,所述計算機程序包括指令集,當該指令集由機器執行時,使機器執行如權利要求8-12中任一項所述的方法步驟。
全文摘要
一種用于在第一計算節點和第二計算節點之間提供數據通信的冗余通信系統和方法。把發送器提供作為第一計算節點的一部分。把接收器提供作為第二計算節點的一部分。第一信號線路運送第一數據信號。第一信號線路把發送器與接收器電氣耦合。第二信號線路運送作為第一信號的冗余的第二數據信號。第二信號線路把發送器與接收器電氣耦合。所述接收器評估第一數據信號以便確定錯誤的存在,并且如果在第一數據信號中檢測到錯誤,則第二節點使用第二數據信號。
文檔編號H04L1/00GK1901436SQ200610100088
公開日2007年1月24日 申請日期2006年6月29日 優先權日2005年6月30日
發明者阿爾佛雷多·阿爾德里古亞, 格雷斯·A.·里克特, 杰弗里·B.·威廉斯 申請人:國際商業機器公司