(57)【特許請求の範囲】
【請求項１】
セルの構成済みセットに対して、パーティションを形成する方法であって、
構成済みセットの所定のセルが他のセルとの通信を試みる第１のランデブ状態となった後、他のセルが第１のランデブ状態となることができるように、遅延するステップと、
該所定のセルが他のセルと通信することができる第２のランデブ状態に遷移するステップと、
該所定のセルおよび第２のランデブ状態に達した他のセルを含むローカルランデブセットを構成するステップと、
構成された複数のローカルランデブセットの論理積を表わすグローバルランデブセットを構成するステップと、
グローバルランデブセットの互換性のあるセルをアライブセットとして決定するステップと、
アライブセットに対してパーティションを形成するステップと、を含み、構成済セットのセルは、前記ステップを独立して並列に実施する、パーティションを形成する方法。
【請求項２】
前記遅延するステップは、（ｉ）所定時間、（ｉｉ）いずれかのセルが前記第２のランデブ状態に達する時、および（ｉｉｉ）セルの前記構成済みセットのすべてのセルが前記第１のランデブ状態に達する時、のうちの早い方の時まで遅延する請求項１に記載の方法。
【請求項３】
前記ローカルランデブセットを構成するステップの後、前記ローカルランデブセットを他のセルが見ることができる場所に書込むステップを更に含み、前記第２のランデブ状態に達したセルは、前記書込むステップを独立して並列に実行する請求項１に記載の方法。
【請求項４】
前記グローバルランデブセットからコアセルを決定するステップを更に含む請求項１に記載の方法。
【請求項５】
互換性のあるセルをアライブセットとして決定する前記ステップを前記コアセルによって実行する請求項４に記載の方法。
【請求項６】
前記パーティションにオペレーティングシステムを確立するステップを更に含む請求項１に記載の方法。
【請求項７】
各セルによって、他のどのセルが第２のランデブ状態に遷移したかどうか判断するステップを更に含む請求項１に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マルチパーティションコンピュータシステムの独立して実行しているセルを、単一障害点を生成することなく１つのパーティションに編成するシステムおよび方法に関し、特に、それぞれのセルで並列に実行される命令によってセルをパーティションに編成することに関する。
【０００２】
（関連出願）
この出願は、その開示内容がすべて引用をもって本明細書内に包含されたものとする、「RECONFIGURATION SUPPORT FOR MULTI PARTITION COMPUTER SYSTEM」と題された、同時係属の本願と同一の譲受人に譲渡された米国特許出願第09/562、590号と、「A SERVICE PROCESSOR WITH ALGORITHMS FOR  SUPPORTING A MULTI PARTITION COMPUTER」と題された、同時係属の本願と同一の譲受人に譲渡された米国特許出願第０９／５６１、８１２号と、に関連する。
【０００３】
【従来の技術】
従来のコンピュータプラットフォームは、複数のＣＰＵがオペレーティングシステム（ＯＳ）の単一のコピーを実行している、対称型マルチプロセッサ（symmetric multi processor（ＳＭＰ））構成であった。ＯＳは、複数のアプリケーションの実行を可能にするためにタイムシェアリングサービスを提供する。しかしながら、この構成により、アプリケーションは互いに干渉することを許すことになる。例えば、システムがアカウンティングアプリケーションを実行している場合、そのアカウンティングアプリケーションは、ＯＳが割付けることができるプロセッサと共に、システムのメモリを不均衡に割付ける可能性がある。そして、他のアプリケーション、例えば製造アプリケーションは、プロセッサまたはメモリを必要とする時、その必要のために十分なメモリまたはプロセッサを割付けることができず、従って、許容できない性能を示す。このため、製造アプリケーションは、非常に低速になるか、またはアカウンティングアプリケーションにより別の形で悪影響を受ける。また、この構成では、システムが障害に対し脆弱である。１つのアプリケーションの問題により、他のすべてのアプリケーションに障害がもたらされる可能性がある。
【０００４】
【発明が解決しようとする課題】
この問題に対する既知の解決法は、コンピュータシステムをパーティションまたは保護ドメインに分離する、というものである。これらパーティションは、リソースを別個の機能ブロックにするハードウェアセパレーションである。１つのブロックのリソースは、他のブロックのリソースに直接アクセスすることはできない。これにより、１つのアプリケーションが全システムリソースを使用することが防止されると共に、障害および誤りが阻止される。この解決法は、それ自体の問題を呈する。パーティションは、いったん画定されると、事実上静止し、容易に変更することはできない。かかるシステムは、障害に対して耐性がない。第１に、これらシステムでは、ブートアップ時にパーティション形成プロセスを管理するために構成プロセッサが存在する必要がある。このため、これら解決法は、単一障害点を含む。第２に、構造上の障害（fabric failure）または他の問題によりパーティション形成プロセス中に特定のリソースが存在しない場合、影響を受けるパーティションまたはシステム全体までもが機能することができない場合がある。
【０００５】
【課題を解決するための手段】
本発明は、パーティションに対するオペレーティングシステムインスタンスのインスタンス化に向けて、複数の独立して実行するセル（システムリソースを構成する別個のハードウェアエンティティ）からのパーティションの形成を柔軟に管理するシステムおよび方法に関する。特に、本発明は、好ましくは、個々のセルを独立に動作させること、およびセルをランデブ（rendezvous、集合）させることから、セルを、パーティションとして動作を継続するように相互依存させることに、遷移するように行なわれる、構成アクティビティを管理する。本発明は、好ましくは、単一障害点がプロセスを中断させることがないように、パーティショニング形成プロセスを管理する。代りに、本発明は、好ましくは、個々のセルがコンプレックスプロファイル（コンプレックス構成の「マップ」）のそれぞれのコピーに基づいて命令を個々に実行する分散アプリケーションとして実現される。また、本発明は、好ましくは、形成またはランデブプロセスに参加する用意ができているいくつかのセルに関連するある程度の遅延に適応する。本発明は、好ましくは、欠落した、使用不可能な、または他の形で誤動作するセルに対処することができる。本発明は、好ましくは、セル間の破壊されたファブリック接続と欠落したＩ／Ｏ能力とに適応する。更に、本発明は、好ましくは、現セルを分析することにより、それらの互換性（相互に同時使用可能であること、相互同時使用可能性）を決定し、互換性のないセルを拒否する。
【０００６】
上述したことは、下記の本発明の詳細な説明がよりよく理解され得るように、本発明の特徴および技術的利点をむしろ広く概説した。本発明の特許請求の範囲の主題を形成する本発明の更なる特徴および利点を、以下に述べる。当業者により、開示された概念および特定の実施の形態は、変更するかまたは本発明の同じ目的を実現する他の構造を設計するための基礎として容易に利用され得る、ということが認められるはずである。また、当業者により、かかる等価な構成が、併記の特許請求の範囲において示されるような本発明の趣旨および範囲から逸脱しない、ということも認められるはずである。
【０００７】
本発明をより完全に理解するために、ここで、添付図面と共に以下の説明を参照する。
【０００８】
【発明の実施の形態】
図１は、本発明を検討するための概念的フレームワークを提供するために利用される例示的なアーキテクチャを示す。図１に示す特定の構成は、単に例示の目的のためにだけに提供される。
【０００９】
ユーティリティサブシステム１０は、１つまたは複数のサービスプロセッサ１０１とコアＩ／Ｏモジュールを含む関連するインフラストラクチャと、セルマイクロコントローラ（ＣＭ）３０４と、を備える。コアＩ／Ｏモジュールは、パーティションとユーティリティサブシステム１０との間の通信を容易にする（コンソールデータを通信する等）、パーティションおよびユーティリティサブシステム１０に関連するリソースである。コアＩ／Ｏは、パーティションがブートするために必要とする最小Ｉ／Ｏ機能を含む。ユーティリティサブシステムの機能は、いずれのシステムソフトウェアも実行していない時にパーティションを管理すること等、コンプレックス１００を管理することである。サービスプロセッサ１０１は、異なるセルの各々、すなわちセル０、セル１およびセル２のＣＭ３０４と、各パーティションのコアＩ／Ｏモジュールとに論理的に接続される。好ましい実現は、ユーティリティサブシステムのコンポーネント間の論理接続のためにユニバーサルシリアルバス（Universal Serial Bus（ＵＳＢ））を使用する。しかしながら、コンポーネント間でメッセージを伝達することができるいかなるバスまたは方法も使用することができる。
【００１０】
セルは、１つまたは複数のシステムプロセッサと、メモリと、Ｉ／Ｏ接続モジュールと、プロセッサ依存ハードウェア（processor dependent hardware（ＰＤＨ））モジュールと、ＣＭモジュールと、を含む回路基板である。ＰＤＨモジュールは、好ましくは、それぞれのセルのプロセッサをブートストラップするために利用されるファームウェアを実現する。特に、ＰＤＨモジュールは、好ましくは、後により詳細に説明するようにパーティション形成プロセスに関連するＣＰＵ３０２で実行される命令を実現する。
【００１１】
セルは、パーティションに割当てることができる最小単位である。パーティションは、オペレーティングシステムの単一コピーを実行するセルまたはセルのグループである。コンプレックスは、多数のパーティションの集約である。コンプレックスは、複数のパーティションを備えてよく、オペレーティングシステムの複数のコピーを同時に実行することができる。また、複数の異なるオぺレーティングシステムを同時に実行してもよい。パーティションは保護領域を形成し、そこでは、異なるパーティションが、他のパーティションの動作に悪影響を及ぼさないよう、ハードウェアによって制約される。
【００１２】
セルは、ファブリックによって接続されるように示されている。ファブリックは、インストール時にセルが接続される、コンプレックス１００の各キャビネットのバックプレーン上のＡＳＩＣおよび物理接続のセットである。ファブリックは、好ましくは、発信しているセルとメモリとの間のプロセッサバス動作（例えば、読出し、書込み）か、メモリを含むセル上のＩ／Ｏか、またはバス動作によってアドレス指定されるＩ／Ｏの経路指定を行う。
【００１３】
また、図１は、セル２からなるパーティション１も示す。パーティション１は、システムファームウェアと、セル２のプロセッサで実行するＯＳおよびアプリケーションソフトウェアと、を有する。パーティション１とその実行中のソフトウェアとは、パーティション０から分離され隔離され、すなわち、何も共有せず、プロセッサエージェント（ＰＡ）３０１のハードウェア機能により互いに隔離されている。ＰＡ３０１は、好ましくは、パーティションゲーティングを実現する。パーティションゲーティングは、パーティション方式を生成しまたは実施するために利用される。特に、パーティションゲーティングは、所定のパーティションの一部でないセルが、そのパーティションの一部であるセルに対し不都合なトランザクション（例えば、書込みトランザクション）を行うことを防止する。
パーティションゲーティングはパーティショニングに望ましい隔離を提供する。
例えば、別のパーティションが破損した場合、そのセルは、一時的にファブリックに大量のトラフィックを発行する場合がある。他のパーティションからのセルは、そのトラフィックを検出する。しかしながら、破損していないパーティションに関連するセルは、誤ったトラフィックに応答することは決してない。パーティションゲーティング機能が、それぞれのパーティションに属さないセルからの不都合なトランザクションを無視するようにプログラムされているためである。
ＰＡ３０１は、好ましくは、許可されたセルを可変に構成するようプログラム可能である。特に、ＰＡ３０１は、各リセット、リブートまたは再構成手続き時に、異なるセルのセットにトランザクションを制限するようプログラムされてよい。
【００１４】
上記説明は比較的高レベルである、ということが認められよう。特に、マルチパーティションシステムの実際の実現は、一般に、非常に多数のパーティションとそれぞれのセルとを含む。更に、それぞれのセルは、図１に示されていない追加の電子コンポーネントを含んでよい。図１は、単に、本発明を説明するための概念的フレームワークを提供するために必要なレベルの詳細を示す。マルチパーティションシステムのアーキテクチャ、実現および動作に関する更なる詳細は、開示内容のすべてが引用をもって本明細書内に包含されたものとする、同時係属中の本願と同一の譲受人に譲渡された、「RECONFIGURATION SUPPORT FOR MULTI PARTITION COMPUTER SYSTEM」と題された米国特許出願第０９／５６２、５９０号と、「A SERVICE PROCESSOR WITH ALGORITHMS FOR SUPPORTING A MULTI PARTITION COMPUTER」と題された米国特許出願第０９／５６１、８１２号と、に述べられている。
【００１５】
相当に詳細に本発明を検討する前に、従来の実現がいかにパーティション形成プロセスを管理するかを検討することが適当である。特に、パーティション形成プロセスは、ブーティングプロセスをもたらす種々のシステムコンポーネントのパワーオンに関連して発生する場合がある。かかる手続き中、個々のセルは、独立してブートプロセスを開始する。例えば、セルはメモリを初期化すること、Ｉ／Ｏ能力を初期化すること等を行う。個々のセルのブーティングプロセスは、本技術分野において周知であり、従って、それほど明白には説明しない。また、個々のセルに関するブーティングプロセスは、パーティションに関し特別に何も行わない。従って、初期ブーティングプロセスが、独立して実行するセルの初期化を伴う、ということを留意するだけで十分である。
【００１６】
セルは、ブートされた後、種々のパーティションを形成するために制御の中心点と通信する。制御の中心点は、一般に、パーティション管理アクティビティ専用の内部サービスプロセッサとして実現されるが、外部プロセッサまたはシステムが利用されてもよい。サービスプロセッサは、パーティション方式が適当に機能するために必要な隔離を生成するために、種々のセルを指示し種々のコンポーネントを構成する。周知の実現には、サービスプロセッサが種々のパーティションを固定的に構成するようにすることが含まれる。従って、再構成およびスケーラビリティは、極めて制約される。更に、制御の中心点を使用することにより、サービスプロセッサの誤動作時にシステム全体に障害をもたらす単一障害点が生成される。更に、周知のアプリケーションはセル障害に耐性がない。特に、セルが適当な時刻に存在しない場合、周知のサービスプロセッサは、パーティション方式に適応することができない。このため、セルがパーティション形成プロセス中に報告しない場合、パーティションまたはシステム全体までもが、動作不可能になる場合がある。
【００１７】
本システムおよび方法は、制御の中心点にまったく頼らないという点で周知の解決法とは異なっている。本システムおよび方法は、分散方法を利用することにより、構造上の障害、セル障害、パーティション形成プロセスへの参加におけるセル遅延、パーティションに参加しようと試みる非互換性セル、および／または欠落したコアＩ／Ｏ能力等に対しはるかに耐性がある。本システムおよび方法は、後述するような種々のメカニズムを利用することにより柔軟性を達成する。
【００１８】
線形方式でパーティション形成プロセスを検討する前に、本発明の理解を容易にするためにある程度の背景情報が適当である。まず、本システムおよび方法は、好ましくは各セルにＣＭ３０４を確立する。ＣＭ３０４は、好ましくは、ブート禁止ビット（Boot-Inhibit-Bit（ＢＩＢ））を制御する。ＢＩＢにより、特定のポイントまでブートアップが継続する。特に、ＢＩＢがセットされている間、パーティション形成に関連するアクティビティを除くすべてのブーティングアクティビティが実行される（メモリ初期化、Ｉ／Ｏ初期化等）。従って、これにより、サービスプロセッサモジュール１０１が更新されたコンプレックスプロファイルを各ＣＭ３０４に通信する機会を有するまで、パーティション形成プロセスを遅延させることができる。通常の環境下では、サービスプロセッサモジュール１０１が、ＣＭ３０４にＢＩＢをリリースさせる。しかしながら、ＣＭ３０４は、サービスプロセッサ１０１が何らかの理由で利用不可能であると判断した場合、ＢＩＢリリースを自動的に実行する。
【００１９】
また、各ＣＭ３０４は、サービスプロセッサモジュール１０１に接続されるかまたはそれと通信することができる。サービスプロセッサモジュール１０１は、それぞれのセルがいずれのパーティションに属するかを詳述する、コンプレックスプロファイルと呼ばれるデータ構造を介して、情報を通信してよい。サービスプロセッサモジュール１０１は、好ましくは、コンプレックスプロファイルを、それぞれのＣＭ３０４との通信を介してそれぞれのセルに分配することにより、この情報を通信する。コンプレックスプロファイルは、本質的に、コンプレックス１００のパーティション方式を定義するマップまたは命令のセットを提供する。好ましい実施の形態では、コンプレックスプロファイルは構成済みセット（configured set）からなる。コンプレックスプロファイルは、ファームウェアが特にコンプレックスにおいてどのように動作し得るかを詳述するはるかに多くの情報を含むことができる、ということが認められよう。構成済みセットは、いずれのセルが所定のパーティション内に含まれるように構成されるかを定義する。例えば、コンプレックスプロファイルは、セル０をパーティション０に関連付けるデータフィールドと、セル１をパーティション０に関連付けるデータフィールドと、セル２をパーティション１に関連付けるデータフィールドと、を含んでよい。構成済みセットは、必ずしも存在しないセルを参照してもよい、ということが認められよう。構成済みセットは、物理的にセル基板を収容するセルスロットを参照してもよい。コンプレックス１００がまだ各セルスロットのセルを含むように拡張されていない場合、セルスロットのうちのいくつかは空であってよい。後により詳細に述べるように、パーティション形成プロセスは、欠落したセルに適応する。
【００２０】
サービスプロセッサモジュール１０１は、好ましくは、コンプレックスプロファイルの分配および変更を厳密に制御する。ここで、サービスプロセッサモジュール１０１は、ＢＩＢをリリースする前に、各ＣＭ３０４を介して各セルにコンプレックスプロファイルを配置する。また、各ＣＭ３０４は、好ましくは、コンプレックスプロファイルの以前のリビションかまたはコンプレックスプロファイルの離散的な数のリビションをキャッシュする。従って、本システムおよび方法は、好ましくは、コンプレックスプロファイルの種々のバージョンにリビション識別子を単調に割当てる。このため、サービスプロセッサモジュールが各ＣＭ３０４でコンプレックスプロファイルを更新する度に、新たなより高い値が付された識別子が最新バージョンに割当てられる。
【００２１】
パーティション形成プロセスの線形の検討に移ると、図２は、独立して実行するセルのグループからパーティションを形成するように実行される例示的なイベントのフローチャートを示す。まず、好ましくは、モナーク（monarch）プロセッサに対して実行可能命令を定義するＰＤＨモジュールによるファームウェアを利用して、以下の多数のメカニズムが実行される、ということが認められよう。一般に各セルが多数のプロセッサを含むため、「モナークプロセッサ」という語を使用する。このように、ＣＰＵ３０２のうちの１つのプロセッサが、そのそれぞれのセルに関連するブーティングおよびパーティション形成アクティビティを管理するために任意に選択される。ＣＰＵ３０２のうちの他のＣＰＵは、他のアクティビティに必要とされるまでスピンループに入る。更に、後続する多数のメカニズムが、分散されて実行される、すなわち、種々のメカニズムが独立して別々のセルのモナークプロセッサで並列に発生している、ということが認められよう。また、各セルにおいて、同じメカニズムまたはイベントは、必ずしも同時には実行されない。むしろ、異なるセルに関連する同様のイベント間にかなりの時間差が存在する場合がある。
【００２２】
ステップ２０１において、通常のセルブーティングプロセスが発生する（すなわち、メモリ初期化、Ｉ／Ｏ初期化等）。更に、セルのブートアップ状態を反映するために、好ましくはハードウェアレジスタが各セルに関連付けられる。レジスタにより、いかなる数の状態が表されてもよい。また、セルがファブリックに接続される前に、状態レジスタがヌル（null）にセットされるかまたはクリアされることが望ましい。更に、他のセルが他の状態レジスタの各々を読出すことができるようにすることが望ましい。そうすることにより、多数のメカニズムが容易にされ得る。まず、特定のセルの状態レジスタがゼロかまたはヌル状態のままである場合、その特定のセルがまったく進行しておらず、パーティション形成プロセスから排除されるべきである、と結論付けられてよい。同様に、セルがコアＩ／Ｏ（ブーティングを継続するために必要な最小Ｉ／Ｏ）を所有していることを通知するために、汎用レジスタまたは他の予め定義されたメカニズムを利用することが好ましい。これらレジスタは、後により詳細に述べるように、パーティション形成プロセス中に参照される。
【００２３】
通常のセルブーティングの発生後、ＢＩＢがリリースするまでスピンループが実行される（ステップ２０２）。通常の環境下では、サービスプロセッサモジュール１０１が、種々のセルがＣＭ３０４を介してコンプレックスプロファイルの最新のリビションを所有していることを保証した後、ＢＩＢリリースが発生する。しかしながら、サービスプロセッサモジュール１０１は、誤動作するかまたは他の理由で利用不可能である可能性がある。従って、ＣＭ３０４は、サービスプロセッサモジュール１０１が利用不可能であると判断した場合、ＢＩＢリリースをもたらしてよい。この環境下では、パーティションプロセスは、各セルに事前に格納されたキャッシュされたコンプレックスプロファイルに従って発生する。このため、本発明は、単一故障点が避けられるという意味で、周知のマルチパーティションシステムと比較して重要な利点を提供する。
【００２４】
ＢＩＢリリース後、セルは、最新のコンプレックスプロファイルの破損していないバージョンを所有しているか判断する（ステップ２０３）。コンプレックスプロファイルは、好ましくは、チェックサムを利用し、単調なリビション識別子を利用して検査される。特に、コンプレックスプロファイルに関連するデータは破損する場合がある。特に、コンプレックスプロファイルは、一般に大型のデータ構造であり、アトミックに（atomically）更新することはできない。むしろ、コンプレックスプロファイル全体を通信するために、概して複数の書込みトランザクションが必要である。サービスプロセッサモジュール１０１が、所定の更新に関連する書込みトランザクションのすべてを完了する前に機能を停止した場合、データ破損が発生する可能性がある。コンプレックスプロファイルが何らかの理由で無効である場合、好ましくは再構成のためのリセットが発生する（ステップ２０４）。再構成のためのリセットは、ＢＩＢがセットされた特別なタイプのリセットである。これにより、次のブート中にＢＩＢにおいてセルが停止し、そのセルが単一セルとして可能な限りブートすることが可能になる一方で、サービスプロセッサモジュール１０１が新たなコンプレックスプロファイル（再構成データを含んでよい）を通信することが可能になる。
【００２５】
ステップ２０５において、キャッシュデータが、コンプレックスプロファイルの現バージョンのデータと比較される。特に、コンプレックスプロファイルに関連する所定のデータは、ブーティングプロセスの初期に利用される。しかしながら、サービスプロセッサモジュール１０１は、ＢＩＢリリース前のいつでもコンプレックスプロファイルを更新する可能性がある。そのため、ブーティングプロセスの初期に利用されるデータは、コンプレックスプロファイル更新により無効である可能性のあるキャッシュされた値（cached values）に頼る。従って、キャッシュされた値が現コンプレックスプロファイルと一致するか判断することが適当である。値が一致しない場合、セルは新たなコンプレックスプロファイルの新たな値を有効にするようリセットする（ステップ２０６）。このリセットは、セルを遅延させるが、セルをＢＩＢで停止させない。追加の遅延は、同期セルステップ２０８に関して後述するように、必ずしもセルがパーティションに参加しないようにはしない。更に、まさに最初のブートアップ時にはそれより前のコンプレックスプロファイルが存在し得ないため、キャッシュされた値は、好ましくは、そのまさに最初のブート手続きに対して許容可能な定義された値にセットされる。
【００２６】
ステップ２０７において、ファブリック初期化が発生する。ファブリック初期化により、セルは他のセルと通信を開始する。
【００２７】
ファブリック初期化後、同期セル（ステップ２０８）メカニズムが発生する。同期セルステップ２０８中、コンプレックスプロファイルのそれぞれのコピーを利用する分散方法で、セルは同じ構成済みセット内の他のセルと接触または通信しようと試みる。図３は、同期セルステップ２０８に関連するサブステップを示す。特に、各セルは、構成済みセット内の他のいずれかのセルがＲＥＮＤＥＺ状態に達したか判断しようと試みる（ステップ２０８ａ）。同期セルステップ２０８ａ中、特定の構成済みセット（コンプレックスプロファイルのそれらのローカルコピーによって定義されるような）の現セルの各々は、それぞれのレジスタ値を介して構成済みセットの他のセルの状態を判断しようと試みる。構成済みセット内の他のセルがＲＥＮＤＥＺ状態に達した場合、セルは、パーティション形成プロセスに参加するには遅過ぎると認める（ステップ２０８ｂ）。そして、遅れたセルはリセットする（ステップ２０８ｃ）。他のセルがいずれもＲＥＮＤＥＺ状態に達していない場合、セルは、それがランデブするよう試みていることを反映するように状態レジスタ内のビットをセットする（ＡＴＴ＿ＲＥＮＤＥＺ）ことにより処理を続ける（ステップ２０８ｄ）。
【００２８】
ここで、構成済みセットの種々のセルが種々の状態に達するためにかなりの変動する時間を必要とする可能性がある、ということが認められよう。例えば、所定のセルがかなり大きいメモリを備える場合がある。このため、そのメモリ初期化にはより多くの時間が必要となり、そのためランデブとなるよう試みることからセルが遅延する。代替的に、いくつかのセルは、異なるパワーモジュールに関連する場合がある。セルによっては、所定の長さの時間でパワーオンされない場合があり、それによりセルのブートアッププロセスが遅延する。
【００２９】
同期セルステップ２０８ｅは、好ましくは、タイムアウトメカニズムを利用してこの問題に適応する。構成済みセット内の各セルは、自動的にＲＥＮＤＥＺ状態に遷移する前に、任意の所定の長さの時間（例えば１０分間）待機する。しかしながら、待機期間は、好ましくは、構成されたグループの第１のセルがＡＴＴ＿ＲＥＮＤＥＺ状態に達する時から開始される。従って、すでにＡＴＴ＿ＲＥＮＤＥＺ状態に達したセルは、構成済みセット内の他のセルがＲＥＮＤＥＺ状態に遷移したことを検出した場合、ＲＥＮＤＥＺ状態に遷移する。そして、構成済みセットのＡＴＴ＿ＲＥＮＤＥＺ状態に達したすべてのセルが、タイムアウトメカニズムによりＲＥＮＤＥＺ状態に達している最初のセルに応じてカスケードする。これにより、構成済みセットのＡＴＴ＿ＲＥＮＤＥＺ状態に達しているセル間のかなりのタイムスキューに適応するために利用される遅延に対し、定義された上限が与えられる。タイムアウトメカニズムを利用することにより、同期セルステップ２０８は、セル到着におけるかなりのスキューに適応するが、セルが誤動作、構造上の障害等のために利用可能とならない場合に、障害を起こさない。当然ながら、構成済みセットのすべてのセルがタイムアウト終了前に到着することが検出された場合、ＲＥＮＤＥＺ状態に遷移することにより、他のセルをＲＥＮＤＥＺ状態にカスケードすることが適当である。
【００３０】
上記メカニズムは、セル間のタイムスキューを大幅に低減するということが認められよう。例えば、ステップ２０８ｅの前に数分間のタイムスキューが存在する可能性がある。ステップ２０８ｅにおいて実行される状態同期化により、タイムスキューはマイクロ秒以下に低減され得る。更に、ステップ２０８ｅおよび他の場所で詳述されるようなロックステップ状態の進行により、非常に頑強なパーティション形成プロセスが提供されるということが認められよう。特に、セルは所定の状態に遷移する。そして、セルは、他のセルがその同じ状態に変化するのを待つ。そうすることにより、いくつかの利点が達成され得る。例えば、初期の時点で、ブート手続き中にいずれのセルが進行していないかを判断することができる。更に、ロックステップの進行により、セルが一致して種々のタスクを完了することができ、それにより誤ったランデブの確率が最小化される。
【００３１】
セル到着スキューの大部分を取除いた後、ステップ２０８ｆにおいて、セルは、好ましくは追加のより短い遅延期間（マイクロ秒以下）待機する。ステップ２０８ｆの当該短い遅延期間により、セルがそれらのローカルランデブセットを確立し始める前にすべてのセルがＲＡＮＤＥＺ状態に遷移する機会が与えられる（ステップ２０８ｇ参照）。好ましくは、予め定義される時間の長さは、コンプレックス内の許容されるセルの数に２を掛け、最長トランザクション時間を掛け、および選択された安全係数を掛けたものに等しい。
【００３２】
遅延動作を出た後、ステップ２０８ｇにおいて、構成済みセットの現セルは、ローカルランデブセットを決定するよう試みる。各セルは、構成済みセットの他のセルのいずれがＲＥＮＤＥＺ状態に達したかを判断しようと試みる。例えば、コンプレックスプロファイルは、構成済みセットＮをセルＡ、Ｂ、Ｃ、Ｄを備えるように定義してよい。述べたように、各セルは、構成済みセットの他のセルの各々の状態を判断しようと試みる。Ｄが長すぎる期間遅延され、または他の状態で利用不可能であった（すなわち、より短い遅延期間の終了までにＲＥＮＤＥＺ状態に達しなかった）場合、セルＡ、Ｂ、Ｃは、それらそれぞれのローカルランデブセットからＤを排除する。また、セルＡは、セルＢおよびＣのレジスタを検査することにより、セルＢおよびＣがＲＥＮＤＥＺ状態に達したか判断することができてよい。セルＡのローカルランデブセットは、（Ａ、Ｂ、Ｃ）から構成される。同様に、セルＢは、セルＡおよびＣがＲＥＮＤＥＺ状態に達したか判断してよく、それにより、そのローカルランデブ状態が（Ａ、Ｂ、Ｃ）から構成される。しかしながら、セルＣは、構造上の障害によりセルＡの状態を決定することができない場合がある。そのため、セルＣのローカルランデブセットは（Ｂ、Ｃ）から構成される。ローカルランデブセットは、好ましくはそれぞれのビットマスクとして表される。ステップ２０８ｈにおいて、各個々のセルは、そのローカルランデブセットを、それぞれのローカルランデブセットが他のセルから見ることができるグローバルに可視的な場所に書込む。
【００３３】
ステップ２０８ｉにおいて、好ましくは他の同期化遅延が実行されることにより、他のセルがローカルランデブセットを読み出そうと試みる前に、それぞれのセルがそれらのローカルランデブセットを書込む機会が与えられる。この場合も、好ましくは、同期化遅延は、コンプレックス内の許可されたセルの数に２が掛けられ、最長トランザクション時間が掛けられ、および選択された安全係数が掛けられた数に等しい。
【００３４】
ローカルランデブセットにより、非対称通信能力が決定されることが可能になる。上述したように、ＡはＣに到達することができた。しかしながら、ＣはＡに到達することができなかった。このため、セルＡとＣとの間の相互通信は発生することができない。この状況で、セルＡまたはセルＣは、排除されまたは拒絶されることになる。ステップ２０８ｊにおいて、グローバルランデブセットは、相互通信を実行することができないセルを排除することにより、ローカルランデブセットから確立される。この状況で、グローバルランデブセットは、セルＢおよびＣから構成される。このように、セルＢとＣとの両方に関して相互通信が発生し得るため、パーティションプロセスは、セルＢおよびＣのみを利用して継続する。グローバルランデブセットは、各ローカルランデブセットに関して論理ＡＮＤ演算を実行することによって決定されてよく、それによりローカルランデブセットの論理的共通部分（論理積）で構成される。セルは、グローバルランデブセットのメンバでないと判断した場合、ステップ２０８ｋにおいて再構成のためにリセットする。セルは、再構成中に異なるパーティションに追加されてよく、あるいは代替的に、セルはオンライン追加により同じパーティションに追加されてよい。
【００３５】
同期セルステップ２０８の終了後、パーティション形成プロセスを継続してよいセルのセットが識別される。このセットは、所定の時間内に到着し、このセットの他のすべてのセルと相互に通信する能力をデモンストレートした、所定の構成済みセット内に属するように定義されたすべてのセルを含む。到着が遅過ぎるか、利用不可能であるか、または相互に通信できないセルは、無視され、パーティション形成プロセスは、それらのセルなしに継続する。更に検討するために、このセルのセットを、グローバルランデブセットと呼ぶことにする。
【００３６】
この時点で、制御の中心点がないという事実を再強調することが適当である。
代りに、本システムおよび方法は、分散方法を利用する。特に、各セルは、他のステップに関連する機能またはルーチンに加えて、それ自体の同期セル機能またはルーチンを独立して並列に実行している。各セルは、そのコンプレックスプロファイルのそれ自体の値と、同じ構成済みセット内の確認された相互通信能力と、に基づき、それ自体の同期セル機能またはルーチンを実行する。この方法を利用することにより、本システムおよび方法は、周知の解決法よりずっと高い可用度を提供する。実際には、サービスプロセッサモジュール１０１は、まったく不動作となる可能性があり、コンプレックスプロファイルの初期分配であった場合（すなわち、サービスプロセッサモジュール１０１が１回しか作動しなかった場合）、コンプレックスはそれぞれのパーティションになるように構成する。同様に、本システムおよび方法は、セル遅延、セル誤動作、構造上の障害等に適応する。更に、同じプロセスが他の構成済みセットに関して発生するということが認められよう。すなわち、他の構成済みセットに関連するセルは、それぞれのローカルランデブセットおよびグローバルランデブセットを生成するよう試みて、それぞれの構成済みセット内の他のセルに接触するよう試みる。
【００３７】
ステップ２０９において、グローバルランデブセットを基礎として、およびコンプレックスプロファイルに含まれる情報を基礎として、コアセルが選択される。コアセルは、グローバルランデブセット内のどのセルが必須のコアＩ／Ｏ能力を含むか判断することにより、選択されてよい。コアセル選択プロセスのポイントは、パーティション形成プロセスを継続する単一セルを利用することに合意することと、パーティション形成段階、すなわち動作システム、ブートハンドラ、ユーザインタフェース等の初期化を越えてブーティングプロセスを継続することと、である。コアセル選択ステップ２０９は、好ましくは、所定のグローバルランデブセットの各セルにおいて同じアルゴリズムを利用し、コンプレックスプロファイルおよび確認されたコアＩ／Ｏ能力をアルゴリズムへの入力として利用することにより、実行される。この方法を利用して、グローバルランデブセットの各セルは、それが選択されたコアセルであるか否かを判断してよい。そうでない場合、セルは、後に呼起されるスピンループに入る。セルがコアセルである場合、そのコアセルはパーティション形成プロセスを継続する。コアセルの識別は、好ましくは、サービスプロセッサモジュール１０１に通信される。コアセル選択を実行することにより、本システムおよび方法は、欠落したＩ／Ｏ能力、誤動作するＩ／Ｏ能力等に適応することによって、パーティション形成プロセスの頑強性を更に向上させる。
【００３８】
ステップ２１０において、コアセルは、アライブ（alive）セットを確立する。アライブセットは、互換性のあるグローバルランデブセットからセルのサブセットを指定するために利用される記述的用語である。例えば、ファームウェアのいくつかのリビションまたは世代が、異なるセルにおいて利用される場合がある、ということが予期される。コアセルは、グローバルランデブセットの各セルを分析することにより、それらファームウェアがコアセルのファームウェアと互換性があるか判断する。他の互換性分析が実行されてもよい。例えば、セル間のＣＰＵまたはキャビネット互換性が分析されてよい。何らかの理由のために互換性がないと判断されるセルはすべて排除される。このように、アライブセットは、同じコンプレックスプロファイルを使用している、現在の、相互通信可能な、互換性のあるセルを表すように構成される。コアセルは、好ましくはアライブセットをアライブセットの各セルに通信することにより、パーティションゲーティングを実現する。非互換性セルは、再構成のためにリセットする（ステップ２１１）。
【００３９】
ステップ２１２において、アライブセットの各ＰＡ３０１に対し、パーティションゲーティング機能がプログラムされる。パーティションゲーティングは、パーティション方式を生成しまたは実施するために利用される。特に、各ＰＡ３０１は、他のパーティションからの動作が、そのパーティションの動作に悪影響を及ぼすことを防止する。例えば、アライブセットに含まれるセルのみが、特定のパーティション内の書込みトランザクションを発行してよい。
【００４０】
ステップ２１３において、コアセルは、好ましくは、グローバルランデブセル内のセルが同じコンプレックスプロファイルを利用していることを確認する。特に、コアセルは、単調なリビション識別子とコンプレックスプロファイルに関連するチェックサムとを利用して、確認ステップを実行する。いずれかのセルがコンプレックスプロファイルの異なるリビションを利用していると判断された場合、セルのすべてが再構成のためにリセットされる（ステップ２１４）。コンプレックスプロファイル確認を実行することにより、本システムおよび方法の頑強性が増大される。
【００４１】
ステップ２１５において、コアセルはパーティションのブーティングを継続する。概して、これは、メモリインタリーブ、ブート装置の配置、オペレーティングシステムのロードおよび実行等を含んでよい。パーティション形成後のブーティングプロセスの継続は、本発明の範囲を越えるため、それほど詳細には説明しない。
【００４２】
本発明およびその利点を詳細に説明したが、本明細書において、特許請求の範囲によって定義されるような本発明の趣旨および範囲を逸脱することなく、種々の変更、置換および改変を行うことができる、ということは理解されなければならない。更に、本出願の範囲は、本明細書において述べたプロセス、機械、製品、合成物、手段、方法およびステップの特定の実施の形態に限定されることが意図されていない。当業者が本発明の開示から容易に認識するであろうように、本明細書で述べた対応する実施の形態と同じ機能を実質的に実行するかまたは同じ結果に実質的に達成する、現存するかまたは後に開発されるプロセス、機械、製品、合成物、手段、方法またはステップが、本発明に従って利用されてよい。したがって、特許請求の範囲は、かかるプロセス、機械、製品、合成物、手段、方法またはステップ等をそれらの適用範囲内に含むことが意図されている。
【００４３】
本発明の態様を以下に例示する。
【００４４】
１．パーティションを形成するようにセルの構成済みセットのうちのセルの一部を同期させる方法であって、（ａ）第１のランデブ状態に達するステップ（２０８ｅ）と、（ｂ）前記一部の他のセルが該初期ランデブ状態に達することができるように遅延するステップ（２０８ｆ）と、（ｃ）第２のランデブ状態に遷移するステップ（２１０）と、を含み、前記一部のセルは、前記ステップ（ａ）〜（ｃ）を独立して並列に実行する方法。
【００４５】
２．前記ステップ（ｂ）は、（ｉ）所定時間、（ｉｉ）前記一部の他のセルが前記第２のランデブ状態に達する時、および（ｉｉｉ）セルの前記構成済みセットのすべてのセルが前記第１のランデブ状態に達する時、のうちの早い方の時まで遅延する上記１記載の方法。
【００４６】
３．（ｄ）前記第２のランデブ状態に達した前記一部の検出されたセルを含むローカルランデブセットを構成するステップ（２０８ｇ）と、（ｅ）前記ローカルランデブセットを可視の場所に書込むステップ（２０８ｈ）と、を更に含み、前記第２のランデブ状態に達した前記一部のセルは、前記ステップ（ｄ）〜（ｅ）を独立して並列に実行する上記１記載の方法。
【００４７】
４．構成されたローカルランデブセットから、該構成されたローカルランデブセットの論理的共通部分を表すグローバルランデブセットを構成するステップ（２０８ｊ）を更に含む上記２記載の方法。
【００４８】
５．前記グローバルランデブセットからコアセルを決定するステップ（２０９）を更に含む上記４記載の方法。
【００４９】
６．前記グローバルランデブセットの互換性のあるセルをアライブセットとして決定するステップ（２１０）を更に含み、互換性のあるセルを決定する該ステップを前記コアセルによって実行する上記５記載の方法。
【００５０】
７．前記アライブセットに対しパーティションに関連する不都合なトランザクションを制限するようパーティションゲーティングコントローラをプログラムするステップ（２１２）を更に含む上記６記載の方法。
【００５１】
８．前記パーティションにオペレーティングシステムを確立するステップを更に含む上記７記載の方法。
【００５２】
９．前記構成済みセットの他のセルを識別するためにコンプレックス情報を利用する上記１記載の方法。
【００５３】
１０．マルチパーティションコンピュータシステムで使用されるセルであって、パーティションに参加するために利用されるパーティション命令を含み、該パーティション命令を実行するプロセッサと、前記パーティション命令を格納するファームウェア装置と、第１のランデブ状態を反映するレジスタをセットするコードと、該レジスタを前記第１のランデブ状態を反映するようにセットした後にパーティション形成動作を遅延させるコードと、パーティション形成動作を遅延させた後に第２のランデブ状態に遷移するコードと、を具備するセル。
【００５４】
【発明の効果】
パーティションに対するオペレーティングシステムインスタンスのインスタンス化に向けて、複数の独立して実行するセル（システムリソースを構成する別個のハードウェアエンティティ）からのパーティションの形成を柔軟に管理するシステムおよび方法が提供される。
【図面の簡単な説明】
【図１】本発明を説明するために利用される例示的なマルチパーティションアーキテクチャを示す。
【図２】パラレルパーティション形成に関連するイベントの例示的なフローチャートを示す。
【図３】同期セル手続きに関連するイベントの例示的なフローチャートを示す。
【符号の説明】
２０８ｅ…ランデブ状態に遷移するステップ
２０８ｆ…同期化遅延のステップ
２０８ｇ…ローカルランデブセットを構成するステップ
２０８ｈ…ローカルランデブセットとグローバルに可視的な場所に書込むステップ
２０８ｊ…同期化遅延のステップ
２０９…コアセルを選択するステップ
２１０…アライブセットを確立するステップ
２１２…パーティションゲーティング機能をプログラムするステップ
【図１】
0003947381.tif 000002
【図２】
0003947381.tif 000003
【図３】
0003947381.tif 000004