(57)【特許請求の範囲】
【請求項１】
第１のＰＣＩＥブリッジと第１の入出力（ＩＯ）デバイスとの間の接続についてフェイルオーバー動作を提供するための方法であって、
前記第１のＰＣＩＥブリッジと前記第１のＩＯデバイスとの間で、前記第１のＰＣＩＥブリッジの第１のレーン・セットを用いて第１のリンクを介してバス上で伝送するデータ・ビットの第１のセットを交換することと、
前記第１のリンクにおける故障の検出に応答して、前記第１のＰＣＩＥブリッジと前記第１のＩＯデバイスとの間で、前記第１のＰＣＩＥブリッジの第２のレーン・セットを用いて、第２のＰＣＩＥブリッジを第２のＩＯデバイスに接続する第２のリンクを介して、バス上で伝送するデータ・ビットの第２のセットを交換するために、ＰＣＩＥブリッジ・エンドにおいて、前記第１のレーン・セットの使用から前記第２のレーン・セットの使用にスワップすることと、
前記第１のリンクにおける前記故障の検出に応答して、前記第１のＰＣＩＥブリッジと前記第１のＩＯデバイスとの間で、前記第２のレーン・セットを用いて前記第２のリンクを介して前記第２のセットを交換するために、ＩＯデバイス・エンドにおいて、前記第１のレーン・セットの使用から前記第２のレーン・セットの使用にスイッチすることと、
を含む、方法。
【請求項２】
前記第１のリンクにおける前記故障の検出に応答して、前記第１のレーン・セットの使用を停止するように前記第１のＰＣＩＥブリッジをコンフィギュレーションすることを更に含む、請求項１に記載の方法。
【請求項３】
前記第１のリンクにおける前記故障の検出の前に、前記第２のリンクを介して、前記第２のＰＣＩＥブリッジと前記第２のＩＯデバイスとの間で、前記第２のＰＣＩＥブリッジの第３のレーン・セットを用いて、バス上で伝送するデータ・ビットの第３のセットを交換することと、
前記第１のリンクにおける前記故障の検出に応答して、前記第３のレーン・セットの使用を停止するように前記第２のＰＣＩＥブリッジをコンフィギュレーションすることを更に含む、請求項１に記載の方法。
【請求項４】
前記第１および第２のＰＣＩＥブリッジの各々がＰＣＩＥホスト・ブリッジ（ＰＨＢ）を含む、請求項１に記載の方法。
【請求項５】
前記第１および第２のＩＯデバイスの各々がＰＣＩＥスイッチを含む、請求項１に記載の方法。
【請求項６】
前記第１および第２のＰＣＩＥブリッジがＰＣＩＥルート・コンプレックスに収容されている、請求項１に記載の方法。
【請求項７】
第１のＰＣＩＥブリッジと第１の入出力（ＩＯ）デバイスとの間の接続についてフェイルオーバー動作を提供するための装置であって、
前記第１のＰＣＩＥブリッジを前記第１のＩＯデバイスに接続する第１のリンクであって、前記第１のＰＣＩＥブリッジと前記第１のＩＯデバイスとの間で、前記第１のＰＣＩＥブリッジの第１のレーン・セットを用いて第１のリンクを介してバス上で伝送するデータ・ビットの第１のセットを交換するために用いられる、第１のリンクと、
第２のＰＣＩＥブリッジを第２のＩＯデバイスに接続する少なくとも１つの第２のリンクと、
を含み、前記第１のリンクにおける故障の検出に応答して、前記第１のＰＣＩＥブリッジと前記第１のＩＯデバイスとの間で、前記第１のＰＣＩＥブリッジの第２のレーン・セットを用いて前記第２のリンクを介してバス上で伝送するデータ・ビットの第２のセットを交換するために、ＰＣＩＥブリッジ・エンドにおいて、前記第１のＰＣＩＥブリッジが前記第１のレーン・セットの使用から前記第２のレーン・セットの使用にスワップし、
更に、前記第１のＰＣＩＥブリッジと前記第１のＩＯデバイスとの間で、前記第２のレーン・セットを用いて前記第２のリンクを介して前記第２のセットを交換するために、ＩＯデバイス・エンドにおいて、前記第１のレーン・セットの使用から前記第２のレーン・セットの使用にスイッチするための少なくとも１つのスイッチを含む、装置。
【請求項８】
前記第１のリンクにおける前記故障の検出に応答して、前記第１のレーン・セットの使用を停止するように前記第１のＰＣＩＥブリッジがコンフィギュレーションされている、請求項７に記載の装置。
【請求項９】
前記第２のＰＣＩＥブリッジは、
前記第１のリンクにおける前記故障の検出の前に、前記第２のリンクを介して、前記第２のＩＯデバイスとの間で、前記第２のＰＣＩＥブリッジの第３のレーン・セットを用いて、バス上で伝送するデータ・ビットの第３のセットを交換し、
前記第１のリンクにおける前記故障の検出に応答して、前記第３のレーン・セットの使用を停止するようにコンフィギュレーションされている、請求項７に記載の装置。
【請求項１０】
前記第１および第２のＰＣＩＥブリッジが中央演算処理装置（ＣＰＵ）ファームウェアによって制御される、請求項７に記載の装置。
【請求項１１】
前記スイッチを制御するために前記第２のＩＯデバイスに接続され、前記ＣＰＵファームウェアによって制御される制御デバイスを更に含む、請求項１０に記載の装置。
【請求項１２】
前記第１および第２のＰＣＩＥブリッジの各々がＰＣＩＥホスト・ブリッジ（ＰＨＢ）を含む、請求項７に記載の装置。
【請求項１３】
前記第１および第２のＩＯデバイスの各々がＰＣＩＥスイッチを含む、請求項７に記載の装置。
【請求項１４】
前記第１および第２のＰＣＩＥブリッジがＰＣＩＥルート・コンプレックスに収容されている、請求項７に記載の装置。
【請求項１５】
第１のＰＣＩＥブリッジと第１の入出力（ＩＯ）デバイスとの間の接続についてフェイルオーバー動作を提供するためのコンピュータ・プログラムであって、
コンピュータ読み取り可能媒体であって、
前記第１のＰＣＩＥブリッジと前記第１のＩＯデバイスとの間で、前記第１のＰＣＩＥブリッジの第１のレーン・セットを用いて第１のリンクを介してバス上で伝送するデータ・ビットの第１のセットを交換し、
前記第１のリンクにおける故障の検出に応答して、前記第１のＰＣＩＥブリッジと前記第１のＩＯデバイスとの間で、前記第１のＰＣＩＥブリッジの第２のレーン・セットを用いて、第２のＰＣＩＥブリッジを第２のＩＯデバイスに接続する第２のリンクを介して、バス上で伝送するデータ・ビットの第２のセットを交換するために、ＰＣＩＥブリッジ・エンドにおいて、前記第１のレーン・セットの使用から前記第２のレーン・セットの使用にスワップし、
前記第１のリンクにおける前記故障の検出に応答して、前記第１のＰＣＩＥブリッジと前記第１のＩＯデバイスとの間で、前記第２のレーン・セットを用いて前記第２のリンクを介して前記第２のセットを交換するために、ＩＯデバイス・エンドにおいて、前記第１のレーン・セットの使用から前記第２のレーン・セットの使用にスイッチする、
ためのコードを含むコンピュータ読み取り可能媒体を含む、コンピュータ・プログラム。
【請求項１６】
前記第１のリンクにおける前記故障の検出に応答して、前記第１のレーン・セットの使用を停止するように前記第１のＰＣＩＥブリッジをコンフィギュレーションすることを更に含む、請求項１５に記載のコンピュータ・プログラム。
【請求項１７】
前記第１のリンクにおける前記故障の検出の前に、前記第２のリンクを介して、前記第２のＰＣＩＥブリッジと前記第２のＩＯデバイスとの間で、前記第２のＰＣＩＥブリッジの第３のレーン・セットを用いて、バス上で伝送するデータ・ビットの第３のセットを交換することと、
前記第１のリンクにおける前記故障の検出に応答して、前記第３のレーン・セットの使用を停止するように前記第２のＰＣＩＥブリッジをコンフィギュレーションすること
を更に含む、請求項１５に記載のコンピュータ・プログラム。
【請求項１８】
前記第１および第２のＰＣＩＥブリッジの各々がＰＣＩＥホスト・ブリッジ（ＰＨＢ）を含む、請求項１５に記載のコンピュータ・プログラム。
【請求項１９】
前記第１および第２のＩＯデバイスの各々がＰＣＩＥスイッチを含む、請求項１５に記載のコンピュータ・プログラム。
【請求項２０】
前記第１および第２のＰＣＩＥブリッジがＰＣＩＥルート・コンプレックスに収容されている、請求項１５に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、一般にＰＣＩＥ（Peripheral Component Interconnect Express）バスに関し、更に具体的には、マルチレーンＰＣＩＥ  ＩＯ相互接続にケーブル冗長性およびフェイルオーバーを与えるための方法および装置に関する。
【背景技術】
【０００２】
ＰＣＩ（PeripheralComponent Interconnect）規格は、１９９０年代初期に初めて導入された。フロントサイド・バスおよびプロセッサに接続されたＰＣＩブリッジ・チップを用いることによって、ＰＣＩは、ＰＣＩバスに接続されたあらゆる周辺デバイスに、コンピュータ・システム内のシステム・メモリに対する直接アクセスを提供する。ＰＣＩブリッジ・チップは、プロセッサの速度とは無関係にＰＣＩバスの速度を調節して、高い信頼性を達成可能であるようになっている。
【０００３】
ＰＣＩエクスプレス（ＰＣＩＥ）規格はＰＣＩ規格の後続であり、その関連物は引用により本願にも含まれるものとする。ＰＣＩエクスプレスは、ＰＣＩよりも少数の物理ピンで高い伝送レートを達成することができる。前世代のＰＣＩバスとは異なり、ＰＣＩエクスプレスはポイント・ツー・ポイント・バス・アーキテクチャを用いる。従って、ＰＣＩＥバス・システムを用いる２つのデバイス間のデータ・トランザクションのために、専用バスが用いられる。専用バスは、通信を行っているデバイス間のポイント・ツー・ポイント接続を確立するスイッチによって容易になる。このため、スイッチは中間デバイスとして用いられ、コンピュータ・システムにアタッチされた２つのデバイス間に物理的および論理的に位置している。
【０００４】
ＰＣＩＥスイッチは、コンピュータ・システムに対するデバイスのアタッチを容易にするために複数のポートを含む。デバイスとスイッチのポートとの間の物理的接続は一般にリンクと称される。各リンクは１つ以上のレーンを含み、各レーンは双方向でデータを伝送することができる。従って各レーンは全二重接続である。
【０００５】
単一レーンを含むリンクをｘ１リンクと呼ぶ。同様に、２つのレーンまたは４つのレーンを含むリンクを、それぞれｘ２リンクまたはｘ４リンクと呼ぶ。ＰＣＩエクスプレスは、ｘ１、ｘ２、ｘ４、ｘ８、ｘ１２、ｘ１６、およびｘ３２等の異なる幅のインタフェースをあらかじめ考慮しておくことで、様々な周辺デバイスの異なる帯域幅要件を満足させる。このため、専用バスは、１レーン、２レーン、４レーン、８レーン、１２レーン、１６レーン、または３２レーンの幅とすることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
多くの場合、最近のサーバ・クラスのコンピュータは、主なＩＯアダプタ技術としてＰＣＩ  ＩＯアダプタを用いる。ＣＰＵエンクロージャは、特定のサーバのＩＯオプションをカスタマイズするために限られた数のＰＣＩＥアダプタ・スロットを含むことが多い。しかしながら、ＣＰＵシャーシ・パッケージングは通例これを極めて少数のかかるスロットに限定し、一方で、シャーシ当たりのコンピュータ電力はマルチコア・プロセッサ・チップによって著しく大きくなっている。一般に、サーバは、１つ以上の追加の「ＩＯ拡張」シャーシにおいてＰＣＩアダプタ・スロットにＣＰＵを接続するための機構を提供する。例えば、ＰＣＩＥシステムでは、ＰＣＩホスト・ブリッジ（ＰＨＢ）とも称されるＰＣＩルート・ポート（ＰＲＰ）は、ＣＰＵ電子機器回路のコンポーネントであり、ＰＣＩバスを生成して、これが直接に単一のＰＣＩＥ  ＩＯアダプタ・スロットまたはＩＯ拡張シャーシにおけるＰＣＩＥスイッチのいずれかに接続する。ＩＯ拡張シャーシは、そのスイッチの下の多数のＰＣＩＥアダプタ・スロットにＰＨＢバスを拡張させる。ＩＯ拡張では、拡張シャーシに１つ以上のＰＣＩＥアダプタ・スロットを配置し、それらのスロットをＣＰＵシャーシ内のＰＨＢに接続する必要がある。
【０００７】
典型的に、これらのＩＯ拡張シャーシは物理的に異なる電子機器回路シャーシまたはエンクロージャであるので、ＣＰＵシャーシ内のＰＨＢとＩＯ拡張シャーシ内のＰＣＩＥアダプタ・スロットとの間の電子的接続には、これらのエンクロージャ間の物理的ケーブル接続が必要である。これらのケーブルは、ＰＨＢとＰＣＩＥアダプタ・スロットとの間で数インチを超える相互接続距離を必要とし、ＣＰＵおよびＩＯ拡張エンクロージャを含む異なる物理ラック間に延出する場合さえある。
【課題を解決するための手段】
【０００８】
本開示のいくつかの態様は、第１のＰＣＩＥブリッジと第１の入出力（ＩＯ）デバイスとの間の接続についてフェイルオーバー動作を提供するための方法を提供する。この方法は、概して、第１のＰＣＩＥブリッジと第１のＩＯデバイスとの間で、第１のＰＣＩＥブリッジの第１のレーン・セットを用いて第１のリンクを介して第１のバス伝送ビット・セットを交換することと、第１のリンクにおける故障の検出に応答して、第１のＰＣＩＥブリッジと第１のＩＯデバイスとの間で、第１のＰＣＩＥブリッジの第２のレーン・セットを用いて第２のリンクを介して第２のバス伝送ビット・セットを交換するために、ＰＣＩＥブリッジ・エンドにおいて、第１のレーン・セットの使用から第２のレーン・セットの使用にスワップすることであって、第２のリンクが第２のＰＣＩＥブリッジを第２のＩＯデバイスに接続する、ことと、第１のリンクにおける故障の検出に応答して、第１のＰＣＩＥブリッジと第１のＩＯデバイスとの間で、第２のレーン・セットを用いて第２のリンクを介して第２のバス伝送ビット・セットを交換するために、ＩＯデバイス・エンドにおいて、第１のレーン・セットの使用から第２のレーン・セットの使用にスイッチすることと、を含む。
【０００９】
本発明のいくつかの態様は、第１のＰＣＩＥブリッジと第１の入出力（ＩＯ）デバイスとの間の接続についてフェイルオーバー動作を提供するための装置を提供する。この装置は、第１のＰＣＩＥブリッジを第１のＩＯデバイスに接続する第１のリンクであって、第１のＰＣＩＥブリッジと第１のＩＯデバイスとの間で、第１のＰＣＩＥブリッジの第１のレーン・セットを用いて第１のリンクを介して第１のバス伝送ビット・セットを交換するために用いられる、第１のリンクと、第２のＰＣＩＥブリッジを第２のＩＯデバイスに接続する少なくとも１つの第２のリンクと、を含み、第１のリンクにおける故障の検出に応答して、第１のＰＣＩＥブリッジと第１のＩＯデバイスとの間で、第１のＰＣＩＥブリッジの第２のレーン・セットを用いて第２のリンクを介して第２のバス伝送ビット・セットを交換するために、ＰＣＩＥブリッジ・エンドにおいて、第１のＰＣＩＥブリッジが第１のレーン・セットの使用から第２のレーン・セットの使用にスワップし、更に、第１のＰＣＩＥブリッジと第１のＩＯデバイスとの間で、第２のレーン・セットを用いて第２のリンクを介して第２のバス伝送ビット・セットを交換するために、ＩＯデバイス・エンドにおいて、第１のレーン・セットの使用から第２のレーン・セットの使用にスイッチするための少なくとも１つのスイッチを含む。
【００１０】
本発明のいくつかの態様は、第１のＰＣＩＥブリッジと第１の入出力（ＩＯ）デバイスとの間の接続についてフェイルオーバー動作を提供するためのコンピュータ・プログラムを提供する。このコンピュータ・プログラムは、概して、コードを含むコンピュータ読み取り可能媒体を含む。このコードは、概ね、第１のＰＣＩＥブリッジと第１のＩＯデバイスとの間で、第１のＰＣＩＥブリッジの第１のレーン・セットを用いて第１のリンクを介して第１のバス伝送ビット・セットを交換し、第１のリンクにおける故障の検出に応答して、第１のＰＣＩＥブリッジと第１のＩＯデバイスとの間で、第１のＰＣＩＥブリッジの第２のレーン・セットを用いて第２のリンクを介して第２のバス伝送ビット・セットを交換するために、ＰＣＩＥブリッジ・エンドにおいて、第１のレーン・セットの使用から第２のレーン・セットの使用にスワップし、第２のリンクが第２のＰＣＩＥブリッジを第２のＩＯデバイスに接続し、第１のリンクにおける故障の検出に応答して、第１のＰＣＩＥブリッジと第１のＩＯデバイスとの間で、第２のレーン・セットを用いて第２のリンクを介して第２のバス伝送ビット・セットを交換するために、ＩＯデバイス・エンドにおいて、第１のレーン・セットの使用から第２のレーン・セットの使用にスイッチする、ためのコードを含む。
【００１１】
上述の態様を達成し、詳細に理解することができるように、添付図面を参照して、先に簡潔にまとめた本発明の実施形態の更に具体的な説明を行うことができる。
【００１２】
しかしながら、添付図面は本発明の典型的な実施形態を図示するに過ぎず、従ってその範囲の限定と見なすべきではない。本発明は他の等しく有効な実施形態を認めることができるからである。
【図面の簡単な説明】
【００１３】
【図１】本開示の一実施形態に従った、ＰＣＩエクスプレス（ＰＣＩｅ）構造トポロジを組み込んだ例示的なコンピュータ・システムを示す図である。
【図２】本開示の一実施形態に従った、ＣＰＵエンドおよびスイッチ・エンドの双方でマルチプレクサまたはクロスポイント・スイッチを用いてケーブル・フェイルオーバー機構を提供するためのＰＣＩＥシステムの例示的なベース動作を示す図である。
【図３】本開示の一実施形態に従った、図２のＰＣＩＥシステムにおいてケーブル故障中に用いられるフェイルオーバー機構の一例を示す図である。
【図４】本開示の一実施形態に従った、ＣＰＵエンドおよびスイッチ・エンドの双方でマルチプレクサを用いて図２および図３のＰＣＩＥシステムを用いてケーブル・フェイルオーバー機構を提供するための例示的なプロセスを示すフロー図である。
【図５】本開示の一実施形態に従った、ケーブル・フェイルオーバー機構を提供するための例示的な動作を示すフロー図である。
【図６】本開示の一実施形態に従った、スイッチ・エンドにおけるマルチプレクサを用いてフェイルオーバー機構を提供するためのＰＣＩｅシステムのベース動作を示す例示的な図である。
【図７】本開示の一実施形態に従った、図６のＰＣＩｅシステムにおけるケーブル故障中のフェイルオーバー機構を示す例示的な図である。
【図８】本開示の一実施形態に従った、スイッチ・エンドにおいてマルチプレクサを用いて図６および図７のＰＣＩＥシステムを用いてケーブル・フェイルオーバー機構を提供するための例示的なプロセスを示すフロー図である。
【図９】本開示の一実施形態に従った、ケーブル・フェイルオーバー機構を提供するための例示的な動作を示すフロー図である。
【発明を実施するための形態】
【００１４】
図１は、本開示の一実施形態に従った、ＰＣＩエクスプレス（ＰＣＩｅ）構造トポロジを組み込んだコンピュータ・システム１００を示す例示的な図である。コンピュータ・システムは、ルート・コンプレックス１０４に接続されたＣＰＵ１０２を含む。ルート・コンプレクス１０４は通例、ＣＰＵ１０２の代わりにトランザクション要求を発生する。ルート・コンプレクスは、機能的にディスクリート・デバイスとして実施するか、またはプロセッサ（例えばＣＰＵ１０２）内に統合することができる。ルート・コンプレクス１０４は２つ以上のＰＣＩエクスプレス・ポートを含むことができ、多数のＰＣＩＥスイッチ・デバイスをこれらのポートに接続するかまたは１つ以上のポートからカスケード接続することができる。
【００１５】
ルート・コンプレクス１０４は、例えばＰＨＢ１０６および１０８のような多数のＰＣＩＥホスト・ブリッジ（ＰＨＢ）を含むことができる。いくつかの態様によれば、ＰＨＢ１０６、１０８は、ディスクリート・デバイスとして実施するか、またはルート・コンプレクス１０４内に統合することができる。各ＰＨＢ１０６、１０８は、入出力（Ｉ／Ｏ）バス１３０、１３２を介して対応するＰＣＩｅスイッチ１４２、１４４に接続することができる。例えば、ＰＨＢ１０６はバス１３０を介してＰＣＩＥスイッチ１４２に接続し、ＰＨＢ１０８はバス１３２を介してＰＣＩｅスイッチ１４４に接続する。スイッチ１４２、１４４の各々は、更にリンク１５２を介してＰＣＩｅエンドポイント（ＥＰ）１５０に接続することができる。スイッチ１４２、１４４は通例、それぞれのＩ／Ｏバス１３０、１３２にファンアウトを提供する。そうすることによって、ＰＨＢ対ＰＣＩＥアダプタの比を高くし、ＣＰＵシャーシにおいて必要なＰＨＢの数を最小限に抑えることができる。
【００１６】
いくつかの態様によれば、スイッチ１４２、１４４は１つ以上のポートを有し、これにリンク１５２を介してコネクタがアタッチされ、各コネクタは更にエンドポイント１５０にアタッチされている。エンドポイントは通例、リンク１５２を用いて、コンピュータ・システム上の他のいずれかのデバイス（別のエンドポイントを含む）との間でデータを処理する。スイッチ１４２、１４４の各々は、上流のルート・ポートと、コンピュータ・システム内でこれらのスイッチに接続されたエンドポイント・デバイス１５０との間で、多数のポイント・ツー・ポイント接続を確立する。
【００１７】
リンクとは、コンピュータ・システム１００内の２つのコンポーネント間の全二重通信路である。論理的には、ポートとは、コンポーネントとＰＣＩエクスプレス・リンクとの間のインタフェースである。物理的には、ポートとは、リンクを規定する同一チップ上に位置する送信器および受信器のグループである。１つのリンクは少なくとも１つのレーンをサポートしなければならない。各レーンは差動信号対セット（１つの伝送対および１つの受信対）を表す。帯域幅のスケーリングのために、リンクはｘＮで示される多数のレーンを集約することができる。ここでＮはサポートされるリンク幅のいずれか１つである。例えば、ｘ１は１つの物理レーンを有するリンクを示し、ｘ８は８つの物理レーンを有するリンクを示す。ＰＣＩエクスプレスは、ＰＣＩエクスプレスに準拠した周辺デバイスの異なる帯域幅要件に対応するために、単一レーン、４レーン、８レーン、１６レーン、および３２レーン等の多数の物理レーンを提供する。いくつかの態様においては、ＩＯバス１３０、１３２の各々も多数のレーンを有することができ、このレーン数は典型的にエンドポイント１５０に接続するリンクのレーン数に相当する。例えば、バス１３０および１３２の各々はｘ８バスである。いくつかの態様によれば、ＰＣＩＥリンクは、ケーブル、埋め込みボード配線、ボード・ツー・ボード接続、および、ＰＣＩＥブリッジとＰＣＩＥスイッチまたはデバイスとの間の通信を可能とする他のいずれかの接続を含む。
【００１８】
いくつかの態様によれば、リンク／バスのレーンを多数のレーン・セットへと物理的に分割することができる。例えば、ＰＨＢ１０６およびＰＣＩｅスイッチ１４２を接続するＩ／Ｏバス１３０は、各々４レーンを有する２つのレーン・セット１１０および１１２に分割される。同様に、ＰＨＢ１０８をＰＣＩｅスイッチ１４４に接続するＩ／Ｏバス１３２は、各々４レーンを有する２つのレーン・セット１１４および１１６に分割される。リンク／バスの各々を２つのレーン・セットに分割することは単に例示の目的のために過ぎず、バス／リンクは、各レーン・セットが最小１レーンを有するいかなる数のレーン・セットにも分割可能であることは認められよう。例えば、ｘ１６バス／リンクを、２つのｘ８バス、４つのｘ４バス、８つのｘ２バス、または１６のｘ１バスに分割することができる。いくつかの実施形態によれば、このバスの物理的分割はソフトウェア制御を受けず、ハードウェア設計に基づいた永久的なものである。
【００１９】
起動時に、ＰＣＩエクスプレス・デバイスは通例、スイッチと交渉を行って、そのリンクを構成することができるレーンの最大数を決定する。このリンク幅交渉は、リンク自体の最大幅（すなわちリンクを構成する実際の物理信号対の数）、デバイスがアタッチされるコネクタの幅、およびデバイス自体の幅に依存する。
【００２０】
いくつかの態様においては、ＰＣＩｅスイッチ１４２、１４４が物理的に異なる電子シャーシまたはエンクロージャであるために、ＰＨＢを各スイッチに接続するＩ／Ｏバスの各々は、物理ケーブル１３４、１３６等の別個のリンクを通っている。例えば、バス１３０はケーブル１３４を通り、バス１３２はケーブル１３６を通っている。各ケーブル１３４、１３６の端部に設けられたケーブル・コネクタ（ＣＣ）１６０は、レーン・セットとケーブルとの間の電気的接続を提供する。いくつかの態様によれば、ＣＰＵおよびＰＣＩｅスイッチを外部のケーブルに接続することから生じる１つの問題として、ケーブルまたはケーブル・コネクタの故障のためにそのケーブル上で通信を行っているＩＯスロットに対する接続が失われること、一方または他方のシャーシにおけるケーブル接続が偶発的に外れること、またはケーブルを修理するためにケーブルを外す必要があるサービス・アクションがある。
【００２１】
いくつかの態様によれば、別個の物理ケーブルを用いて各ＰＨＢ１０６、１０８をそれぞれスイッチ１４２、１４４に接続することで冗長ケーブルを設け、一方または他方のケーブル１３４、１３６が故障した場合にフェイルオーバー機構を提供するのに役立つ。いくつかの態様においては、フェイルオーバー機構によって、第１のＰＨＢおよび第１のＰＣＩｅスイッチを接続しているケーブルが故障した場合、第２のアクティブなケーブルを用いて第１のＰＨＢと第１のＰＣＩｅスイッチとの間で少なくともデータの一部を交換することができる。第２のアクティブなケーブルとは、第２のＰＨＢおよび第２のＰＣＩｅスイッチを接続しているものである。例えば、コンピュータ・システム１００によってケーブル１３６が故障したことが検出されると、依然としてアクティブであり得るケーブル１３４内のレーンのいくつかを用いてＰＨＢ１０８とスイッチ１４４との間でデータを交換することができ、一方でＰＨＢ１０６およびスイッチ１４２はケーブル１３４内の他のレーン上でデータ交換を続ける。
【００２２】
ＰＣＩｅアーキテクチャでは、レーンのダウンシフトおよびアップシフトが可能である。これによってＣＰＵファームウェアは、ＰＨＢと対応するスイッチとの間でアクティブなレーン数を減らす（ダウンシフトする）ことができ、元のアクティブ・レーン数に復元する（アップシフトする）ことができる。いくつかの態様では、このＰＣＩｅシステムの機能を用いてケーブル故障中にフェイルオーバー機構を提供する。例えば、ケーブル１３６において故障が検出されると、双方のバス１３０および１３２は１つだけのレーン・セットを用いるようにダウンシフトされる。このため、各バスはｘ８バスからｘ４バスにダウンシフトされる。いったんレーンのダウンシフトが完了すると、バス１３０の未使用のレーン・セットを用いて、ＰＨＢ１０８とスイッチ１４４との間で、バス１３２のアクティブなレーン・セット上のデータを交換する。いくつかの態様においては、バス１３０のみをｘ８からｘ４にダウンシフトし、バス１３０のイナクティブなレーン・セットを用いて、ＰＨＢ１０８とスイッチ１４４との間でデータを交換する。
【００２３】
図２は、本開示の一実施形態に従った、ＣＰＵエンドおよびスイッチ・エンドの双方でマルチプレクサを用いてケーブル・フェイルオーバー機構を提供するためのＰＣＩＥシステム２００のベース動作を示す例示的な図である。
【００２４】
図２に示すように、ＰＣＩｅルート・コンプレクス１０４はＰＨＢ１０６および１０８を含む。ＰＨＢ１０６はＩ／Ｏバス１３０を用いてＰＣＩｅスイッチ１４２とデータを交換し、ＰＨＢ１０８はＩ／Ｏバス１３２を用いてＰＣＩｅスイッチ１４４とデータを交換する。バス１３０および１３２の各々はｘ８バスである。Ｉ／Ｏバス１３０は、各々４レーンを有する２つのレーン・セット１１０および１１２に分割されている。同様に、Ｉ／Ｏバス１３２は、各々４レーンを有する２つのレーン・セット１１４および１１６に分割されている。いくつかの態様においては、バス１３０について、レーン・セット１１０は高次レーン０〜３を表し、レーン・セット１１２は低次レーン４〜７を表す。バス１３２についても同様に、レーン・セット１１４は高次レーン０〜３を表し、レーン・セット１１６は低次レーン４〜７を表す。各ケーブル１３４、１３６の端部に設けられたケーブル・コネクタ１６０ａ〜１６０ｄは、レーン・セットとケーブルとの間の電気的接続を提供する。
【００２５】
レーン・マルチプレクサ（ＭＵＸ）（またはクロスポイント電気スイッチ）２０２ａ〜２０２ｄは、ケーブル１３４および１３６の双方の端部（ＣＰＵエンドおよびスイッチ・エンド）上で各バス１３０および１３２のレーン・セット間のレーン・スイッチングを可能とする。いくつかの態様においては、ＰＣＩｅシステムのベース動作中、ケーブル１３４および１３６は双方ともアクティブである。以下は、ベース動作中のＭＵＸの典型的なコンフィギュレーションである。
【００２６】
・ＣＰＵエンドにおいて、ＭＵＸ２０２ａはレーン・セット１１０をＣＣ１６０ａに、レーン・セット１１６をＣＣ１６０ｃに接続する。
・ＣＰＵエンドにおいて、ＭＵＸ２０２ｃはレーン・セット１１４をＣＣ１６０ｃに、レーン・セット１１２をＣＣ１６０ａに接続する。
・スイッチ・エンドにおいて、ＭＵＸ２０２ｂはレーン・セット１１０をＰＣＩｅスイッチ１４２に、レーン・セット１１６をＰＣＩｅスイッチ１４４に接続する。
・スイッチ・エンドにおいて、ＭＵＸ２０２ｄはレーン・セット１１４をＰＣＩｅスイッチ１４４に、レーン・セット１１２をＰＣＩｅスイッチ１４２に接続する。
【００２７】
従って、ベース動作中、バス１３０のレーン・セット１１０および１１２はＰＨＢ１０６をスイッチ１４２に接続し、バス１３２のレーン・セット１１４および１１６はＰＨＢ１０８をスイッチ１４４に接続する。スイッチにおけるＭＵＸは、ＰＣＩｅスイッチを含むＩＯシャーシに統合することができる。いくつかの態様では、ＣＰＵエンドにおいて、全てのレーンを各ＰＨＢから双方のケーブルへとマルチプレクサを用いてルーティングすることができる。例えば、ＭＵＸ２０２ａはレーン・セット１１０をＣＣ１６０ａに接続するか、またはレーン・セットをスイッチングしてレーン・セット１１０をＣＣ１６０ｃに接続することができる。同様に、スイッチ・エンドにおけるマルチプレクサは、各ケーブル内のレーンのサブセットをいずれかのスイッチに再ルーティングすることができる。むろん、図２に示したＭＵＸの数およびコンフィギュレーションは例示の目的のためのものであり、本開示の様々な態様を実施するためにＭＵＸのいかなる数またはいかなるコンフィギュレーションも使用可能であることは、当業者には認められよう。
【００２８】
いくつかの態様によると、ＣＰＵファームウェアがＰＨＢならびにＭＵＸ２０２ａおよび２０２ｃの動作を制御する。いくつかの態様では、ＭＵＸ２０２ｂおよび２０２ｄは、スイッチ１４２および１４４のいずれか１つに接続された１つ以上のデバイス（またはＥＰ）によって制御される。例えば、スイッチ１４２および１４４にそれぞれ接続されたＭＵＸ制御デバイス２０４ａおよび２０４ｂは、ＭＵＸ２０２ｂおよび２０２ｄを制御するようにプログラムすることができる。いくつかの態様では、ＭＵＸ２０２ｂおよび２０２ｄを用いたスイッチ・エンドにおけるレーン・スイッチを実行するために、ＣＰＵファームウェアは、ＭＵＸ制御デバイス２０４ａおよび２０４ｂのコンフィギュレーションまたはこれらとの通信を行う。いくつかの態様では、ＭＵＸ制御デバイス２０４ａおよび２０４ｂの各々が、ＭＵＸ２０２ｂおよび２０２ｄの双方を制御することができる。いくつかの実施形態では、ＭＵＸ制御デバイスは、スイッチに接続されたＰＣＩＥデバイスでもあるＩＯシャーシ制御要素の特別なタイプである。
【００２９】
図３は、本開示の一実施形態に従った、図２のＰＣＩＥシステムにおけるケーブル故障中のフェイルオーバー機構を示す例示的な図である。
【００３０】
図２に関して上述したように、ベース動作中、ＰＨＢとＩＯシャーシにおけるスイッチとの間でＰＣＩＥの全てのレーンは接続されている。従って、２つのｘ８ＰＨＢ１０６、１０８の各々は、バス１３０、１３２の全ての８レーンをＩＯシャーシにおける各スイッチに接続する。一方のケーブルが失われると、ＣＰＵファームウェアは、ＰＣＩｅの「レーン・ダウンシフト」を用いて、他のＰＨＢとその各スイッチとの間でアクティブなレーン数をまず減らす。例えば、それをｘ８バスからｘ４バスに減らす。これによって、スイッチに対するケーブル接続性を失ったＰＨＢおよびＩ／Ｏバスが用いるために４レーンが解放される。いくつかの態様では、解放されたレーンは典型的にｘ８ＰＣＩｅバスのレーン４〜７である。いくつかの態様によれば、ＰＨＢまたはルート・ポートは、ＰＣＩＥリンク接続（またはケーブル）の故障または喪失に関したリンク・ダウン・イベント等のリンク状態変更イベントをＣＰＵファームウェアに信号で伝え、ケーブルまたはリンクの動作状態をチェックするようにＣＰＵファームウェアを促すことができる。他の実施形態では、他の指示または機構を利用して、同様にケーブル故障についてチェックするようにＣＰＵファームウェアを促すことも可能である。
【００３１】
いくつかの態様において、ＣＰＵファームウェアは、ケーブルを失ったＰＨＢをｘ４バスにセットする。すでに述べたように、「マルチプレクサ」またはクロスポイント電気スイッチを用いて、全てのレーンを各ＰＨＢから双方のケーブルにルーティングすることができる。このため、ケーブル１３４、１３６の一方が故障した場合は、フェイルオーバー機構が開始し、ＣＰＵファームウェアはＣＰＵエンドにおけるマルチプレクサをセットして、レーン・セット（典型的にはレーン０〜３）を、ケーブルを失ったＰＨＢから他方のアクティブなＰＨＢケーブルの未使用レーン（典型的にはレーン４〜７）に再ルーティングする。また前述のように、スイッチ・エンドにおけるマルチプレクサは、各ケーブル内のレーンのサブセットをいずれかのスイッチに再ルーティングすることを可能とする。この場合も、フェイルオーバー機構の一部として、ＣＰＵファームウェアはアクティブなＰＨＢケーブルを介してＰＣＩＥスイッチ上のＭＵＸコントローラ・デバイスに対して通信を行い、マルチプレクサをセットして、ＰＨＢのためのアクティブなケーブルのレーン４〜７を他のスイッチのレーン０〜３にルーティングする。これにより、アクティブに接続されたケーブルにおけるＰＨＢのレーン４〜７を用いて、ケーブル接続を失ったＰＨＢのレーン０〜３を元々接続されていたスイッチのレーン０〜３に接続し、一方で、ＰＣＩＥダウンシフト・プロトコルとは別の中断していないケーブル上ではスイッチ・レーン０〜３に対するアクティブなＰＨＢレーン０〜３の接続性を維持する。
【００３２】
例えば、図３は、ケーブル１３２が故障しケーブル１３０のみがアクティブである場合のケーブル・フェイルオーバー機構を示す。ＣＰＵはケーブル１３２の故障を検出し、これに応じてレーン・ダウンシフトを用いて、バス１３０および１３２のアクティブなレーン数をｘ８バスからｘ４バスに減らす。この例では、レーン・ダウンシフトによって、ＰＨＢ１０６にレーン・セット１１０（レーン０〜３）のみを用いるように指示し、ＰＨＢ１０８にレーン・セット１１４（レーン０〜３）のみを用いるように指示する。ＣＰＵファームウェアは、ＭＵＸ２０２ｃに、レーン・セット１１４とアクティブなバス１３０のレーン４〜７との間で接続を確立するように指示する。ＣＰＵファームウェアは同時に、アクティブなケーブル１３４のＩ／Ｏバス１３０を用いてＭＵＸ制御デバイス２０４ａと通信を行う。ＭＵＸ制御デバイス２０４ａは、ＭＵＸ２０２ｄに、バス１３０のレーン４〜７とＰＣＩｅスイッチ１４４のレーン０〜３との間で接続を確立するように指示する。従って、このケーブル・フェイルオーバー機構は、アクティブに接続されたケーブル１３４におけるＰＨＢ１０６のレーン４〜７を用いて、ケーブル接続を失ったＰＨＢ１０８のレーン０〜３を元々接続されていたＰＣＩｅスイッチ１４４のレーン０〜３に接続する。
【００３３】
いくつかの態様によれば、失われたケーブル接続性を復元するためのサービス・アクションを完了すると、ＣＰＵファームウェアは、復元したケーブル接続性について通知され（またはこれを電子ケーブル存在信号によって検出しても良い）、フェイルオーバー機構中に実行されたＭＵＸのコンフィギュレーションを保存することができ、これによってレーン・マルチプレクサ設定を変更して、各ＰＨＢごとに、対応するケーブルを介してこれに接続されたスイッチの上流ポートに全てのレーンを再ルーティングする。
【００３４】
図４は、本開示の一実施形態に従った、ＣＰＵエンドおよびスイッチ・エンドの双方でマルチプレクサを用いて図２および図３のＰＣＩＥシステムを用いてケーブル・フェイルオーバー機構を提供するための例示的なプロセス４００を示すフロー図である。４０２において、ＣＰＵファームウェアは、ＰＨＢ１０６および１０８をそれぞれスイッチ１４２および１４４に接続するケーブル１３４および１３６における故障についてチェックする。４０４において、ＣＰＵファームウェアが、例えばケーブル１３６のようなケーブルにおいて故障を検出すると、次いで４０６においてＣＰＵファームウェアはバス１３０および１３４の双方をｘ８からｘ４にダウンシフトする。４０８において、ファームウェアはＣＰＵエンドにおけるＭＵＸ２０２ｃに、ケーブル故障のあるＰＨＢのレーン・セット１１４をアクティブなバス１３０のレーン４〜７にスイッチするように指示する。４１０において、ファームウェアは、スイッチ・エンドのＭＵＸ制御デバイス２０４ａを用いて、ＭＵＸ２０２ｄに、アクティブなバス１３０のレーン４〜７をスイッチ１４４のレーン０〜３にスイッチするように指示する。４１２において、ケーブル１３６が全接続に復元されていない場合、プロセス４００は引き続きフェイルオーバー・モードで動作し、続けて接続の復元についてケーブル１３６をチェックする。４１２において、ＣＰＵファームウェアがケーブル１３６の接続復元を検出した場合、ＰＣＩＥシステムは図２のベース動作に復元され、バスはｘ８バスに復元される。
【００３５】
いくつかの態様によれば、ケーブルのＣＰＵエンドにおいてレーン多重化電子機器回路（またはＭＵＸ）を除去して、電子機器回路コスト削減およびパッケージング要件についての利点を得ることができる。しかしながらこれには、ケーブル長を制限し、いくつかのＩＯシャーシ・ケーブル接続コンフィギュレーションに制約を加える恐れがあるという欠点がある。これは、電子機器回路タイミング要件によって、これらの冗長コンフィギュレーションのために用いられる２本のケーブル間に厳しいケーブル長許容誤差が要求されるからである。冗長コンフィギュレーションは各々、フェイルオーバーおよび復元機構のファームウェア・シーケンスに違いがある。当業者は、特定のＰＣＩＥ実施の必要性に適合するように冗長コンフィギュレーションのいずれかを選択すれば良い。
【００３６】
図５は、本開示の一実施形態に従った、ケーブル・フェイルオーバー機構を提供するための例示的な動作５００を示すフロー図である。
【００３７】
動作５００は５０２において開始し、第１のＰＣＩｅブリッジの第１のレーン・セットを用いて第１のケーブルを介して、第１のＰＣＩｅブリッジと第１のＩＯデバイスとの間で第１のバス伝送ビット・セットを交換する。バス伝送ビットとは通例、バス上で伝送されるデータ・ビットのことである。５０４において、第１のケーブルにおいて故障が検出される。５０６において、第１のケーブルで故障を検出したことに応答して、第２のＰＣＩｅブリッジおよび第２のＩＯデバイスを接続する第２のケーブルの未使用部分を用いて、第１のＰＣＩｅブリッジと第１のＩＯデバイスとの間で第１のバス伝送ビット・セットを交換する。
【００３８】
図６は、本開示の一実施形態に従った、スイッチ・エンドのみにマルチプレクサを用いてフェイルオーバー機構を提供するためのＰＣＩｅシステム６００のベース動作を示す例示的な図である。
【００３９】
図６に示すように、レーン・マルチプレクサ（ＭＵＸ）（またはクロスポイント電気スイッチ）２０２ｂおよび２０２ｄによって、ケーブル１３４および１３６のスイッチ・エンド上の各バス１３０および１３２のレーン・セット間でレーン・スイッチングが可能となる。しかしながら、ＣＰＵエンドにはＭＵＸは存在せず、レーン・セットは直接ケーブルに接続されている。いくつかの態様では、ＰＣＩｅシステムのベース動作中、ケーブル１３４および１３６は双方ともアクティブである。以下は、ベース動作中のＰＣＩｅシステム６００の典型的なコンフィギュレーションである。
【００４０】
・ＣＰＵエンドにおいて、
・ＰＨＢ１０６については、レーン・セット１１０は直接ＣＣ１６０ａに接続し、レーン・セット１１２は直接ＣＣ１６０ｃに接続する。
・ＰＨＢ１０８については、レーン・セット１１４は直接ＣＣ１６０ｃに接続し、レーン・セット１１６は直接ＣＣ１６０ａに接続する。
・スイッチ・エンドにおいて、
・ＭＵＸ２０２ｂは、レーン・セット１１０および１１２をＰＣＩｅスイッチ１４２に接続しており、レーン・セット１１０および１１２間をスイッチするために使用可能である。
・ＭＵＸ２０２ｄは、レーン・セット１１４および１１６をＰＣＩｅスイッチ１４４に接続しており、レーン・セット１１４および１１２間をスイッチするために使用可能である。
【００４１】
従って、ベース動作中、バス１３０のレーン・セット１１０および１１２はＰＨＢ１１６をスイッチ１４２に接続し、バス１３２のレーン・セット１１４および１１６はＰＨＢ１０８をスイッチ１４４に接続する。いくつかの態様では、ＣＰＵエンドにおいて、レーン・スワッピングを用いて全てのレーンを各ＰＨＢから双方のケーブルにルーティングすることができる。例えば、レーン・セット１１４をレーン・セット１１６とスワップし、これによってレーン・セット１１４は１６０ｃでなくケーブル１６０ａを介してルーティングすることができる。同様に、レーン・セット１１０および１１２をスワップして、各レーン・セットをケーブル１６０ａおよび１６０ｂのいずれかを介してルーティングすることができる。上の段落において示したように、スイッチ・エンドにおけるＭＵＸ２０２ｂおよび２０２ｄは、各ケーブル内のレーンのサブセットをいずれかのスイッチに再ルーティングすることができる。むろん、ＭＵＸの数およびコンフィギュレーションは例示の目的のためのものであり、この開示の様々な態様を実施するためにＭＵＸのいかなる数またはいかなるコンフィギュレーションも使用可能であることは、当業者には認められよう。
【００４２】
いくつかの態様によると、ＣＰＵファームウェアは、ＣＰＵエンドにおけるレーン・スワッピングを制御する。すでに述べたように、ＣＰＵファームウェアはＰＨＢの動作を制御し、ＭＵＸ２０２ｂおよび２０２ｄは、例えばＭＵＸ制御デバイス２０４ａおよび２０４ｂのような、スイッチ１４２および１４４の１つに接続された１つ以上のデバイス（またはＥＰ）によって制御される。また、ＭＵＸ制御デバイス２０４ａおよび２０４ｂの各々は、ＭＵＸ２０２ｂおよび２０２ｄの双方を制御することができる。
【００４３】
図７は、本開示の一実施形態に従った、図６のＰＣＩｅシステムにおけるケーブル故障の検出に応答して用いられるフェイルオーバー機構を示す例示的な図である。図６に関して上述したように、ベース動作中、ＰＨＢとＩＯシャーシにおける各スイッチとの間で各ＰＣＩＥバス１３０および１３２の全てのレーンは接続されている。従って、２つのｘ８ＰＨＢ１０６、１０８の各々は、バス１３０、１３２における全ての８レーンをＩＯシャーシにおける各スイッチに接続する。ケーブル１３４、１３６の一方が接続性を失うと、ＣＰＵファームウェアは、ＰＣＩｅの「レーン・ダウンシフト」を用いて、他のＰＨＢとその各スイッチとの間のアクティブなレーン数を減らす。例えば、それをｘ８バスからｘ４バスに減らす。これによって、スイッチに対するケーブル接続性を失ったＰＨＢおよびＩ／Ｏバスが用いるために４レーンが解放される。いくつかの態様では、解放されたレーンは典型的にｘ８ＰＣＩｅバスのレーン４〜７である。
【００４４】
いくつかの実施形態によれば、ＣＰＵファームウェアは、ケーブルが失われたＰＨＢをｘ４バスにセットする。図６のＰＣＩＥシステムのベース動作に関してすでに述べたように、レーン・スワッピングを用いて、全てのレーンを各ＰＨＢから双方のケーブルにルーティングすることができる。従ってケーブル故障状況では、フェイルオーバー機構が開始し、ＣＰＵファームウェアは、レーン・セット（典型的にはレーン０〜３）を、ケーブルが失われたＰＨＢから他のアクティブなＰＨＢケーブルの未使用レーン（典型的にはレーン４〜７）に再ルーティングするために、ケーブルが失われたＰＨＢのレーン・セットをスワップする。また前述のように、スイッチ・エンドにおけるマルチプレクサにより、各ケーブル内のレーンのサブセットをいずれかのスイッチに再ルーティングすることができる。従って、フェイルオーバー機構の一部として、ＣＰＵファームウェアはアクティブなＰＨＢケーブルを介してＰＣＩＥスイッチ上のＭＵＸコントローラ・デバイスに対して通信を行い、マルチプレクサをセットして、アクティブなケーブルのレーン４〜７を、ケーブルが失われたＰＨＢが元々接続されていた他のスイッチのレーン０〜３にルーティングする。これにより、アクティブに接続されたケーブルにおけるＰＨＢのレーン４〜７を用いて、ケーブル接続を失ったＰＨＢのレーン０〜３を元々接続されていたスイッチのレーン０〜３に接続し、一方で、ＰＣＩＥダウンシフト・プロトコルとは別の中断していないケーブル上ではスイッチ・レーン０〜３に対するアクティブＰＨＢレーン０〜３の接続性を維持する。
【００４５】
例えば、図７に示すように、ケーブル１３２が故障しケーブル１３０のみがアクティブである。ＣＰＵはケーブル１３２の故障を検出し、これに応じてＣＰＵファームウェアはレーン・ダウンシフトを用いて、バス１３０および１３２のアクティブなレーン数をｘ８バスからｘ４バスに減らす。この例では、レーン・ダウンシフトによって、ＰＨＢ１０６にレーン・セット１１０（レーン０〜３）のみを用いるように指示し、ＰＨＢ１０８にレーン・セット１１４（レーン０〜３）のみを用いるように指示する。ＣＰＵファームウェアは、ＰＨＢ１０８に、レーン・セット１１４と１１６との間でスワップするように支持し、レーン・セット１１４（レーン３〜０）が故障ケーブル１３６でなくアクティブなケーブル１３４のバス１３０のレーン４〜７を介してルーティングされるようにする。ＣＰＵファームウェアは同時に、アクティブなケーブル１３４のＩ／Ｏバス１３０を用いてＭＵＸ制御デバイス２０４ａと通信を行って、ＭＵＸ２０２ｄに、バス１３０のレーン４〜７とＰＣＩｅスイッチ１４４のレーン０〜３との間で接続を確立するように指示する。これによって、ケーブル・フェイルオーバー機構は、アクティブに接続されたケーブル１３４におけるＰＨＢ１０６のレーン４〜７を用いて、ケーブル接続を失ったＰＨＢ１０８のレーン０〜３を、ＰＨＢ１０８が元々接続されていたＰＣＩｅスイッチ１４４のレーン３〜０に接続する。
【００４６】
いくつかの態様によれば、失われたケーブル接続性を復元するためのサービス・アクションを完了すると、ＣＰＵファームウェアに、復元したケーブル接続性について知らせ（または電子的ケーブル存在信号によって検出しても良い）、レーン・セット１１６および１１４をスワップ・バックし、フェイルオーバー機構中に実行されたＭＵＸ２０２ｂおよび２０２ｄのコンフィギュレーションに戻ることができる。
【００４７】
図８は、本開示の一実施形態に従った、スイッチ・エンドのみにマルチプレクサを用いて図６および図７のＰＣＩＥシステムを用いてケーブル・フェイルオーバー機構を提供するための例示的なプロセス８００を示すフロー図である。８０２において、ＣＰＵファームウェアは、ＰＨＢ１０６および１０８をそれぞれスイッチ１４２および１４４に接続するケーブル１３４および１３６における故障についてチェックする。８０４において、ＣＰＵファームウェアが、例えばケーブル１３６のようなケーブルにおいて故障を検出すると、プロセス８００は８０６に進んで、ＣＰＵファームウェアはバス１３０および１３２の双方をｘ８からｘ４にダウンシフトする。８０８において、ファームウェアはＣＰＵエンドにおけるＰＨＢ１０８に、レーン・セット１１４と１１６との間でスワップして、アクティブなバス１３０のレーン４〜７を用いてレーン・セット１１４をルーティングするように指示する。８１０において、ファームウェアは、スイッチ・エンドのＭＵＸ制御デバイス２０４ａを用いて、ＭＵＸ２０２ｄに、バス１３０のレーン４〜７とＰＣＩｅスイッチ１４４のレーン３〜０との間で接続を確立するように指示する。８１２において、ケーブル１３６が全接続に復元されていない場合、プロセス８００は引き続きフェイルオーバー・モードで動作し、続けて接続の復元についてケーブル１３６をチェックする。８１２において、ＣＰＵファームウェアがケーブル１３６の接続復元を検出した場合、ＰＣＩＥシステムは図６のベース動作に復元され、バスはｘ８バスに復元される。
【００４８】
図９は、本開示の一実施形態に従った、ケーブル・フェイルオーバー機構を提供するための例示的な動作９００を示すフロー図である。図示のように、動作９００は９０２において開始し、第１のＰＣＩｅブリッジの第１のレーン・セットを用いて第１のケーブルを介して、第１のＰＣＩｅブリッジと第１のＩＯデバイスとの間で第１のバス伝送ビット・セットを交換する。９０４において、第１のケーブルにおいて故障が検出される。９０６において、第１のケーブルで故障を検出したことに応答して、第１のＰＣＩＥブリッジの第２のレーン・セットを用いて第２のケーブル上で、第１のＰＣＩｅブリッジと第１のＩＯデバイスとの間で第１のバス・ビット・セットを交換する。
【００４９】
以下において本発明の実施形態を参照する。しかしながら、本発明は具体的な記載した実施形態に限定されないことは理解されよう。以下の特徴および要素の組み合わせは、異なる実施形態に関連するものであろうとなかろうと、本発明を実施し実行すると考えられる。例えば本発明は、ケーブルを利用しないか、または多数の物理的エンクロージャを伴わないＰＣＩＥリンクに等しく適用可能であることは、当業者には認められよう。コンピュータ回路基板に埋め込まれたワイヤを利用するか、またはミッドプレーン・コネクタを介したもの等のコンピュータ回路基板間、および同一もしくは隣接した物理エンクロージャ内のＰＣＩＥリンク等、かかる他の実施形態は、本発明によって等しく対応されて、ＰＣＩＥリンクの喪失のためのフェイルオーバーを提供する。また、先に論じたフェイルオーバー機構は、ＩＯデバイスまたはアダプタがスイッチを介して接続されるのではなく直接ＰＨＢに接続されるＰＣＩＥコンフィギュレーションに適用可能であることは認められよう。また、同様のフェイルオーバー手順を用いて、スイッチおよびＭＵＸ制御デバイスを用いてスイッチに接続されたＩＯデバイスの間の故障した接続を管理することも可能である。
【００５０】
更に、本発明の実施形態は、他の可能な解決策または従来技術あるいはその両方に勝る利点を達成可能であるが、所与の実施形態によって特定の利点が達成されるか否かは本発明を限定しない。このため、以下の態様、特徴、実施形態、および利点は、単に例示的なものに過ぎず、特許請求の範囲（複数の特許請求の範囲）に明示的に述べる場合を除いて、添付の特許請求の範囲の要素または限定とは見なされない。同様に、「本発明」への言及は、本明細書に加持した本発明の主題の一般化として見なされるものではなく、特許請求の範囲（複数の特許請求の範囲）に明示的に述べる場合を除いて、添付の特許請求の範囲の要素または限定とは見なされない。
【００５１】
当業者には認められるであろうが、本発明の態様は、システム、方法、またはコンピュータ・プログラムとして具現化することができる。従って、本発明の態様は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、または、ソフトウェアおよびハードウェアの態様を組み合わせた実施形態という形態を取ることができ、それらは全て本明細書において、「回路」、「モジュール」、または「システム」と一般的に称することができる。更に、本発明の態様は、具現化されたコンピュータ読み取り可能プログラム・コードを有する１つ以上のコンピュータ読み取り可能媒体において具現化されるコンピュータ・プログラムの形態を取ることも可能である。
【００５２】
１つ以上のコンピュータ読み取り可能媒体のあらゆる組み合わせを利用することができる。コンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体またはコンピュータ読み取り可能記憶媒体とすることができる。コンピュータ読み取り可能記憶媒体は例えば、限定ではないが、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、デバイス、または前述のもののいずれかの適切な組み合わせとすることができる。コンピュータ読み取り可能記憶媒体の更に具体的な例（非網羅的な列挙）は、以下を含む。すなわち、１本以上のワイヤを含む電気的接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、携帯型コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、光記憶デバイス、磁気記憶デバイス、または前述のもののいずれかの適切な組み合わせである。この文書の文脈において、コンピュータ読み取り可能記憶媒体は、命令実行システム、装置、またはデバイスによってまたはそれと接続して用いるためにプログラムを含有または記憶することが可能ないずれかのタンジブルな媒体とすることができる。
【００５３】
コンピュータ読み取り可能信号媒体は、例えばベースバンドにおいてまたは搬送波の一部として、具現化されたコンピュータ読み取り可能プログラム・コードを有する伝播データ信号を含むことができる。かかる伝播信号は様々な形態のいずれかを取ることができ、それらは限定ではないが、電磁、光、またはそれらのいずれかの適切な組み合わせを含む。コンピュータ読み取り可能信号媒体は、コンピュータ読み取り可能記憶媒体でないが、命令実行システム、装置、またはデバイスによってまたはそれと接続して用いるためにプログラムを伝達、伝播、または転送することが可能ないずれかのコンピュータ読み取り可能媒体とすることができる。
【００５４】
コンピュータ読み取り可能媒体上で具現化されるプログラム・コードは、限定ではないが、無線、有線、光ファイバ・ケーブル、ＲＦ等、または前述のもののいずれかの適切な組み合わせを含むいずれかの適切な媒体を用いて伝送することができる。
【００５５】
本発明の態様の動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋等のオブジェクト指向プログラミング言語、および、「Ｃ」プログラミング言語または同様のプログラミング言語等の従来の手順プログラミング言語を含む１つ以上のプログラミング言語のいずれかの組み合わせにおいて記述することができる。プログラム・コードは、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとして、部分的にユーザのコンピュータ上でおよび部分的に遠隔コンピュータ上で、または全体的に遠隔コンピュータもしくはサーバ上で、実行することができる。後者の場合、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを介してユーザのコンピュータに接続することができ、または、接続は、（例えばインターネット・サービス・プロバイダを用いてインターネットを介して）外部コンピュータに対して行うことができる。
【００５６】
本発明の実施形態に従った方法、装置（システム）、およびコンピュータ・プログラムのフローチャート図またはブロック図あるいはその両方を参照して、本発明の態様について以下に記載する。フローチャート図またはブロック図あるいはその両方の各ブロックならびにフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実施可能であることは理解されよう。これらのコンピュータ・プログラム命令は、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて機械を生成することができ、これによって、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能／行為を実施するための手段を生成するようになっている。
【００５７】
また、これらのコンピュータ・プログラム命令はコンピュータ読み取り可能媒体に記憶することができ、これによって、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに特定の方法で機能するように指示することができ、これにより、コンピュータ読み取り可能媒体に記憶された命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能／行為を実施する命令を含む製造品を生成するようになっている。
【００５８】
また、コンピュータ・プログラム命令を、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードして、そのコンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させてコンピュータ実施プロセスを生成することができ、これによって、コンピュータまたは他のプログラマブル装置上で実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能／行為を実施するためのプロセスを提供するようになっている。
【００５９】
上述した図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態に従ったシステム、方法、およびコンピュータ・プログラムの可能な実施のアーキテクチャ、機能性、および動作を示す。この点で、フローチャートまたはブロック図における各ブロックは、規定された論理機能（複数の機能）を実施するための１つ以上の実行可能命令を含むコードのモジュール、セグメント、または一部を表すことができる。また、いくつかの代替的な実施において、ブロックに明記した機能は、図面に明記した順序どおりでなく発生する場合があることに留意すべきである。例えば、関与する機能性に応じて、連続して示した２つのブロックは実際には実質的に同時に実行されることがあり、またはブロックは時に逆の順序で実行される場合がある。また、ブロック図またはフローチャートあるいはその両方の各ブロック、およびブロック図またはフローチャートあるいはその両方におけるブロックの組み合わせは、規定された機能もしくは行為を実行する特殊目的ハードウェア・ベースのシステム、または特殊目的ハードウェアおよびコンピュータ命令の組み合わせによって実施可能であることに留意すべきである。
【００６０】
前述の事項は本発明の実施形態を対象とするが、本発明の基本的な範囲から逸脱することなく本発明の他の実施形態および更に別の実施形態を考案可能であり、その範囲は以下の特許請求の範囲によって決定される。
【符号の説明】
【００６１】
１００  コンピュータ・システム
１０２  ＣＰＵ
１０４  ＰＣＩＥルート・コンプレックス
１０６、１０８  ＰＨＢ
１１０、１１２、１１４、１１６  レーン／セット
１３０、１３２  バス
１３４、１３６  ケーブル
１４２、１４４  ＰＣＩＥスイッチ
１５０  ＥＰ
１６０  ケーブル・コネクタ
【図１】
0005739308.tif 000002
【図２】
0005739308.tif 000003
【図３】
0005739308.tif 000004
【図４】
0005739308.tif 000005
【図５】
0005739308.tif 000006
【図６】
0005739308.tif 000007
【図７】
0005739308.tif 000008
【図８】
0005739308.tif 000009
【図９】
0005739308.tif 000010