(57)【要約】  本件は、互いに同期してプログラムを実行する多重化ＣＰＵが複数組搭載された演算処理システム等に関し、同期外れが生じたときの停止時間を短縮化して信頼性の高い状態に復帰させるために、多重化ＣＰＵを互いに同期した状態に立ち上げるシステムファームプログラムが記憶されたＲＯＭと、全体として１つのアドレスマップで定義されたＲＡＭと、システムブート時に、ＲＯＭに記憶されたファームプログラムをＲＡＭに複写するファーム複写部と、ＲＡＭの、複写先のアドレスが格納されるＲＡＭアドレスレジスタと、ＲＡＭアドレスレジスタに複写先のアドレスを格納するＲＡＭアドレス格納部と、同期外れを検出する同期外れ検出部と、同期外れが検出されたことを受けてＲＡＭアドレスレジスタを参照し、ＲＯＭに記憶されたプログラム読出し用のアドレスを、ＲＡＭの複写先のアドレスにすり替えるアドレスすり替え部とを備えた。
2010100757.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが２つ以上のＣＰＵからなり互いに同期して処理を実行する多重化ＣＰＵを複数組有する演算処理システムであって、
前記多重化ＣＰＵを互いに同期した状態に立ち上げるファームプログラムが記憶されたＲＯＭと、
全体として１つのアドレスマップで定義されたＲＡＭと、
システムブート時に、前記ＲＯＭに記憶されたファームプログラムを前記ＲＡＭに複写するファーム複写部と、
前記ＲＡＭの、ファームプログラムが複写された複写先のアドレスが格納されるＲＡＭアドレスレジスタと、
前記ＲＡＭアドレスレジスタに、前記ＲＡＭの、前記ファーム複写部によるファームプログラムの複写先のアドレスを格納するＲＡＭアドレス格納部と、
前記多重化ＣＰＵの同期外れを検出する同期外れ検出部と、
前記同期外れ検出部により同期外れが検出されたことを受けて前記ＲＡＭアドレスレジスタを参照し、前記ＲＯＭに記憶されたファームプログラム読出し用のアドレスを、前記ＲＡＭの、該ファームプログラムの複写先のアドレスにすり替えるアドレスすり替え部とを有することを特徴とする演算処理システム。
【請求項２】
前記ＲＡＭにファームプログラムが複写されたことを示す複写フラグが格納される複写フラグレジスタと、
前記ファーム複写部により前記ＲＡＭにファームプログラムが複写されたことを受けて前記複写フラグレジスタに前記複写フラグを格納する複写フラグ格納部とを有し、
前記アドレスすり替え部は、前記同期外れ検出部により同期外れが検出されたことを受けて前記複写フラグレジスタを参照し、該複写フラグレジスタに前記複写フラグが格納されていた場合に、前記ＲＯＭに記憶されたファームプログラム読出し用のアドレスを、前記ＲＡＭの、該ファームプログラムの複写先のアドレスにすり替えるものであることを特徴とする請求項１記載の演算処理システム。
【請求項３】
前記同期外れ検出部により同期外れが検出されたことを受け、再同期後の動作継続に必要なコンテキストを前記ファームプログラムの読出しに先立って前記ＲＡＭに退避させるコンテキスト退避部と、
前記ファームプログラムの読出し後において、前記ＲＡＭに退避しておいたコンテキストを読み戻すコンテキスト読戻部とをさらに有することを特徴とする請求項１又は２記載の演算処理システム。
【請求項４】
それぞれが２つ以上のＣＰＵからなる多重化ＣＰＵ複数組と、該複数組の多重化ＣＰＵを管理するシステム管理装置とを有する演算処理システムであって、
前記多重化ＣＰＵを互いに同期した状態に立ち上げるファームプログラムが記憶されたＲＯＭと、
全体として１つのアドレスマップで定義されたＲＡＭと、
前記多重化ＣＰＵの同期外れを検出して前記システム管理装置に報告する同期外れ検出部と、
前記システム管理装置からの切離し指示を受けて当該多重化ＣＰＵを当該演算処理システムから論理的に切り離す切離し処理部とを有し、
前記システム管理装置が、前記複数組の多重化ＣＰＵのうちのいずれかの同期外れの報告を受けて、同期外れが発生した第１の多重化ＣＰＵのうちの正常動作続行中のＣＰＵに向けて、該第１の多重化ＣＰＵの当該演算処理システムからの論理的な切り離しを指示する切離し指示部を有することを特徴とする演算処理システム。
【請求項５】
前記システム管理装置が、論理的な切離が行なわれた後の前記第１の多重化ＣＰＵでの再同期が完了したことを受けて、該第１の多重化ＣＰＵの、当該演算処理システムへの論理的な追加を指示する追加指示部を有することを特徴とする請求項４記載の演算処理システム。
【請求項６】
当該演算処理システムが、前記複数組の多重化ＣＰＵの中に、当該演算処理システムから論理的に切り離された第２の多重化ＣＰＵを含み、
前記システム管理装置が、前記複数組の多重化ＣＰＵのうちのいずれかの同期外れの報告を受けて、前記第２の多重化ＣＰＵの、当該演算処理システムへの論理的な参加を指示する参加指示部を有し、
前記切離し処理部は、前記システム管理装置からの切離し指示を受けて、前記第１の多重化ＣＰＵで行なっていた処理を当該演算処理システムに新たに参加した前記第２の多重化ＣＰＵに引き継がせた上で、当該演算処理システムから論理的に切り離すものであることを特徴とする請求項４記載の演算処理システム。
【請求項７】
前記第１の多重化ＣＰＵの前記切離し処理部は、前記システム管理装置からの切離し指示を受けて、該第１の多重化ＣＰＵのＩＤを当該演算処理システムに新たに参加した前記第２の多重化ＣＰＵのＩＤとして該第２の多重化ＣＰＵに通知するものであることを特徴とする請求項６記載の演算処理システム。
【請求項８】
前記第１の多重化ＣＰＵの立場にあるときに、前記システム制御装置からの切離し指示を受けて、該第１の多重化ＣＰＵで行なっていた処理を前記第２の多重化ＣＰＵで継続するために必要なコンテキストを前記ＲＡＭに退避させるコンテキスト退避部と、
前記第２の多重化ＣＰＵの立場にあって、当該演算処理システムに新たに参加した際に、前記ＲＡＭから前記コンテキストを読み戻すコンテキスト読戻部とを有することを特徴とする請求項７記載の演算処理システム。
【請求項９】
それぞれが２つ以上のＣＰＵからなり互いに同期してプログラムを実行する多重化ＣＰＵを複数組有する演算処理システムにおける再同期方法であって、
当該演算処理システムが、前記多重化ＣＰＵを互いに同期した状態に立ち上げるファームプログラムが記憶されたＲＯＭと、全体として１つのアドレスマップで定義されたＲＡＭと、前記ＲＡＭの、ファームプログラムが複写された複写先のアドレスが格納されるＲＡＭアドレスレジスタとを備えたシステムであり、
システムブート時に、前記ＲＯＭに記憶されたファームプログラムを前記ＲＡＭに複写するファーム複写ステップと、
前記ＲＡＭアドレスレジスタに、前記ＲＡＭの、ファームプログラムの複写先のアドレスを格納するＲＡＭアドレス格納ステップと、
前記多重化ＣＰＵの同期外れを検出する同期外れ検出ステップと、
前記同期外れ検出ステップにおいて同期外れが検出されたことを受けて前記ＲＡＭアドレスレジスタを参照し、前記ＲＯＭに記憶されたファームプログラム読出し用のアドレスを、前記ＲＡＭの、該ファームプログラムの複写先のアドレスにすり替えるアドレスすり替えステップとを有することを特徴とする再同期方法。
【請求項１０】
それぞれが２つ以上のＣＰＵからなり互いに同期してプログラムを実行する多重化ＣＰＵを複数組有するとともに、該複数組の多重化ＣＰＵを管理するシステム管理装置を備えた演算処理システムにおける再同期方法であって、
当該演算処理システムが、前記多重化ＣＰＵを互いに同期した状態に立ち上げるファームプログラムが記憶されたＲＯＭと、全体として１つのアドレスマップで定義されたＲＡＭとを備えたシステムであり、
前記多重化ＣＰＵの同期外れを検出して前記システム管理装置に報告する同期外れ検出ステップと、
前記システム管理装置で実行される、前記複数組の多重化ＣＰＵのうちのいずれかの同期外れの報告を受けて、同期外れが発生した第１の多重化ＣＰＵのうちの正常動作続行中のＣＰＵに向けて、該第１の多重化ＣＰＵの当該演算処理システムからの論理的な切り離しを指示する切離し指示ステップと、
前記第１の多重化ＣＰＵのうちの正常動作実行中のＣＰＵで実行される、前記システム管理装置からの切離し指示を受けて当該第１の多重化ＣＰＵを当該演算処理システムから論理的に切離す切離し処理ステップとを有することを特徴とする再同期方法。
【請求項１１】
それぞれが２つ以上のＣＰＵからなり互いに同期してプログラムを実行する多重化ＣＰＵを複数組有する演算処理システムで実行されるファームプログラムであって、
当該演算処理システムが、前記多重化ＣＰＵを互いに同期した状態に立ち上げるファームプログラムが記憶されたＲＯＭと、全体として１つのアドレスマップで定義されたＲＡＭと、前記ＲＡＭの、ファームプログラムが複写された複写先のアドレスが格納されるＲＡＭアドレスレジスタとを備えたシステムであり、当該演算処理システムを、
システムブート時に、前記ＲＯＭに記憶されたファームプログラムを前記ＲＡＭに複写するファーム複写部と、
前記ＲＡＭアドレスレジスタに、前記ＲＡＭの、前記ファーム複写部によるファームプログラムの複写先のアドレスを格納するＲＡＭアドレス格納部と、
前記多重化ＣＰＵの同期外れを検出する同期外れ検出部と、
前記同期外れ検出部により同期外れが検出されたことを受けて前記ＲＡＭアドレスレジスタを参照し、前記ＲＯＭに記憶されたファームプログラム読出し用のアドレスを、前記ＲＡＭの、該ファームプログラムの複写先のアドレスにすり替えるアドレスすり替え部とを有する演算処理システムとして動作させることを特徴とするファームプログラム。
【請求項１２】
それぞれが２つ以上のＣＰＵからなり互いに同期してプログラムを実行する多重化ＣＰＵを複数組有するとともに、該複数組の多重化ＣＰＵを管理するシステム管理装置を備えた演算処理システムで実行されるファームプログラムであって、
当該演算処理システムが、前記多重化ＣＰＵを互いに同期した状態に立ち上げるファームプログラムが記憶されたＲＯＭと、全体として１つのアドレスマップで定義されたＲＡＭとを備えたシステムであり、当該演算処理システムを、
前記多重化ＣＰＵの同期外れを検出して前記システム管理装置に報告する同期外れ検出部と、
前記システム管理装置からの切離し指示を受けて当該多重化ＣＰＵを当該演算処理システムから論理的に切離す切離し処理部とを有する演算処理システムとして動作させることを特徴とするファームプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、互いに同期してプログラムを実行する多重化ＣＰＵが複数組搭載された演算処理システム、演算処理システムにおける再同期方法、および再同期のためのファームプログラムに関する。
【背景技術】
【０００２】
連続稼動を要求される基幹サーバシステム等の演算処理システムにおいて、システムの停止は大きな影響があり、ほとんど停止しない高い信頼性が求められる。信頼性向上のため２つのＣＰＵを同期二重化動作させる方法がある。この同期二重化ＣＰＵシステムの場合、同期動作中のＣＰＵペアの片方に故障が発生してもシステム動作継続が可能である。さらに、再度ＣＰＵの同期動作を復活（再同期化）させることにより二重化同期動作している時間を長くして信頼性を向上させることが望ましい。再同期化時には、システムリブートすると停止時間が長いため、システムリブートを行なわずに再同期化するほうがよい。【０００３】
図１は、演算処理システムの構成の一例を示すブロック図である。【０００４】
この図１に示す演算処理システム１０は、３台のシステムボード２０＿１，２０＿２，２０＿３を備えている。各システムボード２０＿１，２０＿２，２０＿３は、それぞれ２つのＣＰＵ２１＿Ａ，２１＿Ｂ；２１＿Ｃ，２１＿Ｄ；２１＿Ｅ，２１＿Ｆを備えている。また、各システムボード２０＿１，２０＿２，２０＿３は、主記憶ＲＡＭ２２＿１，２２＿２，２２＿３と、ファームＲＯＭ２３＿１，２３＿２，２３＿３と、システム制御回路２４＿１，２４＿２，２４＿３とを備えている。【０００５】
各システムボード２０＿１，２０＿２，２０＿３の、各２つのＣＰＵ２１＿Ａ，２１＿Ｂ；２１＿Ｃ，２１＿Ｄ；２１＿Ｅ，２１＿Ｆは、互いに同期して同一の処理を実行する同期二重化ＣＰＵである。【０００６】
また、主記憶ＲＡＭ２２＿１，２２＿２，２２＿３は、ＣＰＵ２１＿Ａ，２１＿Ｂ；２１＿Ｃ，２１＿Ｄ；２１＿Ｅ，２１＿Ｆでの処理における作業領域として使用されるランダムアクセスメモリである。これらの主記憶ＲＡＭ２２＿１，２２＿２，２２＿３は、互いのアドレスが重ならないように、それらの主記憶ＲＡＭ２２＿１，２２＿２，２２＿３の全体に亘って１つのアドレスマップで定義されている。こうすることにより、どのシステムボード２０＿１，２０＿２，２０＿３でも、他のシステムボードの主記憶ＲＡＭの内容を参照することができる。したがって、システムボード２０＿１，２０＿２，２０＿３の相互間でデータの受け渡しを行なうことができる。【０００７】
また、ファームＲＯＭ２３＿１，２３＿２，２３＿３には同期二重化ＣＰＵを同期した状態に立ち上げるためのファームプログラムが記憶されている。【０００８】
尚、図１は、システムボード２０＿１，２０＿２，２０＿３は３台示されているがシステムボードの数は３台に制限されるものではない。【０００９】
また、図１に示す演算処理システム１０は、３台のＩＯ制御回路３０＿１，３０＿２，３０＿３とインターコネクト４０を備えている。ここでは、これら３台のＩＯ制御回路３０＿１，３０＿２，３０＿３はどのようなＩＯを制御する制御回路であるかを問うものではない。また、１つの演算処理システム１０を構成するＩＯ制御回路の数も３台に制限されるものではなく、システムボードの数と一致している必要もない。またインターコネクト４０は、システムボード２０＿１，２０＿２，２０＿３とＩＯ制御回路３０＿１，３０＿２，３０＿３との間の信号伝達を担っている。【００１０】
この演算処理装置１０は、さらにシステム管理装置５０を備えている。このシステム管理装置５０は、この演算処理システム１０の全体の管理を担っている。【００１１】
図１のように構成された演算処理システムにおいて、システムリブートを行なわずに再同期化する方法を以下に示す。ここでは、システムボード２０＿１に搭載された２つのＣＰＵ２１＿Ａ，２１＿Ｂのうちの一方のＣＰＵ２１＿Ａで同期外れが生じたものとして説明する。【００１２】
システム制御回路２４＿１にて片系ＣＰＵ２１＿Ａでのエラーによる冗長（同期外れ）を検出すると、その異常ＣＰＵ２１＿Ａを切り離す。同期ペアの正常ＣＰＵ２１＿Ｂに対して片系停止を割り込み通知にて通知する。この割り込み通信を受けて再同期のためＣＰＵ２１＿Ａ，２１＿Ｂをリセットする。ここで、リセット中のＣＰＵ２１＿Ａ，２１＿Ｂは、その他のＣＰＵ２１＿Ｃ，２１＿Ｄ，２１＿Ｅ，２１＿ＦやＩＯ制御回路３０＿１，３０＿２，３０＿３からの割り込みなどの要求に応答できない。このため、別ＣＰＵ２１＿Ｃ，２１＿Ｄ，２１＿Ｅ，２１＿ＦやＩＯ制御回路３０＿１，３０＿２，３０＿３からの、再同期しようとしているＣＰＵ２１＿Ａ，２１＿Ｂへの割り込み等を停止させる。このとき，ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が一時停止することとなる。【００１３】
正常ＣＰＵ２１＿Ｂにより、再同期化時に最低限必要なＣＰＵ内部情報を主記憶ＲＡＭ２２＿１へ退避し、およびＣＰＵのキャッシュも主記憶ＲＡＭ２２＿１へ退避する。【００１４】
この処理が完了した時点でＣＰＵ２１＿Ａ，２１＿Ｂを同時にリセットして、ＣＰＵ同期運転を再開させる。リセットされたＣＰＵ２１＿Ａ，２１＿Ｂは、ファームＲＯＭ２３＿１よりファームを読み出し、ファームを起動した後、主記憶用ＲＡＭ２２＿１へ退避した情報をＣＰＵ２１＿Ａ，２１＿Ｂへ復元させる。最後に再同期するＣＰＵ２１＿Ａ，２１＿Ｂへの割り込み等の停止を解除して，ＯＳを復帰させる。【００１５】
図２は、上記の再同期化方法におけるタイムシーケンスを示す図である。【００１６】
ここでは、ＣＰＵ２１＿Ａを「ＣＰＵ  Ａ」、ＣＰＵ２１＿Ｂを「ＣＰＵ  Ｂ」、その他のＣＰＵ２１＿Ｃ，２１＿Ｄ，２１＿Ｅ，２１＿Ｆを「別ＣＰＵ」と称している。【００１７】
ＣＰＵ  Ａで同期外れが生じると、ＣＰＵ  Ｂでファーム処理、すなわち、割込みの禁止や、ＣＰＵキャッシュの主記憶ＲＡＭへの退避等が行なわれ、別ＣＰＵは停止する。【００１８】
ＣＰＵ  Ａ，ＣＰＵ  Ｂでは、リセットおよびファーム読み出しが行なわれ、さらに主記憶ＲＡＭに退避した情報の復元や割込み禁止の解除等のファーム処理が行なわれる。その後、ＣＰＵ  Ａ，ＣＰＵ  Ｂ、他のＣＰＵともに正常動作に復帰する。【００１９】
ここで、特にファームＲＯＭからのファームの読み出しに時間がかかることから、再同期化の完了までに長時間を要する。特にフラッシュＲＯＭをファームＲＯＭとして採用した場合、フラッシュＲＯＭは通常は低速周波数（数十ＭＨｚ程度）で動作し、かつバス幅が小さいため、フラッシュＲＯＭからファームを起動のための読み出し時間が長い。【００２０】
再同期化を行なっている間はＯＳが停止するため、システム使用者の作業が一時停止する。またシステム内のパケットを停止させるため、各モジュールのタイムアウトの時間設定に大きい値が必要であるという問題が生じる。すなわち、汎用品のモジュールを使用した場合、このタイムアウト時間が想定以上の値となり、上記の再同期方法を採用できない可能性もある。【００２１】
再同期時の起動時間を短縮する方法として、起動時にＲＯＭからＲＡＭにファームプログラムを移し替えておき、再起動時にはファームプログラムをＲＡＭから読み出すことが提案されている。この提案では、末端のセレクタでＲＡＭとＲＯＭとを切り替えている。【００２２】
しかしながら、通常の同期二重化ＣＰＵ構成の場合、ファームＲＯＭは各ＣＰＵや各ＣＰＵグループ毎に設けられており、一方、主記憶ＲＡＭは、上述したようにそのシステム全体でアドレスの重複を避けた１つのアドレスマップで定義されている。このような構成において、従来提案された、ファームプログラムをＲＡＭに移し替えておく方法を採用しようとすると、１つのＲＯＭに対し１対１で専用のＲＡＭを別途用意する必要がありコスト高となる。また、ファームＲＯＭは、読み出しだけでなく、エラー情報の保存や構成情報の保持のための書き込みに使われる場合もある。エラー情報等は揮発性のＲＡＭには保存できないため、従来の提案のように末端の部分でＲＯＭとＲＡＭを切り替えると、ＣＰＵ間の排他制御が必要となり、制御が複雑となる。【００２３】
また従来、同期二重化ＣＰＵの一方が故障した場合に二重化を解消してもう一方のＣＰＵのみで運転を行なうことや、現用系の変更データを待機系にコピーし処理の引継ぎを短時間で行なうことが提案されている。しかしながら、一方のＣＰＵのみの運転のままでは信頼性の低下が避けられず、現用系の変更データを待機系にコピーする提案は同期外れとは直接的な関係はない。
【特許文献１】特開昭６３−２６８０３０号公報
【特許文献２】特開平８−２３５１２５号公報
【特許文献３】特開平７−２００３３４号公報
【特許文献４】特開２００８−１４００８０号公報
【００２４】
本件開示の演算処理システム、再同期方法、およびファームプログラムの課題は、同期して動作する多重化ＣＰＵが複数組搭載された演算処理システムにおいて、同期外れが生じたときの停止時間を短縮化して信頼性の高い状態に復帰させることにある。
【発明の開示】
【００２５】
本件開示の演算処理システムのうちの第１の演算処理システムは、それぞれが２つ以上のＣＰＵからなり互いに同期して処理を実行する多重化ＣＰＵを複数組有する演算処理システムであって、
多重化ＣＰＵを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームＲＯＭと、
全体として１つのアドレスマップで定義された主記憶ＲＡＭと、
システムブート時に、ファームＲＯＭに記憶されたファームプログラムを主記憶ＲＡＭに複写するファーム複写部と、
主記憶ＲＡＭの、ファームプログラムが複写された複写先のアドレスが格納されるＲＡＭアドレスレジスタと、
ＲＡＭアドレスレジスタに、主記憶ＲＡＭの、ファーム複写部によるファームプログラムの複写先のアドレスを格納するＲＡＭアドレス格納部と、
多重化ＣＰＵの同期外れを検出する同期外れ検出部と、
同期外れ検出部により同期外れが検出されたことを受けてＲＡＭアドレスレジスタを参照し、ファームＲＯＭに記憶されたファームプログラム読出し用のアドレスを、主記憶ＲＡＭの、ファームプログラムの複写先のアドレスにすり替えるアドレスすり替え部とを有する演算処理システムである。
【００２６】
また、本件開示の演算処理システムのうちの第２の演算処理システムは、それぞれが２つ以上のＣＰＵからなる多重化ＣＰＵ複数組と、該複数組の多重化ＣＰＵを管理するシステム管理装置とを有する演算処理システムであって、
多重化ＣＰＵを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームＲＯＭと、
全体として１つのアドレスマップで定義された主記憶ＲＡＭと、
多重化ＣＰＵの同期外れを検出してシステム管理装置に報告する同期外れ検出部と、
システム管理装置からの切離し指示を受けて当該多重化ＣＰＵを当該演算処理システムから論理的に切り離す切離し処理部とを有し、
システム管理装置が、上記の複数組の多重化ＣＰＵのうちのいずれかの同期外れの報告を受けて、同期外れが発生した第１の多重化ＣＰＵのうちの正常動作続行中のＣＰＵに向けて、第１の多重化ＣＰＵの当該演算処理システムからの論理的な切り離しを指示する切離し指示部を有する演算処理システムである。
【００２７】
また、本件開示の再同期方法のうちの第１の再同期方法は、それぞれが２つ以上のＣＰＵからなり互いに同期してプログラムを実行する多重化ＣＰＵを複数組有する演算処理システムにおける再同期方法であって、
当該演算処理システムが、多重化ＣＰＵを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームＲＯＭと、全体として１つのアドレスマップで定義された主記憶ＲＡＭと、主記憶ＲＡＭの、ファームプログラムが複写された複写先のアドレスが格納されるＲＡＭアドレスレジスタとを備えたシステムであり、
システムブート時に、ファームＲＯＭに記憶されたファームプログラムを主記憶ＲＡＭに複写するファーム複写ステップと、
ＲＡＭアドレスレジスタに、主記憶ＲＡＭの、ファームプログラムの複写先のアドレスを格納するＲＡＭアドレス格納ステップと、
多重化ＣＰＵの同期外れを検出する同期外れ検出ステップと、
同期外れ検出ステップにおいて同期外れが検出されたことを受けてＲＡＭアドレスレジスタを参照し、ファームＲＯＭに記憶されたファームプログラム読出し用のアドレスを、主記憶ＲＡＭの、ファームプログラムの複写先のアドレスにすり替えるアドレスすり替えステップとを有する再同期方法である。
【００２８】
また、本件開示の再同期方法のうちの第２の再同期方法は、
それぞれが２つ以上のＣＰＵからなり、互いに同期してプログラムを実行する多重化ＣＰＵを複数組有するとともに、それら複数組の多重化ＣＰＵを管理するシステム管理装置を備えた演算処理システムにおける再同期方法であって、
当該演算処理システムが、多重化ＣＰＵを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームＲＯＭと、全体として１つのアドレスマップで定義された主記憶ＲＡＭとを備えたシステムであり、
多重化ＣＰＵの同期外れを検出してシステム管理装置に報告する同期外れ検出ステップと、
システム管理装置で実行される、上記複数組の多重化ＣＰＵのうちのいずれかの同期外れの報告を受けて、同期外れが発生した第１の多重化ＣＰＵのうちの正常動作続行中のＣＰＵに向けて、第１の多重化ＣＰＵの当該演算処理システムからの論理的な切り離しを指示する切離し指示ステップと、
第１の多重化ＣＰＵのうちの正常動作実行中のＣＰＵで実行される、システム管理装置からの切離し指示を受けて第１の多重化ＣＰＵを当該演算処理システムから論理的に切離す切離し処理ステップとを有する再同期方法である。
【００２９】
さらに、本件開示のファームプログラムのうちの第１のファームプログラムは、それぞれが２つ以上のＣＰＵからなり互いに同期してプログラムを実行する多重化ＣＰＵを複数組有する演算処理システムで実行されるファームプログラムであって、
当該演算処理システムが、多重化ＣＰＵを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームＲＯＭと、全体として１つのアドレスマップで定義された主記憶ＲＡＭと、主記憶ＲＡＭの、ファームプログラムが複写された複写先のアドレスが格納されるＲＡＭアドレスレジスタとを備えたシステムであり、当該演算処理システムを、
システムブート時に、ファームＲＯＭに記憶されたファームプログラムを主記憶ＲＡＭに複写するファーム複写部と、
ＲＡＭアドレスレジスタに、主記憶ＲＡＭの、ファーム複写部によるファームプログラムの複写先のアドレスを格納するＲＡＭアドレス格納部と、
多重化ＣＰＵの同期外れを検出する同期外れ検出部と、
同期外れ検出部により同期外れが検出されたことを受けてＲＡＭアドレスレジスタを参照し、ファームＲＯＭに記憶されたファームプログラム読出し用のアドレスを、主記憶ＲＡＭの、該ファームプログラムの複写先のアドレスにすり替えるアドレスすり替え部とを有する演算処理システムとして動作させるファームプログラムである。
【００３０】
さらに、本件開示のシステムファームプログラムのうちの第２のファームプログラムは、それぞれが２つ以上のＣＰＵからなり互いに同期してプログラムを実行する多重化ＣＰＵを複数組有するとともに、それら複数組の多重化ＣＰＵを管理するシステム管理装置を備えた演算処理システムで実行されるファームプログラムであって、
当該演算処理システムが、多重化ＣＰＵを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームＲＯＭと、全体として１つのアドレスマップで定義された主記憶ＲＡＭとを備えたシステムであり、当該演算処理システムを、
多重化ＣＰＵの同期外れを検出してシステム管理装置に報告する同期外れ検出部と、
システム管理装置からの切離し指示を受けて当該多重化ＣＰＵを当該演算処理システムから論理的に切離す切離し処理部とを有する演算処理システムとして動作させるファームプログラムである。
【００３１】
本件開示の第１の演算処理システム、第１の再同期方法、および第１のファームプログラムによれば、大きなコスト上昇を伴わずに同期外れを速やかに回復させ、これによりシステム停止時間を短縮化するとともに信頼性の高い状態に速やかに復帰させることができる。
【００３２】
また、本件開示の第２の演算処理システム、第２の再同期方法、および第２のファームプログラムによれば、同期外れが生じた多重化ＣＰＵで実行されていた処理が他の多重化ＣＰＵに移行される。また同期外れが生じた多重化ＣＰＵは演算処理システムから論理的に切り離される。これによりシステム停止時間を短縮化し、さらに信頼性の高い状態に復帰させることができる。
【図面の簡単な説明】
【００３３】
【図１】演算処理システムの構成の一例を示すブロック図である。
【図２】再同期化の際のタイムシーケンスを示す図である。
【図３】本件の第１実施形態の演算処理システムの構成を示すブロック図である。
【図４】本件の第２実施形態の演算処理システムの構成を示すブロック図である。
【図５】図４に示す第２実施形態におけるファームおよび回路の動作シーケンスを示す図である。
【図６】本件の第３実施形態の演算処理システムの構成を示すブロック図である。
【図７】本件の第４実施形態の演算処理システムの構成を示すブロック図である。
【図８】図７に示す第４実施形態の演算処理システムにおける、同期外れが生じた際の動作を示す図である。
【図９】図７に示す第４実施形態の演算処理システムにおける、同期外れが生じた際の動作を示す図である。
【図１０】図７に示す第４実施形態の演算処理システムにおける、同期外れが生じた際の動作を示す図である。
【図１１】図７に示す第４実施形態の演算処理システムにおける、同期外れが生じた際の動作を示す図である。
【図１２】図７に示す第４実施形態の演算処理システムにおける、同期外れが生じた際の動作を示す図である。
【図１３】図８〜図１２に示す第４実施形態の演算処理システムの各部の動作シーケンスを示す図である。
【発明を実施するための最良の形態】
【００３４】
以下、本件の実施形態について説明する。尚、以下に示す第１実施形態においても、全体構成図としては図１をそのまま採用する。ただし、シスステム制御回路２４＿１，２４＿２，２４＿３の内部構成は多少異なっている。【００３５】
図３は、本件の第１実施形態の演算処理システムの構成を示すブロック図である。ただし、この図３では、図示の繁雑さを避けるため、図１に示す３台のシステムボードのうちの２台のシステムボードについて示している。また、それら２台のシステムボードを構成する２つのシステム制御回路については再同期に必要な構成要素のみを示している。さらに、ここでは、図１に示すインターコネクト４０の図示は省略し、２つのシステム制御回路２４＿１，２４＿２のそれぞれに含まれるスレーブリクエスト処理回路は、双方を含めて１つのブロックで示してある。【００３６】
この図３には、図１において各システムボード２０＿１，２０＿２ごとにそれぞれ１つのブロックで示すシステム制御回路２４＿１，２４＿２の構成要素として、二重化処理部２４１＿１，２４１＿２が示されている。また、システム制御回路２４＿１，２４＿２の構成要素として、ＲＯＭアドレス検出回路２４２＿１，２４２＿２およびＲＡＭアドレスレジスタ２４３＿１，２４３＿２も示されている。さらに、その構成要素として、変換許可フラグレジスタ２４４＿１，２４４＿２、ゲート回路３４５＿１，３４５＿２、および選択回路３４６＿１，３４６＿２も示されている。また、２つのシステム制御回路２４＿１，２４＿２について１つのブロックに統合されたスレーブリクエスト処理回路２４７も示されている。【００３７】
二重化処理部２４１＿１，２４１＿２は、各２つのＣＰＵ２１＿Ａ，２１＿Ｂ；２１＿Ｃ，２１＿Ｄの二重化同期処理に関する動作を担っている。すなわちこの二重化処理部２４１＿１，２４１＿２は、各２つのＣＰＵのバスインタフェース、および各２つのＣＰＵから出力されるアドレスのうちの一方のＣＰＵからのアドレスを選択するスイッチの役割りを担っている。さらにこの二重化処理部２４１＿１，２４１＿２は、各２つのＣＰＵの同期外れの検出等の処理も担っている。【００３８】
また、ＲＯＭアドレス検出回路２４２＿１，２４２＿２は、二重化処理部２４１＿１，２４１＿２から出力されてきたアドレスがファームＲＯＭ２３＿１，２３＿２のファームプログラム格納アドレスと一致するか否かを検出する回路である。【００３９】
また、ＲＡＭアドレスレジスタ２４３＿１，２４３＿２は、ファームＲＯＭ２３＿１，２３＿２内のファームプログラムが主記憶ＲＡＭ２２＿１，２２＿２に複写されたときの、その複写先のアドレスが格納されるレジスタである。詳細は後述する。【００４０】
また、変換許可フラグレジスタ２４４＿１，２４４＿２には、ファームＲＯＭのアドレスを主記憶ＲＡＭのアドレスに変換することを許可する変換許可フラグが格納される。この変換許可フラグレジスタ２４４＿１，２４４＿２は、本件の複写フラグレジスタの一例に相当する。【００４１】
ゲート回路２４５＿１，２４５＿２は以下の２つの条件（ａ），（ｂ）を同時に満足するときに、主記憶ＲＡＭ２２＿１，２２＿２のアドレスに変換することをＲＡＭアドレス選択信号を出力する。
（ａ）変換許可フラグレジスタ２４４＿１，２４４＿２に変換許可フラグが格納されること。
（ｂ）ＲＯＭアドレス検出回路２４２＿１，２４２＿２でファームＲＯＭ２３＿１，２３＿２内のファームプログラムの格納アドレスが検出されること。【００４２】
選択回路２４６＿１，２４６＿２は二重化処理部２４１＿１，２４１＿２から受け取ったアドレスを通常はそのまま出力する。ただし、ゲート回路２４５＿１，２４５＿２からのＲＡＭアドレス選択信号を受けると、ＲＡＭアドレスレジスタ２４３＿１，２４３＿２に格納されている主記憶ＲＡＭ２２＿１，２２＿２のアドレスを出力する。【００４３】
ここで、この演算処理システムに電源が投入された、初回の初期状態への立ち上げの際は、変換許可フラグレジスタ２４４＿１，２４４＿２には変換許可フラグは格納されておらずリセットされている。このため、ＲＯＭアドレス検出回路２４２＿１，２４２＿２でファームＲＯＭ２３＿１，２３＿２のファームプログラム格納アドレスが検出されても、ゲート回路２４５＿１，２４５＿２からはＲＡＭアドレス選択信号は出力されない。ここで、ファームＲＯＭ２３＿１，２３＿２には互いに同一のファームプログラムが記憶されている。したがって電源投入の際は、いずれか１つのファームＲＯＭからファームプログラムが読み出される。ここではファームＲＯＭ２３＿１からファームプログラムが読み出されるものとする。二重化処理部２４１＿１からファームＲＯＭ２３＿１のアドレスが出力されると、そのファームＲＯＭ２３＿１のアドレスは選択回路２４６＿１からそのまま出力され、スレーブリクスト処理回路２４７を経由してファームＲＯＭ２３＿１に入力される。これにより、ファームＲＯＭ２３＿１からファームプログラムが読み出される。このファームプログラムにより、各２つのＣＰＵ２１＿Ａ，２１＿Ｂ；２１＿Ｃ，２１＿Ｄでは同期化を含む初期設定が行なわれる。この初期設定の際、ファームプログラムの作用により、ファームＲＯＭ２３＿１から読み出されたファームプログラムが主記憶ＲＡＭ２２＿１にコピーされる。またその主記憶ＲＡＭ２２＿１のコピー先のＲＡＭアドレスが各ＲＡＭアドレスレジスタ２４３＿１，２４３＿２に格納される。さらに、各変換許可フラグレジスタ２４４＿１，２４４＿２に変換許可フラグがセットされる。【００４４】
尚、上記の通り、ファームＲＯＭ２３＿１，２３＿２の双方に同じファームプログラムが格納されているためいずれか１つのファームＲＯＭからファームプログラムを読み出せばよい。また、どのシステムボードで同期外れが生じた場合であっても、再同期にあたり、コピー先のＲＡＭからファームプログラムを読み出せばよく、コピー先もいずれか１つのＲＡＭで十分である。【００４５】
ただし、コピー先のＲＡＭアドレスは全てのＲＡＭアドレスレジスタ２４３＿１，２４３＿２に格納され、変換許可フラグのセットも全ての変換許可フラグレジスタ２４４＿１，２４４＿２に対して行なわれる。【００４６】
このような初期設定が行なわれた後、各二重化ＣＰＵでは二重化動作による各種処理が実行される。【００４７】
処理の実行中において、ＣＰＵ２１＿Ａで同期外れが発生したものとする。すると、その同期外れが二重化処理部２４１＿１で検出される。この場合、もう一方のＣＰＵ２１＿Ｂの主動により、図２を参照して説明したようにして再同期化処理が実行される。この再同期化処理にあたり、ファームＲＯＭ２３＿１からファームプログラムを読み出そうとしてＣＰＵ２１＿ＢからファームＲＯＭ２３＿１のファームプログラム格納領域のアドレスが出力され、二重化処理部２４１＿１ではＣＰＵ２１＿Ｂから出力されたアドレスが出力される。このとき、ＲＯＭアドレス検出回路２４２＿１では二重化処理部２４１＿１からファームＲＯＭ２３＿１のファームプログラム格納アドレスが出力されたことが検出される。また、変換許可フラグレジスタ２４４＿１には変換許可フラグがセットされている。このため、ゲート回路２４５＿１からＲＡＭアドレス選択信号が出力される。選択回路２４６＿１では、そのＲＡＭアドレス選択信号を受けて、二重化処理部２４１＿１から出力されたファームＲＯＭ２３＿１のアドレスに代えて、ＲＡＭアドレスレジスタ２４３＿１に格納されている主記憶ＲＡＭ２２＿１のアドレスを出力する。すなわち、ＣＰＵ２１＿ＢはファームＲＯＭ２３＿１のアドレスを出力し選択回路２４６＿１で主記憶ＲＡＭ２２＿１のアドレスにすり替えられて、その主記憶ＲＡＭ２２＿１のアドレスが出力される。このため、主記憶ＲＡＭ２２＿１にコピーされているファームプログラムが読み出される。こうして、ＣＰＵ２１＿Ａ，２１＿Ｂは、主記憶ＲＡＭ２２＿１から読み出されたファームプログラムにより再同期化処理が行なわれる。【００４８】
通常、ファームＲＯＭ２３＿１よりも主記憶ＲＡＭ２２＿１の方がアクセスの速度が格段に速く、したがって図２に示す「ファーム読み出し」に要する時間が大幅に短縮されることとなる。このため高速な再同期が可能となり、信頼度の高い状態に短時間で復帰することができる。【００４９】
また、この図３に示す構成の場合、ＲＯＭと１対１に対応するＲＡＭを別途備えるような大きなコストアップは不要であり、従来の回路構成に僅かな変更を加えるだけで高速な再同期を実現している。【００５０】
図４は、本件の第２実施形態の演算処理システムの構成を示すブロック図である。ただし、この第２実施形態も全体構成は図１と同じであるが、図示の繁雑さを回避するために、図４では１つのシステムボード２０＿１についてのみその構成を示してある。【００５１】
図４に示すシステムボード２０＿１を構成するシステム制御回路２４＿１には、２つのＣＰＵ２１＿Ａ，２１＿Ｂのそれぞれに対応する２つのＣＰＵバスインタフェース２４１ａ，２４１ｂが備えられている。またここには、２つのバスエラー検出器２４１ｃ，２４１ｄと、エラー管理部２４１ｅと、スイッチ部２４１ｆが備えられている。ＣＰＵバスインタフェース２４１ａ，２４１ｂ、バスエラー検出器２４１ｃ，２４１ｄ、エラー管理部２４１ｅ、スイッチ２４１ｆは、それらを合わせたものが図３に示す二重化処理部２４１＿１，２４１＿２に対応する。各ＣＰＵ２１＿Ａ，２１＿ＢからＣＰＵバスインターフェイス２４１ａ，２４１ｂを経由して出力されてきたアドレスやデータのエラーすなわち同期外れがバスエラー検出器２４１ｃ，２４１ｄで検出される。このバスエラー検出器２４１ｃ，２４１ｄでの検出結果は、エラー管理部２４１ｅに報告される。エラー管理部２４１ｅは、２つのＣＰＵ２１Ａ，２１Ｂが同期して動作しているときは、それら２つのＣＰＵ２１＿Ａ，２１＿Ｂのうちのいずれか任意の一方（例えばＣＰＵ２１＿Ａ）から出力されたアドレスおよびデータが出力されるようにスイッチ２４１ｆを切り替えている。【００５２】
ここで、周期外れが検出されると、エラー管理部２４１ｅは、周期外れが生じたＣＰＵ（例えばＣＰＵ２１＿Ａ）ではない、もう一方のＣＰＵ（例えばＣＰＵ２１＿Ｂ）から出力されたアドレスおよびデータが出力されるようにスイッチ２４１ｆを切り替える。【００５３】
スイッチ２４１ｆから出力されたアドレスは、先に到達したアドレスやデータ（ここではアドレス）を先に出力するＦＩＦＯ（ｆｉｒｓｔ−ｉｎ  ｆｉｒｓｔ−ｏｕｔ）レジスタで構成されたアドレスキュー２５１に並べられる。その後、インターコネクト４０を経由して、このシステムボード２０＿１が管轄する主記憶ＲＡＭ２２＿１，ファームＲＯＭ２３＿１、又は、レジスタ等のアドレスのときは、スレーブリクエスト処理回路２４７＿１に入力される。このスレーブリクエスト回路２４７＿１では、そのアドレスが主記憶ＲＡＭ２２＿１のアドレスであるか、ファームＲＯＭ２３＿１のアドレスであるか、又はレジスタ等のアドレスであるかが判定される。主記憶ＲＡＭ２２＿１のアドレスであったときは、そのアドレスが、主記憶ＲＡＭ２２＿１へのデータ書込み用の命令であるか主記憶ＲＡＭ２２＿１からの読出し用の命令であるかに応じて、それぞれ、ＦＩＦＯで構成されたバッファ２４７ｂ又はバッファ２４７ａに格納される。または、スレーブ処理回路２４７＿１でファームＲＯＭ２３＿１のアドレスであることが判定されると、そのアドレスがデータ書込み用の命令であるか、データ読出し用の命令であるかに応じて、それぞれバッファ２４７ｃ、バッファ２４７ｄに格納される。ファームＲＯＭ２３＿１は読出し専用ではなく、エラーが発生したときのログやこのシステムの情報等の書き込みも行なわれるため、書込用の構成も備えられている。【００５４】
また、レジスタ等を指し示すアドレスであったときは、その命令が書込み用であるか読出し用であるかに応じて書込み用のバッファ２４７ｆ又は読出し用のバッファ２４７ｅに格納される。【００５５】
また、スイッチ２４１ｆから書込み用のデータが出力されると、そのデータは、ＦＩＦＯで構成されたライトデータバッファ２５２に一旦格納される。その後インターコネクト４０を経由し、主記憶ＲＡＭ２２＿１に書き込まれるべきデータの場合はバッファ２４７ｂに格納される。また、それと同様に、ファームＲＯＭ２３＿１に書き込まれるべきデータの場合はバッファ２４７ｃに格納され、レジスタ等に格納されるべきデータの場合はバッファ２４７ｅに格納される。【００５６】
バッファ２４７ｂにデータとアドレスが揃うと、ＲＡＭコントローラ２６１により、主記憶ＲＡＭ２２＿１の、そのアドレスに、そのデータが書き込まれる。またこれと同時に、バッファ２４７ｃにデータとアドレスが揃うと、ＲＯＭコントローラ２６２により、ファームＲＯＭ２３＿１の、そのアドレスに、そのデータが書き込まれる。さらに、バッファ２４７ｃにデータとアドレスが揃うと、レジスタＲＷ制御回路２６３により、そのアドレスにより特定されるバッファ等に、そのデータが書き込まれる。【００５７】
また、スレーブリクエスト処理回路２４７＿１によりバッファ２４７ａに読出し用のアドレスが格納されると、ＲＡＭコントローラ２６１には、主記憶ＲＡＭ２２＿１の、そのアドレスからデータが読み出される。読み出されたデータは、一旦バッファ２４７ａに格納され、その後インターコネクト４０を経由し、リードデータバッファ２５３に一時的に格納される。その後、ＣＰＵバスインタフェース２４１ａ，２４１ｂを経由してＣＰＵ２１＿Ａ，２１＿Ｂに伝達される。またこれと同様に、バッファ２４７ｄに読出しアドレスが格納されると、ＲＯＭコントローラ２６２によりファームＲＯＭ２３＿１の、その読出しアドレスからデータが読み出される。読み出されたデータは、バッファ２４７ｄ、インターコネクト４０、リードデータバッファ２５３、ＣＰＵバスインタフェース２４１ａ，２４１ｂを経由してＣＰＵ２１＿Ａ，２１＿Ｂに伝達される。これと同様に、バッファ２４７ｆにアドレスが格納されると、レジスタＲＷ制御回路２６３により、そのバッファ２４７ｆに格納されたアドレスにより特定されるレジスタ等からデータが読み出される。この読み出されたデータは、バッファ２４７ｆ、インターコネクト４０、リードデータバッファ２５３、およびＣＰＵバスインタフェース２４１ａ，２４１ｂを経由してＣＰＵ２１＿Ａ，２１＿Ｂに伝えられる。【００５８】
また、ＲＡＭベースアドレスレジスタ２６４は、図３に示す第１実施形態のＲＡＭアドレスレジスタ２４３＿１に対応する構成要素である。電源オン時の同期化立ち上げ時に、ファームＲＯＭ２３＿１に格納されているファームプログラムが主記憶ＲＡＭ２２＿１にコピーされるが、ＲＡＭベースアドレスレジスタ２６４には、主記憶ＲＡＭ２２＿１の、そのコピー先のアドレスが格納される。ただし、ファームＲＯＭ２３＿１のアドレスであるか、主記憶ＲＡＭ２２＿１のアドレスであるかは、アドレスの上位側のビットで区別されており、ＲＡＭベースアドレスレジスタ２６４には、主記憶ＲＡＭ２２＿１の上位ビット側のアドレスが格納される。【００５９】
また、ここには、ＲＯＭベースアドレス記憶部２６５に記憶されたＲＯＭベースアドレスとスイッチ２４１ｆから出力されたアドレスとの一致不一致を判定するＲＯＭアドレス検出回路２６６が備えられている。このＲＯＭアドレス検出回路２６６は、図３に示す第１実施形態におけるＲＯＭアドレス検出回路２４２＿１に対応する構成要素である。ただし、図４の第２実施形態におけるＲＯＭベースアドレス記憶部２６５には、ファームＲＯＭ２３＿１の、ファームプログラム格納領域を指し示すアドレスのうちの上位ビット側の部分のみ記憶されている。したがって、ＲＯＭアドレス検出部２６６では、ファームＲＯＭ２３＿１の上位ビット側のアドレスについて一致不一致を判定している。【００６０】
アドレスキュー２５１には、書込みアドレスや読出しアドレスが格納されるが、アドレスのうちの下位ビット側についてはスイッチ２４１ｆから出力されたアドレスの下位ビット側からそのまま格納される。上位ビット側については、セレクタ２６８による選択に応じて、スイッチ２４１ｆから出力されたアドレスのうちの上位ビット側か、あるいはＲＡＭベースアドレスレジスタ２６４に格納されているＲＡＭ２＿１のアドレスのうちの上位ビット側が出力される。アドレスキュー２５１にアドレスが格納された後の動作は、前述の通りである。【００６１】
また複写フラグレジスタ２６９は、このシステムボード２０＿１のリセット時にリセットされるレジスタである。この複写フラグレジスタ２６９には、ファームＲＯＭ２３＿１内のファームプログラムがＲＡＭ２２＿１にコピーされコピー先のアドレスがＲＡＭベースアドレスレジスタ２６４に格納された段階で複写フラグがセットされる。【００６２】
アドレスすり替え許可フラグレジスタ２７１には、このシステムボード２０＿１のリセット時に、ＡＮＤゲート２７０により複写フラグレジスタ２６７に複写フラグが格納されているという判定を受けてアドレスすり替え許可フラグがセットされる。すなわち、このアドレスすり替え許可フラグレジスタ２７１には２つのＣＰＵ２１＿Ａ，２１＿Ｂの同期が外れた後の再同期化のためのリセット時にアドレスすり替え許可フラグがセットされる。【００６３】
再同期リセット制御部２７２には、再同期リセットが要請される。再同期リセット制御部２７２は、再同期リセットの要請を受けてＣＰＵ２１＿Ａ，ＣＰＵ＿２１Ｂにリセットを指示する。すると、ＣＰＵ２１＿Ａ，２１＿Ｂは、ファームプログラムの読出し、実行を含む、再同期のためのリセット処理が行なわれる。この再同期リセット処理では、スイッチ２４１ｆから出力されてきたアドレスがファームＲＯＭ２３＿１の、ファームプログラムが記憶されたアドレスであったときに主記憶ＲＡＭ２２＿１の、ファームプログラムのコピー先のアドレスにすり替えられる。したがって、主記憶ＲＡＭ２２＿１からファームプログラムが高速に読み出され、短時間で再同期化が行なわれる。【００６４】
図５は、図４に示す第２実施形態におけるファームおよび回路の動作シーケンスを示す図である。【００６５】
ここでは、「ハードウエア」、「ＯＳ」、「ＣＰＵファーム」、および「システムファーム」とに分けて各部の動作を示している。ここで、「ＣＰＵファーム」、および「システムファーム」は、いずれもファームＲＯＭに記憶されているファームプログラムの構成要素である。【００６６】
ここでは、先ず、システムファームにより、この演算処理システム全体に亘る複数のシステムボード上の複数の主記憶ＲＡＭ２２＿１，２２＿２，２２＿３の全体に亘り、アドレスが重複しないように１つのアドレスマップを作成して各主記憶ＲＡＭ２２＿１，２２＿２，２２＿３にアドレスが設定される。【００６７】
次に、システムファームでは、ファームプログラムの主記憶ＲＡＭへのコピーの制御が行なわれ、ハードウエア上ではファームＲＯＭ上のファームプログラムが主記憶ＲＡＭにコピーされる。ここで、ファームプログラムの主記憶ＲＡＭへのコピーは、第１実施形態でも説明した通り、各システムボードに備えられている主記憶ＲＡＭのうちのいずれか１つの主記憶ＲＡＭにコピーすれば足りる。【００６８】
このコピーが終了した後、「レジスタ設定」が行われる。すなわち、ここでは、ＲＡＭベースアドレスレジスタ２６４（図４参照）に主記憶ＲＡＭの、ファームプログラムのコピー先のアドレスが格納され、複写フラグレジスタ２６９(図４参照)に複写フラグがセットされる。【００６９】
ＣＰＵ２１＿Ａ（ＣＰＵ  Ａ）でエラーが発生すると、プラットフォーム割り込みが入り、ＣＰＵ２１＿Ｂ（ＣＰＵ  Ｂ）によりＯＳの一時停止処理が行なわれる。次いで、プラットフォーム割り込みが入ったことがＣＰＵファームに通知され、そのＣＰＵファームからシステムファームにエラー処理の要求が渡され、システムファームでエラー処理が行なわれる。ここでは同期外れによるエラーが発生したことを認識して二重化復帰すべきことが判断される。この二重化復帰にあたっては、同期外れを生じたＣＰＵ  Ａを含む二重化ＣＰＵ(ＣＰＵ  Ａ／ＣＰＵ  Ｂ)への、別ＣＰＵやＩＯからのアクセス抑止指示がなされて、ハードウエア上でアクセス抑止がなされる。さらに、システムファームにはＣＰＵ  Ａ／ＣＰＵ  Ｂのキャッシュ上のコンテキストの保存指示がなされ、ＣＰＵファームではコンテキスト保存動作が制御され、主記憶ＲＡＭ上にコンテキストが保存される。このコンテキストは、ＣＰＵ  Ａ／ＣＰＵ  Ｂで処理中であった処理を再同期化後において続行するために必要となるデータである。【００７０】
次に、システムファームによりＣＰＵのリセットが指示され、ＣＰＵ  Ａ／ＣＰＵ  Ｂの再同期化リセット処理が行なわれる。この再同期化リセット処理においては、主記憶ＲＡＭからＣＰＵファームが読み出されてＣＰＵが設定され、主記憶ＲＡＭからさらにシステムファームが読み出されてシステム設定が行なわれる。このシステム設定時に同期外れエラーであったことが確認されてコンテキストの読み戻しが指示される。ＣＰＵファームではその指示を受けてコンテキストの読み戻し処理が行なわれ、ハードウエア上では主記憶ＲＡＭ上に退避しておいたコンテキストの読み戻しが行なわれる。次いで、システム制御回路用ファームでは、他からのアクセス抑止の解除が指示され、ハードウエア上で別ＣＰＵやＩＯからのアクセスの抑止解除動作が行なわれる。次いで、システムファームによりＯＳ復帰要求がなされＣＰＵファームによるエラー処理を介してＯＳがプラットホーム割り込みから復帰する。【００７１】
これにより、ＣＰＵ  Ａ／ＣＰＵ  Ｂが再び同期化され、同期外れが発生する前に行なっていた処理が続行される。【００７２】
次に本件の第３実施形態を説明する。【００７３】
この第３実施形態および後述する第４実施形態では、ＣＰＵに同期外れが発生したときに、再同期化のためのリセットを行なう前にそのＣＰＵで実行していた処理を続行させるための情報を他のＣＰＵに移動させる処理が行なわれる。この処理により、他のＣＰＵに処理の続行を委ねる処理が行なわれる。再同期化はその情報を他のＣＰＵに移動させた後に行えばよく、ＯＳを極く短い時間停止させるだけで、信頼度の高い状態に復帰させることができる。【００７４】
図６は、本件の第３実施形態の演算処理システムの構成を示すブロック図である。【００７５】
この図６では、以下の説明のために、ファームウェアやＯＳ・アプリケーションを取り出して明示的に示してある。これらのファームウェアやＯＳ・アプリケーションはＣＰＵで実行されることによって以下の作用をなすプログラムである。【００７６】
この図６に示す第３実施形態の演算処理システムは、１つのシステムボードに２組の二重化ＣＰＵ２１＿Ａ，２１＿Ｂ；２１＿Ｃ，２１＿Ｄが備えられている。【００７７】
ここでは、ＣＰＵ２１＿Ｂ（ＣＰＵ  Ｂ）で同期外れが発生したものとする。その場合、以下の処理が実行される。【００７８】
１）二重化ＣＰＵの組ごとに設けられた二重化処理部２４１＿１，２４１＿２のうちの、同期外れが生じたＣＰＵ  Ｂを含む二重化ＣＰＵを管轄する二重化処理部２４１＿１でＣＰＵ  Ｂの同期外れが検出される。二重化処理部２４１＿１でＣＰＵ  Ｂの同期外れが検出されるとエラー処理部２７４にエラー通知がなされる。二重化処理部２４１＿１は、ＣＰＵ  Ｂの同期外れを検出した後はＣＰＵ  Ａのアドレスを選択するように切り替え、ＣＰＵ  Ａのみで処理を継続させる。【００７９】
２）エラー処理部２７４は二重化されたＣＰＵの片側が縮退されたことを表わすビットをセットすることによって、システム管理装置５０に割り込みをあげる。システム管理装置５０はセットされたビットにより二重化されたＣＰＵの片側が縮退したことを認識する。【００８０】
３）システム管理装置５０はシステム制御回路２４の割り込みレジスタ２７２をセットする。【００８１】
４）システム制御回路２４は割り込みレジスタ２７２のセットによりＣＰＵへ割り込みを行う。【００８２】
５）ＣＰＵ  Ａはこの割り込みを受けてファームウエアを呼び出す。【００８３】
６）ファームウエアはＣＰＵ  Ａ／ＣＰＵ  Ｂをこの演算処理システムから切り離すための処理を行う。【００８４】
７）ファームウエアはＣＰＵ  Ａ／ＣＰＵ  Ｂを切り離すことをＯＳに通知する。【００８５】
８）ファームウエアはシステム制御回路２４のＣＰＵリセットレジスタ２７１をセットする。【００８６】
９）ＣＰＵリセットレジスタ２７１は、このセットを受けてＣＰＵ  Ａ／ＣＰＵ  Ｂをリセットする。【００８７】
１０）ＣＰＵ  Ａ／ＣＰＵ  Ｂは、このリセットを受けて初期設定を行う。【００８８】
１１）ＣＰＵ  Ａ／ＣＰＵ  Ｂは、初期設定が完了したらシステム制御回路の割り込みレジスタ２７３をセットする。【００８９】
１２）システム制御回路２４からシステム管理装置５０に割り込みをあげ、リセットが完了したことを通知する。【００９０】
１３）システム管理装置は割り込みレジスタ２７５をセットする。【００９１】
１４）割り込みレジスタ２７５は、このセットを受けてＣＰＵ  Ｃ／ＣＰＵ  Ｄに割り込みをあげ、ＣＰＵ  Ｃ／ＣＰＵ  Ｄは、この割り込みを受けてにＣＰＵ  Ａ／ＣＰＵ  Ｂの資源が増えたことをＯＳに通知する。【００９２】
以上の方法を実行することにより，ＯＳの停止はＣＰＵ  Ａ／ＣＰＵ  Ｂを切り離すのに要する短時間で済み、再同期中のＯＳ停止時間が短縮される。【００９３】
尚、この第３実施形態の処理はＯＳやアプリケーションがＣＰＵの動的削除や動的追加をサポートする機能を有する場合に有効である。この機能をサポートしない場合は以下の第４実施形態で示すような、ＣＰＵの動的交換を行うことが有効である。【００９４】
図７は、本件の第４実施形態の演算処理システムの構成を示すブロック図である。【００９５】
この図７に示す演算処理システムは、このブロック図は、図１に示す演算処理システムと同様であり、図１と同一の符号を付して示す。図１との相違点は、３台のシステムボード２０＿１，２０＿２，２０＿３のうちの１台のシステムボード２０＿３がこの図７に示す初期段階においてはこの演算処理システム１０から論理的に切り離されたオフラインの状態にある点である。また、この図７では、後の説明のためにＯＳを明示的に示している。このＯＳは、ＣＰＵで実行されることによって、以下の説明に沿う動作を行なうものである。【００９６】
また、図８〜図１３は、図７に示す第４実施形態の演算処理システムにおける、同期外れが生じた際の動作を順に示す図である。【００９７】
図８に示すようにＣＰＵ  Ｂでエラー（同期外れ）が発生したものとする。このとき、以下の各動作が実行される。【００９８】
１）同期外れのＣＰＵ  Ｂを管轄するシステム制御回路２４＿１でＣＰＵ  Ｂのエラー（同期外れ）が検出され、システム管理装置５０にエラー発生の報告がなされる（図８）。【００９９】
２）システム管理装置５０は、エラー発生の報告を受けるとシステムボード２０＿３を起動する（図８）。【０１００】
３）システム管理装置５０は、システムボード２０＿３の起動が完了すると、同期外れのＣＰＵ  Ｂとペアになっている正常動作中のＣＰＵであるＣＰＵ  Ａに割り込みをあげる。ＣＰＵ  Ａは、別ＣＰＵやＩＯからのリクエストが一時的に停止されるように各制御回路を設定する。この時点でＯＳが停止する（図９）。【０１０１】
４）ＣＰＵ  ＡのＯＳ再開に必要な情報をシステムボード２０＿１の主記憶ＲＡＭ２２＿１経由にてシステムボード２０＿３のＣＰＵ  Ｅ／ＣＰＵ  Ｆにコピーする。コピーが済むと、ＣＰＵ  ＡはＣＰＵ  Ａを認識するためのＣＰＵ  ＩＤをＣＰＵ  Ｅ／ＣＰＵ  Ｆに渡す。これと交換にＣＰＵ＿Ａは、ＣＰＵ  Ｅ／ＣＰＵ  ＦからそれまでＣＰＵ  Ｅ／ＣＰＵ  ＦのＩＤとして使用されていたＣＰＵ  ＩＤを受け取る。さらに、ＩＯから交換後のＣＰＵに正しくパケットを届けるため、新たなＣＰＵ  ＩＤの設定を各ＩＯ制御回路３０＿１，３０＿２，３０＿３に反映させる（図１０）。【０１０２】
５）３）で行なった、別ＣＰＵとＩＯからのリクエストの発行停止設定を解除し、ＯＳを復帰させる（図１１）。【０１０３】
６）５）が完了した後、システム管理装置５０に割り込みをあげて、システムボード２０＿１を論理的に切り離す（図１２）。システムボード２０＿１では、その後リセット処理が行なわれ、又は、このシステムボード２０＿１の交換が行なわれる。【０１０４】
この第３実施形態の場合、ＯＳの停止は、４）〜５）の間、すなわち極めて短時間だけで済むことになる。【０１０５】
図１３は、図８〜図１２に示す第４実施形態の演算処理システムの各部の動作シーケンスを示す図である。ここでは、図８に示すシステムボード２０＿１、およびシステムボード２０＿３を、それぞれシステムボード１，およびシステムボード３と表記している。【０１０６】
ハードウエア上でシステムボード１のＣＰＵ  Ｂで同期外れエラーが発生したことが検出されると、ＯＳにプラットフォーム割り込みが入り、ＣＰＵ  ＡによりＯＳの一時停止処理がなされる。さらに、システムボード１のＣＰＵファームにプラットフォームのエラー処理があげられ、さらにシステムボード１のシステムファームによりエラー処理が行なわれる。このエラー処理では、システム制御装置５０に、エラーの報告がなされてシステム制御装置５０によりボード交換制御が行なわれる。すなわち、ここでは、それまで待機していたシステムボード３が起動され、ＣＰＵファームによりＣＰＵ  Ｅ／ＣＰＵ  Ｆの初期設定が行なわれ、さらにシステムファームによりシステムボード３上のシステムの初期設定が行なわれる。システムボード３は、この初期設定の後、暫くの間ループ状態（ウエイト状態）となる。システム制御装置５０は、さらに割り込みレジスタに割り込みフラグをセットする。すると、ＣＰＵ  Ａによりそのフラグのセットによるプラットフォーム割込みが受け付けられ、ＯＳが一時停止する。システムボード１のＣＰＵファームではそのプラットフォーム割込みによる割込み処理が行なわれ、その処理がシステムファームに受け継がれてシステムファームにより別ＣＰＵやＩＯの停止が指示される。ハードウエア上では、この指示を受けて、別ＣＰＵやＩＯからのリクエストが停止される。また、システムボード１のシステムファームではコンテキスト保存処理が行なわれ、主記憶ＲＡＭにコンテキストが保存される。さらに、システムボード１のシステムファームでは、ＣＰＵ  ＡとＣＰＵ  Ｅ／ＣＰＵ  Ｆとの間でのＣＰＵ  ＩＤの交換が行なわれ、各制御回路内の割り込み宛先設定レジスタに新たなＣＰＵ  ＩＤが設定される。また、システムボード１のＣＰＵファームにより、システムボード３から受け取ったＣＰＵ  ＩＤが設定され、その後システムボード１は、停止し、交換／待機等がなされる。【０１０７】
また、システムボード３では、ループ状態（ウエイト状態）にあったＣＰＵ  Ｅ／ＣＰＵ  Ｆが動作状態に復帰し、システムボード１から受け取ったＣＰＵ  ＩＤがＣＰＵ  Ｅ／ＣＰＵ  ＦのＣＰＵ  ＩＤとして設定される。さらにシステムボード３のシステムファームでは、コンテキストの読み戻しが指示され、システムボード３のＣＰＵファームによりコンテキスト読み戻しの処理が行なわれて主記憶ＲＡＭに退避しておいたコンテキストの読み戻しが行なわれる。システムボード３のシステムファームでは、さらに別ＣＰＵやＩＯの復帰指示が行なわれ、別ＣＰＵやＩＯからのリクエストを再び受け付けるべく別ＣＰＵやＩＯの復帰処理が行なわれる。さらにＯＳが復帰する。【０１０８】
以上の第４実施形態によれば、システムボード１の動作をシステムボード３に移すまでの僅かな時間だけＯＳを停止するだけで済み、同期外れが生じた後の停止時間が極めて短時間で済む。【０１０９】
以上説明したように、以上の各実施形態によれば、同期外れ後の停止時間が短時間で済む。また、タイムアウトの時間設定を長時間に設定する必要がなく、汎用の部品が使用可能となる。
【図１】
2010100757.tif 000003
【図２】
2010100757.tif 000004
【図３】
2010100757.tif 000005
【図４】
2010100757.tif 000006
【図５】
2010100757.tif 000007
【図６】
2010100757.tif 000008
【図７】
2010100757.tif 000009
【図８】
2010100757.tif 000010
【図９】
2010100757.tif 000011
【図１０】
2010100757.tif 000012
【図１１】
2010100757.tif 000013
【図１２】
2010100757.tif 000014
【図１３】
2010100757.tif 000015
【国際調査報告】
2010100757.tif 000016
2010100757.tif 000017
2010100757.tif 000018