(57)【特許請求の範囲】
【請求項１】
マルチプロセッサにより構成される情報処理システムの初期化処理とそれに続く処理の方法において、
上記システムの初期化時に、上記マルチプロセッサを構成する各プロセッサの中で設定されたシステムマスタプロセッサが、上記各プロセッサに対してシステム初期化指令を行って、上記各プロセッサから所定時間内の応答を確認して、該応答があった各プロセッサを正常プロセッサと判定して正常プロセッサプールに登録するステップと、
上記正常プロセッサと判定された各プロセッサにより上記システムの運用を開始するステップと、
上記システムマスタプロセッサが、上記所定時間内に応答がない各プロセッサを留保プロセッサと判定して留保プロセッサプールに登録するステップと、
上記システムマスタプロセッサが、上記正常プロセッサと判定された各プロセッサの中から留保プロセッサプール・マスタを選定するステップと、
上記システムの運用と並行して、選定された上記留保プロセッサプール・マスタが、留保プロセッサプールに登録された上記留保プロセッサに対して動作の確認処理をするステップ、とを備えたことを特徴とするマルチプロセッサ初期化／並行診断方法。
【請求項２】
システム運用時において、上記正常と判定された各プロセッサは、要求プロセッサと実行プロセッサとなり、
上記要求プロセッサが、上記実行プロセッサに対して処理要求を行うステップと、
上記実行プロセッサに出した上記処理要求に対して該実行プロセッサから所定の時間内に実行結果の受信が確認できないと、上記要求プロセッサが、上記システムマスタプロセッサに非応答を通知するステップと、
上記システムマスタプロセッサが、上記非応答の通知を受けると、正常プロセッサプールに登録されている未使用のプロセッサを代替プロセッサとして選択して実行プロセッサに変更するステップと、
上記システムマスタプロセッサが、上記非応答の実行プロセッサを留保プロセッサプールに移すステップ、とを備えたことを特徴とする請求項１記載のマルチプロセッサ初期化／並行診断方法。
【請求項３】
システム運用と並行して、選定された上記留保プロセッサプール・マスタが、留保プロセッサと判定されたプロセッサに対して動作の再確認処理を行うステップと、
上記システムマスタプロセッサが、上記再確認処理により正常応答を得たプロセッサを正常プロセッサと判定して正常プロセッサプールに登録するステップ、を備えたことを特徴とする請求項１または請求項２記載のマルチプロセッサ初期化／並行診断方法。
【請求項４】
システム運用と並行して、選定された上記留保プロセッサプール・マスタが、留保プロセッサと判定されたプロセッサに対して動作の再確認処理を行うステップと、
上記システムマスタプロセッサが、上記再確認処理により正常応答が得られなかったプロセッサを異常プロセッサと判定して異常プロセッサプールに登録するステップ、を備えたことを特徴とする請求項１または請求項２記載のマルチプロセッサ初期化／並行診断方法。
【請求項５】
上記システムマスタプロセッサが、正常プロセッサプールに登録された正常プロセッサの数をカウントする正常プロセッサプール・プロセッサ数確認処理ステップと、
上記システムマスタプロセッサが、カウントした上記正常プロセッサ数とシステム運用に必要な最低プロセッサ数とを比較するステップと、
上記比較で正常プロセッサ数がシステム運用に必要な最低プロセッサ数より少なくなると、上記システムマスタプロセッサが、システム異常処理を行うステップ、とを備えたことを特徴とする請求項１記載のマルチプロセッサ初期化／並行診断方法。
【請求項６】
上記システムマスタプロセッサが、正常プロセッサプールに登録された正常プロセッサの中から新たな留保プロセッサプールマスタを選択するステップと、
上記システムマスタプロセッサが、上記選択する以前に留保プロセッサプールマスタとなっていたプロセッサを正常プロセッサとして登録するステップ、とを備えたことを特徴とする請求項１または請求項２記載のマルチプロセッサ初期化／並行診断方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、マルチプロセッサにより構成される情報処理システムの初期化処理に関するものであり、特にシステムを構成するプロセッサのいくつかに異常がある場合でも、システムの起動時間を短縮すると同時に、その異常に対処してシステムの信頼性を向上しようとするものである。
【０００２】
【従来の技術】
従来のマルチプロセッサシステムの初期化時に障害があった場合の復旧処理方式としては、例えば、特開平１１−１６１６１６号公報に示されるようなものがあった。図２３はこの公報に示されたマルチプロセッサシステムの初期化処理方式の動作の一部を示す図である。
【０００３】
この方式の動作を説明する。
マルチプロセッサシステムを構成する複数のプロセッサが初期化処理において異常となった場合に、障害復旧の初期化（ＩＰＬ）処理プログラム種別ＩＤをブロードキャスト通信により送信し、障害を起こした複数のプロセッサを同時に復旧させることにより、障害発生時でも起動処理時間を短縮しようとするものである。障害を起こしたと思われるプロセッサに対し、ブロードキャスト通信により起動指示を再試行すると供に、再試行の起動指示に対し応答しないプロセッサを切離すという手順により、システムの初期化処理を完了させる。
このように、障害を起こした複数のプロセッサに同時に起動処理の再試行を行わせることができるので、障害を起こしたプロセッサごとに個別に起動処理の再試行を行う場合よりも、高速にシステムを起動することができる。しかし、初期化処理の再試行を行うために、やはりシステムの起動時間は正常時と比べて遅延する。
【０００４】
【発明が解決しようとする課題】
従来のマルチプロセッサシステムの初期化処理方式は以上のように構成されており、応答が返らないプロセッサの判定処理は、最も起動処理が遅れた場合をタイムアウト時間として設定するので、長い再初期化時間が必要となる。更に信頼性に劣る通信路を用いたブロードキャスト通信をに頼るので、このような初期化処理動作が複数回再試行されることになる。こうして再試行初期化処理における正常／異常の判定の間、システムの運用開始が大きく遅延する可能性が発生する。通常、冗長構成のマルチプロセッサシステムにおいては、いくつかのプロセッサが異常でもシステムは運用可能であるにも関わらず、結果的に異常プロセッサの状態確認が優先して起動時間が遅くなるという課題があった。
【０００５】
この発明は上記のような課題を解消するためになされたもので、システム運用開始においては必要となるプロセッサを絞り込んで立ち上げ、システム運用が立ち上がって後のフェーズで順次、必要なプロセッサを参入するようにして信頼性を向上し、プロセッサの初期化、異常確認と、システムの運用を並行して行うようにする。
【０００６】
【課題を解決するための手段】
この発明に係るマルチプロセッサ初期化／並行診断方法は、マルチプロセッサにより構成される情報処理システムの初期化処理とそれに続く処理の方法において、
上記システムの初期化時に、上記マルチプロセッサを構成する各プロセッサの中で設定されたシステムマスタプロセッサが、上記各プロセッサに対してシステム初期化指令を行って、上記各プロセッサから所定時間内の応答を確認して、該応答があった各プロセッサを正常プロセッサと判定して正常プロセッサプールに登録するステップと、
上記正常プロセッサと判定された各プロセッサにより上記システムの運用を開始するステップと、
上記システムマスタプロセッサが、上記所定時間内に応答がない各プロセッサを留保プロセッサと判定して留保プロセッサプールに登録するステップと、
上記システムマスタプロセッサが、上記正常プロセッサと判定された各プロセッサの中から留保プロセッサプール・マスタを選定するステップと、
上記システムの運用と並行して、選定された上記留保プロセッサプール・マスタが、留保プロセッサプールに登録された上記留保プロセッサに対して動作の確認処理をするステップ、とを備えたことを特徴とする。
【０００７】
システム運用時において、上記正常と判定された各プロセッサは、要求プロセッサと実行プロセッサとなり、
上記要求プロセッサが、上記実行プロセッサに対して処理要求を行うステップと、
上記実行プロセッサに出した上記処理要求に対して該実行プロセッサから所定の時間内に実行結果の受信が確認できないと、上記要求プロセッサが、上記システムマスタプロセッサに非応答を通知するステップと、
上記システムマスタプロセッサが、上記非応答の通知を受けると、正常プロセッサプールに登録されている未使用のプロセッサを代替プロセッサとして選択して実行プロセッサに変更するステップと、
上記システムマスタプロセッサが、上記非応答の実行プロセッサを留保プロセッサプールに移すステップ、とを備えたことを特徴とする。
【０００８】
システム運用と並行して、選定された上記留保プロセッサプール・マスタが、留保プロセッサと判定されたプロセッサに対して動作の再確認処理を行うステップと、
上記システムマスタプロセッサが、上記再確認処理により正常応答を得たプロセッサを正常プロセッサと判定して正常プロセッサプールに登録するステップ、を備えたことを特徴とする。
【０００９】
システム運用と並行して、選定された上記留保プロセッサプール・マスタが、留保プロセッサと判定されたプロセッサに対して動作の再確認処理を行うステップと、
上記システムマスタプロセッサが、上記再確認処理により正常応答が得られなかったプロセッサを異常プロセッサと判定して異常プロセッサプールに登録するステップ、を備えたことを特徴とする。
【００１０】
上記システムマスタプロセッサが、正常プロセッサプールに登録された正常プロセッサの数をカウントする正常プロセッサプール・プロセッサ数確認処理ステップと、
上記システムマスタプロセッサが、カウントした上記正常プロセッサ数とシステム運用に必要な最低プロセッサ数とを比較するステップと、
上記比較で正常プロセッサ数がシステム運用に必要な最低プロセッサ数より少なくなると、上記システムマスタプロセッサが、システム異常処理を行うステップ、とを備えたことを特徴とする。
【００１１】
上記システムマスタプロセッサが、正常プロセッサプールに登録された正常プロセッサの中から新たな留保プロセッサプールマスタを選択するステップと、
上記システムマスタプロセッサが、上記選択する以前に留保プロセッサプールマスタとなっていたプロセッサを正常プロセッサとして登録するステップ、とを備えたことを特徴とする。
【００１４】
【発明の実施の形態】
実施の形態１．
マルチプロセッサシステムの初期化処理において、構成する各プロセッサを、正常と判定できた「正常」プロセッサプール、正常・異常の判定ができなかった「保留」プロセッサプール、異常と判定した「異常」プロセッサプールに分けることにより、個々のプールのその後の処理を変更する方法を説明する。
図１は、この発明の実施の形態１におけるマルチプロセッサシステムの初期化処理方式の概念を示す構成図である。図において、１０１はシステムを構成するプロセッサを示す。本実施の形態では、多数のプロセッサで構成され、プロセッサを冗長構成したシステムを想定する。各プロセッサはプロセッサ間のデータ交換のためにネットワーク１０３で接続される。このネットワークはバス、ＬＡＮ、ファイバーチャネルなど、種々のものであってよい。また、大規模構成を実現するためにネットワーク１０３は、１０２で示すネットワークスイッチにより、階層構造を持つ場合もある。
１００はプロセッサの中で、システム管理を行うように選定されたシステムマスタプロセッサである。システムマスタプロセッサ１００は、ネットワーク１０３、ネットワークスイッチ１０２を介して、他の全てのプロセッサ１０１と通信できる。
【００１５】
このような構成のマルチプロセッサシステムにおいて、システム起動時には、従来例で示された技術を利用して、システムマスタプロセッサ１００が、初期化指示、もしくは初期プログラムのダウンロード１０４を、全てのプロセッサに対して同時に行って、システムを起動する。各プロセッサ１０１はその指示に従い、プロセッサの初期化処理を行う。
図２は初期化処理の完了状態を示す図である。個々のプロセッサ１０１は初期化処理が完了すると、システムの同期のために、それぞれシステムマスタプロセッサ１００に対して完了通知１０５を返す。この完了通知は、システムマスタプロセッサ１００の特定のレジスタへの書込みによる方法や、メッセージ送信による方法など、種々の方法が利用できる。システムマスタプロセッサ１００は、この完了通知の受信により、各プロセッサの初期化処理が正常に完了したことを確認する。
【００１６】
この発明の実施の形態１におけるマルチプロセッサシステムの初期化処理方法では、図１、図の正常な初期化動作に加えて、システムを構成するプロセッサを図３に示すような３種類のプロセッサプールと呼ぶ論理的なグループに分類する。図３中の２００は、正常動作が確認できたプロセッサが属する「正常」プロセッサプールである。２０１は正常／異常の判定がまだ完了していないプロセッサが属する「留保」プロセッサプールである。２０２は異常であり、システム運用に利用できないと判断したプロセッサの属する「異常」プロセッサプールである。これらのプロセッサプールは、システム管理における論理的な分類であり、プロセッサに対して物理的に何らかの変更が行われるわけではない。
【００１７】
図３のグループ分けを実現するために、図４に示す構成要素を用意する。３００は「正常」プロセッサプールに属するプロセッサを管理する「正常」プロセッサプール管理表であり、「正常」プロセッサプールに属するプロセッサの識別子が登録される。３０１は「留保」プロセッサプールに属するプロセッサを管理する「留保」プロセッサプール管理表であり、「留保」プロセッサプールに属するプロセッサの識別子が登録される。３０２は「異常」プロセッサプールに属するプロセッサを管理する「異常」プロセッサプール管理表であり、「異常」プロセッサプールに属するプロセッサの識別子が登録される。本実施の形態では、３００〜３０２のプロセッサプール管理表はシステムマスタプロセッサ１００が管理している。そして、システムは十分に冗長度があるプロセッサ１０１が用意されているので、「正常」プロセッサによりシステムの立ち上げを完了する。
【００１８】
従来は、図２における完了通知の受信のための待ち時間は、どのような状態においても完了通知が受信できるように、最悪の条件を予想した長い時間を設定する必要があった。また、一過性の異常を回避するために、応答がない場合は初期化指示の再試行を行う必要があった。しかし、この実施の形態１によるマルチプロセッサシステムの初期化処理方法では、システムを構成するプロセッサを図３に示したプロセッサプールに分類し、また、以降のシステムの動作をプロセッサプールごとに変更する。
こうして、完了通知受信のための待ち時間を短く設定し、正常にも関わらずその時間内に完了通知を返せなかったプロセッサが存在しても、改めてその返せなかったプロセッサに絞り込んで正常／異常確認の再試行を行うことが可能になる。即ち、システムの初期化処理の効率化が得られ、起動時間が短縮できる。
【００１９】
以下、この「正常」プロセッサの具体的な識別と登録方法を述べる。
いったん「正常」プロセッサが他の「留保」プロセッサ等から分離されると、これら「正常」プロセッサを使用した高速初期化が可能となる。
図４は高速初期化処理４１０の概念を示す図である。この高速初期化処理４１０は、図１、図２に示した処理動作を行うが、当然、その初期化処理タイムアウト時間３０４を従来よりも短く設定して、その設定時間内に初期化を終了する。
【００２０】
この高速初期化処理４１０の具体的な動作フローを図５に示す。
まずステップ（以後、ステップの記述を省略する）Ｓ１０１で、システムマスタプロセッサ１００は、システムを構成する全プロセッサ１０１に対して起動指示を行う。起動指示の方法としては、システムリセット、ブロードキャスト通信による起動指示、ブロードキャスト通信による初期プログラムのダウンロードなどの種々の方法がある。この後Ｓ１０２で、システムマスタプロセッサは各プロセッサ１０１からの初期化処理完了通知を待つ。Ｓ１０２でいずれかのプロセッサから初期化処理完了通知を受信すると、Ｓ１０３でその応答を返したプロセッサを「正常」プロセッサプール２００に入れて、そのプロセッサのプロセッサ識別子を「正常」として、「正常」プロセッサプール管理表３００へ登録する。
【００２１】
このＳ１０２、Ｓ１０３の処理を繰り返しているうちに、初期化処理タイムアウト時間３０４になると、Ｓ１０４の条件判断を経てＳ１０５に移る。従来は、ここまでの処理でプロセッサの正常／異常判定を行わなければならなかったために、初期化処理タイムアウト時間３０４を十分に長くする必要があり、さらには応答が得られない場合は、Ｓ１０１の起動指示を再試行してプロセッサの異常を確認する必要があった。しかし、本実施の形態では、Ｓ１０５で完了通知を得られなかったプロセッサを「留保」プロセッサプール２０１に入れてしまう。その方法は、完了通知を得られなかったプロセッサの識別子を「留保」プロセッサプール管理表３０１に登録することにより行う。「留保」プロセッサプール２０１に属するプロセッサは、正常／異常の判定ができていないプロセッサであり、改めて正常／異常判定を行うことになる。一方、「正常」プロセッサプール２００に属するプロセッサは、既に正常判定を行えたプロセッサであり、システム運用に初期の段階から利用できるプロセッサとなる。
こうして、指定時間で正常と判断できなかったプロセッサを別のプロセッサプールに分け、後で別の処理を行えるようにしたので、従来よりも短い応答待ち時間を設定でき、また初期化処理の再試行をやめることが可能で、システムの初期化時間を短縮できることが明らかとなった。
【００２２】
実施の形態２．
本実施の実施の形態では、「正常」プロセッサ群によるシステムの立ち上げ後に、システムの運用と並行した選定処理を説明する。
以下、この発明の実施の形態２におけるマルチプロセッサシステムの初期化処理方法を図を用いて説明する。先ず、図６に示すように、「正常」プロセッサプールに属しているプロセッサの一つを選定し、それを「留保」プロセッサプールを管理する「留保」プロセッサプール・マスタ４００とする。つまり、「正常」プロセッサプールに属するプロセッサは、既に正常動作が確認できたプロセッサであるので、プロセッサプールを管理する動作を行わせることができると考えられるからである。この「留保」プロセッサプール・マスタ４００を決定するために、本実施の形態では、新たに図に示したシステム初期化処理内に、「留保」プロセッサプール・マスタ選定処理５１０を設ける。また、図７に示すように、システムマスタプロセッサ１００内に、「留保」プロセッサプール・マスタ４００の識別子を持つ「留保」プロセッサプール・マスタエントリ５００を設ける。
【００２３】
「留保」プロセッサプール・マスタ選定処理５１０の動作を図８を用いて説明する。図８の例では、この選定処理は図５の動作に引き続き行う動作として記述している。
Ｓ２０１でシステムマスタプロセッサ１００は、「正常」プロセッサプール管理表３００を参照し、何らかのアルゴリズムによりプロセッサを一つ選定する。このプロセッサの識別子を「正常」プロセッサプール管理表３００のエントリから外し、この選定したプロセッサを選定プロセッサとする。この選定の方法は、システムの要求仕様に合わせて、管理表内のシステムマスタプロセッサではない最初のプロセッサを選ぶ方法や、特定のプロセッサ識別子を持つプロセッサを選択する方法など種々の方法がありえる。次にＳ２０２で、選定したプロセッサの識別子を「留保」プロセッサプール・マスタエントリ５００に登録する。システムは「留保」プロセッサプール・マスタエントリ５００に登録されたプロセッサを「留保」プロセッサプールを管理するプロセッサとして認識する。
【００２４】
こうして、既に正常と判定できたプロセッサプールの中から一つのプロセッサを「留保」プロセッサプールのマスタプロセッサとし、「留保」プロセッサプールの管理を行わせるようにしたので、「留保」プロセッサプールのプロセッサをシステムマスタプロセッサから切離し、「正常」プロセッサプールのプロセッサと独立して動作させる準備ができた。
【００２５】
先ず、並行処理の起動について述べる。
この並行処理の起動のために、新たにシステム初期化処理内に、図４に示される並行起動処理６１０を持つ。並行起動処理６１０は、「正常」プロセッサプール２００に属するプロセッサによる正常系のシステム運用と、「留保」プロセッサプール・マスタプロセッサ４００による「留保」プロセッサプール２０１に属するプロセッサの正常／異常判定処理を同時に動作させる。
【００２６】
並行起動処理６１０の動作を図９を用いて説明する。図９の例では、この並行起動処理６１０は図８の動作に引き続き行う動作として記述している。
Ｓ３０１でシステムマスタプロセッサ１００は、プロセッサ間通信により、「留保」プロセッサプール・マスタプロセッサ４００に「留保」プロセッサプールに属するプロセッサの正常／異常判定を行う再確認処理の起動を指示する。これにより、「留保」プロセッサプール・マスタプロセッサは「正常」プロセッサプール内のプロセッサと独立して動作する。次にＳ３０２で、システムマスタプロセッサは「正常」プロセッサプール管理表３００を参照し、そこに登録されている「正常」プロセッサプール内のプロセッサのみで、システムの運用を開始する。この時点では「正常」プロセッサプールに登録されているプロセッサは、システムを構成するプロセッサの一部であるが、システム運用の初期段階では演算負荷が小さいことが多いことや、また全てのプロセッサが必要となるシステム状態は少ないことから、このような起動が可能となる。
【００２７】
こうして、「留保」プロセッサプール内のプロセッサに対して行う異常判定などの処理と並行して、「正常」プロセッサプール内のプロセッサを使ってシステム運用を開始するようにしたので、システムの初期化時間を短縮できる。
【００２８】
次にシステムの立ち上げと並行した、「保留」プロセッサに対する正常／異常の再認識処理について述べる。
この再認識処理のために、図１０に示すように、選択された「留保」プロセッサプール・マスタ４００が再確認処理４２０を持つ。更にこの再確認処理において、システムマスタプロセッサ１００の持つプロセッサプール管理表の操作を行う。再確認処理４２０におけるプロセッサプール管理表に対する操作を図１１に示す。
選定された「留保」プロセッサプール・マスタ４００は、「留保」プロセッサプール管理表３０１を参照して、登録しているプロセッサに対し、従来例と同様なマルチキャスト通信により初期化リトライ要求５００を発行し、正常／異常が確認できていないプロセッサに対し、初期化処理を再試行する。再試行により最終的に正常と確認できたプロセッサは、そのプロセッサ識別子を「留保」プロセッサプール管理表３０１から外し、「正常」プロセッサプール管理表３００に登録することにより、そのプロセッサを「正常」プロセッサプール２００に移行させる。［正常］プロセッサプールに移行されたプロセッサは、システムマスタプロセッサが「正常」プロセッサプール管理表３００を参照し、システム運用に参入させる。
【００２９】
再試行によっても正常と確認できなかったプロセッサは、そのプロセッサ識別子を「留保」プロセッサプール管理表３０１から外し、「異常」プロセッサ管理表３０２に登録して、そのプロセッサを「異常」プロセッサプール２０２に入れる。「異常」プロセッサプール２０２のプロセッサは、Ｈ／Ｗ異常などの恒久的障害と判断し、システム運用から切離す。この再確認処理４２０が終わると、「留保」プロセッサプールのプロセッサは、「正常」プロセッサプール、もしくは「異常」プロセッサプールに移行し、「留保」プロセッサプールは空となる。
【００３０】
上記で概略を示した再確認処理４２０の詳細動作を図１２を用いて説明する。図１２の例では、再確認処理４２０は図９Ｓ３０１の指示により起動される処理として記述している。
再確認処理４２０は、従来と同様な方法により、確実なプロセッサの正常／異常判定を行う。まず、Ｓ４０１で、システムで規定した回数の初期化要求の再試行を実行したかどうかを確認する。指定回数の再試行を行っていない場合には、Ｓ４０２で「留保」プロセッサプール管理表３０１を参照し、登録してあるプロセッサに対し、単体リセットやマルチキャスト通信などの手段により、初期化処理の再試行を要求する。次にＳ４０３で、その初期化処理完了の応答を待つ。応答があった場合は、Ｓ４０４で完了通知を返したプロセッサのプロセッサ識別子を「正常」プロセッサプール管理表３００へ登録する。
Ｓ４０３、Ｓ４０４の動作をＳ４０５で初期化処理タイムアウト時間に達するまで繰り返す。Ｓ４０５における初期化処理タイムアウト時間は、実施の形態２の高速初期化処理４１０における初期化処理タイムアウト時間３０４とは異なり、もっとも初期化処理が遅れた場合の初期化処理時間に設定された従来の長いタイムアウト時間である。
【００３１】
次にＳ４０６で初期化処理完了通知を返さない未応答のプロセッサが存在するかを確認する。未応答のプロセッサは、「留保」プロセッサプール管理表にプロセッサ識別子が残っていることにより判別できる。未応答のプロセッサが存在する場合はＳ４０１に戻り、Ｓ４０２からの初期化処理再試行を行う。Ｓ４０６で未応答のプロセッサが存在しない場合は、全てのプロセッサを正常と判断し、「正常」プロセッサグループへ移行させたので、再確認処理４２０は完了である。
Ｓ４０１でシステムで規定した回数の初期化処理の試行を繰り返した場合は、Ｓ４０７に移る。Ｓ４０７では、最終的に初期化処理完了通知を返さなかったプロセッサ、つまりまだ「留保」プロセッサプール管理表３０１に残っている全てのプロセッサ識別子のプロセッサを「異常」プロセッサプール管理表３０２に移す。「異常」プロセッサプールのプロセッサは恒久的な異常と判断される。
【００３２】
こうして、システム運用と並行して動作する「留保」プロセッサプールを使い、従来と同様な初期化処理の方法により再度正常／異常の判定を行う。これにより、システム運用を妨げずにプロセッサの正常／異常判定を行い、システム起動の遅延の発生を回避する。また、正常と判定されたプロセッサは正常プロセッサプールに加えることによりシステムの運用に参入し、正常と判定できなかったプロセッサは「異常」プロセッサプールに加えることにより恒久的な異常としてシステム運用から切離す。
【００３３】
実施の形態３．
本実施の形態では、実施の形態１のシステムを運用中に実行プロセッサに異常が発生した場合の異常対処処理を説明する。即ち、システムの運用が妨げられないようにする。また、異常プロセッサの効果的な初期化再試行が行える方式を説明する。
図１３は、本実施の形態における処理概念を示す図である。マルチプロセッサシステムは、プロセッサ間通信により、要求プロセッサが実行プロセッサに処理要求を発行することで、システムの種々の処理が並行して進められるという形式にモデル化できる。図１３では、６００が処理要求を発行する要求プロセッサ、６０１が要求に基づき処理を実行する実行プロセッサである。従来の技術では、発行した要求に対して実行プロセッサ６０１から応答が返らない場合、タイムアウト時間として処理の最悪実行時間を設定して待ち、さらに通信やプロセッサの異常を確認するために、要求プロセッサ６００は要求発行の再試行を実行する必要があった。この判定処理には長い時間が必要で、従って、実時間性が必要なシステムでは、不具合が生じる危険性があった。
本実施の形態では、実行プロセッサ６０１から一定時間内に応答が返らない場合は、要求の再試行は行わず、実行プロセッサ６０１を「留保」プロセッサプール２０１に入れる。そして要求プロセッサは実行プロセッサの代替となる代替実行プロセッサ６０２を選択し、それに対して改めて要求を発行し、処理を継続する。こうして何度も再試行せず、次のプロセッサを代替として処理を行う。
一定時間内に応答を返さなかった実行プロセッサ６０１の正常／異常の確認は、実施の形態２で述べた仕組みを利用して、システムの運用と並行した「留保」プロセッサプール内の処理として実行する。
【００３４】
上記の機能を持たせるため、要求プロセッサ６００は、図１４に示すプロセッサ間通信処理７１０を持つ。プロセッサ間通信処理７１０の動作を図１５を用いて説明する。
まず、Ｓ５０１で要求プロセッサ６００は実行プロセッサ６０１に必要な処理要求を送信する。この後、従来と同様にＳ５０２で指定されたタイムアウト時間まで、実行プロセッサからの受信確認を待つ。Ｓ５０３でタイムアウト時間までに実行プロセッサから受信確認を受信できた場合は正常であり、従来と同様に運用を継続する。Ｓ５０３で受信確認を受信できなかった場合は、本実施の形態のプロセッサ間通信処理では新たに、Ｓ５０４で処理要求を発行した相手である実行プロセッサ６０１の識別子を、システムマスタプロセッサ１００に非応答と通知する。これにより、システムマスタプロセッサ１００により非応答の実行プロセッサ６０１に対する対応処理が行われる。要求プロセッサ６００は、Ｓ５０４でシステムマスタプロセッサに対し非応答プロセッサの通知を行った後、Ｓ５０５で直ちに「正常」プロセッサプール内にある他のプロセッサを代替実行プロセッサ６０２として選択し、これに対して再度同じ処理要求を送信し、処理を継続する。
【００３５】
こうして、プロセッサ間通信で実行プロセッサが応答を返さなかった場合の処理時間を短縮できる。本実施の形態では、実行プロセッサが応答を返さない場合、代替実行プロセッサに対して同じ処理要求を発行する時間が必要となるが、従来のようにプロセッサ間通信処理の中で実行プロセッサの正常／異常を判定する複数回の再試行や、実行プロセッサの正常／異常判断は行わないため、プロセッサに異常がある場合でも、予測可能な時間内で処理が継続される。
【００３６】
システム運用中に非応答となり「保留」プロセッサ対象となったものの対応処理を説明する。
システムマスタプロセッサ１００は、図１４に示す「留保」プロセッサプール追加処理８１０を持つ。この「留保」プロセッサプール追加処理８１０は、図１６に概念を示すように、処理要求に対して一定時間以内に応答を返さない実行プロセッサの識別子を「正常」プロセッサプール管理表３００から「留保」プロセッサプール管理表３０１へ移すことにより、プロセッサをシステムの運用から一時的に外すと供に、プロセッサの正常／異常の確認処理を行えるようにする。
【００３７】
「留保」プロセッサプール追加処理８１０の動作を図１７を用いて説明する。図１７の例では、動作は図１５のＳ５０４により起動される処理として記述している。
まず、Ｓ６０１で、処理要求に対して一定時間以内に応答を返さなかった実行プロセッサと判明した実行プロセッサ６０１のプロセッサ識別子を「正常」プロセッサプール管理表３００から検索し外す。次にＳ６０２で実行プロセッサ６０１のプロセッサ識別子を「留保」プロセッサプール管理表３０１に追加する。Ｓ６０１とＳ６０２により実行プロセッサ６０１は「正常」プロセッサプールから「留保」プロセッサプールに移行したことになる。システムマスタプロセッサ１００は「正常」プロセッサプール管理表３００を参照し、そこに登録されているプロセッサのみをシステムの運用に使うので、これにより応答を返さなかった実行プロセッサ６０１はシステムの運用から外れることになる。次にＳ６０３で「留保」プロセッサプール・マスタエントリ５００を参照し、登録されている「留保」プロセッサプール・マスタプロセッサ４００に対し、「留保」プロセッサプールにプロセッサが追加されたことを通知する。
【００３８】
こうして、異常の可能性のあるプロセッサを「正常」プロセッサプールから「留保」プロセッサプールに移行させ、システム運用から切り離す。従って、これら、異常の可能性のあるプロセッサに対して、正常系のシステム運用とは別の処理を行うことができる。
【００３９】
次に、切り離した後の「留保」プロセッサの再認識動作を説明する。
「留保」プロセッサプール・マスタプロセッサ４００は、図１４に示すように、運用時再確認処理９１０を持つ。運用時再確認処理９１０は、システム初期化時の「留保」プロセッサに対する再確認処理４２０に対応した、運用中の再確認処理である。運用時再確認処理９１０では、「留保」プロセッサプール内のプロセッサの復旧処理と正常／異常判定処理を行う。
【００４０】
運用時再確認処理９１０の動作を図１８を用いて説明する。図１８の例では、本動作は図１７のＳ６０３により起動される処理として記述している。
この処理ではまず、「留保」プロセッサプール・マスタプロセッサが「留保」プロセッサプール内のプロセッサに対してダミーの処理要求の発行を再試行して、そのプロセッサが正常／異常の判定を行う。まず、Ｓ７０１でダミー処理要求発行の再試行を指定回数行ったかを確認する。再試行が指定回数に達していない場合は、Ｓ７０２で「留保」プロセッサプール管理表３０１を参照し、登録されているプロセッサに対しダミー処理要求送信を行う。要求した処理が実行できるか確認することにより、プロセッサの正常／異常の判定を行うためである。Ｓ７０２ではシステムで指定された時間をタイムアウト時間として、要求受信確認の応答を待つ。Ｓ７０３でプロセッサからの要求受信確認を受信した場合は、該プロセッサは正常であると判断し、Ｓ７０４で再びそのプロセッサのプロセッサ識別子を「留保」プロセッサプール管理表３０１から外し、「正常」プロセッサプール管理表３００に登録して、システム運用に参入させる。
Ｓ７０３で応答が返らない場合は、Ｓ７０１に戻り処理要求発行の再試行を行う。Ｓ７０１で指定回数再試行を繰り返した場合は、そのプロセッサに何らかの異常があると判定し、Ｓ７０５でプロセッサを単体リセットし、プロセッサを初期状態に戻す。この後Ｓ７０６で図１２の処理を実行して、初期化処理の再試行を行って、プロセッサが恒久的異常であるか判定する。初期化処理再試行により、正常が確認された場合は「正常」プロセッサプールに再参入させる。最終的に正常が確認できなかった場合は、「異常」プロセッサプールに入れ、システム運用から切離す。
【００４１】
こうして、システム運用中に検出した異常の可能性のあるプロセッサに対して、システムから切離して処理要求の再試行や単体リセットを行って、プロセッサが恒久的異常であるかの判定が行える。従って、システムのリアルタイム性遅延の発生を回避できる。
【００４２】
実施の形態４．
本実施の形態では、「正常」プロセッサ数が十分ない場合の対処について説明する。
以下、本実施の形態のマルチプロセッサシステムの初期化処理方法では、図１９に示すように、システムマスタプロセッサ１００に、「正常」プロセッサプール最低プロセッサ数７００と、「正常」プロセッサプール・プロセッサ数確認処理１０１０を持たせる。即ち、「正常」プロセッサプールにシステムの運用に必要なプロセッサ数が足りなくなったという状態を検出できるようにする。
【００４３】
次に、この「正常」プロセッサプール・プロセッサ数確認処理１０１０の動作を図２０を用いて説明する。「正常」プロセッサプール・プロセッサ数確認処理１０１０は、図９の処理、または図１７の処理の後に起動すべき処理である。
まず、Ｓ８０１で「正常」プロセッサプール管理表３００に登録されているプロセッサ数をカウントする。この数をＳ８０２で「正常」プロセッサプール最低プロセッサ数７００と比較する。「正常」プロセッサプール最低プロセッサ数７００以上のプロセッサが「正常」プロセッサプール管理表３００に登録されている場合は、Ｓ８０３でシステム運用を継続し、「正常」プロセッサプール・プロセッサ数確認処理１０１０を完了する。
「正常」プロセッサプール最低プロセッサ数７００よりも「正常」プロセッサプール管理表３００に登録されているプロセッサが少ない場合は、Ｓ８０４でシステムが異常状態と判断し、定義されたシステム異常処理を実行する。システム異常処理としては、メッセージの出力、システム停止などが想定される。
【００４４】
こうして、「正常」プロセッサプールに登録されたプロセッサをカウントし、システム運用に最低限必要なプロセッサ数がに不足の場合は、縮退運用などを指示して、異常対処を行うことができる。
【００４５】
次にシステム運用中の縮退運用を回避する対応方法を説明する。
このために図２１に示すように、システムマスタプロセッサ１００には、「留保」プロセッサプール・マスタプロセッサ交換処理１１１０を持つ。
【００４６】
「留保」プロセッサプール・マスタプロセッサ交換処理１１１０の動作を図２２を利用して説明する。
「留保」プロセッサプール・マスタプロセッサ交換処理１１１０は、システムマスタプロセッサ１００がシステム運用中に一定の時間周期で起動する処理である。まず、Ｓ９０１で「正常」プロセッサプール管理表３００から何らかのアルゴリズムによりプロセッサを一つ選定する。この選定の方法は、システムの要求仕様に合わせて、管理表内のシステムマスタプロセッサ、「留保」プロセッサプール・マスタプロセッサのどちらでもない最初のプロセッサを選ぶ方法や、特定のプロセッサ識別子を持つプロセッサを選択する方法など種々の方法がありえる。次にＳ９０２で「留保」プロセッサプール・マスタエントリ５００に登録されているプロセッサを「正常」プロセッサプール管理表３００に登録し、そのプロセッサを「留保」プロセッサプール・マスタプロセッサの役割から外し、システム運用の通常処理に参入させる。次にＳ９０３でＳ９０１で選定したプロセッサを「留保」プロセッサプール・マスタエントリ５００に登録し、新たな「留保」プロセッサプール・マスタプロセッサとする。こうして、今後の「留保」プロセッサプールの管理処理は、ここで新たに登録したプロセッサが行うことになる。この「留保」プロセッサプール・マスタプロセッサ交換処理１１１０を定期的に実行することにより、「留保」プロセッサプール・マスタプロセッサ４００に異常があった場合でも、定期的なマスタプロセッサの交換により、次の周期で復旧し、本発明で述べた処理を行うことができるようになる。従って、システムを恒久的な異常状態に陥らせない。また、「留保」プロセッサプール・マスタプロセッサ４００を、異常に気づかずにＳ９０２で「正常」プロセッサプールに参入させた場合でも、実施の形態３で述べた動作により、異常の可能性があるプロセッサとして「留保」プロセッサプールに移され、復旧処理を行わせることができる。
【００４７】
【発明の効果】
以上のようにこの発明によれば、システム初期化指令を行って所定時間後に応答を確認して正常プロセッサと判定するステップと、応答があった正常プロセッサによりシステム運用を開始するステップと、所定時間内に応答がないプロセッサを留保プロセッサとして、この留保プロセッサをシステム運用と並行して確認処理をするステップ、とを備えたので、システム立ち上げの効率化が図れる効果がある。
【００４８】
また更に、留保プロセッサの確認処理を、正常プロセッサの１つが行うようにしたので、早期システムの立ち上げとシステム運用には支障無くすることができる効果がある。
【００４９】
また更に、留保プロセッサの確認処理として、再初期化指令を行うようにしたので、異常プロセッサを確定して交換対象を容易に特定できる効果がある。
【図面の簡単な説明】
【図１】  この発明の実施の形態１におけるマルチプロセッサシステムにおける初期化方法を説明するためのシステム構成を示す図である。
【図２】  実施の形態１における正常完了動作を説明するシステム図である。
【図３】  実施の形態１における動作を説明するためのグループ図である。
【図４】  実施の形態１におけるマスタプロセッサが持つ構成機能を示す図である。
【図５】  実施の形態１における初期化動作を示すフロー図である。
【図６】  この発明の実施の形態２におけるプロセッサグループの区分を説明する図である。
【図７】  実施の形態２におけるマスタプロセッサが持つ構成機能を示す図である。
【図８】  実施の形態２におけるプロセッサプール・マスタ選定処理の動作を示すフロー図である。
【図９】  実施の形態２における平行起動処理の動作を示すフロー図である。
【図１０】  実施の形態２におけるマスタプロセッサが持つ他の構成機能を示す図である。
【図１１】  実施の形態２におけるマスタプロセッサが行う動作を示す概念図である。
【図１２】  実施の形態２における再確認処理の動作を示すフロー図である。
【図１３】  この発明の実施の形態３におけるシステム運用時に起こる異常に対する処理概念を示す図である。
【図１４】  この発明における他の各種処理機能を示す図である。
【図１５】  実施の形態３におけるプロセッサ間処理の動作を示すフロー図である。
【図１６】  実施の形態３におけるマスタプロセッサが持つ他の構成機能を示す概念図である。
【図１７】  実施の形態３におけるプロセッサプール追加処理の動作を示すフロー図である。
【図１８】  この発明の実施の形態３におけるシステム運用時に起こる異常に対する処理概念を示す図である。
【図１９】  この発明の実施の形態４におけるシステム運用時のプロセッサ追加のためにシステムマスタプロセッサが持つ構成機能を示す図である。
【図２０】  実施の形態４におけるプロセッサ数確認処理の動作フロー図である。
【図２１】  実施の形態４における留保交換または補充の概念を説明する図である。
【図２２】  実施の形態４におけるプロセッサ交換処理の動作フロー図である。
【図２３】  従来のマルチプロセッサシステムの初期化方法を説明する図である。
【符号の説明】
Ｓ１０１  起動指示ステップ、Ｓ１０２  初期化完了通知確認ステップ、Ｓ１０４  タイムアウト確認ステップ、Ｓ１０５  留保プロセッサ登録ステップ、Ｓ２０１  プロセッサ選定ステップ、Ｓ３０１  再確認処理指示ステップ、Ｓ３０２  システム運用開始ステップ、Ｓ４０１  再確認処理開始ステップ、Ｓ４０２再初期化指示ステップ、Ｓ４０３  再初期化完了通知確認ステップ、Ｓ４０４正常プロセッサへ戻すステップ、Ｓ４０５  タイムアウト確認ステップ、Ｓ４０７  異常プロセッサ登録ステップ、Ｓ５０１  処理要求送信ステップ、Ｓ５０２  タイムアウトまでの確認ステップ、Ｓ５０３  受信確認ステップ、Ｓ５０４代替プロセッサ選択ステップ、Ｓ６０２留保プロセッサ登録ステップ、Ｓ７０１  再認識処理開始ステップ、Ｓ７０２  ダミー要求通信タイムアウトまでの確認ステップ、Ｓ７０３  受信確認ステップ、Ｓ７０４  正常プロセッサへ戻すステップ、Ｓ８０１  正常プロセッサ数カウントステップ、Ｓ８０２  所要数との比較ステップ、Ｓ８０３  異常通知ステップ、Ｓ９０２  留保プロセッサからの選択ステップ。
【図１】
0003688217.tif 000002
【図２】
0003688217.tif 000003
【図３】
0003688217.tif 000004
【図４】
0003688217.tif 000005
【図５】
0003688217.tif 000006
【図６】
0003688217.tif 000007
【図７】
0003688217.tif 000008
【図８】
0003688217.tif 000009
【図９】
0003688217.tif 000010
【図１０】
0003688217.tif 000011
【図１１】
0003688217.tif 000012
【図１２】
0003688217.tif 000013
【図１３】
0003688217.tif 000014
【図１４】
0003688217.tif 000015
【図１５】
0003688217.tif 000016
【図１６】
0003688217.tif 000017
【図１７】
0003688217.tif 000018
【図１８】
0003688217.tif 000019
【図１９】
0003688217.tif 000020
【図２０】
0003688217.tif 000021
【図２１】
0003688217.tif 000022
【図２２】
0003688217.tif 000023
【図２３】
0003688217.tif 000024