(57)【要約】【課題】  アダプタ・カードのフェイルオーバのための装置、システム、および方法を提供する。【解決手段】  スイッチ・モジュールは、所有側プロセッサ複合体として、第１のポートを介して第１のプロセッサ複合体をアダプタ・カードに接続する。所有側プロセッサ複合体は、第２のポートを除いてアダプタ・カードを管理し、アダプタ・カードからエラー・メッセージを受け取る。さらにスイッチ・モジュールは、非所有側プロセッサ複合体として、第２のポートを介して第２のプロセッサ複合体をアダプタ・カードに接続する。非所有側プロセッサ複合体は第２のポートを管理する。検出モジュールは、第１のプロセッサ複合体の障害を検出する。セットアップ・モジュールは、所有側プロセッサ複合体として第２のプロセッサ複合体をアダプタ・カードに論理的に接続するため、および、障害の検出に応答して、アダプタ・カードから第１のプロセッサ複合体を論理的に切断するために、スイッチ・モジュールを修正する。【選択図】  図１
2010533900.tif 000002
【特許請求の範囲】
【請求項１】
半導体論理を含み、所有側プロセッサ複合体として、第１のポートを介して第１のプロセッサ複合体をアダプタ・カードに論理的に接続するように構成された、スイッチ・モジュールであって、前記所有側プロセッサ複合体は、第２のポートを除いて前記アダプタ・カードを管理し、前記アダプタ・カードからエラー・メッセージを受け取り、さらに前記スイッチ・モジュールは、非所有側プロセッサ複合体として、前記第２のポートを介して第２のプロセッサ複合体を前記アダプタ・カードに論理的に接続し、前記非所有側プロセッサ複合体は、前記第２のポートを管理する、スイッチ・モジュールと、
半導体論理およびプロセッサ上で実行するソフトウェア命令を含み、前記第１のプロセッサ複合体の障害を検出するように構成された、検出モジュールと、
プロセッサ上で実行するソフトウェア命令を含み、前記所有側プロセッサ複合体として前記第２のプロセッサ複合体を前記アダプタ・カードに論理的に接続するため、および、前記障害の検出に応答して、前記アダプタ・カードから前記第１のプロセッサ複合体を論理的に切断するために、前記スイッチ・モジュールを修正するように構成された、セットアップ・モジュールと、
を備える、アダプタ・カードのフェイルオーバのための装置。
【請求項２】
前記スイッチ・モジュールが、前記非所有側プロセッサ複合体からの発見コマンドに応答して、前記アダプタ・カードをエンドポイントとして識別するように構成された、請求項１に記載の装置。
【請求項３】
前記スイッチ・モジュールが、前記所有側プロセッサ複合体からの発見コマンドに応答して、前記アダプタ・カードに接続されたデバイスに可視性を提供するように構成された、請求項１または２に記載の装置。
【請求項４】
前記所有側プロセッサ複合体が、前記スイッチを介して前記アダプタ・カードのコントローラと通信する、請求項１、２、または３に記載の装置。
【請求項５】
前記セットアップ・モジュールが、前記アダプタ・カードのセットアップ・レジスタを再プログラミングすることによって、前記所有側プロセッサ複合体として前記第２のプロセッサを前記アダプタ・カードに論理的に接続するために、前記スイッチ・モジュールを修正する、請求項１、２、３、または４に記載の装置。
【請求項６】
前記セットアップ・モジュールが、第１のメモリ・モジュールのコントロール・ストアの使用から第２のメモリ・モジュールのコントロール・ストアの使用へと、前記アダプタ・カードをスイッチすることによって、前記所有側プロセッサ複合体として前記第２のプロセッサを前記アダプタ・カードに論理的に接続するために、前記スイッチ・モジュールを修正する、請求項１、２、３、または４に記載の装置。
【請求項７】
前記アダプタ・カードが、周辺機器相互接続高速（ＰＣＩｅ）インターフェースを使用して前記第１および第２のプロセッサ複合体と通信する、前記請求項のいずれか一項に記載の装置。
【請求項８】
前記アダプタ・カードが、周辺機器相互接続拡張（ＰＣＩ‐Ｘ）インターフェースおよび周辺機器相互接続（ＰＣＩ）インターフェースから選択されたインターフェースを使用して、前記第１および第２のプロセッサ複合体と通信する、請求項１から６のいずれか一項に記載の装置。
【請求項９】
アダプタ・カードと通信する第１のプロセッサ複合体と、
前記アダプタ・カードと通信し、前記第１のプロセッサ複合体の障害を検出するように構成された検出モジュールを備える、第２のプロセッサ複合体と、
前記アダプタ・カードを管理するように構成されたコントローラを備えるアダプタ・カードと、
ソフトウェア命令および前記コントローラに関するセットアップ・データを備えるコントロール・ストアを格納するように構成された第１のメモリ・モジュールと、
半導体論理を備え、所有側プロセッサ複合体として第１のポートを介して前記第１のプロセッサ複合体を前記アダプタ・カードに論理的に接続するように構成された、スイッチ・モジュールと、を備え、前記所有側プロセッサ複合体は、第２のポートを除いた前記アダプタ・カードを管理し、前記アダプタ・カードからのエラー・メッセージを受け取り、さらに前記スイッチ・モジュールは、非所有側プロセッサ複合体として前記第２のポートを介して前記第２のプロセッサ複合体を前記アダプタ・カードに論理的に接続し、前記非所有側プロセッサ複合体は前記第２のポートを管理し、
前記第２のプロセッサ複合体は、前記所有側プロセッサ複合体として前記第２のプロセッサ複合体を前記アダプタ・カードに論理的に接続するため、および、前記障害の検出に応答して、前記アダプタ・カードから前記第１のプロセッサ複合体を論理的に切断するために、前記スイッチ・モジュールを修正するように構成された、セットアップ・モジュールをさらに備える、
アダプタ・カードのフェイルオーバのためのシステム。
【請求項１０】
前記スイッチ・モジュールが、前記非所有側プロセッサ複合体からの発見コマンドに応答して、前記アダプタ・カードをエンドポイントとして識別するように構成された、請求項９に記載のシステム。
【請求項１１】
前記スイッチ・モジュールが、前記所有側プロセッサ複合体からの発見コマンドに応答して、前記アダプタ・カードに接続されたデバイスに可視性を提供するように構成された、請求項９に記載のシステム。
【請求項１２】
前記所有側プロセッサ複合体が、前記スイッチを介して前記アダプタ・カードのコントローラと通信する、請求項９または１０に記載のシステム。
【請求項１３】
前記セットアップ・モジュールが、前記アダプタ・カードのセットアップ・レジスタを再プログラミングすることによって、前記所有側プロセッサ複合体として前記第２のプロセッサを前記アダプタ・カードに論理的に接続するために、前記スイッチ・モジュールを修正する、請求項９、１０、または１１に記載のシステム。
【請求項１４】
前記セットアップ・モジュールが、第１のメモリ・モジュールのコントロール・ストアの使用から第２のメモリ・モジュールのコントロール・ストアの使用へと、前記アダプタ・カードをスイッチすることによって、前記所有側プロセッサ複合体として前記第２のプロセッサを前記アダプタ・カードに論理的に接続するために、前記スイッチ・モジュールを修正する、請求項９、１０、または１１に記載のシステム。
【請求項１５】
前記アダプタ・カードが、ＰＣＩｅインターフェースを使用して前記第１および第２のプロセッサ複合体と通信する、請求項９から１４のいずれか一項に記載のシステム。
【請求項１６】
前記アダプタ・カードが、ＰＣＩ‐ＸインターフェースおよびＰＣＩインターフェースから選択されたインターフェースを使用して、前記第１および第２のプロセッサ複合体と通信する、請求項９から１４のいずれか一項に記載のシステム。
【請求項１７】
前記アダプタ・カードがイーサネット・コントローラとして構成された、請求項９から１６のいずれか一項に記載のシステム。
【請求項１８】
前記アダプタ・カードが、Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ（ＲＡＩＤ）コントローラとして構成された、請求項９から１６のいずれか一項に記載のシステム。
【請求項１９】
前記アダプタ・カードが、ストレージ領域ネットワーク・コントローラとして構成された、請求項９から１６のいずれか一項に記載のシステム。
【請求項２０】
プロセッサ読み取り可能プログラムを有するプロセッサ使用可能媒体を備えたプロセッサ・プログラムであって、前記プロセッサ読み取り可能プログラムは、プロセッサ上で実行された場合、
所有側プロセッサ複合体として第１のポートを介してアダプタ・カードのスイッチ・モジュールを第１のプロセッサ複合体に接続することであって、前記所有側プロセッサ複合体は、第２のポートを除いて前記アダプタ・カードを管理し、前記アダプタ・カードからエラー・メッセージを受け取る、接続すること、
非所有側プロセッサ複合体として前記第２のポートを介して第２のプロセッサ複合体を前記アダプタ・カードに接続することであって、前記非所有側プロセッサ複合体は前記第２のポートを管理する、接続すること、
前記第１のプロセッサ複合体の障害を検出すること、および、
前記所有側プロセッサ複合体として前記第２のプロセッサ複合体を前記アダプタ・カードに論理的に接続するため、および、前記障害の検出に応答して、前記アダプタ・カードから前記第１のプロセッサ複合体を論理的に切断するために、前記スイッチ・モジュールを修正すること、
を、前記プロセッサに実行させる、プロセッサ・プログラム。
【請求項２１】
前記スイッチ・モジュールが、前記非所有側プロセッサ複合体からの発見コマンドに応答して、前記アダプタ・カードをエンドポイントとして識別するように構成された、請求項２０に記載のプロセッサ・プログラム。
【請求項２２】
前記スイッチ・モジュールが、前記所有側プロセッサ複合体からの発見コマンドに応答して、前記アダプタ・カードに接続されたデバイスに可視性を提供するように構成された、請求項２０または２１に記載のプロセッサ・プログラム。
【請求項２３】
前記所有側プロセッサ複合体が、前記スイッチを介して前記アダプタ・カードのコントローラと通信する、請求項２０、２１、または２２に記載のプロセッサ・プログラム。
【請求項２４】
前記アダプタ・カードのセットアップ・レジスタを再プログラミングすることによって、前記所有側プロセッサ複合体として前記第２のプロセッサを前記アダプタ・カードに接続することを、前記プロセッサに実行させるように構成された、請求項２０、２１、２２、または２３に記載のプロセッサ・プログラム。
【請求項２５】
さらに前記プロセッサ読み取り可能プログラムが、第１のメモリ・モジュールのコントロール・ストアの使用から第２のメモリ・モジュールのコントロール・ストアの使用へと、前記アダプタ・カードをスイッチすることによって、前記所有側プロセッサ複合体として前記第２のプロセッサを前記アダプタ・カードに接続することを、前記プロセッサに実行させるように構成された、請求項２０、２１、２２、または２３に記載のプロセッサ・プログラム。
【請求項２６】
前記アダプタ・カードが、ＰＣＩｅインターフェースを使用して前記第１および第２のプロセッサ複合体と通信する、請求項２０から２５のいずれか一項に記載のプロセッサ・プログラム。
【請求項２７】
前記アダプタ・カードが、ＰＣＩ‐ＸインターフェースおよびＰＣＩインターフェースから選択されたインターフェースを使用して、前記第１および第２のプロセッサ複合体と通信する、請求項２０から２５のいずれか一項に記載のプロセッサ・プログラム。
【請求項２８】
スイッチ・モジュールを使用して、所有側プロセッサ複合体として第１のポートを介して第１のプロセッサ複合体をアダプタ・カードに論理的に接続するステップであって、前記所有側プロセッサ複合体は第２のポートを除いた前記アダプタ・カードを管理し、前記アダプタ・カードからエラー・メッセージを受け取る、接続するステップと、
前記スイッチ・モジュールを使用して、非所有側プロセッサ複合体として前記第２のポートを介して第２のプロセッサ複合体を前記アダプタ・カードに論理的に接続するステップであって、前記非所有側プロセッサ複合体は前記第２のポートを管理する、接続するステップと、
前記第１のプロセッサ複合体の障害を検出するステップと、
前記所有側プロセッサ複合体として前記第２のプロセッサ複合体を前記アダプタ・カードに論理的に接続するため、および、前記障害の検出に応答して、前記アダプタ・カードから前記第１のプロセッサ複合体を論理的に切断するために、前記スイッチ・モジュールを修正するステップと、
を含む、アダプタ・カードのフェイルオーバのための方法。
【請求項２９】
前記スイッチ・モジュールが、前記非所有側プロセッサ複合体からの発見コマンドに応答して、前記アダプタ・カードをエンドポイントとして識別するように構成された、請求項２８に記載の方法。
【請求項３０】
前記スイッチ・モジュールが、前記所有側プロセッサ複合体からの発見コマンドに応答して、前記アダプタ・カードに接続されたデバイスに可視性を提供するように構成された、請求項２８または２９に記載の方法。
【請求項３１】
前記所有側プロセッサ複合体が、前記スイッチを介して前記アダプタ・カードのコントローラと通信する、請求項２８、２９、または３０に記載の方法。
【請求項３２】
前記所有側プロセッサ複合体として前記第２のプロセッサを前記アダプタ・カードに論理的に接続するために、前記スイッチ・モジュールを修正するステップが、前記アダプタ・カードのセットアップ・レジスタを再プログラミングするステップを含む、請求項２８、２９、３０、または３１に記載の方法。
【請求項３３】
前記所有側プロセッサ複合体として前記第２のプロセッサを前記アダプタ・カードに論理的に接続するために、前記スイッチ・モジュールを修正するステップが、第１のメモリ・モジュールのコントロール・ストアの使用から第２のメモリ・モジュールのコントロール・ストアの使用へと、前記アダプタ・カードをスイッチするステップを含む、請求項２８、２９、３０、または３１に記載の方法。
【請求項３４】
前記アダプタ・カードが、周辺機器相互接続高速（ＰＣＩｅ）インターフェースを使用して前記第１および第２のプロセッサ複合体と通信する、請求項２８から３３のいずれか一項に記載の方法。
【請求項３５】
前記アダプタ・カードが、周辺機器相互接続拡張（ＰＣＩ‐Ｘ）インターフェースおよび周辺機器相互接続（ＰＣＩ）インターフェースから選択されたインターフェースを使用して、前記第１および第２のプロセッサ複合体と通信する、請求項２８から３３のいずれか一項に記載の方法。
【請求項３６】
プログラムがコンピュータ上で実行された場合、請求項２８から３５のいずれか一項に記載の方法を実行するように適合されたプログラム・コード手段を備える、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はアダプタ・カードに関し、とりわけアダプタ・カードのフェイルオーバに関する。
【背景技術】
【０００２】
データ処理システムは、しばしば複数のプロセッサ複合体を含む。各プロセッサ複合体は、１つまたは複数のマイクロプロセッサ、キャッシュ・メモリ、メイン・メモリ、周辺デバイスおよびバスへのブリッジ、などを含むことができる。たとえばプロセッサ複合体は、ノース・ブリッジおよびサウス・ブリッジを介して周辺機器相互接続（ＰＣＩ）バスと通信することができる。ネットワーク接続、ストレージ・デバイス、特殊計算エンジンなどの、アダプタ・カード周辺デバイスは、ＰＣＩバスを介してプロセッサ複合体と通信することができる。
【０００３】
アダプタ・カードは、通常、回路基板上に取り付けられた複数の半導体回路を備える。アダプタ・カードは、１つまたは複数のコネクタを介してバスに接続することができる。各アダプタ・カードは、１つまたは複数の特殊機能を実行することができる。たとえばアダプタ・カードは、イーサネット・コントローラ、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）コントローラなどとして機能することができる。
【０００４】
データ処理システムの複数のプロセッサ複合体が、アダプタ・カードへのアクセスを必要とする場合がある。たとえば、２つまたはそれ以上のプロセッサ複合体のクラスタが、耐障害性ＲＡＩＤサブシステム内のハードディスク・ドライブへデータを書き込むため、およびそこからデータを読み取るために、ＲＡＩＤコントローラ・アダプタ・カードにアクセスできる。２つのプロセッサ複合体と通信するアダプタ・カードは、ツインテール（ｔｗｉｎ−ｔａｉｌｅｄ）・アダプタ・カードと呼ばれる場合がある。
【０００５】
複数のプロセッサ複合体がアダプタ・カードにアクセスできるが、１つのプロセッサ複合体が構成および障害回復に関してアダプタ・カードを制御する。アダプタ・カードを制御するプロセッサ複合体は、本明細書では所有側(owner)プロセッサ複合体と呼ばれる。所有側プロセッサ複合体は、アダプタ・カードを構成および管理することができる。単一の所有側プロセッサ複合体を提供することで、２つまたはそれ以上のプロセッサ複合体がアダプタ・カードを構成および管理しようとするのを防ぐことができる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
残念なことに、所有側プロセッサ複合体が失敗すると、他のプロセッサ複合体はアダプタ・カードを使用することができない。結果として、データ・プロセッサ・システムの機能は低下する、あるいは減退する、またはその両方の可能性がある。
【課題を解決するための手段】
【０００７】
好ましくは、アダプタ・カードのフェイルオーバのための装置、システム、および方法が提供される。有利には、こうした装置、システム、および方法は、アダプタ・カードの使用を継続できるように、好ましくはアダプタ・カードの制御を、オリジナルの所有側プロセッサ複合体から移すことになる。
【０００８】
アダプタ・カードのフェイルオーバのための装置には、好ましくは、第１のプロセッサ複合体を接続し、第２のプロセッサ複合体を接続し、障害を検出し、スイッチ・モジュールを修正するステップを、機能的に実行するように構成された、複数のモジュールが提供される。説明された諸実施形態におけるこれらのモジュールは、スイッチ・モジュール、検出モジュール、およびセットアップ・モジュールを含む。
【０００９】
スイッチ・モジュールは半導体論理を含み、所有側プロセッサ複合体として、第１のポートを介して第１のプロセッサ複合体をアダプタ・カードに論理的に接続する。所有側プロセッサ複合体は、第２のポートを除いてアダプタ・カードを管理し、アダプタ・カードからエラー・メッセージを受け取る。さらにスイッチ・モジュールは、非所有側プロセッサ複合体として、第２のポートを介して第２のプロセッサ複合体をアダプタ・カードに論理的に接続する。非所有側プロセッサ複合体は、第２のポートを管理する。
【００１０】
検出モジュールは、半導体論理およびプロセッサ上で実行するソフトウェア命令を含む。加えて検出モジュールは、第１のプロセッサ複合体の障害を検出する。
【００１１】
セットアップ・モジュールは、所有側プロセッサ複合体として第２のプロセッサ複合体をアダプタ・カードに論理的に接続するため、および、障害の検出に応答して、アダプタ・カードから第１のプロセッサ複合体を論理的に切断するために、スイッチ・モジュールを修正する。セットアップ・モジュールは、プロセッサ上で実行するソフトウェア命令を含む。装置は、第１のプロセッサ複合体が失敗した場合、第１のプロセッサ複合体から第２のプロセッサ複合体へのフェイルオーバを実行する。
【００１２】
アダプタ・カードのフェイルオーバのための、本発明のシステムも提示される。システムは、データ処理システム内で具体化することができる。とりわけ一実施形態では、システムは、第１のプロセッサ複合体、第２のプロセッサ複合体、およびアダプタ・カードを含む。
【００１３】
第１および第２のプロセッサ複合体は、アダプタ・カードと通信する。第２のプロセッサ複合体は、好ましくはセットアップ・モジュールを含む。アダプタ・カードは、コントローラ、第１のメモリ・モジュール、およびスイッチ・モジュールを含む。
【００１４】
コントローラはアダプタ・カードを制御する。第１のメモリ・モジュールは、ソフトウェア命令およびコントローラに関するセットアップ・データを備える、コントロール・ストアを格納する。スイッチ・モジュールは半導体論理を含み、所有側プロセッサ複合体として、第１のポートを介して第１のプロセッサ複合体をアダプタ・カードに論理的に接続する。所有側プロセッサ複合体は、第２のポートを除いてアダプタ・カードを管理し、アダプタ・カードからエラー・メッセージを受け取る。さらにスイッチ・モジュールは、非所有側プロセッサ複合体として、第２のポートを介して第２のプロセッサ複合体をアダプタ・カードに論理的に接続する。非所有側プロセッサ複合体は第２のポートを管理する。
【００１５】
セットアップ・モジュールは、所有側プロセッサ複合体として第２のプロセッサ複合体をアダプタ・カードに論理的に接続するため、および、障害の検出に応答して、第１のプロセッサ複合体をアダプタ・カードから論理的に切断するために、スイッチ・モジュールを修正する。
【００１６】
システムは、好ましくは、障害に応答して、アダプタ・カードを所有する第１のプロセッサ複合体からアダプタ・カードを所有する第２のプロセッサ複合体へとフェイルオーバする。
【００１７】
アダプタ・カードのフェイルオーバのための、本発明の方法も提示される。開示された諸実施形態における方法は、実質上、説明された装置およびシステムの動作に関して上記に提示された機能を実施するためのステップを含む。一実施形態では、この方法は、第１のプロセッサ複合体を接続すること、第２のプロセッサ複合体を接続すること、障害を検出すること、およびスイッチ・モジュールを修正することを含む。
【００１８】
スイッチ・モジュールは、所有側プロセッサ複合体として、第１のポートを介して第１のプロセッサ複合体をアダプタ・カードに接続する。所有側プロセッサ複合体は、第２のポートを除いてアダプタ・カードを管理し、アダプタ・カードからエラー・メッセージを受け取る。さらにスイッチ・モジュールは、非所有側プロセッサ複合体として、第２のポートを介して第２のプロセッサ複合体をアダプタ・カードに接続する。非所有側プロセッサ複合体は、第２のポートを管理する。
【００１９】
検出モジュールは、第１のプロセッサ複合体の障害を検出する。セットアップ・モジュールは、所有側プロセッサ複合体として第２のプロセッサ複合体をアダプタ・カードに論理的に接続するため、および、障害の検出に応答して、アダプタ・カードから第１のプロセッサ複合体を論理的に切断するために、スイッチ・モジュールを修正する。
【００２０】
この方法は、好ましくは、アダプタ・カードが引き続き使用可能となるように、第１のプロセッサ複合体から第２のプロセッサ複合体へのフェイルオーバを実行する。
【００２１】
一態様によれば、アダプタ・カードのフェイルオーバのための装置が提供され、この装置は、半導体論理を備え、所有側プロセッサ複合体として第１のポートを介して第１のプロセッサ複合体をアダプタ・カードに論理的に接続するように構成された、スイッチ・モジュールであって、所有側プロセッサ複合体は、第２のポートを除いてアダプタ・カードを管理し、アダプタ・カードからエラー・メッセージを受信するものであり、さらにスイッチ・モジュールは、非所有側プロセッサ複合体として第２のポートを介して第２のプロセッサ複合体をアダプタ・カードに論理的に接続し、非所有側プロセッサ複合体は第２のポートを管理するものである、スイッチ・モジュールと、半導体論理、およびプロセッサ上で実行するソフトウェア命令を備え、第１のプロセッサ複合体の障害を検出するように構成された、検出モジュールと、プロセッサ上で実行されるソフトウェア命令を備え、所有側プロセッサ複合体として第２のプロセッサ複合体をアダプタ・カードに論理的に接続するため、および、障害の検出に応答して、アダプタ・カードから第１のプロセッサ複合体を論理的に切断するために、スイッチ・モジュールを修正するように構成された、セットアップ・モジュールと、を備える。
【００２２】
一態様によれば、アダプタ・カードのフェイルオーバのためのシステムが提供され、このシステムは、アダプタ・カードと通信する第１のプロセッサ複合体と、アダプタ・カードと通信し、第１のプロセッサ複合体の障害を検出するように構成された検出モジュールを備える、第２のプロセッサ複合体と、アダプタ・カードを管理するように構成されたコントローラを備えるアダプタ・カードと、ソフトウェア命令およびコントローラに関するセットアップ・データを備えるコントロール・ストアを格納するように構成された第１のメモリ・モジュールと、半導体論理を備え、所有側プロセッサ複合体として第１のポートを介して第１のプロセッサ複合体をアダプタ・カードに論理的に接続するように構成された、スイッチ・モジュールと、を備え、所有側プロセッサ複合体は、第２のポートを除いたアダプタ・カードを管理し、アダプタ・カードからのエラー・メッセージを受け取り、さらにスイッチ・モジュールは、非所有側プロセッサ複合体として第２のポートを介して第２のプロセッサ複合体をアダプタ・カードに論理的に接続し、非所有側プロセッサ複合体は第２のポートを管理し、さらに第２のプロセッサ複合体は、所有側プロセッサ複合体として第２のプロセッサ複合体をアダプタ・カードに論理的に接続するため、および、障害の検出に応答して、アダプタ・カードから第１のプロセッサ複合体を論理的に切断するために、スイッチ・モジュールを修正するように構成された、セットアップ・モジュールを備える。
【００２３】
他の態様によれば、プロセッサ読み取り可能プログラムを有するプロセッサ使用可能媒体を備えたプロセッサ・プログラム製品が提供され、プロセッサ読み取り可能プログラムは、プロセッサ上で実行された場合、所有側プロセッサ複合体として第１のポートを介してアダプタ・カードのスイッチ・モジュールを第１のプロセッサ複合体に接続することであって、所有側プロセッサ複合体は、第２のポートを除いてアダプタ・カードを管理し、アダプタ・カードからエラー・メッセージを受け取る、接続すること、非所有側プロセッサ複合体として第２のポートを介して第２のプロセッサ複合体をアダプタ・カードに接続することであって、非所有側プロセッサ複合体は第２のポートを管理する、接続すること、第１のプロセッサ複合体の障害を検出すること、ならびに、所有側プロセッサ複合体として第２のプロセッサ複合体をアダプタ・カードに論理的に接続するため、および、障害の検出に応答して、アダプタ・カードから第１のプロセッサ複合体を論理的に切断するために、スイッチ・モジュールを修正することを、プロセッサに実行させる。
【００２４】
他の態様によれば、アダプタ・カードのフェイルオーバのための方法が提供され、この方法は、スイッチ・モジュールを使用して、所有側プロセッサ複合体として第１のポートを介して第１のプロセッサ複合体をアダプタ・カードに論理的に接続することであって、所有側プロセッサ複合体は第２のポートを除いたアダプタ・カードを管理し、アダプタ・カードからエラー・メッセージを受け取る、接続すること、スイッチ・モジュールを使用して、非所有側プロセッサ複合体として第２のポートを介して第２のプロセッサ複合体をアダプタ・カードに論理的に接続することであって、非所有側プロセッサ複合体は第２のポートを管理する、接続すること、第１のプロセッサ複合体の障害を検出すること、ならびに、所有側プロセッサ複合体として第２のプロセッサ複合体をアダプタ・カードに論理的に接続するため、および、障害の検出に応答して、アダプタ・カードから第１のプロセッサ複合体を論理的に切断するために、スイッチ・モジュールを修正することを、含む。
【００２５】
本明細書全体を通じた、特徴、利点、または同様の言い回しの参照は、本発明を使用して実現可能なすべての特徴および利点が、本発明のいずれかの単一の実施形態におけるものであるべきこと、またはあることを、示唆するものではない。むしろ、特徴および利点に言及する言い回しは、ある実施形態に関して説明された特定の特徴、利点、または特性が、本発明の少なくとも１つの実施形態に含まれることを意味するものと理解されよう。したがって、本明細書全体を通じた特徴および利点の考察、ならびに同様の言い回しは、同じ実施形態に言及するものである場合があるが、必ずしもこれに限定されない。
【００２６】
さらに、本発明の説明した特徴、利点、および特性は、１つまたは複数の実施形態において、任意の好適な様式で組み合わせることができる。当業者であれば、本発明が、特定の実施形態の１つまたは複数の特定の特徴または利点を伴うことなく、実施可能であることを理解されよう。他のインスタンスでは、本発明のすべての実施形態には存在しない可能性のある追加の特徴および利点が、ある実施形態において認識可能である。
【００２７】
本発明の実施形態は、アダプタ・カードを所有する第１のプロセッサ複合体から、第２のプロセッサ複合体へのフェイルオーバを実行する。本発明は、第１のプロセッサ複合体が失敗した場合、アダプタ・カードの継続的な使用をサポートする。本発明のこれらの特徴および利点は、以下の説明および添付の特許請求の範囲からより完全に明らかになるか、または、以下に示される本発明の実施によって習得することが可能である。
【００２８】
次に、本発明の諸実施形態について、単なる例を挙げることによって、および以下の図面を参照しながら説明する。
【図面の簡単な説明】
【００２９】
【図１】本発明に従った、データ処理システムの一実施形態を示す概略ブロック図である。
【図２】本発明のアダプタ・カードの一実施形態を示す概略ブロック図である。
【図３】本発明のアダプタ・カードの一代替実施形態を示す概略ブロック図である。
【図４】本発明のフェイルオーバ装置の一実施形態を示す概略ブロック図である。
【図５】本発明のフェイルオーバ方法の一実施形態を示す概略流れ図である。
【図６】本発明のアダプタ・カード通信の一実施形態を示す概略ブロック図である。
【図７】本発明のアダプタ・カード通信の一代替実施形態を示す概略ブロック図である。
【図８】本発明のフェイルオーバ通信の一実施形態を示す概略ブロック図である。
【発明を実施するための形態】
【００３０】
本明細書で説明する多くの機能ユニットは、それらの実装独立性をとりわけ強調するために、モジュールとしてラベル付けされている。たとえば、あるモジュールは、カスタムＶＬＳＩ回路またはゲート・アレイ、論理チップ、トランジスタ、または他の離散コンポーネントなどの既製品の半導体を備える、ハードウェア回路として実装することができる。あるモジュールは、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、プログラマブル・アレイ論理、プログラマブル論理デバイスなどの、プログラマブル・ハードウェア・デバイス内に実装することもできる。
【００３１】
モジュールは、様々なタイプのプロセッサによって実行するためのソフトウェア内に実装することもできる。たとえば、実行可能コードの識別モジュールは、たとえばオブジェクト、手続き、または関数として編成可能な、プロセッサ命令の１つまたは複数の物理または論理ブロックを備えることができる。それにもかかわらず、識別モジュールの実行可能コードは物理的にまとめて配置する必要がなく、論理的に組み合わされた場合、モジュールを備え、モジュールの言明された目的を達成する、異なる位置に格納された異種の命令を備えることができる。
【００３２】
実際には、実行可能コードのモジュールは単一の命令または多くの命令とすることが可能であり、いくつかの異なるコード・セグメント全体にわたって、異なるプログラムの中で、およびいくつかのメモリ・デバイスにまたがって、分散することさえも可能である。同様に、動作データは識別可能であり、本明細書ではモジュール内に示されており、任意の好適な形で具体化すること、および任意の好適なタイプのデータ構造内に編成することが可能である。動作データは、単一のデータ・セットとしてまとめること、または、異なるストレージ・デバイスを含む異なる位置にわたって分散させることが可能である。
【００３３】
本明細書全体にわたって「一実施形態」、「実施形態」、または同様の言い回しは、この実施形態に関して説明された特定の特徴、構造、または特性が、本発明の少なくとも１つの実施形態に含まれることを意味する。したがって、本明細書全体にわたって「一実施形態において」、「実施形態において」、および同様の言い回しのフレーズが出現した場合、すべてが同じ実施形態に言及している可能性があるが、これに限定されるものではない。
【００３４】
さらに、説明された本発明の特徴、構造、または特性は、１つまたは複数の実施形態において任意の好適な様式で組み合わせ可能である。以下の説明では、本発明の諸実施形態を完全に理解するために、プログラミング、ソフトウェア・モジュール、ユーザ選択、ネットワーク・トランザクション、データベース照会、データベース構造、ハードウェア・モジュール、ハードウェア回路、ハードウェア・チップの例などの、多数の特定の細部が提供される。しかしながら当業者であれば、本発明が、１つまたは複数の特定の細部なしに、あるいは他の方法、コンポーネント、材料などを使用して、実施可能であることを理解されよう。他のインスタンスでは、本発明の諸態様を不明瞭にすることを避けるために、良く知られた構造、材料、または動作は詳細に図示または説明されない。
【００３５】
図１は、本発明に従った、データ処理システム１００の一実施形態を示す概略ブロック図である。データ処理システム１００は、１つまたは複数のプロセッサ複合体１０５、およびアダプタ・カード１１０を含む。図をわかりやすくするために、２つのプロセッサ複合体１０５が示されているが、任意数のプロセッサ複合体１０５を採用することができる。
【００３６】
第１および第２のプロセッサ複合体１０５ａ〜ｂは、１つまたは複数の通信チャネル１２０を介してアダプタ・カード１１０と通信する。一実施形態では、通信チャネル１２０は、周辺機器相互接続高速（ＰＣＩｅ）バスとして構成される。別の方法として、通信チャネル１２０は、周辺機器相互接続拡張（ＰＣＩ‐Ｘ）バスまたは周辺機器相互接続（ＰＣＩ）バスとしても構成可能である。当業者であれば、本発明が複数の通信チャネル構成で実施可能であることを理解されよう。
【００３７】
アダプタ・カード１１０は、第１および第２のプロセッサ複合体１０５ａ〜ｂに対して１つまたは複数の機能を実行する。たとえば、アダプタ・カード１１０はイーサネット・コントローラとして機能することができる。別の方法として、アダプタ・カード１１０はＲＡＩＤコントローラとして機能することができる。ある実施形態では、アダプタ・カード１１０はストレージ領域ネットワーク・コントローラとして機能する。当業者であれば、本発明が複数のアダプタ・カードのタイプおよび機能で実施可能であることを理解されよう。
【００３８】
第１のプロセッサ複合体１０５ａは、初期に、所有側プロセッサ複合体として構成される。所有側プロセッサ複合体は、アダプタ・カード１１０の初期設定、制御、および管理を実行する。たとえば電源投入ブート時に、所有側プロセッサ複合体としての第１のプロセッサ複合体１０５ａは、以下で説明するようにアダプタ・カード１１０を発見し、初期設定することができる。
【００３９】
第２のプロセッサ複合体１０５ｂは、初期に、非所有側プロセッサ複合体として構成される。単に図をわかりやすくするために、１つの非所有側プロセッサ複合体が記載されているが、データ処理システムは複数の非所有側プロセッサ複合体を含むことができる。非所有側プロセッサ複合体も、アダプタ・カード１１０を使用することができる。たとえば非所有側プロセッサ複合体は、ＲＡＩＤコントローラ・アダプタ・カード１１０を使用して、ＲＡＩＤサブシステムにアクセスすることができる。しかしながら、非所有側プロセッサ複合体は、アダプタ・カード１１０の初期設定、管理、あるいは制御、またはそれらすべてを実行しない。
【００４０】
アダプタ・カード１１０は、デバイス１１５と通信可能である。このデバイスは、ネットワーク・インターフェース、ＲＡＩＤサブシステム、ストレージ・デバイスなどとすることができる。初期設定時に、所有側プロセッサ複合体はデバイス１１５を発見し、初期設定することも可能である。非所有側プロセッサ複合体は、以下で説明するように、初期設定時にデバイス１１５を発見できない場合がある。
【００４１】
第１のプロセッサ複合体１０５ａが失敗した場合、第２のプロセッサ複合体１０５ｂがアダプタ・カード１１０を使用できない可能性がある。結果として、データ処理システム１００は不可欠な機能を失う可能性がある。本発明は、好ましい実施形態に従い、以下で説明するように、アダプタ・カード１１０の継続使用をサポートするために、第１のプロセッサ複合体１０５ａから第２のプロセッサ複合体１０５ｂへのアダプタ・カード１１０の所有権のフェイルオーバを実行する。
【００４２】
図２は、本発明のアダプタ・カード２５０の一実施形態を示す概略ブロック図である。アダプタ・カード２５０は、図１のアダプタ・カード１１０の一実施形態である。アダプタ・カード２５０の記述は図１の要素を言い表しており、同じ番号は同じ要素を表す。
【００４３】
アダプタ・カード２５０は、１つまたは複数のポート２０５、スイッチ・モジュール２１０、コントローラ２３０、セットアップ・レジスタ２３５、メモリ・モジュール２４０、およびアダプタ・カード機能２４５を含む。当業者であれば、本発明が追加のポート２０５、スイッチ・モジュール２１０、コントローラ２３０、セットアップ・レジスタ２３５、メモリ・モジュール２４０、およびアダプタ・カード機能２４５、ならびに他のデバイスおよびモジュールで実施できることを理解されよう。
【００４４】
ポート２０５は、ＰＣＩインターフェース、ＰＣＩｅインターフェース、ＰＣＩ‐Ｘインターフェース、などとして構成可能である。第１のプロセッサ複合体１０５ａは第１のポート２０５ａと通信可能であり、第２のプロセッサ複合体１０５ｂは第２のポート２０５ｂと通信可能である。
【００４５】
スイッチ・モジュール２１０は、所有側プロセッサ複合体として第１のポート２０５を介して第１のプロセッサ複合体１０５ａをアダプタ・カード１１０に論理的および物理的に接続する。所有側プロセッサ複合体は、第２のポート２０５ｂを除いてアダプタ・カード１１０を管理する。加えて所有側プロセッサ複合体は、アダプタ・カード１１０からエラー・メッセージを受け取る。
【００４６】
さらにスイッチ・モジュール２１０は、非所有側プロセッサ複合体として、第２のポート２０５ｂを介して第２のプロセッサ複合体１０５ｂをアダプタ・カード１１０に論理的および物理的に接続する。非所有側プロセッサ複合体は、第２のポート２０５ｂを管理する。
【００４７】
アダプタ・カード機能２４５は、イーサネット・コントローラ機能、トークン・リング・コントローラ機能などの、通信機能を含むことができる。アダプタ・カード機能２４５は、ＲＡＩＤコントローラ機能、ストレージ・コントローラ機能などの、ストレージ管理機能を含むこともできる。
【００４８】
コントローラ２３０は、アダプタ・カード１１０を管理する。たとえばコントローラ２３０は、アダプタ・カード機能２４５を初期設定および管理することができる。メモリ・モジュール２４０は、ソフトウェア命令およびコントローラ２３０に関するセットアップ・データを備えるコントロール・ストアを格納する。コントローラ２３０は、ソフトウェア命令を実行する、プロセッサ、命令シーケンサなどを含むことができる。ソフトウェア命令は、１つまたは複数のプロセッサ・プログラム製品として構成可能である。
【００４９】
セットアップ・レジスタ２３５は、２進データ値を格納する。スイッチ・モジュール２１０、アダプタ・カード機能２４５、コントローラ２３０、およびメモリ・モジュール２４０の機能は、セットアップ・レジスタ２３５に格納されたデータ値によって修正可能である。たとえば、セットアップ・レジスタ２３５に格納された値によって、スイッチ・モジュール２１０に、所有側プロセッサ複合体として第１のポート２０５ａに接続されたプロセッサ複合体１０５を構成させること、および、非所有側プロセッサ複合体として第２のポート２０５ｂに接続されたプロセッサ複合体を構成させることができる。
【００５０】
図３は、本発明のアダプタ・カード３５０の一代替実施形態を示す概略ブロック図である。アダプタ・カード３５０は、図１のアダプタ・カード１１０の代替実施形態である。アダプタ・カード２５０の記述は図１〜図２の要素を言い表しており、同じ番号は同じ要素を表す。具体的に言えば、ポート２０５、スイッチ・モジュール２１０、コントローラ２３０、およびセットアップ・レジスタ２３５は、図２のポート２０５、スイッチ・モジュール２１０、コントローラ２３０、およびセットアップ・レジスタ２３５である。
【００５１】
さらにアダプタ・カード３５０は、第１および第２のメモリ・モジュール２４０ａ〜ｂを含む。第１のメモリ・モジュール２４０ａは、ソフトウェア命令およびコントローラ２３０に関するセットアップ・データを備える第１のコントロール・ストアを格納する。一実施形態では、第１のコントロール・ストアは、第１のポート２０５ａと通信するプロセッサ複合体１０５を所有側プロセッサ複合体として扱うように、および、第２のポート２０５ｂと通信するプロセッサ複合体１０５を非所有側プロセッサ複合体として扱うように、スイッチ・モジュール２１０およびコントローラ２３０を構成する。
【００５２】
第２のメモリ・モジュール２４０ｂは、同じくソフトウェア命令およびコントローラ２３０に関するセットアップ・データを備える第２のコントロール・ストアを格納する。一実施形態では、第２のコントロール・ストアは、第２のポート２０５ｂと通信するプロセッサ複合体１０５を所有側プロセッサ複合体として扱うように、および、第１のポート２０５ａと通信するプロセッサ複合体１０５を非所有側プロセッサ複合体として扱うように、スイッチ・モジュール２１０およびコントローラ２３０を構成する。
【００５３】
一実施形態では、第１および第２のメモリ・モジュール２４０ａ〜ｂは、それぞれ２進アドレス・バスおよび２進データ・バスを共有する。セットアップ・レジスタ２３５に格納された第１の２進値は、第１のメモリ・モジュール２４０ａを使用可能にし、第２のメモリ・モジュール２４０ｂを使用禁止にすることができるため、結果として、第１のメモリ・モジュール２４０ａのみが２進データ・バス上にデータを出力する。セットアップ・レジスタ２３５に格納された反対の第２の２進値は、２進データ・バス上にデータを出力するために、第１のメモリ・モジュール２４０ａを使用禁止にし、第２のメモリ・モジュール２４０ｂを使用可能にすることができる。したがって、コントローラ２３０によって使用されるコントロール・ストアは、セットアップ・レジスタ２３５に書き込まれた値を使用して選択可能である。
【００５４】
さらにアダプタ・カード３５０は、ＲＡＩＤコントローラ３０５ならびに第１および第２のダウンストリーム・ポート３１０ａ〜ｂを含む。第１および第２のダウンストリーム・ポート３１０ａ〜ｂは、それぞれ、第１および第２のＲＡＩＤサブシステム３１５ａ〜ｂと通信する。ＲＡＩＤコントローラ３０５、ダウンストリーム・ポート３１０、およびＲＡＩＤサブシステム３１５は、アダプタ・カード３５０によってサポート可能であり、制限によって図示されていない、機能の例である。
【００５５】
一実施形態では、第１および第２のプロセッサ複合体１０５ａ〜ｂは、アダプタ・カード３５０のＲＡＩＤコントローラ３０５を使用して、それぞれＲＡＩＤサブシステム３１５にアクセス可能である。ＲＡＩＤコントローラ３０５およびスイッチ・モジュール２１０は、第１および第２のプロセッサ複合体１０５の間の優先順位を調停可能であるため、各プロセッサ複合体１０５はＲＡＩＤサブシステム３１５にアクセスすることができる。さらにＲＡＩＤコントローラ３０５は、パリティ・ストライプ・データの計算、冗長データからの損失データの回復などの、１つまたは複数のＲＡＩＤコントローラ機能を、自律的に実行することができる。
【００５６】
図４は、本発明のフェイルオーバ装置４００の一実施形態を示す概略ブロック図である。装置４００は、図１の１つまたは複数のプロセッサ複合体１０５および図１〜図３のアダプタ・カード１１０、２５０、３５０で具体化することができる。装置４００の記述は、図１〜図３の要素を言い表しており、同じ番号は同じ要素を表す。装置４００は、スイッチ・モジュール２１０、検出モジュール４０５、およびセットアップ・モジュール４１０を含む。
【００５７】
スイッチ・モジュール２１０は、当業者に良く知られたような半導体論理を含む。加えてスイッチ・モジュール２１０は、クロスバー・スイッチ、ノンブロッキング（ｎｏｎ−ｂｌｏｃｋｉｎｇ）２地点間スイッチなどを含むことができる。一実施形態では、スイッチ・モジュール２１０は、第１のポート２０５ａおよび第２のポート２０５ｂを、アダプタ・カード１１０の１つまたは複数の半導体デバイスに接続することができる。
【００５８】
検出モジュール４０５は、第２のプロセッサ複合体１０５ｂあるいはコントローラ・プロセッサまたはその両方などのプロセッサ上で実行する、半導体論理およびソフトウェア命令を含む。加えて検出モジュール４０５は、以下で説明するように、第１のプロセッサ複合体１０５ａの障害を検出する。
【００５９】
セットアップ・モジュール４１０は、所有側プロセッサ複合体として第２のプロセッサ複合体１０５ｂをアダプタ・カード１１０に接続するため、および、障害の検出に応答して、第１のプロセッサ複合体１０５ａをアダプタ・カードから論理的に切断するために、スイッチ・モジュール２１０を修正する。セットアップ・モジュール４１０は、第２のプロセッサ複合体１０５ｂあるいはコントローラ・プロセッサまたはその両方などのプロセッサ上で実行する、ソフトウェア命令を含む。装置は、第１のプロセッサ複合体から第２のプロセッサ複合体へのフェイルオーバを実行する。
【００６０】
次の概略流れ図は、概して論理流れ図として示される。したがって、示される順序およびラベル付けされたステップは、提示された方法の一実施形態を示す。他のステップおよび方法は、機能、論理、または効果において、例示された方法の１つまたは複数のステップ、あるいはその一部と等価であると考えることができる。加えて、使用されているフォーマットおよび記号は、この方法の論理ステップを説明するために提供され、この方法の範囲を限定するものとは理解されない。流れ図では様々なタイプの矢印および線が使用可能であるが、それらは、対応する方法の範囲を限定するものとは理解されない。実際に、いくつかの矢印または他の連結子は、この方法の論理流れのみを示すために使用することができる。たとえばある矢印は、示された方法の列挙されたステップ間での、指定されていない持続期間の待機または監視を示すことができる。加えて、特定の方法が実行される順序は、示された対応ステップの順序に厳密に固執しても、またはしなくてもよい。
【００６１】
図５は、本発明のフェイルオーバ方法の一実施形態を示す概略流れ図である。方法５００は、実質的に、図１〜図４で説明された装置およびシステムの動作に関して、前述の機能を実行するためのステップを含む。一実施形態では、この方法は、プロセッサ読み取り可能プログラムを有するプロセッサ読み取り可能媒体を備えるプロセッサ・プログラム製品で実施される。プロセッサ読み取り可能プログラムは、コントローラ２３０あるいはプロセッサ複合体１０５またはその両方などの半導体デバイスに統合可能であり、コントローラ２３０あるいはプロセッサ複合体１０５またはその両方と組み合わされたプログラムは、この方法５００を実行することができる。
【００６２】
方法５００が開始され、スイッチ・モジュール２１０は、所有側プロセッサ複合体として、第１のポート２０５ａを介して第１のプロセッサ複合体１０５ａをアダプタ・カード１１０に接続する（５０５）。所有側プロセッサ複合体は、第２のポート２０５ｂを除いてアダプタ・カード１１０を管理し、アダプタ・カード１１０からエラー・メッセージを受け取る。たとえば、所有側プロセッサ複合体は、以下で説明するように、電源投入ブート時にアダプタ・カード１１０を初期設定することができる。所有側プロセッサ複合体は、コントローラ２３０と直接通信することもできる。他の例では、アダプタ・カード１１０が、ＲＡＩＤコントローラ・アダプタ・カード３５０、およびＲＡＩＤサブシステム３１５でハードディスク・ドライブ障害を検出したＲＡＩＤコントローラ・アダプタ・カード３５０として構成される場合、ＲＡＩＤコントローラ・アダプタ・カード３５０は、この障害を記述するエラー・メッセージを所有側プロセッサ複合体に送ることができる。
【００６３】
さらにスイッチ・モジュール２１０は、非所有側プロセッサ複合体として、第２のポート２０５ｂを介して第２のプロセッサ複合体１０５ｂをアダプタ・カード１１０に接続する５１０。非所有側プロセッサ複合体は、アダプタ・カード１１０を初期設定しない。加えて、非所有側プロセッサ複合体は、エラー・メッセージ、ステータス・メッセージなどを、アダプタ・カード１１０から受け取ることはできない。前述の例を続けると、ＲＡＩＤコントローラ・アダプタ・カード３５０がハードディスク・ドライブ障害を経験した場合、ＲＡＩＤコントローラ・アダプタ・カード３５０は非所有側プロセッサ複合体にエラー・メッセージを送らない。
【００６４】
非所有側プロセッサ複合体は第２のポート２０５ｂを管理する。一実施形態では、非所有側プロセッサ複合体のみが第２のポート２０５ｂと通信する。別の方法では、非所有側プロセッサ複合体は、第２のポート２０５ｂに関するデータ転送速度を設定すること、第２のポート２０５ｂにデータを送るように指示することなどが可能である。
【００６５】
検出モジュール４０５は、第１のプロセッサ複合体１０５ａの障害を検出する（５１５）。一実施形態では、検出モジュール４０５は、第２のプロセッサ複合体１０５ｂ上で実行するソフトウェア命令を備えるプロセッサ・プログラム製品として構成される。検出モジュール４０５は、第１のプロセッサ複合体１０５ａと定期的に通信することができる。検出モジュール４０５が、指定された期間、第１のプロセッサ複合体１０５ａと通信できない場合、検出モジュール４０５は第１のプロセッサ複合体１０５ａの障害を検出することができる（５１５）。
【００６６】
代替実施形態では、第１および第２のプロセッサ複合体１０５ａ〜ｂ上で実行し、これらを管理する、マルチノード・オペレーティング・システムは、第１のプロセッサ複合体１０５ａの障害を検出することができる。マルチノード・オペレーティング・システムは、第１のプロセッサ複合体１０５ａの障害に応答して、検出モジュール４０５にエラー・メッセージを送ることが可能であり、検出モジュール４０５は、このエラー・メッセージから第１のプロセッサ複合体１０５ａの障害を検出することができる（５１５）。
【００６７】
ある実施形態では、検出モジュール４０５は、コントローラ２３０のプロセッサ上で実行するプロセッサ・プログラム製品と結合された半導体論理として構成される。第１のプロセッサ複合体１０５ａが、特定の期間、アダプタ・カード１１０と通信しない場合、検出モジュール４０５は第１のプロセッサ複合体１０５ａの障害を検出することができる（５１５）。たとえば、第１のプロセッサ複合体１０５ａが２分間アダプタ・カード１１０と通信しない場合、検出モジュール４０５は第１のプロセッサ複合体１０５ａに照会することができる。第１のプロセッサ複合体１０５ａが応答しない場合、検出モジュール４０５は第１のプロセッサ複合体１０５ａの障害を検出することができる（５１５）。
【００６８】
セットアップ・モジュール４１０は、障害の検出に応答して、所有側プロセッサ複合体として、第２のプロセッサ複合体１０５ｂをアダプタ・カード１１０に論理的に接続するために、スイッチ・モジュール２１０を修正する（５２０）。一実施形態では、セットアップ・モジュール４１０は、第２のプロセッサ複合体１０５ｂ上で実行するプロセッサ・プログラム製品を備える。検出モジュール４０５による第１のプロセッサ複合体１０５ａの障害の検出５１５に応答して、セットアップ・モジュール４１０は、指定された２進値をアダプタ・カード１１０の第２のポート２０５ｂに送ることができる。指定された２進値は、コントローラ２３０に対して、非所有側プロセッサ複合体からコマンドを受け入れるように指示することができる。その後、第２のプロセッサ複合体１０５ｂは、所有側プロセッサ複合体として第２のポート２０５ｂと通信するプロセッサ複合体１０５を指定する２進値を、セットアップ・レジスタ２３５に書き込むことができる。
【００６９】
代替実施形態では、第２のプロセッサ複合体１０５ｂ上で実行するセットアップ・モジュール４１０は、第２のメモリ・モジュール２４０ｂの第２のコントロール・ストアをコントローラ２３０に使用させる２進値を、セットアップ・レジスタ２３５に書き込む。さらにセットアップ・モジュール４１０は、コントローラ２３０が第２のコントロール・ストアをロードおよび実行するように、アダプタ・カード１１０を再初期設定することができる。
【００７０】
一実施形態では、セットアップ・モジュール４１０は、半導体論理、あるいはコントローラ２３０のプロセッサ上で実行する１つまたは複数のプロセッサ・プログラム製品、またはその両方を備える。セットアップ・モジュール４１０は、スイッチ・モジュール２１０に、第２のポート２０５ｂと通信するプロセッサ複合体１０５を所有側プロセッサ複合体として扱わせる、２進値のセットアップ・レジスタ２３５への書き込みを修正することができる。加えて、セットアップ・モジュール４１０は、第２のプロセッサ複合体１０５ｂに所有側プロセッサ複合体のタスクを想定するように要求するメッセージを、第２のプロセッサ複合体１０５ｂに送ることができる。
【００７１】
さらにセットアップ・モジュール４１０は、障害の検出に応答して、アダプタ・カード１１０から第１のプロセッサ複合体１０５ａを論理的に切断することができる。一実施形態では、セットアップ・モジュール４１０は、スイッチ・モジュール２１０に第１のポート２０５ａを介した通信の受け取りを停止させる２進値を、セットアップ・レジスタ２３５に書き込む。ある実施形態では、セットアップ・モジュール４１０は、第１のプロセッサ複合体１０５ａをデータ処理システム１００から物理的に切断するように要求するメッセージをシステム管理者に送る。
【００７２】
第１のプロセッサ複合体１０５ａの障害を検出すること（５１５）、および、所有側プロセッサ複合体として第２のプロセッサ複合体１０５ｂに接続するためにスイッチ・モジュール２１０を修正すること（５２０）によって、本発明は、第１のプロセッサ複合体１０５ａが失敗した場合に、第１から第２のプロセッサ複合体１０５ｂへの高速フェイルオーバをサポートする。結果として、１つまたは複数のプロセッサ複合体１０５はアダプタ・カード１１０の使用を継続することができる。
【００７３】
図６は、本発明のアダプタ・カード通信６００の一実施形態を示す概略ブロック図である。通信６００の記述は図１〜図５の要素を言い表しており、同じ番号は同じ要素を表す。通信６００は、第１のプロセッサ複合体１０５ａ、第２のプロセッサ複合体１０５ｂ、アダプタ・カード１１０、およびＲＡＩＤサブシステム３１５の、論理表現を含む。
【００７４】
通信６００は、第１のプロセッサ複合体１０５ａを所有側プロセッサ複合体として示す。電源投入ブートの初期設定、ソフト・リセットなどの初期設定時に、第１のプロセッサ複合体１０５ａは、通信チャネル１２０に接続された１つまたは複数のデバイスとの発見通信を行う。たとえば、通信チャネル１２０がＰＣＩｅバスの場合、第１のプロセッサ複合体１０５ａは、ＰＣＩｅバスに接続されたアダプタ・カード１１０などの各デバイスに、発見要求を送る。アダプタ・カード１１０はこの発見要求に対して、アダプタ・カード１１０を識別する識別応答で応えることができる。発見要求および識別応答は、所有側通信６０５として示される。スイッチ・モジュール２１０は、所有側プロセッサ複合体の第１のプロセッサ複合体６０５とアダプタ・カード１１０との間の所有側通信６０５をサポートするのみである。
【００７５】
スイッチ・モジュール２１０が第１のプロセッサ複合体１０５ａとの発見通信６０５をサポートしているため、第１のプロセッサ複合体１０５ａはアダプタ・カード１１０を初期設定し、第１のプロセッサ複合体１０５ａにエラー・メッセージ、ステータス・メッセージなどを送るよう、アダプタ・カード１１０に指示することができる。第１のプロセッサ複合体１０５ａは、コントローラ２３０と直接通信することもできる。第２のプロセッサ複合体１０５ｂはアダプタ・カード１１０を初期設定することはできない。
【００７６】
第１のプロセッサ複合体１０５ｂは、アダプタ・カード１１０を介して、示されたＲＡＩＤサブシステム３１５などのデバイスに発見通信６１０を送ることもできる。したがって第１のプロセッサ複合体１０５ａは、ＲＡＩＤサブシステム３１５を初期設定することもできる。これに対して第２のプロセッサ複合体１０５ｂは、アダプタ・カード１１０をエンドポイントとみなす。したがって第２のプロセッサ複合体１０５ｂが、ＲＡＩＤサブシステム３１５などのデバイスを認識するか、または初期設定を試みることはない。
【００７７】
図７は、本発明のアダプタ・カード通信の一代替実施形態を示す概略ブロック図である。通信７００は、図６の第１のプロセッサ複合体１０５ａ、第２のプロセッサ複合体１０５ｂ、アダプタ・カード１１０、およびＲＡＩＤサブシステム１１５の、論理表現を示す。
【００７８】
図に示されるように、セットアップ・モジュール４１０が、所有側プロセッサ複合体として第２のプロセッサ複合体１０５ｂをアダプタ・カード１１０に論理的に接続するためにスイッチ・モジュール２１０を修正（５２０）した後、第２のプロセッサ複合体１０５ｂは、アダプタ・カード１１０との所有側通信６０５を有する。したがって第２のプロセッサ複合体は、アダプタ・カード１１０を初期設定すること、アダプタ・カード１１０からエラー・メッセージを受け取ることなどが可能である。セットアップ・モジュール４１０は、第１のプロセッサ複合体１０５ａを論理的に切断することも可能である。
【００７９】
図８は、本発明のフェイルオーバ通信８００の一実施形態を示す概略ブロック図である。通信８００は、図７の第１のプロセッサ複合体１０５ａ、第２のプロセッサ複合体１０５ｂ、アダプタ・カード１１０、およびＲＡＩＤサブシステム３１５の、論理表現を示す。
【００８０】
所有側プロセッサ複合体として、第２のプロセッサ複合体１０５ｂはＲＡＩＤサブシステム３１５に発見通信６１０を送ることができる。加えて、セットアップ・モジュール４１０は、第１のプロセッサ・モジュール１１０をアダプタ・カード１１０から論理的に切断するために、スイッチ・モジュール２１０を修正する（５４０）。したがって、第１のプロセッサ・モジュール１１０は、ランダム・データなどの２進データをアダプタ・カード１１０に送ることができるが、アダプタ・カード１１０はこの送られた２進データを受け取ることができない。
【００８１】
本発明の実施形態は、アダプタ・カード１１０を所有する第１のプロセッサ複合体１０５ａから、第２のプロセッサ複合体１０５ｂへのフェイルオーバを実行する。本発明は、好ましくは、第１のプロセッサ複合体１０５ａが失敗した場合に、アダプタ・カード１１０の使用継続をサポートする。
【００８２】
本発明は、その趣旨または不可欠な特性から逸脱することなく、他の特定の形で具体化することが可能である。説明した諸実施形態は、すべての点において単なる例示的なものであり、制約的でないとみなされるものとする。したがって本発明の範囲は、前述の説明ではなく添付の特許請求の範囲によって示される。特許請求の範囲の等価の意味および範囲内に入るすべての変更は、それらの範囲内に包含されるものとする。
【図１】
2010533900.tif 000003
【図２】
2010533900.tif 000004
【図３】
2010533900.tif 000005
【図４】
2010533900.tif 000006
【図５】
2010533900.tif 000007
【図６】
2010533900.tif 000008
【図７】
2010533900.tif 000009
【図８】
2010533900.tif 000010
【国際調査報告】
2010533900.tif 000011
2010533900.tif 000012