JPWO2010100757A1 - 演算処理システム、再同期方法、およびファームプログラム - Google Patents
演算処理システム、再同期方法、およびファームプログラム Download PDFInfo
- Publication number
- JPWO2010100757A1 JPWO2010100757A1 JP2011502557A JP2011502557A JPWO2010100757A1 JP WO2010100757 A1 JPWO2010100757 A1 JP WO2010100757A1 JP 2011502557 A JP2011502557 A JP 2011502557A JP 2011502557 A JP2011502557 A JP 2011502557A JP WO2010100757 A1 JPWO2010100757 A1 JP WO2010100757A1
- Authority
- JP
- Japan
- Prior art keywords
- address
- ram
- cpu
- synchronization
- multiplexed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Stored Programmes (AREA)
- Retry When Errors Occur (AREA)
Abstract
本件は、互いに同期してプログラムを実行する多重化CPUが複数組搭載された演算処理システム等に関し、同期外れが生じたときの停止時間を短縮化して信頼性の高い状態に復帰させるために、多重化CPUを互いに同期した状態に立ち上げるシステムファームプログラムが記憶されたROMと、全体として1つのアドレスマップで定義されたRAMと、システムブート時に、ROMに記憶されたファームプログラムをRAMに複写するファーム複写部と、RAMの、複写先のアドレスが格納されるRAMアドレスレジスタと、RAMアドレスレジスタに複写先のアドレスを格納するRAMアドレス格納部と、同期外れを検出する同期外れ検出部と、同期外れが検出されたことを受けてRAMアドレスレジスタを参照し、ROMに記憶されたプログラム読出し用のアドレスを、RAMの複写先のアドレスにすり替えるアドレスすり替え部とを備えた。
Description
本件は、互いに同期してプログラムを実行する多重化CPUが複数組搭載された演算処理システム、演算処理システムにおける再同期方法、および再同期のためのファームプログラムに関する。
連続稼動を要求される基幹サーバシステム等の演算処理システムにおいて、システムの停止は大きな影響があり、ほとんど停止しない高い信頼性が求められる。信頼性向上のため2つのCPUを同期二重化動作させる方法がある。この同期二重化CPUシステムの場合、同期動作中のCPUペアの片方に故障が発生してもシステム動作継続が可能である。さらに、再度CPUの同期動作を復活(再同期化)させることにより二重化同期動作している時間を長くして信頼性を向上させることが望ましい。再同期化時には、システムリブートすると停止時間が長いため、システムリブートを行なわずに再同期化するほうがよい。
図1は、演算処理システムの構成の一例を示すブロック図である。
この図1に示す演算処理システム10は、3台のシステムボード20_1,20_2,20_3を備えている。各システムボード20_1,20_2,20_3は、それぞれ2つのCPU21_A,21_B;21_C,21_D;21_E,21_Fを備えている。また、各システムボード20_1,20_2,20_3は、主記憶RAM22_1,22_2,22_3と、ファームROM23_1,23_2,23_3と、システム制御回路24_1,24_2,24_3とを備えている。
各システムボード20_1,20_2,20_3の、各2つのCPU21_A,21_B;21_C,21_D;21_E,21_Fは、互いに同期して同一の処理を実行する同期二重化CPUである。
また、主記憶RAM22_1,22_2,22_3は、CPU21_A,21_B;21_C,21_D;21_E,21_Fでの処理における作業領域として使用されるランダムアクセスメモリである。これらの主記憶RAM22_1,22_2,22_3は、互いのアドレスが重ならないように、それらの主記憶RAM22_1,22_2,22_3の全体に亘って1つのアドレスマップで定義されている。こうすることにより、どのシステムボード20_1,20_2,20_3でも、他のシステムボードの主記憶RAMの内容を参照することができる。したがって、システムボード20_1,20_2,20_3の相互間でデータの受け渡しを行なうことができる。
また、ファームROM23_1,23_2,23_3には同期二重化CPUを同期した状態に立ち上げるためのファームプログラムが記憶されている。
尚、図1は、システムボード20_1,20_2,20_3は3台示されているがシステムボードの数は3台に制限されるものではない。
また、図1に示す演算処理システム10は、3台のIO制御回路30_1,30_2,30_3とインターコネクト40を備えている。ここでは、これら3台のIO制御回路30_1,30_2,30_3はどのようなIOを制御する制御回路であるかを問うものではない。また、1つの演算処理システム10を構成するIO制御回路の数も3台に制限されるものではなく、システムボードの数と一致している必要もない。またインターコネクト40は、システムボード20_1,20_2,20_3とIO制御回路30_1,30_2,30_3との間の信号伝達を担っている。
この演算処理装置10は、さらにシステム管理装置50を備えている。このシステム管理装置50は、この演算処理システム10の全体の管理を担っている。
図1のように構成された演算処理システムにおいて、システムリブートを行なわずに再同期化する方法を以下に示す。ここでは、システムボード20_1に搭載された2つのCPU21_A,21_Bのうちの一方のCPU21_Aで同期外れが生じたものとして説明する。
システム制御回路24_1にて片系CPU21_Aでのエラーによる冗長(同期外れ)を検出すると、その異常CPU21_Aを切り離す。同期ペアの正常CPU21_Bに対して片系停止を割り込み通知にて通知する。この割り込み通信を受けて再同期のためCPU21_A,21_Bをリセットする。ここで、リセット中のCPU21_A,21_Bは、その他のCPU21_C,21_D,21_E,21_FやIO制御回路30_1,30_2,30_3からの割り込みなどの要求に応答できない。このため、別CPU21_C,21_D,21_E,21_FやIO制御回路30_1,30_2,30_3からの、再同期しようとしているCPU21_A,21_Bへの割り込み等を停止させる。このとき,OS(Operating System)が一時停止することとなる。
正常CPU21_Bにより、再同期化時に最低限必要なCPU内部情報を主記憶RAM22_1へ退避し、およびCPUのキャッシュも主記憶RAM22_1へ退避する。
この処理が完了した時点でCPU21_A,21_Bを同時にリセットして、CPU同期運転を再開させる。リセットされたCPU21_A,21_Bは、ファームROM23_1よりファームを読み出し、ファームを起動した後、主記憶用RAM22_1へ退避した情報をCPU21_A,21_Bへ復元させる。最後に再同期するCPU21_A,21_Bへの割り込み等の停止を解除して,OSを復帰させる。
図2は、上記の再同期化方法におけるタイムシーケンスを示す図である。
ここでは、CPU21_Aを「CPU A」、CPU21_Bを「CPU B」、その他のCPU21_C,21_D,21_E,21_Fを「別CPU」と称している。
CPU Aで同期外れが生じると、CPU Bでファーム処理、すなわち、割込みの禁止や、CPUキャッシュの主記憶RAMへの退避等が行なわれ、別CPUは停止する。
CPU A,CPU Bでは、リセットおよびファーム読み出しが行なわれ、さらに主記憶RAMに退避した情報の復元や割込み禁止の解除等のファーム処理が行なわれる。その後、CPU A,CPU B、他のCPUともに正常動作に復帰する。
ここで、特にファームROMからのファームの読み出しに時間がかかることから、再同期化の完了までに長時間を要する。特にフラッシュROMをファームROMとして採用した場合、フラッシュROMは通常は低速周波数(数十MHz程度)で動作し、かつバス幅が小さいため、フラッシュROMからファームを起動のための読み出し時間が長い。
再同期化を行なっている間はOSが停止するため、システム使用者の作業が一時停止する。またシステム内のパケットを停止させるため、各モジュールのタイムアウトの時間設定に大きい値が必要であるという問題が生じる。すなわち、汎用品のモジュールを使用した場合、このタイムアウト時間が想定以上の値となり、上記の再同期方法を採用できない可能性もある。
再同期時の起動時間を短縮する方法として、起動時にROMからRAMにファームプログラムを移し替えておき、再起動時にはファームプログラムをRAMから読み出すことが提案されている。この提案では、末端のセレクタでRAMとROMとを切り替えている。
しかしながら、通常の同期二重化CPU構成の場合、ファームROMは各CPUや各CPUグループ毎に設けられており、一方、主記憶RAMは、上述したようにそのシステム全体でアドレスの重複を避けた1つのアドレスマップで定義されている。このような構成において、従来提案された、ファームプログラムをRAMに移し替えておく方法を採用しようとすると、1つのROMに対し1対1で専用のRAMを別途用意する必要がありコスト高となる。また、ファームROMは、読み出しだけでなく、エラー情報の保存や構成情報の保持のための書き込みに使われる場合もある。エラー情報等は揮発性のRAMには保存できないため、従来の提案のように末端の部分でROMとRAMを切り替えると、CPU間の排他制御が必要となり、制御が複雑となる。
また従来、同期二重化CPUの一方が故障した場合に二重化を解消してもう一方のCPUのみで運転を行なうことや、現用系の変更データを待機系にコピーし処理の引継ぎを短時間で行なうことが提案されている。しかしながら、一方のCPUのみの運転のままでは信頼性の低下が避けられず、現用系の変更データを待機系にコピーする提案は同期外れとは直接的な関係はない。
特開昭63−268030号公報
特開平8−235125号公報
特開平7−200334号公報
特開2008−140080号公報
本件開示の演算処理システム、再同期方法、およびファームプログラムの課題は、同期して動作する多重化CPUが複数組搭載された演算処理システムにおいて、同期外れが生じたときの停止時間を短縮化して信頼性の高い状態に復帰させることにある。
本件開示の演算処理システムのうちの第1の演算処理システムは、それぞれが2つ以上のCPUからなり互いに同期して処理を実行する多重化CPUを複数組有する演算処理システムであって、
多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームROMと、
全体として1つのアドレスマップで定義された主記憶RAMと、
システムブート時に、ファームROMに記憶されたファームプログラムを主記憶RAMに複写するファーム複写部と、
主記憶RAMの、ファームプログラムが複写された複写先のアドレスが格納されるRAMアドレスレジスタと、
RAMアドレスレジスタに、主記憶RAMの、ファーム複写部によるファームプログラムの複写先のアドレスを格納するRAMアドレス格納部と、
多重化CPUの同期外れを検出する同期外れ検出部と、
同期外れ検出部により同期外れが検出されたことを受けてRAMアドレスレジスタを参照し、ファームROMに記憶されたファームプログラム読出し用のアドレスを、主記憶RAMの、ファームプログラムの複写先のアドレスにすり替えるアドレスすり替え部とを有する演算処理システムである。
多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームROMと、
全体として1つのアドレスマップで定義された主記憶RAMと、
システムブート時に、ファームROMに記憶されたファームプログラムを主記憶RAMに複写するファーム複写部と、
主記憶RAMの、ファームプログラムが複写された複写先のアドレスが格納されるRAMアドレスレジスタと、
RAMアドレスレジスタに、主記憶RAMの、ファーム複写部によるファームプログラムの複写先のアドレスを格納するRAMアドレス格納部と、
多重化CPUの同期外れを検出する同期外れ検出部と、
同期外れ検出部により同期外れが検出されたことを受けてRAMアドレスレジスタを参照し、ファームROMに記憶されたファームプログラム読出し用のアドレスを、主記憶RAMの、ファームプログラムの複写先のアドレスにすり替えるアドレスすり替え部とを有する演算処理システムである。
また、本件開示の演算処理システムのうちの第2の演算処理システムは、それぞれが2つ以上のCPUからなる多重化CPU複数組と、該複数組の多重化CPUを管理するシステム管理装置とを有する演算処理システムであって、
多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームROMと、
全体として1つのアドレスマップで定義された主記憶RAMと、
多重化CPUの同期外れを検出してシステム管理装置に報告する同期外れ検出部と、
システム管理装置からの切離し指示を受けて当該多重化CPUを当該演算処理システムから論理的に切り離す切離し処理部とを有し、
システム管理装置が、上記の複数組の多重化CPUのうちのいずれかの同期外れの報告を受けて、同期外れが発生した第1の多重化CPUのうちの正常動作続行中のCPUに向けて、第1の多重化CPUの当該演算処理システムからの論理的な切り離しを指示する切離し指示部を有する演算処理システムである。
多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームROMと、
全体として1つのアドレスマップで定義された主記憶RAMと、
多重化CPUの同期外れを検出してシステム管理装置に報告する同期外れ検出部と、
システム管理装置からの切離し指示を受けて当該多重化CPUを当該演算処理システムから論理的に切り離す切離し処理部とを有し、
システム管理装置が、上記の複数組の多重化CPUのうちのいずれかの同期外れの報告を受けて、同期外れが発生した第1の多重化CPUのうちの正常動作続行中のCPUに向けて、第1の多重化CPUの当該演算処理システムからの論理的な切り離しを指示する切離し指示部を有する演算処理システムである。
また、本件開示の再同期方法のうちの第1の再同期方法は、それぞれが2つ以上のCPUからなり互いに同期してプログラムを実行する多重化CPUを複数組有する演算処理システムにおける再同期方法であって、
当該演算処理システムが、多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームROMと、全体として1つのアドレスマップで定義された主記憶RAMと、主記憶RAMの、ファームプログラムが複写された複写先のアドレスが格納されるRAMアドレスレジスタとを備えたシステムであり、
システムブート時に、ファームROMに記憶されたファームプログラムを主記憶RAMに複写するファーム複写ステップと、
RAMアドレスレジスタに、主記憶RAMの、ファームプログラムの複写先のアドレスを格納するRAMアドレス格納ステップと、
多重化CPUの同期外れを検出する同期外れ検出ステップと、
同期外れ検出ステップにおいて同期外れが検出されたことを受けてRAMアドレスレジスタを参照し、ファームROMに記憶されたファームプログラム読出し用のアドレスを、主記憶RAMの、ファームプログラムの複写先のアドレスにすり替えるアドレスすり替えステップとを有する再同期方法である。
当該演算処理システムが、多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームROMと、全体として1つのアドレスマップで定義された主記憶RAMと、主記憶RAMの、ファームプログラムが複写された複写先のアドレスが格納されるRAMアドレスレジスタとを備えたシステムであり、
システムブート時に、ファームROMに記憶されたファームプログラムを主記憶RAMに複写するファーム複写ステップと、
RAMアドレスレジスタに、主記憶RAMの、ファームプログラムの複写先のアドレスを格納するRAMアドレス格納ステップと、
多重化CPUの同期外れを検出する同期外れ検出ステップと、
同期外れ検出ステップにおいて同期外れが検出されたことを受けてRAMアドレスレジスタを参照し、ファームROMに記憶されたファームプログラム読出し用のアドレスを、主記憶RAMの、ファームプログラムの複写先のアドレスにすり替えるアドレスすり替えステップとを有する再同期方法である。
また、本件開示の再同期方法のうちの第2の再同期方法は、
それぞれが2つ以上のCPUからなり、互いに同期してプログラムを実行する多重化CPUを複数組有するとともに、それら複数組の多重化CPUを管理するシステム管理装置を備えた演算処理システムにおける再同期方法であって、
当該演算処理システムが、多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームROMと、全体として1つのアドレスマップで定義された主記憶RAMとを備えたシステムであり、
多重化CPUの同期外れを検出してシステム管理装置に報告する同期外れ検出ステップと、
システム管理装置で実行される、上記複数組の多重化CPUのうちのいずれかの同期外れの報告を受けて、同期外れが発生した第1の多重化CPUのうちの正常動作続行中のCPUに向けて、第1の多重化CPUの当該演算処理システムからの論理的な切り離しを指示する切離し指示ステップと、
第1の多重化CPUのうちの正常動作実行中のCPUで実行される、システム管理装置からの切離し指示を受けて第1の多重化CPUを当該演算処理システムから論理的に切離す切離し処理ステップとを有する再同期方法である。
それぞれが2つ以上のCPUからなり、互いに同期してプログラムを実行する多重化CPUを複数組有するとともに、それら複数組の多重化CPUを管理するシステム管理装置を備えた演算処理システムにおける再同期方法であって、
当該演算処理システムが、多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームROMと、全体として1つのアドレスマップで定義された主記憶RAMとを備えたシステムであり、
多重化CPUの同期外れを検出してシステム管理装置に報告する同期外れ検出ステップと、
システム管理装置で実行される、上記複数組の多重化CPUのうちのいずれかの同期外れの報告を受けて、同期外れが発生した第1の多重化CPUのうちの正常動作続行中のCPUに向けて、第1の多重化CPUの当該演算処理システムからの論理的な切り離しを指示する切離し指示ステップと、
第1の多重化CPUのうちの正常動作実行中のCPUで実行される、システム管理装置からの切離し指示を受けて第1の多重化CPUを当該演算処理システムから論理的に切離す切離し処理ステップとを有する再同期方法である。
さらに、本件開示のファームプログラムのうちの第1のファームプログラムは、それぞれが2つ以上のCPUからなり互いに同期してプログラムを実行する多重化CPUを複数組有する演算処理システムで実行されるファームプログラムであって、
当該演算処理システムが、多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームROMと、全体として1つのアドレスマップで定義された主記憶RAMと、主記憶RAMの、ファームプログラムが複写された複写先のアドレスが格納されるRAMアドレスレジスタとを備えたシステムであり、当該演算処理システムを、
システムブート時に、ファームROMに記憶されたファームプログラムを主記憶RAMに複写するファーム複写部と、
RAMアドレスレジスタに、主記憶RAMの、ファーム複写部によるファームプログラムの複写先のアドレスを格納するRAMアドレス格納部と、
多重化CPUの同期外れを検出する同期外れ検出部と、
同期外れ検出部により同期外れが検出されたことを受けてRAMアドレスレジスタを参照し、ファームROMに記憶されたファームプログラム読出し用のアドレスを、主記憶RAMの、該ファームプログラムの複写先のアドレスにすり替えるアドレスすり替え部とを有する演算処理システムとして動作させるファームプログラムである。
当該演算処理システムが、多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームROMと、全体として1つのアドレスマップで定義された主記憶RAMと、主記憶RAMの、ファームプログラムが複写された複写先のアドレスが格納されるRAMアドレスレジスタとを備えたシステムであり、当該演算処理システムを、
システムブート時に、ファームROMに記憶されたファームプログラムを主記憶RAMに複写するファーム複写部と、
RAMアドレスレジスタに、主記憶RAMの、ファーム複写部によるファームプログラムの複写先のアドレスを格納するRAMアドレス格納部と、
多重化CPUの同期外れを検出する同期外れ検出部と、
同期外れ検出部により同期外れが検出されたことを受けてRAMアドレスレジスタを参照し、ファームROMに記憶されたファームプログラム読出し用のアドレスを、主記憶RAMの、該ファームプログラムの複写先のアドレスにすり替えるアドレスすり替え部とを有する演算処理システムとして動作させるファームプログラムである。
さらに、本件開示のシステムファームプログラムのうちの第2のファームプログラムは、それぞれが2つ以上のCPUからなり互いに同期してプログラムを実行する多重化CPUを複数組有するとともに、それら複数組の多重化CPUを管理するシステム管理装置を備えた演算処理システムで実行されるファームプログラムであって、
当該演算処理システムが、多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームROMと、全体として1つのアドレスマップで定義された主記憶RAMとを備えたシステムであり、当該演算処理システムを、
多重化CPUの同期外れを検出してシステム管理装置に報告する同期外れ検出部と、
システム管理装置からの切離し指示を受けて当該多重化CPUを当該演算処理システムから論理的に切離す切離し処理部とを有する演算処理システムとして動作させるファームプログラムである。
当該演算処理システムが、多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたファームROMと、全体として1つのアドレスマップで定義された主記憶RAMとを備えたシステムであり、当該演算処理システムを、
多重化CPUの同期外れを検出してシステム管理装置に報告する同期外れ検出部と、
システム管理装置からの切離し指示を受けて当該多重化CPUを当該演算処理システムから論理的に切離す切離し処理部とを有する演算処理システムとして動作させるファームプログラムである。
本件開示の第1の演算処理システム、第1の再同期方法、および第1のファームプログラムによれば、大きなコスト上昇を伴わずに同期外れを速やかに回復させ、これによりシステム停止時間を短縮化するとともに信頼性の高い状態に速やかに復帰させることができる。
また、本件開示の第2の演算処理システム、第2の再同期方法、および第2のファームプログラムによれば、同期外れが生じた多重化CPUで実行されていた処理が他の多重化CPUに移行される。また同期外れが生じた多重化CPUは演算処理システムから論理的に切り離される。これによりシステム停止時間を短縮化し、さらに信頼性の高い状態に復帰させることができる。
以下、本件の実施形態について説明する。尚、以下に示す第1実施形態においても、全体構成図としては図1をそのまま採用する。ただし、シスステム制御回路24_1,24_2,24_3の内部構成は多少異なっている。
図3は、本件の第1実施形態の演算処理システムの構成を示すブロック図である。ただし、この図3では、図示の繁雑さを避けるため、図1に示す3台のシステムボードのうちの2台のシステムボードについて示している。また、それら2台のシステムボードを構成する2つのシステム制御回路については再同期に必要な構成要素のみを示している。さらに、ここでは、図1に示すインターコネクト40の図示は省略し、2つのシステム制御回路24_1,24_2のそれぞれに含まれるスレーブリクエスト処理回路は、双方を含めて1つのブロックで示してある。
この図3には、図1において各システムボード20_1,20_2ごとにそれぞれ1つのブロックで示すシステム制御回路24_1,24_2の構成要素として、二重化処理部241_1,241_2が示されている。また、システム制御回路24_1,24_2の構成要素として、ROMアドレス検出回路242_1,242_2およびRAMアドレスレジスタ243_1,243_2も示されている。さらに、その構成要素として、変換許可フラグレジスタ244_1,244_2、ゲート回路345_1,345_2、および選択回路346_1,346_2も示されている。また、2つのシステム制御回路24_1,24_2について1つのブロックに統合されたスレーブリクエスト処理回路247も示されている。
二重化処理部241_1,241_2は、各2つのCPU21_A,21_B;21_C,21_Dの二重化同期処理に関する動作を担っている。すなわちこの二重化処理部241_1,241_2は、各2つのCPUのバスインタフェース、および各2つのCPUから出力されるアドレスのうちの一方のCPUからのアドレスを選択するスイッチの役割りを担っている。さらにこの二重化処理部241_1,241_2は、各2つのCPUの同期外れの検出等の処理も担っている。
また、ROMアドレス検出回路242_1,242_2は、二重化処理部241_1,241_2から出力されてきたアドレスがファームROM23_1,23_2のファームプログラム格納アドレスと一致するか否かを検出する回路である。
また、RAMアドレスレジスタ243_1,243_2は、ファームROM23_1,23_2内のファームプログラムが主記憶RAM22_1,22_2に複写されたときの、その複写先のアドレスが格納されるレジスタである。詳細は後述する。
また、変換許可フラグレジスタ244_1,244_2には、ファームROMのアドレスを主記憶RAMのアドレスに変換することを許可する変換許可フラグが格納される。この変換許可フラグレジスタ244_1,244_2は、本件の複写フラグレジスタの一例に相当する。
ゲート回路245_1,245_2は以下の2つの条件(a),(b)を同時に満足するときに、主記憶RAM22_1,22_2のアドレスに変換することをRAMアドレス選択信号を出力する。
(a)変換許可フラグレジスタ244_1,244_2に変換許可フラグが格納されること。
(b)ROMアドレス検出回路242_1,242_2でファームROM23_1,23_2内のファームプログラムの格納アドレスが検出されること。
(a)変換許可フラグレジスタ244_1,244_2に変換許可フラグが格納されること。
(b)ROMアドレス検出回路242_1,242_2でファームROM23_1,23_2内のファームプログラムの格納アドレスが検出されること。
選択回路246_1,246_2は二重化処理部241_1,241_2から受け取ったアドレスを通常はそのまま出力する。ただし、ゲート回路245_1,245_2からのRAMアドレス選択信号を受けると、RAMアドレスレジスタ243_1,243_2に格納されている主記憶RAM22_1,22_2のアドレスを出力する。
ここで、この演算処理システムに電源が投入された、初回の初期状態への立ち上げの際は、変換許可フラグレジスタ244_1,244_2には変換許可フラグは格納されておらずリセットされている。このため、ROMアドレス検出回路242_1,242_2でファームROM23_1,23_2のファームプログラム格納アドレスが検出されても、ゲート回路245_1,245_2からはRAMアドレス選択信号は出力されない。ここで、ファームROM23_1,23_2には互いに同一のファームプログラムが記憶されている。したがって電源投入の際は、いずれか1つのファームROMからファームプログラムが読み出される。ここではファームROM23_1からファームプログラムが読み出されるものとする。二重化処理部241_1からファームROM23_1のアドレスが出力されると、そのファームROM23_1のアドレスは選択回路246_1からそのまま出力され、スレーブリクスト処理回路247を経由してファームROM23_1に入力される。これにより、ファームROM23_1からファームプログラムが読み出される。このファームプログラムにより、各2つのCPU21_A,21_B;21_C,21_Dでは同期化を含む初期設定が行なわれる。この初期設定の際、ファームプログラムの作用により、ファームROM23_1から読み出されたファームプログラムが主記憶RAM22_1にコピーされる。またその主記憶RAM22_1のコピー先のRAMアドレスが各RAMアドレスレジスタ243_1,243_2に格納される。さらに、各変換許可フラグレジスタ244_1,244_2に変換許可フラグがセットされる。
尚、上記の通り、ファームROM23_1,23_2の双方に同じファームプログラムが格納されているためいずれか1つのファームROMからファームプログラムを読み出せばよい。また、どのシステムボードで同期外れが生じた場合であっても、再同期にあたり、コピー先のRAMからファームプログラムを読み出せばよく、コピー先もいずれか1つのRAMで十分である。
ただし、コピー先のRAMアドレスは全てのRAMアドレスレジスタ243_1,243_2に格納され、変換許可フラグのセットも全ての変換許可フラグレジスタ244_1,244_2に対して行なわれる。
このような初期設定が行なわれた後、各二重化CPUでは二重化動作による各種処理が実行される。
処理の実行中において、CPU21_Aで同期外れが発生したものとする。すると、その同期外れが二重化処理部241_1で検出される。この場合、もう一方のCPU21_Bの主動により、図2を参照して説明したようにして再同期化処理が実行される。この再同期化処理にあたり、ファームROM23_1からファームプログラムを読み出そうとしてCPU21_BからファームROM23_1のファームプログラム格納領域のアドレスが出力され、二重化処理部241_1ではCPU21_Bから出力されたアドレスが出力される。このとき、ROMアドレス検出回路242_1では二重化処理部241_1からファームROM23_1のファームプログラム格納アドレスが出力されたことが検出される。また、変換許可フラグレジスタ244_1には変換許可フラグがセットされている。このため、ゲート回路245_1からRAMアドレス選択信号が出力される。選択回路246_1では、そのRAMアドレス選択信号を受けて、二重化処理部241_1から出力されたファームROM23_1のアドレスに代えて、RAMアドレスレジスタ243_1に格納されている主記憶RAM22_1のアドレスを出力する。すなわち、CPU21_BはファームROM23_1のアドレスを出力し選択回路246_1で主記憶RAM22_1のアドレスにすり替えられて、その主記憶RAM22_1のアドレスが出力される。このため、主記憶RAM22_1にコピーされているファームプログラムが読み出される。こうして、CPU21_A,21_Bは、主記憶RAM22_1から読み出されたファームプログラムにより再同期化処理が行なわれる。
通常、ファームROM23_1よりも主記憶RAM22_1の方がアクセスの速度が格段に速く、したがって図2に示す「ファーム読み出し」に要する時間が大幅に短縮されることとなる。このため高速な再同期が可能となり、信頼度の高い状態に短時間で復帰することができる。
また、この図3に示す構成の場合、ROMと1対1に対応するRAMを別途備えるような大きなコストアップは不要であり、従来の回路構成に僅かな変更を加えるだけで高速な再同期を実現している。
図4は、本件の第2実施形態の演算処理システムの構成を示すブロック図である。ただし、この第2実施形態も全体構成は図1と同じであるが、図示の繁雑さを回避するために、図4では1つのシステムボード20_1についてのみその構成を示してある。
図4に示すシステムボード20_1を構成するシステム制御回路24_1には、2つのCPU21_A,21_Bのそれぞれに対応する2つのCPUバスインタフェース241a,241bが備えられている。またここには、2つのバスエラー検出器241c,241dと、エラー管理部241eと、スイッチ部241fが備えられている。CPUバスインタフェース241a,241b、バスエラー検出器241c,241d、エラー管理部241e、スイッチ241fは、それらを合わせたものが図3に示す二重化処理部241_1,241_2に対応する。各CPU21_A,21_BからCPUバスインターフェイス241a,241bを経由して出力されてきたアドレスやデータのエラーすなわち同期外れがバスエラー検出器241c,241dで検出される。このバスエラー検出器241c,241dでの検出結果は、エラー管理部241eに報告される。エラー管理部241eは、2つのCPU21A,21Bが同期して動作しているときは、それら2つのCPU21_A,21_Bのうちのいずれか任意の一方(例えばCPU21_A)から出力されたアドレスおよびデータが出力されるようにスイッチ241fを切り替えている。
ここで、周期外れが検出されると、エラー管理部241eは、周期外れが生じたCPU(例えばCPU21_A)ではない、もう一方のCPU(例えばCPU21_B)から出力されたアドレスおよびデータが出力されるようにスイッチ241fを切り替える。
スイッチ241fから出力されたアドレスは、先に到達したアドレスやデータ(ここではアドレス)を先に出力するFIFO(first−in first−out)レジスタで構成されたアドレスキュー251に並べられる。その後、インターコネクト40を経由して、このシステムボード20_1が管轄する主記憶RAM22_1,ファームROM23_1、又は、レジスタ等のアドレスのときは、スレーブリクエスト処理回路247_1に入力される。このスレーブリクエスト回路247_1では、そのアドレスが主記憶RAM22_1のアドレスであるか、ファームROM23_1のアドレスであるか、又はレジスタ等のアドレスであるかが判定される。主記憶RAM22_1のアドレスであったときは、そのアドレスが、主記憶RAM22_1へのデータ書込み用の命令であるか主記憶RAM22_1からの読出し用の命令であるかに応じて、それぞれ、FIFOで構成されたバッファ247b又はバッファ247aに格納される。または、スレーブ処理回路247_1でファームROM23_1のアドレスであることが判定されると、そのアドレスがデータ書込み用の命令であるか、データ読出し用の命令であるかに応じて、それぞれバッファ247c、バッファ247dに格納される。ファームROM23_1は読出し専用ではなく、エラーが発生したときのログやこのシステムの情報等の書き込みも行なわれるため、書込用の構成も備えられている。
また、レジスタ等を指し示すアドレスであったときは、その命令が書込み用であるか読出し用であるかに応じて書込み用のバッファ247f又は読出し用のバッファ247eに格納される。
また、スイッチ241fから書込み用のデータが出力されると、そのデータは、FIFOで構成されたライトデータバッファ252に一旦格納される。その後インターコネクト40を経由し、主記憶RAM22_1に書き込まれるべきデータの場合はバッファ247bに格納される。また、それと同様に、ファームROM23_1に書き込まれるべきデータの場合はバッファ247cに格納され、レジスタ等に格納されるべきデータの場合はバッファ247eに格納される。
バッファ247bにデータとアドレスが揃うと、RAMコントローラ261により、主記憶RAM22_1の、そのアドレスに、そのデータが書き込まれる。またこれと同時に、バッファ247cにデータとアドレスが揃うと、ROMコントローラ262により、ファームROM23_1の、そのアドレスに、そのデータが書き込まれる。さらに、バッファ247cにデータとアドレスが揃うと、レジスタRW制御回路263により、そのアドレスにより特定されるバッファ等に、そのデータが書き込まれる。
また、スレーブリクエスト処理回路247_1によりバッファ247aに読出し用のアドレスが格納されると、RAMコントローラ261には、主記憶RAM22_1の、そのアドレスからデータが読み出される。読み出されたデータは、一旦バッファ247aに格納され、その後インターコネクト40を経由し、リードデータバッファ253に一時的に格納される。その後、CPUバスインタフェース241a,241bを経由してCPU21_A,21_Bに伝達される。またこれと同様に、バッファ247dに読出しアドレスが格納されると、ROMコントローラ262によりファームROM23_1の、その読出しアドレスからデータが読み出される。読み出されたデータは、バッファ247d、インターコネクト40、リードデータバッファ253、CPUバスインタフェース241a,241bを経由してCPU21_A,21_Bに伝達される。これと同様に、バッファ247fにアドレスが格納されると、レジスタRW制御回路263により、そのバッファ247fに格納されたアドレスにより特定されるレジスタ等からデータが読み出される。この読み出されたデータは、バッファ247f、インターコネクト40、リードデータバッファ253、およびCPUバスインタフェース241a,241bを経由してCPU21_A,21_Bに伝えられる。
また、RAMベースアドレスレジスタ264は、図3に示す第1実施形態のRAMアドレスレジスタ243_1に対応する構成要素である。電源オン時の同期化立ち上げ時に、ファームROM23_1に格納されているファームプログラムが主記憶RAM22_1にコピーされるが、RAMベースアドレスレジスタ264には、主記憶RAM22_1の、そのコピー先のアドレスが格納される。ただし、ファームROM23_1のアドレスであるか、主記憶RAM22_1のアドレスであるかは、アドレスの上位側のビットで区別されており、RAMベースアドレスレジスタ264には、主記憶RAM22_1の上位ビット側のアドレスが格納される。
また、ここには、ROMベースアドレス記憶部265に記憶されたROMベースアドレスとスイッチ241fから出力されたアドレスとの一致不一致を判定するROMアドレス検出回路266が備えられている。このROMアドレス検出回路266は、図3に示す第1実施形態におけるROMアドレス検出回路242_1に対応する構成要素である。ただし、図4の第2実施形態におけるROMベースアドレス記憶部265には、ファームROM23_1の、ファームプログラム格納領域を指し示すアドレスのうちの上位ビット側の部分のみ記憶されている。したがって、ROMアドレス検出部266では、ファームROM23_1の上位ビット側のアドレスについて一致不一致を判定している。
アドレスキュー251には、書込みアドレスや読出しアドレスが格納されるが、アドレスのうちの下位ビット側についてはスイッチ241fから出力されたアドレスの下位ビット側からそのまま格納される。上位ビット側については、セレクタ268による選択に応じて、スイッチ241fから出力されたアドレスのうちの上位ビット側か、あるいはRAMベースアドレスレジスタ264に格納されているRAM2_1のアドレスのうちの上位ビット側が出力される。アドレスキュー251にアドレスが格納された後の動作は、前述の通りである。
また複写フラグレジスタ269は、このシステムボード20_1のリセット時にリセットされるレジスタである。この複写フラグレジスタ269には、ファームROM23_1内のファームプログラムがRAM22_1にコピーされコピー先のアドレスがRAMベースアドレスレジスタ264に格納された段階で複写フラグがセットされる。
アドレスすり替え許可フラグレジスタ271には、このシステムボード20_1のリセット時に、ANDゲート270により複写フラグレジスタ267に複写フラグが格納されているという判定を受けてアドレスすり替え許可フラグがセットされる。すなわち、このアドレスすり替え許可フラグレジスタ271には2つのCPU21_A,21_Bの同期が外れた後の再同期化のためのリセット時にアドレスすり替え許可フラグがセットされる。
再同期リセット制御部272には、再同期リセットが要請される。再同期リセット制御部272は、再同期リセットの要請を受けてCPU21_A,CPU_21Bにリセットを指示する。すると、CPU21_A,21_Bは、ファームプログラムの読出し、実行を含む、再同期のためのリセット処理が行なわれる。この再同期リセット処理では、スイッチ241fから出力されてきたアドレスがファームROM23_1の、ファームプログラムが記憶されたアドレスであったときに主記憶RAM22_1の、ファームプログラムのコピー先のアドレスにすり替えられる。したがって、主記憶RAM22_1からファームプログラムが高速に読み出され、短時間で再同期化が行なわれる。
図5は、図4に示す第2実施形態におけるファームおよび回路の動作シーケンスを示す図である。
ここでは、「ハードウエア」、「OS」、「CPUファーム」、および「システムファーム」とに分けて各部の動作を示している。ここで、「CPUファーム」、および「システムファーム」は、いずれもファームROMに記憶されているファームプログラムの構成要素である。
ここでは、先ず、システムファームにより、この演算処理システム全体に亘る複数のシステムボード上の複数の主記憶RAM22_1,22_2,22_3の全体に亘り、アドレスが重複しないように1つのアドレスマップを作成して各主記憶RAM22_1,22_2,22_3にアドレスが設定される。
次に、システムファームでは、ファームプログラムの主記憶RAMへのコピーの制御が行なわれ、ハードウエア上ではファームROM上のファームプログラムが主記憶RAMにコピーされる。ここで、ファームプログラムの主記憶RAMへのコピーは、第1実施形態でも説明した通り、各システムボードに備えられている主記憶RAMのうちのいずれか1つの主記憶RAMにコピーすれば足りる。
このコピーが終了した後、「レジスタ設定」が行われる。すなわち、ここでは、RAMベースアドレスレジスタ264(図4参照)に主記憶RAMの、ファームプログラムのコピー先のアドレスが格納され、複写フラグレジスタ269(図4参照)に複写フラグがセットされる。
CPU21_A(CPU A)でエラーが発生すると、プラットフォーム割り込みが入り、CPU21_B(CPU B)によりOSの一時停止処理が行なわれる。次いで、プラットフォーム割り込みが入ったことがCPUファームに通知され、そのCPUファームからシステムファームにエラー処理の要求が渡され、システムファームでエラー処理が行なわれる。ここでは同期外れによるエラーが発生したことを認識して二重化復帰すべきことが判断される。この二重化復帰にあたっては、同期外れを生じたCPU Aを含む二重化CPU(CPU A/CPU B)への、別CPUやIOからのアクセス抑止指示がなされて、ハードウエア上でアクセス抑止がなされる。さらに、システムファームにはCPU A/CPU Bのキャッシュ上のコンテキストの保存指示がなされ、CPUファームではコンテキスト保存動作が制御され、主記憶RAM上にコンテキストが保存される。このコンテキストは、CPU A/CPU Bで処理中であった処理を再同期化後において続行するために必要となるデータである。
次に、システムファームによりCPUのリセットが指示され、CPU A/CPU Bの再同期化リセット処理が行なわれる。この再同期化リセット処理においては、主記憶RAMからCPUファームが読み出されてCPUが設定され、主記憶RAMからさらにシステムファームが読み出されてシステム設定が行なわれる。このシステム設定時に同期外れエラーであったことが確認されてコンテキストの読み戻しが指示される。CPUファームではその指示を受けてコンテキストの読み戻し処理が行なわれ、ハードウエア上では主記憶RAM上に退避しておいたコンテキストの読み戻しが行なわれる。次いで、システム制御回路用ファームでは、他からのアクセス抑止の解除が指示され、ハードウエア上で別CPUやIOからのアクセスの抑止解除動作が行なわれる。次いで、システムファームによりOS復帰要求がなされCPUファームによるエラー処理を介してOSがプラットホーム割り込みから復帰する。
これにより、CPU A/CPU Bが再び同期化され、同期外れが発生する前に行なっていた処理が続行される。
次に本件の第3実施形態を説明する。
この第3実施形態および後述する第4実施形態では、CPUに同期外れが発生したときに、再同期化のためのリセットを行なう前にそのCPUで実行していた処理を続行させるための情報を他のCPUに移動させる処理が行なわれる。この処理により、他のCPUに処理の続行を委ねる処理が行なわれる。再同期化はその情報を他のCPUに移動させた後に行えばよく、OSを極く短い時間停止させるだけで、信頼度の高い状態に復帰させることができる。
図6は、本件の第3実施形態の演算処理システムの構成を示すブロック図である。
この図6では、以下の説明のために、ファームウェアやOS・アプリケーションを取り出して明示的に示してある。これらのファームウェアやOS・アプリケーションはCPUで実行されることによって以下の作用をなすプログラムである。
この図6に示す第3実施形態の演算処理システムは、1つのシステムボードに2組の二重化CPU21_A,21_B;21_C,21_Dが備えられている。
ここでは、CPU21_B(CPU B)で同期外れが発生したものとする。その場合、以下の処理が実行される。
1)二重化CPUの組ごとに設けられた二重化処理部241_1,241_2のうちの、同期外れが生じたCPU Bを含む二重化CPUを管轄する二重化処理部241_1でCPU Bの同期外れが検出される。二重化処理部241_1でCPU Bの同期外れが検出されるとエラー処理部274にエラー通知がなされる。二重化処理部241_1は、CPU Bの同期外れを検出した後はCPU Aのアドレスを選択するように切り替え、CPU Aのみで処理を継続させる。
2)エラー処理部274は二重化されたCPUの片側が縮退されたことを表わすビットをセットすることによって、システム管理装置50に割り込みをあげる。システム管理装置50はセットされたビットにより二重化されたCPUの片側が縮退したことを認識する。
3)システム管理装置50はシステム制御回路24の割り込みレジスタ272をセットする。
4)システム制御回路24は割り込みレジスタ272のセットによりCPUへ割り込みを行う。
5)CPU Aはこの割り込みを受けてファームウエアを呼び出す。
6)ファームウエアはCPU A/CPU Bをこの演算処理システムから切り離すための処理を行う。
7)ファームウエアはCPU A/CPU Bを切り離すことをOSに通知する。
8)ファームウエアはシステム制御回路24のCPUリセットレジスタ271をセットする。
9)CPUリセットレジスタ271は、このセットを受けてCPU A/CPU Bをリセットする。
10)CPU A/CPU Bは、このリセットを受けて初期設定を行う。
11)CPU A/CPU Bは、初期設定が完了したらシステム制御回路の割り込みレジスタ273をセットする。
12)システム制御回路24からシステム管理装置50に割り込みをあげ、リセットが完了したことを通知する。
13)システム管理装置は割り込みレジスタ275をセットする。
14)割り込みレジスタ275は、このセットを受けてCPU C/CPU Dに割り込みをあげ、CPU C/CPU Dは、この割り込みを受けてにCPU A/CPU Bの資源が増えたことをOSに通知する。
以上の方法を実行することにより,OSの停止はCPU A/CPU Bを切り離すのに要する短時間で済み、再同期中のOS停止時間が短縮される。
尚、この第3実施形態の処理はOSやアプリケーションがCPUの動的削除や動的追加をサポートする機能を有する場合に有効である。この機能をサポートしない場合は以下の第4実施形態で示すような、CPUの動的交換を行うことが有効である。
図7は、本件の第4実施形態の演算処理システムの構成を示すブロック図である。
この図7に示す演算処理システムは、このブロック図は、図1に示す演算処理システムと同様であり、図1と同一の符号を付して示す。図1との相違点は、3台のシステムボード20_1,20_2,20_3のうちの1台のシステムボード20_3がこの図7に示す初期段階においてはこの演算処理システム10から論理的に切り離されたオフラインの状態にある点である。また、この図7では、後の説明のためにOSを明示的に示している。このOSは、CPUで実行されることによって、以下の説明に沿う動作を行なうものである。
また、図8〜図13は、図7に示す第4実施形態の演算処理システムにおける、同期外れが生じた際の動作を順に示す図である。
図8に示すようにCPU Bでエラー(同期外れ)が発生したものとする。このとき、以下の各動作が実行される。
1)同期外れのCPU Bを管轄するシステム制御回路24_1でCPU Bのエラー(同期外れ)が検出され、システム管理装置50にエラー発生の報告がなされる(図8)。
2)システム管理装置50は、エラー発生の報告を受けるとシステムボード20_3を起動する(図8)。
3)システム管理装置50は、システムボード20_3の起動が完了すると、同期外れのCPU Bとペアになっている正常動作中のCPUであるCPU Aに割り込みをあげる。CPU Aは、別CPUやIOからのリクエストが一時的に停止されるように各制御回路を設定する。この時点でOSが停止する(図9)。
4)CPU AのOS再開に必要な情報をシステムボード20_1の主記憶RAM22_1経由にてシステムボード20_3のCPU E/CPU Fにコピーする。コピーが済むと、CPU AはCPU Aを認識するためのCPU IDをCPU E/CPU Fに渡す。これと交換にCPU_Aは、CPU E/CPU FからそれまでCPU E/CPU FのIDとして使用されていたCPU IDを受け取る。さらに、IOから交換後のCPUに正しくパケットを届けるため、新たなCPU IDの設定を各IO制御回路30_1,30_2,30_3に反映させる(図10)。
5)3)で行なった、別CPUとIOからのリクエストの発行停止設定を解除し、OSを復帰させる(図11)。
6)5)が完了した後、システム管理装置50に割り込みをあげて、システムボード20_1を論理的に切り離す(図12)。システムボード20_1では、その後リセット処理が行なわれ、又は、このシステムボード20_1の交換が行なわれる。
この第3実施形態の場合、OSの停止は、4)〜5)の間、すなわち極めて短時間だけで済むことになる。
図13は、図8〜図12に示す第4実施形態の演算処理システムの各部の動作シーケンスを示す図である。ここでは、図8に示すシステムボード20_1、およびシステムボード20_3を、それぞれシステムボード1,およびシステムボード3と表記している。
ハードウエア上でシステムボード1のCPU Bで同期外れエラーが発生したことが検出されると、OSにプラットフォーム割り込みが入り、CPU AによりOSの一時停止処理がなされる。さらに、システムボード1のCPUファームにプラットフォームのエラー処理があげられ、さらにシステムボード1のシステムファームによりエラー処理が行なわれる。このエラー処理では、システム制御装置50に、エラーの報告がなされてシステム制御装置50によりボード交換制御が行なわれる。すなわち、ここでは、それまで待機していたシステムボード3が起動され、CPUファームによりCPU E/CPU Fの初期設定が行なわれ、さらにシステムファームによりシステムボード3上のシステムの初期設定が行なわれる。システムボード3は、この初期設定の後、暫くの間ループ状態(ウエイト状態)となる。システム制御装置50は、さらに割り込みレジスタに割り込みフラグをセットする。すると、CPU Aによりそのフラグのセットによるプラットフォーム割込みが受け付けられ、OSが一時停止する。システムボード1のCPUファームではそのプラットフォーム割込みによる割込み処理が行なわれ、その処理がシステムファームに受け継がれてシステムファームにより別CPUやIOの停止が指示される。ハードウエア上では、この指示を受けて、別CPUやIOからのリクエストが停止される。また、システムボード1のシステムファームではコンテキスト保存処理が行なわれ、主記憶RAMにコンテキストが保存される。さらに、システムボード1のシステムファームでは、CPU AとCPU E/CPU Fとの間でのCPU IDの交換が行なわれ、各制御回路内の割り込み宛先設定レジスタに新たなCPU IDが設定される。また、システムボード1のCPUファームにより、システムボード3から受け取ったCPU IDが設定され、その後システムボード1は、停止し、交換/待機等がなされる。
また、システムボード3では、ループ状態(ウエイト状態)にあったCPU E/CPU Fが動作状態に復帰し、システムボード1から受け取ったCPU IDがCPU E/CPU FのCPU IDとして設定される。さらにシステムボード3のシステムファームでは、コンテキストの読み戻しが指示され、システムボード3のCPUファームによりコンテキスト読み戻しの処理が行なわれて主記憶RAMに退避しておいたコンテキストの読み戻しが行なわれる。システムボード3のシステムファームでは、さらに別CPUやIOの復帰指示が行なわれ、別CPUやIOからのリクエストを再び受け付けるべく別CPUやIOの復帰処理が行なわれる。さらにOSが復帰する。
以上の第4実施形態によれば、システムボード1の動作をシステムボード3に移すまでの僅かな時間だけOSを停止するだけで済み、同期外れが生じた後の停止時間が極めて短時間で済む。
以上説明したように、以上の各実施形態によれば、同期外れ後の停止時間が短時間で済む。また、タイムアウトの時間設定を長時間に設定する必要がなく、汎用の部品が使用可能となる。
Claims (12)
- それぞれが2つ以上のCPUからなり互いに同期して処理を実行する多重化CPUを複数組有する演算処理システムであって、
前記多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたROMと、
全体として1つのアドレスマップで定義されたRAMと、
システムブート時に、前記ROMに記憶されたファームプログラムを前記RAMに複写するファーム複写部と、
前記RAMの、ファームプログラムが複写された複写先のアドレスが格納されるRAMアドレスレジスタと、
前記RAMアドレスレジスタに、前記RAMの、前記ファーム複写部によるファームプログラムの複写先のアドレスを格納するRAMアドレス格納部と、
前記多重化CPUの同期外れを検出する同期外れ検出部と、
前記同期外れ検出部により同期外れが検出されたことを受けて前記RAMアドレスレジスタを参照し、前記ROMに記憶されたファームプログラム読出し用のアドレスを、前記RAMの、該ファームプログラムの複写先のアドレスにすり替えるアドレスすり替え部とを有することを特徴とする演算処理システム。 - 前記RAMにファームプログラムが複写されたことを示す複写フラグが格納される複写フラグレジスタと、
前記ファーム複写部により前記RAMにファームプログラムが複写されたことを受けて前記複写フラグレジスタに前記複写フラグを格納する複写フラグ格納部とを有し、
前記アドレスすり替え部は、前記同期外れ検出部により同期外れが検出されたことを受けて前記複写フラグレジスタを参照し、該複写フラグレジスタに前記複写フラグが格納されていた場合に、前記ROMに記憶されたファームプログラム読出し用のアドレスを、前記RAMの、該ファームプログラムの複写先のアドレスにすり替えるものであることを特徴とする請求項1記載の演算処理システム。 - 前記同期外れ検出部により同期外れが検出されたことを受け、再同期後の動作継続に必要なコンテキストを前記ファームプログラムの読出しに先立って前記RAMに退避させるコンテキスト退避部と、
前記ファームプログラムの読出し後において、前記RAMに退避しておいたコンテキストを読み戻すコンテキスト読戻部とをさらに有することを特徴とする請求項1又は2記載の演算処理システム。 - それぞれが2つ以上のCPUからなる多重化CPU複数組と、該複数組の多重化CPUを管理するシステム管理装置とを有する演算処理システムであって、
前記多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたROMと、
全体として1つのアドレスマップで定義されたRAMと、
前記多重化CPUの同期外れを検出して前記システム管理装置に報告する同期外れ検出部と、
前記システム管理装置からの切離し指示を受けて当該多重化CPUを当該演算処理システムから論理的に切り離す切離し処理部とを有し、
前記システム管理装置が、前記複数組の多重化CPUのうちのいずれかの同期外れの報告を受けて、同期外れが発生した第1の多重化CPUのうちの正常動作続行中のCPUに向けて、該第1の多重化CPUの当該演算処理システムからの論理的な切り離しを指示する切離し指示部を有することを特徴とする演算処理システム。 - 前記システム管理装置が、論理的な切離が行なわれた後の前記第1の多重化CPUでの再同期が完了したことを受けて、該第1の多重化CPUの、当該演算処理システムへの論理的な追加を指示する追加指示部を有することを特徴とする請求項4記載の演算処理システム。
- 当該演算処理システムが、前記複数組の多重化CPUの中に、当該演算処理システムから論理的に切り離された第2の多重化CPUを含み、
前記システム管理装置が、前記複数組の多重化CPUのうちのいずれかの同期外れの報告を受けて、前記第2の多重化CPUの、当該演算処理システムへの論理的な参加を指示する参加指示部を有し、
前記切離し処理部は、前記システム管理装置からの切離し指示を受けて、前記第1の多重化CPUで行なっていた処理を当該演算処理システムに新たに参加した前記第2の多重化CPUに引き継がせた上で、当該演算処理システムから論理的に切り離すものであることを特徴とする請求項4記載の演算処理システム。 - 前記第1の多重化CPUの前記切離し処理部は、前記システム管理装置からの切離し指示を受けて、該第1の多重化CPUのIDを当該演算処理システムに新たに参加した前記第2の多重化CPUのIDとして該第2の多重化CPUに通知するものであることを特徴とする請求項6記載の演算処理システム。
- 前記第1の多重化CPUの立場にあるときに、前記システム制御装置からの切離し指示を受けて、該第1の多重化CPUで行なっていた処理を前記第2の多重化CPUで継続するために必要なコンテキストを前記RAMに退避させるコンテキスト退避部と、
前記第2の多重化CPUの立場にあって、当該演算処理システムに新たに参加した際に、前記RAMから前記コンテキストを読み戻すコンテキスト読戻部とを有することを特徴とする請求項7記載の演算処理システム。 - それぞれが2つ以上のCPUからなり互いに同期してプログラムを実行する多重化CPUを複数組有する演算処理システムにおける再同期方法であって、
当該演算処理システムが、前記多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたROMと、全体として1つのアドレスマップで定義されたRAMと、前記RAMの、ファームプログラムが複写された複写先のアドレスが格納されるRAMアドレスレジスタとを備えたシステムであり、
システムブート時に、前記ROMに記憶されたファームプログラムを前記RAMに複写するファーム複写ステップと、
前記RAMアドレスレジスタに、前記RAMの、ファームプログラムの複写先のアドレスを格納するRAMアドレス格納ステップと、
前記多重化CPUの同期外れを検出する同期外れ検出ステップと、
前記同期外れ検出ステップにおいて同期外れが検出されたことを受けて前記RAMアドレスレジスタを参照し、前記ROMに記憶されたファームプログラム読出し用のアドレスを、前記RAMの、該ファームプログラムの複写先のアドレスにすり替えるアドレスすり替えステップとを有することを特徴とする再同期方法。 - それぞれが2つ以上のCPUからなり互いに同期してプログラムを実行する多重化CPUを複数組有するとともに、該複数組の多重化CPUを管理するシステム管理装置を備えた演算処理システムにおける再同期方法であって、
当該演算処理システムが、前記多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたROMと、全体として1つのアドレスマップで定義されたRAMとを備えたシステムであり、
前記多重化CPUの同期外れを検出して前記システム管理装置に報告する同期外れ検出ステップと、
前記システム管理装置で実行される、前記複数組の多重化CPUのうちのいずれかの同期外れの報告を受けて、同期外れが発生した第1の多重化CPUのうちの正常動作続行中のCPUに向けて、該第1の多重化CPUの当該演算処理システムからの論理的な切り離しを指示する切離し指示ステップと、
前記第1の多重化CPUのうちの正常動作実行中のCPUで実行される、前記システム管理装置からの切離し指示を受けて当該第1の多重化CPUを当該演算処理システムから論理的に切離す切離し処理ステップとを有することを特徴とする再同期方法。 - それぞれが2つ以上のCPUからなり互いに同期してプログラムを実行する多重化CPUを複数組有する演算処理システムで実行されるファームプログラムであって、
当該演算処理システムが、前記多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたROMと、全体として1つのアドレスマップで定義されたRAMと、前記RAMの、ファームプログラムが複写された複写先のアドレスが格納されるRAMアドレスレジスタとを備えたシステムであり、当該演算処理システムを、
システムブート時に、前記ROMに記憶されたファームプログラムを前記RAMに複写するファーム複写部と、
前記RAMアドレスレジスタに、前記RAMの、前記ファーム複写部によるファームプログラムの複写先のアドレスを格納するRAMアドレス格納部と、
前記多重化CPUの同期外れを検出する同期外れ検出部と、
前記同期外れ検出部により同期外れが検出されたことを受けて前記RAMアドレスレジスタを参照し、前記ROMに記憶されたファームプログラム読出し用のアドレスを、前記RAMの、該ファームプログラムの複写先のアドレスにすり替えるアドレスすり替え部とを有する演算処理システムとして動作させることを特徴とするファームプログラム。 - それぞれが2つ以上のCPUからなり互いに同期してプログラムを実行する多重化CPUを複数組有するとともに、該複数組の多重化CPUを管理するシステム管理装置を備えた演算処理システムで実行されるファームプログラムであって、
当該演算処理システムが、前記多重化CPUを互いに同期した状態に立ち上げるファームプログラムが記憶されたROMと、全体として1つのアドレスマップで定義されたRAMとを備えたシステムであり、当該演算処理システムを、
前記多重化CPUの同期外れを検出して前記システム管理装置に報告する同期外れ検出部と、
前記システム管理装置からの切離し指示を受けて当該多重化CPUを当該演算処理システムから論理的に切離す切離し処理部とを有する演算処理システムとして動作させることを特徴とするファームプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2009/054305 WO2010100757A1 (ja) | 2009-03-06 | 2009-03-06 | 演算処理システム、再同期方法、およびファームプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2010100757A1 true JPWO2010100757A1 (ja) | 2012-09-06 |
JP5287974B2 JP5287974B2 (ja) | 2013-09-11 |
Family
ID=42709335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011502557A Expired - Fee Related JP5287974B2 (ja) | 2009-03-06 | 2009-03-06 | 演算処理システム、再同期方法、およびファームプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20110320683A1 (ja) |
JP (1) | JP5287974B2 (ja) |
WO (1) | WO2010100757A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6090335B2 (ja) * | 2013-01-15 | 2017-03-08 | 富士通株式会社 | 情報処理装置 |
CN110851183B (zh) * | 2018-08-20 | 2024-04-12 | 联想企业解决方案(新加坡)有限公司 | 在多处理器体系结构中快速启动处理器的方法 |
KR20200077287A (ko) * | 2018-12-20 | 2020-06-30 | 에스케이하이닉스 주식회사 | 메모리 장치, 이를 포함하는 메모리 시스템 및 그것의 동작 방법 |
US11669593B2 (en) | 2021-03-17 | 2023-06-06 | Geotab Inc. | Systems and methods for training image processing models for vehicle data collection |
US11682218B2 (en) | 2021-03-17 | 2023-06-20 | Geotab Inc. | Methods for vehicle data collection by image analysis |
US11693920B2 (en) * | 2021-11-05 | 2023-07-04 | Geotab Inc. | AI-based input output expansion adapter for a telematics device and methods for updating an AI model thereon |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61150041A (ja) * | 1984-12-24 | 1986-07-08 | Nec Corp | 二重化情報処理システム |
JP2821307B2 (ja) * | 1992-03-23 | 1998-11-05 | 株式会社日立製作所 | 高信頼化コンピュータシステムの割込み制御方法 |
JP2000163313A (ja) * | 1998-11-30 | 2000-06-16 | Ricoh Co Ltd | プログラム読出し制御装置およびシステム |
US7356733B2 (en) * | 2004-10-25 | 2008-04-08 | Hewlett-Packard Development Company, L.P. | System and method for system firmware causing an operating system to idle a processor |
US7627781B2 (en) * | 2004-10-25 | 2009-12-01 | Hewlett-Packard Development Company, L.P. | System and method for establishing a spare processor for recovering from loss of lockstep in a boot processor |
US7496786B2 (en) * | 2006-01-10 | 2009-02-24 | Stratus Technologies Bermuda Ltd. | Systems and methods for maintaining lock step operation |
US8082431B2 (en) * | 2006-09-29 | 2011-12-20 | Intel Corporation | System and method for increasing platform boot efficiency |
-
2009
- 2009-03-06 JP JP2011502557A patent/JP5287974B2/ja not_active Expired - Fee Related
- 2009-03-06 WO PCT/JP2009/054305 patent/WO2010100757A1/ja active Application Filing
-
2011
- 2011-09-01 US US13/137,671 patent/US20110320683A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP5287974B2 (ja) | 2013-09-11 |
US20110320683A1 (en) | 2011-12-29 |
WO2010100757A1 (ja) | 2010-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2505928B2 (ja) | フォ―ルト・トレラント・システムのためのチェックポイント機構 | |
JP4585463B2 (ja) | 仮想計算機システムを機能させるためのプログラム | |
KR101121116B1 (ko) | 동기 제어 장치, 정보 처리 장치 및 동기 관리 방법 | |
JP5392594B2 (ja) | 仮想計算機冗長化システム、コンピュータシステム、仮想計算機冗長化方法、及びプログラム | |
US7493517B2 (en) | Fault tolerant computer system and a synchronization method for the same | |
JP2008046685A (ja) | 二重化システム及び系切り換え方法 | |
JP5287974B2 (ja) | 演算処理システム、再同期方法、およびファームプログラム | |
US20100042795A1 (en) | Storage system, storage apparatus, and remote copy method | |
JP2006178616A (ja) | フォールトトレラントシステム、これで用いる制御装置、動作方法、及び動作プログラム | |
JP6098778B2 (ja) | 冗長化システム、冗長化方法、冗長化システムの可用性向上方法、及びプログラム | |
US8255649B2 (en) | Remote copy control method and system in storage cluster environment | |
CA2530913A1 (en) | Fault tolerant computer system and interrupt control method for the same | |
JP2006277205A (ja) | 記憶装置システムおよびその制御方法、制御プログラム | |
JP2012208896A (ja) | ディスクアレイ装置、接続経路制御方法、及び接続経路制御プログラム | |
JP2005196490A (ja) | データ多重化のためのシステム及び方法 | |
JP2001216204A (ja) | 記憶制御装置 | |
JP2009053946A (ja) | 二重化コントーラ構成ブロックデバイス制御装置 | |
KR100566340B1 (ko) | 정보 처리 장치 | |
JP3774826B2 (ja) | 情報処理装置 | |
JP2009098988A (ja) | フォルトトレラントコンピュータシステム | |
JP2006260141A (ja) | 記憶システムの制御方法、記憶システム、記憶制御装置、記憶システムの制御プログラム、情報処理システム | |
JP2005122763A (ja) | 記憶装置 | |
JP2010204885A (ja) | ディスクアレイ装置及びその制御方法 | |
JP5748214B2 (ja) | 二重化情報処理システム | |
JP5251690B2 (ja) | 遠隔コピーシステムおよび遠隔コピー方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130108 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130226 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130507 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130520 |
|
LAPS | Cancellation because of no payment of annual fees |