JP5278530B2 - 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム - Google Patents

情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム Download PDF

Info

Publication number
JP5278530B2
JP5278530B2 JP2011503554A JP2011503554A JP5278530B2 JP 5278530 B2 JP5278530 B2 JP 5278530B2 JP 2011503554 A JP2011503554 A JP 2011503554A JP 2011503554 A JP2011503554 A JP 2011503554A JP 5278530 B2 JP5278530 B2 JP 5278530B2
Authority
JP
Japan
Prior art keywords
cpu
control device
error
resynchronization
processing
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.)
Expired - Fee Related
Application number
JP2011503554A
Other languages
English (en)
Other versions
JPWO2010103562A1 (ja
Inventor
保 竹内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2010103562A1 publication Critical patent/JPWO2010103562A1/ja
Application granted granted Critical
Publication of JP5278530B2 publication Critical patent/JP5278530B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1687Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling

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)

Description

本発明は、情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラムに関する。
まず、一般的なCPU(Central Processing Unit :中央処理装置)同期動作について説明する。高信頼性が求められるコンピュータシステムでは、CPUを2重化し、お互いに同期動作させることで、一方のCPUに故障が発生した場合も、もう一方のCPUにて処理を継続する方式を採用している。
CPUを同期動作している場合、CPUの故障やCPUの外部デバイスの故障等の影響により、CPUの同期ずれが発生する場合がある。CPUの同期ずれとは、同期動作しているCPU間で、CPUが発行する命令が異なることである。例えば、CPUが発行したリード命令のアドレスが、同期動作しているCPU間で互いに異なる場合や、リード命令を発行するタイミングが1クロックずれていることなどが、CPUの同期ずれに該当する。
ここで、コンピュータシステムが備えるCPUがエラーを検出し、CPUの同期ずれが発生する場合として、以下に記述するケース1又はケース2の場合が考えられる。
ケース1:同期動作しているCPUのうち、一方のCPUがエラーを検出した場合
ケース2:同期動作しているCPUのうち、両方のCPUが同時にエラーを検出した場合
一般的に、上記ケース1、ケース2の場合に対しては、以下の動作を行うことが望まれる。ケース1の場合については、コンピュータシステムが、エラーを検出したCPUを縮退する。もしくは、コンピュータシステムが、エラー発生が所定の回数以上になるまでは、CPUを再同期し、同期動作を継続する。ケース2の場合については、コンピュータシステムが、エラー内容を記録して、コンピュータシステムを停止する。但し、エラー内容が復旧可能なものである場合は、コンピュータシステムが、エラーを復旧した後、CPU同期動作にて動作を継続する。
次に、コンピュータシステムが、CPUと接続されているCPUコントローラを備える構成をとる場合において、CPUで同期ずれが発生したときの、一般的なCPUコントローラの動作について説明する。CPUコントローラは、例えばノースブリッジ(North Bridge)と呼ばれるチップセット等である。
CPU同期動作を行う場合は、一般に、CPUコントローラが、同期ずれの検出、エラーが発生した側のCPUの縮退などの制御を行う。一方、例えばINTEL(登録商標)アーキテクチャのCPUでは、CPUを縮退する場合、CPUコントローラと共通のバスで接続されているCPU単位でのみCPUを縮退させることが可能なものが存在する。つまり、コンピュータシステムが、共通のバス上に複数のCPUが接続される構成をとる場合、一つのCPUの中に複数のCPUコアが搭載されている構成をとる場合、又は、一つのCPUコアにて複数の論理CPUが動作する場合には、ある一つのCPUで同期ずれが発生すると、CPUコントローラは、同期ずれの発生したCPUと共通のバスで接続されている全てのCPUを縮退する。ここで、ある一つのCPUで同期ずれが発生した際は、同期ずれの発生したCPUと共通のバス上に接続されている全てのCPUが再同期処理を実行することが必要となる。
次に、Windows(登録商標)等、汎用OS(Operating System:オペレーティングシステム)を使用し、CPUの再同期処理を行う場合について説明する。Windows等、汎用OSでは、OSの製造メーカと、コンピュータシステムの製造メーカとが異なる。また、汎用OSは様々な仕様のコンピュータシステムにて動作しなければならないため、汎用OSがコンピュータシステムの仕様に特化した処理を行うことは困難である。したがって、汎用OSにて、CPUの同期ずれに対応する処理を行う場合は、OSのサポートなしに、OSの通常動作に影響を与えないように処理を行う必要がある。具体的には以下の(1)及び(2)に示すような処理を行うことが必要となる。
(1)CPUの同期ずれを検出した場合、コンピュータシステムのBIOS(Basic Input/Output System :バイオス)等ファームウェア処理に制御を渡すための割込み(以下、同期ずれ割込みと呼ぶ)を発行し、BIOS等ファームウェア処理にて再同期処理を行う。
(2)OSの処理に影響を与えないように、再同期処理中は割込みをマスクするなどし、最小限の時間で再同期処理を行う。
次に、CPU以外のデバイスに障害が発生した場合の、一般的なコンピュータシステムの動作について説明する。CPU以外のデバイスに障害が発生すると、同期動作を行っている両方のCPUが同時にエラーを検出する場合がある。例えば、CPUが、ビデオコントローラやLANコントローラ等のIO(Input Output:入出力)デバイスへのリードを行った際に、IOデバイスにてハードウェア障害が発生する場合である。IOデバイスにてハードウェア障害が発生すると、IOコントローラが障害を検出し、CPUに対して、障害発生を知らせるデータ(一般的にPoisonデータと呼ばれるデータなど)を返す。その結果、同期動作を行っている両方のCPUが、障害発生を知らせるデータを同時にリードし、エラーを検出する。
同期動作しているCPUがCPU以外のデバイスの障害が原因となるエラーを同時に検出した場合、CPUは、同期動作を継続することが可能である場合が多い。同期動作しているCPUが全く同じ内容のエラーを検出するため、エラー処理も全く同じとなることが多いためである。一方、CPUコントローラは、同期動作している両方のCPUが同時にエラーを検出した場合、CPU自身が原因なのか、CPU以外のデバイスが原因なのか、また、CPUが同期動作したまま障害解析処理を行うことが可能なのか、不可能なのかを判断することができない。したがって、CPUコントローラは、両方のCPUが同時にエラーを検出した場合は、同期ずれとして処理するか、それとも同期動作のまま処理するかを、予め決定しておく必要がある。しかし、CPUコントローラが、同期動作のまま処理することを予め決定している場合は、以後、同期ずれが発生した時に、障害解析処理中に同期ずれが発生したのか、障害解析処理完了後に同期ずれが発生したのか、また、同期ずれの原因が元々のCPUエラーなのか、又は新たな要因なのか等の判定を行うことが困難である。障害解析処理中に、元々のCPUエラーが原因で同期ずれとなった場合は、エラーが1回発生したとして処理を行えばよいが、障害解析処理完了後に別要因にて同期ずれとなった場合は、エラーが2回発生したとして処理を行う必要がある。つまり、同期動作のまま処理すると決定した場合、その後別のエラーが発生した場合に正しく処理を行うことが困難となってしまう。したがって、同期動作を行っている両方のCPUが同時にエラーを検出した場合、CPUコントローラは、同期ずれとして処理し、BIOS等ファームウェアにて再同期の要否などを判断するのが一般的である。
なお、既存のOS又はI/Oデバイスドライバを改造することなく、I/Oデバイスの二重化制御を行うFT(Fault Tolerant:フォールトトレラント)コンピュータシステムが提案されている。
特開2006−172220号公報
例えば、同期動作を行っている両方のCPUが同時にエラーを検出した場合に、同期ずれとして処理するCPUコントローラを備えるコンピュータシステムの動作について説明する。
BIOS等ファームウェアは、同期動作を行っているCPUが同時にエラーを検出した場合の障害解析処理として、以下の(a)及び(b)に示す動作を行う必要がある。
(a)CPUが検出したエラーに対して障害解析処理を行う。
(b)エラーが復旧可能なものである場合には、エラーを復旧した後、CPUを再同期させ、同期動作を継続する。
上記(a)及び(b)に示す動作を実現するための、同期動作中のCPUが同時にエラーを検出した場合の処理について、図23乃至図26を参照して説明する。
図23及び図24は、CPUがエラーを検出した場合の動作処理フローの例である。まず、CPU(のハードウェア)がエラーを検出する(図23のステップS1)。CPUが割込みマスクに設定し、ファームウェア(例えば、BIOS等)のエラー処理を開始する(ステップS2)。次に、CPUがファームウェアの指示に従って、エラー要因の調査を行い、エラーをログする(ステップS3)。続いて、CPUが、ファームウェアの指示に従って、障害が復旧可能かを判断する(ステップS4)。ステップS4において、CPUが、障害が復旧可能であると判断した場合、CPUが、ファームウェアの指示に従って、障害復旧処理を実行し(ステップS10)、図24のステップS12に進む。CPUが、障害が復旧可能でないと判断した場合は、CPUが、ファームウェアの指示に従って、OSのエラー処理をCallする(図23のステップS5)。OSのエラー処理は、OSが指示するエラー処理である。そして、CPUが、OSのエラー処理を開始する(ステップS6)。
次に、CPUが、共通のバスで接続された他のCPUに対して、OSのエラー処理割込みを発行する(図24のステップS7)。OSのエラー処理割込みは、他のCPUにOSのエラー処理を実行させるための割込みである。ステップS7においては、CPUは、更に、他のCPUと同期をとりながらエラー処理を実行する。
次に、OSが、障害が復旧可能であるかを判断する(ステップS8)。OSが、障害が復旧不可能であると判断した場合、OSがシステムを停止させる(ステップS9)。OSが、障害が復旧可能であると判断した場合、OSが障害復旧処理を行うとともに、ファームウェアのエラー処理への復帰処理を行う(ステップS11)。続いて、CPUが、ファームウェアの指示に従って、エラー処理から復帰する(ステップS12)。そして、CPUが、割込みマスクを解除して(ステップS13)、通常処理に戻る(ステップS14)。
図25は、CPUコントローラが再同期割込みを発行した場合の動作処理フローの例である。まず、同期動作中の両方のCPUが同時にエラーを検出する(ステップS21)。次に、両方のCPUが、CPUコントローラに対して、エラー通知を同時に行う(ステップS22)。続いて、CPUコントローラが、一方のCPU(片側CPU)を縮退させ、縮退させなかったCPUと、このCPUと共通のバスに接続された他のCPUに再同期割込みを発行する(ステップS23)。再同期割込みは、同期ずれが発生したことを通知するための割込みである。続いて、CPUが、割込みマスクに設定し、ファームウェアの再同期処理、すなわち、ファームウェアの指示に従う再同期処理を開始する(ステップS24)。CPUが、ファームウェアの指示に従って、再同期処理を行うCPUが全て揃ったかを判断する(ステップS25)。CPUが、再同期処理を行うCPUが揃っていないと判断した場合は、ステップS25に戻る。CPUが、再同期処理を行うCPUが全て揃ったと判断した場合、CPUが、ファームウェアの指示に従って、再同期処理を実行する(ステップS26)。次に、CPUが、ファームウェアの指示に従って、再同期処理から復帰する(ステップS27)。続いて、CPUが、割込みマスクを解除し(ステップS28)、通常処理(CPU同期動作)に戻る(ステップS29)。
図26は、図24のステップS7において発行されたOSのエラー処理割込みを受けたCPUの動作処理フローの例である。CPUがOSのエラー処理割込みを受けると(ステップS31)、CPUが、割込みマスクに設定し、OSのエラー処理を開始する(ステップS32)。すなわち、CPUが、OSの指示に従って、OSのエラー処理を実行する(ステップS33)。CPUが、OSのエラー処理から復帰すると(ステップS34)、CPUが、割込みマスクを解除して(ステップS35)、通常処理に戻る(ステップS36)。
図27乃至図34は、同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。図27は、CPUが同期動作しており、エラーを検出していない状態の例を示す。図27において、CPU100とCPU102とが同期動作している。CPU101とCPU103とが同期動作している。CPU100とCPU101とが、共通のバス105を介してCPUコントローラ104と接続されている。また、CPU102とCPU103とが、共通のバス106を介してCPUコントローラ104と接続されている。各々のCPUは通常処理(OSの通常処理)を実行している(図27の#1乃至#4を参照)。
図28は、同期動作している両方のCPUがエラーを検出した状態の例を示す。この例では、CPU100とCPU102とが同時にエラーを検出する(図28の#5及び#6を参照)。エラーを検出したCPU100とCPU102が、CPUコントローラ104に対してエラーを検出したことを通知する(図28の#7を参照)。続いて、CPU100とCPU102とが、ファームウェアのエラー処理を開始する(図28の#8及び#9を参照)。
図29は、CPUコントローラが、エラーを検出したCPUのいずれか一方と、そのCPUと共通のバスに接続されているCPUとを縮退した状態の例を示す。この例では、CPUコントローラ104は、CPU102と、CPU102とバス106で接続されているCPU103とを縮退させる(図29の#10を参照)。エラー検出のタイミングが異なる場合、CPUコントローラ104が、より早くエラーを検出したCPUを縮退するようにしてもよい。続いて、CPUコントローラ104が、縮退させなかった側のCPUであるCPU100とCPU101とに対して、再同期割込みを発行する(図29の#11)。
図30は、縮退しない側のCPUが再同期割込みを受けた状態の例を示す。この例では、エラーを検出したCPU100とエラーを検出していないCPU101とにおいて、以下の動作を実行する。CPU100が、ファームウェアのエラー処理を実行する。再同期割込みはペンディングされる(図30の#12を参照)。CPU101は、割込みマスクに設定した上で、CPUの再同期処理を開始する。CPUの再同期処理は、短時間で完了する必要がある。従って、CPU101は、割込みマスク状態のままCPUの再同期処理を実行する(図30の#13を参照)。
図31は、OSのエラー処理を実行するCPU100が、CPU101にOSのエラー処理割込みを発行した状態の例を示す。CPU100が、OSのエラー処理を実行し(図31の#14を参照)、CPU101に対して、OSのエラー処理割込みを発行する(図31の#15を参照)。一方、CPU101は、CPU100からOSのエラー処理割込みを受けたにもかかわらず、再同期処理を実行する。すなわち、CPU101は、割込みマスク状態にあるため、OSのエラー処理を実行できない(図31の#16を参照)。
図32は、CPU100がエラーの復旧処理を行った状態の例を示す。CPU100が、OSのエラー処理を実行する。障害復旧が可能である場合、障害復旧処理が行われる(図32の#17を参照)。
図33は、CPU100がエラー処理から復帰した状態の例を示す。CPU100がエラー処理から通常処理に復帰し、ペンディングされていた再同期割込みを受け付け、再同期処理を開始する(図33の#18)。
図34は、CPU100及びCPU101が再同期処理を完了した後の状態の例を示す。CPU100及びCPU101は、再同期処理を完了すると、OSの通常処理に復帰する(図34の#19、#20を参照)。CPU100、CPU101は、それぞれ、CPU102、CPU103と同期動作し、その結果、CPU102、CPU103は通常処理を実行する(図34の#21、#22を参照)。
ここで、図27乃至図34を参照して前述したような、同期動作中のCPUが同時にエラーを検出した場合の処理には、以下に述べるような問題がある。Windows等、汎用OSを使用するコンピュータシステムにおいては、エラー処理を行う場合は、エラーを検出したCPUだけでなく、エラーを検出していないCPUもエラー処理を行う必要がある。例えば、エラー処理にてエラー発生時のメモリダンプ情報を取得する場合、コンピュータシステムの全てのCPUに割込みを発行し、キャッシュ情報をメモリにコピーさせた後に、メモリ情報をハードディスク等に格納し、後でエラー発生原因を調査する際などに使用する。
しかし、図31を参照して前述したように、エラーを検出していないCPUであるCPU101は、割込みマスク状態にあるため、CPU100からOSのエラー処理割込みを受けたにもかかわらず、OSのエラー処理を実行できない。従って、図27乃至図34を参照して前述したような処理では、例えばWindows等、汎用OSのエラー処理にて発行されるOSのエラー処理割込みを、エラーを検出していないCPUが割込みを受けることができず、エラー処理を実行することができないという問題が発生する。
本発明は、同期動作中の制御装置(例えばCPU)が同時にエラーを検出した場合において、エラーを検出していないCPUがOSのエラー処理を実行することができるようにする情報処理装置の提供を目的とする。
また、本発明は、同期動作中の制御装置が同時にエラーを検出した場合において、エラーを検出していない制御装置がOSのエラー処理を実行することができるようにする情報処理装置の制御方法の提供を目的とする。
また、本発明は、同期動作中の制御装置が同時にエラーを検出した場合において、エラーを検出していないCPUがOSのエラー処理を実行することができるようにする情報処理装置の制御プログラムの提供を目的とする。
本情報処理装置は、互いに同期動作を行う第1の制御装置と第2の制御装置とがエラーの発生を検出した場合に、前記第1の制御装置を含む第1の制御装置群と、前記第2の制御装置を含む第2の制御装置群とのうち、前記第2の制御装置群を縮退させる縮退制御手段と、前記第1の制御装置群に含まれる制御装置に対して再同期処理の実行を指示する再同期処理指示手段とを備える。前記第1の制御装置群に含まれる前記第1の制御装置とは異なる他の制御装置が、前記再同期処理の実行の指示を受けた場合に、割込みマスク設定を行い、前記第1の制御装置群に含まれる前記第1の制御装置が、前記再同期処理の実行の指示を受けた場合に、前記再同期処理の実行を留保してエラー処理を開始するとともに、前記割込みマスク設定を行った制御装置に指示して、前記割込みマスクを解除させる。
また、本情報処理装置の制御方法は、互いに同期動作を行う第1の制御装置と第2の制御装置とがエラーの発生を検出した場合に、前記第1の制御装置を含む第1の制御装置群と、前記第2の制御装置を含む第2の制御装置群とのうち、前記第2の制御装置群を縮退させ、前記第1の制御装置群に含まれる制御装置に対して再同期処理の実行を指示し、前記第1の制御装置群に含まれる前記第1の制御装置とは異なる他の制御装置が、前記再同期処理の実行の指示を受けた場合に、割込みマスク設定を行い、前記第1の制御装置群に含まれる前記第1の制御装置が、前記再同期処理の実行の指示を受けた場合に、前記再同期処理の実行を留保してエラー処理を開始するとともに、前記割込みマスク設定を行った制御装置に指示して、前記割込みマスクを解除させる。
また、本情報処理装置の制御プログラムは、互いに同期動作を行う第1の制御装置と第2の制御装置とがエラーの発生を検出した場合に、前記第1の制御装置を含む第1の制御装置群と、前記第2の制御装置を含む第2の制御装置群とのうち、前記第2の制御装置群を縮退させる縮退制御手段と、前記第1の制御装置群に含まれる制御装置に対して再同期処理の実行を指示する再同期処理指示手段とを備える情報処理装置の制御プログラムであって、コンピュータに、前記第1の制御装置群に含まれる前記第1の制御装置とは異なる他の制御装置が、前記再同期処理の実行の指示を受けた場合に、割込みマスク設定を行う処理と、前記第1の制御装置群に含まれる前記第1の制御装置が、前記再同期処理の実行の指示を受けた場合に、前記再同期処理の実行を留保してエラー処理を開始するとともに、前記割込みマスク設定を行った制御装置に指示して、前記割込みマスクを解除させる処理とを実行させる。
本情報処理装置、本情報処理装置の制御方法、及び本情報処理装置の制御プログラムによれば、同期動作中の制御装置が同時にエラーを検出した場合において、エラーを検出していない制御装置がOSのエラー処理を実行することができる。
本実施形態の情報処理装置の構成例を示す図である。 本実施形態の情報処理装置の他の構成例を示す図である。 本実施形態の情報処理装置の他の構成例を示す図である。 本実施形態の情報処理装置の他の構成例を示す図である。 本実施形態の情報処理装置の他の構成例を示す図である。 情報処理装置が備えるCPUがエラーを検出した場合の動作処理フローの例を示す図である。 情報処理装置が備えるCPUがエラーを検出した場合の動作処理フローの例を示す図である。 CPUコントローラが再同期割込みを発行した場合の動作処理フローの例を示す図である。 CPUコントローラが再同期割込みを発行した場合の動作処理フローの例を示す図である。 エラーを検出したCPUから再同期割込みを受けるCPUの動作処理フローの例を示す図である。 エラーを検出したCPUから再同期割込みを受けるCPUの動作処理フローの例を示す図である。 OSのエラー処理割込みを受けたCPUの動作処理フローの例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 CPUがエラーを検出した場合の動作処理フローの例である。 CPUがエラーを検出した場合の動作処理フローの例である。 CPUコントローラが再同期割込みを発行した場合の動作処理フローの例である。 OSのエラー処理割込みを受けたCPUの動作処理フローの例である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。 同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。
符号の説明
1 情報処理装置
10、11、12、13 CPU
14 CPUコントローラ
15 ROM
16 メモリ
17 IOコントローラ
18 ハードディスクコントローラ
19 LANコントローラ
20 ビデオコントローラ
21 ハードディスク
31、32 バス
141 CPUエラー通知受信部
142 CPU縮退制御部
143 再同期割込み発行部
151 ファームウェア
201 エラー処理プログラム
202 CPU再同期処理プログラム
211 OS
図1は、本実施形態の情報処理装置の構成例を示す図である。本実施形態の情報処理装置1は、CPU10乃至13、CPUコントローラ14、ROM(Read Only Memory)15、メモリ16、IOコントローラ17、ハードディスクコントローラ18、LANコントローラ19、ビデオコントローラ20、ハードディスク21を備える。
本実施形態においては、CPU10とCPU12とが互いに同期動作を行い、CPU11とCPU13とが互いに同期動作を行う。また、CPU10とCPU11とが、共通のバスであるバス31を介してCPUコントローラ14と接続されている。すなわち、CPU10とCPU11とが、第1の制御装置群を構成している。また、CPU12とCPU13とが、共通のバスであるバス32を介してCPUコントローラ14と接続されている。すなわち、CPU12とCPU13とが、第2の制御装置群を構成している。
各々のCPU(のハードウェア)は、情報処理装置1におけるエラーの発生を検出した場合に、エラーの発生をCPUコントローラ14に通知する。また、後述するCPUコントローラ14によって縮退されなかった制御装置群に含まれるCPUは、BIOS等のファームウェア151が備えるエラー処理プログラム201又はCPU再同期処理プログラム202をROM15から読み込んで、読み込んだプログラムの指示に応じた処理を実行する。具体的には、エラーの発生を検出したCPUが、ROM15からエラー処理プログラム201を読み込んで、エラー処理プログラム201の指示に従った処理(ファームウェアのエラー処理)を実行する。また、後述するCPUコントローラ14が備える再同期割込み発行部143から発行される再同期割込みを受けたCPUが、ROM15からCPU再同期処理プログラム202を読み込んで、CPU再同期処理プログラム202の指示に従った処理(再同期処理)を実行する。なお、上記ファームウェアのエラー処理を実行したCPUは、障害が復旧不可能である場合に、OSのエラー処理をCallして、ハードディスク21に記憶されているOS211のエラー処理を実行する。
CPUコントローラ14は、例えばノースブリッジである。CPUコントローラ14は、CPUエラー通知受信部141、CPU縮退制御部142、再同期割込み発行部143を備える。CPUエラー通知受信部141は、互いに同期動作を行うCPU、例えば、CPU10とCPU12がエラーの発生を検出した場合に、CPU10とCPU12とから、エラーが発生したことを示す通知を受ける。CPU縮退制御部142は、CPU10を含む第1の制御装置群と、CPU12を含む第2の制御装置群とのうち、第2の制御装置群を縮退させる縮退制御手段としての機能を有する。再同期割込み発行部143は、上記第1の制御装置群に含まれるCPUに対して再同期割込みを発行することによって、再同期処理の実行を指示する。再同期割込みの発行を受けたCPUは、割込みマスク設定を行った上で、ROM15からCPU再同期処理プログラム202を読み込んで、CPU再同期処理プログラム202の指示に従った処理を実行する。具体的には、上記第1の制御装置群に含まれるCPUのうち、エラーの発生を検出していないCPU11が、再同期割込みの発行を受けた場合に、割込みマスク設定を行う。ここで、第1の制御装置群に含まれるCPUのうち、エラーの発生を検出したCPU10は、エラーの発生の検出後にROM15からエラー処理プログラム201を読み込む。従って、CPU10は、再同期割込み発行部143からの再同期割込みの発行を受けた場合であっても、再同期処理の実行をペンディング(留保)して、エラー処理プログラム201の指示するエラー処理の実行を開始する。本実施形態に特有の動作として、CPU10は、エラー処理プログラム201の指示に従って、CPU10がエラー処理を開始したことをCPU11に通知する。この通知を受けたCPU11は、割込みマスク設定を解除する。すなわち、CPU10が、上記割込みマスク設定を行ったCPU11に指示して、割込みマスクを解除させる。これによって、CPU11が、OSのエラー処理割込みを受け付けられる状態になる。
ROM15には、ファームウェア151が予め記憶される。ファームウェア151は、エラー処理プログラム201とCPU再同期処理プログラム202とを備える。エラー処理プログラム201は、エラー処理プログラム201を読み込んだCPU(例えば、CPU10)に指示して、ファームウェアのエラー処理を実行させる。また、エラー処理プログラム201は、エラー処理プログラム201を読み込んだCPUに指示して、このCPU(例えば、CPU10)がファームウェアのエラー処理を開始したことを、このCPUと共通のバスで接続された他のCPU(例えば、CPU11)に通知させる。また、エラー処理プログラム201は、エラー処理を実行したCPUについて障害が復旧可能であるかを判断する。エラー処理プログラム201が、障害が復旧可能であると判断した場合、エラー処理プログラム201(の指示を受けたCPU)が、このCPUとは異なる他のCPUに対してエラー処理の完了を通知するとともに、他のCPUに対して再同期割込みを発行する。
CPU再同期処理プログラム202は、CPU再同期処理プログラム202を読み込んだCPUに指示して、通常のCPUの再同期処理を実行させる。具体的には、CPU再同期処理プログラム202は、CPU再同期処理プログラム202を読み込んだCPUに指示して、再同期処理を行うCPUが全て揃ったかを判断させる。例えば、CPU再同期処理プログラム202は、CPU再同期処理プログラム202を読み込んだCPU10に指示して、CPU10と共通のバスで接続されているCPU11が再同期処理を実行できる状態にあるかを判断させる。再同期処理を行うCPUが全て揃った場合にのみ、CPU再同期処理プログラム202は、CPU(例えばCPU10)に指示して再同期処理を実行させる。また、CPU再同期処理プログラム202は、CPU再同期処理プログラム202を読み込んだCPUに指示して、このCPUとは異なる他のCPUがエラー処理中であるかを判断させる。他のCPUがエラー処理中である場合、CPU再同期処理プログラム202は、CPU再同期処理プログラム202を読み込んだCPUを再同期処理から通常処理に復帰させ、OSからの割込みを受け付けることができる状態にする。
なお、図1中、周知のように、メモリ16は各々のCPUが処理の実行に必要なデータが記憶される記憶部である。IOコントローラ17は、CPUコントローラ14と、ビデオコントローラ20、LAN(Local Area Network)コントローラ19、ハードディスクコントローラ18との間の情報の入出力を制御する。ビデオコントローラ20は、各々のCPUの処理内容のモニタ(図示を省略)への表示処理を制御する。LANコントローラ19は、情報処理装置1が属するLANに対して各々のCPUの処理内容を送信する。ハードディスクコントローラ18は、ハードディスク21からのデータの読み込み処理、ハードディスク21へのデータの書き込み処理を制御する。
本実施形態の情報処理装置の機能は、CPUとその上で実行されるプログラムにより実現される。このプログラムは、コンピュータが読み取り可能な記録媒体に格納することができ、該記録媒体に記録して提供され、又は、通信インタフェースを介してネットワークを利用した送受信により提供される。
本実施形態の情報処理装置が、図2に示すような構成を有する情報処理装置2−1であってもよい。情報処理装置2−1においては、図1に示すCPUコントローラ14と同様の機能(CPUコントローラ機能)を有するCPUコントローラ30と、図1に示す各々のCPUと同様の機能を有するCPUコア41乃至44とが、一つのCPU3内に設けられている。また、本実施形態の情報処理装置が、図3に示すような構成を有する情報処理装置2−2であってもよい。情報処理装置2−2においては、ROM15がIOコントローラ17に接続されている。
また、本実施形態の情報処理装置が、図4に示すような構成を有する情報処理装置2−3であってもよい。情報処理装置2−3は、2つのCPUコントローラ14ー1、14−2を備える。CPU200とCPU201とがCPUコントローラ14−1に接続され、CPU202とCPU203とがCPUコントローラ14−2に接続されている。また、CPUコントローラ14−1にメモリ16−1、ROM15−1が接続され、CPUコントローラ14−2にメモリ16−2、ROM15−2が接続されている。メモリ16−1、16−2は図1に示すメモリ16と同様の機能を有する。ROM15−1、ROM15−2は、図1に示すROM15と同様の機能を有する。CPUコントローラ14−1、14−2は、図1に示すCPUコントローラ14と同様のCPUコントローラ機能を有する。また、CPUコントローラ14−1、14−2は、互いに、自分に接続されているCPUの動作状況を相手のCPUコントローラに通知し合って、自分に接続されているCPUが相手のCPUコントローラに接続されているCPUと同期しているかを判断する。例えば、CPUコントローラ14−1が、CPU200とCPU201の動作状況をCPUコントローラ14−2に通知し、CPUコントローラ14−2が、CPU202がCPU200と同期しているか、また、CPU203がCPU201と同期しているかを判断する。各々のCPUコントローラは、自分に接続されているCPUが相手のCPUコントローラに接続されているCPUと同期していないと判断した場合は、自分に接続されているCPUに対して再同期処理を行うように指示する(CPU同期処理制御を実行する)。
また、本実施形態の情報処理装置が、図5に示すような構成を有する情報処理装置2−4であってもよい。情報処理装置2−4においては、図4に示すCPUコントローラ14−1と同様の機能を有するCPUコントローラ14−3と、図4に示すCPU200、201と同様の機能を有するCPUコア300、301とが、一つのCPU3−1内に設けられている。また、図4に示すCPUコントローラ14−2と同様の機能を有するCPUコントローラ14−4と、図4に示すCPU202、203と同様の機能を有するCPUコア302、303とが、一つのCPU3−2内に設けられている。
以下に、図1を参照して前述した情報処理装置1における、同期動作中のCPUが同時にエラーを検出した場合の処理について、図6乃至図22を参照して説明する。図6及び図7は、情報処理装置1が備えるCPUがエラーを検出した場合の動作処理フローの例である。図1に示すCPU10とCPU11とが同時にエラーを検出したものとし、図6、図7では、エラーを検出したCPU10の動作処理を例にとって説明する。
情報処理装置1において障害が発生すると、CPU10がエラーを検出する(図6のステップS41)。CPU10が、割込みマスクに設定し、ファームウェアのエラー処理、すなわち、ファームウェア151のエラー処理プログラム201の指示に従ったエラー処理を開始する(ステップS42)。次に、CPU10が、エラー処理プログラム201の指示に従って、図1に示すCPU11に対して、ファームウェアのエラー処理を開始したことを通知する(ステップS43)。続いて、CPU10が、エラー処理プログラム201の指示に従って、エラー要因の調査を行い、エラーをログする(ステップS44)。次に、CPU10が、エラー処理プログラム201の指示に従って、障害が復旧可能かを判断する(ステップS45)。ステップS45において、CPU10が、障害が復旧可能であると判断した場合、CPU10が、エラー処理プログラム201の指示に従って、障害復旧処理を実行し(ステップS51)、図7のステップS53に進む。CPU10が、障害が復旧可能でないと判断した場合は、CPU10が、エラー処理プログラム201の指示に従って、OSのエラー処理をCallする(図6のステップS46)。そして、CPU10がOSのエラー処理、すなわち、OS211(図1を参照)が指示するエラー処理を開始し(ステップS47)、図7のステップS48に進む。
次に、CPUが、共通のバス31で接続された他のCPUであるCPU11に対して、OSのエラー処理割込みを発行する(図7のステップS48)。続いて、OS211が、障害が復旧可能であるかを判断する(ステップS49)。OS211が、障害が復旧不可能であると判断した場合、OS211がシステムを停止させる(ステップS50)。OS211が、障害が復旧可能であると判断した場合、OS211が障害復旧処理を行うとともに、ファームウェアのエラー処理への復帰処理を行う(ステップS52)。続いて、CPU10が、ファームウェア151のエラー処理プログラム201の指示に従って、他のCPU(CPU11)に対してエラー処理の完了を通知する(ステップS53)。また、CPU10が、エラー処理プログラム201の指示に従って、他のCPU(CPU11)に対して再同期割込みを発行する(ステップS54)。CPU10が、エラー処理プログラム201の指示に従って、エラー処理から復帰する(ステップS55)。そして、CPU10が、割込みマスクを解除して(ステップS56)、通常処理に戻る(ステップS57)。
図8及び図9は、CPUコントローラが再同期割込みを発行した場合の動作処理フローの例である。まず、図1に示す情報処理装置1が備える同期動作中のCPU10、12が、同時にエラーを検出する(図8のステップS61)。次に、CPU10、12が、CPUコントローラ14に対して、エラー通知を同時に行う(ステップS62)。続いて、CPUコントローラ14が、CPU12及びCPU12とバス32で接続されているCPU13(片側CPU)を縮退させ、縮退させなかったCPU10と、このCPU10とバス31で接続されているCPU11とに対して再同期割込みを発行する(ステップS63)。CPU11が、割込みマスクに設定し、ファームウェアの再同期処理を開始する(ステップS64)。なお、図8のステップS64以下の処理、図9のステップS66以下の処理、ステップS71以下の処理は、CPU10とCPU11とに共通する処理であり、この例では、例えばCPU11における処理を説明する。CPU11が、CPU再同期処理プログラム202の指示に従って、再同期処理を行うCPUが全て揃ったか、すなわち、CPU11とバス31で接続された全てのCPUが再同期処理を実行できる状態にあるかを判断する(ステップS65)。図1に示す例では、CPU11は、CPU10が再同期処理を実行できる状態にあるかを判断する。CPU11が、再同期処理を行うCPUが全て揃ったと判断した場合、CPU11が、CPU再同期処理プログラム202の指示に従って、再同期処理を実行する(図9のステップS66)。CPU11が、CPU再同期処理プログラム202の指示に従って、再同期処理から復帰する(ステップS67)。続いて、CPU11が、割込みマスクを解除し(ステップS68)、通常処理(CPU同期動作)に戻る(ステップS69)。
図8のステップS65において、CPU11が、再同期処理を行うCPUが全て揃っていないと判断した場合、CPU11が、CPU11とバス31で接続された他のCPUがエラー処理中であるかを判断する(図8のステップS70)。例えば、CPU11は、CPU10がエラー処理中であるかを判断する。CPU11が、他のCPUがエラー処理中でないと判断した場合は図8のステップS65に戻る。CPU11が、他のCPUがエラー処理中であると判断した場合は、CPU11は、CPU再同期処理プログラム202の指示に従って、再同期処理から復帰する(図9のステップS71)。続いて、CPU11が、割込みマスクを解除して(ステップS72)、通常処理(CPU同期ずれ動作)に戻る(ステップS73)。
図10及び図11は、エラーを検出したCPUから再同期割込みを受けるCPUの動作処理フローの例である。図10及び図11では、エラーを検出したCPU10(図1を参照)から再同期割込みを受けるCPU11の動作処理を例にとって説明する。
まず、CPU11が、エラーを検出したCPU10から再同期割込みを受ける(図10のステップS81)。CPU11が、割込みマスクに設定し、CPU再同期処理プログラム202の指示に従って再同期処理を開始する(ステップS82)。次に、CPU11が、CPU再同期処理プログラム202の指示に従って、再同期処理を行うCPUが全て揃ったか、すなわち、CPU11とバス31で接続された全てのCPUが再同期処理を実行できる状態にあるかを判断する(ステップS83)。図1に示す例では、CPU11は、CPU10が再同期処理を実行できる状態にあるかを判断する。CPU11が、再同期処理を行うCPUが全て揃ったと判断した場合、CPU11が、CPU再同期処理プログラム202の指示に従って、再同期処理を実行する(図11のステップS84)。CPU10が、CPU再同期処理プログラム202の指示に従って、再同期処理から復帰する(ステップS85)。続いて、CPU10が、割込みマスクを解除し(ステップS86)、通常処理(CPU同期動作)に戻る(ステップS87)。
CPU11が、図10のステップS83において再同期処理を行うCPUが全て揃っていないと判断した場合、CPU11が、CPU11とバス31で接続された他のCPUがエラー処理中であるかを判断する(図10のステップS88)。例えば、CPU11は、CPU10がエラー処理中であるかを判断する。CPU11が、他のCPUがエラー処理中でないと判断した場合は図10のステップS83に戻る。CPU11が、他のCPUがエラー処理中であると判断した場合は、CPU11は、CPU再同期処理プログラム202の指示に従って、再同期処理から復帰する(図11のステップS89)。続いて、CPU11が、割込みマスクを解除して(ステップS90)、通常処理(CPU同期ずれ動作)に戻る(ステップS91)。
図12は、図7のステップS48において発行されたOSのエラー処理割込みを受けたCPUの動作処理フローの例である。CPU11がOSのエラー処理割込みを受けると(ステップS101)、CPU11が割込みマスクに設定し、OSのエラー処理を開始する(ステップS102)。すなわち、CPU11が、OSの指示に従ってOSのエラー処理を実行する(ステップS103)。CPU11が、OSのエラー処理から復帰すると(ステップS104)、CPU11が、割込みマスクを解除して(ステップS105)、通常処理に戻る(ステップS106)。
図13乃至図22は、同期動作中のCPUが同時にエラーを検出した場合の処理の詳細例を示す図である。図13は、CPUが同期動作しており、エラーを検出していない状態の例を示す。図13において、CPU10とCPU12とが同期動作している。また、CPU11とCPU13とが同期動作している。CPU10とCPU11とが、共通のバス31を介してCPUコントローラ14と接続されている。また、CPU12とCPU13とが、共通のバス32を介してCPUコントローラ14と接続されている。各々のCPUはOSの通常処理を実行している(図13の#1乃至#4を参照)。
図14は、同期動作している両方のCPUがエラーを検出した状態の例を示す。この例では、CPU10とCPU12とが同時にエラーを検出する(図14の#5及び#6を参照)。エラーを検出したCPU10とCPU12が、CPUコントローラ14に対してエラーを検出したことを通知する(図14の#7を参照)。続いて、CPU10とCPU12とが、ファームウェアのエラー処理を開始する(図14の#8及び#9を参照)。
図15は、CPUコントローラが、エラーを検出したCPUのいずれか一方と、そのCPUと共通のバスに接続されているCPUとを縮退した状態の例を示す。この例では、CPUコントローラ14は、CPU12と、CPU12とバス32で接続されているCPU13とを縮退させる(図15の#10を参照)。エラー検出のタイミングが異なる場合、CPUコントローラ14が、より早くエラーを検出したCPUを縮退するようにしてもよい。続いて、CPUコントローラ14が、縮退させなかった側のCPUであるCPU10とCPU11とに対して、再同期割込みを発行する(図15の#11)。
図16は、縮退しない側のCPUがCPUコントローラから再同期割込みを受けた状態の例を示す。この例では、エラーを検出したCPU10とエラーを検出していないCPU11とにおいて、以下の動作を実行する。CPU10は、エラー処理プログラム201の指示に従って、ファームウェアのエラー処理を実行する。再同期割込みはペンディングされる(図16の#12を参照)。また、CPU10は、エラー処理プログラム201の指示に従って、CPU11に対して、ファームウェアのエラー処理を開始したことを通知する(図16の#13を参照)。この通知処理は、前述した図6のステップS43の処理に対応する。CPU11は、CPUコントローラ14から再同期割込みを受けると、割込みマスクに設定し、CPU再同期処理プログラム202の指示に従って再同期処理の実行を開始する(図16の#14を参照)。しかし、CPU11は、CPU10からエラー処理を開始したことを通知されると、前述した図8のステップS70において、CPU10がエラー処理中であると判断して、再同期処理処理から復帰する(図9のステップS71を参照)。その結果、CPU11は、割込みマスクを解除して、通常処理に復帰する(図16の#15、図9のステップS72、S73を参照)。これによって、CPU11が図17を参照して後述するOSのエラー処理割込みを受け付けることができる状態になる。
図17は、OSのエラー処理を実行するCPU10が、CPU11にOSのエラー処理割込みを発行した状態の例を示す。CPU10が、OSのエラー処理を実行し(図17の#16を参照)、CPU11に対して、OSのエラー処理割込みを発行する(図17の#17を参照)。この処理は、前述した図7のステップS48の処理に対応する。CPU11は、CPU10からのOSのエラー処理割込みを受け付けて、OSのエラー処理を開始する(図17の#18を参照)。
図18は、CPU10、11が、OSのエラー処理の実行を完了した状態の例を示す。CPU10がOSのエラー処理の実行を完了し、ファームウェアのエラー処理に復帰する(図18の#19を参照)。この処理は、前述した図7のS52の処理に対応する。また、CPU11が、OSのエラー処理の実行を完了し、通常処理に復帰する(図18の#20を参照)。この処理は、前述した図12のS106の処理に対応する。
図19は、CPU10からCPU11へエラー処理の完了を通知する状態の例を示す。CPU10が、CPU再同期処理プログラム202の指示に従って、CPU11に対して、エラー処理が完了したことを通知する(図19の#21を参照)。この処理は、前述した図7のステップS53の処理に対応する。
図20は、CPU10からCPU11へ再同期割込みを発行した状態の例を示す。CPU10が、CPU再同期処理プログラム202の指示に従って、CPU11に対して、再同期割込みを発行する(図20の#22を参照)。この処理は、前述した図7のステップS54の処理に対応する。CPU11が、再同期割込みを受け付ける(図20の#23を参照)。
図21は、CPU10がエラー処理から復帰した状態の例を示す。CPU10がエラー処理から通常処理に復帰し、ペンディングされていた再同期割込みを受け付け、再同期処理を開始する(図21の#24を参照)。CPU11は、再同期を行う全てのCPUが揃ったか、すなわち、CPU10が再同期処理を行う状態にあるかを判断する。この処理は、前述した図10のステップS83の処理に対応する。この例では、CPU10は、再同期割込みを受け付けている。従って、CPU11は、CPU10が再同期処理を行う状態にあると判断し、その結果、CPU11が、再同期処理を実行する(図21の#25、図11のS84を参照)。
図22は、CPU10及びCPU11が再同期処理を完了した後の状態の例を示す。CPU10及びCPU11は、再同期処理を完了すると、OSの通常処理に復帰する(図22の#26、#27を参照)。CPU10、CPU11は、それぞれ、CPU12、CPU13と同期動作し、その結果、CPU12、CPU13はOSの通常処理を実行する(図22の#28、#29を参照)。
本情報処理装置、本情報処理装置の制御方法、及び本情報処理装置の制御プログラムによれば、同期動作中の制御装置が同時にエラーを検出した場合において、エラーを検出していない制御装置がOSのエラー処理を実行することができる。

Claims (10)

  1. 互いに同期動作を行う第1の制御装置と第2の制御装置とがエラーの発生を検出した場合に、前記第1の制御装置を含む第1の制御装置群と、前記第2の制御装置を含む第2の制御装置群とのうち、前記第2の制御装置群を縮退させる縮退制御手段と、
    前記第1の制御装置群に含まれる制御装置に対して再同期処理の実行を指示する再同期処理指示手段とを備え、
    前記第1の制御装置群に含まれる前記第1の制御装置とは異なる他の制御装置が、前記再同期処理の実行の指示を受けた場合に、割込みマスク設定を行い、
    前記第1の制御装置群に含まれる前記第1の制御装置が、前記再同期処理の実行の指示を受けた場合に、前記再同期処理の実行を留保してエラー処理を開始するとともに、前記割込みマスク設定を行った制御装置に指示して、前記割込みマスクを解除させる
    ことを特徴とする情報処理装置。
  2. 前記第1の制御装置が、前記割込みマスクを解除させた制御装置に対してエラー処理割込みを発行して、エラー処理を実行させる
    ことを特徴とする請求項1記載の情報処理装置。
  3. エラー処理の実行を完了した前記第1の制御装置が、前記エラー処理を実行させた制御装置に対して再同期割込みを発行して、再同期処理を実行させる
    ことを特徴とする請求項2記載の情報処理装置。
  4. 前記第1の制御装置から前記再同期割込みの発行を受けた制御装置が、再同期処理を実行する制御装置が全て揃ったかを判断し、前記再同期割込みの発行を受けた制御装置が、再同期処理を実行する制御装置が全て揃ったと判断した場合に、再同期処理を実行する
    ことを特徴とする請求項3記載の情報処理装置。
  5. 互いに同期動作を行う第1の制御装置と第2の制御装置とがエラーの発生を検出した場合に、前記第1の制御装置を含む第1の制御装置群と、前記第2の制御装置を含む第2の制御装置群とのうち、前記第2の制御装置群を縮退させ、
    前記第1の制御装置群に含まれる制御装置に対して再同期処理の実行を指示し、
    前記第1の制御装置群に含まれる前記第1の制御装置とは異なる他の制御装置が、前記再同期処理の実行の指示を受けた場合に、割込みマスク設定を行い、
    前記第1の制御装置群に含まれる前記第1の制御装置が、前記再同期処理の実行の指示を受けた場合に、前記再同期処理の実行を留保してエラー処理を開始するとともに、前記割込みマスク設定を行った制御装置に指示して、前記割込みマスクを解除させる
    ことを特徴とする情報処理装置の制御方法。
  6. 前記第1の制御装置が、前記割込みマスクを解除させた制御装置に対してエラー処理割込みを発行して、エラー処理を実行させる
    ことを特徴とする請求項5記載の情報処理装置の制御方法。
  7. エラー処理の実行を完了した前記第1の制御装置が、前記エラー処理を実行させた制御装置に対して再同期割込みを発行して、再同期処理を実行させる
    ことを特徴とする請求項6記載の情報処理装置の制御方法。
  8. 前記第1の制御装置から前記再同期割込みの発行を受けた制御装置が、再同期処理を実行する制御装置が全て揃ったかを判断し、前記再同期割込みの発行を受けた制御装置が、再同期処理を実行する制御装置が全て揃ったと判断した場合に、再同期処理を実行する
    ことを特徴とする請求項7記載の情報処理装置の制御方法。
  9. 互いに同期動作を行う第1の制御装置と第2の制御装置とがエラーの発生を検出した場合に、前記第1の制御装置を含む第1の制御装置群と、前記第2の制御装置を含む第2の制御装置群とのうち、前記第2の制御装置群を縮退させる縮退制御手段と、前記第1の制御装置群に含まれる制御装置に対して再同期処理の実行を指示する再同期処理指示手段とを備える情報処理装置の制御プログラムであって、
    コンピュータに、
    前記第1の制御装置群に含まれる前記第1の制御装置とは異なる他の制御装置が、前記再同期処理の実行の指示を受けた場合に、割込みマスク設定を行う処理と、
    前記第1の制御装置群に含まれる前記第1の制御装置が、前記再同期処理の実行の指示を受けた場合に、前記再同期処理の実行を留保してエラー処理を開始するとともに、前記割込みマスク設定を行った制御装置に指示して、前記割込みマスクを解除させる処理とを実行させる
    ことを特徴とする情報処理装置の制御プログラム。
  10. 前記コンピュータに、更に、
    前記第1の制御装置が、前記割込みマスクを解除させた制御装置に対してエラー処理割込みを発行して、エラー処理を実行させる処理を実行させる
    ことを特徴とする請求項9記載の情報処理装置の制御プログラム。
JP2011503554A 2009-03-09 2009-03-09 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム Expired - Fee Related JP5278530B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/001038 WO2010103562A1 (ja) 2009-03-09 2009-03-09 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム

Publications (2)

Publication Number Publication Date
JPWO2010103562A1 JPWO2010103562A1 (ja) 2012-09-10
JP5278530B2 true JP5278530B2 (ja) 2013-09-04

Family

ID=42727875

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011503554A Expired - Fee Related JP5278530B2 (ja) 2009-03-09 2009-03-09 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム

Country Status (4)

Country Link
US (1) US8677179B2 (ja)
EP (1) EP2407885A4 (ja)
JP (1) JP5278530B2 (ja)
WO (1) WO2010103562A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012128697A (ja) * 2010-12-16 2012-07-05 Hitachi Ltd 情報処理装置
US10042697B2 (en) 2015-05-28 2018-08-07 Oracle International Corporation Automatic anomaly detection and resolution system
JP7058984B2 (ja) * 2017-11-20 2022-04-25 キヤノン株式会社 ファームウェア組み込み装置、制御方法、プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0695902A (ja) * 1992-09-17 1994-04-08 Hitachi Ltd プロセッサ二重化方式の情報処理装置
JP2006172220A (ja) * 2004-12-16 2006-06-29 Nec Corp フォールトトレラント・コンピュータシステム
JP2008046942A (ja) * 2006-08-18 2008-02-28 Nec Corp フォールトトレラントコンピュータ、そのトランザクション同期制御方法
WO2008120352A1 (ja) * 2007-03-29 2008-10-09 Fujitsu Limited 情報処理装置、エラー処理方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4428044A (en) * 1979-09-20 1984-01-24 Bell Telephone Laboratories, Incorporated Peripheral unit controller
AU616213B2 (en) * 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
US5748873A (en) 1992-09-17 1998-05-05 Hitachi,Ltd. Fault recovering system provided in highly reliable computer system having duplicated processors
AU680974B2 (en) * 1993-12-01 1997-08-14 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US5896523A (en) * 1997-06-04 1999-04-20 Marathon Technologies Corporation Loosely-coupled, synchronized execution
JP2004046599A (ja) * 2002-07-12 2004-02-12 Nec Corp フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
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
JP2006178636A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ、およびその制御方法
US7549082B2 (en) * 2005-04-28 2009-06-16 Hewlett-Packard Development Company, L.P. Method and system of bringing processors to the same computational point
US7496786B2 (en) * 2006-01-10 2009-02-24 Stratus Technologies Bermuda Ltd. Systems and methods for maintaining lock step operation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0695902A (ja) * 1992-09-17 1994-04-08 Hitachi Ltd プロセッサ二重化方式の情報処理装置
JP2006172220A (ja) * 2004-12-16 2006-06-29 Nec Corp フォールトトレラント・コンピュータシステム
JP2008046942A (ja) * 2006-08-18 2008-02-28 Nec Corp フォールトトレラントコンピュータ、そのトランザクション同期制御方法
WO2008120352A1 (ja) * 2007-03-29 2008-10-09 Fujitsu Limited 情報処理装置、エラー処理方法

Also Published As

Publication number Publication date
EP2407885A4 (en) 2013-07-03
US8677179B2 (en) 2014-03-18
JPWO2010103562A1 (ja) 2012-09-10
EP2407885A1 (en) 2012-01-18
US20120005525A1 (en) 2012-01-05
WO2010103562A1 (ja) 2010-09-16

Similar Documents

Publication Publication Date Title
CN1326042C (zh) 容错计算机系统及其再同步方法和再同步程序
US7500139B2 (en) Securing time for identifying cause of asynchronism in fault-tolerant computer
JP2004046599A (ja) フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
US8555012B2 (en) Data storage apparatus
US9323823B2 (en) Method for operating a redundant automation system
JP2006178557A (ja) コンピュータシステム及びエラー処理方法
JP5278530B2 (ja) 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム
EP1380950B1 (en) Fault tolerant information processing apparatus
JP5287974B2 (ja) 演算処理システム、再同期方法、およびファームプログラム
JP2008146447A (ja) フォールトトレラントコンピュータ
EP2372554B1 (en) Information processing device and error processing method
KR100583214B1 (ko) 정보 처리 장치
JP2009098988A (ja) フォルトトレラントコンピュータシステム
US20190121561A1 (en) Redundant storage system and failure recovery method in redundant storage system
JP5556086B2 (ja) 二重化システム、及び、二重化方法
US9311010B2 (en) Disk array unit, and method and program for controlling power source in disk array unit
JP2006053713A (ja) 二重化制御装置と二重化制御方法
CN116909759B (zh) 信息处理方法、装置及设备、介质和控制器集群
JPH04360242A (ja) 二重化システムの系切替装置およびその方法
JPS63136142A (ja) 論理装置のエラ−回復方式
JP2004355776A (ja) 携帯型情報処理装置
JPH09114687A (ja) プロセッサ診断回路とこれを備えたディスクコントローラ
JPS6341943A (ja) 論理装置のエラ−回復方式
JPS62172436A (ja) 論理装置のエラ−回復方式
JPS6020274A (ja) プロセツサ間同期制御装置

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130423

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130506

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees