第1のPCIEブリッジと第1の入出力IOデバイスとの間の接続についてフェイルオーバー動作を提供するための方法であって、前記第1のPCIEブリッジと前記第1のIOデバイスとの間で、前記第1のPCIEブリッジの第1のレーンセットを用いて第1のリンクを介して第1のバス伝送ビットセットを交換することと、前記第1のリンクにおける故障の検出に応答して、前記第1のPCIEブリッジと前記第1のIOデバイスとの間で、前記第1のPCIEブリッジの第2のレーンセットを用いて第2のリンクを介して第2のバス伝送ビットセットを交換するために、PCIEブリッジエンドにおいて、前記第1のレーンセットの使用から前記第2のレーンセットの使用にスワップすることであって、前記第2のリンクが第2のPCIEブリッジを第2のIOデバイスに接続する、ことと、前記第1のリンクにおける前記故障の検出に応答して、前記第1のPCIEブリッジと前記第1のIOデバイスとの間で、前記第2のレーンセットを用いて前記第2のリンクを介して前記第2のバス伝送ビットセットを交換するために、IOデバイスエンドにおいて、前記第1のレーンセットの使用から前記第2のレーンセットの使用にスイッチすることと、を含む、方法。前記第1のリンクにおける前記故障の検出に応答して、前記第2のレーンセットの使用を停止するように前記第1のPCIEブリッジをコンフィギュレーションすることを更に含む、請求項1に記載の方法。前記第1のリンクにおける前記故障の検出に応答して、前記第1のリンクを用いて前記第2のPCIEブリッジの第3のレーンセットを用いて前記第2のIOデバイスと第3のバス伝送ビットセットを交換する前記第2のPCIEブリッジが、前記第3のレーンセットの使用を停止するようにコンフィギュレーションすることを更に含む、請求項1に記載の方法。前記第1および第2のPCIEブリッジの各々がPCIEホストブリッジPHBを含む、請求項1に記載の方法。前記第1および第2のIOデバイスの各々がPCIEスイッチを含む、請求項1に記載の方法。前記第1および第2のPCIEブリッジがPCIEルートコンプレックスに収容されている、請求項1に記載の方法。第1のPCIEブリッジと第1の入出力IOデバイスとの間の接続についてフェイルオーバー動作を提供するための装置であって、前記第1のPCIEブリッジを前記第1のIOデバイスに接続する第1のリンクであって、前記第1のPCIEブリッジと前記第1のIOデバイスとの間で、前記第1のPCIEブリッジの第1のレーンセットを用いて第1のリンクを介して第1のバス伝送ビットセットを交換するために用いられる、第1のリンクと、第2のPCIEブリッジを第2のIOデバイスに接続する少なくとも1つの第2のリンクと、を含み、前記第1のリンクにおける故障の検出に応答して、前記第1のPCIEブリッジと前記第1のIOデバイスとの間で、前記第1のPCIEブリッジの第2のレーンセットを用いて前記第2のリンクを介して第2のバス伝送ビットセットを交換するために、PCIEブリッジエンドにおいて、前記第1のPCIEブリッジが前記第1のレーンセットの使用から前記第2のレーンセットの使用にスワップし、更に、前記第1のPCIEブリッジと前記第1のIOデバイスとの間で、前記第2のレーンセットを用いて前記第2のリンクを介して前記第2のバス伝送ビットセットを交換するために、IOデバイスエンドにおいて、前記第1のレーンセットの使用から前記第2のレーンセットの使用にスイッチするための少なくとも1つのスイッチを含む、装置。前記第1のリンクにおける前記故障の検出に応答して、前記第2のレーンセットの使用を停止するように前記第1のPCIEブリッジがコンフィギュレーションされている、請求項7に記載の装置。前記第1のリンクにおける前記故障の検出に応答して、前記第1のリンクを用いて前記第2のPCIEブリッジの第3のレーンセットを用いて前記第2のIOデバイスと第3のバス伝送ビットセットを交換する前記第2のPCIEブリッジが、前記第3のレーンセットの使用を停止するようにコンフィギュレーションされている、請求項7に記載の装置。前記第1および第2のPCIEブリッジが中央演算処理装置CPUファームウェアによって制御される、請求項7に記載の装置。前記スイッチを制御するために前記第2のIOデバイスに接続され、前記CPUファームウェアによって制御される制御デバイスを更に含む、請求項7に記載の装置。前記第1および第2のPCIEブリッジの各々がPCIEホストブリッジPHBを含む、請求項7に記載の装置。前記第1および第2のIOデバイスの各々がPCIEスイッチを含む、請求項7に記載の装置。前記第1および第2のPCIEブリッジがPCIEルートコンプレックスに収容されている、請求項7に記載の装置。第1のPCIEブリッジと第1の入出力IOデバイスとの間の接続についてフェイルオーバー動作を提供するためのコンピュータプログラムであって、コンピュータ読み取り可能媒体であって、前記第1のPCIEブリッジと前記第1のIOデバイスとの間で、前記第1のPCIEブリッジの第1のレーンセットを用いて第1のリンクを介して第1のバス伝送ビットセットを交換し、前記第1のリンクにおける故障の検出に応答して、前記第1のPCIEブリッジと前記第1のIOデバイスとの間で、前記第1のPCIEブリッジの第2のレーンセットを用いて第2のリンクを介して第2のバス伝送ビットセットを交換するために、PCIEブリッジエンドにおいて、前記第1のレーンセットの使用から前記第2のレーンセットの使用にスワップし、前記第2のリンクが第2のPCIEブリッジを第2のIOデバイスに接続し、前記第1のリンクにおける前記故障の検出に応答して、前記第1のPCIEブリッジと前記第1のIOデバイスとの間で、前記第2のレーンセットを用いて前記第2のリンクを介して前記第2のバス伝送ビットセットを交換するために、IOデバイスエンドにおいて、前記第1のレーンセットの使用から前記第2のレーンセットの使用にスイッチする、ためのコードを含むコンピュータ読み取り可能媒体を含む、コンピュータプログラム。前記第1のリンクにおける前記故障の検出に応答して、前記第2のレーンセットの使用を停止するように前記第1のPCIEブリッジをコンフィギュレーションすることを更に含む、請求項15に記載のコンピュータプログラム。前記第1のリンクにおける前記故障の検出に応答して、前記第1のリンクを用いて前記第2のPCIEブリッジの第3のレーンセットを用いて前記第2のIOデバイスと第3のバス伝送ビットセットを交換する前記第2のPCIEブリッジが、前記第3のレーンセットの使用を停止するようにコンフィギュレーションすることを更に含む、請求項15に記載のコンピュータプログラム。前記第1および第2のPCIEブリッジの各々がPCIEホストブリッジPHBを含む、請求項15に記載のコンピュータプログラム。前記第1および第2のIOデバイスの各々がPCIEスイッチを含む、請求項15に記載のコンピュータプログラム。前記第1および第2のPCIEブリッジがPCIEルートコンプレックスに収容されている、請求項15に記載のコンピュータプログラム。多くの場合、最近のサーバクラスのコンピュータは、主なIOアダプタ技術としてPCIIOアダプタを用いる。CPUエンクロージャは、特定のサーバのIOオプションをカスタマイズするために限られた数のPCIEアダプタスロットを含むことが多い。しかしながら、CPUシャーシパッケージングは通例これを極めて少数のかかるスロットに限定し、一方で、シャーシ当たりのコンピュータ電力はマルチコアプロセッサチップによって著しく大きくなっている。一般に、サーバは、1つ以上の追加のIO拡張シャーシにおいてPCIアダプタスロットにCPUを接続するための機構を提供する。例えば、PCIEシステムでは、PCIホストブリッジPHBとも称されるPCIルートポートPRPは、CPU電子機器回路のコンポーネントであり、PCIバスを生成して、これが直接に単一のPCIEIOアダプタスロットまたはIO拡張シャーシにおけるPCIEスイッチのいずれかに接続する。IO拡張シャーシは、そのスイッチの下の多数のPCIEアダプタスロットにPHBバスを拡張させる。IO拡張では、拡張シャーシに1つ以上のPCIEアダプタスロットを配置し、それらのスロットをCPUシャーシ内のPHBに接続する必要がある。典型的に、これらのIO拡張シャーシは物理的に異なる電子機器回路シャーシまたはエンクロージャであるので、CPUシャーシ内のPHBとIO拡張シャーシ内のPCIEアダプタスロットとの間の電子的接続には、これらのエンクロージャ間の物理的ケーブル接続が必要である。これらのケーブルは、PHBとPCIEアダプタスロットとの間で数インチを超える相互接続距離を必要とし、CPUおよびIO拡張エンクロージャを含む異なる物理ラック間に延出する場合さえある。本開示のいくつかの態様は、第1のPCIEブリッジと第1の入出力IOデバイスとの間の接続についてフェイルオーバー動作を提供するための方法を提供する。この方法は、概して、第1のPCIEブリッジと第1のIOデバイスとの間で、第1のPCIEブリッジの第1のレーンセットを用いて第1のリンクを介して第1のバス伝送ビットセットを交換することと、第1のリンクにおける故障の検出に応答して、第1のPCIEブリッジと第1のIOデバイスとの間で、第1のPCIEブリッジの第2のレーンセットを用いて第2のリンクを介して第2のバス伝送ビットセットを交換するために、PCIEブリッジエンドにおいて、第1のレーンセットの使用から第2のレーンセットの使用にスワップすることであって、第2のリンクが第2のPCIEブリッジを第2のIOデバイスに接続する、ことと、第1のリンクにおける故障の検出に応答して、第1のPCIEブリッジと第1のIOデバイスとの間で、第2のレーンセットを用いて第2のリンクを介して第2のバス伝送ビットセットを交換するために、IOデバイスエンドにおいて、第1のレーンセットの使用から第2のレーンセットの使用にスイッチすることと、を含む。本発明のいくつかの態様は、第1のPCIEブリッジと第1の入出力IOデバイスとの間の接続についてフェイルオーバー動作を提供するための装置を提供する。この装置は、第1のPCIEブリッジを第1のIOデバイスに接続する第1のリンクであって、第1のPCIEブリッジと第1のIOデバイスとの間で、第1のPCIEブリッジの第1のレーンセットを用いて第1のリンクを介して第1のバス伝送ビットセットを交換するために用いられる、第1のリンクと、第2のPCIEブリッジを第2のIOデバイスに接続する少なくとも1つの第2のリンクと、を含み、第1のリンクにおける故障の検出に応答して、第1のPCIEブリッジと第1のIOデバイスとの間で、第1のPCIEブリッジの第2のレーンセットを用いて第2のリンクを介して第2のバス伝送ビットセットを交換するために、PCIEブリッジエンドにおいて、第1のPCIEブリッジが第1のレーンセットの使用から第2のレーンセットの使用にスワップし、更に、第1のPCIEブリッジと第1のIOデバイスとの間で、第2のレーンセットを用いて第2のリンクを介して第2のバス伝送ビットセットを交換するために、IOデバイスエンドにおいて、第1のレーンセットの使用から第2のレーンセットの使用にスイッチするための少なくとも1つのスイッチを含む。本発明のいくつかの態様は、第1のPCIEブリッジと第1の入出力IOデバイスとの間の接続についてフェイルオーバー動作を提供するためのコンピュータプログラムを提供する。このコンピュータプログラムは、概して、コードを含むコンピュータ読み取り可能媒体を含む。このコードは、概ね、第1のPCIEブリッジと第1のIOデバイスとの間で、第1のPCIEブリッジの第1のレーンセットを用いて第1のリンクを介して第1のバス伝送ビットセットを交換し、第1のリンクにおける故障の検出に応答して、第1のPCIEブリッジと第1のIOデバイスとの間で、第1のPCIEブリッジの第2のレーンセットを用いて第2のリンクを介して第2のバス伝送ビットセットを交換するために、PCIEブリッジエンドにおいて、第1のレーンセットの使用から第2のレーンセットの使用にスワップし、第2のリンクが第2のPCIEブリッジを第2のIOデバイスに接続し、第1のリンクにおける故障の検出に応答して、第1のPCIEブリッジと第1のIOデバイスとの間で、第2のレーンセットを用いて第2のリンクを介して第2のバス伝送ビットセットを交換するために、IOデバイスエンドにおいて、第1のレーンセットの使用から第2のレーンセットの使用にスイッチする、ためのコードを含む。上述の態様を達成し、詳細に理解することができるように、添付図面を参照して、先に簡潔にまとめた本発明の実施形態の更に具体的な説明を行うことができる。しかしながら、添付図面は本発明の典型的な実施形態を図示するに過ぎず、従ってその範囲の限定と見なすべきではない。本発明は他の等しく有効な実施形態を認めることができるからである。図1は、本開示の一実施形態に従った、PCIエクスプレスPCIe構造トポロジを組み込んだコンピュータシステム100を示す例示的な図である。コンピュータシステムは、ルートコンプレックス104に接続されたCPU102を含む。ルートコンプレクス104は通例、CPU102の代わりにトランザクション要求を発生する。ルートコンプレクスは、機能的にディスクリートデバイスとして実施するか、またはプロセッサ例えばCPU102内に統合することができる。ルートコンプレクス104は2つ以上のPCIエクスプレスポートを含むことができ、多数のPCIEスイッチデバイスをこれらのポートに接続するかまたは1つ以上のポートからカスケード接続することができる。ルートコンプレクス104は、例えばPHB106および108のような多数のPCIEホストブリッジPHBを含むことができる。いくつかの態様によれば、PHB106、108は、ディスクリートデバイスとして実施するか、またはルートコンプレクス104内に統合することができる。各PHB106、108は、入出力I/Oバス130、132を介して対応するPCIeスイッチ142、144に接続することができる。例えば、PHB106はバス130を介してPCIEスイッチ142に接続し、PHB108はバス132を介してPCIeスイッチ144に接続する。スイッチ142、144の各々は、更にリンク152を介してPCIeエンドポイントEP150に接続することができる。スイッチ142、144は通例、それぞれのI/Oバス130、132にファンアウトを提供する。そうすることによって、PHB対PCIEアダプタの比を高くし、CPUシャーシにおいて必要なPHBの数を最小限に抑えることができる。いくつかの態様によれば、スイッチ142、144は1つ以上のポートを有し、これにリンク152を介してコネクタがアタッチされ、各コネクタは更にエンドポイント150にアタッチされている。エンドポイントは通例、リンク152を用いて、コンピュータシステム上の他のいずれかのデバイス別のエンドポイントを含むとの間でデータを処理する。スイッチ142、144の各々は、上流のルートポートと、コンピュータシステム内でこれらのスイッチに接続されたエンドポイントデバイス150との間で、多数のポイントツーポイント接続を確立する。リンクとは、コンピュータシステム100内の2つのコンポーネント間の全二重通信路である。論理的には、ポートとは、コンポーネントとPCIエクスプレスリンクとの間のインタフェースである。物理的には、ポートとは、リンクを規定する同一チップ上に位置する送信器および受信器のグループである。1つのリンクは少なくとも1つのレーンをサポートしなければならない。各レーンは差動信号対セット1つの伝送対および1つの受信対を表す。帯域幅のスケーリングのために、リンクはxNで示される多数のレーンを集約することができる。ここでNはサポートされるリンク幅のいずれか1つである。例えば、x1は1つの物理レーンを有するリンクを示し、x8は8つの物理レーンを有するリンクを示す。PCIエクスプレスは、PCIエクスプレスに準拠した周辺デバイスの異なる帯域幅要件に対応するために、単一レーン、4レーン、8レーン、16レーン、および32レーン等の多数の物理レーンを提供する。いくつかの態様においては、IOバス130、132の各々も多数のレーンを有することができ、このレーン数は典型的にエンドポイント150に接続するリンクのレーン数に相当する。例えば、バス130および132の各々はx8バスである。いくつかの態様によれば、PCIEリンクは、ケーブル、埋め込みボード配線、ボードツーボード接続、および、PCIEブリッジとPCIEスイッチまたはデバイスとの間の通信を可能とする他のいずれかの接続を含む。いくつかの態様によれば、リンク/バスのレーンを多数のレーンセットへと物理的に分割することができる。例えば、PHB106およびPCIeスイッチ142を接続するI/Oバス130は、各々4レーンを有する2つのレーンセット110および112に分割される。同様に、PHB108をPCIeスイッチ144に接続するI/Oバス132は、各々4レーンを有する2つのレーンセット114および116に分割される。リンク/バスの各々を2つのレーンセットに分割することは単に例示の目的のために過ぎず、バス/リンクは、各レーンセットが最小1レーンを有するいかなる数のレーンセットにも分割可能であることは認められよう。例えば、x16バス/リンクを、2つのx8バス、4つのx4バス、8つのx2バス、または16のx1バスに分割することができる。いくつかの実施形態によれば、このバスの物理的分割はソフトウェア制御を受けず、ハードウェア設計に基づいた永久的なものである。起動時に、PCIエクスプレスデバイスは通例、スイッチと交渉を行って、そのリンクを構成することができるレーンの最大数を決定する。このリンク幅交渉は、リンク自体の最大幅すなわちリンクを構成する実際の物理信号対の数、デバイスがアタッチされるコネクタの幅、およびデバイス自体の幅に依存する。いくつかの態様においては、PCIeスイッチ142、144が物理的に異なる電子シャーシまたはエンクロージャであるために、PHBを各スイッチに接続するI/Oバスの各々は、物理ケーブル134、136等の別個のリンクを通っている。例えば、バス130はケーブル134を通り、バス132はケーブル136を通っている。各ケーブル134、136の端部に設けられたケーブルコネクタCC160は、レーンセットとケーブルとの間の電気的接続を提供する。いくつかの態様によれば、CPUおよびPCIeスイッチを外部のケーブルに接続することから生じる1つの問題として、ケーブルまたはケーブルコネクタの故障のためにそのケーブル上で通信を行っているIOスロットに対する接続が失われること、一方または他方のシャーシにおけるケーブル接続が偶発的に外れること、またはケーブルを修理するためにケーブルを外す必要があるサービスアクションがある。いくつかの態様によれば、別個の物理ケーブルを用いて各PHB106、108をそれぞれスイッチ142、144に接続することで冗長ケーブルを設け、一方または他方のケーブル134、136が故障した場合にフェイルオーバー機構を提供するのに役立つ。いくつかの態様においては、フェイルオーバー機構によって、第1のPHBおよび第1のPCIeスイッチを接続しているケーブルが故障した場合、第2のアクティブなケーブルを用いて第1のPHBと第1のPCIeスイッチとの間で少なくともデータの一部を交換することができる。第2のアクティブなケーブルとは、第2のPHBおよび第2のPCIeスイッチを接続しているものである。例えば、コンピュータシステム100によってケーブル136が故障したことが検出されると、依然としてアクティブであり得るケーブル134内のレーンのいくつかを用いてPHB108とスイッチ144との間でデータを交換することができ、一方でPHB106およびスイッチ142はケーブル134内の他のレーン上でデータ交換を続ける。PCIeアーキテクチャでは、レーンのダウンシフトおよびアップシフトが可能である。これによってCPUファームウェアは、PHBと対応するスイッチとの間でアクティブなレーン数を減らすダウンシフトすることができ、元のアクティブレーン数に復元するアップシフトすることができる。いくつかの態様では、このPCIeシステムの機能を用いてケーブル故障中にフェイルオーバー機構を提供する。例えば、ケーブル136において故障が検出されると、双方のバス130および132は1つだけのレーンセットを用いるようにダウンシフトされる。このため、各バスはx8バスからx4バスにダウンシフトされる。いったんレーンのダウンシフトが完了すると、バス130の未使用のレーンセットを用いて、PHB108とスイッチ144との間で、バス132のアクティブなレーンセット上のデータを交換する。いくつかの態様においては、バス130のみをx8からx4にダウンシフトし、バス130のイナクティブなレーンセットを用いて、PHB108とスイッチ144との間でデータを交換する。図2は、本開示の一実施形態に従った、CPUエンドおよびスイッチエンドの双方でマルチプレクサを用いてケーブルフェイルオーバー機構を提供するためのPCIEシステム200のベース動作を示す例示的な図である。図2に示すように、PCIeルートコンプレクス104はPHB106および108を含む。PHB106はI/Oバス130を用いてPCIeスイッチ142とデータを交換し、PHB108はI/Oバス132を用いてPCIeスイッチ144とデータを交換する。バス130および132の各々はx8バスである。I/Oバス130は、各々4レーンを有する2つのレーンセット110および112に分割されている。同様に、I/Oバス132は、各々4レーンを有する2つのレーンセット114および116に分割されている。いくつかの態様においては、バス130について、レーンセット110は高次レーン0~3を表し、レーンセット112は低次レーン4~7を表す。バス132についても同様に、レーンセット114は高次レーン0~3を表し、レーンセット116は低次レーン4~7を表す。各ケーブル134、136の端部に設けられたケーブルコネクタ160a~160dは、レーンセットとケーブルとの間の電気的接続を提供する。レーンマルチプレクサMUXまたはクロスポイント電気スイッチ202a~202dは、ケーブル134および136の双方の端部CPUエンドおよびスイッチエンド上で各バス130および132のレーンセット間のレーンスイッチングを可能とする。いくつかの態様においては、PCIeシステムのベース動作中、ケーブル134および136は双方ともアクティブである。以下は、ベース動作中のMUXの典型的なコンフィギュレーションである。CPUエンドにおいて、MUX202aはレーンセット110をCC160aに、レーンセット116をCC160cに接続する。CPUエンドにおいて、MUX202cはレーンセット114をCC160cに、レーンセット112をCC160aに接続する。スイッチエンドにおいて、MUX202bはレーンセット110をPCIeスイッチ142に、レーンセット116をPCIeスイッチ144に接続する。スイッチエンドにおいて、MUX202dはレーンセット114をPCIeスイッチ144に、レーンセット112をPCIeスイッチ142に接続する。従って、ベース動作中、バス130のレーンセット110および112はPHB106をスイッチ142に接続し、バス132のレーンセット114および116はPHB108をスイッチ144に接続する。スイッチにおけるMUXは、PCIeスイッチを含むIOシャーシに統合することができる。いくつかの態様では、CPUエンドにおいて、全てのレーンを各PHBから双方のケーブルへとマルチプレクサを用いてルーティングすることができる。例えば、MUX202aはレーンセット110をCC160aに接続するか、またはレーンセットをスイッチングしてレーンセット110をCC160cに接続することができる。同様に、スイッチエンドにおけるマルチプレクサは、各ケーブル内のレーンのサブセットをいずれかのスイッチに再ルーティングすることができる。むろん、図2に示したMUXの数およびコンフィギュレーションは例示の目的のためのものであり、本開示の様々な態様を実施するためにMUXのいかなる数またはいかなるコンフィギュレーションも使用可能であることは、当業者には認められよう。いくつかの態様によると、CPUファームウェアがPHBならびにMUX202aおよび202cの動作を制御する。いくつかの態様では、MUX202bおよび202dは、スイッチ142および144のいずれか1つに接続された1つ以上のデバイスまたはEPによって制御される。例えば、スイッチ142および144にそれぞれ接続されたMUX制御デバイス204aおよび204bは、MUX202bおよび202dを制御するようにプログラムすることができる。いくつかの態様では、MUX202bおよび202dを用いたスイッチエンドにおけるレーンスイッチを実行するために、CPUファームウェアは、MUX制御デバイス204aおよび204bのコンフィギュレーションまたはこれらとの通信を行う。いくつかの態様では、MUX制御デバイス204aおよび204bの各々が、MUX202bおよび202dの双方を制御することができる。いくつかの実施形態では、MUX制御デバイスは、スイッチに接続されたPCIEデバイスでもあるIOシャーシ制御要素の特別なタイプである。図3は、本開示の一実施形態に従った、図2のPCIEシステムにおけるケーブル故障中のフェイルオーバー機構を示す例示的な図である。図2に関して上述したように、ベース動作中、PHBとIOシャーシにおけるスイッチとの間でPCIEの全てのレーンは接続されている。従って、2つのx8PHB106、108の各々は、バス130、132の全ての8レーンをIOシャーシにおける各スイッチに接続する。一方のケーブルが失われると、CPUファームウェアは、PCIeのレーンダウンシフトを用いて、他のPHBとその各スイッチとの間でアクティブなレーン数をまず減らす。例えば、それをx8バスからx4バスに減らす。これによって、スイッチに対するケーブル接続性を失ったPHBおよびI/Oバスが用いるために4レーンが解放される。いくつかの態様では、解放されたレーンは典型的にx8PCIeバスのレーン4~7である。いくつかの態様によれば、PHBまたはルートポートは、PCIEリンク接続またはケーブルの故障または喪失に関したリンクダウンイベント等のリンク状態変更イベントをCPUファームウェアに信号で伝え、ケーブルまたはリンクの動作状態をチェックするようにCPUファームウェアを促すことができる。他の実施形態では、他の指示または機構を利用して、同様にケーブル故障についてチェックするようにCPUファームウェアを促すことも可能である。いくつかの態様において、CPUファームウェアは、ケーブルを失ったPHBをx4バスにセットする。すでに述べたように、マルチプレクサまたはクロスポイント電気スイッチを用いて、全てのレーンを各PHBから双方のケーブルにルーティングすることができる。このため、ケーブル134、136の一方が故障した場合は、フェイルオーバー機構が開始し、CPUファームウェアはCPUエンドにおけるマルチプレクサをセットして、レーンセット典型的にはレーン0~3を、ケーブルを失ったPHBから他方のアクティブなPHBケーブルの未使用レーン典型的にはレーン4~7に再ルーティングする。また前述のように、スイッチエンドにおけるマルチプレクサは、各ケーブル内のレーンのサブセットをいずれかのスイッチに再ルーティングすることを可能とする。この場合も、フェイルオーバー機構の一部として、CPUファームウェアはアクティブなPHBケーブルを介してPCIEスイッチ上のMUXコントローラデバイスに対して通信を行い、マルチプレクサをセットして、PHBのためのアクティブなケーブルのレーン4~7を他のスイッチのレーン0~3にルーティングする。これにより、アクティブに接続されたケーブルにおけるPHBのレーン4~7を用いて、ケーブル接続を失ったPHBのレーン0~3を元々接続されていたスイッチのレーン0~3に接続し、一方で、PCIEダウンシフトプロトコルとは別の中断していないケーブル上ではスイッチレーン0~3に対するアクティブなPHBレーン0~3の接続性を維持する。例えば、図3は、ケーブル132が故障しケーブル130のみがアクティブである場合のケーブルフェイルオーバー機構を示す。CPUはケーブル132の故障を検出し、これに応じてレーンダウンシフトを用いて、バス130および132のアクティブなレーン数をx8バスからx4バスに減らす。この例では、レーンダウンシフトによって、PHB106にレーンセット110レーン0~3のみを用いるように指示し、PHB108にレーンセット114レーン0~3のみを用いるように指示する。CPUファームウェアは、MUX202cに、レーンセット114とアクティブなバス130のレーン4~7との間で接続を確立するように指示する。CPUファームウェアは同時に、アクティブなケーブル134のI/Oバス130を用いてMUX制御デバイス204aと通信を行う。MUX制御デバイス204aは、MUX202dに、バス130のレーン4~7とPCIeスイッチ144のレーン0~3との間で接続を確立するように指示する。従って、このケーブルフェイルオーバー機構は、アクティブに接続されたケーブル134におけるPHB106のレーン4~7を用いて、ケーブル接続を失ったPHB108のレーン0~3を元々接続されていたPCIeスイッチ144のレーン0~3に接続する。いくつかの態様によれば、失われたケーブル接続性を復元するためのサービスアクションを完了すると、CPUファームウェアは、復元したケーブル接続性について通知されまたはこれを電子ケーブル存在信号によって検出しても良い、フェイルオーバー機構中に実行されたMUXのコンフィギュレーションを保存することができ、これによってレーンマルチプレクサ設定を変更して、各PHBごとに、対応するケーブルを介してこれに接続されたスイッチの上流ポートに全てのレーンを再ルーティングする。図4は、本開示の一実施形態に従った、CPUエンドおよびスイッチエンドの双方でマルチプレクサを用いて図2および図3のPCIEシステムを用いてケーブルフェイルオーバー機構を提供するための例示的なプロセス400を示すフロー図である。402において、CPUファームウェアは、PHB106および108をそれぞれスイッチ142および144に接続するケーブル134および136における故障についてチェックする。404において、CPUファームウェアが、例えばケーブル136のようなケーブルにおいて故障を検出すると、次いで406においてCPUファームウェアはバス130および134の双方をx8からx4にダウンシフトする。408において、ファームウェアはCPUエンドにおけるMUX202cに、ケーブル故障のあるPHBのレーンセット114をアクティブなバス130のレーン4~7にスイッチするように指示する。410において、ファームウェアは、スイッチエンドのMUX制御デバイス204aを用いて、MUX202dに、アクティブなバス130のレーン4~7をスイッチ144のレーン0~3にスイッチするように指示する。412において、ケーブル136が全接続に復元されていない場合、プロセス400は引き続きフェイルオーバーモードで動作し、続けて接続の復元についてケーブル136をチェックする。412において、CPUファームウェアがケーブル136の接続復元を検出した場合、PCIEシステムは図2のベース動作に復元され、バスはx8バスに復元される。いくつかの態様によれば、ケーブルのCPUエンドにおいてレーン多重化電子機器回路またはMUXを除去して、電子機器回路コスト削減およびパッケージング要件についての利点を得ることができる。しかしながらこれには、ケーブル長を制限し、いくつかのIOシャーシケーブル接続コンフィギュレーションに制約を加える恐れがあるという欠点がある。これは、電子機器回路タイミング要件によって、これらの冗長コンフィギュレーションのために用いられる2本のケーブル間に厳しいケーブル長許容誤差が要求されるからである。冗長コンフィギュレーションは各々、フェイルオーバーおよび復元機構のファームウェアシーケンスに違いがある。当業者は、特定のPCIE実施の必要性に適合するように冗長コンフィギュレーションのいずれかを選択すれば良い。図5は、本開示の一実施形態に従った、ケーブルフェイルオーバー機構を提供するための例示的な動作500を示すフロー図である。動作500は502において開始し、第1のPCIeブリッジの第1のレーンセットを用いて第1のケーブルを介して、第1のPCIeブリッジと第1のIOデバイスとの間で第1のバス伝送ビットセットを交換する。バス伝送ビットとは通例、バス上で伝送されるデータビットのことである。504において、第1のケーブルにおいて故障が検出される。506において、第1のケーブルで故障を検出したことに応答して、第2のPCIeブリッジおよび第2のIOデバイスを接続する第2のケーブルの未使用部分を用いて、第1のPCIeブリッジと第1のIOデバイスとの間で第1のバス伝送ビットセットを交換する。図6は、本開示の一実施形態に従った、スイッチエンドのみにマルチプレクサを用いてフェイルオーバー機構を提供するためのPCIeシステム600のベース動作を示す例示的な図である。図6に示すように、レーンマルチプレクサMUXまたはクロスポイント電気スイッチ202bおよび202dによって、ケーブル134および136のスイッチエンド上の各バス130および132のレーンセット間でレーンスイッチングが可能となる。しかしながら、CPUエンドにはMUXは存在せず、レーンセットは直接ケーブルに接続されている。いくつかの態様では、PCIeシステムのベース動作中、ケーブル134および136は双方ともアクティブである。以下は、ベース動作中のPCIeシステム600の典型的なコンフィギュレーションである。CPUエンドにおいて、PHB106については、レーンセット110は直接CC160aに接続し、レーンセット112は直接CC160cに接続する。PHB108については、レーンセット114は直接CC160cに接続し、レーンセット116は直接CC160aに接続する。スイッチエンドにおいて、MUX202bは、レーンセット110および112をPCIeスイッチ142に接続しており、レーンセット110および112間をスイッチするために使用可能である。MUX202dは、レーンセット114および116をPCIeスイッチ144に接続しており、レーンセット114および112間をスイッチするために使用可能である。従って、ベース動作中、バス130のレーンセット110および112はPHB116をスイッチ142に接続し、バス132のレーンセット114および116はPHB108をスイッチ144に接続する。いくつかの態様では、CPUエンドにおいて、レーンスワッピングを用いて全てのレーンを各PHBから双方のケーブルにルーティングすることができる。例えば、レーンセット114をレーンセット116とスワップし、これによってレーンセット114は160cでなくケーブル160aを介してルーティングすることができる。同様に、レーンセット110および112をスワップして、各レーンセットをケーブル160aおよび160bのいずれかを介してルーティングすることができる。上の段落において示したように、スイッチエンドにおけるMUX202bおよび202dは、各ケーブル内のレーンのサブセットをいずれかのスイッチに再ルーティングすることができる。むろん、MUXの数およびコンフィギュレーションは例示の目的のためのものであり、この開示の様々な態様を実施するためにMUXのいかなる数またはいかなるコンフィギュレーションも使用可能であることは、当業者には認められよう。いくつかの態様によると、CPUファームウェアは、CPUエンドにおけるレーンスワッピングを制御する。すでに述べたように、CPUファームウェアはPHBの動作を制御し、MUX202bおよび202dは、例えばMUX制御デバイス204aおよび204bのような、スイッチ142および144の1つに接続された1つ以上のデバイスまたはEPによって制御される。また、MUX制御デバイス204aおよび204bの各々は、MUX202bおよび202dの双方を制御することができる。図7は、本開示の一実施形態に従った、図6のPCIeシステムにおけるケーブル故障の検出に応答して用いられるフェイルオーバー機構を示す例示的な図である。図6に関して上述したように、ベース動作中、PHBとIOシャーシにおける各スイッチとの間で各PCIEバス130および132の全てのレーンは接続されている。従って、2つのx8PHB106、108の各々は、バス130、132における全ての8レーンをIOシャーシにおける各スイッチに接続する。ケーブル134、136の一方が接続性を失うと、CPUファームウェアは、PCIeのレーンダウンシフトを用いて、他のPHBとその各スイッチとの間のアクティブなレーン数を減らす。例えば、それをx8バスからx4バスに減らす。これによって、スイッチに対するケーブル接続性を失ったPHBおよびI/Oバスが用いるために4レーンが解放される。いくつかの態様では、解放されたレーンは典型的にx8PCIeバスのレーン4~7である。いくつかの実施形態によれば、CPUファームウェアは、ケーブルが失われたPHBをx4バスにセットする。図6のPCIEシステムのベース動作に関してすでに述べたように、レーンスワッピングを用いて、全てのレーンを各PHBから双方のケーブルにルーティングすることができる。従ってケーブル故障状況では、フェイルオーバー機構が開始し、CPUファームウェアは、レーンセット典型的にはレーン0~3を、ケーブルが失われたPHBから他のアクティブなPHBケーブルの未使用レーン典型的にはレーン4~7に再ルーティングするために、ケーブルが失われたPHBのレーンセットをスワップする。また前述のように、スイッチエンドにおけるマルチプレクサにより、各ケーブル内のレーンのサブセットをいずれかのスイッチに再ルーティングすることができる。従って、フェイルオーバー機構の一部として、CPUファームウェアはアクティブなPHBケーブルを介してPCIEスイッチ上のMUXコントローラデバイスに対して通信を行い、マルチプレクサをセットして、アクティブなケーブルのレーン4~7を、ケーブルが失われたPHBが元々接続されていた他のスイッチのレーン0~3にルーティングする。これにより、アクティブに接続されたケーブルにおけるPHBのレーン4~7を用いて、ケーブル接続を失ったPHBのレーン0~3を元々接続されていたスイッチのレーン0~3に接続し、一方で、PCIEダウンシフトプロトコルとは別の中断していないケーブル上ではスイッチレーン0~3に対するアクティブPHBレーン0~3の接続性を維持する。例えば、図7に示すように、ケーブル132が故障しケーブル130のみがアクティブである。CPUはケーブル132の故障を検出し、これに応じてCPUファームウェアはレーンダウンシフトを用いて、バス130および132のアクティブなレーン数をx8バスからx4バスに減らす。この例では、レーンダウンシフトによって、PHB106にレーンセット110レーン0~3のみを用いるように指示し、PHB108にレーンセット114レーン0~3のみを用いるように指示する。CPUファームウェアは、PHB108に、レーンセット114と116との間でスワップするように支持し、レーンセット114レーン3~0が故障ケーブル136でなくアクティブなケーブル134のバス130のレーン4~7を介してルーティングされるようにする。CPUファームウェアは同時に、アクティブなケーブル134のI/Oバス130を用いてMUX制御デバイス204aと通信を行って、MUX202dに、バス130のレーン4~7とPCIeスイッチ144のレーン0~3との間で接続を確立するように指示する。これによって、ケーブルフェイルオーバー機構は、アクティブに接続されたケーブル134におけるPHB106のレーン4~7を用いて、ケーブル接続を失ったPHB108のレーン0~3を、PHB108が元々接続されていたPCIeスイッチ144のレーン3~0に接続する。いくつかの態様によれば、失われたケーブル接続性を復元するためのサービスアクションを完了すると、CPUファームウェアに、復元したケーブル接続性について知らせまたは電子的ケーブル存在信号によって検出しても良い、レーンセット116および114をスワップバックし、フェイルオーバー機構中に実行されたMUX202bおよび202dのコンフィギュレーションに戻ることができる。図8は、本開示の一実施形態に従った、スイッチエンドのみにマルチプレクサを用いて図6および図7のPCIEシステムを用いてケーブルフェイルオーバー機構を提供するための例示的なプロセス800を示すフロー図である。802において、CPUファームウェアは、PHB106および108をそれぞれスイッチ142および144に接続するケーブル134および136における故障についてチェックする。804において、CPUファームウェアが、例えばケーブル136のようなケーブルにおいて故障を検出すると、プロセス800は806に進んで、CPUファームウェアはバス130および132の双方をx8からx4にダウンシフトする。808において、ファームウェアはCPUエンドにおけるPHB108に、レーンセット114と116との間でスワップして、アクティブなバス130のレーン4~7を用いてレーンセット114をルーティングするように指示する。810において、ファームウェアは、スイッチエンドのMUX制御デバイス204aを用いて、MUX202dに、バス130のレーン4~7とPCIeスイッチ144のレーン3~0との間で接続を確立するように指示する。812において、ケーブル136が全接続に復元されていない場合、プロセス800は引き続きフェイルオーバーモードで動作し、続けて接続の復元についてケーブル136をチェックする。812において、CPUファームウェアがケーブル136の接続復元を検出した場合、PCIEシステムは図6のベース動作に復元され、バスはx8バスに復元される。図9は、本開示の一実施形態に従った、ケーブルフェイルオーバー機構を提供するための例示的な動作900を示すフロー図である。図示のように、動作900は902において開始し、第1のPCIeブリッジの第1のレーンセットを用いて第1のケーブルを介して、第1のPCIeブリッジと第1のIOデバイスとの間で第1のバス伝送ビットセットを交換する。904において、第1のケーブルにおいて故障が検出される。906において、第1のケーブルで故障を検出したことに応答して、第1のPCIEブリッジの第2のレーンセットを用いて第2のケーブル上で、第1のPCIeブリッジと第1のIOデバイスとの間で第1のバスビットセットを交換する。以下において本発明の実施形態を参照する。しかしながら、本発明は具体的な記載した実施形態に限定されないことは理解されよう。以下の特徴および要素の組み合わせは、異なる実施形態に関連するものであろうとなかろうと、本発明を実施し実行すると考えられる。例えば本発明は、ケーブルを利用しないか、または多数の物理的エンクロージャを伴わないPCIEリンクに等しく適用可能であることは、当業者には認められよう。コンピュータ回路基板に埋め込まれたワイヤを利用するか、またはミッドプレーンコネクタを介したもの等のコンピュータ回路基板間、および同一もしくは隣接した物理エンクロージャ内のPCIEリンク等、かかる他の実施形態は、本発明によって等しく対応されて、PCIEリンクの喪失のためのフェイルオーバーを提供する。また、先に論じたフェイルオーバー機構は、IOデバイスまたはアダプタがスイッチを介して接続されるのではなく直接PHBに接続されるPCIEコンフィギュレーションに適用可能であることは認められよう。また、同様のフェイルオーバー手順を用いて、スイッチおよびMUX制御デバイスを用いてスイッチに接続されたIOデバイスの間の故障した接続を管理することも可能である。更に、本発明の実施形態は、他の可能な解決策または従来技術あるいはその両方に勝る利点を達成可能であるが、所与の実施形態によって特定の利点が達成されるか否かは本発明を限定しない。このため、以下の態様、特徴、実施形態、および利点は、単に例示的なものに過ぎず、特許請求の範囲複数の特許請求の範囲に明示的に述べる場合を除いて、添付の特許請求の範囲の要素または限定とは見なされない。同様に、本発明への言及は、本明細書に加持した本発明の主題の一般化として見なされるものではなく、特許請求の範囲複数の特許請求の範囲に明示的に述べる場合を除いて、添付の特許請求の範囲の要素または限定とは見なされない。当業者には認められるであろうが、本発明の態様は、システム、方法、またはコンピュータプログラムとして具現化することができる。従って、本発明の態様は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態ファームウェア、常駐ソフトウェア、マイクロコード等を含む、または、ソフトウェアおよびハードウェアの態様を組み合わせた実施形態という形態を取ることができ、それらは全て本明細書において、回路、モジュール、またはシステムと一般的に称することができる。更に、本発明の態様は、具現化されたコンピュータ読み取り可能プログラムコードを有する1つ以上のコンピュータ読み取り可能媒体において具現化されるコンピュータプログラムの形態を取ることも可能である。1つ以上のコンピュータ読み取り可能媒体のあらゆる組み合わせを利用することができる。コンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体またはコンピュータ読み取り可能記憶媒体とすることができる。コンピュータ読み取り可能記憶媒体は例えば、限定ではないが、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、デバイス、または前述のもののいずれかの適切な組み合わせとすることができる。コンピュータ読み取り可能記憶媒体の更に具体的な例非網羅的な列挙は、以下を含む。すなわち、1本以上のワイヤを含む電気的接続、携帯型コンピュータディスケット、ハードディスク、ランダムアクセスメモリRAM、読み取り専用メモリROM、消去可能プログラマブル読み取り専用メモリEPROMまたはフラッシュメモリ、光ファイバ、携帯型コンパクトディスク読み取り専用メモリCD-ROM、光記憶デバイス、磁気記憶デバイス、または前述のもののいずれかの適切な組み合わせである。この文書の文脈において、コンピュータ読み取り可能記憶媒体は、命令実行システム、装置、またはデバイスによってまたはそれと接続して用いるためにプログラムを含有または記憶することが可能ないずれかのタンジブルな媒体とすることができる。コンピュータ読み取り可能信号媒体は、例えばベースバンドにおいてまたは搬送波の一部として、具現化されたコンピュータ読み取り可能プログラムコードを有する伝播データ信号を含むことができる。かかる伝播信号は様々な形態のいずれかを取ることができ、それらは限定ではないが、電磁、光、またはそれらのいずれかの適切な組み合わせを含む。コンピュータ読み取り可能信号媒体は、コンピュータ読み取り可能記憶媒体でないが、命令実行システム、装置、またはデバイスによってまたはそれと接続して用いるためにプログラムを伝達、伝播、または転送することが可能ないずれかのコンピュータ読み取り可能媒体とすることができる。コンピュータ読み取り可能媒体上で具現化されるプログラムコードは、限定ではないが、無線、有線、光ファイバケーブル、RF等、または前述のもののいずれかの適切な組み合わせを含むいずれかの適切な媒体を用いて伝送することができる。本発明の態様の動作を実行するためのコンピュータプログラムコードは、JavaR、SmalltalkR、C等のオブジェクト指向プログラミング言語、および、Cプログラミング言語または同様のプログラミング言語等の従来の手順プログラミング言語を含む1つ以上のプログラミング言語のいずれかの組み合わせにおいて記述することができる。プログラムコードは、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンのソフトウェアパッケージとして、部分的にユーザのコンピュータ上でおよび部分的に遠隔コンピュータ上で、または全体的に遠隔コンピュータもしくはサーバ上で、実行することができる。後者の場合、遠隔コンピュータは、ローカルエリアネットワークLANまたはワイドエリアネットワークWANを含むいずれかのタイプのネットワークを介してユーザのコンピュータに接続することができ、または、接続は、例えばインターネットサービスプロバイダを用いてインターネットを介して外部コンピュータに対して行うことができる。本発明の実施形態に従った方法、装置システム、およびコンピュータプログラムのフローチャート図またはブロック図あるいはその両方を参照して、本発明の態様について以下に記載する。フローチャート図またはブロック図あるいはその両方の各ブロックならびにフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせは、コンピュータプログラム命令によって実施可能であることは理解されよう。これらのコンピュータプログラム命令は、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供されて機械を生成することができ、これによって、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施するための手段を生成するようになっている。また、これらのコンピュータプログラム命令はコンピュータ読み取り可能媒体に記憶することができ、これによって、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイスに特定の方法で機能するように指示することができ、これにより、コンピュータ読み取り可能媒体に記憶された命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施する命令を含む製造品を生成するようになっている。また、コンピュータプログラム命令を、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイスにロードして、そのコンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させてコンピュータ実施プロセスを生成することができ、これによって、コンピュータまたは他のプログラマブル装置上で実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施するためのプロセスを提供するようになっている。上述した図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態に従ったシステム、方法、およびコンピュータプログラムの可能な実施のアーキテクチャ、機能性、および動作を示す。この点で、フローチャートまたはブロック図における各ブロックは、規定された論理機能複数の機能を実施するための1つ以上の実行可能命令を含むコードのモジュール、セグメント、または一部を表すことができる。また、いくつかの代替的な実施において、ブロックに明記した機能は、図面に明記した順序どおりでなく発生する場合があることに留意すべきである。例えば、関与する機能性に応じて、連続して示した2つのブロックは実際には実質的に同時に実行されることがあり、またはブロックは時に逆の順序で実行される場合がある。また、ブロック図またはフローチャートあるいはその両方の各ブロック、およびブロック図またはフローチャートあるいはその両方におけるブロックの組み合わせは、規定された機能もしくは行為を実行する特殊目的ハードウェアベースのシステム、または特殊目的ハードウェアおよびコンピュータ命令の組み合わせによって実施可能であることに留意すべきである。前述の事項は本発明の実施形態を対象とするが、本発明の基本的な範囲から逸脱することなく本発明の他の実施形態および更に別の実施形態を考案可能であり、その範囲は以下の特許請求の範囲によって決定される。