JP2004046455A - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP2004046455A
JP2004046455A JP2002201796A JP2002201796A JP2004046455A JP 2004046455 A JP2004046455 A JP 2004046455A JP 2002201796 A JP2002201796 A JP 2002201796A JP 2002201796 A JP2002201796 A JP 2002201796A JP 2004046455 A JP2004046455 A JP 2004046455A
Authority
JP
Japan
Prior art keywords
modules
data
module
address
memory
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.)
Pending
Application number
JP2002201796A
Other languages
English (en)
Inventor
Shigeyuki Aino
愛野 茂幸
Shigeo Yamazaki
山崎 茂雄
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2002201796A priority Critical patent/JP2004046455A/ja
Priority to TW092118159A priority patent/TWI241479B/zh
Priority to CA002434290A priority patent/CA2434290A1/en
Priority to US10/612,930 priority patent/US20040153731A1/en
Priority to AU2003211183A priority patent/AU2003211183A1/en
Priority to CNB031453627A priority patent/CN1269040C/zh
Priority to KR1020030046385A priority patent/KR100566340B1/ko
Priority to ES03015794T priority patent/ES2253613T3/es
Priority to EP03015794A priority patent/EP1380950B1/en
Priority to DE60303468T priority patent/DE60303468T2/de
Publication of JP2004046455A publication Critical patent/JP2004046455A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Hardware Redundancy (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】運用状態から切り離されたコンピューティングモジュールを組み込むときの停止時間の短いフォルトトレラントコンピュータを提供する。
【解決手段】監視手段700は、複数のモジュール100,200,300のプロセッサ101,102,201,202,301,302の動作の一致を監視している。いずれかのモジュールのプロセッサの動作が他のモジュールと不一致となったことが検出されると、アドレス記憶手段701は、不一致が検出されたアクセスおよびそれ以降の各モジュール100,200,300のプロセッサがライトアクセスするアドレスを記録する。データコピー手段702は、不一致となったモジュール内のメモリに、アドレス記憶手段701に記録されたアドレスについてのみ、他のモジュール内のメモリからデータをコピーする。
【選択図】   図1

Description

【0001】
【発明の属する技術分野】
本発明は、クロック同期させた複数のコンピューティングモジュールで同じ命令列を同時に処理するロックステップフォルトトレラントコンピュータのようなフォルトトレラントコンピュータに関し、特に、他のコンピューティングモジュールとの動作の同一性が崩れて運用から切り離されたコンピューティングモジュールを他のコンピューティングモジュールに同期させる処理の高速化に関する。
【0002】
【従来の技術】
従来のロックステップフォルトトレラントコンピュータは、複数のコンピューティングモジュールを有し、これら複数のコンピューティングモジュールで同じ命令を同時に実行している。そして、故障あるいはその他の何らかの要因でいずれかのコンピューティングモジュールが他のコンピューティングモジュールと異なる動作をすることがある。
【0003】
ロックステップフォルトトレラントコンピュータは、他のコンピューティングモジュールと異なる動作をした(すなわちロックステップが外れた)コンピューティングモジュールを検出すると、そのコンピューティングモジュールを一旦運用状態から切り離す。
【0004】
コンピューティングモジュールのロックステップが外れる要因には様々なものがある。そして、ロックステップの外れに対する対処方法は要因により異なる。
【0005】
ロックステップが外れる1つの要因として、コンピューティングモジュール内で起こる固定的な故障がある。固定的な故障とは、一時的な擾乱や、自然に復旧するような故障でなく、何らかの修理を必要とするようなものである。
【0006】
いずれかのコンピューティングモジュールに固定的な故障が起きると、通常、故障したコンピューティングモジュールをロックステップフォルトトレラントコンピュータから取り出し、その代わりに他の正常なコンピューティングモジュールを取り付ける。
【0007】
ロックステップが外れる他の要因として、コンピューティングモジュールの製造上の差違により、一時的に動作タイミングが他のコンピューティングモジュールとずれることが考えられる。また、さらに他の要因として、α線などの影響によりメモリが一時的に誤動作することが考えられる。これらの場合、コンピューティングモジュールに固定的な故障が生じていないので、コンピューティングモジュールを交換する必要がない。
【0008】
固定的な故障が生じた場合にはコンピューティングモジュールを交換した後、固定的な故障が生じていない場合には交換せずにそのまま、運用状態から切り離されているコンピューティングモジュールを再び他のコンピューティングモジュールと同期させる。運用から切り離されているコンピューティングモジュールを他のコンピューティングモジュールと同期させる(運用に組み込む)処理を再同期化処理という。
【0009】
運用状態から切り離されていたコンピューティングモジュールを組み込むとき、ロックステップフォルトトレラントコンピュータは、組み込みを行うコンピューティングモジュールのメモリに他のコンピューティングモジュールのメモリの内容をコピーする。それ以降、新たに組み込まれたコンピューティングモジュールは他のコンピューティングモジュールと同じ動作をする。
【0010】
【発明が解決しようとする課題】
従来のロックステップフォルトトレラントコンピュータは、運用状態から切り離されたコンピューティングモジュールを組み込むとき、全てのコンピューティングモジュールを停止させて、メモリ全体の内容のコピーを行っていた。これは、全てのコンピューティングモジュールの内部の状態を完全に一致させるためである。
【0011】
しかし、処理性能や記憶能力を向上させるために、近年、ロックステップフォルトトレラントコンピュータのコンピューティングモジュール内のメモリ容量は増大している。そして、現在、コンピューティングモジュール内のメモリの容量は数ギガバイトにも及んでいる。そのため、コンピューティングモジュール内のメモリの内容を全てコピーすることは長時間を要する。
【0012】
そのため、従来のロックステップフォルトトレラントコンピュータは、運用状態から切り離されたコンピューティングモジュールを組み込むために、長時間、運用を停止していた。
【0013】
本発明の目的は、運用状態から切り離されたコンピューティングモジュールを組み込むときの停止時間の短いフォルトトレラントコンピュータを提供することである。
【0014】
【課題を解決するための手段】
上記目的を達成するために、本発明の情報処理装置は、プロセッサおよびメモリをそれぞれ備えた複数のモジュールと、
複数の前記モジュールのプロセッサの動作の一致を監視しており、他のモジュールのプロセッサと動作が不一致となったモジュールを検出すると、全ての前記モジュールに停止を指示する監視手段と、
前記監視手段により、いずれかのモジュールのプロセッサの動作が他のモジュールと不一致となったことが検出されると、不一致が検出されたアクセスおよびそれ以降に前記各モジュールのプロセッサがライトアクセスするアドレスを記録するアドレス記憶手段と、
全ての前記モジュールが停止すると、動作が他のモジュールと不一致となったことが前記監視手段により検出された前記モジュール内のメモリに、前記アドレス記憶手段に記録されたアドレスについてのみ、他のモジュール内のメモリからデータをコピーするデータコピー手段を有している。
【0015】
したがって、本発明によれば、監視手段がロックステップの外れを検出すると、アドレス記憶手段が、ロックステップの外れたモジュールにおいてデータが他のモジュールと異なる可能性のあるメモリのアドレスを記録し、データコピー手段が、アドレス記憶手段に記録されているアドレスのデータだけをコピーするので、短い時間でデータコピーが完了させることができ、ロックステップの外れたモジュールを早期に運用に組み込むことができる。
【0016】
また、本発明の情報処理装置において、前記データコピー手段は、動作が他のモジュールと不一致となったことが前記監視手段により検出された前記モジュールに固定的な故障が生じていないときだけデータをコピーしてもよい。
【0017】
本発明の一態様によれば、前記データコピー手段は、ダイレクトメモリアクセスによりデータをコピーする。
【0018】
また、本発明の情報処理装置は、複数の前記モジュールは互いにクロック同期して同じ処理を同時に実行しているロックステップ型のフォルトトレラントコンピュータであり、
前記監視手段は、前記各モジュールのプロセッサによるアクセスのアドレスストローブのタイミングの一致により前記プロセッサの動作の一致を監視するとしてもよい。
【0019】
あるいは、前記監視手段は、前記各モジュールのプロセッサによる、アクセスのアドレスストローブのタイミング、該タイミングにおけるコマンドおよびアドレスの一致により前記プロセッサの動作の一致を監視するとしてもよい。
【0020】
したがって、本発明によれば、ロックステップを早期に検出することができる。
【0021】
本発明の一態様によれば、前記プロセッサはキャッシュを有しており、
前記監視手段の指示により全ての前記モジュールが停止した後、前記データコピー手段がデータをコピーする前に、ロックステップの外れていないモジュールのプロセッサがキャッシュフラッシュを行い、
前記アドレス記憶手段は、前記キャッシュフラッシュによりデータの書き戻されるアドレスを記録する。
【0022】
また、本発明の情報処理装置は、前記データコピー手段が前記アドレス記憶手段に記録されている全てのアドレスについてデータのコピーを完了すると、全ての前記モジュールが動作を開始するとしてもよい。
【0023】
【発明の実施の形態】
従来技術として述べたように、ロックステップが外れる要因には、コンピューティングモジュールの固定的な故障と、そうでないものとがある。固定的な故障が生じたコンピューティングモジュールは交換する必要がある。しかし、固定的な故障でない要因によりロックステップが外れたコンピューティングモジュールは、通常、交換されずそのまま運用に組み込まれる。そのため、コンピューティングモジュールのロックステップが外れたとき、そのコンピューティングモジュールが交換されずにそのまま組み込まれることは少なくない。また、ロックステップの外れたコンピューティングモジュールのメモリ内のデータは、ロックステップの外れていない他のコンピューティングモジュールのメモリ内のデータと差が生じていることが考えられる。しかし、その差分は小さいことが多い。
【0024】
本発明の一実施形態について図面を参照して詳細に説明する。
【0025】
本実施形態は、ロックステップの外れたコンピューティングモジュールを交換せずに組み込むときの、ロックステップフォルトトレラントコンピュータの停止時間を短縮するものである。
【0026】
図1は、本発明による一実施形態のロックステップフォルトトレラントコンピュータの構成を示すブロック図である。
【0027】
図1を参照すると、ロックステップフォルトトレラントコンピュータは、コンピューティングモジュール100,200,300、周辺装置制御部400,500、タイミング監視部700、アドレス記憶部701およびデータ転送部702を有する。
【0028】
コンピューティングモジュール100は、プロセッサ101,102、メモリ104およびメモリ制御部105を有している。
【0029】
プロセッサ101とプロセッサ102は同じ構成でありバス103を共有している。プロセッサ101,102のバス103にメモリ制御部105が接続されている。メモリ104はメモリ制御部105に接続されている。
【0030】
メモリ制御部105は信号線730を介してデータ転送部702に接続されている。また、メモリ制御部105は信号線600を介して周辺装置制御部400に接続され、信号線610を介して周辺装置制御部500に接続されている。
【0031】
コンピューティングモジュール100,200,300は全て同じ構成である。コンピューティングモジュール200は、プロセッサ201,202、メモリ204およびメモリ制御部205を有している。プロセッサ201,202はバス203を共有している。メモリ制御部205は信号線731を介してデータ転送部702に接続されている。また、メモリ制御部205は信号線601を介して周辺装置制御部400に接続され、信号線611を介して周辺装置制御部500に接続されている。
【0032】
コンピューティングモジュール300は、プロセッサ301,302、メモリ304およびメモリ制御部305を有している。プロセッサ301,302はバス303を共有している。メモリ制御部305は信号線732を介してデータ転送部702に接続されている。また、メモリ制御部305は信号線602を介して周辺装置制御部400に接続され、信号線612を介して周辺装置制御部500に接続されている。
【0033】
以下、コンピューティングモジュール100に着目して説明する。
【0034】
プロセッサ101,102はロックステップフォルトトレラントコンピュータに与えられた命令を実行する。プロセッサ101,102は他のコンピューティングモジュール200,300のプロセッサとクロック同期して同じ命令を同時に実行する。命令列を実行するとき、プロセッサ101,102は、メモリ制御部105を介してメモリ104にライトアクセスまたはリードアクセスを行う。
【0035】
また、プロセッサ101,102は他のコンピューティングモジュール200,300のプロセッサとクロック同期して周辺装置へアクセスする。周辺装置制御部400に接続された周辺装置へのアクセスは、バス103、メモリ制御部105および信号線600を介して行われる。周辺装置制御部500に接続された周辺装置へのアクセスは、バス103、メモリ制御部105および信号線610を介して行われる。
【0036】
また、プロセッサ101,102は、タイミング監視部700からの割り込みにより停止指示を受けると、割り込みが発生したときに処理していたプロセスのコンテキストを所定のメモリ領域に掃き出して停止する。さらに、プロセッサ101,102は、自身のロックステップが外れたことによる停止指示により停止すると、その後にハードウェア診断を実行する。ハードウェア診断とは、コンピューティングモジュール100内のハードウェアに故障があるか否か診断するものである。
【0037】
メモリ制御部105は、プロセッサ101,102からのライトアクセスおよびリードアクセスのリクエストをメモリ104に伝える。また、メモリ制御部105は、メモリからのレスポンスをプロセッサ101,102に伝える。
【0038】
リクエストはライトアクセスまたはリードアクセスのときにプロセッサからメモリに送られる。ライトアクセスのリクエストには書き込みデータが含まれる。また、レスポンスはリードアクセスのときにメモリからプロセッサに送られる。レスポンスには読出しデータが含まれる。
【0039】
また、メモリ制御部105は、プロセッサ101,102から各周辺装置へのアクセスを周辺装置制御部400,500に伝える。
【0040】
また、メモリ制御部105は、データ転送部702から信号線730を介したアクセスをメモリ104に伝える。一例として、データ転送部702からのアクセスはDMA転送を行うものである。DMA転送では、メモリ104がデータ転送元になる場合と、データ転送先になる場合がある。
【0041】
周辺装置制御部400,500は、全てのコンピューティングモジュール100,200,300からの周辺装置へのアクセスのリクエストが一致しているか否か監視している。全てのコンピューティングモジュール100,200,300からのリクエストが一致していれば、周辺装置制御部400,500はそれらを1つのリクエストとして周辺装置に伝える。それらのリクエストが一致していなければ、周辺装置制御部400,500は、例えば、それらのリクエストを破棄してもよく、また多数決によって定まるリクエストを周辺装置に伝えてもよい。
【0042】
また、周辺装置へのアクセスがリードアクセスの場合、周辺装置制御部400,500は周辺装置から読み出されたデータを含むレスポンスを全てのコンピューティングモジュール100,200,300に同じタイミングで伝える。
【0043】
タイミング監視部700は、信号線710および信号線720を介して、コンピューティングモジュール100のバス103に接続されている。信号線710は、プロセッサ101,102からメモリ104または周辺装置へのアクセスのリクエストにおいて、アドレスの出力タイミングを示すアドレスストローブをバス103からタイミング監視部700に伝える。信号線720は、プロセッサ101,102からメモリ104または周辺装置へのアクセスのリクエストにおいて、コマンドおよびアドレスをパス103からタイミング監視部700に伝える。コマンドとは、例えばライトアクセスかリードアクセスかなどである。
【0044】
タイミング監視部700は、同様に、信号線711および信号線721を介して、コンピューティングモジュール200のバス203に接続されており、信号線712および信号線722を介して、コンピューティングモジュール300のバス303に接続されている。
【0045】
タイミング監視部700は、信号線710,711,712を介して受信したアドレスストローブと、信号線720,721,722を介して受信したコマンドおよびアドレスとを用いて、各コンピューティングモジュール100,200,300のアクセスが一致するか否か監視する。アクセスの不一致を検出すると、タイミング監視部700は、アクセスの不一致と、不一致となったコンピューティングモジュールをアドレス記憶部701に通知する。
【0046】
アクセスが不一致となったコンピューティングモジュールはロックステップの外れたものと判断される。
【0047】
また、タイミング監視部700は、アクセスの不一致を検出すると、全てのコンピューティングモジュールのプロセッサに割り込みによって停止指示を通知する。これにより、各プロセッサは、割り込みが発生したときに処理していたプロセスのコンテキストを所定のメモリ領域に掃き出して停止する。
【0048】
アクセスの一致の監視の具体例としては、タイミング監視部700は、各コンピューティングモジュール100,200,300から同じサイクルでアドレスストローブが受信され、かつ、そのタイミングで受信されたコマンドおよびアドレスが同じであれば、アクセスが一致したと判断すればよい。より簡易的な具体例として、タイミング監視部700は、アドレスストローブのみを受信し、各コンピューティングモジュール100,200,300から同じサイクルでアドレスストローブが受信されればアクセスが一致したと判断してもよい。
【0049】
アドレス記憶部701は、ロックステップの外れたコンピューティングモジュール内のメモリに記録されたデータがロックステップの外れていないコンピューティングモジュール内のメモリに記録されたデータと異なるアドレスを保持するバッファを有している。
【0050】
アドレス記憶部701は、アクセスの不一致と、不一致の検出されたコンピューティングモジュールをタイミング監視部701から通知されると、不一致が検出されたアクセスおよびそれ以降の各コンピューティングモジュールによるライトアクセスについて、アクセスされたアドレスを記録する。
【0051】
データ転送部702は、全てのコンピューティングモジュールのプロセッサが停止し、その後に行われるハードウェア診断が完了すると、エラーインディケータフラグとハードウェア診断の結果とを確認する。エラーインディケータフラグは、コンピューティングモジュール内にエラーが発生していることを示すフラグである。固定的な故障が発生していれば、データ転送部702はエラーインディケータフラグまたはハードウェア診断結果からそれを知ることができる。
【0052】
コンピューティングモジュール内に固定的な故障が発生していなければ、データ転送部702は、ロックステップの外れたコンピューティングモジュールのメモリの内容を他のコンピューティングモジュールのメモリの内容と一致させる再同期化処理を行う。
【0053】
コンピューティングモジュールにキャッシュがあれば、再同期化処理において、ロックステップの外れていないコンピューティングモジュールにおいてキャッシュフラッシュが実行される。キャッシュフラッシュが実行されるのは、ロックステップの外れていないいずれか1つのコンピューティングモジュールであってもよい。
【0054】
このキャッシュフラッシュによりキャッシュ内のデータがメモリに掃き出される。このとき、データがライトされたメモリのアドレスはアドレス記憶部701に記録される。
【0055】
キャッシュフラッシュが完了すると、データ転送部702は、アドレス記憶部701に記録さているアドレスについて、ロックステップの外れていないコンピューティングモジュールのメモリからロックステップの外れたコンピューティングモジュールのメモリにデータをコピーする。このとき、データのコピーにはDMA転送が用いられてもよい。
【0056】
データ転送部702はデータのコピーを完了すると、全てのコンピューティングモジュールをリセットし、通常運用を開始させる。このとき、全てのコンピューティングモジュールのプロセッサは、コンピューティングモジュールの所定のメモリ領域にあるコンテキストを使って通常運用時の動作を開始する。
【0057】
なお、本実施形態では、プロセッサ101,102からメモリ104へのアクセスのリクエストはバス103から引き出した信号線710,720によりタイミング監視部700およびアドレス記憶部701に伝えられている。しかし、本発明はこれに限定されるものではない。例えば、信号線710,720はメモリ制御部105とメモリ104の間の信号線から引き出されてもよい。
【0058】
本実施形態のロックステップフォルトトレラントコンピュータの動作の流れについて説明する。
【0059】
通常、コンピューティングモジュール100,200,300はクロック同期して、ロックステップフォルトトレラントコンピュータに与えられた同じ命令列を同時に実行している。各コンピューティングモジュール100,200,300のプロセッサは命令に従ってメモリや周辺装置にアクセスする。コンピューティングモジュール100,200,300のアクセスは、タイミング、コマンドおよびアドレスが一致しているか否かタイミング監視部700により監視されている。
【0060】
ここで、コンピューティングモジュール100に擾乱が入り、コンピューティングモジュール100のアクセスが他のコンピューティングモジュール200,300のアクセスと不一致になったとする。ただし、コンピューティングモジュール100に固定的な故障は生じていないものとする。
【0061】
その不一致はタイミング監視部700により検出される。その不一致を検出すると、タイミング監視部700は、コンピューティングモジュール100のロックステップが外れたと判断し、アクセスの不一致および不一致となったコンピューティングモジュールをアドレス記憶部701に通知する。
【0062】
また、タイミング監視部700は、全てのコンピューティングモジュールのプロセッサに対して割り込みによって停止指示を通知する。
【0063】
アクセスの不一致と、不一致となったコンピューティングモジュール100を通知されると、アドレス記憶部701は、不一致が検出したアクセスおよびそれ以降の、各コンピューティングによるライトアクセスについて、アクセスされたアドレスを記録する。
【0064】
停止指示を受けたプロセッサは、処理中のプロセスのコンテキストを所定のメモリ領域に掃き出して停止する。
【0065】
アクセスが他のコンピューティングモジュールと不一致となったコンピューティングモジュール(ここではコンピューティングモジュール100)については、その後、ハードウェア診断が実行される。
【0066】
ハードウェア診断が完了すると、データ転送部702がエラーインディケータとハードウェア診断の結果を確認する。ここでは、コンピューティングモジュール100には固定的な故障が生じていないので、データ転送部702は再同期化処理を行う。
【0067】
再同期化処理においては、ロックステップの外れていないコンピューティングモジュールにキャッシュがあれば、キャッシュフラッシュが行われる。このキャッシュフラッシュによりキャッシュ内のデータがメモリに掃き出される。メモリに対するデータの掃き出しはライトアクセスにより行われるので、データの掃き出されたアドレスはアドレス記憶部701に記録される。
【0068】
次に、データ転送部702は、アドレス記憶部701に記録さているアドレスについのみ、再同期化するコンピューティングモジュール(ここではコンピューティングモジュール100)に対して他のコンピューティングモジュールのデータをコピーする。このデータコピーはDMA転送により行われる。
【0069】
通常、アドレス記憶部701に記憶されているアドレスの数は、全体のアドレス数に比べて非常に少ない数である。そのため、ここでのデータコピーは全アドレスのデータコピーに比べて非常に短い時間で終了する。
【0070】
データコピーを完了すると、データ転送部702は全コンピューティングモジュールをリセットする。リセットされると、全てのコンピューティングモジュール100,200,300は互いにクロック同期し、通常の運用を開始する。
【0071】
以上説明したように、本実施形態によれば、タイミング監視部700が、ロックステップの外れを検出すると、アドレス記憶部701が、ロックステップの外れたコンピューティングモジュールにおいてデータが他のコンピューティングモジュールと異なる可能性のあるメモリのアドレスを記録し、再同期化するとき、データ転送部702が、アドレス記憶部701に記録されているアドレスのデータだけをDMA転送によりコピーするので、ロックステップを早期に検出可能であるとともに短い時間でデータコピーが完了させることができ、固定的な故障でない要因によりロックステップの外れたコンピューティングモジュールを早期に運用に組み込むことができる。
【0072】
なお、本実施形態では、ロックステップフォルトトレラントコンピュータが3つのコンピューティングモジュール100,200,300を有する構成を例示したが、本発明はそれに限定されない。コンピューティングモジュールは複数であればよい。
【0073】
【発明の効果】
本発明の情報処理装置によれば、監視手段がロックステップの外れを検出すると、アドレス記憶手段が、ロックステップの外れたモジュールにおいてデータが他のモジュールと異なる可能性のあるメモリのアドレスを記録し、データコピー手段が、アドレス記憶手段に記録されているアドレスのデータだけをコピーするので、短い時間でデータコピーが完了させることができ、ロックステップの外れたモジュールを早期に運用に組み込むことができる。また、本発明によれば、ロックステップを早期に検出することができる。
【図面の簡単な説明】
【図1】本発明による一実施形態のロックステップフォルトトレラントコンピュータの構成を示すブロック図である。
【符号の説明】
100,200,300  コンピューティングモジュール
101,102,201,202,301,302  プロセッサ
103,203,303  バス
104,204,304  メモリ
105,205,305  メモリ制御部
400,500  周辺装置制御部
600,601,602,610,611,612,710,711,712,730,731,732  信号線
700  タイミング監視部
701  アドレス記憶部
702  データ転送部

Claims (7)

  1. プロセッサおよびメモリをそれぞれ備えた複数のモジュールと、
    複数の前記モジュールのプロセッサの動作の一致を監視しており、他のモジュールのプロセッサと動作が不一致となったモジュールを検出すると、全ての前記モジュールに停止を指示する監視手段と、
    前記監視手段により、いずれかのモジュールのプロセッサの動作が他のモジュールと不一致となったことが検出されると、不一致が検出されたアクセスおよびそれ以降に前記各モジュールのプロセッサがライトアクセスするアドレスを記録するアドレス記憶手段と、
    全ての前記モジュールが停止すると、動作が他のモジュールと不一致となったことが前記監視手段により検出された前記モジュール内のメモリに、前記アドレス記憶手段に記録されたアドレスについてのみ、他のモジュール内のメモリからデータをコピーするデータコピー手段を有する情報処理装置。
  2. 前記データコピー手段は、動作が他のモジュールと不一致となったことが前記監視手段により検出された前記モジュールに固定的な故障が生じていないときだけデータをコピーする、請求項1記載の情報処理装置。
  3. 前記データコピー手段は、ダイレクトメモリアクセスによりデータをコピーする、請求項1または2記載の情報処理装置。
  4. 複数の前記モジュールは互いにクロック同期して同じ処理を同時に実行しており、
    前記監視手段は、前記各モジュールのプロセッサによるアクセスのアドレスストローブのタイミングの一致により前記プロセッサの動作の一致を監視する、請求項1〜3のいずれか1項に記載の情報処理装置。
  5. 複数の前記モジュールは互いにクロック同期して同じ処理を同時に実行しており、
    前記監視手段は、前記各モジュールのプロセッサによる、アクセスのアドレスストローブのタイミング、該タイミングにおけるコマンドおよびアドレスの一致により前記プロセッサの動作の一致を監視する、請求項1〜3のいずれか1項に記載の情報処理装置。
  6. 前記プロセッサはキャッシュを有しており、
    前記監視手段の指示により全ての前記モジュールが停止した後、前記データコピー手段がデータをコピーする前に、ロックステップの外れていないモジュールのプロセッサがキャッシュフラッシュを行い、
    前記アドレス記憶手段は、前記キャッシュフラッシュによりデータの書き戻されるアドレスを記録する、請求項1〜5のいずれか1項に記載の情報処理装置。
  7. 前記データコピー手段が前記アドレス記憶手段に記録されている全てのアドレスについてデータのコピーを完了すると、全ての前記モジュールが動作を開始する、請求項1〜6のいずれか1項に記載の情報処理装置。
JP2002201796A 2002-07-10 2002-07-10 情報処理装置 Pending JP2004046455A (ja)

Priority Applications (10)

Application Number Priority Date Filing Date Title
JP2002201796A JP2004046455A (ja) 2002-07-10 2002-07-10 情報処理装置
TW092118159A TWI241479B (en) 2002-07-10 2003-07-03 Information processing apparatus
CA002434290A CA2434290A1 (en) 2002-07-10 2003-07-04 Information processing apparatus
US10/612,930 US20040153731A1 (en) 2002-07-10 2003-07-07 Information processing apparatus
AU2003211183A AU2003211183A1 (en) 2002-07-10 2003-07-08 Information Processing Apparatus
CNB031453627A CN1269040C (zh) 2002-07-10 2003-07-08 信息处理设备
KR1020030046385A KR100566340B1 (ko) 2002-07-10 2003-07-09 정보 처리 장치
ES03015794T ES2253613T3 (es) 2002-07-10 2003-07-10 Aparato de tratamiento de informacion, tolerante a fallos.
EP03015794A EP1380950B1 (en) 2002-07-10 2003-07-10 Fault tolerant information processing apparatus
DE60303468T DE60303468T2 (de) 2002-07-10 2003-07-10 Fehlertolerante Vorrichtung zur Informationsverarbeitung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002201796A JP2004046455A (ja) 2002-07-10 2002-07-10 情報処理装置

Publications (1)

Publication Number Publication Date
JP2004046455A true JP2004046455A (ja) 2004-02-12

Family

ID=29728480

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002201796A Pending JP2004046455A (ja) 2002-07-10 2002-07-10 情報処理装置

Country Status (10)

Country Link
US (1) US20040153731A1 (ja)
EP (1) EP1380950B1 (ja)
JP (1) JP2004046455A (ja)
KR (1) KR100566340B1 (ja)
CN (1) CN1269040C (ja)
AU (1) AU2003211183A1 (ja)
CA (1) CA2434290A1 (ja)
DE (1) DE60303468T2 (ja)
ES (1) ES2253613T3 (ja)
TW (1) TWI241479B (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7493517B2 (en) 2004-12-17 2009-02-17 Nec Corporation Fault tolerant computer system and a synchronization method for the same
US7500139B2 (en) 2004-12-21 2009-03-03 Nec Corporation Securing time for identifying cause of asynchronism in fault-tolerant computer
JP2013210796A (ja) * 2012-03-30 2013-10-10 Oki Electric Ind Co Ltd 冗長化構築システム及び冗長化構築プログラム
JP2014157492A (ja) * 2013-02-15 2014-08-28 Nec Corp フォールトトレラントサーバ、そのメモリコピー方法およびライトアドレスデータ格納用メモリモジュール

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155721B2 (en) * 2002-06-28 2006-12-26 Hewlett-Packard Development Company, L.P. Method and apparatus for communicating information between lock stepped processors
US7085959B2 (en) * 2002-07-03 2006-08-01 Hewlett-Packard Development Company, L.P. Method and apparatus for recovery from loss of lock step
JP2004046599A (ja) * 2002-07-12 2004-02-12 Nec Corp フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
US7350026B2 (en) * 2004-12-03 2008-03-25 Thales Memory based cross compare for cross checked systems
JP4117684B2 (ja) * 2004-12-20 2008-07-16 日本電気株式会社 フォルトトレラント・二重化コンピュータシステムとその制御方法
US7730350B2 (en) * 2005-04-28 2010-06-01 Hewlett-Packard Development Company, L.P. Method and system of determining the execution point of programs executed in lock step
US7496786B2 (en) * 2006-01-10 2009-02-24 Stratus Technologies Bermuda Ltd. Systems and methods for maintaining lock step operation
TWI397820B (zh) * 2007-03-25 2013-06-01 Mstar Semiconductor Inc 記憶體界面裝置與應用於其上之記憶體資料存取方法
US7979746B2 (en) * 2009-04-27 2011-07-12 Honeywell International Inc. Dual-dual lockstep processor assemblies and modules
CN104516840B (zh) * 2013-09-29 2017-08-29 联想(北京)有限公司 信息处理方法和信息处理设备
CN112767332B (zh) * 2021-01-08 2024-05-17 心医国际数字医疗系统(大连)有限公司 一种基于cta影像的血管区域判断方法及系统

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4394745A (en) * 1980-04-11 1983-07-19 Sony Corporation Video editing apparatus
DE3923872A1 (de) * 1989-07-19 1991-01-24 Philips Patentverwaltung Schaltungsanordnung zum steuern des zugriffs auf einen speicher
JP2836637B2 (ja) * 1990-07-06 1998-12-14 三菱電機株式会社 無線通信機の制御装置
US5249188A (en) * 1991-08-26 1993-09-28 Ag Communication Systems Corporation Synchronizing two processors as an integral part of fault detection
WO1995015529A1 (en) * 1993-12-01 1995-06-08 Marathon Technologies Corporation Fault resilient/fault tolerant computing
FR2737029B1 (fr) * 1995-07-19 1997-09-26 Sextant Avionique Dispositif d'interface entre un calculateur a architecture redondante et un moyen de communication
DE19626184C2 (de) * 1996-06-29 1998-07-30 Alexander Ernst Erdwin Lahmann Vorrichtung zum Betreiben eines Systems mit zwei funktionsmäßig in einem Rechner parallel geschalteten Prozessoren
US5799022A (en) * 1996-07-01 1998-08-25 Sun Microsystems, Inc. Faulty module location in a fault tolerant computer system
US5953742A (en) * 1996-07-01 1999-09-14 Sun Microsystems, Inc. Memory management in fault tolerant computer systems utilizing a first and second recording mechanism and a reintegration mechanism
US5903717A (en) * 1997-04-02 1999-05-11 General Dynamics Information Systems, Inc. Fault tolerant computer system
US6314525B1 (en) * 1997-05-13 2001-11-06 3Com Corporation Means for allowing two or more network interface controller cards to appear as one card to an operating system
US6249828B1 (en) * 1997-05-13 2001-06-19 Micron Electronics, Inc. Method for the hot swap of a mass storage adapter on a system including a statically loaded adapter driver
US6065102A (en) * 1997-09-12 2000-05-16 Adaptec, Inc. Fault tolerant multiple client memory arbitration system capable of operating multiple configuration types
US6279119B1 (en) * 1997-11-14 2001-08-21 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US6243829B1 (en) * 1998-05-27 2001-06-05 Hewlett-Packard Company Memory controller supporting redundant synchronous memories
US6260159B1 (en) * 1998-06-15 2001-07-10 Sun Microsystems, Inc. Tracking memory page modification in a bridge for a multi-processor system
US7007190B1 (en) * 2000-09-06 2006-02-28 Cisco Technology, Inc. Data replication for redundant network components
GB2369692B (en) * 2000-11-29 2002-10-16 Sun Microsystems Inc Processor state reintegration
US6928583B2 (en) * 2001-04-11 2005-08-09 Stratus Technologies Bermuda Ltd. Apparatus and method for two computing elements in a fault-tolerant server to execute instructions in lockstep
US6970392B1 (en) * 2001-06-29 2005-11-29 Cypress Semiconductor Corp. High speed asynchronous and programmable state machine for generating almost full synchronous flags in a synchronous FIFO
US7472230B2 (en) * 2001-09-14 2008-12-30 Hewlett-Packard Development Company, L.P. Preemptive write back controller
US7085955B2 (en) * 2001-09-14 2006-08-01 Hewlett-Packard Development Company, L.P. Checkpointing with a write back controller
US20030163769A1 (en) * 2002-02-27 2003-08-28 Sun Microsystems, Inc. Memory module including an error detection mechanism for address and control signals
US6941493B2 (en) * 2002-02-27 2005-09-06 Sun Microsystems, Inc. Memory subsystem including an error detection mechanism for address and control signals
US7003692B1 (en) * 2002-05-24 2006-02-21 Cisco Technology, Inc. Dynamic configuration synchronization in support of a “hot” standby stateful switchover
US7003691B2 (en) * 2002-06-28 2006-02-21 Hewlett-Packard Development Company, L.P. Method and apparatus for seeding differences in lock-stepped processors

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7493517B2 (en) 2004-12-17 2009-02-17 Nec Corporation Fault tolerant computer system and a synchronization method for the same
US7500139B2 (en) 2004-12-21 2009-03-03 Nec Corporation Securing time for identifying cause of asynchronism in fault-tolerant computer
JP2013210796A (ja) * 2012-03-30 2013-10-10 Oki Electric Ind Co Ltd 冗長化構築システム及び冗長化構築プログラム
JP2014157492A (ja) * 2013-02-15 2014-08-28 Nec Corp フォールトトレラントサーバ、そのメモリコピー方法およびライトアドレスデータ格納用メモリモジュール

Also Published As

Publication number Publication date
KR100566340B1 (ko) 2006-03-31
DE60303468D1 (de) 2006-04-20
EP1380950B1 (en) 2006-02-08
ES2253613T3 (es) 2006-06-01
US20040153731A1 (en) 2004-08-05
KR20040005684A (ko) 2004-01-16
TW200402622A (en) 2004-02-16
EP1380950A1 (en) 2004-01-14
CN1472650A (zh) 2004-02-04
TWI241479B (en) 2005-10-11
CA2434290A1 (en) 2004-01-10
AU2003211183A1 (en) 2004-01-29
DE60303468T2 (de) 2006-09-28
CN1269040C (zh) 2006-08-09

Similar Documents

Publication Publication Date Title
US7496786B2 (en) Systems and methods for maintaining lock step operation
US7500139B2 (en) Securing time for identifying cause of asynchronism in fault-tolerant computer
KR101121116B1 (ko) 동기 제어 장치, 정보 처리 장치 및 동기 관리 방법
JPH01154241A (ja) 同期二重コンピュータシステム
JP2004046455A (ja) 情報処理装置
EP0764302A1 (en) Main memory system and checkpointing protocol for fault-tolerant computer system
JPH01154243A (ja) 耐欠陥性でない要素と耐欠陥性システムとのインターフェイス
US6785763B2 (en) Efficient memory modification tracking with hierarchical dirty indicators
US6961826B2 (en) Processor state reintegration using bridge direct memory access controller
US6950907B2 (en) Enhanced protection for memory modification tracking with redundant dirty indicators
JP4161276B2 (ja) フォルトトレラントコンピュータ装置およびその同期化方法
JP5287974B2 (ja) 演算処理システム、再同期方法、およびファームプログラム
JP3774826B2 (ja) 情報処理装置
US6785777B2 (en) Control logic for memory modification tracking with hierarchical dirty indicators
US6981172B2 (en) Protection for memory modification tracking
JPH0916535A (ja) マルチプロセッサ計算機
JPH0635880A (ja) マイクロプロセッサ装置
JPH06348604A (ja) メモリコピー方式
JPH06124242A (ja) 二重化共有メモリ等価性保証方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040427

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20041220

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20041220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051207

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060201

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060405

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060508

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060508

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060508

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060712

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20060825

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070119

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20080604

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20090508