(57)【要約】【課題】データパケットを伝送するための相互接続装置において、致命的なエラーが生じた場合でも短いダウンタイムですむ相互接続装置を提供する。【解決手段】データパケットを伝送するための相互接続装置は、複数のポート２５ａ〜２５ｊ、ハブ２４、およびアービタ２２を含む。ハブは、複数のポートを接続し合うように構成される。アービタは、ハブとポートとの間のデータパケットの伝送を制御するためにハブに結合される。リセット３４、３６、３８、４０が、ポートの少なくとも１つに提供される。リセットは、ポート内で検出されたエラーに応答してアービタがそのポートをリセットできるように、アービタと通信する。【選択図】図２
2006087102.tif 000002
【特許請求の範囲】
【請求項１】
データパケットを伝送するための相互接続装置であって、
複数のポートと、
前記複数のポートを接続するハブと、
前記ハブに結合されており、該ハブと前記ポートとの間のデータパケットの伝送を制御するアービタと、
前記ポートの少なくとも１つのポート内および前記アービタ内のリセットブロックであって、前記少なくとも１つのポートで検出されたエラーに応答して前記少なくとも１つのポートをリブートするように前記リセットブロックを前記アービタが起動できるよう、前記アービタと通信するリセットブロックと、
を備えている相互接続装置。
【請求項２】
前記アービタが、前記相互接続装置の外部からのソフトウェア介入なしに前記少なくとも１つのポートをリセットする、請求項１に記載の相互接続装置。
【請求項３】
前記アービタが、前記相互接続装置に関する構成情報を失うことなく前記少なくとも１つのポートをリセットする、請求項１に記載の相互接続装置。
【請求項４】
前記複数のポートのそれぞれが、物理ブロックとリンクブロックとをさらに備えている、請求項１に記載の相互接続装置。
【請求項５】
前記リセットブロックが、前記複数のポートのそれぞれの前記物理ブロックおよび前記リンクブロック内に含まれる、請求項４に記載の相互接続装置。
【請求項６】
前記相互接続装置がリブートされたときに前記相互接続装置と通信していた相手とネゴシエートし、前記リブートによってフラッシュされたパケットを前記相手に再伝送できようにするように、前記アービタが構成されている、請求項１に記載の相互接続装置。
【請求項７】
前記アービタが、前記エラーによる影響を受けた前記ポートだけをリブートし、前記エラーによる影響を受けなかったポートをリブートしない、請求項１に記載の相互接続装置。
【請求項８】
前記アービタが、前記ポートのどれかが前記エラーによる影響を受けたときに、前記相互接続装置内の前記ポートのすべてをリブートする、請求項１に記載の相互接続装置。
【請求項９】
前記相互接続装置がスイッチのリブートのログをとり、それにより、該相互接続装置が、前記エラーと前記リブートに関して、あとでポーリングされ得るようにする、請求項１に記載の相互接続装置。
【請求項１０】
データパケットを送信するように構成されたハブによって接続されたアービタと複数のポートとを有する相互接続装置をリブートする方法であって、
前記複数のポート内のデータパケットの伝送においてポートにエラーが生じたことを検出するステップと、
前記エラーによる影響を受けたポートをアクティブ延期状態にするステップと、
前記相互接続装置内の前記アービタにより該相互接続装置のリブートを行って、前記エラーによる影響を受けたポートをリセットするステップと、
を含み、
前記相互接続装置のリブートが、前記相互接続装置の外部からのソフトウェア介入なしに行われる、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、相互接続装置に関し、特に、データパケットを伝送するための相互接続装置に関する。
【背景技術】
【０００２】
ＰＣＩ（Peripheral Component Interconnect）アーキテクチャなどの既存の多くのネットワーキング技術は、コンピュータシステムの開発に遅れをとってきた。そのような多くのシステムでは、インターネットの増え続けるトラフィックと需要が課題となっている。計算処理需要を満たし、また、サーバなどの処理ノード間で、ならびに中央処理装置（ＣＰＵ）と入出力（Ｉ／Ｏ）装置間の処理ノード内でデータを移動させるために高い能力を必要とする試みにおいて、いくつかの技術が実施されてきた。
そのような需要を満たす試みにおいて、改良された相互接続技術が実施されてきた。その１つの例は、ＩｎｆｉｎｉＢａｎｄ（登録商標）アーキテクチャ（以下では「ＩＢＡ」）と呼ばれる。ＩＢＡは、カスケード式のスイッチ装置を利用してエンドノード装置を相互接続することができるポイントツーポイントスイッチ型ファブリックの中心となる。ＩＢＡは、多数のホストと様々な入出力機構を相互接続しあるいはＣＰＵといくつかの入出力モジュール間を相互接続するために実施することができる。ＩＢＡのような相互接続技術は、データ（または、データパケット）を発信元から宛先に導く、複数の入力ポートと出力ポートとを有するスイッチ、ルータ、リピータ、および／またはアダプタを利用する。そのように相互接続ネットワークの需要は、帯域が高くなり速度要件が高くなるほど大きくなるので、この需要に追いつくために、ネットワークの様々な構成要素の性能と可用性が向上し続けることが必要である。以上その他の理由のために本発明が必要とされる。
【発明の開示】
【０００３】
本発明の１つの態様は、データパケットを伝送するための相互接続装置を提供する。この相互接続装置は、複数のポート、ハブ、およびアービタを含む。ハブは、複数のポートを接続し合うように構成される。アービタは、ポート間のデータパケットの伝送を制御するためにハブに結合される。ポートとアービタに複数のリセットが提供される。リセットは、エラーが検出されたときにポートが他のポートとアービタをリセットすることができ、またアービタが他のポートをリセットすることができるように通信する。
【発明を実施するための最良の形態】
【０００４】
添付図面は、本発明をさらによく理解するために含まれ、本明細書に含まれまたその一部を構成する。図面は、本発明の実施形態を示し、説明と共に本発明の原理を説明する役割をする。本発明の他の実施形態ならびに本発明の意図された利点の多くは、以下の詳細な説明を参照することによってより良く理解されたときに容易に評価される。図面の要素は、必ずしも互いに対して一律の縮尺ではない。同じ参照数字は対応する類似の部分を指す。
【０００５】
以下の詳細な説明において、詳細な説明の一部を構成しまた本発明を実施できる実例に固有の実施形態によって示した添付図面を参照する。この点において、「上」、「下」、「前」、「後ろ」、「先」、「後」などの方向を示す用語は、説明する図の向きに関して使用される。本発明の実施形態の構成要素はいくつかの異なる向きに配置することができるので、この方向を示す用語は、説明のために使用されており、決して限定ではない。本発明の範囲を逸脱することなく他の実施形態を利用することができ、また構造的または論理的変更を行うことができることを理解されたい。したがって、以下の詳細は、限定の意味ではなく、本発明の範囲は添付の特許請求の範囲によって定義される。
【０００６】
図１は、ネットワークシステム１０を示すブロック図である。ネットワーク１０は、サブネットとも呼ばれるネットワークまたはサブネットワークでもよく、このサブネットは、ルータによって他のサブネットと相互接続されてさらに大きなネットワークを構成する。ネットワーク１０内では、単一のサブネットまたは複数のサブネットにエンドノードを接続することができる。ネットワーク１０は、任意のタイプの交換網でよい。例えば、ネットワーク１０は、保護されリモートで管理された環境で複数の装置が高帯域でかつ低い待ち時間で同時に通信することを可能にする交換通信ファブリックを定義するＩｎｆｉｎｉＢａｎｄ（登録商標）アーキテクチャ（以下では「ＩＢＡ」）である。ＩｎｆｉｎｉＢａｎｄ（登録商標）産業団体は、相互接続技術の動作基準を列挙したＩＢＡ仕様を開発し公表した。ネットワーク１０は他の交換網も表す。
【０００７】
ネットワーク１０は、ネットワーク１０内にある４つのエンドノード１２ａ、１２ｂ、１２ｃ、および１２ｄを図示する。当業者に知られているように、エンドノードはいくつかの異なる装置を表すことができ、その例には、ＲＡＩＤ（独立ディスク冗長アレイ）サブシステムのような、プロセッサエンドノード、ネットワークへのルータ、または入出力装置がある。また、スイッチ１４ａ、１４ｂ、１４ｃ、１４ｄおよび１４ｅが示されている。さらに、ネットワーク１０は、ルータ１６とサブネットマネージャ１８とを含む。ネットワーク１０内の任意の２つの装置間に複数のリンクがあってもよく、その例は、ルータ１６とスイッチ１４ｄの間の接続によって示される。
【０００８】
スイッチ１４ａ、１４ｂおよび１４ｃは、通信のためにエンドノード１２ａ、１２ｂ、１２ｃおよび１２ｄを接続する。エンドノード１２ａ、１２ｂ、１２ｃおよび１２ｄと、スイッチ１４ａ、１４ｂおよび１４ｃとの間の各接続は、ポイントツーポイント直列接続である。接続がポイントツーポイントなので、ＰＣＩバス内に使用されている共有バス接続要件とは対照的に、エンドノード１２ａ、１２ｂ、１２ｃおよび１２ｄをスイッチ１４ａ、１４ｂおよび１４ｃに接続する４つの個別の接続が必要である。
【０００９】
ネットワーク１０内の様々な接続例を提供するために、図１には５つ以上の別個の接続が示されることに注意されたい。さらに、各ポイントツーポイント接続が、エンドノード１２ａ、１２ｂ、１２ｃおよび１２ｄと、スイッチ１４ａ、１４ｂ、１４ｃ、１４ｄおよび１４ｅなどの２つの装置に専用化されるので、２つの装置間の通信には各接続の最大帯域容量が利用可能になる。この専用化によって、バスの競合がなくなり、また共用バスアーキテクチャの厳しい負荷条件に起因する遅延がなくなる。
【００１０】
また、ネットワーク１０内にあるエンドノード１２ａ、１２ｂ、１２ｃおよび１２ｄがさらに多くても少なくてもよいことに注意されたい。ルータ１６は、データパケットの送受信のためにネットワーク１０からリモートサブネットへの接続を提供する。さらに、エンドノード１２ａ、１２ｂ、１２ｃおよび１２ｄは、ネットワーク１０内にある任意の論理装置でよい。例えば、エンドノード１２ａ、１２ｂ、１２ｃおよび１２ｄは、プロセッサノードおよび／または入出力装置である。
【００１１】
スイッチ１４ａ、１４ｂ、１４ｃ、１４ｄおよび１４ｅの構造とこのスイッチで実行される機能により、それぞれのスイッチは、エンドノード１２ａ、１２ｂ、１２ｃおよび１２ｄから別のエンドノード１２ａ、１２ｂ、１２ｃおよび１２ｄへのデータパケットの流れ、エンドノード１２ａ、１２ｂ、１２ｃおよび１２ｄからルータ１６へのデータパケットの流れ、あるいはルータ１６からエンドノード１２ａ、１２ｂ、１２ｃおよび１２ｄへのデータパケットの流れを制御することができる。
【００１２】
スイッチ１４ａ、１４ｂ、１４ｃ、１４ｄおよび１４ｅは、宛先アドレスに基づいてデータのパケットを送り、この宛先アドレスはデータパケットのローカルルートヘッダ内にある。しかしながら、スイッチ１４ａ、１４ｂ、１４ｃ、１４ｄおよび１４ｅは、ネットワーク１０内をパケットが横切る際に直接アドレス指定されない。その代わりに、パケットは、実質的変化なしにスイッチ１４ａ、１４ｂ、１４ｃ、１４ｄおよび１４ｅを横切る。この目的のために、ネットワーク１０内の各宛先は、一般に、スイッチ１４ａ、１４ｂ、１４ｃ、１４ｄおよび１４ｅを通る経路を表す１つまたは複数の固有ローカル識別子によって構成される。
【００１３】
スイッチ１４ａ、１４ｂ、１４ｃ、１４ｄおよび１４ｅによるデータパケット転送は、一般に、各スイッチ１４ａ、１４ｂ、１４ｃ、１４ｄおよび１４ｅ内にある転送テーブルによって定義され、各スイッチ内のテーブルは、サブネットマネージャ１８によって構成される。各データパケットは、宛先に到達するためのローカル識別子を指定する宛先アドレスを含む。スイッチ１４ａ、１４ｂ、１４ｃ、１４ｄおよび１４ｅが個々のデータパケットを受け取ると、そのデータパケットは、スイッチ１４ａ、１４ｂ、１４ｃ、１４ｄおよび１４ｅ内で、スイッチ１４ａ、１４ｂ、１４ｃ、１４ｄおよび１４ｅ内にある転送テーブルと宛先ローカル識別子とに基づいてアウトバウンドポートに転送される。
【００１４】
ルータ１６は、パケットをパケット内にあるグローバルルートヘッダに基づいて転送し、パケットがサブネットからサブネットに渡るときにパケットのローカルルートヘッダを置き換える。スイッチ１４ａ、１４ｂ、１４ｃ、１４ｄおよび１４ｅによってサブネット内ルーティングが行われるが、ルータ１６は、サブネット間ルーティングの基本的なルーティング構成要素である。したがって、ルータは、パケットが宛先サブネットに到着するまでパケットをサブネット間で中継することによってサブネットを相互接続する。エンドノードなどの追加の装置がサブネットに追加されたときは、通常、サブネット内の追加のパケット伝送を処理するために追加のスイッチが必要である。しかしながら、エンドノードを追加してもスイッチの追加が必要ではなく、それにより追加のスイッチの購入に関連する資源の費用が削減されるならば、有益である。
【００１５】
前述のように、ネットワーク１０は、例としてＩＢＡとして示すことができる。したがって、ネットワーク１０は、ＩＢＡスイッチを使用して、ＩＢＡなどのネットワーク内のデータパケットのフロー制御を実現することができる。しかしながら、スイッチがＩＢＡと関連して利用されることは必要でないことに注意されたい。さらに、ＩＢＡスイッチのようなスイッチの構造により、ネットワーク１０へのエンドノードの追加を補うため、またエンドノードの追加と関連した追加のパケットフローを補うために、示したスイッチを容易に改良することができる。当業者は、ネットワーク１０内で他のクロスバー・スイッチおよび関連スイッチを使用できることを理解するであろう。
【００１６】
スイッチ１４ａ、１４ｂ、１４ｃ、１４ｄおよび１４ｅが、エンドノード１２ａ、１２ｂ、１２ｃおよび１２ｄにとって透過的であり、すなわちこれらのスイッチは直接アドレス指定されない（管理作業を除き）。その代わりに、パケットは、実質的変化なしにスイッチ１４ａ、１４ｂ、１４ｃ、１４ｄ、および１４ｅを横切る。この目的のために、ネットワーク１０内のすべての宛先は、１つまたは複数の固有ローカル識別子（ＬＩＤ）によって構成される。スイッチ１４の視点から見ると、ＬＩＤはスイッチを通る経路を表す。パケットは、宛先のＬＩＤを指定する宛先アドレスを含む。各スイッチ１４ａ、１４ｂ、１４ｃ、１４ｄおよび１４ｅは、パケットがパケットのＬＩＤに基づいてスイッチ１４ａ、１４ｂ、１４ｃ、１４ｄおよび１４ｅ内でとる経路を指定する転送テーブル（図示せず）によって構成される。個々のパケットは、スイッチ１４ａ、１４ｂ、１４ｃ、１４ｄおよび１４ｅ内で、パケットの宛先ＬＩＤとスイッチ１４ａ、１４ｂ、１４ｃ、１４ｄおよび１４ｅの転送テーブルとに基づいてアウトバウンドポートに転送される。ＩＢＡスイッチは、ユニキャスト転送（単一パケットの単一場所への送付）をサポートし、マルチキャスト転送（単一パケットの複数宛先への送付）をサポートすることができる。
【００１７】
サブネットマネージャ１８は、転送テーブルを各スイッチ１４ａ、１４ｂ、１４ｃ、１４ｄおよび１４ｅにロードすることによってスイッチ１４ａ、１４ｂ、１４ｃ、１４ｄおよび１４ｅを構成する。可用性を最大にするために、スイッチファブリック内には、エンドノード１２ａ、１２ｂ、１２ｃおよび１２ｄ間の複数の経路を展開することができる。スイッチ１４ａ、１４ｂ、１４ｃ、１４ｄおよび１４ｅ間で複数の経路が使用できる場合、サブネットマネージャ１８は、冗長化のためあるいは宛先ＬＩＤベースの負荷分散のために、そのような経路を使用することができる。複数の経路がある場合、サブネットマネージャ１８は、ファブリックの影響を受ける領域内のスイッチの転送テーブルをロードしなおすことによって、障害のあるリンクを迂回してパケットを再び送ることができる。
【００１８】
図２は、本発明の例示的な実施形態による、図１のスイッチ１４ａ、１４ｂ、１４ｃ、１４ｄ、１４ｅなどのスイッチ２０をさらに示すブロック図である。スイッチ２０は、アービタ２２、クロスバーまたは「ハブ」２４、および複数のポート２５ａ〜２５ｊ（集合的に「ポート２５」と呼ぶ）を含む。例示のため、スイッチ２０内には、８つの入出力ポート２５ａ〜２５ｈ、内蔵自己診断（ＢＩＳＴ）ポート２５ｉ、および管理ポート２５ｊが示されている。スイッチ２０および／または他のネットワーク要素に接続されたエンドノードとルータの数により、スイッチ２０内にあるポート２５はこれよりも多くても少なくてもよいことに注意されたい。
【００１９】
スイッチ２０は、データパケットを発信元エンドノードから宛先エンドノードに導き、同時にデータパケットのフロー制御を実現する。当業者によって知られているように、データパケットは、少なくとも１つのヘッダ部、データ部、および巡回冗長符号（ＣＲＣ）部を含む。ヘッダ部は、少なくとも１つの発信元アドレス部、宛先アドレス部、データパケットサイズ部、および仮想レーン識別番号を含む。さらに、データパケットをエンドノードから送る前に、データパケットのＣＲＣ値が計算されデータパケットに添付される。
【００２０】
スイッチ２０において、入出力ポート２５ａ〜２５ｈはそれぞれ、入力モジュールと出力モジュールを含み、それぞれハブ２４を介して接続される。スイッチ２０の各入出力ポート２５ａ〜２５ｈは、一般に、リンクブロック２７ａ〜２７ｈ（集合的に「リンクブロック２７」と呼ぶ）と物理ブロック（「ＰＨＹ」）２９ａ〜２９ｈ（集合的に「ＰＨＹブロック２９」と呼ぶ）からなる。１つの実施形態において、ハブ２４は、管理機能のために２つのポートが予約された１０ポート装置である。例えば、そのような管理機能には、ＢＩＳＴポート２５ｉと管理ポート２５ｊがある。ＢＩＳＴブロック２５ｉは、内蔵自己診断機能を支援する。８つの通信ポート２５ａ〜２５ｈはハブ２４に結合され、それぞれアービタ２２に資源要求を出し、それぞれアービタ２２から資源許可を受け取る。当業者が理解するように、これよりも多いかまたは少ないポート２５を使用することもできる。例えば、別の実施形態は、１８の通信ポートと管理機能に予約された２つのポートの２０のポートを有する。
【００２１】
ＰＨＹブロック２９は、主に、シリアル化／デシリアル化（ＳｅｒＤｅｓ）装置として働く。リンクブロック２７は、入力バッファ、受信（「ＲＸ」）、送信（「ＴＸ」）、およびフロー制御を含むいくつかの機能を実行する。リンクブロック２７の入力バッファ（図２に示していない）には、入力仮想レーン（ＶＬ）が物理的に含まれる。リンクブロック２７が実行できる他の機能には、整合性チェック（integrity checking）、リンク状態および状況、エラー検出と記録、フロー制御生成、および出力バッファリングが含まれる。
【００２２】
ハブ２４がポート２５ａ〜２５ｊを相互接続している間、アービタ２２は、ハブ２４を介したポート２５ａ〜２５ｊ間の相互接続を制御する。具体的には、ハブ２４は、データパケットをあるポート２５から別のポート２５に導くことができる一連のポイントツーポイント有線接続を含む。アービタ２２は、要求プリプロセッサと資源アロケータを含む。要求プリプロセッサは、受け取ったデータパケットを宛先エンドノードに送るために使用されるスイッチ２０内のポート２５を決定する。受け取ったデータパケットを宛先エンドノードに送るために使用されるポート２５を本明細書では出力ポート（outgoing port）とも呼ぶことに注意されたい。
【００２３】
例示のため、以下では、出力ポートがポート２５ｄ、発信元ポートがポート２５ａであると仮定する。出力ポート２５ｄを決定するために、要求プリプロセッサは、受け取ったデータパケットのヘッダ内に記憶された宛先アドレスを使って要求プリプロセッサ内にあるルーティングテーブルにインデックスを付け、受け取ったデータパケットの出力ポート２５ｄを決定する。また、アービタ２２は、出力ポート２５ｄの可用性を決定し、受け取ったデータパケットのスイッチ２０を介した宛先エンドノードへの送信を調整する。
【００２４】
場合によって、スイッチ２０内のデータパケットの送信で、致命的で回復不可能な制御エラーなどのエラーが生じることがある。スイッチ制御ロジックがあいまいな状態またはイリーガルな状態になったり適切に処理できない予期しないイベントが生じたりしたときに致命的な制御エラーが起こることがある。前述のように、サブネットマネージャ１８は、スイッチの転送テーブルをロードしなおすことによって、エラーが発生したような障害のあるリンクを迂回してパケットを送り直すことができる。さらに、サブネットマネージャ１８は、一般に、致命的な制御エラーが起きた装置のリセットも行う。例えば、スイッチ２０のポート２５ａのデータパケットをポート２５ｄに送る際に致命的エラーが発生した場合、サブネットマネージャ１８は、別のスイッチを通るようにデータパケットの経路を変更することができ、次に装置リブートによりスイッチ２０をリセットする。
【００２５】
スイッチ２０のそのような装置リブートは、装置をその電源投入時の状態にリセットする。そのようなリブートによって、スイッチ２０のポートが初期化された状態になる。サブネットマネージャ１８によるこのリセットによって、スイッチ２０は、その構成情報をすべて失い、したがってサブネットマネージャ１８内にある管理ソフトウェアは、スイッチ２０を初期状態から再構成しなければならない。場合によって、サブネットマネージャ１８によるこのスイッチ２０の再構成プロセスは、再構成を完了するためにサブネットマネージャ１８からスイッチ２０に５００を超える管理パケットの転送を必要とすることがある。この多数のパケットの転送には、スイッチ２０の０．５秒もの長いダウンタイムがかかり、それにより速度が低下し、ネットワーク１０の全体的性能が低下することがある。
【００２６】
図３は、本発明によるスイッチ２０の一部を示すブロック図である。より具体的には、図３は、入出力ポート２５ａ、アービタ２２および管理ポート２５ｊのより詳細な図を示す。ポート２５ａは、バッファブロック２６ａ、リンクブロック２７ａ、ＰＨＹ／リンクインタフェース２８ａ、およびＰＨＹブロック２９ａを含む。さらに、アービタ２２はリセットブロック３２を含み、バッファブロック２６ａはリセットブロック４０を含み、リンクブロック２７ａはリセットブロック３８を含み、ＰＨＹ／リンクインタフェース２８ａはリセットブロック３６を含み、ＰＨＹブロック２９ａはリセットブロック３４を含み、管理ポート２５ｊはリセットブロック４２を含む。説明を単純化するために、図２に示した入出力ポート２５ｂ〜２５ｈなどの他のポートは、図３に示していないが、そのようなポートの詳細は、示したポート２５ａと同じように構成することができる。
【００２７】
また、当業者は、図３に示したようなスイッチ２０と後で説明するようなその動作が、そのようなシステムを概略的に表すように意図され、任意の特定のスイッチが、特に構成と動作の詳細において図３に示したものと大きく異なる場合があることを理解されよう。さらに、創意に富む機能の特徴に注目するために、本発明に関係する機能要素だけを描写した。したがって、スイッチ２０は、本明細書に示した発明に関する説明および例示と見なされ、ここに記載された発明のみに限定されない。
【００２８】
図示したポート２５ａは、スイッチの物理的動作と関連した機能を実行するように動作可能なＰＨＹブロック２９ａを含む。ＰＨＹ／ＬＩＮＫブロック２８ａは、物理的スイッチ動作と論理的スイッチ動作の間のスイッチインタフェースとして働く。リンクブロック２７ａは、ハブ２４を使用したリモート位置へのデータの転送と関連した機能を含む。バッファブロック２６ａは、ハブ２４を横切るパケットの送受信と関連したスイッチ固有の動作を実行する。アービタ２２は、スイッチ２０を横切る転送のための要求を管理し、スイッチ２０がパケットをハブ２４を横切って競合なしに転送し同時に複数のエンドユーザから出されたデータパケットの要求を満たすことを保証する。
【００２９】
ポート２５ａは、また、それぞれＰＨＹブロック２９ａ、ＰＨＹ／リンクインタフェース２８ａ、リンクブロック２７ａおよびバッファブロック２６ａ内に、リセットブロック３４、３６、３８および４０を含む。同様に、アービタブロック２２と管理ポート２５ｊは、リセットブロック３２と４２を備える。アービタ２２と管理ポート２５ｊがスイッチ２０を横切る転送のための要求を管理し、ポート２５ａを介した転送にエラーが生じたときは、リセットブロック３２〜４２をアービタ２２および管理ポート２５ｊと共に利用して、サブネットマネージャ１８の介入なしにポート２５ａをリブートすることができる。実際に、リセットブロック３２〜４２を使用することによって、スイッチ２５のリブートをサブネットマネージャ１８にとって透過的にすることができる。その結果、本発明のスイッチ２０は、エラーが発生したときに、伝送管理パケットを回避する管理ソフトウェアを必要とすることなくリブートすることができ、それによりネットワーク１０の速度と全体の性能が向上する。このように、スイッチ２０の１つの実施形態では、スイッチ２０内のリブートとエラー回復は１００マイクロ秒もからない。
【００３０】
アービタ２２や他のポート２６ａ〜２９ａが、リセットブロック３２〜４２と協力して、サブネットマネージャ１８の介入なしにスイッチ２０のポート２５ａ（ならびに他のポート２５ｂ〜２５ｈ）をリブートすることができるので、スイッチ２０に制御エラーのようなエラーが発生するたびにスイッチ２０を再構成する必要がない。アービタ２２は、リセットブロック３２〜４２と協力して、スイッチ２０の構成設定を失うことなくスイッチ２０をリブートすることができる。スイッチ２０を再構成する必要がないため、構成パケットの伝送を必要としないので時間が節約され、ネットワーク１０がより高い可用性を提供しかつより効率的に動作することができる。
【００３１】
１つの実施形態において、本発明によるスイッチ２０は、ＰＨＹブロック２９に既に組み込まれているエラー回復プロトコルを利用する。例えば、スイッチ２０がＩＢＡスイッチの場合、ＩＢＡは、ＩＢＡスイッチ内のポートのＰＨＹブロック内にエラー回復プロトコルを定義する。このエラー回復プロトコルは、ＩＢＡスイッチに発生した物理的エラーを処理するためにＩＢＡスイッチに組み込まれる。エラー回復プロトコルは、状態機械の破損のような致命的エラーがスイッチに生じたことを検出する。そのような制御エラーは、オンチップロジックによって検出される。本発明の１つの実施形態によるスイッチ２０の例えばポート２５ａで致命的に制御エラーが生じたとき、エラー回復プロトコルが、エラーが検出されたという事実を示す信号を生成し、リブートを実行するためにリセット３２〜４２が活動化される。
【００３２】
ポート２５ａ〜２５ｈが既知の制御エラーを使用するので、スイッチ２０と通信する装置は、スイッチ２０またはスイッチ２０の少なくともポート２５ａがリブートされている場合でも、スイッチ２０に物理的エラーが生じたことを認識する。ポート２５ａ〜２５ｈの致命的な制御エラーが生じたとき、ポートと通信している装置には、ポートが、まるでアクティブ延期状態にあるかのように見える。リブートの際に既知のエラー状態を使用することによって、他のスイッチおよび構成要素との通信は中断されず、さもなければ未知の状態エラーを引き起こす。
【００３３】
１つの実施形態において、それぞれリセットブロックを含むポート２５ａ〜２５ｈは、ポート２５ａについて説明され、それぞれは個別に活動化することができる。このように、アービタ２２は、エラーの影響を受けたスイッチ２０の個々ポートだけをリセットすればよく、影響を受けていないスイッチのポートは、リセットされる他のポートにとって透過的なパケットを送信し続ける。別の実施形態において、様々なポート２５ａ〜２５ｈのリセットブロックはすべて、アービタ２２が任意のポート２５ａ〜２５ｈのエラーを検出したときに、すべてのポート２５ａ〜２５ｈのリセットを活動化するように結合される。このように、ポート２５ａ〜２５ｈのどれにも致命的な制御エラーが生じたとき、アービタ２２は、すべてのポート２５ａ〜２５ｈのリセットブロックを活動化する。いずれの場合も、サブネットマネージャ１８との対話なしにスイッチ２０でリセットが行われ、それにより、スイッチを再構成する必要が回避され、処理時間が節約される。
【００３４】
スイッチ２０に致命的な制御エラーが生じたとき、エラーの影響を受けたポートは、通常、例えば別のスイッチのポートやエンドノードなどの相手と通信している。スイッチ２０内のアービタ２２は、致命的な制御エラーがいつ生じたかを追跡し、ポート２５ａ〜２５ｈ内のリセットブロックを起動する他に、アービタ２２は、リセットによってフラッシュされたパケットを追跡し、それによりエラーが生じたポートと通信していた相手とネゴシエートすることができる。リセットにより、影響を受けたポートからパケットがフラッシュされる場合がある。その場合、アービタ２２は、リブート後に通信相手との通信が再び確立された後で、リセットによって失われたパケットをリセットされたポートと通信していた相手に送ることができる。アービタ２２は、また、どのポートがエラーによる影響を受けていないかを追跡し、そのような影響を受けていないポートがリセットされない状況では、そのような影響を受けていないポートと通信している相手とのネゴシエーションは必要とされない。
【００３５】
この場合も、失われたパケットの追跡と致命的エラーによる影響を受けたポートと通信していた相手とのネゴシエーションがアービタ２２によって処理されるので、サブネットマネージャ１８の介入は不要であり、したがって、サブネットマネージャ１８は、影響を受けたスイッチ２０のソフトウェアセットアップを必要としない。実際に、本発明により、スイッチ２０内のエラーの発生とその結果のリブートは、サブネットマネージャ１８にとって透過的になる。スイッチ２０のポート内にエラーのイベントのログをとってもよく、それによりサブネットマネージャ１８は、後でスイッチに何が起きたかを知ることができる。
【００３６】
本明細書で特定の実施形態を示し説明したが、当業者は、本発明の範囲から逸脱することなく、示し説明した特定の実施形態を様々な代替および／または等価な実施形態と置き換えることができることを理解されよう。この出願は、本明細書で説明した特定の実施形態の任意の適応または変形を対象として含むように意図されている。したがって、本発明は、特許請求の範囲とその等価物によってのみ限定されるように意図されている。
【図面の簡単な説明】
【００３７】
【図１】ネットワークシステムを示すブロック図である。
【図２】スイッチを示すブロック図である。
【図３】本発明によるスイッチのさらなる詳細を示すブロック図である。
【符号の説明】
【００３８】
１０：ネットワーク
１２ａ、１２ｂ、１２ｃ、１２ｄ：エンドノード
１４ａ、１４ｂ、１４ｃ、１４ｄ、１４ｅ：スイッチ
１６：ルータ
１８：サブネットマネージャ
【図１】
2006087102.tif 000003
【図２】
2006087102.tif 000004
【図３】
2006087102.tif 000005