(57)【特許請求の範囲】
【請求項１】
第一ＰＣＩｅブリッジと第一入力／出力（ＩＯ）デバイスとの間の接続に対するフェイルオーバ・オペレーションを備えるための装置であって、前記装置は、
第一ＰＣＩｅブリッジを第一ＩＯデバイスに接続する第一リンクであって、前記第一リンクは、前記第一ＰＣＩｅブリッジのレーンの第一セットを用いて、前記第一ＰＣＩｅブリッジと前記第一ＩＯデバイスとの間でバス搬送ビットのセットを交換するために使われる、前記第一リンクと、
少なくとも、第二ＰＣＩｅブリッジを第二ＩＯデバイスに接続している第二リンクと
を含み、
前記第一リンク中で障害が検出されるのに応じ、前記第二リンクの使われていない部分を用いて前記第一ＰＣＩｅブリッジと前記第一ＩＯデバイスとの間でバス搬送ビットのセットが交換され、前記第一ＰＣＩｅブリッジと第二ＰＣＩｅブリッジとはＰＣＩｅルート・コンプレックスに内蔵されている、
前記装置。
【請求項２】
前記第二リンクの前記使われていない部分を用いて前記第一ＰＣＩｅブリッジと前記第一ＩＯデバイスとの間でバス搬送ビットのセットを交換するために、レーンの前記第一セットと前記第二ＰＣＩｅブリッジのレーンの第二セットとの間で第一切り替えを実施するための、ＰＣＩｅブリッジ端部にある少なくとも一つの第一スイッチをさらに含み、前記使われていない部分はレーンの前記第二セットを包含する、
請求項１に記載の装置。
【請求項３】
前記第二リンクの前記使われていない部分を用いて前記第一ＰＣＩｅブリッジと前記第一ＩＯデバイスとの間でバス搬送ビットのセットを交換するために、レーンの前記第一セットとレーンの前記第二セットとの間で第二切り替えを実施するための、ＩＯデバイス端部にある少なくとも一つの第二スイッチ、
をさらに含む、請求項２に記載の装置。
【請求項４】
前記第一リンク中で前記障害が検出されるのに応じ、前記第二ＰＣＩｅブリッジが設定される、
請求項３に記載の装置。
【請求項５】
前記第一リンク中で前記障害が検出されるのに応じ、レーンの前記第一セットの以外のレーンの使用を停止するため、前記第一ＰＣＩｅブリッジが構成される、
請求項４に記載の装置。
【請求項６】
前記第一スイッチおよび前記第二スイッチは、中央処理ユニット（ＣＰＵ）ファームウエアによって制御される、請求項３に記載の装置。
【請求項７】
前記第二スイッチを制御するため前記第二ＩＯデバイスに接続された制御デバイスをさらに含み、前記制御デバイスは前記ＣＰＵファームウエアによって制御される、
請求項６に記載の装置。
【請求項８】
前記第一および前記第二ＰＣＩｅブリッジの各々はＰＣＩｅホスト・ブリッジ（ＰＨＢ）を含む、請求項１に記載の装置。
【請求項９】
前記第一および前記第二ＩＯデバイスの各々はＰＣＩｅスイッチを含む、請求項１に記載の装置。
【請求項１０】
第一ＰＣＩｅブリッジと第一入力／出力（ＩＯ）デバイスとの間の接続に対するフェイルオーバ・オペレーションを備えるためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、
第一リンクを介し前記ＰＣＩｅブリッジのレーンの第一セットを用いて、前記ＰＣＩｅブリッジと前記第一ＩＯデバイスとの間でバス搬送ビットのセットを交換するステップと、
前記第一リンク中で障害が検出されるのに応じ、第二ＰＣＩｅブリッジと第二ＩＯデバイスとを接続している第二リンクの使われていない部分を用いて、前記第一ＰＣＩｅブリッジと前記第一ＩＯデバイスとの間でバス搬送ビットのセットを交換するステップであって、前記第一ＰＣＩｅブリッジと第二ＰＣＩｅブリッジとはＰＣＩｅルート・コンプレックスに内蔵されている、前記交換するステップと、
を含み、
これらのステップをコンピュータに実行させるコードを含む、
前記コンピュータ・プログラム。
【請求項１１】
前記障害が検出されるのに応じ、バス搬送ビットのセットを交換するステップは、
前記第二リンクの前記使われていない部分を用いて前記第一ＰＣＩｅブリッジと前記第一ＩＯデバイスとの間でバス搬送ビットのセットを交換するため、ＰＣＩｅブリッジ端部において、レーンの前記第一セットと前記第二ＰＣＩｅブリッジのレーンの第二セットとの間で第一切り替えを実施するステップ、
を含み、
前記使用されていない部分はレーンの前記第二セットを包含する、
請求項１０に記載のコンピュータ・プログラム。
【請求項１２】
前記障害が検出されるのに応じ、バス搬送ビットのセットを交換するステップは、
前記第二リンクの前記使われていない部分を用いて前記第一ＰＣＩｅブリッジと前記第一ＩＯデバイスとの間でバス搬送ビットのセットを交換するため、ＩＯデバイス端部において、レーンの前記第一セットと前記第二セットとの間で第二切り替えを実施するステップ、
をさらに含む、請求項１１に記載のコンピュータ・プログラム。
【請求項１３】
前記第一リンク中で前記障害が検出されるのに応じ、前記第二ＰＣＩｅブリッジを設定するステップ、
をさらに含む、請求項１２に記載のコンピュータ・プログラム。
【請求項１４】
前記第一リンク中で前記障害が検出されるのに応じ、レーンの前記第一セット以外のレーンの使用を停止するため、前記第一ＰＣＩｅブリッジを設定するステップ、
をさらに含む、請求項１３に記載のコンピュータ・プログラム。
【請求項１５】
前記第一および前記第二ＰＣＩｅブリッジの各々はＰＣＩｅホスト・ブリッジ（ＰＨＢ）を含む、請求項１０に記載のコンピュータ・プログラム。
【請求項１６】
前記第一および前記第二ＩＯデバイスの各々はＰＣＩｅスイッチを含む、請求項１０に記載のコンピュータ・プログラム。
【請求項１７】
第一ＰＣＩｅブリッジと第一入力／出力（ＩＯ）デバイスとの間の接続に対するフェイルオーバ・オペレーションを備えるための方法であって、前記方法は、
第一リンクを介し前記ＰＣＩｅブリッジのレーンの第一セットを用いて、前記第一ＰＣＩｅブリッジと前記第一ＩＯデバイスとの間でバス搬送ビットのセットを交換するステップと、
前記第一ＰＣＩｅブリッジと第二ＰＣＩｅブリッジとはＰＣＩｅルート・コンプレックスに内蔵されていて、前記第一リンク中で障害が検出されるのに応じ、前記第二ＰＣＩｅブリッジと第二ＩＯデバイスとを接続している第二リンクの使われていない部分を用いて、前記第一ＰＣＩｅブリッジと前記第一ＩＯデバイスとの間でバス搬送ビットのセットを交換するステップと、
を含む、前記方法。
【請求項１８】
前記障害が検出されるのに応じ、バス搬送ビットのセットを交換するステップは、
前記第二リンクの前記使われていない部分を用いて前記第一ＰＣＩｅブリッジと前記第一ＩＯデバイスとの間でバス搬送ビットのセットを交換するため、ＰＣＩｅブリッジ端部において、レーンの前記第一セットと前記第二ＰＣＩｅブリッジのレーンの第二セットとの間で第一切り替えを実施するステップを含み、前記使われていない部分はレーンの前記第二セットを包含する、
請求項１７に記載の方法。
【請求項１９】
前記障害が検出されるのに応じ、バス搬送ビットのセットを交換するステップは、
前記第二リンクの前記使われていない部分を用いて前記第一ＰＣＩｅブリッジと前記第一ＩＯデバイスとの間でバス搬送ビットのセットを交換するため、ＩＯデバイス端部において、レーンの前記第一セットと前記第二セットとの間で第二切り替えを実施するステップ、
をさらに含む、請求項１８に記載の方法。
【請求項２０】
前記第一リンク中で前記障害が検出されるのに応じ、前記第二ＰＣＩｅブリッジを設定するステップ、
をさらに含む、請求項１９に記載の方法。
【請求項２１】
前記第一リンク中で前記障害が検出されるのに応じ、レーンの前記第一セット以外のレーンの使用を停止するため、前記第一ＰＣＩｅブリッジを設定するステップ、
をさらに含む、請求項２０に記載の方法。
【請求項２２】
前記第一および前記第二ＰＣＩｅブリッジの各々はＰＣＩｅホスト・ブリッジ（ＰＨＢ）を含む、請求項１７に記載の方法。
【請求項２３】
前記第一および前記第二ＩＯデバイスの各々はＰＣＩｅスイッチを含む、請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は一般に周辺構成機器相互接続（ＰＣＩｅ：Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）（Ｒ）バスに関し、さらに具体的にはマルチレーンＰＣＩｅ  ＩＯ相互接続に対するケーブル冗長性およびフェイルオーバを備えるための方法、装置、およびコンピュータ・プログラムに関する。
【背景技術】
【０００２】
周辺構成機器相互接続（ＰＣＩ）規格は、１９９０年代初期に初めて導入された。ＰＣＩは、フロントサイド・バスおよびプロセッサに連結されたＰＣＩブリッジ・チップを用いて、ＰＣＩバスに接続された任意の周辺デバイスに対し、コンピュータ・システム内のシステム・メモリへの直接アクセスを提供する。ＰＣＩブリッジ・チップは、プロセッサの速度と関係なくＰＣＩバスの速度を調節して、高度の信頼度が達成できるようにする。
【０００３】
ＰＣＩエクスプレス（ＰＣＩｅ）（Ｒ）規格は、ＰＣＩ規格の後継規格であり、その関連項目は参照により本明細書に組み込まれる。ＰＣＩに比べてＰＣＩエクスプレス（Ｒ）は、より少ない物理ピンでより高い伝送速度を実現することができる。前世代のＰＣＩバスと違って、ＰＣＩエクスプレスは２点間バス・アーキテクチャを用いる。従って、ＰＣＩｅバス・システムを用いる任意の２つのデバイスの間のデータ・トランザクションに対して専用のバスが使われる。該専用バスは、通信するデバイスの間に２点間接続を設定するスイッチに助力される。しかして、該スイッチは媒介デバイスとして使われ、物理的および論理的に、コンピュータ・システムに取り付けられたどの２つのデバイスの間にもなるように配置される。
【０００４】
該ＰＣＩｅスイッチは、これらデバイスのコンピュータ・システムへの取り付けを容易にするための複数のポートを含む。デバイスとスイッチのポートとの間の物理的連結は、一般にリンクといわれる。各リンクは、一つ以上のレーンを含み、各レーンは、双方向にデータを送信することができる。従って、各レーンは全二重接続である。
【０００５】
単一のレーンを含むリンクはｘ１リンクと呼ばれる。同様に、２本のレーンまたは４本のレーンを含むリンクは、それぞれｘ２リンクまたはｘ４リンクと呼ばれる。ＰＣＩエクスプレスは、さまざまな周辺デバイスのいろいろな回線容量要求を満たすために、例えば、ｘ１、ｘ２、ｘ４、ｘ８、ｘ１２、ｘ１６、およびｘ３２リンクなど、いろいろな幅のインタフェースを可能にする。しかして、専用バスは、１レーン、２レーン、４レーン、８レーン、１２レーン、１６レーン、または３２レーン幅とすることができる。
【０００６】
現代のサーバ・クラスのコンピュータは、多くが、プライマリＩＯアダプタ技術として、ＰＣＩｅ  ＩＯアダプタを使用している。多くの場合、ＣＰＵエンクロージャは、特定のサーバのＩＯオプションをカスタマイズするため、限られた数のＰＣＩｅアダプタ・スロットを包含する。しかしながら、ＣＰＵシャーシのパッケージは、シャーシあたりのコンピューティング能力がマルチコア・チップの使用によって大幅に増大している一方、かかるスロットを一般には非常に少ない数に限定している。通例、サーバは、ＣＰＵを一つ以上の追加「ＩＯ拡張」シャーシ中のＰＣＩアダプタ・スロットに連結するメカニズムを備えている。例えば、ＰＣＩｅシステムにおいて、ＰＣＩｅホスト・ブリッジ（ＰＨＢ：ＰＣＩｅ  Ｈｏｓｔ  Ｂｒｉｄｇｅ）とも呼ばれるＰＣＩルート・ポート（ＰＲＰ：ＰＣＩ  Ｒｏｏｔ  Ｐｏｒｔ）は、ＣＰＵエレクトロニクスのコンポーネントであってＰＣＩバスを生成し、該ＰＣＩバスは、直接に単一のＰＣＩｅ  ＩＯアダプタ・スロットに接続するか、あるいは、ＩＯ拡張シャーシ中の、ＰＨＢバスをＰＣＩｅスイッチの下で複数のＰＣＩｅアダプタ・スロットに拡張している該スイッチに接続している。ＩＯ拡張のためには、拡張シャーシ中に一つ以上のＰＣＩｅアダプタ・スロットを設置し、それらスロットをＣＰＵシャーシ内のＰＨＢに接続することが必要となる。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
通常、これらのＩＯ拡張シャーシは、物理的に別個の電子シャーシまたはエンクロージャなので、ＣＰＵシャーシ中のＰＨＢと、ＩＯ拡張シャーシ内のＰＣＩｅアダプタ・スロットとの間の電子接続のために、これらエンクロージャの間に物理ケーブルの設置が必要となる。これらのケーブルは、ＰＨＢとＰＣＩｅアダプタ・スロットとの間に数インチを超える相互接続距離を必要とし、ＣＰＵとＩＯ拡張エンクロージャとを収容する相異なる物理ラックの間に延長されることもある。ＣＰＵとＰＣＩｅスイッチとを外部ケーブルを使って接続することから生じる一つの問題は、ケーブルまたはケーブル・コネクタの障害、どちらか側のシャーシでのケーブル接続の偶発的な取り外し、あるいはケーブル修理のためケーブル除去を要するサービス処置に起因する、ケーブルを介して通信するＩＯスロットへの接続の喪失である。
【課題を解決するための手段】
【０００８】
本発明の開示のある態様は、第一ＰＣＩｅブリッジと第一入力／出力（ＩＯ：ｉｎｐｕｔ／ｏｕｔｐｕｔ）デバイスとの間の接続に対するフェイルオーバ・オペレーションを備える方法を提供する。該方法は、一般に、第一リンクを介し第一ＰＣＩｅブリッジのレーンの第一セットを用い、第一ＰＣＩｅブリッジと第一ＩＯデバイスとの間でバス搬送ビットの第一セットを交換するステップと、第一リンク中で障害が検出されるのに応じ、第二ＰＣＩｅブリッジと第二ＩＯデバイスとを接続する第二リンクの使われていない部分を用いて、第一ＰＣＩｅブリッジと第一ＩＯデバイスとの間でバス搬送ビットの第一セットを交換するステップを含む。
【０００９】
本発明の開示のある態様は、第一ＰＣＩｅブリッジと第一入力／出力（ＩＯ）デバイスとの間の接続に対するフェイルオーバ・オペレーションを備えるための装置を提供する。一般に、該装置は、第一ＰＣＩｅブリッジを第一ＩＯデバイスに接続する第一リンクであって、該第一リンクは、第一ＰＣＩｅブリッジのレーンの第一セットを用いて、第一ＰＣＩｅブリッジと第一ＩＯデバイスとの間でバス搬送ビットの第一セットを交換するために使われる、該第一リンクと、少なくとも、第二ＰＣＩｅブリッジを第二ＩＯデバイスに接続する第二リンクとを含み、第一リンクで障害が検出されるのに応じ、第二リンクの使われていない部分を用いて、第一ＰＣＩｅブリッジと第一ＩＯデバイスとの間でバス搬送ビットの第二セットが交換される。
【００１０】
本発明の開示のある態様は、第一ＰＣＩｅブリッジと第一入力／出力（ＩＯ）デバイスとの間の接続に対するフェイルオーバ・オペレーション備えるためのコンピュータ・プログラムを提供し、該コンピュータ・プログラムは、一般に、コードを包含するコンピュータ可読媒体を含む。該コードは、一般に、第一リンクを介し前記ＰＣＩｅブリッジのレーンの第一セットを用いて、ＰＣＩｅブリッジと第一ＩＯデバイスとの間でバス搬送ビットの第一セットを交換するためのコードと、第一リンク中に障害が検出されるのに応じ、第二ＰＣＩｅブリッジと第二ＩＯデバイスとを接続する第二リンクの使われていない部分を用いて、第一ＰＣＩｅブリッジと第一ＩＯデバイスとの間でバス搬送ビットの第二セットを交換するためのコードとを含む。
【００１１】
前述した態様を実現する仕方を詳細に理解できるように、添付の図面を参照することによって上記で簡潔に要約した本発明の実施形態のさらに詳しい説明を得ることができる。
【００１２】
しかしながら、添付の図面は、単に本発明の典型的な実施形態を示したものであり、従って、本発明の範囲を限定すると見なすべきでなく、本発明は他の同等に効果的な実施形態を包含し得る。
【図面の簡単な説明】
【００１３】
【図１】本開示のある実施形態による、ＰＣＩエクスプレス（ＰＣＩｅ）（Ｒ）ファブリックの接続形態を組み込んだ例示的コンピュータ・システムを示す図である。
【図２】本開示のある実施形態による、ＣＰＵ端部およびスイッチ端部の両方にマルチプレクサを用いたケーブル・フェイルオーバ・メカニズムを備えたＰＣＩｅシステムの例示的ベース・オペレーションを示す図である。
【図３】本開示のある実施形態による、図２のＰＣＩｅシステムにおいてケーブル障害の過程で用いられるフェイルオーバ・メカニズムの例を示す図である。
【図４】本開示のある実施形態による、ＣＰＵ端部およびスイッチ端部の両方にマルチプレクサを用いた、図２および３のＰＣＩｅシステム使った、ケーブル・フェイルオーバ・オペレーションを備えるための例示的プロセスを示す流れ図である。
【図５】本開示のある実施形態による、ケーブル・フェイルオーバ・メカニズムを備えるための例示的オペレーションを示す流れ図である。
【図６】本開示のある実施形態による、スイッチ端部にマルチプレクサを用いた、フェイルオーバ・メカニズムを備えるためのＰＣＩｅシステムのベース・オペレーションを示す例示的流れ図である。
【図７】本開示のある実施形態による、図６のＰＣＩｅシステムにおけるケーブル障害の過程でのフェイルオーバ・メカニズムを示す例示図である。
【図８】本開示のある実施形態による、スイッチ端部にマルチプレクサを用いた、図６および７のＰＣＩｅシステムを使った、ケーブル・フェイルオーバ・メカニズムを備えるための例示的プロセスを示す流れ図である。
【図９】本開示のある実施形態による、ケーブル・フェイルオーバ・メカニズムを備えるための例示的オペレーションを示す流れ図である。
【発明を実施するための形態】
【００１４】
図１は、本開示のある実施形態による、ＰＣＩエクスプレス（ＰＣＩｅ）（Ｒ）ファブリックの接続形態を組み込んだコンピュータ・システム１００を示す例示図である。該コンピュータ・システムは、ルート・コンプレックス１０４に連結されたＣＰＵ１０２を含む。ルート・コンプレックス１０４は、通例、ＣＰＵ１０２に代わってトランザクション要求を生成する。ルート・コンプレックス機能は、個別デバイスとして実装でき、またはプロセッサ内に（例、ＣＰＵ１０２）に組み込むこともできる。ルート・コンプレックス１０４には、複数のＰＣＩエクスプレス（Ｒ）ポート、およびこれらポートに連結または一つ以上のポートからカスケード接続をすることが可能な、複数のＰＣＩｅスイッチ・デバイスを包含させることができる。
【００１５】
ルート・コンプレックス１０４には、例えばＰＨＢ１０６および１０８などの複数のＰＣＩｅホスト・ブリッジ（ＰＨＢ）を含めることができる。ある態様によれば、ＰＨＢ１０６、１０８は、個別デバイスとして実装でき、またはルート・コンプレックス１０４内に組み込むことができる。各ＰＨＢ１０６、１０８は、入力／出力（ＩＯ）バス１３０、１３２を介して対応するＰＣＩｅスイッチ１４２、１４４に接続することができる。例えば、ＰＨＢ１０６は、バス１３０を介してＰＣＩｅスイッチ１４２に連結されており、ＰＨＢ１０８は、バス１３２を介してＰＣＩｅスイッチ１４４に連結されている。スイッチ１４２、１４４の各々は、リンク１５２を介してＰＣＩｅのエンドポイント（ＥＰ：ｅｎｄｐｏｉｎｔ）１５０にさらに連結することができる。スイッチ１４２、１４４は、通例、これらそれぞれのＩＯバス１３０、１３２に対するファンアウトを備えている。こうすることによって、ＰＨＢ対ＰＣＩｅアダプタ比を増大することができ、ＣＰＵシャーシ中で必要なＰＨＢの数を最小化することができる。
【００１６】
ある態様によれば、スイッチ１４２、１４４は、リンク１５２を介してコネクタを取り付けられる一つ以上のポートを有し、これらコネクタの各々は、さらにエンドポイント１５０に取り付けられる。これらエンドポイントは、通例、リンク１５２を使い、コンピュータ・システム上の任意の他のデバイス（別のエンドポイントを含む）とデータをやり取りする。スイッチ１４２、１４４の各々は、アップストリーム・ルート・ポートと、コンピュータ・システム中の、これらのスイッチに連結されたエンドポイント・デバイス１５０との間で、複数の２点間接続を設定する。
【００１７】
リンクは、コンピュータ・システム１００中の２つのコンポーネントの間でのデュアルシンプレックス通信パスである。論理的には、ポートは、コンポーネントとＰＣＩエクスプレス（Ｒ）リンクとの間のインタフェースである。物理的には、ポートは、リンクを定義するチップと同じチップ上に配置されたトランスミッタおよびレシーバの一群である。リンクは、各レーンが差分信号のペア（一組の送信ペアおよび一組の受信ペア）のセットを代表する中で、少なくとも一つのレーンをサポートしなければならない。回線容量を調整するために、リンクはｘＮで表される複数のレーンを統合することができ、Ｎはサポートされるリンク幅の一つである。例えば、ｘ１は、一本の物理レーンを有するリンクを表し、ｘ８は８本の物理レーンを有するリンクを表す。ＰＣＩエクスプレス（Ｒ）は、ＰＣＩエクスプレス対応周辺デバイスのいろいろな回線容量要求に応じるために、単一レーン、４レーン、８レーン、１６レーン、および３２レーンなど、複数の物理レーンを提供する。また、一部の態様において、ＩＯバス１３０、１３２の各々には、一般に、エンドポイント１５０に接続するリンクのレーンの数に対応するレーン数を有する複数レーンを含めることができる。例として、バス１３０および１３２の各々はｘ８バスである。ある態様によれば、ＰＣＩｅリンクは、ケーブル、内蔵基板配線、基板間接続、およびＰＣＩｅブリッジとＰＣＩｅスイッチまたはデバイスとの間の通信を可能にする他の任意の接続を含む。
【００１８】
ある態様によれば、リンク／バスのレーンは、物理的にレーンの複数のセットに分けることができる。例えば、ＰＨＢ１０６とＰＣＩｅスイッチ１４２とを接続するＩＯバス１３０は、各４レーンの２つレーン・セット１１０および１１２に分けることができる。同様に、ＰＨＢ１０８とＰＣＩｅスイッチ１４４とを接続するＩＯバス１３２は、各４レーンの２つレーン・セット１１４および１１６に分けることができる。リンク／バスの各々をレーンの２つのセットに分けるのは単なる例示のためであって、これらバス／リンクを、各レーン・セットが最小一本のレーンを有する任意の数のレーン・セットに分けることが可能なのはよく理解できよう。例えば、ｘ１６バス／リンクは、２つのｘ８バス、４つのｘ４バス、８つのｘ２バス、または１６のｘ１バスに分けることができる。ある態様によれば、バスのこの物理的分離は、ソフトウエア制御に支配されるものでなく、該分離はハードウエア設計に基づく恒久的なものである。
【００１９】
始動時に、ＰＣＩエクスプレス（Ｒ）デバイスは、通例、スイッチとネゴシエートして、そのリンクが構成可能なレーンの最大数を判定する。このリンク幅ネゴシエーションは、リンク自体の最大幅（すなわち、リンクが構成する物理信号ペアの実際の数）、デバイスが取り付けられたコネクタの幅、およびデバイス自体の幅の如何による。
【００２０】
ある実施形態において、ＰＣＩｅスイッチ１４２、１４４は物理的に別個になった電子シャーシまたはエンクロージャなので、ＰＨＢをそれらそれぞれのスイッチに連結するＩＯバスの各々は、物理ケーブル１３４、１３６など別個のリンクを通過する。例えば、バス１３０はケーブル１３４を通過し、バス１３２はケーブル１３６を通過する。各ケーブル１３４、１３６の両端に設けられたケーブル・コネクタ（ＣＣ：ｃａｂｌｅ  ｃｏｎｎｅｃｔｏｒ）１６０は、レーン・セットとケーブルとの間の電気接続を提供する。ある態様によれば、ＣＰＵとＰＣＩｅスイッチとを外部ケーブルを使って接続することから生じる一つの問題は、ケーブルまたはケーブル・コネクタの障害、どちらか側のシャーシでのケーブル接続の偶発的な取り外し、あるいはケーブル修理のためケーブル除去を要するサービス処置に起因する、ケーブルを介して通信するＩＯスロットへの接続の喪失である。
【００２１】
ある態様によれば、別個の物理ケーブルを使って、各ＰＨＢ１０６、１０８をそれぞれスイッチ１４２、１４４に連結することは、冗長性のあるケーブルを提供し、ケーブル１３４、１３６のどちらか一つに障害が起きた場合にフェイルオーバ・メカニズムを備える助力となる。ある態様において、該フェイルオーバ・メカニズムによれば、第一ＰＨＢと第一ＰＣＩｅスイッチとを接続するケーブルに障害が生じた場合、データの少なくとも一部は、第二のアクティブなケーブルを使って第一ＰＨＢと第一ＰＣＩｅスイッチとの間で交換することが可能で、該第二のアクティブなケーブルは第二ＰＨＢと第二ＰＣＩｅスイッチとをつないでいる。例えば、コンピュータ・システム１００が、ケーブル１３６に障害が生じたことを検出した場合、データは、まだアクティブであり得るケーブル１３４内のレーンの一部を使って、ＰＨＢ１０８とスイッチ１４４との間で交換することができ、一方、ＰＨＢ１０６とスイッチ１４２とは、ケーブル１３４内の他のレーンでデータの交換を続ける。
【００２２】
ＰＣＩｅアーキテクチャは、レーンのダウンシフトおよびアップシフトを可能にする。このことは、ＣＰＵファームウエアが、ＰＨＢと対応するスイッチとの間のアクティブなレーンの数を減らすこと（ダウンシフト）、およびアクティブなレーンの元の数に戻すこと（アップシフト）を可能にする。ある態様において、このＰＣＩｅシステムのこの能力を使って、ケーブル障害時にフェイルオーバ・メカニズムが提供される。例えば、ケーブル１３６中で障害が検出された場合、バス１３０および１３２の両方がダウンシフトされ、１セットのレーンだけが使われる。しかして、各バスは、ｘ８バスからｘ４バスにダウンシフトされる。レーンのダウンシフトが完了したならば、バス１３２のレーンのアクティブなセット上のデータは、バス１３０の使われていないレーンのセットを用いて、ＰＨＢ１０８とスイッチ１４４との間で交換される。ある態様では、バス１３０だけがｘ８からｘ４にダウンシフトされ、バス１３０のレーンのうちの非アクティブなセットが、ＰＨＢ１０８とスイッチ１４４との間でデータを交換するために使われる。
【００２３】
図２は、本開示の実施形態による、ＣＰＵ端部およびスイッチ端部の両方にマルチプレクサを用いた、ケーブル・フェイルオーバ・メカニズムを備えるためのＰＣＩｅシステム２００のベース・オペレーションを示す例示図である。
【００２４】
図２に示されるように、ＰＣＩｅルート・コンプレックス１０４は、ＰＨＢ１０６および１０８を含む。ＰＨＢ１０６は、ＩＯバス１３０を使ってＰＣＩｅスイッチ１４２とデータを交換し、ＰＨＢ１０８は、ＩＯバス１３２を使ってＰＣＩｅスイッチ１４４とデータを交換する。バス１３０および１３２の各々はｘ８バスである。ＩＯバス１３０は、各４レーンの２つのレーン・セット１１０および１１２に分けられている。同様に、ＩＯバス１３２は、各４レーンの２つのレーン・セット１１４および１１６に分けられている。ある態様において、バス１３０に対して、レーン・セット１１０は高位のレーン０〜３を代表し、レーン・セット１１２は低位のレーン４〜７を代表する。同様に、バス１３２に対して、レーン・セット１１４は高位のレーン０〜３を代表し、レーン・セット１１６は低位のレーン４〜７を代表する。各ケーブル１３４、１３６の両端に設けられたケーブル・コネクタ１６０ａ〜１６０ｄは、これらレーン・セットとケーブルとの間に電気接続を提供する。
【００２５】
レーン・マルチプレクサ（ＭＵＸ：ｍｕｌｔｉｐｌｅｘｅｒ）（またはクロスポイント電気スイッチ）２０２ａ〜２０２ｄは、ケーブル１３４および１３６の両端（ＣＰＵ端部およびスイッチ端部）において、バス１３０および１３２の各々のレーン・セット間でのレーン切り替えを可能にする。ある態様で、ＰＣＩｅシステムのベース・オペレーションの間、両方のケーブル１３４および１３６はアクティブである。以下は、ベース・オペレーションの間のＭＵＸの典型的構成である。
○  ＣＰＵ端部において、ＭＵＸ２０２ａは、レーン・セット１１０をＣＣ１６０ａに、レーン・セット１１６をＣＣ１６０ｃに連結する。
○  ＣＰＵ端部において、ＭＵＸ２０２ｃは、レーン・セット１１４をＣＣ１６０ｃに、レーン・セット１１２をＣＣ１６０ａに連結する。
○  スイッチ端部において、ＭＵＸ２０２ｂは、レーン・セット１１０をＰＣＩｅスイッチ１４２に、レーン・セット１１６をＰＣＩｅスイッチ１４４に連結する。
○  スイッチ端部において、ＭＵＸ２０２ｄは、レーン・セット１１４をＰＣＩｅスイッチ１４４に、レーン・セット１１２をＰＣＩｅスイッチ１４２に連結する。
しかして、ベース・オペレーションの間、バス１３０のレーン・セット１１０および１１２は、ＰＨＢ１０６をスイッチ１４２に接続し、バス１３２のレーン・セット１１４および１１６は、ＰＨＢ１０８をスイッチ１４４に接続している。スイッチ側のＭＵＸは、ＰＣＩｅスイッチを包含するＩＯシャーシに組み入れることができる。ある態様では、ＣＰＵ端部において、マルチプレクサを利用して、全レーンを各ＰＨＢから両方のケーブルに経路させることができる。例えば、ＭＵＸ２０２ａは、レーン・セット１１０をＣＣ１６０ａに連結、またはレーン・セット１１０をＣＣ１６０ｃに連結するようにレーン・セットを切り替えることができる。同様に、スイッチ端部のマルチプレクサは、各ケーブル内のレーンのサブセットをどちらのスイッチにも再経路させることができる。当然ながら、当業者は、図２に示されたＭＵＸの数および構成が例示のためのものであり、本開示のさまざまな態様を実装するため、これらＭＵＸの任意の数および任意の構成が使えることをよく理解していよう。
【００２６】
ある態様によれば、ＣＰＵファームウエアは、ＰＨＢとＭＵＸ２０２ａおよび２０２ｃとのオペレーションを制御する。ある態様において、ＭＵＸ２０２ｂおよび２０２ｄは、スイッチ１４２および１４４のどちらか一つに連結された一つ以上のデバイス（またはＥＰ）によって制御される。例えば、スイッチ１４２および１４４にそれぞれ連結されたＭＵＸ制御デバイス２０４ａおよび２０４ｂは、ＭＵＸ２０２ｂおよび２０２ｄを制御するためのプログラムをすることができる。ある態様では、ＣＰＵファームウエアは、ＭＵＸ２０２ｂおよび２０２ｄを使ってスイッチ端部のレーン切り替えを行うため、ＭＵＸ制御デバイス２０４ａおよび２０４ｂを設定しもしくはこれらと通信する。ある態様において、ＭＵＸ制御デバイス２０４ａおよび２０４ｂの各々はＭＵＸ２０２ｂおよび２０２ｄの両方を制御することができる。ある態様では、ＭＵＸ制御デバイスは、これもスイッチに接続されたＰＣＩｅデバイスである、特殊な型のＩＯシャーシ制御エレメントである。
【００２７】
図３は、本開示のある実施形態による、図２のＰＣＩｅシステムにおいてケーブル障害の過程で用いられるフェイルオーバ・メカニズムを示す例示図である。
【００２８】
図２に関連して上記で説明したように、ベース・オペレーションの間、ＰＨＢとＩＯシャーシ中のスイッチとの間のＰＣＩｅバスの全てのレーンは接続されている。しかして、２つのｘ８ＰＨＢ１０６、１０８の各々は、バス１３０、１３２中の全８レーンをＩＯシャーシ中のそれぞれのスイッチに接続している。一つのケーブルが失われたとき、ＣＰＵファームウエアは、ＰＣＩｅ「レーン・ダウンシフト」を使い、まず、他方のＰＨＢとその対応スイッチとの間のアクティブなレーンの数を、例えば、ｘ８バスからｘ４バスに減らすなどして低減する。これにより、対応スイッチへのケーブル接続性を喪失したＰＨＢおよびＩＯバスが使用するための４本のレーンが解放される。ある態様において、解放されるレーンは、一般には、ｘ８ＰＣＩｅバス中のレーン４〜７である。ある態様によれば、ＰＨＢまたはルート・ポートは、ＰＣＩｅリンク接続（またはケーブル）の障害または喪失に関して、リンク停止イベントなどのリンク状態変化イベントをＣＰＵファームウエアに信号伝達して、ＣＰＵファームウエアがケーブルまたはリンクの作動状態を点検するよう促す。他の実施形態では、ＣＰＵファームウエアが同様にケーブル障害を点検するよう促すため、他の表示またはメカニズムを利用することができる。
【００２９】
ある態様によれば、ＣＰＵファームウエアは、ケーブルを喪失したＰＨＢもｘ４バスに設定する。前述したように、「マルチプレクサ」またはクロスポイント電気スイッチを利用して、全レーンを、各ＰＨＢから両方のケーブルに経路させることができる。しかして、ケーブル１３４、１３６の一つに障害が生じたとき、フェイルオーバ・メカニズムが開始され、ＣＰＵファームウエアは、ＣＰＵ端部のマルチプレクサが、ケーブルを喪失したＰＨＢからのあるレーン・セット（通常はレーン０〜３）を他方のアクティブなＰＨＢケーブルの使われていないレーン（通常はレーン４〜７）に再経路させるよう、該マルチプレクサを設定する。また、前述のように、スイッチ端部のマルチプレクサは、各ケーブル内のレーンのサブセットをいずれのスイッチにも再経路させることができる。同様に、フェイルオーバ・メカニズムの一部として、ＣＰＵファームウエアは、アクティブなＰＨＢケーブルを介してＰＣＩｅスイッチ上のＭＵＸ制御デバイスに通信し、マルチプレクサが直ちにＰＨＢのアクティブなケーブルのレーン４〜７を他方スイッチのレーン０〜３に経路させるように、該制御デバイスを設定する。これにより、ケーブル接続を喪失したＰＨＢのレーン０〜３は、アクティブに接続されているケーブル中のＰＨＢのレーン４〜７を利用して、当初それが接続されていたスイッチのレーン０〜３に連結され、一方、アクティブなＰＨＢレーン０〜３の同一ケーブル上の対応スイッチのレーン０〜３への接続性は、ＰＣＩｅダウンシフト・プロトコル以外の妨害を受けることなく維持される。
【００３０】
例えば、図３は、ケーブル１３２に障害が発生し、ケーブル１３０だけがアクティブな場合のケーブル・フェイルオーバ・メカニズムを示す。ＣＰＵは、ケーブル１３２の障害を検出し、それに応じ、レーン・ダウンシフトを用い、バス１３０および１３２中のアクティブなレーンの数をｘ８バスからｘ４バスに低減する。この例において、レーン・ダウンシフトは、ＰＨＢ１０６がレーン・セット１１０（レーン０〜３）だけを使用するようにさせ、ＰＨＢ１０８がレーン・セット１１４（レーン０〜３）だけを使用するようにさせる。ＣＰＵファームウエアは、ＭＵＸ２０２ｃに対し、レーン・セット１１４とアクティブなバス１３０のレーン４〜７との間に接続を確立するよう命令する。ＣＰＵファームウエアは、同時に、アクティブなケーブル１３４のＩＯバス１３０を使って、ＭＵＸ制御デバイス２０４ａと通信する。ＭＵＸ制御デバイス２０４ａは、ＭＵＸ２０２ｄに対し、バス１３０のレーン４〜７とＰＣＩｅスイッチ１４４のレーン０〜３との間に接続を確立するよう命令する。しかして、これにより、ケーブル・フェイルオーバ・メカニズムは、ケーブル接続を喪失したＰＨＢ１０８のレーン０〜３を、アクティブに接続されているケーブル１３４中のＰＨＢ１０６のレーン４〜７を利用して、当初それが接続されていたＰＣＩｅスイッチ１４４のレーン０〜３に連結する。
【００３１】
ある態様によれば、失われたケーブル接続性を修復するサービス処置が完了次第、ＣＰＵファームウエアは、修復されたケーブル接続性について通知され（あるいは、これに換えて電子的ケーブル存在信号を介して検出することができ）、フェイルオーバ・メカニズムの過程で行われたＭＵＸの設定を逆に戻し、しかしてレーン・マルチプレクサの設定を変更し、各ＰＨＢに対するレーンの全てが、それらに接続されたスイッチのアップストリーム・ポートへの対応ケーブルを直接通るよう再経路させることができる。
【００３２】
図４は、本開示のある実施形態による、ＣＰＵ端部およびスイッチ端部の両方にマルチプレクサを用いた、図２および３のＰＣＩｅシステム使った、ケーブル・フェイルオーバ・メカニズムを備えるための例示的プロセス４００を示す流れ図である。４０２において、ＣＰＵファームウエアは、ＰＨＢ１０６および１０８をこれらの各スイッチ１４２および１４４にそれぞれ接続するケーブル１３４および１３６中の障害について点検する。４０４で、ＣＰＵファームウエアが、例えばケーブル１３６に対し、ケーブル中の障害を検出した場合、次いで４０６において、ＣＰＵファームウエアは、バス１３０および１３２の両方をｘ８からｘ４バスにダウンシフトする。４０８において、該ファームウエアは、ＣＰＵ端部のＭＵＸ２０２ｃに対し、ケーブル障害を有するＰＨＢのレーン・セット１１４をアクティブなバス１３０のレーン４〜７に切り替えるよう命令する。４１０で、該ファームウエアは、スイッチ端部のＭＵＸ制御デバイス２０４ａを使って、ＭＵＸ２０２ｄに対し、アクティブなバス１３０のレーン４〜７をスイッチ１４４のレーン０〜３に切り替えるよう命令する。４１２において、ケーブル１３６の全面的接続性が修復されていない場合、プロセス４００は、フェイルオーバ・モードでオペレーションを継続し、ケーブル１３６の接続性の修復についての点検を続ける。４１２で、ＣＰＵファームウエアが、ケーブル１３６の接続性修復を検出した場合、ＰＣＩｅシステムは、ｘ８バスに復元されたバスを用いる図２のベース・オペレーションに復帰する。
【００３３】
ある態様によれば、エレクトロニクス・コスト低減の利点およびパッケージ要求事項を達成するために、レーン多重化エレクトロニクス（またはＭＵＸ）をケーブルのＣＰＵ端部上から除去することができる。しかしながら、これは、これらの冗長構成に用いられた２本のケーブルの間の限られたケーブル長許容差を規定する電子タイミング要求事項に起因して、ケーブル長さが制限され、一部のＩＯシャーシケーブル配線構成が限定されるという不利点を有する。各冗長構成は、フェイルオーバおよび修復メカニズムのファームウエア・シーケンシングに、各付随する違いを有する。当業者は、特定のＰＣＩｅ実装の必要性に適したどれかの冗長構成を選択することができる。
【００３４】
図５は、本開示のある実施形態による、ケーブル・フェイルオーバ・メカニズムを備えるための例示的オペレーション５００を示す流れ図である。
【００３５】
オペレーション５００は、５０２で、第一ＰＣＩｅブリッジと第一ＩＯデバイスとの間で、第一ケーブルを介し該第一ＰＣＩｅブリッジのレーンの第一セットを用いて、バス搬送ビットの第一セットを交換することにより開始される。バス搬送ビットは、一般に、バス上を送信されるデータのビットをいう。５０４において、第一ケーブル中で障害が検出される。第一ケーブル中で障害が検出されるのに応じ、５０６で、バス搬送ビットの第一セットが、第二ＰＣＩｅブリッジと第二ＩＯデバイスとを接続する第二ケーブルの使われていない部分を用いて、第一ＰＣＩｅブリッジと第一ＩＯデバイスとの間で交換される。
【００３６】
図６は、本開示のある実施形態による、スイッチ端部にだけマルチプレクサを用いたフェイルオーバ・メカニズムを備えるためのＰＣＩｅシステム６００のベース・オペレーションを示す例示的流れ図である。
【００３７】
図６に示されるように、レーン・マルチプレクサ（ＭＵＸ）（またはクロスポイント電気スイッチ）２０２ｂおよび２０２ｄは、ケーブル１３４および１３６のスイッチ端部上で、バス１３０および１３２の各々のレーン・セットの間でのレーン切り替えを可能にする。しかしながら、ＣＰＵ端部にはＭＵＸはなく、レーン・セットは直接ケーブルに接続されている。ある態様において、ＰＣＩｅシステムのベース・オペレーションの間、ケーブル１３４および１３６の両方はアクティブである。以下は、ベース・オペレーションの間のＰＣＩｅシステム６００の典型的構成である。
○  ＣＰＵ端部において、
○  ＰＨＢ１０６に対し、レーン・セット１１０は、ＣＣ１６０ａに直接接続し、レーン・セット１１２は、ＣＣ１６０ｃに直接接続している。
○  ＰＨＢ１０８に対し、レーン・セット１１４は、ＣＣ１６０ｃに直接接続し、レーン・セット１１６は、ＣＣ１６０ｃに直接接続している。
○  スイッチ端部において、
○  ＭＵＸ２０２ｂは、レーン・セット１１０および１１２をＰＣＩｅスイッチ１４２に接続しており、これを使ってレーン・セット１１０と１１２との間で切り替えを行うことができる。
○  ＭＵＸ２０２ｄは、レーン・セット１１４および１１６をＰＣＩｅスイッチ１４４に接続しており、これを使ってレーン・セット１１４と１１６との間で切り替えを行うことができる。
しかして、ベース・オペレーションの間、バス１３０のレーン・セット１１０および１１２は、ＰＨＢ１０６をスイッチ１４２に接続し、バス１３２のレーン・セット１１４および１１６は、ＰＨＢ１０８をスイッチ１４４に接続している。ある態様では、ＣＰＵ端部において、レーン・スワッピングを利用して、全レーンを各ＰＨＢから両方のケーブルに経路させることができる。例えば、レーン・セット１１４をレーン・セット１１６とスワップし、これにより、レーン・セット１１４をケーブル１６０ｃに換えて１６０ａを通って経路させることが可能である。同様に、レーン・セット１１０と１１２とをスワップし、各レーン・セットをケーブル１６０ａおよび１６０ｂのどちらでも通って経路させることができる。上記のパラグラフで示したように、スイッチ端部のＭＵＸ２０２ｂおよび２０２ｄは、各ケーブル内のレーンのサブセットをいずれのスイッチにも再経路させることを可能にする。当然ながら、当業者は、これらＭＵＸの数および構成が例示のためだけのものであって、本開示のさまざまな態様を実装するため、ＭＵＸの任意の数および任意の構成が使用可能であることをよく理解していよう。
【００３８】
ある態様によれば、ＣＰＵファームウエアは、ＣＰＵ端部においてレーン・スワッピングを制御する。既に説明したように、ＣＰＵファームウエアはＰＨＢのオペレーションを制御し、ＭＵＸ２０２ｂおよび２０２ｄは、例えば、ＭＵＸ制御デバイス２０４ａおよび２０４ｂなど、スイッチ１４２および１４４の何れか一つに接続された一つ以上のデバイス（またはＥＰ）によって制御される。また、ＭＵＸ制御デバイス２０４ａおよび２０４ｂの各々は、ＭＵＸ２０２ｂおよび２０２ｄの両方を制御することができる。
【００３９】
図７は、本開示のある実施形態による、図６のＰＣＩｅシステムでケーブル障害が検出されるのに応じて用いられるフェイルオーバ・メカニズムを示す例示図である。図６に関して前述したように、ベース・オペレーションの間、ＰＣＩｅバス１３０および１３２の各々の全てのレーンは、ＰＨＢと、ＩＯシャーシ中のそれらそれぞれのスイッチとの間に接続されている。しかして、２つのｘ８ＰＨＢ１０６および１０８の各々は、バス１３０、１３２中の全８本のレーンをＩＯシャーシ中のそれぞれのスイッチに接続する。ケーブル１３４、１３６の一つが接続性を喪失したとき、ＣＰＵファームウエアは、ＰＣＩｅ「レーン・ダウンシフト」を用い、他方のＰＨＢとその対応スイッチの間のアクティブなレーンの数を、例えば、ｘ８バスからｘ４バスに減らすなどして低減する。これによって、スイッチへのケーブル接続性を喪失したＰＨＢおよびＩＯバスが使うための４本のレーンが解放される。ある態様において、解放されるレーンは、通例、ｘ８ＰＣＩｅバス中のレーン４〜７である。
【００４０】
また、ある態様によれば、ＣＰＵファームウエアは、ケーブルを喪失したＰＨＢもｘ４バスに設定する。図６のＰＣＩｅシステムのベース・オペレーションに関して既に説明したように、レーン・スワッピングを用いて、全レーンを各ＰＨＢから両方のケーブルに経路させることができる。しかして、ケーブル障害の状態において、フェイルオーバ・メカニズムが開始され、ＣＰＵファームウエアは、ケーブルを喪失したＰＨＢのレーン・セットをスワップし、ケーブルを喪失したＰＨＢからのあるレーン・セット（通例、レーン０〜３）を他方のアクティブなＰＨＢケーブルの使われていないレーン（通例、レーン４〜７）に再経路させる。また、前述のように、スイッチ端部のマルチプレクサは、各ケーブル内のレーンのサブセットを、どちらのスイッチにも再経路させることができる。しかして、フェイルオーバ・メカニズムの一部として、ＣＰＵファームウエアは、アクティブなＰＨＢケーブルを介してＰＣＩｅスイッチ上のＭＵＸ制御デバイスに通信し、マルチプレクサが直ちにアクティブなケーブルのレーン４〜７を、ケーブルを喪失したＰＨＢが当初接続されていた他方のスイッチのレーン０〜３に経路させるように設定する。これにより、ケーブル接続を喪失したＰＨＢのレーン０〜３は、アクティブに接続されているケーブル中のＰＨＢのレーン４〜７を利用して、当初それが接続されていたスイッチのレーン０〜３に連結され、一方、アクティブなＰＨＢレーン０〜３の同一ケーブル上の対応スイッチのレーン０〜３への接続性は、ＰＣＩｅダウンシフト・プロトコル以外の妨害を受けることなく維持される。
【００４１】
例えば、図７に示されるように、ケーブル１３２に障害が生じ、ケーブル１３０だけがアクティブとなる。ＣＰＵがケーブル１３２の障害を検出し、それに応じて、ＣＰＵファームウエアは、レーン・ダウンシフトを用い、バス１３０および１３２中のアクティブなレーンの数をｘ８バスからｘ４バスに低減する。この例において、レーン・ダウンシフトは、ＰＨＢ１０６がレーン・セット１１０（レーン０〜３）だけを使用するようにさせ、ＰＨＢ１０８がレーン・セット１１４（レーン０〜３）だけを使用するようにさせる。ＣＰＵファームウエアは、ＰＨＢ１０８に対し、レーン・セット１１４と１１６との間でスワップし、レーン・セット１１４（レーン０〜３）が、障害のあるケーブル１３６の代わりに、アクティブなケーブル１３４中のバス１３０のレーン４〜７を通って経路させるよう命令する。ＣＰＵファームウエアは、同時に、アクティブなケーブル１３４のＩＯバス１３０を使って、ＭＵＸ制御デバイス２０４ａに通信し、ＭＵＸ２０２ｄにバス１３０のレーン４〜７とＰＣＩｅスイッチ１４４のレーン０〜３との間の接続を確立するよう命令する。これにより、ケーブルフェイルオーバ・メカニズムは、アクティブに接続されているケーブル１３４中のＰＨＢ１０６のレーン４〜７を利用して、ケーブル接続を喪失したＰＨＢ１０８のレーン０〜３を、ＰＨＢ１０８が当初接続されていたＰＣＩｅスイッチ１４４のレーン０〜３に接続する。
【００４２】
ある態様によれば、失われたケーブル接続性を修復するサービス処置が完了次第、ＣＰＵファームウエアは、修復されたケーブル接続性について通知され（あるいは、これに換えて電子的ケーブル存在信号を介して検出することができ）、レーン・セット１１６と１１４とを逆スワップし、フェイルオーバ・メカニズムの過程で行われたＭＵＸ２０２ｂおよび２０２ｄの設定を元に戻すことができる。
【００４３】
図８は、本開示のある実施形態による、スイッチ端部だけにマルチプレクサを用いた、図６および７のＰＣＩｅシステムを使った、ケーブル・フェイルオーバ・メカニズムを備えるための例示的プロセス８００を示す流れ図である。８０２において、ＣＰＵファームウエアは、ＰＨＢ１０６および１０８をそれらそれぞれスイッチ１４２および１４４に接続するケーブル１３４および１３６中に障害がないか点検する。８０４で、ＣＰＵファームウエアが、例えばケーブル１３６などのケーブル中に不具合を検出した場合、プロセス８００は、８０６に進み、ＣＰＵファームウエアが１３０および１３２両方のバスをｘ８からｘ４バスにダウンシフトする。８０８において、該ファームウエアは、ＣＰＵ端部のＰＨＢ１０８に対し、レーン・セット１１４と１１６との間でスワップを行い、アクティブなバス１３０のレーン４〜７を使ってレーン・セット１１４を経路させるよう命令する。８１０で、該ファームウエアは、ＭＵＸ２０２ｄに対し、スイッチ端部のＭＵＸ制御デバイス２０４ａを使って、バス１３０のレーン４〜７とＰＣＩｅスイッチ１４４のレーン０〜３との間の接続を確立するよう命令する。８１２において、ケーブル１３６が全面的接続性を回復していない場合、プロセス８００は、フェイルオーバ・モードでオペレーションを継続し、ケーブル１３６の接続性の回復についての点検を続ける。８１２で、ＣＰＵファームウエアがケーブル１３６の接続性回復を検出した場合、ＰＣＩｅシステムは、ｘ８バスに復元されたバスを用いる、図６のベース・オペレーションに復帰される。
【００４４】
図９は、本開示のある実施形態による、ケーブル・フェイルオーバ・メカニズムを備えるための例示的オペレーション９００を示す流れ図である。図示のように、オペレーション９００は、９０２で、第一ＰＣＩｅブリッジと第一ＩＯデバイスとの間で、第一ケーブルを介し該第一ＰＣＩｅブリッジのレーンの第一セットを用いて、バス搬送ビットの第一セットを交換することによって開始される。９０４において、第一ケーブル中で障害が検出される。第一ケーブル中で障害が検出されるのに応じ、９０６で、第二ケーブルを介し第一ＰＣＩｅブリッジのレーンの第二セットを用いて、第一ＰＣＩｅブリッジと第一ＩＯデバイスとの間でバス搬送ビットの第一セットが交換される。
【００４５】
上記では、本発明の実施形態を参照した。しかしながら、本発明が説明する特定の実施形態に限定されないことを理解すべきである。それどころか、各種の実施形態に関係しているかどうかの如何を問わず、上述の特質およびエレメントの一切の組み合わせは、本発明を実装、実施するものと見なされる。例えば、当業者は、本発明がケーブルを使わない、または複数の物理エンクロージャを必要としないＰＣＩｅリンクにも同等に適用できることをよく理解していよう。本発明は、コンピュータ回路基板に内蔵された配線、あるいはミッドプレーン・コネクタを介するものなどコンピュータ回路基板の間の配線、および同一または隣接物理エンクロージャ内の配線を用いているＰＣＩｅリンクなどの他の実施形態に対しても、ＰＣＩｅリンクの喪失に対するフェイルオーバを備えるために本発明は同等に有用である。また、上記で説明したフェイルオーバ・メカニズムは、ＩＯデバイスまたはアダプタが、スイッチを介して接続されるのに換えて、ＰＨＢに直接接続されているＰＣＩｅ構成にも適用できることはよく理解できよう。また、類似のフェイルオーバ手順を用い、ＭＵＸ制御デバイスを使って、スイッチと該スイッチに接続されたＩＯデバイスとの間の接続障害に対処することもできる。
【００４６】
さらに、本発明の実施形態が、他の可能な対処策または従来技術あるいはその両方に優れる利点を実現できるからといって、所与の実施形態により特定の利点が達成されるかどうかによって本発明が限定されるものではない。しかして、前述の態様、特質、実施形態、および利点は、単なる例示であり、請求項（群）中に明示で記載されている場合を除き、添付の請求項の構成要素または限定事項と見なすべきではない。同様に「本発明」への参照は、本明細書で開示されたどの発明主題事項の一般化としても解釈されてはならず、請求項（群）中に明示で記載されている場合を除き、添付の請求項の構成要素または限定事項と見なしてはならない。
【００４７】
当業者ならよく理解するであろうように、本発明の態様は、システム、方法、またはコンピュータ・プログラムとして具現することができる。従って、本発明の態様は、全体がハードウエアの実施形態、全体がソフトウエアの実施形態（ファームウエア、常駐ソフトウエア、マイクロコードなどを含む）、または、本明細書では全て一般的に「回路」、「モジュール」、または「システム」と呼ぶこともある、ソフトウエアおよびハードウエア態様を組み合わせた実施形態の形をとることができる。さらに、本発明の態様は、コンピュータ可読プログラム・コードをそこに有する一つ以上のコンピュータ可読媒体中に具現された、コンピュータ・プログラムの形をとることもできる。
【００４８】
一つ以上のコンピュータ可読媒体（群）の任意の組み合わせを用いることができる。該コンピュータ可読媒体は、コンピュータ可読信号媒体あるいはコンピュータ可読記憶媒体とすることができる。コンピュータ可読記憶媒体は、例えば、以下に限らないが、電子的、磁気的、光学的、電磁気的、赤外的、または半導体のシステム、装置、またはデバイス、あるいはこれらの任意の適切な組み合わせとすることができる。コンピュータ可読記憶媒体のさらに具体的な例（非包括的リスト）には、一つ以上の配線を有する電気接続、携帯コンピュータ・ディスケット、ハード・ディスク、ランダムアクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、読み取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭ：ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ、またはフラッシュ・メモリ）、光ファイバ、携帯コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、光記憶デバイス、磁気記憶デバイス、またはこれらの任意の適切な組み合わせが含まれよう。本文書のコンテキストにおいて、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスによってあるいはこれらに関連させて使うためのプログラムを包含または格納できる任意の有形媒体であり得る。
【００４９】
コンピュータ可読信号媒体には、コンピュータ可読プログラム・コードをその中に、例えば、ベースバンド中にまたは搬送波の一部として具現する伝播データ信号を含めることができる。かかる伝播信号は、以下に限らないが、電磁気的、光学的、またはこれらの任意の適切な組み合わせを含むさまざまな任意の形をとることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行システム、装置、またはデバイスによってあるいはこれらに関連させて使うためのプログラムを、通信、伝播、または搬送することが可能な、任意のコンピュータ可読媒体であり得る。
【００５０】
コンピュータ可読媒体上に具現されたプログラム・コードは、以下に限らないが、無線、有線、光ファイバ・ケーブル、ＲＦなど、またはこれらの任意の適切な組み合わせを含む任意の適切な媒体を用いて送信することができる。
【００５１】
本発明の態様に対するオペレーションを実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または類似のプログラミング言語などの従来式手続き型プログラミング言語を含め、一つ以上のプログラミング言語の任意の組み合わせで書くことができる。該プログラム・コードは、単独型のソフトウエア・パッケージとして、完全にユーザのコンピュータでまたは部分的にユーザのコンピュータで、あるいは一部をユーザのコンピュータでそして他の部分を遠隔コンピュータで、あるいは完全に遠隔コンピュータまたはサーバで実行することができる。この後者のシナリオでは、該遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）または広域ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）を含め、任意の種類のネットワークを介してユーザのコンピュータに接続することができ、あるいは、（例えば、インターネット・サービス・プロバイダを使ってインターネットを介し）外部のコンピュータに接続をすることができる。
【００５２】
本発明の実施形態による、フローチャート説明図、または、方法、装置（システム）およびコンピュータ・プログラム製品のブロック図、あるいはその両方を参照しながら、上記で本発明の態様を説明した。フローチャート説明図またはブロック図あるいはその両方の各ブロック、およびフローチャート説明図またはブロック図あるいはその両方のブロック群の組合せは、コンピュータ・プログラム命令によって実行可能であることは理解されよう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、特殊用途コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに供給して、マシンを生成し、該命令を該コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行し、上記フローチャートまたはブロック図あるいはその両方の中のブロックまたはブロック群に指定された機能／処置を実行するための手段を生成することができる。
【００５３】
また、これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスに特定の仕方で機能するよう命令できる、コンピュータ可読の媒体の中に格納し、該コンピュータ可読の媒体中に格納された命令が、上記フローチャートまたはブロック図あるいはその両方の中のブロックまたはブロック群に指定された機能／処置を実行する命令を包含する製造品として生成されるようにすることができる。
【００５４】
さらに、これらコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスにロードし、該コンピュータ、他のプログラム可能な装置または他のデバイスに一連のオペレーション・ステップを遂行させ、該コンピュータまたは他のプログラム可能な装置で実行される命令が、上記フローチャートまたはブロック図あるいはその両方の中のブロックまたはブロック群に指定された機能／処置を遂行するためのプロセスを提供する、コンピュータ実行の工程を生成することができる。
【００５５】
これら図の中のフローチャートおよびブロック図は、本発明のさまざまな実施形態による、システム、方法、およびコンピュータ・プログラムの可能なインプリメンテーションのアーキテクチャ、機能、およびオペレーションを示す。これに関し、これらフローチャートまたはブロック図中の各ブロックは、所定の論理機能（群）を遂行するための一つ以上の実行可能命令を含む、コードのモジュール、セグメント、または部分を表し得る。また、ある別のインプリメンテーションにおいて、ブロック中に記載された機能が、図中に記載された順序と違った順序で行われ得ることに留意すべきである。例えば、関与する機能の如何によっては、引き続きに示された２つのブロックが、実際は、ほぼ同時に実行されることがあり、または時によりこれらブロックが逆の順序で実行されることもある。また、ブロック図またはフローチャート説明図あるいはその両方の各ブロック、およびこれらブロック図またはフローチャート説明図中のブロックの組み合わせは、所定の機能または処置を遂行する特殊用途ハードウエア・ベースのシステムによって、または特殊用途ハードウエアおよびコンピュータ命令の組み合わせによって実行できることにも留意する。
【００５６】
前述の説明は、本発明の実施形態を対象としてきたが、その基本的範囲から逸脱することなく、他のさらなる本発明の実施形態を考案することができ、本発明の範囲は添付の請求項によって決定される。
【符号の説明】
【００５７】
２００    ＰＣＩｅシステム
１０４    ＰＣＩｅルート・コンプレックス
１０６    ＰＣＩｅホスト・ブリッジ（ＰＨＢ）
１０８    ＰＣＩｅホスト・ブリッジ（ＰＨＢ）
１１０    レーン・セット
１１２    レーン・セット
１１４    レーン・セット
１１６    レーン・セット
１３０    入力／出力（ＩＯ）バス
１３２    入力／出力（ＩＯ）バス
１３４    物理ケーブル
１３６    物理ケーブル
１４２    ＰＣＩｅスイッチ
１４４    ＰＣＩｅスイッチ
１６０ａ、１６０ｂ、１６０ｃ、１６０ｄ    ケーブル・コネクタ（ＣＣ）
２０２ａ、２０２ｂ、２０２ｃ、２０２ｄ    レーン・マルチプレクサ（ＭＵＸ）
２０４ａ、２０４ｂ    ＭＵＸ制御デバイス
０〜３    高位のレーン
４〜７    低位のレーン
【図１】
0005932287.tif 000002
【図２】
0005932287.tif 000003
【図３】
0005932287.tif 000004
【図４】
0005932287.tif 000005
【図５】
0005932287.tif 000006
【図６】
0005932287.tif 000007
【図７】
0005932287.tif 000008
【図８】
0005932287.tif 000009
【図９】
0005932287.tif 000010