(57)【特許請求の範囲】
【請求項１】
クラスタ化コンピュータ・システム内の入出力ブリッジ・デバイスでアクセス要求を処理する方法であって、
（ａ）前記クラスタ化コンピュータ・システム内の第１ノードから、前記入出力ブリッジ・デバイスに関連するロック・インジケータに向けられたアクセス要求を受け取るステップと、
（ｂ）前記ロック・インジケータがセットされていない場合に、前記ロック・インジケータをセットし、前記入出力ブリッジ・デバイスを前記第１ノードに関連付けることによって、前記アクセス要求に応答して前記入出力ブリッジ・デバイスをロックするステップと、
（ｃ）前記クラスタ化コンピュータ・システム内のもう１つのノードから受け取られた書込要求に応答して、前記もう１つのノードが前記入出力ブリッジ・デバイスに関連付けられていない場合に、前記入出力ブリッジ・デバイスに関連する少なくとも１つの構成パラメータへの前記もう１つのノードによる書込アクセスを制限するステップと
を含む方法。
【請求項２】
前記アクセス要求が読取要求を含み、前記方法がさらに、前記読取要求に応答して、前記ロック・インジケータがセットされていない場合に前記第１ノードにアンロック状況を返し、前記ロック・インジケータがセットされている場合に前記第１ノードにロック状況を返すステップを含む、請求項１に記載の方法。
【請求項３】
前記入出力ブリッジ・デバイスを前記第１ノードに関連付けるステップが、前記第１ノードに関連する所有者識別子を前記入出力ブリッジ・デバイスに関連する所有者識別子レジスタに保管するステップを含む、請求項１に記載の方法。
【請求項４】
前記所有者識別子が、前記アクセス要求を前記入出力ブリッジ・デバイスに送った前記ノードのネットワーク・アドレスと、前記アクセス要求がそれを介して受け取られた、前記入出力ブリッジ・デバイス上のポートに関連するポート識別子とを含む、請求項３に記載の方法。
【請求項５】
前記クラスタ化コンピュータ・システム内のノードによって前記ロック・インジケータに向けられた書込要求に応答して前記ロック・インジケータをリセットするステップをさらに含む、請求項１に記載の方法。
【請求項６】
前記入出力ブリッジ・デバイスが前記第１ノードに関連付けられている時に、前記第１ノードから受け取られた書込要求に応答して前記構成パラメータを更新するステップをさらに含む、請求項１に記載の方法。
【請求項７】
前記クラスタ化システム内のいずれかのノードから受け取られた読取要求に応答して、そのノードが前記入出力ブリッジ・デバイスに関連付けられているかどうかに無関係に、前記構成パラメータに関連する状況情報を返すステップをさらに含む、請求項１に記載の方法。
【請求項８】
前記構成パラメータが、所有者識別情報、ブリッジ・アドレス情報、ブリッジ・レジスタ・アドレス・マッピング情報、リソース・アドレス・マッピング情報、電源管理情報、およびその組合せからなる群から選択される、請求項１に記載の方法。
【請求項９】
前記ロック・インジケータをセットし、前記入出力ブリッジ・デバイスを前記第１ノードに関連付けるステップが、アトミック動作として一団として実行される、請求項１に記載の方法。
【請求項１０】
クラスタ化コンピュータ・システム内の入出力ブリッジ・デバイスの所有権を得る方法であって、
（ａ）前記クラスタ化コンピュータ・システム内の第１ノードで、前記入出力ブリッジ・デバイスを前記第１ノードに関連付け、前記クラスタ化コンピュータ・システム内のもう１つのノードが前記入出力ブリッジ・デバイス内の少なくとも１つの構成パラメータ・レジスタを更新することを制限するアトミック動作を開始するステップと、
（ｂ）その後、前記第１ノード内で、前記入出力ブリッジ・デバイス内の前記構成パラメータ・レジスタに対する更新を開始することによって、前記第１ノードと共に動作するように前記入出力ブリッジ・デバイスを構成するステップと
を含む方法。
【請求項１１】
前記アトミック動作が、前記入出力ブリッジ・デバイスに関連するロック・インジケータ・レジスタに向けられた読取動作を含む、請求項１０に記載の方法。
【請求項１２】
前記第１ノードと共に動作するように前記入出力ブリッジ・デバイスを構成するステップが、前記読取動作に応答してアンロック状況を受け取ることに応答して実行される、請求項１１に記載の方法。
【請求項１３】
前記ロック・インジケータ・レジスタに対する書込動作を開始することによって、前記アトミック動作を開始する前に前記ロック・インジケータ・レジスタをリセットするステップをさらに含む、請求項１１に記載の方法。
【請求項１４】
前記入出力ブリッジ・デバイス内の前記構成パラメータ・レジスタを更新するステップが、所有者識別情報、ブリッジ・アドレス情報、ブリッジ・レジスタ・アドレス・マッピング情報、リソース・アドレス・マッピング情報、電源管理情報、およびその組合せからなる群から選択される構成パラメータを更新するステップを含む、請求項１０に記載の方法。
【請求項１５】
クラスタ化コンピュータ・システム内で使用される入出力ブリッジ・デバイスであって、
（ａ）前記入出力ブリッジ・デバイスがロックされているかどうかを示すロック・インジケータ・レジスタと、
（ｂ）前記入出力ブリッジ・デバイスを所有する前記クラスタ化コンピュータ・システムからのノードを識別する所有者識別レジスタと、
（ｃ）前記入出力ブリッジ・デバイスと前記クラスタ化コンピュータ・システムとの間の通信を構成する構成パラメータ・レジスタと、
（ｄ）前記ロック・インジケータ・レジスタおよび前記構成パラメータ・レジスタに向けられたアクセス要求を受け取るように構成されたアクセス制御回路であって、前記ロック・インジケータ・レジスタが前記アクセス要求の処理の時にリセットされている場合に、前記アクセス要求に関連するソース・ノードを識別するために、前記ロック・インジケータ・レジスタをセットし、前記所有者識別レジスタを更新することによって、前記ロック・インジケータ・レジスタに向けられたアクセス要求を処理し、前記所有者識別子レジスタが前記構成パラメータ・レジスタに向けられた書込要求に関連するソース・ノードを識別する場合に、前記構成パラメータ・レジスタを更新することによって、前記構成パラメータ・レジスタに向けられた前記書込要求を処理するように構成される、アクセス制御回路と
を含む入出力ブリッジ・デバイス。
【請求項１６】
前記アクセス制御回路が、さらに、前記ロック・インジケータ・レジスタをリセットすることによって、前記ロック・インジケータ・レジスタに向けられた第２書込要求を処理するように構成される、請求項１５に記載の入出力ブリッジ・デバイス。
【請求項１７】
前記アクセス制御回路が、さらに、前記所有者識別レジスタが前記第２書込要求に関連するソース・ノードを識別するかどうかに無関係に、前記第２書込要求に応答して、前記ロック・インジケータ・レジスタをリセットするように構成される、請求項１６に記載の入出力ブリッジ・デバイス。
【請求項１８】
前記アクセス要求が、読取要求を含み、前記アクセス制御回路が、さらに、前記ロック・インジケータ・レジスタの状況に基づいてロック状況またはアンロック状況を返すことによって前記読取要求を処理するように構成される、請求項１５に記載の入出力ブリッジ・デバイス。
【請求項１９】
前記アクセス制御回路が、前記ソース・ノードのネットワーク・アドレスと前記アクセス要求がそれを介して受け取られた前記入出力ブリッジ・デバイス上のポートに関連するポート識別子とを識別するために前記所有者識別子レジスタを更新するように構成される、請求項１５に記載の入出力ブリッジ・デバイス。
【請求項２０】
前記アクセス制御回路がさらに、前記クラスタ化コンピュータ・システム内のいずれかのノードからの読取要求に応答して、前記所有者識別子レジスタが前記読取要求に関連するソース・ノードを識別するかどうかに無関係に、前記構成パラメータ・レジスタに関連する状況情報を返すように構成される、請求項１５に記載の入出力ブリッジ・レジスタ。
【請求項２１】
前記構成パラメータ・レジスタが、所有者識別情報、ブリッジ・アドレス情報、ブリッジ・レジスタ・アドレス・マッピング情報、リソース・アドレス・マッピング情報、電源管理情報、およびその組合せからなる群から選択される構成パラメータを保管する、請求項１５に記載の入出力ブリッジ・デバイス。
【請求項２２】
クラスタ化コンピュータ・システムであって、
（ａ）複数のノードと、
（ｂ）前記複数のノードからの少なくとも１つのノードに結合され、少なくとも１つの構成パラメータ・レジスタを含み、前記複数のノードの中の第１ノードからの第１要求に応答して、前記入出力ブリッジ・デバイスを前記第１ノードに関連付け、かつ前記複数のノードの中のもう１つのノードが前記構成パラメータ・レジスタを更新することを制限するアトミック動作を実行するように構成され、その後、前記第１ノードからの第２要求に応答して、前記第１ノードと通信するように前記入出力ブリッジ・デバイスを構成するために前記構成パラメータ・レジスタを更新するようにさらに構成される入出力ブリッジ・デバイスと
を含む、クラスタ化コンピュータ・システム。
【請求項２３】
前記入出力ブリッジ・デバイスが、ＰＣＩ（Peripheral Component Interconnect）バス・ブリッジ・デバイスへの入出力拡張バスを含む、請求項２２に記載のクラスタ化コンピュータ・システム。
【請求項２４】
前記アトミック動作が、前記入出力ブリッジ・デバイスに関連するロック・インジケータ・レジスタに向けられた読取動作を含む、請求項２２に記載のクラスタ化コンピュータ・システム。
【請求項２５】
前記第１ノードが、前記読取動作に応答するアンロック状況の受取に応答して、前記第２要求を開始するように構成される、請求項２４に記載のクラスタ化コンピュータ・システム。
【請求項２６】
前記第１ノードが、前記ロック・インジケータ・レジスタへの書込動作を開始することによって、前記第１要求を開始する前に、前記ロック・インジケータ・レジスタをリセットするように構成される、請求項２４に記載のクラスタ化コンピュータ・システム。
【請求項２７】
前記入出力ブリッジ・デバイスが、前記入出力ブリッジ・デバイスが前記ロック・インジケータ・レジスタに対する書込動作のソースに関連するかどうかに無関係に、前記書込動作を処理するように構成される、請求項２６に記載のクラスタ化コンピュータ・システム。
【請求項２８】
前記入出力ブリッジ・デバイス内の前記構成パラメータ・レジスタが、所有者識別情報、ブリッジ・アドレス情報、ブリッジ・レジスタ・アドレス・マッピング情報、リソース・アドレス・マッピング情報、電源管理情報、およびその組合せからなる群から選択される構成パラメータを保管する、請求項２２に記載のクラスタ化コンピュータ・システム。
【請求項２９】
前記入出力ブリッジ・デバイスが、前記第２要求が前記第１ノードから前記入出力ブリッジ・デバイスによって受け取られた時に前記入出力ブリッジ・デバイスが前記第１ノードに関連付けられている場合に限って、前記第１ノードと通信するように前記入出力ブリッジ・デバイスを構成するように前記構成パラメータ・レジスタを更新するように構成される、請求項２２に記載のクラスタ化コンピュータ・システム。
【請求項３０】
クラスタ化コンピュータ・システムの第１ノードに常駐するように構成されたプログラムであって、
入出力ブリッジ・デバイスのロック・インジケータをリセットすること、
前記入出力ブリッジ・デバイスを前記第１ノードに関連付け、前記クラスタ化コンピュータ・システム内のもう１つのノードが前記入出力ブリッジ・デバイス内の構成パラメータ・レジスタを更新することを制限するアトミック動作を開始すること、および
前記第１ノードと通信するように前記入出力ブリッジ・デバイスを構成するための前記構成パラメータ・レジスタの更新を開始すること
を機能させて前記第１ノードに結合された前記入出力ブリッジ・デバイスの所有権を得るように構成されたプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、全般的にはクラスタ化コンピュータ・システムを対象とし、具体的には、その中の入出力ブリッジ・デバイスの所有権の管理に関する。
【０００２】
【従来の技術】
「クラスタ化」は、一般に、複数のコンピュータまたはノードが一緒にネットワーク化されて、協力してコンピュータ・タスクを実行するコンピュータ・システム編成を指す。コンピュータ・クラスタの重要な態様は、クラスタ内のノードのすべてが単一のシステム・イメージを表わす、なわち、ユーザの観点からクラスタ内のノードが単一のコンピュータまたはエンティティとしてまとまって見えることである。
【０００３】
クラスタ化は、高性能および高信頼性が重要となる比較的大規模なマルチユーザ・コンピュータ・システムでしばしば使用される。たとえば、クラスタ化は、冗長性またはフォールト・トレランスを提供し、その結果、クラスタ内のノードに障害が発生した場合に、そのノードによって前に実行されていた動作をクラスタ内の他のノードが処理するようにするのに使用することができる。クラスタ化は、総合性能を高めるのにも使用される。というのは、複数のノードが、しばしば、単一のコンピュータが処理できるはずのタスクより多数のタスクを並列に処理できるからである。しばしば、ロード・バランシングも、個々のノードが過負荷にならないようにノード間でタスクを公平に分配し、したがって総合システム性能が最大になるようにするのに使用することができる。クラスタ化の１特定の応用例が、たとえば、データベースまたは記憶装置などの共用リソースへのマルチユーザ・アクセスの提供である。というのは、複数のノードが、比較的多数のユーザ・アクセス要求を処理でき、共用リソースが、クラスタ内の所与のノードの障害時であっても通常はユーザが使用可能になるからである。
【０００４】
クラスタ化コンピュータ・システムは、多数の他のタイプのコンピュータ・システムと同様に、本明細書で「入出力」リソースと称する、ワークステーション、ネットワーク・アダプタ、記憶装置コントローラなどのさまざまなリソースとの外部通信を必要とすることがしばしばである。多数のそのようなシステムで、入出力リソースが、１つまたは複数の入出力ブリッジ・デバイスを使用して、クラスタ化コンピュータ・システムに結合され、これらの入出力ブリッジ・デバイスは、２つのネットワーク・ファブリック、たとえば、入出力拡張バスと、ＰＣＩ（Peripheral Component Interconnect）バスなどの周辺バスの間の「ブリッジング」の機能を実行する。入出力ブリッジ・デバイスは、クラスタ化コンピュータ・システム内のノードと同一の物理筐体内に取り付けるか、全く別のハウジングに配置することができる。
【０００５】
多くのクラスタ化コンピュータ・システムでは、ブリッジ・デバイスが、構成可能であり、ノードの１つによって管理されることを必要とする。しばしば、各ブリッジ・デバイスが、所与の時点で正確に１つのノードによって管理されることが要件である。したがって、クラスタ化コンピュータ・システム内の１ノードの障害が、そのノードによって所有されるブリッジ・デバイスとの通信の消失をもたらす場合がある。
【０００６】
クラスタ化コンピュータ・システムでの可用性を最大にすることが望ましいので、ノード障害の場合であっても、すべてのブリッジ・デバイスおよびその下のリソースの可用性を維持することが望ましいことがしばしばである。したがって、障害を発生したノードからまだ機能している別のノードへのブリッジ・デバイスの所有権の変更を容易にすることが、非常に望ましい。機能しているノードは、ブリッジ・デバイスの管理を引き受け、そのブリッジ・デバイスの下のリソースへのアクセスを可能にする。
【０００７】
しかし、ブリッジ・デバイスの所有権の切替は、複数の独立のノードがクラスタ化動作に能動的に参加している時には、単純な処理ではない。ブリッジ・デバイスは、通常は、たとえばブリッジ・ネットワーク・アドレス、ブリッジ・デバイス内のレジスタ空間のアドレス・マッピング、ブリッジ・デバイスの下のリソースのアドレス・マッピング、およびブリッジ・デバイスの電源管理などのブリッジ・デバイス内の機能を、所有するノードと共に機能するように特に構成しなければならないという事実に起因して、どの時点でも１つのノードだけによって管理されなければならない。しかし、ブリッジ・デバイスの正しい動作は、元の所有者が所有権変更中にブリッジ・デバイスへのアクセスを試みる場合に、所有権があるノードから別のノードに転送されつつある時に危険にさらされる可能性がある。クラスタ化コンピュータ・システムでは、これは、通常は非常に重要である。というのは、独立のノードが、別のノードが完全に障害状態であるのか応答が遅いだけなのかを知ることが、不可能でないとしても困難だからである。さらに、障害を発生したノードが回復する場合に、回復したノードが、障害の前に所有していたが、障害の時に新しい所有者に切り替えられたブリッジ・デバイスの管理を試みる可能性があるという危険性が存在する。それが行われると、ブリッジ・デバイスが崩壊し、部分的または完全なシステム障害が生じる可能性がある。したがって、当技術分野には、クラスタ化コンピュータ・システムでブリッジ・デバイスの所有権を変更する方法、具体的には、システム可用性での中断を最小限にする、信頼性があり効率的な所有権転換を可能にする方法の必要が存在する。
【０００８】
【発明が解決しようとする課題】
本発明は、入出力ブリッジ・デバイスの整然とした信頼性のある所有権管理を保証するアトミック所有権変更動作のサポートを含む、クラスタ化コンピュータ・システム、ブリッジ・デバイス、および方法を提供することによって、従来技術に関連する上記および他の問題に対処する。
【０００９】
【課題を解決するための手段】
具体的には、ロック・インジケータが、ブリッジ・デバイスに関連し、１時に１つノードだけがブリッジ・デバイスの所有権を主張できるようにするのに使用される。さらに、ブリッジ・デバイスの１つまたは複数の構成パラメータをセットする能力を、ブリッジ・デバイスの所有権を有する１つのノードだけに制限し、その結果、所有権の整然とした変更を実行できるようにする。
【００１０】
示される実施形態では、ロック・インジケータを使用して、ブリッジ・デバイスの「ロック」状況または「アンロック」状況を示す。ロック・インジケータ・レジスタが、ブリッジ・デバイスがアンロックされていることを示す時には、必ず、ロック・インジケータ・レジスタへのアクセス要求などのアトミック動作を、ブリッジ・デバイスに関するロック状況を示すようにインジケータをセットすることと、アトミック動作を開始したソース・ノードにブリッジ・デバイスを関連付けることの両方に使用することができる。さらに、ロック・インジケータに関連して、１つまたは複数の構成パラメータ・レジスタへの書き込みアクセスを制御し、ブリッジ・デバイスに関連するノードだけが、そのような構成パラメータ・レジスタの更新を許可されるようにすることができる。
【００１１】
【発明の実施の形態】
以下で説明する実施形態では、一般に、アトミック・テスト／セット動作を使用して、クラスタ化コンピュータ・システム内のブリッジ・デバイスの所有権の信頼性があり効率的な変更を行う。本発明との一貫性を有する形で、ロック・インジケータを使用して、１回に１つのノードだけがブリッジ・デバイスの所有権を主張できるようにする。アクセス要求（たとえば読取要求）が、ノードによってロック・インジケータに向けられる時に、必ず、そのアクセス要求が、テスト／セット動作として処理されて、第１に、ロック・インジケータの状況をテストし、インジケータがブリッジ・デバイスの「アンロック」状況を示す場合に、第２に、ブリッジ・デバイスをそのノードに関連付け、ロック・インジケータをセットして、ブリッジ・デバイスのロック状況を示す。これらの機能をアトミック・プリミティブで実施することによって、障害を発生したノードが後に再始動し、そのノードが前に管理していたブリッジ・デバイスの管理を試みる場合であっても、所有権の変更を、他のノードと衝突せずに行うことができる。
【００１２】
アトミック動作には、アトミック動作内のステップが、ブリッジ・デバイスの観点から後続動作のすべての前に完了する限り、並列または直列に実行されるアクティビティを含めることができる。言い換えると、アトミック動作のどのステップの間であっても、通常は、その間に入る動作は許可されない。
【００１３】
本発明の文脈では、ブリッジ・デバイスは、クラスタ化コンピュータ・システムの１つまたは複数のノードを入出力リソースの組にインターフェースするのに使用されるネットワーキング・ハードウェアを表すことができる。ノードは、通常は、特にブリッジ・デバイスの所有権が１時に単一のノードに制限されるクラスタ化コンピュータ・システムにおいて、ノードがブリッジ・デバイスの動作の管理を許可される時に、ブリッジ・デバイスを「所有する」とみなされる。示される実施形態のブリッジ・デバイスの管理には、通常は、少なくとも、ブリッジ・デバイスに関連する１つまたは複数の構成パラメータを更新する能力が含まれる。したがって、ブリッジ・デバイス上の１つまたは複数の構成パラメータ・レジスタへの書込アクセスは、通常は、所有するノードによって開始されるアクセスに制限される。
【００１４】
ブリッジ・デバイスは、通常は、所有するノードに関する識別情報をブリッジ・デバイス内に保管することによって、１つのノードに関連付けられる。示される実施形態では、所有権情報が、通常は、ブリッジ・デバイスに関する１つまたは複数の構成パラメータへの書込アクセスのゲーティングに使用される。たとえば所有者ノード・ネットワーク・アドレス情報、ポート情報、シリアル番号、タイプ、モデルなど、さまざまな所有権識別情報を使用することができる。たとえば、示される実施形態では、所有するノードに関連するＩＰアドレスと、それに結合された、ノードがそれを介してブリッジ・デバイスに結合されるポート番号の組合せが、所有者ノードの識別に使用される。代替案では、所有するノードを一意に識別できる他の情報を使用することができる。
【００１５】
下でより明白になるように、任意の数のネットワーク・トポロジおよびファブリックを使用して、クラスタ・ノードとブリッジ・デバイスを相互接続することができ、これによって、複数のノードに相互接続され、その複数のノードによって「所有される」ことができるブリッジ・デバイスを、そのようなブリッジ・デバイスが管理するノードに関してローカルとリモートのどちらであるかにかかわりなく、そのようなノードのいずれかによって効率的に管理することができる。
【００１６】
上で説明したロック・インジケータは、ブリッジ・デバイスのために保管された所有権情報に対する更新のゲーティングに使用される。上で述べたように、その所有権情報は、ブリッジ・デバイスがどのように動作するか、具体的には、ブリッジ・デバイスが入出力リソースからの通信をクラスタ化コンピュータ・システムにどのようにルーティングするか、を制御する、ブリッジ・デバイスの構成パラメータに対する更新のゲーティングに使用される。示される実施形態では、構成パラメータに対する読取アクセスが、ゲーティングされないが、他の実施形態では、読取アクセスを、所望される場合に同様に所有権情報によってゲーティングすることができる。
【００１７】
通常、ロック・インジケータを、書込要求などの別のアクセス要求を使用してリセットすることができ、その結果、ブリッジ・デバイスがアンロック状況になり、後続のアクセス要求を、所有権変更動作をもたらすために発行できるようになる。さらに、通常は、アクセス要求に応答して結果が返され、その結果、ノードが、所有権を得た時を検出できるようになり、このノードが、その後、現在所有するブリッジ・デバイスを、所有するノードと正しく相互作用するように再構成することができるようになる。
【００１８】
他の修正形態および代替形態は、下記から明白になる。
【００１９】
図面に移ると、図では、同一の符号が複数の図面を通じて同一の部分を表すが、図１に、相互接続のネットワーク１４を介して互いに相互接続される複数のノード１２を含むことができるクラスタ化コンピュータ・システム１０が示されている。各ノード１２は、包括的に、たとえば任意の数の、ネットワーク・サーバ、ミッドレンジ・コンピュータ、メインフレーム・コンピュータなどのマルチユーザ・コンピュータを表す。しかし、本発明を、たとえばワークステーション、デスクトップ・コンピュータ、ポータブル・コンピュータおよび類似物などの独立型コンピュータおよび単一ユーザ・コンピュータなどの他のコンピュータまたはデータ処理システム内もしくは他のプログラマブル電子デバイス（たとえば組込みコントローラまたは類似物を組み込まれた）内で実施できることを諒解されたい。さらに、複数のノードが、単一の物理コンピュータ内、たとえば論理分割されたシステム内に存在することができる。
【００２０】
各ノード１２には、一般に、プロセッサ・バス２２上で、主記憶またはメモリ１８および入出力ハブ２０に結合される１つまたは複数のシステム・プロセッサ１６が含まれる。メモリ１８が、主記憶として図示されているが、通常はマルチレベル・メモリ・アーキテクチャが使用され、これによって、１つまたは複数のレベルのキャッシュ・メモリが、プロセッサまたは外部キャッシュ（図１には図示せず）に組み込まれることを諒解されたい。
【００２１】
さまざまな入出力リソースのサポートを提供するために、１つまたは複数のブリッジ・デバイス２４も、ネットワーク１４を介してノード１２に相互接続される。各ブリッジ・デバイスは、ネットワーク１４上のノードを、ネットワーク２６を介してブリッジ・デバイスに結合された１つまたは複数の入出力リソース、たとえば複数の入出力アダプタ（ＩＯＡ）２８にインターフェースする。ＩＯＡ２８は、クラスタ化コンピュータ・システムを、記憶装置およびコントローラ、ワークステーションおよびワークステーション・コントローラ、ネットワーク・インターフェースなどのさまざまな装置とインターフェースするのに適するインターフェース回路を表すことができる。
【００２２】
クラスタ化コンピュータ・システムで一般に使用されているネットワーク・トポロジを、任意の個数だけ使用して、本発明との一貫性を有するネットワーク１４および２６のそれぞれを実施することができる。示される実施形態では、たとえば、各ノード１２が、International Business Machines Corporation社が販売するＡＳ／４００またはeSeries iServerミッドレンジ・コンピュータ・システムであり、ネットワーク１４が、各ノード１２およびブリッジ・デバイス２４が結合される入出力拡張バスを表す。さらに、各ブリッジ・デバイスは、たとえば、Peripheral Component Interconnect（ＰＣＩ）ブリッジを表すことができ、これによって、ネットワーク２６が、その使用および構成が当技術分野で周知のＰＣＩバスになる。他の相互接続ファブリックを使用して、ノード１２およびブリッジ・デバイス２４を、本発明との一貫性を有する形で互いに結合することができる。
【００２３】
さらに、当技術分野で周知のように、個々のノード１２を、物理的に他のノードに非常に近接して配置することができ、また、たとえば広域ネットワーク（ＷＡＮ）を介して、他のノードから地理的に離すことができる。示される実施形態では、たとえば、ネットワーク１４を、ノード間でpoint-to-point相互接続が使用される対等ネットワークとすることができる。さらに、ブリッジ・デバイス２４を、ノード１２と同一の物理的筐体内に収納することができ、また、他のノードに関してローカルにまたはリモートに配置することができる。したがって、本発明が、本明細書で開示される特定のハードウェアおよび相互接続技術に制限されないことを諒解されたい。
【００２４】
本明細書に記載の所有権変更機能を実施するために、クラスタ内の各ノードに、通常は、ノードでのクラスタ化関連動作を管理するためのクラスタ化インフラストラクチャが含まれる。たとえば、ノード１２は、メモリ１８内にクラスタ化リソース・サービス３０と称するクラスタ・インフラストラクチャが常駐するものとして図示されている。通常は、クラスタ化リソース・サービスを介するか、上位のジョブまたはアプリケーションからの機能呼出しによる開始を介して、所有権変更動作がノードによって開始される。また、通常は、所有権変更動作の開始は、障害を発生したノード以外のノードによって、たとえば別のノードによって検出されたエラーに応答して、または、別のノードを介して管理者による手動要求によって、行われる。
【００２５】
各ブリッジ・デバイス２４には、通常は、ノード要求に応答して所有権変更動作を処理するハードウェア回路も含まれる。示される実施形態では、アクセス制御回路４０が、ブリッジ・デバイスに向けられたアクセス要求（通常は読取要求および書込要求）を処理するのに使用される。さらに、示される実施形態では、ブリッジ・デバイスが、メモリ・マップ入出力インターフェース（たとえばＰＣＩバス）とインターフェースし、これによって、アドレス可能メモリ空間の一部が、ブリッジ・デバイス内で定義されるさまざまな構成レジスタ３２に割り振られる。
【００２６】
ブリッジ・デバイスとインターフェースするのに使用される他の構成レジスタの中に、ロック・インジケータ・レジスタ３４を設けて、ブリッジ・デバイスの「ロック」状況または「アンロック」状況を示すロック・インジケータを保管する。さらに、所有者識別レジスタ３６を設けて、どのノードが現在そのブリッジ・デバイスを「所有する」かを示す所有者識別子を保管する。追加の構成パラメータ・レジスタ３８も、ブリッジ・デバイスが動作する方法、たとえば、ブリッジ・デバイスがネットワーク２６との間でデータをルーティングする方法、具体的には、ブリッジ・デバイスが、そのブリッジ・デバイスの所有者として現在登録されているノード１２へ要求されたデータをルーティングする方法を制御する、１つまたは複数の構成パラメータを保管するために設けられる。構成パラメータは、たとえば、ホスト（所有者）システム・ネットワーク・アドレッシング情報、ブリッジ・ネットワーク・アドレッシング情報、ブリッジ・レジスタ・アドレス・マッピング情報、リソース・アドレス・マッピング情報、電源管理情報などについて、定義することができる。他の構成レジスタも、各ブリッジ・デバイス２４に組み込むことができ、さらに、一部のレジスタを、本明細書に記載のように、他のレジスタと同一の形でノードによって構成可能ではなくすることができる。
【００２７】
本明細書に記載の機能性を、ノード１２およびブリッジ・デバイス２４のそれぞれのハードウェアまたはソフトウェアもしくはその両方のさまざまな代替の組合せで実施できることと、機能性を、クラスタ化コンピュータ・システム１０内の他のプログラム、コンピュータ、または構成要素の間で割り振ることができることを諒解されたい。さらに、示される実施形態では、通常は、アクセス制御回路およびそれによって実施されるアクセス処理機能性が、ハードウェア回路で（たとえばハードウェア状態機械を用いて）実施されるが、代替案では、プログラマブル・コントローラを使用することができる。それでも、ハードウェアベースの実施形態にもかかわらず、用語「ルーチン」が、アクセス制御回路内で実施されるハードウェアベースの機能性を記述するのに使用される。したがって、本発明は、本明細書に記載の特定のハードウェアおよびソフトウェアの実施形態に制限されない。
【００２８】
以下の議論では、上で説明した所有権変更機能を実施するのに使用される特定のルーチンおよび回路に焦点を合わせる。本発明の実施形態を実施するために実行されるルーチンは、オペレーティング・システムの一部、もしくは特定のアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、または命令のシーケンスのいずれとして実施される場合でも、本明細書では「コンピュータ・プログラム」または単に「プログラム」と称する。コンピュータ・プログラムには、通常、コンピュータのさまざまなメモリおよび記憶装置にさまざまな時に常駐し、コンピュータ内の１つまたは複数のプロセッサによって読み取られ、実行される時に、本発明のさまざまな態様を実施するステップまたは要素を実行するのに必要なステップをコンピュータに実行させる、１つまたは複数の命令が含まれる。さらに、本明細書に記載の機能性の一部またはすべてを、ハードウェア回路で直接に実施できることを諒解されたい。
【００２９】
さらに、本発明を、完全に機能するコンピュータおよびコンピュータ・システムに関して説明するが、当業者は、本発明のさまざまな実施形態を、さまざまな形態のプログラム製品として配布できることと、本発明が、配布の実際の実行に使用される信号担持媒体の特定のタイプに無関係に同等に適用されることを諒解するであろう。信号担持媒体の例には、とりわけ、揮発性メモリ・デバイス、不揮発性メモリ・デバイス、フロッピ（Ｒ）および他の取外し可能ディスク、ハード・ディスク、光ディスク（たとえばＣＤ−ＲＯＭ、ＤＶＤなど）などの記録可能型媒体と、ディジタル通信リンクおよびアナログ通信リンクなどの伝送型媒体が含まれるが、これに制限されない。
【００３０】
以下で説明するさまざまなプログラムを、それらが本発明の特定の実施形態で実施される目的の応用例に基づいて識別できることを諒解されたい。しかし、以下の特定のプログラム用語が、単に便宜のために使用され、したがって、本発明が、そのような用語によって識別または暗示される特定の応用例だけでの使用に制限されてはならないことを諒解されたい。
【００３１】
上で説明した所有権変更機能性をサポートするために、アクセス制御回路４０は、クラスタ化コンピュータ・システム内のさまざまなノードによってブリッジ・デバイスに向けられる読取アクセスおよび書込アクセスを受け入れるように構成される。この実施形態に関して、ネットワーク・ファブリックが、ノードとブリッジ・デバイスの間で読取要求および書込要求を転送し、各要求に、少なくとも要求のソースのネットワーク・アドレス、要求のターゲットのアドレス、およびアクセスされるメモリ・アドレスが含まれると仮定する。しかし、代替案では、他のネットワーク・プロトコルを使用できることを諒解されたい。
【００３２】
示される実施形態では、アクセス制御回路が、デバイス上に存在するさまざまな構成レジスタ３２に向けられた読取要求および書込要求を処理するように構成される。各構成レジスタに、ブリッジ・デバイスのアドレス可能メモリ空間内のアドレスが割り振られる。したがって、特定の構成レジスタのアドレスに向けられた読取要求または書込要求が、ブリッジ・デバイスのアクセス制御回路によって、そのレジスタに対する読取要求または書込要求として処理される。
【００３３】
上で説明した所有権変更機能性を実施するために、図２および図３に示された形でロック・インジケータ・レジスタに対する読取アクセス要求および書込アクセス要求を処理するようにアクセス制御回路を構成する。ロック・インジケータ・レジスタには、通常は、ブリッジ・デバイスの「ロック」状況または「アンロック」状況が保管され、したがって、１ビットだけを使用してデバイス状況を表すことができる。
【００３４】
図２からわかるように、たとえば、ロック・インジケータ・レジスタに向けられた読取アクセス要求は、ロック読取ルーチン６０によって処理され、ロック読取ルーチン６０は、ブロック６２で、ロック・インジケータ・レジスタの現在の状態をテストすることによって開始される。ロック・インジケータに「１」がセットされ、ブリッジ・デバイスが現在ロックされていることが示される場合には、制御をブロック６４に渡し、ブリッジ・デバイスが現在ロックされていることを示す「１」の結果を返す。
【００３５】
ブロック６２に戻って、ロック・インジケータ・レジスタから、ブリッジ・デバイスがアンロック状態である（図示の実施形態では値「０」）が示される場合には、制御がブロック６６に渡されて、（１）ロック・インジケータ・レジスタに「１」の値をセットすることによってブリッジ・デバイスをロックし、（２）読取要求を発行したソース・ノードの識別情報を所有者識別レジスタに保管する。上で述べたように、示される実施形態では、ソース・ノードのネットワーク・アドレスならびに、読取要求を受け取ったブリッジ上のポートが、通常はブリッジ・デバイスの新しい所有者を識別するために保管される。所有者識別レジスタにソース・ノード情報を保管することによって、ブリッジ・デバイスが、ソース・ノードに関連付けられ、所有される。ネットワーク・アドレスとポートの両方を所有者識別子として使用することによって、ネットワーク上の複数のノードが同一のネットワーク・アドレスを有する場合であっても、ブリッジ・デバイスへの書込アクセスを防止することが可能になることに留意されたい。そのような状況は、システム障害の後に、パワー・アップ時にネットワーク上で一意でない可能性があるデフォルト・ネットワーク・アドレスが割り当てられる場合に発生する可能性がある。
【００３６】
ブロック６６の完了時に、制御がブロック６８に渡されて、ブリッジ・デバイスが読取アクセス要求の時にアンロックされていたことを示す「０」の値を返す。したがって、「０」の結果は、所有権がソース・ノードに許可されたことをソース・ノードに示す。
【００３７】
ロック・インジケータ・レジスタに向けられた書込アクセス要求は、図３のルーチン７０によって示されるように処理される。書込要求に応答して、ブロック７２で、レジスタに書き込まれる値が「０」か「１」かを判定する。「０」でない場合には、処置が実行されないので、ブロック７４に制御を渡す。しかし、「０」を書き込む処置が試みられる場合には、ブロック７２からブロック７６に制御を移して、ロック・インジケータを「０」の値にリセットする。その後、制御をブロック７４に渡して、要求の処理を完了する。他の実施形態では、すべての書込要求（たとえば、任意の値の書込）を処理して、ロック・インジケータをリセットすることができる。そのような代替実施形態では、書込要求で供給される値に関する検査が、不要になる。
【００３８】
信頼性のある所有権変更を保証するために、２つの同時読取が発生する場合であっても、正確に１つのロック・ビットの読取側がロック・ビットをリセットすることを保証するようにアクセス制御回路を構成する。任意の数の既知のアービトレーション方式を使用して、複数の保留中の要求の１つを処理し、その結果、ブリッジ・デバイスがアンロック状況である時に、１つのノードだけがブリッジ・デバイスの所有権を得るようにすることができる。別のノードが、その後に、ブリッジ・デバイスの所有権を取り戻すことを望む場合に、そのノードは、上で説明したように、書き込みアクセス要求を使用してロック・インジケータをリセットする必要がある。
【００３９】
ブリッジ・デバイスが、ロックされ、特定のノードに関連付けられた後に、ロック・インジケータ・レジスタおよび所有者識別子レジスタが、ブリッジ・デバイスへの読取アクセスまたは書込アクセスもしくはその両方のゲーティングに使用される。示される実施形態では、すべてのブリッジ・レジスタに対する読取が、ロック・インジケータの状況に無関係にいつでも許可される。しかし、ロック・インジケータ・レジスタを除くすべてのレジスタへの書込が、所有者識別子レジスタで識別されるノードに制限される。図４からわかるように、たとえば、ルーチン８０をアクセス制御回路内で実施して、すべてのブリッジ構成レジスタへの書き込みアクセス要求を処理することができる。ルーチン８０は、ブロック８２で、要求に関連するソース識別情報が、所有者識別子レジスタに保管されているかどうかを判定することによって開始される。そうでない場合には、制御をブロック８４に渡し、書込要求を無視する（または、「拒否」の結果を返す）。そうではなく、情報が一致する場合には、ブロック８２からブロック８６に制御を渡して、要求に従って書込動作を実行する。その後、制御をブロック８４に移して、動作を完了する。
【００４０】
示される実施形態では、ロック・インジケータ・レジスタへの書込アクセスを、ロック・インジケータ・レジスタの状況に無関係に、いつでも許可することができることも諒解されたい。したがって、どのノードでも、望むならばブリッジ・デバイスのロックを中断することを許可される。それを行うことによって、所有するノードがそれ自体で所有権を解放しないか解放できない場合であっても、別のノードが所有権を得ることが許可され、したがって、所有するノードの障害が、通常は、別のノードがブリッジ・デバイスの所有権を得ることを妨げなくなる。
【００４１】
本発明との一貫性を有する所有権変更の開始は、複数の形で処理することができる。たとえば、ノードのクラスタ化リソース・サービスが、特定のノードでの障害の検出に応答して自動的に所有権変更を開始できるようにし、その結果、障害を発生したノードを所有権の義務から解放することができ、別のノードが、第１のノードの障害が完了する前にこれらの所有権の義務を引き受けるようにすることができることが望ましい。代替案では、所有権変更動作を、管理者が、たとえば、より上位のジョブを介してクラスタ化リソース・サービスと対話するシステム管理者によってノードのクラスタ化リソース・サービスに対して行われる要求を介して、開始することができる。さらに、所有権変更は、主修正処置とすることができ、また、たとえばクラスタがより上位でのリソース管理にシフトできない場合の、バックアップ修正処置とすることができる。さらに、クラスタ化リソース・サービスを介するのではなく、オペレーティング・システム内の低水準ルーチンを使用して、所有権変更動作を開始することができる。
【００４２】
図５に、ノードの観点からの、所有権獲得ルーチン１００によって表される、例示的な所有権変更動作の進行を示す。ノードが、検出された障害または手動で活動化されたイベントのいずれかに起因して、ブリッジ・デバイスの所有権を得ることを望む場合に、所有権獲得ルーチン１００が呼び出され、ブロック１０２で、ブリッジのロック・インジケータ・レジスタへの「０書込」要求を送出することによって開始される。それを行うことによって、図３に関して上で説明したように、ロック・インジケータのリセットがもたらされる。次に、ブロック１０４で、ブリッジ・ロック・インジケータ・レジスタへの読取要求を送出し、したがって、ブリッジ・デバイスの所有権を得ることを試みる。その要求に応答して、ブリッジ・デバイスが、上で図２に関して説明したように要求を処理し、結果を返し、その結果が、ブロック１０６で調べられる。結果が「１」の値であり、ブリッジが、読取要求の時にロックされていた（たとえば、ここで論じているノードの前に読取要求を発行した別のノードに起因して）ことが示される場合に、制御をブロック１０８に渡して、「失敗」表示を呼出し元ルーチンに返し、所有権変更動作が完了しなかったことを示す。しかし、読取要求の結果が「０」であり、ブリッジ・デバイスが、読取要求を受け取った時にロックされていなかったことが示される場合には、ブロック１０６からブロック１１０に制御を渡して、１つまたは複数の書込要求をブリッジ構成レジスタに送って、１つまたは複数の構成パラメータを構成し、これによって、そのノードによって管理されるようにブリッジ・デバイスを初期化する。
【００４３】
ブロック１１０の完了時に、ブリッジ構成レジスタが書込要求に応答して実際に更新されたことを確認するために、ブロック１１２を、任意選択として実行して、ブリッジ構成レジスタに１つまたは複数の読取要求を送ることができる。そのような確認によって、ソース・ノードによる所有が完了したことが確認される。したがって、ブロック１１４で、所有が確認されたかどうかを判定し、そうである場合には、ブロック１１６に制御を渡して、「成功」の結果と共にルーチンを終了する。そうでない場合には、ブロック１１４からブロック１０８に制御を渡して、「失敗」の結果を返し、所有権獲得ルーチン１００を終了する。代替案では、ブリッジ・ロック・レジスタへの成功裡の読取要求の後に行われるすべての書込要求によって、ローカル・ノードへの所有権の転送が完了するという前提の下で、ブロック１１２および１１４を省略することができる。
【００４４】
本発明の趣旨および範囲から逸脱せずに、示される実施形態に対するさまざまな修正を行うことができる。たとえば、他の形態のアクセス要求を使用して、本明細書で開示されたアトミック動作を実行することができる。さらに、さまざまなレジスタの組合せを使用して、構成情報、具体的にはロック・インジケータ、所有者識別子、および構成パラメータを保管することができる。たとえば、構成パラメータ、所有者識別子、およびロック・インジケータに関連するデータを、同一のレジスタ内の異なるビットに保管するか、複数のレジスタにまたがって分配することができる。レジスタ構造内のそのようなデータの配置を広範囲に変更できるので、あるタイプの情報を得るためのあるレジスタへのアクセスの実行および別のタイプの情報を得るためのレジスタへの別のアクセスの実行に対する本明細書での言及が、異なるレジスタまたは同一のレジスタ内の異なるフィールドへのアクセスを構成することができることを諒解されたい。
【００４５】
また、所有権識別に基づく追加のゲーティングを行うことができることを諒解されたい。たとえば、ブリッジ・デバイスを、所有者ノードからのみの、ブリッジに結合されたリソースに向けられたアクセス要求の受取に制限することができ、これによって、所有者識別子レジスタを、そのようなアクセス要求に関連して使用することができる。
【００４６】
ルーチン１００の後に、制御するノードが、さらに、たとえばデバイス上のリソースとのクラスタ通信を確立するために、ブリッジ・デバイスの追加の構成を要求できることも諒解されたい。
【００４７】
他の修正形態は、当業者に明白であろう。したがって、本発明は、請求項に見出される。
【００４８】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００４９】
（１）クラスタ化コンピュータ・システム内の入出力ブリッジ・デバイスでアクセス要求を処理する方法であって、
（ａ）前記クラスタ化コンピュータ・システム内の第１ノードから、前記入出力ブリッジ・デバイスに関連するロック・インジケータに向けられたアクセス要求を受け取るステップと、
（ｂ）前記ロック・インジケータがセットされていない場合に、前記ロック・インジケータをセットし、前記入出力ブリッジ・デバイスを前記第１ノードに関連付けることによって、前記アクセス要求に応答して前記入出力ブリッジ・デバイスをロックするステップと、
（ｃ）前記クラスタ化コンピュータ・システム内のもう１つのノードから受け取られた書込要求に応答して、前記もう１つのノードが前記入出力ブリッジ・デバイスに関連付けられていない場合に、前記入出力ブリッジ・デバイスに関連する少なくとも１つの構成パラメータへの前記もう１つのノードによる書込アクセスを制限するステップと
を含む方法。
（２）前記アクセス要求が読取要求を含み、前記方法がさらに、前記読取要求に応答して、前記ロック・インジケータがセットされていない場合に前記第１ノードにアンロック状況を返し、前記ロック・インジケータがセットされている場合に前記第１ノードにロック状況を返すステップを含む、（１）に記載の方法。
（３）前記入出力ブリッジ・デバイスを前記第１ノードに関連付けるステップが、前記第１ノードに関連する所有者識別子を前記入出力ブリッジ・デバイスに関連する所有者識別子レジスタに保管するステップを含む、（１）に記載の方法。
（４）前記所有者識別子が、前記アクセス要求を前記入出力ブリッジ・デバイスに送った前記ノードのネットワーク・アドレスと、前記アクセス要求がそれを介して受け取られた、前記入出力ブリッジ・デバイス上のポートに関連するポート識別子とを含む、（３）に記載の方法。
（５）前記クラスタ化コンピュータ・システム内のノードによって前記ロック・インジケータに向けられた書込要求に応答して前記ロック・インジケータをリセットするステップをさらに含む、（１）に記載の方法。
（６）前記入出力ブリッジ・デバイスが前記第１ノードに関連付けられている時に、前記第１ノードから受け取られた書込要求に応答して前記構成パラメータを更新するステップをさらに含む、（１）に記載の方法。
（７）前記クラスタ化システム内のいずれかのノードから受け取られた読取要求に応答して、そのノードが前記入出力ブリッジ・デバイスに関連付けられているかどうかに無関係に、前記構成パラメータに関連する状況情報を返すステップをさらに含む、（１）に記載の方法。
（８）前記構成パラメータが、所有者識別情報、ブリッジ・アドレス情報、ブリッジ・レジスタ・アドレス・マッピング情報、リソース・アドレス・マッピング情報、電源管理情報、およびその組合せからなる群から選択される、（１）に記載の方法。
（９）前記ロック・インジケータをセットし、前記入出力ブリッジ・デバイスを前記第１ノードに関連付けるステップが、アトミック動作として一団として実行される、（１）に記載の方法。
（１０）クラスタ化コンピュータ・システム内の入出力ブリッジ・デバイスの所有権を得る方法であって、
（ａ）前記クラスタ化コンピュータ・システム内の第１ノードで、前記入出力ブリッジ・デバイスを前記第１ノードに関連付け、前記クラスタ化コンピュータ・システム内のもう１つのノードが前記入出力ブリッジ・デバイス内の少なくとも１つの構成パラメータ・レジスタを更新することを制限するアトミック動作を開始するステップと、
（ｂ）その後、前記第１ノード内で、前記入出力ブリッジ・デバイス内の前記構成パラメータ・レジスタに対する更新を開始することによって、前記第１ノードと共に動作するように前記入出力ブリッジ・デバイスを構成するステップと
を含む方法。
（１１）前記アトミック動作が、前記入出力ブリッジ・デバイスに関連するロック・インジケータ・レジスタに向けられた読取動作を含む、（１０）に記載の方法。
（１２）前記第１ノードと共に動作するように前記入出力ブリッジ・デバイスを構成するステップが、前記読取動作に応答してアンロック状況を受け取ることに応答して実行される、（１１）に記載の方法。
（１３）前記ロック・インジケータ・レジスタに対する書込動作を開始することによって、前記アトミック動作を開始する前に前記ロック・インジケータ・レジスタをリセットするステップをさらに含む、（１１）に記載の方法。
（１４）前記入出力ブリッジ・デバイス内の前記構成パラメータ・レジスタを更新するステップが、所有者識別情報、ブリッジ・アドレス情報、ブリッジ・レジスタ・アドレス・マッピング情報、リソース・アドレス・マッピング情報、電源管理情報、およびその組合せからなる群から選択される構成パラメータを更新するステップを含む、（１０）に記載の方法。
（１５）クラスタ化コンピュータ・システム内で使用される入出力ブリッジ・デバイスであって、
（ａ）前記入出力ブリッジ・デバイスがロックされているかどうかを示すロック・インジケータ・レジスタと、
（ｂ）前記入出力ブリッジ・デバイスを所有する前記クラスタ化コンピュータ・システムからのノードを識別する所有者識別レジスタと、
（ｃ）前記入出力ブリッジ・デバイスと前記クラスタ化コンピュータ・システムとの間の通信を構成する構成パラメータ・レジスタと、
（ｄ）前記ロック・インジケータ・レジスタおよび前記構成パラメータ・レジスタに向けられたアクセス要求を受け取るように構成されたアクセス制御回路であって、前記ロック・インジケータ・レジスタが前記アクセス要求の処理の時にリセットされている場合に、前記アクセス要求に関連するソース・ノードを識別するために、前記ロック・インジケータ・レジスタをセットし、前記所有者識別レジスタを更新することによって、前記ロック・インジケータ・レジスタに向けられたアクセス要求を処理し、前記所有者識別子レジスタが前記構成パラメータ・レジスタに向けられた書込要求に関連するソース・ノードを識別する場合に、前記構成パラメータ・レジスタを更新することによって、前記構成パラメータ・レジスタに向けられた前記書込要求を処理するように構成される、アクセス制御回路と
を含む入出力ブリッジ・デバイス。
（１６）前記アクセス制御回路が、さらに、前記ロック・インジケータ・レジスタをリセットすることによって、前記ロック・インジケータ・レジスタに向けられた第２書込要求を処理するように構成される、（１５）に記載の入出力ブリッジ・デバイス。
（１７）前記アクセス制御回路が、さらに、前記所有者識別レジスタが前記第２書込要求に関連するソース・ノードを識別するかどうかに無関係に、前記第２書込要求に応答して、前記ロック・インジケータ・レジスタをリセットするように構成される、（１６）に記載の入出力ブリッジ・デバイス。
（１８）前記アクセス要求が、読取要求を含み、前記アクセス制御回路が、さらに、前記ロック・インジケータ・レジスタの状況に基づいてロック状況またはアンロック状況を返すことによって前記読取要求を処理するように構成される、（１５）に記載の入出力ブリッジ・デバイス。
（１９）前記アクセス制御回路が、前記ソース・ノードのネットワーク・アドレスと前記アクセス要求がそれを介して受け取られた前記入出力ブリッジ・デバイス上のポートに関連するポート識別子とを識別するために前記所有者識別子レジスタを更新するように構成される、（１５）に記載の入出力ブリッジ・デバイス。
（２０）前記アクセス制御回路がさらに、前記クラスタ化コンピュータ・システム内のいずれかのノードからの読取要求に応答して、前記所有者識別子レジスタが前記読取要求に関連するソース・ノードを識別するかどうかに無関係に、前記構成パラメータ・レジスタに関連する状況情報を返すように構成される、（１５）に記載の入出力ブリッジ・レジスタ。
（２１）前記構成パラメータ・レジスタが、所有者識別情報、ブリッジ・アドレス情報、ブリッジ・レジスタ・アドレス・マッピング情報、リソース・アドレス・マッピング情報、電源管理情報、およびその組合せからなる群から選択される構成パラメータを保管する、（１５）に記載の入出力ブリッジ・デバイス。
（２２）クラスタ化コンピュータ・システムであって、
（ａ）複数のノードと、
（ｂ）前記複数のノードからの少なくとも１つのノードに結合され、少なくとも１つの構成パラメータ・レジスタを含み、前記複数のノードの中の第１ノードからの第１要求に応答して、前記入出力ブリッジ・デバイスを前記第１ノードに関連付け、かつ前記複数のノードの中のもう１つのノードが前記構成パラメータ・レジスタを更新することを制限するアトミック動作を実行するように構成され、その後、前記第１ノードからの第２要求に応答して、前記第１ノードと通信するように前記入出力ブリッジ・デバイスを構成するために前記構成パラメータ・レジスタを更新するようにさらに構成される入出力ブリッジ・デバイスと
を含む、クラスタ化コンピュータ・システム。
（２３）前記入出力ブリッジ・デバイスが、ＰＣＩ（Peripheral Component Interconnect）バス・ブリッジ・デバイスへの入出力拡張バスを含む、（２２）に記載のクラスタ化コンピュータ・システム。
（２４）前記アトミック動作が、前記入出力ブリッジ・デバイスに関連するロック・インジケータ・レジスタに向けられた読取動作を含む、（２２）に記載のクラスタ化コンピュータ・システム。
（２５）前記第１ノードが、前記読取動作に応答するアンロック状況の受取に応答して、前記第２要求を開始するように構成される、（２４）に記載のクラスタ化コンピュータ・システム。
（２６）前記第１ノードが、前記ロック・インジケータ・レジスタへの書込動作を開始することによって、前記第１要求を開始する前に、前記ロック・インジケータ・レジスタをリセットするように構成される、（２４）に記載のクラスタ化コンピュータ・システム。
（２７）前記入出力ブリッジ・デバイスが、前記入出力ブリッジ・デバイスが前記ロック・インジケータ・レジスタに対する書込動作のソースに関連するかどうかに無関係に、前記書込動作を処理するように構成される、（２６）に記載のクラスタ化コンピュータ・システム。
（２８）前記入出力ブリッジ・デバイス内の前記構成パラメータ・レジスタが、所有者識別情報、ブリッジ・アドレス情報、ブリッジ・レジスタ・アドレス・マッピング情報、リソース・アドレス・マッピング情報、電源管理情報、およびその組合せからなる群から選択される構成パラメータを保管する、（２２）に記載のクラスタ化コンピュータ・システム。
（２９）前記入出力ブリッジ・デバイスが、前記第２要求が前記第１ノードから前記入出力ブリッジ・デバイスによって受け取られた時に前記入出力ブリッジ・デバイスが前記第１ノードに関連付けられている場合に限って、前記第１ノードと通信するように前記入出力ブリッジ・デバイスを構成するように前記構成パラメータ・レジスタを更新するように構成される、（２２）に記載のクラスタ化コンピュータ・システム。
（３０）（ａ）クラスタ化コンピュータ・システムの第１ノードに常駐するように構成されたプログラムであって、入出力ブリッジ・デバイスのロック・インジケータをリセットすること、前記入出力ブリッジ・デバイスを前記第１ノードに関連付け、前記クラスタ化コンピュータ・システム内のもう１つのノードが前記入出力ブリッジ・デバイス内の構成パラメータ・レジスタを更新することを制限するアトミック動作を開始すること、および前記第１ノードと通信するように前記入出力ブリッジ・デバイスを構成するための前記構成パラメータ・レジスタの更新を開始することによって、前記第１ノードに結合された前記入出力ブリッジ・デバイスの所有権を得るように構成されたプログラムと、
（ｂ）前記プログラムを担持する信号担持媒体と
を含むプログラム製品。
（３１）前記信号担持媒体が、記録可能媒体および伝送媒体の少なくとも１つを含む、（３０）に記載のプログラム製品。
【図面の簡単な説明】
【図１】入出力リソースを有するクラスタ・ノードとインターフェースするために入出力ブリッジ・デバイスを組み込まれた、本発明との一貫性を有するクラスタ化コンピュータ・システムのブロック図である。
【図２】図１のクラスタ化コンピュータ・システムからのブリッジ・デバイスついてアクセス制御回路によって実行されるロック読取ルーチンのプログラムの流れを示す流れ図である。
【図３】図１のクラスタ化コンピュータ・システムからのブリッジ・デバイスについてアクセス制御回路によって実行されるロック書込ルーチンのプログラムの流れを示す流れ図である。
【図４】図１のクラスタ化コンピュータ・システムからのブリッジ・デバイスについてアクセス制御回路によって実行されるブリッジ構成レジスタ書込ルーチンのプログラムの流れを示す流れ図である。
【図５】図１のクラスタ化コンピュータ・システムのノードによって開始される所有権獲得ルーチンのプログラムの流れを示す流れ図である。
【符号の説明】
１０  クラスタ化コンピュータ・システム
１２  ノード
１４  ネットワーク
１６  システム・プロセッサ
１８  メモリ
２０  入出力ハブ
２２  プロセッサ・バス
２４  ブリッジ・デバイス
２６  ネットワーク
２８  入出力アダプタ（ＩＯＡ）
３０  クラスタ化リソース・サービス
３２  構成レジスタ
３４  ロック・インジケータ・レジスタ
３６  所有者識別レジスタ
３８  追加の構成パラメータ・レジスタ
４０  アクセス制御回路
【図１】
0003790717.tif 000002
【図２】
0003790717.tif 000003
【図３】
0003790717.tif 000004
【図４】
0003790717.tif 000005
【図５】
0003790717.tif 000006