(57)【特許請求の範囲】
【請求項１】
多ノード・コンピューティング・システムにおける第１のコンピューティング・ノードと第２のコンピューティング・ノードとの間でデータ通信を提供するための冗長通信システムであって、
前記第１のコンピューティング・ノードの一部として設けられる送信器と、
前記第２のコンピューティング・ノードの一部として設けられる受信器と、
前記送信器を前記受信器に電気的に接続するクロック信号ラインと、
第１のデータ信号を前記クロック信号ライン上で駆動されるクロック信号に従い搬送し、前記送信器を前記受信器に電気的に接続する双方向性の第１の信号ラインであって、前記第１のデータ信号はパリティ・ビットを含む、前記第１の信号ラインと、
前記第１のデータ信号に対して冗長な第２のデータ信号を前記クロック信号ライン上で駆動されるクロック信号に従い前記第１のデータ信号の搬送と同じデータ通信サイクルで搬送し、前記送信器を前記受信器に電気的に接続する双方向性の第２の信号ラインであって、前記第２のデータ信号はパリティ・ビットを含む、前記第２の信号ラインと
を備えており、
前記受信器が前記第１のデータ信号に含まれる前記パリティ・ビットを用いて前記第１のデータ信号のパリティ・チェックを行うことにより前記第１のデータ信号を評価してエラーの存在を判定し、前記第１のデータ信号においてエラーが検出されない場合には前記第２のコンピューティング・ノードが前記第１のデータ信号を用い、一方、前記第１のデータ信号においてエラーが検出された場合には、前記受信器が、更に前記第２のデータ信号に含まれる前記パリティ・ビットを用いて前記第２のデータ信号のパリティ・チェックを行うことにより前記第２のデータ信号を評価してエラーの存在を判定し、前記第２のデータ信号においてエラーが検出されない場合には前記第２のコンピューティング・ノードが前記第２のデータ信号を用い、一方、前記第２のデータ信号においてエラーが検出された場合には、前記第２のノードが、再送信要求および非確認応答のうち少なくとも１つを前記第１の信号ラインおよび前記第２の信号ラインを用いて前記第２のコンピューティング・ノードから前記第１のコンピューティング・ノードに送信する、前記冗長通信システム。
【請求項２】
前記クロック信号ラインが、マスター・ノードである前記第１のコンピューティング・ノードによって駆動され、前記マスター・ノードは、前記送信器から前記受信器の受信側ポートまで、前記クロック信号ライン上の共通クロックを駆動する、請求項１に記載の冗長通信システム。
【請求項３】
前記送信器の電気的特性がＩ２Ｃ送信器の電気的特性に対応し、前記受信器の電気的特性がＩ２Ｃ受信器の電気的特性に対応する、請求項１又は２に記載の冗長通信システム。
【請求項４】
多ノード・コンピューティング・システムにおける第１のコンピューティング・ノードと第２のコンピューティング・ノードとの間でデータ通信を提供するための方法であって、
クロック信号ラインを用いて、前記第１のコンピューティング・ノードにおける送信器を前記第２のコンピューティング・ノードにおける受信器に電気的に接続するステップと、
第１のデータ信号を前記クロック信号ライン上で駆動されるクロック信号に従い搬送する双方向性の第１の信号ラインを用いて、前記第１のコンピューティング・ノードにおける前記送信器を前記第２のコンピューティング・ノードにおける前記受信器に電気的に接続するステップであって、前記第１のデータ信号はパリティ・ビットを含む、前記接続するステップと、
前記第１の信号ラインとは別個の、前記第１のデータ信号に対して冗長な第２のデータ信号を前記クロック信号ライン上で駆動されるクロック信号に従い前記第１のデータ信号の搬送と同じデータ通信サイクルで搬送する双方向性の第２の信号ラインを用いて、前記第１のコンピューティング・ノードにおける前記送信器を、前記第２のコンピューティング・ノードにおける前記受信器に電気的に接続するステップであって、前記第２のデータ信号はパリティ・ビットを含む、前記接続するステップと、
前記第１のデータ信号に含まれる前記パリティ・ビットを用いて前記第１のデータ信号のパリティ・チェックを行うことにより前記第１のデータ信号を評価してエラーの存在を判定するステップであって、前記第１のデータ信号においてエラーが検出されない場」合には前記第２のコンピューティング・ノードが前記第１のデータ信号を用いる、前記判定するステップと、
前記第１のデータ信号においてエラーが検出された場合には前記第２のデータ信号に含まれる前記パリティ・ビットを用いて前記第２のデータ信号のパリティ・チェックを行うことにより前記第２のデータ信号を評価してエラーの存在を判定するステップであって、前記第２のデータ信号においてエラーが検出されない場合には前記第２のコンピューティング・ノードが前記第２のデータ信号を用い、一方、前記第２のデータ信号においてエラーが検出された場合には、前記第２のノードが、再送信要求および非確認応答のうち少なくとも１つを前記第１の信号ラインおよび前記第２の信号ラインを用いて前記第２のコンピューティング・ノードから前記第１のコンピューティング・ノードに送信する、前記判定するステップと
を含む、前記方法。
【請求項５】
前記クロック信号ラインが、マスター・ノードである前記第１のコンピューティング・ノードによって駆動され、前記マスター・ノードは、前記送信器から前記受信器の受信側ポートまで、前記クロック信号ライン上の共通クロックを駆動する、請求項４に記載の方法。
【請求項６】
前記送信器の電気的特性がＩ２Ｃ送信器の電気的特性に対応し、前記受信器の電気的特性がＩ２Ｃ受信器の電気的特性に対応する、請求項４又は５に記載の方法。
【請求項７】
多ノード・コンピューティング・システムにおける第１のコンピューティング・ノードと第２のコンピューティング・ノードとの間で冗長データ通信を提供するためのコンピュータ・プログラムであって、冗長通信システムに、請求項４〜６のいずれか一項に記載の方法の各ステップを実行させる前記コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信に関し、更に具体的には、エラー・チェック、ならびに、例えば３ワイヤのようなクロック信号ラインおよび冗長データ信号ラインを用いて、コンピューティング・ノード間に冗長直列通信経路を提供する、データ通信システムおよび方法に関する。
【背景技術】
【０００２】
多ノード・サーバ等の多ノード・コンピューティング・システムがいっそう普及するにつれて、ノード間の信頼性の高い通信に対する要望が高まっている。典型的な多ノード・システムは、一次ノード、この一次ノードに対して補助的な動作を行う１つ以上の二次ノード、および、異なるノードを制御するための多数のサービス・プロセッサ（または他のシステム管理ハードウェア）を含む。多ノード・コンピューティング・システムは複雑であり、システム内のノードが他のノードのステータスを常に認識しているように高度な管理を必要とする。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ノード間の通信は、通常、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）等の既定のネットワーキング・プロトコルを用いることによって達成される。しかしながら、ＴＣＰ／ＩＰ等のプロトコルを用いたパケットでは、ノード間の通信に関連して、望ましくない待ち時間が増える。これは、多ノード・コンピューティング・システムにとって問題となり得る。なぜなら、パケット配信における待ち時間は、あるノード（ノードＡ）がリセットしたとき、またはエラーに遭遇したときに、他のノード（ノードＢ）でマシン・チェックを起こす可能性があるからである。動作中のノード（ノードＢ）は、マシン・チェックを発生してその意図しないエラーに対して反応するのを防ぐために、リアル・タイム・データを持つことが望ましい。
【０００４】
考えられる解決策は、２つのノード間で１本の専用通信ラインを用いることである。並列通信リンクは、例えばワイヤのような導電性経路の必要数が多すぎ、より大型のコネクタが必要であり、これによって、コストが高くなり、ノード・コネクタ領域の大きな部分が占有される。イーサネット(登録商標)、ＵＡＲＴおよびＩｎｔｅｒ−ＩＣ（Ｉ２Ｃ）バス等の直列インタフェースは、各々、上述の問題の解決に役立たないという欠点を有する。例えば、イーサネットは、実装するために大量のロジック（マクロ・セル）および物理的なサイズを必要とする。ＵＡＲＴも同様である。また、これによって実装のコストが高くなる。従って、イーサネットおよびＵＡＲＴは、解決策として実用的でない。Ｉ２Ｃは、単純で、待ち時間の少ない通信を容易にするが、データ伝送においてエラーをチェックするための、またはエラーを処理するための方法を提供しない。このため、エラーのないパケット配信が保証されない。
【０００５】
更に、イーサネット、ＵＡＲＴ、およびＩ２Ｃは、信号経路の冗長性を提供しない。また、リンク経路にノイズがある場合、クロックについてはクロック回復を使用可能であるが、データについてはそうでない。１本のワイヤまたは信号ラインが故障すると、エンド・ノード間の通信が終了する。従って、ノード間の通信信号ラインの量を最小限に抑えながら、冗長経路およびエラー・チェック・プロセスによって保証されたパケット配信を提供するシステムおよび方法を有することが望ましい。
【課題を解決するための手段】
【０００６】
本発明は、認証に関する当技術分野の欠点に対処し、多ノード・コンピューティング・システムにおけるノード対間の通信のための新規かつ自明でない通信多ワイヤ通信システムおよび方法を提供する。これに関して、このシステムは、例えば３ワイヤ信号経路のような冗長信号経路を利用し、更に、変更したＩ２Ｃ通信プロトコルと共にパリティ・チェックを利用して、冗長かつ信頼性の高い待ち時間の少ない通信システムを提供する。
【０００７】
１つの態様によれば、本発明は、第１のコンピューティング・ノードと第２のコンピューティング・ノードとの間でデータ通信を提供するための冗長通信システムを提供する。第１のコンピューティング・ノードの一部として、送信器を設ける。第２のコンピューティング・ノードの一部として、受信器を設ける。第１の信号ラインは第１のデータ信号を搬送する。第１の信号ラインは、送信器を受信器に電気的に結合する。第２の信号ラインは、第１の信号に対して冗長な第２のデータ信号を搬送する。第２の信号ラインは、送信器を受信器に電気的に結合する。受信器は、データ信号を評価してエラーの存在を判定し、第１のデータ信号においてエラーが検出された場合には、第２のノードは第２のデータ信号を用いる。
【０００８】
別の態様によれば、第１のコンピューティング・ノードと第２のコンピューティング・ノードとの間でデータ通信を提供するための方法を提供する。第１のデータ信号を搬送する第１の信号ラインを用いて、第１のコンピューティング・ノードにおける送信器を第２のコンピューティング・ノードにおける受信器に電気的に結合する。また、第１の信号ラインとは別個の、第２のデータ信号を搬送する第２の信号ラインを用いて、第１のコンピューティング・ノードにおける送信器を、第２のコンピューティング・ノードにおける受信器に電気的に結合する。第１のデータ信号を評価してエラーの存在を判定する。第１のデータ信号においてエラーが検出された場合には、第２のデータ信号を用いる。
【０００９】
更に別の態様によれば、第１のノードと第２のノードとの間で冗長データ通信を提供するためのコンピュータ・プログラムがストアされた機械読み取り可能ストレージ・デバイスが提供される。第１のデータ信号を搬送する第１の信号ラインを用いて、第１のコンピューティング・ノードにおける送信器が、第２のコンピューティング・ノードにおける受信器に電気的に結合される。また、第１の信号ラインとは別個の、第２のデータ信号を搬送する第２の信号ラインを用いて、第１のコンピューティング・ノードにおける送信器が、第２のコンピューティング・ノードにおける受信器に電気的に結合される。このコンピュータ・プログラムは、１組の命令を含み、この命令が機械によって実行されると、第１のデータ信号を評価してエラーの存在を判定するステップと、第１のデータ信号においてエラーが検出された場合には第２のデータ信号を用いるステップと、を含む方法を機械に実行させる。
【００１０】
本発明の更に別の態様は、部分的に、以下の説明において記載し、部分的にその記載から明らかになり、または本発明の実施によって習得することができる。本発明の態様は、特許請求の範囲に特に示す要素および組み合わせによって実現され達成される。前述の全体的な説明および以下の詳細な説明は双方とも例示的で説明的なものであり、特許請求の範囲に記載された本発明を限定するものではないことは理解されよう。  
【００１１】
この明細書に組み込まれ、その一部を構成する添付図面は、本発明の実施形態を例示し、文章による記述と共に、本発明の原理を説明するように機能する。本明細書において例示される実施形態は、現在好適なものであるが、本発明は、図示する明確な配置および手段には限定されないことは理解されよう。
【発明を実施するための最良の形態】
【００１２】
本発明は、多ノード・コンピューティング・システムにおけるノード対間の通信のための多ワイヤ通信システムおよび方法を提供するという利点を有する。本発明は、例えば３ワイヤ信号経路のような冗長信号経路を提供し、更に、変更したＩ２Ｃ通信プロトコルと共にパリティ・チェックを用いて、ノード間の通信を容易にするのに適した待ち時間の少ない通信システムを提供する。
【００１３】
これより、図面を参照する。図面において、同様の参照番号は同様の要素を示す。図１に、本発明の原理に従って構成され、全体として「１０」と示すノード間通信システムが示されている。ノード間通信システム１０は、コンピューティング・ノード１２ａおよび１２ｂ（本明細書では、まとめて「ノード１２」と示す）を含む。ノード１２は、送信器１４および受信器１６を含む。留意点として、ノード１２ａは送信器１４のみを示し、ノード１２ｂは受信器１６のみを示すが、図１には説明を容易にするため図示していないが、ノード１２ａは受信器を含みノード１２ｂは送信器を含むことは理解されよう。
【００１４】
図１に示す実施形態において、送信器１４および受信器１６は、例えばワイヤのような３本の信号ライン、すなわちクロック信号ライン１８（ＳＣＬ）、第１のデータ信号ライン２０（ＳＤＡ）、および第２のデータ信号ライン２２（ＳＤＢ）によって電気的に接続されている。以下で詳細に説明するが、ＳＤＢ２２は、ＳＤＡ２０によって搬送されるデータ信号に対して冗長なデータ信号を搬送する。
【００１５】
ノード１２は、多ノード・サーバ・プラットフォームにおいて見出されるもののような
任意のコンピューティング・デバイスとすることができる。当業者には理解されようが、送信器１４および受信器１６に加えて、ノード１２は、中央演算処理装置、揮発性および不揮発性ストレージ、入出力ハードウェアおよびデバイス、内部バス等、他のハードウェアおよびソフトウェア・コンポーネントを含み、ノード１２が意図する機能を実行可能とするために用いることが考えられる。ノード１２は、例えば、サーバ・ブレード、サービス・プロセッサ、または管理ハードウェア等とすることができる。
【００１６】
ハードウェアの観点から、送信器１４は、Ｉ２Ｃ技術に基づくものとすることができる。この構成は、実装するために少数のマクロ・セル（ロジック）しか必要としない伝送待ち時間の少ない設計を提供するという利点を有する。しかしながら、本発明とは異なり、既知のＩ２Ｃ送信器および受信器は、単一のデータ信号ラインをサポートするように構成されている。図１に示すように、本発明の送信器および受信器は、２本の信号ラインすなわちＳＤＡ２０およびＳＤＢ２２に対応する。この２信号ライン構成は、従来のＩ２Ｃシステムにもう１本の信号ラインを追加する。冗長なＳＤＢ２２信号を生成し駆動するために追加のロジックおよび駆動回路が必要であるが、Ｉ２Ｃ通信システムの構造が単純であるために、要求事項の増大は最小限である。受信器１６は、２本の信号ライン上のデータ信号を駆動するように構成されている。
【００１７】
クロック信号ラインすなわちＳＣＬ１８は、送信側および受信側ノード１２に共通であり、マスター・ノード１２によって駆動される。マスター・ノード１２は、システム管理ソフトウェアによってオフラインで決定される。マスタは、いったん確立されると、送信器１４から受信器１６上の受信側ポートまで、クロック信号ライン上の共通クロックを駆動する。
【００１８】
上述のハードウェア構成は冗長データ信号経路を提供するが、ＳＤＡ２０上で受信したデータ信号が有効であるか否かを判断することも可能である。本発明のこの実施形態は、パリティ・チェックを用いて、ＳＤＡ２０およびＳＤＢ２２を介して受信器１６で受信したデータの完全性を検証する。図２から図４を参照して、本発明によるパリティ・チェックについて説明する。
【００１９】
図２は、従来技術のＩ２Ｃ通信システムのタイミング図である。従来技術において、データ（ＳＤＡ）およびクロック（ＳＣＬ）は双方向性であり、通常これらのラインには複数のデバイスが結合されている。従って、ラインがアイドルの場合、マスタ・デバイスはラインを確保（seize）し、スタート・コンディションを開始し、データの受信器となるバス上のスレーブを識別する。いったんアドレスが送信されると、図２に示すように、ノーマルなＩ２Ｃデータ伝送は、スタート・コンディションを含み、次いで８データ・ビットを含む。８番目のビットが送信されると、受信側のスレーブ・デバイスは、次のクロック信号においてＳＤＡラインをローに引き下げて、８ビットの受信を確認する。しかしながら、受信器がかかる確認応答（ＡＣＫ）を行ったとしても、その伝送にエラーが無かったか否かを知る方法はない。この後に、ストップ・コンディションが続く。
【００２０】
このように、Ｉ２Ｃプロトコルは、いくつかの動作段階を有する、すなわち、スタート、デバイス・アドレス指定、確認応答、データ（オプション）、およびストップである。しかしながら、本発明の実施形態はノード間通信を用いるので（図1を参照）、従来のＩ２Ｃのアドレス指定の段階は不要である。更に、この構成では、（以下で述べるように）パリティ・チェックを用いないＩ２Ｃデバイスが機能することができる。
【００２１】
図３を参照して、Ｉ２Ｃプロトコルに対するパリティ・チェックの追加について説明する。図３は、本発明の原理に従って構成されたパリティ・ビットを用いたデータ信号のタイミング図である。送信側および受信側ノード間の通信は双方向性である。しかしながら、単方向性の信号ラインも使用可能であり、対応する受信器および送信器の対を設ける（図示せず）ことも考えられる。単方向性の通信の場合、受信器がＳＤＡラインをローに引き下げて確認応答を示す必要はない。いずれの場合でも、この時間期間を用いて、９番目のビットすなわちパリティ・ビットの送信を含ませることができる。
【００２２】
受信器１６は、送信された８ビットに対してパリティ・チェックを実行して、この伝送にエラーが無かったか否かを判定する。伝送にエラーが無かった場合、受信器１６は、信号ラインＳＤＡ２０およびＳＤＢ２２を転換させ、これらのライン（または、例えばノード１２ｂからノード１２ａへのＳＤＡのような他の単方向性ノード間通信信号ライン）を用いて、データ・バイトのエラーの無い受信を確認する。例えばバッド・パリティ・チェックのような障害の場合には、例えばノード１２ｂのような受信側ノードは、再試行コマンドを、例えばノード１２ａのような送信側ノードに送信する。本発明はパリティ・ビットおよびパリティ・チェックに関連付けて記載するが、他のエラー・チェックおよび確認応答の方法も使用可能である。
【００２３】
図１および図４を参照して、パリティ・チェックと組み合わせた冗長物理接続の使用について説明する。図４は、各々が本発明の原理に従って構成されたパリティ・ビットを有する冗長データ信号のタイミング図である。図３のタイミング図と図４のものとの主な相違は、図４ではパリティ・ビットがＳＤＡ２０およびＳＤＢ２２の双方の一部として含まれていることである。これによって、ＳＤＡ２０上で受信したデータがエラーを有すると判定された場合に、ＳＤＢ２２上で受信したデータを受信器１６がパリティ・チェックする機会が与えられるという利点がある。
【００２４】
図５を参照して、本発明の全体的な動作を説明する。図５は、本発明のデータ通信プロセスのフロー・チャートである。最初に、データ通信サイクルを開始する（ステップＳ１００）。かかる開始は、ＳＤＡ２０およびＳＤＢ２２上でのＩ２Ｃスタート・コンディションの開始およびデータ・バイトの送信とすることができる。いったん通信サイクルが始まり、データがＳＤＡ２０およびＳＤＢ２２上で送信されると、受信器１６は、データのパリティ・チェック等によって、ＳＤＡ２０上で受信したデータを評価して、ＳＤＡ２０上の送信がエラー無しであるか否かを判定する（ステップＳ１０２）。パリティ・チェックがＯＫである場合、すなわちデータがエラー無しで受信された場合、ノード１２ｂはそのデータ・バイトを用いる（ステップＳ１０４）。
【００２５】
ＳＤＡ２０上で受信したデータの評価（パリティ・チェック）によって、エラーが存在すると判定された場合（ステップＳ１０２）、受信器１０６は、ＳＤＢ２２上で受信したデータを評価して、そのデータがエラー無しであるか、すなわちパリティ・チェックをパスするか否かを判定する（ステップＳ１０６）。ＳＤＢ２２上で受信したデータのパリティ・チェックによって、データがエラー無しで受信されたことが示された場合、ノード１２ｂはＳＤＢ２２のデータ・バイトを用いる（ステップＳ１０８）。ＳＤＢ２２上で受信したデータの評価（パリティ・チェック）によって、エラーが存在すると判定された場合（ステップＳ１０６）、ノード１２ｂは、ノード１２ａに、再送信要求および非確認応答のいずれかまたはその両方を送信する（ステップＳ１１０）。ＳＤＡ２０およびＳＤＢ２２の少なくとも一方で受信されたデータのパリティ・チェックによってエラーが明らかになった場合は、システムは、長期的または重大な状況が存在するか否かを判定するための診断を開始してもよい。データの受信が成功した場合には、ノード１２ｂは、双方向ＳＤＡ２０およびＳＤＢ２２上で、または、ノード１２ｂからノード１２ａへの通信をサポートするために用いる単方向性の送信器／受信器対上で、確認応答を送信する。
【００２６】
本発明は、ハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組み合わせにおいて実現可能である。本発明の方法およびシステムの実装は、１つのコンピュータ・システムにおいて集中化して、または、いくつかの相互接続したコンピュータ・システム間で異なる要素を分散させた分散型で、実現可能である。本明細書に記載した方法を実行するために適合されたいかなる種類のコンピュータ・システムまたは他の装置も、本明細書に記載した機能を実行するために適している。
【００２７】
ハードウェアおよびソフトウェアの典型的な組み合わせは、コンピュータ・プログラムを有する汎用コンピュータ・システムであり、このコンピュータ・プログラムがロードされて実行されると、コンピュータ・システムを制御して、本明細書に記載された方法を実行するようにすることができる。また、本発明は、コンピュータ・プログラムとして実装することができる。このプログラムは、本明細書に記載した方法の実施を可能とする全ての機構を含み、コンピュータ・システムにロードされるとこれらの方法を実行することができる。
【００２８】
ここで、コンピュータ・プログラムまたはアプリケーションは、任意の言語・コード・表記によって表現可能な命令群から構成される。そのような命令群は、情報処理システムが特定の機能を直接、または（ａ）他の言語・コード・表記への変換、（ｂ）他の媒体への複製、のいずれか一方もしくは双方が行われた後に、実行することを可能にするものである。重大なことは、本発明は、その精神または本質から逸脱することなく、他の特定の形態で具現化することができ、従って、本発明の範囲を示すものとして、前述の発明の詳細な説明でなく、特許請求の範囲を参照しなければならない。
【図面の簡単な説明】
【００２９】
【図１】本発明の原理に従って構成された通信システムのブロック図である。
【図２】従来技術のＩＣ２通信システムのタイミング図である。
【図３】本発明の原理に従って構成されたパリティ・ビットを用いるデータ信号のタイミング図である。
【図４】各々が本発明の原理に従って構成されたパリティ・ビットを有する冗長データ信号のタイミング図である。
【図５】本発明のデータ通信プロセスのフロー・チャートである。
【図１】
0005250767.tif 000002
【図２】
0005250767.tif 000003
【図３】
0005250767.tif 000004
【図４】
0005250767.tif 000005
【図５】
0005250767.tif 000006