JP2004046599A - フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム - Google Patents

フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム Download PDF

Info

Publication number
JP2004046599A
JP2004046599A JP2002204167A JP2002204167A JP2004046599A JP 2004046599 A JP2004046599 A JP 2004046599A JP 2002204167 A JP2002204167 A JP 2002204167A JP 2002204167 A JP2002204167 A JP 2002204167A JP 2004046599 A JP2004046599 A JP 2004046599A
Authority
JP
Japan
Prior art keywords
instruction
processor
computing module
counter value
computing
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
JP2002204167A
Other languages
English (en)
Inventor
Shigeo Yamazaki
山崎 茂雄
Shigeyuki Aino
愛野 茂幸
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 JP2002204167A priority Critical patent/JP2004046599A/ja
Priority to TW92117918A priority patent/TWI229791B/zh
Priority to AU2003208129A priority patent/AU2003208129A1/en
Priority to US10/614,150 priority patent/US7107484B2/en
Priority to ES03015797T priority patent/ES2248686T3/es
Priority to EP20030015797 priority patent/EP1380953B1/en
Priority to DE2003602184 priority patent/DE60302184T2/de
Priority to CNA031474632A priority patent/CN1521625A/zh
Priority to KR20030047289A priority patent/KR100566338B1/ko
Publication of JP2004046599A publication Critical patent/JP2004046599A/ja
Pending legal-status Critical Current

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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1691Temporal synchronisation or re-synchronisation of redundant processing components using a quantum
    • 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/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • 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/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • 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/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
    • 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/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • G06F11/184Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】装置の動作の一時停止時間を著しく短縮するフォルトトレラントコンピュータ装置とその再同期化方法を提供する。
【解決手段】プロセッサ、メモリを含むコンピューティングモジュール100、200を複数備え、各コンピューティングモジュールがクロック同期して同じ命令列を処理するロックステップ方式のフォルトトレラントコンピュータ装置であって、各コンピューティングモジュール100、200内の各プロセッサ間の外部バスへのアクセス状態の不一致を検出した場合であって、各コンピューティングモジュール100、200を含む装置全体の故障が検出されない場合に、全ての各プロセッサに対して割り込みを発生させ、前記コンピューティングモジュール間の命令実行状況を一致させる遅延調整を行った後、各コンピューティングモジュールに対してクロック同期での動作の再開処理を行う。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、複数のコンピューティングモジュールで、同じ命令列をクロック同期させて全く同じに処理するロックステップ方式のフォルトトレラントコンピュータ装置(fault tolerant computer)に関し、特にコンピューティングモジュール間の同一動作性が崩れた場合(ロックステップが外れた場合)の再同期化処理の高速化を実現するフォルトトレラントコンピュータ装置及び高速再同期制御方法に関する。
【0002】
【従来の技術】
従来のロックステップ方式のフォルトトレラントコンピュータ装置では、同じ命令列を同時期に実行している複数のコンピューティングモジュールの中で、故障あるいはその他の外的あるいは内的要因により、他のコンピューティングモジュールと異なる出力を行うコンピューティングモジュールを検出した場合は、以下のような対策を講じている。以降において、他のコンピューティングモジュールと同期して同じ動作を行うことができないコンピューティングモジュールを検出した場合の、当該コンピューティングモジュールをロックステップが外れたコンピューティングモジュールと称する。
【0003】
すなわち、ロックステップが外れたコンピューティングモジュールを一旦運用状態から切り離し、ロックステップが外れる要因に応じて必要によりコンピューティングモジュールを交換し、あるいは交換を必要としない場合は必要に応じた再初期化処理等を行うことにより、運用状態に組み込むといった対策がとられている。
【0004】
そして、従来のロックステップ方式のフォルトトレラントコンピュータ装置における上述のような運用状態への組み込みに際しては、ロックステップの外れたコンピューティングモジュールを交換したかどうかに関わりなく、その再組み込みのときに、他の運用を継続しているコンピューティングモジュールと再度同期をとって同じ処理をするために、運用状態のコンピューティングモジュールのもつメモリのデータを全て、再組み込みするコンピューティングモジュールのもつメモリへコピーする方法がとられている。
【0005】
【発明が解決しようとする課題】
従来のロックステップ方式のフォルトトレラントコンピュータ装置は、ロックステップが外れたコンピューティングモジュールの交換やロックステップが外れた原因の部位に応じた再初期化処理などを実施した後、再度運用状態に組み込む場合に、運用状態にあったコンピューティングモジュールを長時間停止させている。
【0006】
すなわち、この従来のロックステップ方式のフォルトトレラントコンピュータ装置では、ロックステップが外れたコンピューティングモジュールの再組み込み処理の間、フォルトトレラントコンピュータ装置全体が長期間(一般に3〜5秒間、乃至分オーダーの時間)、業務を停止してしまうという問題があった。
【0007】
その理由は、ロックステップが外れたコンピューティングモジュールを運用状態に組み込むために、故障の状態に関わらず、常に全てのメモリ内容を、運用を継続しているコンピューティングモジュールから、再度組み込もうとしているコンピューティングモジュールにコピーしているためである。
【0008】
また、このコピー処理中に正常なコンピューティングモジュールの運用を継続すると、正常なコンピューティングモジュールのメモリ内容がコピー処理中にも変更されるため、正しくコピーすることができない。このため、コピー処理中は、運用状態にあったコンピューティングモジュールを一旦停止させて、メモリの内容が更新されないようにしている。
【0009】
現在のコンピューティングモジュール内のメモリの容量は、数ギガバイトに及んでいることから、メモリの全領域をコピーするには長時間を要することになる。
【0010】
ところで、ロックステップ方式のフォルトトレラントコンピュータ装置では、様々な原因により、各コンピューティングモジュール間のロックステップが外れる可能性がある。
【0011】
第1の要因としては、コンピューティングモジュール内部で、固定的な故障が発生した場合である。この場合は、故障したコンピューティングモジュールの交換を行うことになり、交換するコンピューティングモジュールを運用系に組み込む時には、運用状態のコンピューティングモジュールのメモリの全てのデータをコピーする必要がある。
【0012】
ロックステップ方式のフォルトトレラントコンピュータ装置では、上述のような固定的な故障のほかに、コンピューティングモジュール内の各ユニットの製造上の差違により、正常動作はしているものの異なるタイミングで動作していることからロックステップが外れることや、α線等の影響によるメモリの自動訂正可能な間欠障害によってロックステップが外れることがある。
【0013】
これらのケースでは、コンピューティングモジュール自体に固定的な故障が発生しているのではないことから、本来、交換する必要はなく、再度運用中の他のコンピューティングモジュールとの処理の同期化を行い、組み込むことで、フォルトトレラントコンピュータ装置全体として、正常な稼働状態に復旧せしめることができる。
【0014】
本発明の目的は、固定的な故障以外の原因によってロックステップが外れたコンピューティングモジュールを、従来の方式より高速に運用状態に再組み込みすることを可能とし、これによって組み込み処理のために発生する装置の動作の一時停止時間を著しく短縮するフォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラムを提案することにある。
【0015】
本発明の他の目的は、上述の再組み込み処理時間の短縮により、装置の可用性の向上を実現するフォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラムを提案することにある。
【0016】
【課題を解決するための手段】
上記目的を達成する本発明は、プロセッサ、メモリを含むコンピューティングモジュールを複数備え、各コンピューティングモジュールがクロック同期して同じ命令列を処理するロックステップ方式のフォルトトレラントコンピュータ装置において、前記各コンピューティングモジュール内の前記各プロセッサ間の外部バスへのアクセス状態の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置全体の故障が検出されない場合に、全ての前記各プロセッサに対して割り込みを発生させ、前記コンピューティングモジュール間の命令実行状況を一致させる遅延調整を行った後、前記各コンピューティングモジュールに対してクロック同期での動作の再開処理を行うことを特徴とする。
【0017】
請求項2の本発明のフォルトトレラントコンピュータ装置は、前記各コンピューティングモジュールを含む装置全体の故障の有無を監視する障害監視制御手段と、前記各コンピューティングモジュール内の前記各プロセッサの外部バスへのアクセス状態を監視するバス監視制御手段と、前記バス監視制御手段が前記各コンピューティングモジュール内の前記各プロセッサの外部バスへのアクセス状態の不一致を検出した場合であって、前記障害監視制御手段がなんらの障害も検出していない場合に、その旨を全ての前記各プロセッサに通知するための割り込みを発生させる割り込み制御手段と、前記各コンピューティングモジュールと接続され、前記各コンピューティングモジュール内の前記各プロセッサ相互間で命令実行状況を通知するための系間通信制御手段と、前記各コンピューティングモジュールと接続され、前記各コンピューティングモジュール間の命令実行状況を一致させる遅延調整を行った後、全ての前記コンピューティングモジュールのクロック同期での動作を再開するためのリセット信号を発生させる同期制御手段とを具備することを特徴とする。
【0018】
請求項3の本発明のフォルトトレラントコンピュータ装置は、前記割り込み制御手段からの割り込みを受けた前記全てのプロセッサが、該プロセッサ内部の実行命令数を計数する命令数カウンタが動作しない、再同期化処理用のプロセッサ管理モードに移行し、
前記各プロセッサが、その読み出した命令数カウンタ値を、他のコンピューティングモジュール内の各プロセッサから受信した命令数カウンタ値と比較し、前記命令数カウンタ値が最大でない前記コンピューティングモジュールが、最大であるコンピューティングモジュールの命令数カウント値と一致するまで命令実行を進める遅延調整を行い、一致した際に前記命令数カウンタ値が最大である前記コンピューティングモジュールに通知し、前記命令数カウンタ値が最大である前記コンピューティングモジュールが、他の全てのコンピューティングモジュールから通知があるまで処理を待合せ、通知があると、前記同期制御手段に対して全てのコンピューティングモジュールにクロック同期での動作を再開させるためのリセット信号の発生を指令することを特徴とする。
【0019】
請求項4の本発明のフォルトトレラントコンピュータ装置は、前記命令数カウンタ値が最大でない前記コンピューティングモジュールが、最大であるコンピューティングモジュールの命令数カウント値と一致するまで命令実行を進める遅延調整において、前記プロセッサを1命令だけ実行した後、再び前記プロセッサ管理モードに移行せしめるステップ実行モードに設定し、前記プロセッサが1命令を実行した後、再びプロセッサ管理モードに移行させ、前記プロセッサは、命令数カウンタの値が実行命令数が最大であるコンピューティングモジュールの命令数カウンタ値と一致するまで、再度ステップ実行モード設定処理から処理を繰り返すことを特徴とする。
【0020】
請求項5の本発明のフォルトトレラントコンピュータ装置は、前記割り込み制御部からの割り込みを受けた前記全てのプロセッサが、該プロセッサ内部の実行命令数を計数する命令数カウンタが動作せず、かつプログラムカウンタ値を待避して保存する、再同期化処理用のプロセッサ管理モードに移行し、前記各プロセッサが、該各プロセッサの命令数カウンタ値と前記待避したプログラムカウンタ値とを読み出し、該読み出し値を他の全ての前記コンピューティングモジュールに送信し、前記各プロセッサが、その読み出した命令数カウンタ値を、他のコンピューティングモジュール内の各プロセッサから受信した命令数カウンタ値と比較し、前記命令数カウンタ値が最大でない前記コンピューティングモジュールが、最大であるコンピューティングモジュールの命令数カウント値と一致するまで命令実行を進める遅延調整を行い、一致した際に前記命令数カウンタ値が最大である前記コンピューティングモジュールに通知し、前記命令数カウンタ値が最大である前記コンピューティングモジュールが、他の全てのコンピューティングモジュールから通知があるまで処理を待合せ、通知があると、前記同期制御手段に対して全てのコンピューティングモジュールにクロック同期での動作を再開させるためのリセット信号の発生を指令することを特徴とする。
【0021】
請求項6の本発明のフォルトトレラントコンピュータ装置は、前記命令数カウンタ値が最大でない前記コンピューティングモジュールが、最大であるコンピューティングモジュールの命令数カウント値と一致するまで命令実行を進める遅延調整において、前記プロセッサを、指定した命令列の特定の位置の命令まで実行した後再び前記プロセッサ管理モードに移行せしめるブレークポイント指定実行モードに設定し、前記命令列の特定の位置として、前記実行命令数が最大であるコンピューティングモジュールから受信したプログラムカウンタ値の示す命令位置を指定し、その後、前記プロセッサを通常実行モードに移行させ、前記プロセッサが指定された命令列中の特定の位置である、前記命令実行数が最大であるコンピューティングモジュールと同じ命令列の位置までの命令列を実行した後、再びプロセッサ管理モードに移行させることを特徴とする。
【0022】
請求項7の本発明のフォルトトレラントコンピュータ装置は、前記命令数カウンタ値が最大であったコンピューティングモジュールが、プログラム実行状態を読み出した後、遅延調整による他のコンピューティングモジュールからの通知を待ち合わせ、命令数カウンタ値が最大でない他の全てのコンピューティングモジュールでは、遅延調整処理を実施した後、プログラム実行状態を読み出して、遅延調整処理の完了通知と併せてプログラム実行状態を命令数カウンタ値が最大であるコンピューティングモジュールに送信し、命令数カウンタ値が最大であるコンピューティングモジュールでは、全てのコンピューティングモジュールのプログラム実行状態を比較し、全てが一致した場合は即座に、不一致のコンピューティングモジュールを検出した場合は、当該コンピューティングモジュールのみを切り離して無効化する処理を行った後、クロック同期動作を再開させるためのリセット信号の発生を指令することを特徴とする。
【0023】
請求項8の本発明のフォルトトレラントコンピュータ装置は、前記障害監視制御手段と、前記バス監視制御手段と、前記割り込み制御手段と、前記系間通信制御手段と、前記同期制御手段とを複数組備えることを特徴とする。
【0024】
請求項9の本発明は、プロセッサ、メモリを含むコンピューティングモジュールを複数備え、各コンピューティングモジュールがクロック同期して同じ命令列を処理するロックステップ方式のフォルトトレラントコンピュータ装置における再同期化方法であって、前記各コンピューティングモジュール内の前記各プロセッサ間の外部バスへのアクセス状態の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置全体の故障が検出されない場合に、全ての前記各プロセッサに対して割り込みを発生させ、前記コンピューティングモジュール間の命令実行状況を一致させる遅延調整を行った後、前記各コンピューティングモジュールに対してクロック同期動作の再開処理を行うことを特徴とする。
【0025】
請求項10の本発明の再同期化方法は、前記各コンピューティングモジュールを含む装置全体の故障の有無を監視し、前記各コンピューティングモジュール内の前記各プロセッサの外部バスへのアクセス状態を監視し、前記各コンピューティングモジュール内の前記各プロセッサの外部バスへのアクセス状態の不一致を検出した場合であって、前記障害監視制御手段がなんらの障害も検出していない場合に、その旨を全ての前記各プロセッサに通知するための割り込みを発生させ、前記各コンピューティングモジュール間の命令実行状況を一致させる遅延調整を行った後、全ての前記各コンピューティングモジュールのクロック同期動作の再開処理を行うためのリセット信号を発生させることを特徴とする。
【0026】
請求項11の本発明の再同期化方法は、前記割り込み制御手段からの割り込みを受けた前記全てのプロセッサが、該プロセッサ内部の実行命令数を計数する命令数カウンタが動作しない、再同期化処理用のプロセッサ管理モードに移行し、前記各プロセッサが、その読み出した命令数カウンタ値を、他のコンピューティングモジュール内の各プロセッサから受信した命令数カウンタ値と比較し、前記命令数カウンタ値が最大でない前記コンピューティングモジュールが、最大であるコンピューティングモジュールの命令数カウント値と一致するまで命令実行を進める遅延調整を行い、一致した際に前記命令数カウンタ値が最大である前記コンピューティングモジュールに通知し、前記命令数カウンタ値が最大である前記コンピューティングモジュールが、他の全てのコンピューティングモジュールから通知があるまで処理を待合せ、通知があると、前記同期制御手段に対して全てのコンピューティングモジュールにクロック同期での動作を再開させるためのリセット信号の発生を指令することを特徴とする。
【0027】
請求項12の本発明の再同期化方法は、前記命令数カウンタ値が最大でない前記コンピューティングモジュールが、最大であるコンピューティングモジュールの命令数カウント値と一致するまで命令実行を進める遅延調整において、前記プロセッサを1命令だけ実行した後、再び前記プロセッサ管理モードに移行せしめるステップ実行モードに設定し、前記プロセッサが1命令を実行した後、再びプロセッサ管理モードに移行させ、前記プロセッサは、命令数カウンタの値が実行命令数が最大であるコンピューティングモジュールの命令数カウンタ値と一致するまで、再度ステップ実行モード設定処理から処理を繰り返すことを特徴とする。
【0028】
請求項13の本発明の再同期化方法は、前記割り込み制御部からの割り込みを受けた前記全てのプロセッサが、該プロセッサ内部の実行命令数を計数する命令数カウンタが動作せず、かつプログラムカウンタ値を待避して保存する、再同期化処理用のプロセッサ管理モードに移行し、前記各プロセッサが、該各プロセッサの命令数カウンタ値と前記待避したプログラムカウンタ値とを読み出し、該読み出し値を他の全ての前記コンピューティングモジュールに送信し、前記各プロセッサが、その読み出した命令数カウンタ値を、他のコンピューティングモジュール内の各プロセッサから受信した命令数カウンタ値と比較し、前記命令数カウンタ値が最大でない前記コンピューティングモジュールが、最大であるコンピューティングモジュールの命令数カウント値と一致するまで命令実行を進める遅延調整を行い、一致した際に前記命令数カウンタ値が最大である前記コンピューティングモジュールに通知し、前記命令数カウンタ値が最大である前記コンピューティングモジュールが、他の全てのコンピューティングモジュールから通知があるまで処理を待合せ、通知があると、前記同期制御手段に対して全てのコンピューティングモジュールにクロック同期での動作を再開させるためのリセット信号の発生を指令することを特徴とする。
【0029】
請求項14の本発明の再同期化方法は、前記命令数カウンタ値が最大でない前記コンピューティングモジュールが、最大であるコンピューティングモジュールの命令数カウント値と一致するまで命令実行を進める遅延調整において、前記プロセッサを、指定した命令列の特定の位置の命令まで実行した後再び前記プロセッサ管理モードに移行せしめるブレークポイント指定実行モードに設定し、前記命令列の特定の位置として、前記実行命令数が最大であるコンピューティングモジュールから受信したプログラムカウンタ値の示す命令位置を指定し、その後、前記プロセッサを通常実行モードに移行させ、前記プロセッサが指定された命令列中の特定の位置である、前記命令実行数が最大であるコンピューティングモジュールと同じ命令列の位置までの命令列を実行した後、再びプロセッサ管理モードに移行させることを特徴とする。
【0030】
請求項15の本発明の再同期化方法は、前記命令数カウンタ値が最大であったコンピューティングモジュールが、プログラム実行状態を読み出した後、遅延調整による他のコンピューティングモジュールからの通知を待ち合わせ、命令数カウンタ値が最大でない他の全てのコンピューティングモジュールでは、遅延調整処理を実施した後、プログラム実行状態を読み出して、遅延調整処理の完了通知と併せてプログラム実行状態を命令数カウンタ値が最大であるコンピューティングモジュールに送信し、命令数カウンタ値が最大であるコンピューティングモジュールでは、全てのコンピューティングモジュールのプログラム実行状態を比較し、全てが一致した場合は即座に、不一致のコンピューティングモジュールを検出した場合は、当該コンピューティングモジュールのみを切り離して無効化する処理を行った後、クロック同期動作を再開するためのリセット信号の発生を指令することを特徴とする。
【0031】
請求項16の本発明は、プロセッサ、メモリを含むコンピューティングモジュールを複数備え、各コンピューティングモジュールがクロック同期して同じ命令列を処理するロックステップ方式のフォルトトレラントコンピュータ装置の再同期化処理を実行する再同期化プログラムであって、前記各コンピューティングモジュール内の前記各プロセッサ間の外部バスへのアクセス状態の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置全体の故障が検出されない場合に、全ての前記各プロセッサに対して割り込みを発生させる機能と、前記コンピューティングモジュール間の命令実行状況を一致させる遅延調整を行った後、前記各コンピューティングモジュールに対してクロック同期動作を再開させる機能を実行することを特徴とする。
【0032】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【0033】
本発明の第1の実施の形態によるフォルトトレラントコンピュータ装置の構成を図1に示す。図1において、本実施の形態によるフォルトトレラントコンピュータ装置は、複数のコンピューティングモジュール100、200を備えて構成され、各コンピューティングモジュール100、200はそれぞれクロック同期して同じ命令列を処理し、各コンピューティングモジュールの処理結果を比較し、1個のコンピューティングモジュールで故障が発生しても、残りのコンピューティングモジュールにより処理を継続することができる。
【0034】
各コンピューティングモジュール100、200は、それぞれ複数のプロセッサ101、102、201、202と、プロセッサ外部バス103、203と、メモリ104、204、メモリ制御部105、205とを備えて構成されている。
【0035】
また、各コンピューティングモジュール100、200は、メモリ制御部105、205を介して周辺装置の制御を行う周辺装置制御部400、500が接続されている。
【0036】
上記フォルトトレラントコンピュータ装置は、さらに、障害監視制御部700と、バス監視制御部701と、割り込み制御部702と、系間通信制御部703と、同期制御手段704とを備えている。
【0037】
障害監視制御部700は、各コンピューティングモジュール100、200を含む装置全体の故障の有無を監視する。
【0038】
バス監視制御部701は、各コンピューティングモジュール100、200のプロセッサの外部バス103、203へのアクセス状態を監視する。
【0039】
割り込み制御部702は、バス監視制御部701が各コンピューティングモジュール100、200内の各プロセッサの外部バスへの出力の不一致を検出したときに、障害監視制御部700がなんらの障害も検出していない場合に、その旨を全てのプロセッサに通知するための割り込みを発生させる。
【0040】
系間通信制御部703は、各コンピューティングモジュール100、200と接続され、各コンピューティングモジュール100、200内のプロセッサ同士で動作の不一致状況を調べるための通信経路を提供する。
【0041】
同期制御手段704は、各コンピューティングモジュール100、200と接続され、いずれかのプロセッサからの指令によって全てのコンピューティングモジュール100、200に対して再同期化を制御するためのリセット信号を発生させる。
【0042】
ここで、各コンピューティングモジュール100、200に含まれるプロセッサの数については、本実施の形態に示すように2個に限られることはなく、それぞれのコンピューティングモジュールに1個づつの構成、あるいは3個以上づつ搭載される構成であってもよい。
【0043】
また、コンピューティングモジュールの数も本実施の形態で示すように2個に限定されることはなく、3個以上を備える構成であってもよく、同様に本発明の効果を得られる。
【0044】
次いで、上記のように構成される第1の実施の形態によるフォルトトレラントコンピュータ装置の動作を図1、図2及び図3を参照して詳細に説明する。
【0045】
障害監視制御部700は、各コンピューティングモジュール100、200と各周辺装置制御部400、500を含むフォルトトレラントコンピュータ装置全体の故障の有無を監視し、その結果を割り込み制御部702に通知する。
【0046】
バス監視制御部701は、各コンピューティングモジュール100、200のプロセッサの外部バス103、203と接続されており、各プロセッサ101、102、201、202の外部バスへのアクセス状態(バスプロトコル)を比較して、各プロセッサ101、102、201、202がクロック同期で同じタイミングでプロセッサ外部バス103、203をアクセスしているかどうかを監視し、プロセッサ101、102、201、202の動作の不一致を検出すると、その旨を割り込み制御部702に通知する。
【0047】
割り込み制御部702は、バス監視制御部701からの動作不一致検出の通知があったとき、障害監視制御部700が、フォルトトレラントコンピュータ装置内になんらの故障も検出していない場合、その旨を各コンピューティングモジュール内の全てのプロセッサに通知するため、割り込み信号を真にして、割り込みを発生させる。
【0048】
割り込み制御部702はまた、割り込みの発生以降、同期制御部704から指令があるまで、新たな割り込みの発生を抑止し、その後の各コンピューティングモジュールのクロック同期動作のための再同期化処理が原因となるプロセッサの外部バスへのアクセス動作の不一致を、通常動作時の動作不一致と誤認することを防止する。
【0049】
割り込み制御部702からの割り込みを受けたプロセッサ101、102、201、202は、それぞれ図2に図示する動作により、各コンピューティングモジュール100、200間の動作のズレ(ロックステップ外れ)を補正し、再度クロック同期で同じ命令列の実行を行う状態に復旧する再同期化処理を行う。
【0050】
図2及び図3のフローチャートを参照してその再同期化処理について説明する。
【0051】
各プロセッサ101、102、201、202は、割り込みを受けて、プロセッサ内部の実行命令数を計数する命令数カウンタが動作しないモードである、再同期化処理用のプロセッサ管理モードに移行する(ステップ201)。
【0052】
そして、各プロセッサ101、102、201、202は、各々の命令数カウンタの値を読み出し(ステップ202)、該読み出した命令数カウンタの値を他のコンピューティングモジュールに、メモリ制御部105、205及び系間通信制御部703を介して送信する(ステップ203)。
【0053】
各プロセッサ101、102、201、202はまた、他のコンピューティングモジュールから送信された、他のコンピューティングモジュールのプロセッサの命令数カウンタ値を、系間通信制御部703、メモリ制御部105、205を介して読み出し(ステップ204)、全てのコンピューティングモジュールの対応するプロセッサの命令数カウンタ値と比較する(ステップ205)。
【0054】
ここで、命令数カウンタ値が最大となっているコンピューティングモジュールでは、命令数カウンタ値の比較の結果、他のコンピューティングモジュールが遅延分の命令を実行している間、これを待ち合わせる処理を行い(ステップ206)、その後、全てのコンピューティングモジュール100、200の実行命令数が一致したとき、全てのコンピューティングモジュール100、200への再同期化処理のためのリセット指令を発生させるよう、同期制御部704に対して、メモリ制御部105あるいは205を介して指令する(ステップ207)。
【0055】
一方、命令数カウンタ値が最大でない全てのコンピューティングモジュールでは、実行命令数(命令数カウンタ値)が最大であるコンピューティングモジュールと同一の命令列実行状態となるまで命令実行を進める遅延ステップ調整処理を行い(ステップ208)、その完了を命令数カウンタ値が最大であるコンピューティングモジュールに通知し(ステップ209)、その後、再同期化処理のためのリセット発生を待ち合わせる(ステップ210)。
【0056】
同期制御部704は、前記指令を受けると、クロック同期動作を回復させるためのリセット信号を、全てのコンピューティングモジュール100、200に対して同時に発生させる。また、このとき同時に前記割り込み制御部702に対して、動作不一致の割り込み発生の許可を指令して、再開される通常のクロック同期動作に備える。
【0057】
図3は、図2の遅延ステップ調整処理の詳細な作用を示している。
【0058】
遅延ステップ調整処理(図2のステップ208)では、プロセッサを1命令だけ実行した後、再び前記プロセッサ管理モードに移行せしめるステップ実行モードに設定し(ステップ301)、プロセッサを通常実行モードに移行させる(ステップ802)。
【0059】
この結果、プロセッサは1命令のみ実行(ステップ303)した後、再びプロセッサ管理モードに移行する(ステップ304)。
【0060】
該プロセッサは、命令数カウンタの値を読み出し(ステップ305)、先に受信済みの実行命令数が最大であるコンピューティングモジュールの命令数カウンタ値と比較し(ステップ306)、不一致であれば、再度ステップ実行モード設定処理(ステップ301)から繰り返し、一致していれば遅延ステップ調整処理を完了する。
【0061】
以上、説明した作用により、固定故障以外の原因でロックステップが外れたコンピューティングモジュールの状態を、他のコンピューティングモジュールの状態に一致せしめることができる。一般に、プロセッサの外部バスを監視し、その出力の不一致を最初に検出した時点では、例えロックステップが外れた状態にあっても、その外れの程度は小さく、上記で説明した作用によって、数ステップの処理の実行で、再び同一の命令列実行状態に復帰せしめることが可能であり、従来の全てのメモリ領域をコピーする方式に比べ、その処理時間を格段に短縮することが可能となる。
【0062】
図4、図5は、図1に示すように構成されるフォルトトレラントコンピュータ装置における再同期化処理の第2の動作を説明するフローチャートである。
【0063】
この第2の動作においては、割り込み制御部702からの割り込みを受けたプロセッサ101、102、201、202は、それぞれ図4に図示する動作により、各コンピューティングモジュール100、200間の動作のズレ(ロックステップ外れ)を補正し、再度クロック同期で同じ命令列の実行を行う状態に復旧する再同期化処理を行う。
【0064】
各プロセッサ101、102、201、202は、前記割り込みを受けて、プロセッサ内部の実行命令数を計数する命令数カウンタが動作せず、かつ、通常動作のプログラムカウンタ(PC)の値を待避して保存するモードである、再同期化処理用のプロセッサ管理モードに移行する(ステップ401)。
【0065】
各プロセッサ101、102、201、202は、各々の命令数カウンタと待避したプログラムカウンタの値を読み出し(ステップ402)、該読み出した値を他のコンピューティングモジュールに、メモリ制御部105、205及び系間通信制御部703を介して送信する(ステップ403)。
【0066】
各プロセッサ101、102、201、202はまた、他のコンピューティングモジュールから送信された、他のコンピューティングモジュールのプロセッサの命令数カウンタ値とプログラムカウンタ値を、系間通信制御部703、メモリ制御部105、205を介して読み出し(ステップ404)、全てのコンピューティングモジュールの対応するプロセッサの命令数カウンタ読み出し値と比較する(ステップ405)。
【0067】
ここで、実行命令数が最大となっているコンピューティングモジュールでは、前記比較の結果、他のコンピューティングモジュールが遅延分の命令を実行している間、これを待ち合わせる処理を行い(ステップ406)、その後、全てのコンピューティングモジュールの実行命令数が一致したとき、全てのコンピューティングモジュールに対する再同期化処理開始のためのリセット指令を発生させるよう、同期制御部704に対して、メモリ制御部105あるいは205を介して指令する(ステップ407)。
【0068】
一方、命令数カウンタが最大でない全てのコンピューティングモジュールでは、命令数が最大であるコンピューティングモジュールと同一となるまで命令実行を進める遅延ステップ調整処理を行い(ステップ408)、その完了を命令数カウンタ値が最大であるコンピューティングモジュールに通知し(ステップ409)、その後、前記再同期化処理のためのリセット発生を待ち合わせる(ステップ410)。
【0069】
図5は、図4における遅延ステップ調整処理の詳細を示している。
【0070】
上記遅延ステップ調整処理(図4のステップ408)では、プロセッサを、指定した命令列の特定の位置の命令まで実行した後再び前記プロセッサ管理モードに移行せしめるブレークポイント指定実行モードに設定する。このとき、前記命令列の特定の位置として、前記実行命令数が最大であるコンピューティングモジュールから受信したプログラムカウンタ値の示す命令位置を指定する(ステップ501)。その後、プロセッサを通常実行モードに移行させる(ステップ502)。
【0071】
この結果、プロセッサは指定された命令列中の特定の位置、すなわち前記命令実行数が最大であるコンピューティングモジュールと同じ命令列の位置までの命令列を実行(ステップ503)した後、再びプロセッサ管理モードに移行(ステップ504)して、遅延ステップ調整処理を完了する。
【0072】
図6は、第1の実施の形態によるフォルトトレラントコンピュータ装置の第3の動作を説明するフローチャートであり、図2及び図4で示す動作における、特に命令数カウンタ比較処理(図2のステップ205及び図4のステップ405)以降の処理の他の処理例を示している。
【0073】
図6の処理では、命令数カウンタ値が最大であったコンピューティングモジュールにおいて、プログラム実行状態を読み出し(ステップ601)た後、他のコンピューティングモジュールからの遅延ステップ調整処理完了通知を待ち合わせる(ステップ602)。
【0074】
一方、命令数カウンタ値が最大でない他の全てのコンピューティングモジュールでは、上述の説明のいずれかの方法や、あるいは類似の方法で、遅延ステップ調整処理を実施(ステップ701)した後、そのコンピューティングモジュールのプログラム実行状態を読み出して(ステップ702)、遅延ステップ調整処理の完了通知と併せてプログラム実行状態を命令数カウンタ値が最大であるコンピューティングモジュールに送信(ステップ703)して、リセット待ち合わせ処理を行う(ステップ704)。
【0075】
該プログラム実行状態を受信した、命令数カウンタ値が最大であるコンピューティングモジュールでは、全てのコンピューティングモジュールのプログラム実行状態を比較し(ステップ603)、全てが一致した場合は即座に、不一致のコンピューティングモジュールを検出した場合は、そのコンピューティングモジュールのみを切り離して無効化する処理(ステップ604)を行った後、他の全てのコンピューティングモジュールのクロック同期動作再開処理(ステップ605)を実施する。
【0076】
図6に示す処理内容とすれば、ステップ実行やブレークポイント実行に必ずしも信頼のおけないプロセッサを採用したロックステップ方式のフォルトトレラントコンピュータ装置であっても、処理結果を誤らせることなく、本発明を実施することができるという効果を得られる。
【0077】
次に、図7を参照して、本発明の第2の実施の形態によるフォルトトレラントコンピュータ装置について説明する。
【0078】
図7を参照すると、本実施の形態によるフォルトトレラントコンピュータ装置は、プロセッサ、メモリを含むコンピューティングモジュール100、200、300と、周辺装置との接続機構803、804を含む周辺装置制御部400、500をそれぞれ複数備え、各コンピューティングモジュール100、200、300はクロック同期して同じ命令列を処理し、各コンピューティングモジュールの処理結果を比較し、1個のコンピューティングモジュールで故障が発生しても、残りのコンピューティングモジュールにより処理を継続する。
【0079】
この第2の実施の形態によるフォルトトレラントコンピュータ装置においては、各周辺装置制御部400、500内に、図1に示した障害監視制御部700と、バス監視制御部701と、割り込み制御部702と、系間通信制御部703と、同期制御部704とを備えると共に、さらに各コンピューティングモジュールと周辺装置制御内部の各制御部、及び周辺装置接続手段803、804との接続を制御するPCIブリッジ705とを具備している。
【0080】
なお、周辺装置制御部500の内部の図示は省略しているが、周辺装置制御部400と全く同様の構成となっており、周辺装置制御部400と周辺装置制御部500のいずれの制御手段を使用するかは、コンピューティングモジュール内のプロセッサ上で動作するプログラムが任意に決定することができ、これによって再同期に係る周辺装置制御部400、500の何れかの制御手段の故障があった場合でも、故障していない周辺装置制御部400、500の制御手段を使用可能とすることにより、可用性を高めることを可能としている。
【0081】
本実施の形態では、各コンピューティングモジュール100、200、300と各周辺装置制御部400、500の接続を代表的な周辺装置接続インタフェースであるPCIブリッジ705を使用し、系間通信制御部703とのデータの送受信や同期制御部704に対するリセット処理の指令をPCIプロトコルを使って実行する点を除けば、上述の図1で示した実施の形態と同様の動作により、本発明の効果を得られる。
【0082】
また、本実施の形態は、コンピューティングモジュールが3個の構成を示しており、その場合の再同期化処理の詳細な動作は、図8及び図9に示す通りである。図8は上述の図2の動作を3個以上のコンピューティングモジュールで構成するロックステップ方式のフォルトトレラントコンピュータ装置に一般化した動作フローを示している。その処理内容は、コンピューティングモジュールの数が異なることを除いて、図2及び図3に示した内容と同じである。
【0083】
すなわち、図8及び図9のフローチャートにおいて、各プロセッサは、割り込みを受けて、プロセッサ内部の実行命令数を計数する命令数カウンタが動作しないモードである、再同期化処理用のプロセッサ管理モードに移行する(ステップ801)。
【0084】
そして、各プロセッサは、各々の命令数カウンタの値を読み出し(ステップ802)、該読み出した命令数カウンタの値を他のコンピューティングモジュールに、メモリ制御部105、205及びPCIブリッジ705と系間通信制御部703を介して送信する(ステップ803)。
【0085】
各プロセッサはまた、他のコンピューティングモジュールから送信された、他のコンピューティングモジュールのプロセッサの命令数カウンタ値を、系間通信制御部703、PCIブリッジ705、メモリ制御部105、205を介して読み出し(ステップ804)、全てのコンピューティングモジュールの対応するプロセッサの命令数カウンタ値と比較する(ステップ805)。
【0086】
ここで、命令数カウンタ値が最大となっているコンピューティングモジュールでは、命令数カウンタ値の比較の結果、他のコンピューティングモジュールが遅延分の命令を実行している間、これを待ち合わせる処理を行い(ステップ806)、その後、全てのコンピューティングモジュール100、200、300の実行命令数が一致したとき、全てのコンピューティングモジュール100、200、300への再同期化処理のためのリセット指令を発生させるよう、同期制御部704に対して、メモリ制御部105あるいは205、PCIブリッジ705を介して指令する(ステップ807)。
【0087】
一方、命令数カウンタ値が最大でない全てのコンピューティングモジュールでは、実行命令数(命令数カウンタ値)が最大であるコンピューティングモジュールと同一の命令列実行状態となるまで命令実行を進める遅延ステップ調整処理を行い(ステップ808)、その完了を命令数カウンタ値が最大であるコンピューティングモジュールに通知し(ステップ809)、その後、再同期化処理のためのリセット発生を待ち合わせる(ステップ810)。
【0088】
同期制御部704は、前記指令を受けると、クロック同期動作を回復させるためのリセット信号を、全てのコンピューティングモジュール100、200、300に対して同時に発生させる。また、このとき同時に前記割り込み制御部702に対して、動作不一致の割り込み発生の許可を指令して、再開される通常のクロック同期動作に備える。
【0089】
図9は、図8の遅延ステップ調整処理の詳細な作用を示している。
【0090】
遅延ステップ調整処理(図8のステップ808)では、プロセッサを1命令だけ実行した後、再び前記プロセッサ管理モードに移行せしめるステップ実行モードに設定し(ステップ901)、プロセッサを通常実行モードに移行させる(ステップ902)。
【0091】
この結果、プロセッサは1命令のみ実行(ステップ903)した後、再びプロセッサ管理モードに移行する(ステップ904)。
【0092】
該プロセッサは、命令数カウンタの値を読み出し(ステップ905)、先に受信済みの実行命令数が最大であるコンピューティングモジュールの命令数カウンタ値と比較し(ステップ906)、不一致であれば、再度ステップ実行モード設定処理(ステップ901)から繰り返し、一致していれば遅延ステップ調整処理を完了する。
【0093】
図10は、本発明の第3の実施の形態によるフォルトトレラントコンピュータ装置の構成を示す。図10によれば、本実施の形態によるフォルトトレラントコンピュータ装置は、バス監視制御部701、割り込み制御部702においても、各コンピューティングモジュールとの情報送受信をPCIブリッジ705を介して実行する構成となっている点を除いて、図7に示した第2の実施の形態と同じであり、図8及び図9に示したと同様の動作により同様の効果が得られる。
【0094】
本発明のフォルトトレラントコンピュータ装置では、再同期化処理を実行する各手段の機能をハードウェア的に実現することは勿論として、上記した各手段の機能を実行する再同期化処理プログラム1000をコンピュータ処理装置のメモリにロードしてコンピュータ処理装置を制御することで実現することができる。この再同期化処理プログラム1000は、磁気ディスク、半導体メモリその他の記録媒体に格納され、その記録媒体からコンピュータ処理装置にロードされ、コンピュータ処理装置の動作を制御することにより、上述した各機能を実現する。
【0095】
以上好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも上記実施の形態に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。
【0096】
本発明は、コンピューティングモジュールが2個であるか3個以上であるかに関わらず、これまで説明した構成と動作によってまったく同様の効果が得られる。
【0097】
また、各コンピューティングモジュール内のプロセッサの数についても、なんらの制約されることはなく、プロセッサが1個であっても、あるいは3個以上であってもまったく同様に作用する。また、上述した実施の形態では、各プロセッサがひとつのプロセッサ外部バスを共有し、同一バス上に接続されている場合を示しているが、例えば、メモリ制御部から複数のプロセッサが星形接続されるような構成であっても、あるいはひとつのコンピューティングモジュールを構成するプロセッサが、物理的に複数のボードにわかれて構成されていても、本発明の効果になんら影響しない。
【0098】
また、本発明では、各コンピューティングモジュールとバス監視制御手段その他の再同期化のための各手段が、1組であっても複数組であってもかまわない。また、その位置が周辺装置制御部に内蔵されていても、専用のボード等によって構成されていてもよい。あるいはまた、各コンピューティングモジュールとバス監視制御手段その他の再同期化のための各手段が、PCIによって接続されていても、PCI−Xその他の他の規格のインタフェース手段で接続されていてもよいし、あるいは規格化されていない専用のインタフェース手段で接続されていても、上記の説明と同様の効果が得られる。
【0099】
【発明の効果】
以上説明したように本発明によれば、以下に述べるような効果が得られるものである。
【0100】
第1の効果は、フォルトトレラントコンピュータ装置のあるコンピューティングモジュールが、固定故障以外の要因でロックステップ状態から外れた場合に、極めて短時間でロックステップ状態に回復させられることである。
【0101】
その理由は、ロックステップ外れの発生の初期の段階であって、各コンピューティングモジュールの処理のずれが小さい時期にプロセッサに割り込ませ、処理が遅延しているコンピューティングモジュールの遅延を調整した後、クロック同期動作を再開させることにより、全メモリのコピーを行うことなくクロック同期動作状態を回復することができるからである。
【0102】
第2の効果は、フォルトトレラントコンピュータ装置の可用性を向上させることができることにある。その理由は、ロックステップ外れが起こった時の再同期化処理を著しく高速化することによって、装置全体が停止する期間を大幅に短縮することができるからである。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態によるフォルトトレラントコンピュータ装置の構成を示すブロック図である。
【図2】本発明の第1の実施の形態によるフォルトトレラントコンピュータ装置の第1の動作を説明する示すフローチャートである。
【図3】本発明の第1の実施の形態によるフォルトトレラントコンピュータ装置の第1の動作を説明する示すフローチャートである。
【図4】本発明の第1の実施の形態によるフォルトトレラントコンピュータ装置の第2の動作を説明する示すフローチャートである。
【図5】本発明の第1の実施の形態によるフォルトトレラントコンピュータ装置の第2の動作を説明する示すフローチャートである。
【図6】本発明の第1の実施の形態によるフォルトトレラントコンピュータ装置の第3の動作を説明するフローチャートである。
【図7】本発明の第2の実施の形態によるフォルトトレラントコンピュータ装置の構成を示すブロック図である。
【図8】本発明の第2の実施の形態によるフォルトトレラントコンピュータ装置の動作を説明するフローチャートである。
【図9】本発明の第2の実施の形態によるフォルトトレラントコンピュータ装置の動作を説明するフローチャートである。
【図10】本発明の第3の実施の形態によるフォルトトレラントコンピュータ装置の構成を示すブロック図である。
【符号の説明】
100、200、300 コンピューティングモジュール
101、102、201、202、301、302 プロセッサ
103、203、303 プロセッサ外部バス
104、204、304 メモリ
105、205、305 メモリ制御部
400、500 周辺装置制御部
700 障害監視制御部
701 バス監視制御部
702 割り込み制御部
703 系間通信制御部
704 同期制御部
705 PCIブリッジ
800、801、802、803、804 PCIバス

Claims (22)

  1. プロセッサ、メモリを含むコンピューティングモジュールを複数備え、各コンピューティングモジュールがクロック同期して同じ命令列を処理するロックステップ方式のフォルトトレラントコンピュータ装置において、
    前記各コンピューティングモジュール内の前記各プロセッサ間の外部バスへのアクセス状態の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置全体の故障が検出されない場合に、全ての前記各プロセッサに対して割り込みを発生させ、前記コンピューティングモジュール間の命令実行状況を一致させる遅延調整を行った後、前記各コンピューティングモジュールに対してクロック同期での動作の再開処理を行うことを特徴とするフォルトトレラントコンピュータ装置。
  2. 前記各コンピューティングモジュールを含む装置全体の故障の有無を監視する障害監視制御手段と、
    前記各コンピューティングモジュール内の前記各プロセッサの外部バスへのアクセス状態を監視するバス監視制御手段と、
    前記バス監視制御手段が前記各コンピューティングモジュール内の前記各プロセッサの外部バスへのアクセス状態の不一致を検出した場合であって、前記障害監視制御手段がなんらの障害も検出していない場合に、その旨を全ての前記各プロセッサに通知するための割り込みを発生させる割り込み制御手段と、
    前記各コンピューティングモジュールと接続され、前記各コンピューティングモジュール内の前記各プロセッサ相互間で命令実行状況を通知するための系間通信制御手段と、
    前記各コンピューティングモジュールと接続され、前記各コンピューティングモジュール間の命令実行状況を一致させる遅延調整を行った後、全ての前記コンピューティングモジュールのクロック同期での動作を再開するためのリセット信号を発生させる同期制御手段とを具備することを特徴とする請求項1に記載のフォルトトレラントコンピュータ装置。
  3. 前記割り込み制御手段からの割り込みを受けた前記全てのプロセッサが、該プロセッサ内部の実行命令数を計数する命令数カウンタが動作しない、再同期化処理用のプロセッサ管理モードに移行し、
    前記各プロセッサが、その読み出した命令数カウンタ値を、他のコンピューティングモジュール内の各プロセッサから受信した命令数カウンタ値と比較し、
    前記命令数カウンタ値が最大でない前記コンピューティングモジュールが、最大であるコンピューティングモジュールの命令数カウント値と一致するまで命令実行を進める遅延調整を行い、一致した際に前記命令数カウンタ値が最大である前記コンピューティングモジュールに通知し、
    前記命令数カウンタ値が最大である前記コンピューティングモジュールが、他の全てのコンピューティングモジュールから通知があるまで処理を待合せ、通知があると、前記同期制御手段に対して全てのコンピューティングモジュールにクロック同期での動作を再開させるためのリセット信号の発生を指令することを特徴とする請求項2に記載のフォルトトレラントコンピュータ装置。
  4. 前記命令数カウンタ値が最大でない前記コンピューティングモジュールが、最大であるコンピューティングモジュールの命令数カウント値と一致するまで命令実行を進める遅延調整において、
    前記プロセッサを1命令だけ実行した後、再び前記プロセッサ管理モードに移行せしめるステップ実行モードに設定し、
    前記プロセッサが1命令を実行した後、再びプロセッサ管理モードに移行させ、
    前記プロセッサは、命令数カウンタの値が実行命令数が最大であるコンピューティングモジュールの命令数カウンタ値と一致するまで、再度ステップ実行モード設定処理から処理を繰り返すことを特徴とする請求項3に記載のフォルトトレラントコンピュータ装置。
  5. 前記割り込み制御部からの割り込みを受けた前記全てのプロセッサが、該プロセッサ内部の実行命令数を計数する命令数カウンタが動作せず、かつプログラムカウンタ値を待避して保存する、再同期化処理用のプロセッサ管理モードに移行し、
    前記各プロセッサが、該各プロセッサの命令数カウンタ値と前記待避したプログラムカウンタ値とを読み出し、該読み出し値を他の全ての前記コンピューティングモジュールに送信し、
    前記各プロセッサが、その読み出した命令数カウンタ値を、他のコンピューティングモジュール内の各プロセッサから受信した命令数カウンタ値と比較し、
    前記命令数カウンタ値が最大でない前記コンピューティングモジュールが、最大であるコンピューティングモジュールの命令数カウント値と一致するまで命令実行を進める遅延調整を行い、一致した際に前記命令数カウンタ値が最大である前記コンピューティングモジュールに通知し、
    前記命令数カウンタ値が最大である前記コンピューティングモジュールが、他の全てのコンピューティングモジュールから通知があるまで処理を待合せ、通知があると、前記同期制御手段に対して全てのコンピューティングモジュールにクロック同期での動作を再開させるためのリセット信号の発生を指令することを特徴とする請求項2に記載のフォルトトレラントコンピュータ装置。
  6. 前記命令数カウンタ値が最大でない前記コンピューティングモジュールが、最大であるコンピューティングモジュールの命令数カウント値と一致するまで命令実行を進める遅延調整において、
    前記プロセッサを、指定した命令列の特定の位置の命令まで実行した後再び前記プロセッサ管理モードに移行せしめるブレークポイント指定実行モードに設定し、
    前記命令列の特定の位置として、前記実行命令数が最大であるコンピューティングモジュールから受信したプログラムカウンタ値の示す命令位置を指定し、その後、前記プロセッサを通常実行モードに移行させ、
    前記プロセッサが指定された命令列中の特定の位置である、前記命令実行数が最大であるコンピューティングモジュールと同じ命令列の位置までの命令列を実行した後、再びプロセッサ管理モードに移行させることを特徴とする請求項5に記載のフォルトトレラントコンピュータ装置。
  7. 前記命令数カウンタ値が最大であったコンピューティングモジュールが、プログラム実行状態を読み出した後、遅延調整による他のコンピューティングモジュールからの通知を待ち合わせ、
    命令数カウンタ値が最大でない他の全てのコンピューティングモジュールでは、遅延調整処理を実施した後、プログラム実行状態を読み出して、遅延調整処理の完了通知と併せてプログラム実行状態を命令数カウンタ値が最大であるコンピューティングモジュールに送信し、
    命令数カウンタ値が最大であるコンピューティングモジュールでは、全てのコンピューティングモジュールのプログラム実行状態を比較し、全てが一致した場合は即座に、不一致のコンピューティングモジュールを検出した場合は、当該コンピューティングモジュールのみを切り離して無効化する処理を行った後、クロック同期動作を再開させるためのリセット信号の発生を指令することを特徴とする請求項3又は請求項5に記載のフォルトトレラントコンピュータ装置。
  8. 前記障害監視制御手段と、前記バス監視制御手段と、前記割り込み制御手段と、前記系間通信制御手段と、前記同期制御手段とを複数組備えることを特徴とする請求項2に記載のフォルトトレラントコンピュータ装置。
  9. プロセッサ、メモリを含むコンピューティングモジュールを複数備え、各コンピューティングモジュールがクロック同期して同じ命令列を処理するロックステップ方式のフォルトトレラントコンピュータ装置における再同期化方法であって、
    前記各コンピューティングモジュール内の前記各プロセッサ間の外部バスへのアクセス状態の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置全体の故障が検出されない場合に、全ての前記各プロセッサに対して割り込みを発生させ、
    前記コンピューティングモジュール間の命令実行状況を一致させる遅延調整を行った後、前記各コンピューティングモジュールに対してクロック同期動作の再開処理を行う
    ことを特徴とするフォルトトレラントコンピュータ装置の再同期化方法。
  10. 前記各コンピューティングモジュールを含む装置全体の故障の有無を監視し、
    前記各コンピューティングモジュール内の前記各プロセッサの外部バスへのアクセス状態を監視し、
    前記各コンピューティングモジュール内の前記各プロセッサの外部バスへのアクセス状態の不一致を検出した場合であって、前記障害監視制御手段がなんらの障害も検出していない場合に、その旨を全ての前記各プロセッサに通知するための割り込みを発生させ、
    前記各コンピューティングモジュール間の命令実行状況を一致させる遅延調整を行った後、全ての前記各コンピューティングモジュールのクロック同期動作の再開処理を行うためのリセット信号を発生させることを特徴とする請求項9に記載のフォルトトレラントコンピュータ装置の再同期化方法。
  11. 前記割り込み制御手段からの割り込みを受けた前記全てのプロセッサが、該プロセッサ内部の実行命令数を計数する命令数カウンタが動作しない、再同期化処理用のプロセッサ管理モードに移行し、
    前記各プロセッサが、その読み出した命令数カウンタ値を、他のコンピューティングモジュール内の各プロセッサから受信した命令数カウンタ値と比較し、
    前記命令数カウンタ値が最大でない前記コンピューティングモジュールが、最大であるコンピューティングモジュールの命令数カウント値と一致するまで命令実行を進める遅延調整を行い、一致した際に前記命令数カウンタ値が最大である前記コンピューティングモジュールに通知し、
    前記命令数カウンタ値が最大である前記コンピューティングモジュールが、他の全てのコンピューティングモジュールから通知があるまで処理を待合せ、通知があると、前記同期制御手段に対して全てのコンピューティングモジュールにクロック同期での動作を再開させるためのリセット信号の発生を指令することを特徴とする請求項10に記載のフォルトトレラントコンピュータ装置の再同期化方法。
  12. 前記命令数カウンタ値が最大でない前記コンピューティングモジュールが、最大であるコンピューティングモジュールの命令数カウント値と一致するまで命令実行を進める遅延調整において、
    前記プロセッサを1命令だけ実行した後、再び前記プロセッサ管理モードに移行せしめるステップ実行モードに設定し、
    前記プロセッサが1命令を実行した後、再びプロセッサ管理モードに移行させ、
    前記プロセッサは、命令数カウンタの値が実行命令数が最大であるコンピューティングモジュールの命令数カウンタ値と一致するまで、再度ステップ実行モード設定処理から処理を繰り返すことを特徴とする請求項11に記載のフォルトトレラントコンピュータ装置の再同期化方法。
  13. 前記割り込み制御部からの割り込みを受けた前記全てのプロセッサが、該プロセッサ内部の実行命令数を計数する命令数カウンタが動作せず、かつプログラムカウンタ値を待避して保存する、再同期化処理用のプロセッサ管理モードに移行し、
    前記各プロセッサが、該各プロセッサの命令数カウンタ値と前記待避したプログラムカウンタ値とを読み出し、該読み出し値を他の全ての前記コンピューティングモジュールに送信し、
    前記各プロセッサが、その読み出した命令数カウンタ値を、他のコンピューティングモジュール内の各プロセッサから受信した命令数カウンタ値と比較し、
    前記命令数カウンタ値が最大でない前記コンピューティングモジュールが、最大であるコンピューティングモジュールの命令数カウント値と一致するまで命令実行を進める遅延調整を行い、一致した際に前記命令数カウンタ値が最大である前記コンピューティングモジュールに通知し、
    前記命令数カウンタ値が最大である前記コンピューティングモジュールが、他の全てのコンピューティングモジュールから通知があるまで処理を待合せ、通知があると、前記同期制御手段に対して全てのコンピューティングモジュールにクロック同期での動作を再開させるためのリセット信号の発生を指令することを特徴とする請求項10に記載のフォルトトレラントコンピュータ装置の再同期化方法。
  14. 前記命令数カウンタ値が最大でない前記コンピューティングモジュールが、最大であるコンピューティングモジュールの命令数カウント値と一致するまで命令実行を進める遅延調整において、
    前記プロセッサを、指定した命令列の特定の位置の命令まで実行した後再び前記プロセッサ管理モードに移行せしめるブレークポイント指定実行モードに設定し、
    前記命令列の特定の位置として、前記実行命令数が最大であるコンピューティングモジュールから受信したプログラムカウンタ値の示す命令位置を指定し、その後、前記プロセッサを通常実行モードに移行させ、
    前記プロセッサが指定された命令列中の特定の位置である、前記命令実行数が最大であるコンピューティングモジュールと同じ命令列の位置までの命令列を実行した後、再びプロセッサ管理モードに移行させることを特徴とする請求項13に記載のフォルトトレラントコンピュータ装置の再同期化方法。
  15. 前記命令数カウンタ値が最大であったコンピューティングモジュールが、プログラム実行状態を読み出した後、遅延調整による他のコンピューティングモジュールからの通知を待ち合わせ、
    命令数カウンタ値が最大でない他の全てのコンピューティングモジュールでは、遅延調整処理を実施した後、プログラム実行状態を読み出して、遅延調整処理の完了通知と併せてプログラム実行状態を命令数カウンタ値が最大であるコンピューティングモジュールに送信し、
    命令数カウンタ値が最大であるコンピューティングモジュールでは、全てのコンピューティングモジュールのプログラム実行状態を比較し、全てが一致した場合は即座に、不一致のコンピューティングモジュールを検出した場合は、当該コンピューティングモジュールのみを切り離して無効化する処理を行った後、クロック同期動作を再開するためのリセット信号の発生を指令することを特徴とする請求項11又は請求項13に記載のフォルトトレラントコンピュータ装置の再同期化方法。
  16. プロセッサ、メモリを含むコンピューティングモジュールを複数備え、各コンピューティングモジュールがクロック同期して同じ命令列を処理するロックステップ方式のフォルトトレラントコンピュータ装置の再同期化処理を実行する再同期化プログラムであって、
    前記各コンピューティングモジュール内の前記各プロセッサ間の外部バスへのアクセス状態の不一致を検出した場合であって、前記各コンピューティングモジュールを含む装置全体の故障が検出されない場合に、全ての前記各プロセッサに対して割り込みを発生させる機能と、
    前記コンピューティングモジュール間の命令実行状況を一致させる遅延調整を行った後、前記各コンピューティングモジュールに対してクロック同期動作を再開させる機能を実行する
    ことを特徴とするフォルトトレラントコンピュータ装置の再同期化プログラム。
  17. 前記各コンピューティングモジュールを含む装置全体の故障の有無を監視する機能と、
    前記各コンピューティングモジュール内の前記各プロセッサの外部バスへのアクセス状態を監視する機能と、
    前記各コンピューティングモジュール内の前記各プロセッサの外部バスへのアクセス状態の不一致を検出した場合であって、前記障害監視制御手段がなんらの障害も検出していない場合に、その旨を全ての前記各プロセッサに通知するための割り込みを発生させる機能と、
    前記コンピューティングモジュール間の命令実行状況を一致させる遅延調整を行った後、全ての前記コンピューティングモジュールのクロック同期動作を再開させるためのリセット信号を発生させる機能を実行することを特徴とする請求項16に記載のフォルトトレラントコンピュータ装置の再同期化プログラム。
  18. 前記割り込み制御手段からの割り込みを受けた前記全てのプロセッサが、該プロセッサ内部の実行命令数を計数する命令数カウンタが動作しない、再同期化処理用のプロセッサ管理モードに移行する機能と、
    前記各プロセッサが、その読み出した命令数カウンタ値を、他のコンピューティングモジュール内の各プロセッサから受信した命令数カウンタ値と比較する機能と、
    前記命令数カウンタ値が最大でない前記コンピューティングモジュールが、最大であるコンピューティングモジュールの命令数カウント値と一致するまで命令実行を進める遅延調整を行い、一致した際に前記命令数カウンタ値が最大である前記コンピューティングモジュールに通知する機能と、
    前記命令数カウンタ値が最大である前記コンピューティングモジュールが、他の全てのコンピューティングモジュールから通知があるまで処理を待合せ、通知があると、前記同期制御手段に対して全てのコンピューティングモジュールをクロック同期で動作再開させるためのリセット信号の発生を指令する機能を実行することを特徴とする請求項17に記載のフォルトトレラントコンピュータ装置の再同期化プログラム。
  19. 前記命令数カウンタ値が最大でない前記コンピューティングモジュールが、最大であるコンピューティングモジュールの命令数カウント値と一致するまで命令実行を進める遅延調整において、
    前記プロセッサを1命令だけ実行した後、再び前記プロセッサ管理モードに移行せしめるステップ実行モードに設定する機能と、
    前記プロセッサが1命令を実行した後、再びプロセッサ管理モードに移行させる機能と、
    前記プロセッサは、命令数カウンタの値が実行命令数が最大であるコンピューティングモジュールの命令数カウンタ値と一致するまで、再度ステップ実行モード設定処理から処理を繰り返すことを特徴とする請求項18に記載のフォルトトレラントコンピュータ装置の再同期化プログラム。
  20. 前記割り込み制御部からの割り込みを受けた前記全てのプロセッサが、該プロセッサ内部の実行命令数を計数する命令数カウンタが動作せず、かつプログラムカウンタ値を待避して保存する、再同期化処理用のプロセッサ管理モードに移行する機能と、
    前記各プロセッサが、該各プロセッサの命令数カウンタ値と前記待避したプログラムカウンタ値とを読み出し、該読み出し値を他の全ての前記コンピューティングモジュールに送信する機能と、
    前記各プロセッサが、その読み出した命令数カウンタ値を、他のコンピューティングモジュール内の各プロセッサから受信した命令数カウンタ値と比較する機能と、
    前記命令数カウンタ値が最大でない前記コンピューティングモジュールが、最大であるコンピューティングモジュールの命令数カウント値と一致するまで命令実行を進める遅延調整を行い、一致した際に前記命令数カウンタ値が最大である前記コンピューティングモジュールに通知する機能と、
    前記命令数カウンタ値が最大である前記コンピューティングモジュールが、他の全てのコンピューティングモジュールから通知があるまで処理を待合せ、通知があると、前記同期制御手段に対して全てのコンピューティングモジュールをクロック同期で動作再開させるためのリセット信号の発生を指令する機能を実行することを特徴とする請求項18に記載のフォルトトレラントコンピュータ装置の再同期化プログラム。
  21. 前記命令数カウンタ値が最大でない前記コンピューティングモジュールが、最大であるコンピューティングモジュールの命令数カウント値と一致するまで命令実行を進める遅延調整において、
    前記プロセッサを、指定した命令列の特定の位置の命令まで実行した後再び前記プロセッサ管理モードに移行せしめるブレークポイント指定実行モードに設定する機能と、
    前記命令列の特定の位置として、前記実行命令数が最大であるコンピューティングモジュールから受信したプログラムカウンタ値の示す命令位置を指定し、その後、前記プロセッサを通常実行モードに移行させる機能と、
    前記プロセッサが指定された命令列中の特定の位置である、前記命令実行数が最大であるコンピューティングモジュールと同じ命令列の位置までの命令列を実行した後、再びプロセッサ管理モードに移行させる機能を実行することを特徴とする請求項20に記載のフォルトトレラントコンピュータ装置の再同期化プログラム。
  22. 前記命令数カウンタ値が最大であったコンピューティングモジュールが、プログラム実行状態を読み出した後、遅延調整による他のコンピューティングモジュールからの通知を待ち合わせる機能と、
    命令数カウンタ値が最大でない他の全てのコンピューティングモジュールでは、遅延調整処理を実施した後、プログラム実行状態を読み出して、遅延調整処理の完了通知と併せてプログラム実行状態を命令数カウンタ値が最大であるコンピューティングモジュールに送信する機能と、
    命令数カウンタ値が最大であるコンピューティングモジュールでは、全てのコンピューティングモジュールのプログラム実行状態を比較し、全てが一致した場合は即座に、不一致のコンピューティングモジュールを検出した場合は、当該コンピューティングモジュールのみを切り離して無効化する処理を行った後、クロック同期での動作を再開させるためのリセット信号の発生を指令する機能を実行することを特徴とする請求項18又は請求項20に記載のフォルトトレラントコンピュータ装置の再同期化プログラム。
JP2002204167A 2002-07-12 2002-07-12 フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム Pending JP2004046599A (ja)

Priority Applications (9)

Application Number Priority Date Filing Date Title
JP2002204167A JP2004046599A (ja) 2002-07-12 2002-07-12 フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
TW92117918A TWI229791B (en) 2002-07-12 2003-07-01 Fault-tolerant computer system, re-synchronization method thereof and re-synchronization program thereof
AU2003208129A AU2003208129A1 (en) 2002-07-12 2003-07-04 Fault-tolerant Computer System, Re-synchronization Method Thereof and Re-synchronization Program Thereof
US10/614,150 US7107484B2 (en) 2002-07-12 2003-07-08 Fault-tolerant computer system, re-synchronization method thereof and re-synchronization program thereof
ES03015797T ES2248686T3 (es) 2002-07-12 2003-07-10 Sistema de ordenador tolerante a fallos, metodo de resincronizacion para el mismo y programa de resincronizacion para el mismo.
EP20030015797 EP1380953B1 (en) 2002-07-12 2003-07-10 Fault-tolerant computer system, re-synchronization method thereof and re-synchronization program thereof
DE2003602184 DE60302184T2 (de) 2002-07-12 2003-07-10 Fehlertolerantes Computersystem, Verfahren zur Resynchronisierung desselben und zugehöriges Resynchronisierungs-Programm
CNA031474632A CN1521625A (zh) 2002-07-12 2003-07-11 容错计算机系统,其再同步方法,及其再同步程序
KR20030047289A KR100566338B1 (ko) 2002-07-12 2003-07-11 폴트 톨러런트 컴퓨터 시스템, 그의 재동기화 방법 및 재동기화 프로그램이 기록된 컴퓨터 판독가능 기억매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002204167A JP2004046599A (ja) 2002-07-12 2002-07-12 フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム

Publications (1)

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

Family

ID=38834973

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002204167A Pending JP2004046599A (ja) 2002-07-12 2002-07-12 フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム

Country Status (9)

Country Link
US (1) US7107484B2 (ja)
EP (1) EP1380953B1 (ja)
JP (1) JP2004046599A (ja)
KR (1) KR100566338B1 (ja)
CN (1) CN1521625A (ja)
AU (1) AU2003208129A1 (ja)
DE (1) DE60302184T2 (ja)
ES (1) ES2248686T3 (ja)
TW (1) TWI229791B (ja)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008120352A1 (ja) 2007-03-29 2008-10-09 Fujitsu Limited 情報処理装置、エラー処理方法
JP2009193504A (ja) * 2008-02-18 2009-08-27 Nec Corp フォルトトレラントコンピュータ、同期制御方法、及びプログラム
JP2009230590A (ja) * 2008-03-25 2009-10-08 Fujitsu Ltd 分散処理を実行する演算装置とサーバおよび分散処理方法
JP2010033466A (ja) * 2008-07-30 2010-02-12 Hitachi Ltd ストレージ装置及びその制御方法
JP2010092105A (ja) * 2008-10-03 2010-04-22 Fujitsu Ltd 同期制御装置,情報処理装置及び同期管理方法
JP2010211250A (ja) * 2009-03-06 2010-09-24 Nec Corp フォールトトレラントコンピュータ及びそのタイミング調整方法
US20110082959A1 (en) * 2009-10-06 2011-04-07 Nec Corporation Timeout preventing device, a timeout preventing method and a program thereof
JP2011090553A (ja) * 2009-10-23 2011-05-06 Nec System Technologies Ltd 情報処理装置、同期制御方法およびプログラム
JP2012514257A (ja) * 2008-12-31 2012-06-21 インテル・コーポレーション 冗長プロセスを同期させるためのステート履歴ストレージ
JP2013206278A (ja) * 2012-03-29 2013-10-07 Nec Corp 冗長化システム、冗長化方法、冗長化システムの可用性向上方法、及びプログラム
JP2014041503A (ja) * 2012-08-23 2014-03-06 Nec Corp フォールトトレラントコンピュータシステム、フォールトトレラントコンピュータシステムの起動方法およびフォールトトレラントコンピュータシステムの起動プログラム
JP2014059870A (ja) * 2012-09-14 2014-04-03 General Electric Co <Ge> プロセッサの命令実行の同期システムおよび方法
JP2014059750A (ja) * 2012-09-18 2014-04-03 Yokogawa Electric Corp フォールトトレラントシステム
JP2016031651A (ja) * 2014-07-29 2016-03-07 富士通株式会社 情報処理システム及び方法
WO2016132432A1 (ja) * 2015-02-16 2016-08-25 三菱電機株式会社 プロセッサ及びマイクロコンピュータ

Families Citing this family (67)

* 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
DE102004032405A1 (de) * 2004-07-03 2006-02-09 Diehl Bgt Defence Gmbh & Co. Kg Weltraum-taugliche Rechnerarchitektur
US7669027B2 (en) 2004-08-19 2010-02-23 Micron Technology, Inc. Memory command delay balancing in a daisy-chained memory topology
US7624302B2 (en) * 2004-10-25 2009-11-24 Hewlett-Packard Development Company, L.P. System and method for switching the role of boot processor to a spare processor responsive to detection of loss of lockstep in a boot processor
US7818614B2 (en) * 2004-10-25 2010-10-19 Hewlett-Packard Development Company, L.P. System and method for reintroducing a processor module to an operating system after lockstep recovery
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
DE502005006442D1 (de) * 2004-10-25 2009-02-26 Bosch Gmbh Robert Verfahren und vorrichtung zur modusumschaltung und zum signalvergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten
US20060107116A1 (en) * 2004-10-25 2006-05-18 Michaelis Scott L System and method for reestablishing lockstep for a processor module for which loss of lockstep is detected
US7308566B2 (en) * 2004-10-25 2007-12-11 Hewlett-Packard Development Company, L.P. System and method for configuring lockstep mode of a processor module
US7516359B2 (en) * 2004-10-25 2009-04-07 Hewlett-Packard Development Company, L.P. System and method for using information relating to a detected loss of lockstep for determining a responsive action
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
US7366948B2 (en) * 2004-10-25 2008-04-29 Hewlett-Packard Development Company, L.P. System and method for maintaining in a multi-processor system a spare processor that is in lockstep for use in recovering from loss of lockstep for another processor
US7502958B2 (en) * 2004-10-25 2009-03-10 Hewlett-Packard Development Company, L.P. System and method for providing firmware recoverable lockstep protection
JP4117684B2 (ja) * 2004-12-20 2008-07-16 日本電気株式会社 フォルトトレラント・二重化コンピュータシステムとその制御方法
JP4182486B2 (ja) * 2004-12-20 2008-11-19 日本電気株式会社 フォールト・トレラント・コンピュータ・リセット方法及びそのシステム
JP2006178636A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ、およびその制御方法
JP4182948B2 (ja) * 2004-12-21 2008-11-19 日本電気株式会社 フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法
US8826288B2 (en) * 2005-04-19 2014-09-02 Hewlett-Packard Development Company, L.P. Computing with both lock-step and free-step processor modes
US7590885B2 (en) * 2005-04-26 2009-09-15 Hewlett-Packard Development Company, L.P. Method and system of copying memory from a source processor to a target processor by duplicating memory writes
US7426614B2 (en) * 2005-04-28 2008-09-16 Hewlett-Packard Development Company, L.P. Method and system of executing duplicate copies of a program in lock step
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
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
US8103861B2 (en) * 2005-04-28 2012-01-24 Hewlett-Packard Development Company, L.P. Method and system for presenting an interrupt request to processors executing in lock step
US7747932B2 (en) * 2005-06-30 2010-06-29 Intel Corporation Reducing the uncorrectable error rate in a lockstepped dual-modular redundancy system
CA2614330A1 (en) * 2005-07-05 2007-01-11 Viasat, Inc. Synchronized high-assurance circuits
US8190877B2 (en) * 2005-07-05 2012-05-29 Viasat, Inc. Trusted cryptographic processor
US7802075B2 (en) * 2005-07-05 2010-09-21 Viasat, Inc. Synchronized high-assurance circuits
US8527741B2 (en) * 2005-07-05 2013-09-03 Viasat, Inc. System for selectively synchronizing high-assurance software tasks on multiple processors at a software routine level
US8701091B1 (en) 2005-12-15 2014-04-15 Nvidia Corporation Method and system for providing a generic console interface for a graphics application
US7496786B2 (en) * 2006-01-10 2009-02-24 Stratus Technologies Bermuda Ltd. Systems and methods for maintaining lock step operation
US7891012B1 (en) * 2006-03-01 2011-02-15 Nvidia Corporation Method and computer-usable medium for determining the authorization status of software
US8452981B1 (en) * 2006-03-01 2013-05-28 Nvidia Corporation Method for author verification and software authorization
US8436870B1 (en) 2006-08-01 2013-05-07 Nvidia Corporation User interface and method for graphical processing analysis
US8436864B2 (en) * 2006-08-01 2013-05-07 Nvidia Corporation Method and user interface for enhanced graphical operation organization
US8607151B2 (en) * 2006-08-01 2013-12-10 Nvidia Corporation Method and system for debugging a graphics pipeline subunit
US7778800B2 (en) * 2006-08-01 2010-08-17 Nvidia Corporation Method and system for calculating performance parameters for a processor
US8963932B1 (en) 2006-08-01 2015-02-24 Nvidia Corporation Method and apparatus for visualizing component workloads in a unified shader GPU architecture
JP4822000B2 (ja) * 2006-12-12 2011-11-24 日本電気株式会社 フォールトトレラントコンピュータ
FR2912526B1 (fr) * 2007-02-13 2009-04-17 Thales Sa Procede de maintien du synchronisme d'execution entre plusieurs processeurs asynchrones fonctionnant en parallele de maniere redondante.
US7797575B2 (en) * 2007-04-04 2010-09-14 International Business Machines Corporation Triple voting cell processors for single event upset protection
US8296738B1 (en) 2007-08-13 2012-10-23 Nvidia Corporation Methods and systems for in-place shader debugging and performance tuning
US9035957B1 (en) 2007-08-15 2015-05-19 Nvidia Corporation Pipeline debug statistics system and method
US7765500B2 (en) * 2007-11-08 2010-07-27 Nvidia Corporation Automated generation of theoretical performance analysis based upon workload and design configuration
US8004962B2 (en) * 2007-12-24 2011-08-23 At&T Intellectual Property I, L.P. Method and system of addressing a problem associated with a network including a video access ready device
US8448002B2 (en) * 2008-04-10 2013-05-21 Nvidia Corporation Clock-gated series-coupled data processing modules
US8090984B2 (en) * 2008-12-10 2012-01-03 Freescale Semiconductor, Inc. Error detection and communication of an error location in multi-processor data processing system having processors operating in Lockstep
DE102009000045A1 (de) * 2009-01-07 2010-07-08 Robert Bosch Gmbh Verfahren und Vorrichtung zum Betreiben eines Steuergerätes
WO2010103562A1 (ja) * 2009-03-09 2010-09-16 富士通株式会社 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム
CN101859330B (zh) * 2009-04-09 2012-11-21 辉达公司 验证集成电路效能模型的方法
US7979746B2 (en) * 2009-04-27 2011-07-12 Honeywell International Inc. Dual-dual lockstep processor assemblies and modules
JP5174784B2 (ja) * 2009-11-06 2013-04-03 株式会社日立製作所 処理装置、処理制御システム、およびその制御方法
US8392750B2 (en) * 2010-02-16 2013-03-05 Hewlett-Packard Development Company, L.P. Method and apparatus for crash recovery and resynchronization
WO2011117155A1 (de) 2010-03-23 2011-09-29 Continental Teves Ag & Co. Ohg Redundante zwei-prozessor-steuerung und steuerungsverfahren
EP2550599B1 (de) 2010-03-23 2020-05-06 Continental Teves AG & Co. OHG Kontrollrechnersystem, verfahren zur steuerung eines kontrollrechnersystems, sowie verwendung eines kontrollrechnersystems
US8499193B2 (en) * 2010-07-30 2013-07-30 Honeywell International Inc. Integrated dissimilar high integrity processing
CN102231125B (zh) * 2011-05-16 2013-02-27 铁道部运输局 临时限速服务器的安全通信机平台
JP5699057B2 (ja) * 2011-08-24 2015-04-08 株式会社日立製作所 プログラマブルデバイス、プログラマブルデバイスのリコンフィグ方法および電子デバイス
US9323315B2 (en) 2012-08-15 2016-04-26 Nvidia Corporation Method and system for automatic clock-gating of a clock grid at a clock source
US8850371B2 (en) 2012-09-14 2014-09-30 Nvidia Corporation Enhanced clock gating in retimed modules
US9519568B2 (en) 2012-12-31 2016-12-13 Nvidia Corporation System and method for debugging an executing general-purpose computing on graphics processing units (GPGPU) application
US9471456B2 (en) 2013-05-15 2016-10-18 Nvidia Corporation Interleaved instruction debugger
CN104484299B (zh) * 2014-12-05 2017-12-22 中国航空工业集团公司第六三一研究所 一种松耦合的Lockstep处理器系统
TWI571712B (zh) * 2015-10-29 2017-02-21 行政院原子能委員會核能研究所 多重容錯控制系統及其同步方法
JP6853162B2 (ja) * 2017-11-20 2021-03-31 ルネサスエレクトロニクス株式会社 半導体装置
FR3108993A1 (fr) * 2020-04-07 2021-10-08 Airbus Operations Procédé et système de synchronisation d’unités de calcul d’un aéronef.
CN112291029B (zh) * 2020-11-02 2024-05-28 温州大学 一种系统同步方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3235762A1 (de) 1982-09-28 1984-03-29 Fried. Krupp Gmbh, 4300 Essen Verfahren und vorrichtung zur synchronisation von datenverarbeitungsanlagen
US5020024A (en) * 1987-01-16 1991-05-28 Stratus Computer, Inc. Method and apparatus for detecting selected absence of digital logic synchronism
AU616213B2 (en) * 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
JPH04247531A (ja) 1991-02-04 1992-09-03 Fujitsu Ltd 障害検出方式
DE4104114C2 (de) 1991-02-11 2000-06-08 Siemens Ag Redundantes Datenverarbeitungssystem
CA2177850A1 (en) 1993-12-01 1995-06-08 Thomas Dale Bissett Fault resilient/fault tolerant computing
US5915082A (en) * 1996-06-07 1999-06-22 Lockheed Martin Corporation Error detection and fault isolation for lockstep processor systems
JPH10326199A (ja) 1997-05-27 1998-12-08 Yaskawa Electric Corp デュアルシステムにおける割込同期装置
US5896523A (en) * 1997-06-04 1999-04-20 Marathon Technologies Corporation Loosely-coupled, synchronized execution
US6289022B1 (en) * 1997-10-21 2001-09-11 The Foxboro Company Methods and systems for fault-tolerant data transmission
JP2001523855A (ja) * 1997-11-14 2001-11-27 マラソン テクノロジーズ コーポレイション 故障回復/耐故障計算機
US6247143B1 (en) * 1998-06-30 2001-06-12 Sun Microsystems, Inc. I/O handling for a multiprocessor computer system
US6980617B1 (en) * 2000-11-15 2005-12-27 Advantest Corporation Reception data synchronizing apparatus and method, and recording medium with recorded reception data synchronizing program
US6779128B1 (en) * 2000-02-18 2004-08-17 Invensys Systems, Inc. Fault-tolerant data transfer
IES20010397A2 (en) * 2000-07-06 2002-02-06 Richmount Computers Ltd Performance monitoring in a storage enclosure
JP2002049501A (ja) 2000-08-04 2002-02-15 Nippon Telegr & Teleph Corp <Ntt> 耐故障性システム及びその故障切り分け方法
US20030163769A1 (en) * 2002-02-27 2003-08-28 Sun Microsystems, Inc. Memory module including an error detection mechanism for address and control signals
US6931568B2 (en) * 2002-03-29 2005-08-16 International Business Machines Corporation Fail-over control in a computer system having redundant service processors
US6948091B2 (en) * 2002-05-02 2005-09-20 Honeywell International Inc. High integrity recovery from multi-bit data failures
JP2004046455A (ja) * 2002-07-10 2004-02-12 Nec Corp 情報処理装置

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2372554A2 (en) 2007-03-29 2011-10-05 Fujitsu Limited Information processing device and error processing method
WO2008120352A1 (ja) 2007-03-29 2008-10-09 Fujitsu Limited 情報処理装置、エラー処理方法
US8078920B2 (en) 2007-03-29 2011-12-13 Fujitsu Limited Information processing device and error processing method
JP2009193504A (ja) * 2008-02-18 2009-08-27 Nec Corp フォルトトレラントコンピュータ、同期制御方法、及びプログラム
JP2009230590A (ja) * 2008-03-25 2009-10-08 Fujitsu Ltd 分散処理を実行する演算装置とサーバおよび分散処理方法
JP2010033466A (ja) * 2008-07-30 2010-02-12 Hitachi Ltd ストレージ装置及びその制御方法
JP2010092105A (ja) * 2008-10-03 2010-04-22 Fujitsu Ltd 同期制御装置,情報処理装置及び同期管理方法
JP2012514257A (ja) * 2008-12-31 2012-06-21 インテル・コーポレーション 冗長プロセスを同期させるためのステート履歴ストレージ
JP2010211250A (ja) * 2009-03-06 2010-09-24 Nec Corp フォールトトレラントコンピュータ及びそのタイミング調整方法
JP2011081544A (ja) * 2009-10-06 2011-04-21 Nec Corp Cpu再リセットを伴うcpu再初期化時におけるタイムアウト防止方法、その装置及びそのプログラム
US20110082959A1 (en) * 2009-10-06 2011-04-07 Nec Corporation Timeout preventing device, a timeout preventing method and a program thereof
US8392642B2 (en) 2009-10-06 2013-03-05 Nec Corporation Timeout preventing device, a timeout preventing method and a program thereof
JP2011090553A (ja) * 2009-10-23 2011-05-06 Nec System Technologies Ltd 情報処理装置、同期制御方法およびプログラム
JP2013206278A (ja) * 2012-03-29 2013-10-07 Nec Corp 冗長化システム、冗長化方法、冗長化システムの可用性向上方法、及びプログラム
JP2014041503A (ja) * 2012-08-23 2014-03-06 Nec Corp フォールトトレラントコンピュータシステム、フォールトトレラントコンピュータシステムの起動方法およびフォールトトレラントコンピュータシステムの起動プログラム
JP2014059870A (ja) * 2012-09-14 2014-04-03 General Electric Co <Ge> プロセッサの命令実行の同期システムおよび方法
JP2014059750A (ja) * 2012-09-18 2014-04-03 Yokogawa Electric Corp フォールトトレラントシステム
US9465634B2 (en) 2012-09-18 2016-10-11 Yokogawa Electric Corporation Fault tolerant system and method for performing fault tolerant
JP2016031651A (ja) * 2014-07-29 2016-03-07 富士通株式会社 情報処理システム及び方法
US9811404B2 (en) 2014-07-29 2017-11-07 Fujitsu Limited Information processing system and method
WO2016132432A1 (ja) * 2015-02-16 2016-08-25 三菱電機株式会社 プロセッサ及びマイクロコンピュータ

Also Published As

Publication number Publication date
DE60302184D1 (de) 2005-12-15
US20040153857A1 (en) 2004-08-05
ES2248686T3 (es) 2006-03-16
US7107484B2 (en) 2006-09-12
AU2003208129A1 (en) 2004-01-29
KR100566338B1 (ko) 2006-03-31
DE60302184T2 (de) 2006-08-03
TW200401186A (en) 2004-01-16
EP1380953A1 (en) 2004-01-14
TWI229791B (en) 2005-03-21
EP1380953B1 (en) 2005-11-09
KR20040007338A (ko) 2004-01-24
CN1521625A (zh) 2004-08-18

Similar Documents

Publication Publication Date Title
JP2004046599A (ja) フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
EP1380952B1 (en) Fault-tolerant computer system, re-synchronization method thereof and re-synchronization program thereof
US4757442A (en) Re-synchronization system using common memory bus to transfer restart data from non-faulty processor to failed processor
US20070220367A1 (en) Fault tolerant computing system
US20070260939A1 (en) Error filtering in fault tolerant computing systems
CN101714108B (zh) 同步控制设备、信息处理设备以及同步管理方法
RU2577465C2 (ru) Система, способ и устройство для коррекции ошибки в мультипроцессорных системах
JPH03184129A (ja) 特定のデータをシステムデータに変換する方法
JP2008046942A (ja) フォールトトレラントコンピュータ、そのトランザクション同期制御方法
CA2435001C (en) Fault-tolerant computer system, re-synchronization method thereof and re-synchronization program thereof
JP3774826B2 (ja) 情報処理装置
EP2372554B1 (en) Information processing device and error processing method
CN116795601A (zh) 双机热备份方法、系统、装置、计算机设备及存储介质
US9992010B2 (en) System and method for augmenting duplexed replicated computing
US6587957B1 (en) Disk drive controller for controlling data flow therethrough by switching to secondary bus to receive clock pulses when a failure on master bus is detected
JP6654662B2 (ja) サーバ装置およびサーバシステム
JP3652232B2 (ja) マイクロコンピュータのエラー検出方法及びエラー検出回路及びマイクロコンピュータシステム
JP2008059134A (ja) データ転送方式およびデータ転送方法
JP2645880B2 (ja) システムクロック二重化方式
JPH05216855A (ja) マルチcpu制御方式
JP2001175545A (ja) サーバシステムおよび障害診断方法ならびに記録媒体
KR100299316B1 (ko) 에이티엠 교환 시스템에서의 셀 경계 회복 방법
JP3318926B2 (ja) 時刻同期方式
JP2008225752A (ja) フォールトトレラントコンピュータ、フォールトトレラントコンピュータにおける同期制御方法
Mueller et al. Fully redundant clock generation and distribution with dynamic oscillator switchover

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060621

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061031

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20061130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20061130

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