JP2004318702A - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP2004318702A
JP2004318702A JP2003114385A JP2003114385A JP2004318702A JP 2004318702 A JP2004318702 A JP 2004318702A JP 2003114385 A JP2003114385 A JP 2003114385A JP 2003114385 A JP2003114385 A JP 2003114385A JP 2004318702 A JP2004318702 A JP 2004318702A
Authority
JP
Japan
Prior art keywords
outputs
processing means
processing
output
cpu module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003114385A
Other languages
English (en)
Other versions
JP4155088B2 (ja
Inventor
Fumitoshi Mizutani
文俊 水谷
Yasuyuki Shirono
康之 白野
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 JP2003114385A priority Critical patent/JP4155088B2/ja
Priority to EP04009029A priority patent/EP1469390A3/en
Priority to US10/824,594 priority patent/US20040221195A1/en
Priority to AU2004201590A priority patent/AU2004201590A1/en
Priority to CNA200410036826XA priority patent/CN1538299A/zh
Publication of JP2004318702A publication Critical patent/JP2004318702A/ja
Application granted granted Critical
Publication of JP4155088B2 publication Critical patent/JP4155088B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level

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)

Abstract

【課題】複数のCPUモジュールの出力の順序が互いに異なっていてもこれら複数のCPUモジュールの動作が一致しているか否かを判別することができる情報処理装置を提供する。
【解決手段】互いに同期して同一の処理を行うCPUモジュール100および200と、これらCPUモジュール100および200に接続されたI/Oモジュール300とを有する。I/Oモジュール300は、CPUモジュール100および200からの出力を受け取り、CPUモジュール100からの複数個数の出力とCPUモジュール200からの複数個数の出力との順序を対応させて比較し一致しているか否かを判別する。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、情報処理装置に関し、特に、フォールトトレーラントシステムに用いられる情報処理装置に関する。
【0002】
【従来の技術】
従来、フォールトトレーラントシステムに用いられる情報処理装置は、二重化されたプロセッサに共通のクロック信号を分配して同一の処理を行わせ、2つのプロセッサの出力をそれらが得られる度に比較して二重化プロセッサの出力の不一致を検出する。
【0003】
【特許文献1】
特開平8−95816号公報(第1図)
【0004】
【発明が解決しようとする課題】
上述の従来の情報処理装置では、たとえ二重化されたプロセッサの各々が正常に動作しているとしても、経年変化や製造上のばらつき、あるいは、一方のプロセッサの割り込み処理などの割り込みタイミングが他方のプロセッサのそれに対してずれることなどにより、2つのプロセッサの出力のタイミングや順序が異なることがある。出力の順序が入れ替わると、ある時点で2つのプロセッサからの出力が異なってしまうため、従来のフォールトトレーラントシステムに用いられる情報処理装置では、2つのプロセッサの出力の不一致を検出してしまうという問題がある。
【0005】
そこで、本発明の目的は、複数のCPUモジュールからの出力の順序が互いに異なる場合でも複数のCPUモジュールの動作が一致しているか否かを判別することができる情報処理装置を提供することにある。
【0006】
また、本発明の他の目的は、複数のCPUモジュールからの出力に分断されているものが含まれている場合でも複数のCPUモジュールの動作が一致しているか否かを判別することができる情報処理装置を提供することにある。
【0007】
【課題を解決するための手段】
上記課題を解決するために本発明の情報処理装置は、互いに同期して同一の処理を行う第1および第2の処理手段と、前記第1および第2の処理手段からの出力を受け取り、前記第1の処理手段からの複数個数の出力と前記第2の処理手段からの複数個数の出力との順序を対応させて比較し一致しているか否かを判別する第3の処理手段とを含むことを特徴とする。
【0008】
また、本発明の他の情報処理装置は、前記第3の処理手段は、前記第1の処理手段からの複数個数の出力を格納する第1の格納手段と、前記第2の処理手段からの複数個数の出力を格納する第2の格納手段とを含むことを特徴とする。
【0009】
さらに、本発明の他の情報処理装置は、前記第3の処理手段は、前記第1および第2の格納手段のうちいずれか一方において格納する複数個数の出力の格納量が所定量に達したときに、前記第1の格納手段に格納された前記第1の処理手段からの複数個数の出力と前記第2の格納手段に格納された前記第2の処理手段からの複数個数の出力との順序を対応させて比較し一致しているか否かを判別することを特徴とする。
【0010】
また、本発明の他の情報処理装置は、前記第3の処理手段は、上記第1および第2の処理手段の出力を受け取る頻度よりも低い頻度で上記判別を行うよう指定する指定手段をさらに含むことを特徴とする。
【0011】
上記課題を解決するために本発明の情報処理装置は、互いに同期して同一の処理を行う第1および第2の処理手段と、前記第1および第2の処理手段からの出力を受け取る第3の処理手段と、この第3の処理手段に設けられ、前記第1の処理手段からの複数個数の出力に基づいて、前記第2の処理手段からの複数個数の出力を再構成する再構成手段と、前記第3の処理手段に設けられ、前記第1の処理手段からの複数個数の出力と前記再構成手段により再構成された前記第2の処理手段からの複数個数の出力とを比較する比較手段とを含む。
【0012】
また、本発明の他の情報処理装置は、前記第3の処理手段は、前記第1の処理手段からの複数個数の出力を格納する第1の格納手段と、前記第2の処理手段からの複数個数の出力を格納する第2の格納手段とを含み、前記再構成手段は、前記第2の格納手段に格納された前記第2の処理手段からの複数個数の出力の順序を、前記第1の格納手段に格納された前記第1の処理手段からの複数個数の出力の順序に基づいて並べ替えることを特徴とする。
【0013】
また、本発明の他の情報処理装置は、前記第3の処理手段は、前記第1の処理手段からの複数個数の出力を格納する第1の格納手段と、前記第2の処理手段からの複数個数の出力を格納する第2の格納手段とを含み、前記再構成手段は、前記第2の格納手段に格納された前記第2の処理手段からの複数個数の出力を、前記第1の格納手段に格納された複数個数の前記第1の処理手段からの複数個数の出力に基づいて分割し再結合することを特徴とする特徴とする。
【0014】
上記課題を解決するために本発明の情報処理装置は、互いに同期して同一の処理を行う第1および第2の処理手段と、前記第1および第2の処理手段からの出力を受け取り、前記第1の処理手段からの第1の出力に対応する前記第2の処理手段からの第2の出力を選び、前記第1の出力と前記第2の出力とを比較し一致しているか否かを判別する第3の処理手段とを含む。
【0015】
さらに、本発明の他の情報処理装置は、前記第3の処理手段は、前記第1の処理手段からの出力を格納する第1の格納手段と、前記第2の処理手段からの出力を格納する第2の格納手段とを含み、前記第3の処理手段は、前記第1の格納手段に格納された前記第1の処理手段からの前記第1の出力に対応する前記第2の出力を前記第2の格納手段を探索して求めることを特徴とする。
【0016】
【発明の実施の形態】
次に本発明の情報処理装置の実施の形態について図面を参照して詳細に説明する。
【0017】
図1を参照すると、本発明の情報処理装置1はCPUモジュール100および200と、Input/Output(I/O)モジュール300と、共通クロック生成部10とを含む。本実施の形態では、1つのI/Oモジュール300がCPUモジュール100および200に接続されている。CPUモジュール100および200の各々が複数のI/Oモジュール300に接続されていてもよい。CPUモジュール100および200とI/Oモジュール300との接続は、例えば、Peripheral Components Interconnect (PCI)−Expressなどによる。
【0018】
CPUモジュール100は、演算要素101およびインタフェース制御部102を有する。CPUモジュール200は、CPUモジュール100と同様の構成を有する。CPUモジュール200は、演算要素201およびインタフェース制御部202を有する。
【0019】
CPUモジュール100および200は、同一の動作を同時に実行するよう構成されている。CPUモジュール100および200には共通クロック生成部10からの共通クロックが供給されている。CPUモジュール100および200のうち、一方がマスタとなり、他方がパートナーとなって動作する。本実施の形態では、CPUモジュール100がマスタであり、CPUモジュール200がパートナーである。
【0020】
演算要素101および201は、共通クロック生成部10からの共通クロックに同期して同一の処理を実行する。演算要素101および201は、単一のプロセッサにより構成しても良いし、複数のプロセッサにより構成しても良い。
【0021】
インタフェース制御部102は、CPUモジュール100からI/Oモジュール300へのインタフェースを果たす。インタフェース制御部102は、パリティ/Error Correcting Code(ECC)の生成や、複数のI/Oモジュール300に接続されていればこれらへのブリッジも行う。インタフェース制御部202は、インタフェース制御部102と同様の構成を有している。
【0022】
I/Oモジュール300は、命令解析部310、バッファ321および322、バッファ監視部330、比較器340、エラー制御部350、エラー検出部360、マルチプレクサ370およびI/Oインタフェース380を含む。
【0023】
命令解析部310は、バッファ監視部330から比較開始信号を受け取ると、バッファ321に格納されたマスタCPUモジュール100からの複数個数の出力の順序に対応するよう、バッファ322に格納されたパートナーCPUモジュール200からの複数個数の出力を再構成する。再構成の1つは、具体的には、命令解析部310が、バッファ322に格納されたCPUモジュール200からの複数個数の出力の順序を、バッファ321に格納されたCPUモジュール100からの複数個数の出力の順序に基づいて並べ替えることである。再構成の他の1つとしては、具体的には、命令解析部310が、バッファ321に格納されたCPUモジュール100からの複数個数の出力に基づいて、バッファ322に格納されたCPUモジュール200からの複数個数の出力を分割し再結合することである。命令解析部310は、バッファ321から読み出したCPUモジュール100からの複数個数の出力とバッファ322から読み出し再構成したCPUモジュール200からの複数個数の出力とを比較器340に送出する。命令解析部310は、バッファ322に格納されたパートナーCPUモジュール200からの複数個数の出力を、バッファ321に格納されたマスタCPUモジュール100からの複数個数の出力の順序に対応させることができない場合、順序不一致である旨をエラー制御部350に通知する。
【0024】
バッファ321および322は、CPUモジュール100および200にそれぞれ対応して設けられている。バッファ321は、CPUモジュール100からの複数個数の出力を格納する。バッファ322は、CPUモジュール200からの複数個数の出力を格納する。CPUモジュール100および200からの各々の出力は、コマンドおよびアドレスなどからなるコマンド部と少なくとも1つのデータからなるデータ部とを含んでおり、バッファ321および322の各エントリに格納される情報はコマンド部およびデータ部を含む。本実施の形態では、CPUモジュール100および200からの1つの出力単位はパケットである。1つのパケットは、演算要素101および201から出力される読み出しや書き込みなどのコマンドを単位として、該コマンドとそれに付随するデータなどを含んでいる。データは複数の単位からなる。
【0025】
バッファ321および322は、それぞれ複数のエントリを有する。バッファ321および322の各エントリはCPUモジュール100および200からの各パケットを格納する。バッファ321および322のエントリの数は、本実施の形態では10から20個である。バッファ321および322の各々は、パケットのコマンド部を格納するコマンド領域と、パケットのデータ部を格納するデータ領域とに分かれていても良い。
【0026】
バッファ監視部330は、バッファ321および322のそれぞれの使用量、すなわち、CPUモジュール100および200からの出力の格納エントリ数を監視する。バッファ監視部330は、バッファ321および322のうち少なくとも一方の使用量が所定量に達したか否かを監視する。バッファ監視部330は、バッファ321および322の少なくとも一方の使用量が所定量に達したことを検出したとき、命令解析部310に対して比較開始信号を送出する。
【0027】
比較器340は、命令解析部310からバッファ321から読み出したCPUモジュール100からの複数個数の出力とバッファ322から読み出し再構成したCPUモジュール200からの複数個数の出力とを受け取り、これらを比較する。比較器340は、CPUモジュール100からの出力とCPUモジュール200からの出力とに含まれるデータ部同士を比較する。データ比較の結果、データが一致していない場合、比較器340はエラー制御部350にCPUモジュール100および200からの出力が不一致である旨を通知する。データが一致している場合、情報処理装置1の状態を変化させる必要が無いため、比較器340は何もしなくてもよい。あるいは、この場合、CPUモジュール100および200からの出力が一致している旨の通知をエラー制御部350に送り、エラー制御部350に、マルチプレクサ370が引き続きマスタCPUモジュール100からの出力をI/Oインタフェース380に送出するよう制御させてもよい。
【0028】
エラー制御部350は、命令解析部310から順序が一致しているか否かの通知を、比較器340から出力が一致しているか否かの通知を、エラー検出部360からハードウェア故障のエラーが存在するか否かの通知を受け取り、これらの通知に基づいてマルチプレクサ370がCPUモジュール100および200のいずれの出力を出力すべきかを制御する。
【0029】
エラー検出部360は、CPUモジュール100および200からI/Oモジュール300に送出されたパケットのパリティエラー、プロトコルエラーやタイムアウトを検出し、ハードウェア故障としてエラー制御部350に通知する。
【0030】
マルチプレクサ370は、エラー制御部350からの指示に基づき、CPUモジュール100および200の一方からの出力をI/Oインタフェース380に出力する。
【0031】
I/Oインタフェース380は、マルチプレクサ370からCPUモジュール100および200のうちの一方からの出力を受け取り、I/Oモジュール300に接続されたI/O装置に出力する。
【0032】
次に、本発明の動作について図面を参照して説明する。
【0033】
図1を参照すると、CPUモジュール100および200は共に同一の処理を共通クロック生成部10からの共通クロックに同期して実行する。CPUモジュール100および200の出力のいずれかがI/Oモジュール300のI/Oインタフェース380を介してI/O装置に送られる。CPUモジュール100の故障が検出されない限り、マスタであるCPUモジュール100からの出力がI/Oインタフェース380に送られる。CPUモジュール200は二重化構成を実現するため設けられている。CPUモジュール100の故障が検出されると、CPUモジュール100が切り離されCPUモジュール200が代替CPUモジュールとなり、CPUモジュール200の出力がI/Oインタフェース380に送られる。CPUモジュール200が故障していることが検出される場合は、CPUモジュール200が切り離され、CPUモジュール100の出力が継続してI/Oインタフェース380に送られる。
【0034】
CPUモジュール100の演算要素101およびCPUモジュール200の演算要素201は共通クロックに同期して同一の動作を実行する。演算要素101および201は各クロックサイクルにおいて同一の処理の結果を同時に出力する。演算要素101は処理の結果のパケットをインタフェース制御部102に出力する。演算要素201は処理の結果のパケットをインタフェース制御部202に出力する。
【0035】
インタフェース制御部102は、演算要素101からの出力をI/Oモジュール300に送出する。インタフェース制御部202は、演算要素201からの出力をI/Oモジュール300に送出する。
【0036】
I/Oモジュール300において、命令解析部310は、CPUモジュール100から受け取ったパケットをコマンド部とデータ部とに分割しバッファ321に格納する。命令解析部310は、CPUモジュール200から受け取ったパケットをコマンド部とデータ部とに分割しバッファ322に格納する。
【0037】
バッファ321はCPUモジュール100からの複数個数のパケットを複数のエントリのそれぞれに格納する。バッファ322はCPUモジュール200からの複数個数のパケットを複数のエントリのそれぞれに格納する。
【0038】
バッファ監視部330は、バッファ321および322のそれぞれについて、パケットが格納されているエントリの数を監視している。バッファ監視部330は、バッファ321または322の少なくともいずれか一方でパケットを格納するエントリの数が所定値に達したことを検出すると、比較開始信号を生成し命令解析部310に送出する。このとき、所定値に達したバッファでは、対応するCPUモジュールに対し再送信が要求され、直後に続くパケットは受け取らない。所定値に達していないバッファでは、所定値に達したバッファが受け取ったパケット数と同数になるまで対応するCPUモジュールからのパケットを受け取る。
【0039】
命令解析部310は、バッファ監視部330から比較開始信号を受信すると、バッファ321に格納された複数個数のパケットとバッファ322に格納された複数個数のパケットとの順序の一致を判別するとともに、バッファ322に格納された複数個数のパケットの順序を変更してバッファ321に格納された複数個数のパケットの順序に対応させる。より詳細には、命令解析部310は、各パケットに含まれるコマンド部(コマンドおよびアドレス)を用いて、バッファ321の何れのパケットがバッファ322の何れのパケットに対応するかを見極め、バッファ322のパケットを並べ替える。命令解析部310は、バッファ321から読み出した複数個数のパケットとバッファ322から読み出し必要に応じ順序を変更した複数個数のパケットとを比較部340に出力する。
【0040】
命令解析部310がバッファ321に格納された複数のパケットとバッファ322に格納された複数のパケットとの順序を一致させることができないと判別した場合、命令解析部310は順序が不一致である旨を示す信号をエラー制御部350に通知する。
【0041】
比較器340は、命令解析部310から、バッファ321に格納された複数のパケットとバッファ321に格納された複数のパケットを必要に応じて並び変えられたものとを受け取り、対応するパケット同士を比較する。比較器340は、パケットのデータ部を用いて比較する。
【0042】
比較器340は、データ部の一致を検出した場合、情報処理装置1の状態を変化させる必要が無いため、何もしなくてもよい。必要であれば、この場合、比較器340は出力が一致している旨の通知をエラー制御部350に送る。この通知を受け取り、エラー制御部350は、マルチプレクサ370が引き続きマスタCPUモジュール100からの出力をI/Oインタフェース380に送出するよう制御する。
【0043】
比較器340は、少なくとも一組の対応するパケットが不一致であると検出した場合、不一致である旨をエラー制御部350に通知する。
【0044】
エラー制御部350は、命令解析部310から順序不一致の通知を受け取っているまたは比較器340から出力不一致の通知を受け取っているが、エラー検出部360からハードウェア故障のエラーが存在する旨の通知を受け取っていない場合、CPUモジュール100および200の同期復旧処理を実行する。同期復旧処理は、マスタCPUモジュール100からパートナーCPUモジュール200へ、全てのメモリの内容や全てのレジスタの内容をコピーし、CPUモジュール100および200を同時にリセットして再同期化させる処理である。
【0045】
ハードウェア故障のエラーが存在する場合、すなわち、エラー検出部360からハードウェア故障のエラーが存在する旨の通知を受け取った場合は、エラー制御部350は、故障と診断されたCPUモジュール100または200の切り離し処理を行う。CPUモジュール100が故障と診断された場合、エラー制御部350は、マルチプレクサ370を切り替えCPUモジュール200からの出力をI/Oインタフェース380に送出するよう制御し、CPUモジュール100からCPUモジュール200への切り替え処理を実行し、CPUモジュール100の切り離し処理を実行する。CPUモジュール200が故障と診断された場合、エラー制御部350は、マルチプレクサ370が引き続きCPUモジュール100からの出力をI/Oインタフェース380に送出するよう制御し、CPUモジュール200の切り離し処理を実行する。
【0046】
図2を参照すると、CPUモジュール100からの出力とCPUモジュール200からの出力とがI/Oモジュール300に入力されるタイミングがずれている場合、CPUモジュール100からの複数個数の出力とCPUモジュール200からの複数個数の出力とがタイミングのずれの影響を受けず比較される。
【0047】
CPUモジュール100から出力されたパケット#1とCPUモジュール200から出力されたパケット#1とは同一のタイミングでI/Oモジュール300に受信され、バッファ321および322にそれぞれ格納される。I/Oモジュール300において、CPUモジュール100から出力されたパケット#2を受け取るタイミングとCPUモジュール200から出力されたパケット#2を受け取るタイミングとは異なっている。さらに、I/Oモジュール300がパケット#3を受け取るタイミングも、CPUモジュール100から受け取る場合とCPUモジュール200から受け取る場合とではずれが生じている。このようにパケット#2以降のパケットは、CPUモジュール100から受け取るものとCPUモジュール200から受け取るものとではタイミングがずれている。しかし、これらのパケットは、一旦、バッファ321および322に格納され比較器340に送られるため、タイミングのずれの影響は無く、並べ替えをすること無く比較器340において同一のパケットである旨が検出される。
【0048】
この例では、パケット3がバッファ321および322に入りきらない。バッファに格納できなかったパケットは再送信が要求され、次の回の並び替えおよび比較の対象となる。
【0049】
図3を参照すると、CPUモジュール100からの出力の順序に対してCPUモジュール200からの出力の順序が異なっている場合、命令解析部310がCPUモジュール200からの出力の順序をCPUモジュール100からの出力の順序に対応させて入れ替えることにより、CPUモジュール100からの出力とCPUモジュール2からの出力とが一致するものと検出される。このようなCPUモジュール100からの出力の順序とCPUモジュール200からの出力の順序との相違は、タイマ割り込みによりCPUモジュール100および200の各々の割り込み処理のタイミングがずれることなどにより生じる。
【0050】
CPUモジュール100において、パケット#1の処理の後タイマ割り込みによりパケット#2の処理が行われ、その後通常のパケット#3の処理が実行される。I/Oモジュール300は、CPUモジュール100からの出力を、パケット#1、パケット#2およびパケット#3の順に連続して受け取る。これに対し、CPUモジュール200ではタイマ割り込み処理のタイミングがずれてパケット#2とパケット#3との順序が逆になっている。すなわち、CPUモジュール200は、パケット#1をまず処理し、次にパケット#3を処理し、その後、タイマ割り込み処理を受け付けパケット#2の処理を実行する。I/Oモジュール300は、CPUモジュール200からの出力を、パケット#1、パケット#3およびパケット#2の順に連続して受け取る。命令解析部310は、CPUモジュール100からの出力、パケット#1、パケット#2およびパケット#3の順序に基づいて、CPUモジュール200からの出力、パケット#1、パケット#3およびパケット#2の順序をパケット#1、パケット#2およびパケット#3の順に並び替える。比較器340は、CPUモジュール100からの複数個数の出力とCPUモジュール200からの複数個数の出力との一致を検出する。
【0051】
図4を参照すると、CPUモジュール200からの出力がCPUモジュール100からの出力に対して分断されている場合、CPUモジュール200からの複数個数の出力のそれぞれをCPUモジュール100からの複数個数の出力のそれぞれに対応するよう再構成する。
【0052】
CPUモジュール100において、パケット#1、パケット#2の順に通常の処理が行なわれ、その後タイマ割り込みでパケット#3の処理が実行される。I/Oモジュール300は、CPUモジュール100からの出力を、パケット#1、パケット#2およびパケット#3の順に連続して受け取る。一方、CPUモジュール200では、パケット#1の処理の後のパケット#2の処理中に割り込みが発生しパケット#3の処理が行われる。パケット#2はパケット#2(1)とパケット#2(2)とに分割されてしまう。I/Oモジュール300は、CPUモジュール200からの出力を、パケット#1、パケット#2(1)とパケット#3からなるパケットおよびパケット#2(2)の順に連続して受け取る。
【0053】
命令解析部310は、パケット#2(1)とパケット#3とからなるパケットを、パケット#2(1)とパケット#3とに切断する。さらに、命令解析部310は、パケット#3とパケット#2(2)との順序を入れ替え、パケット#2(1)とパケット#2(2)とを結合する。比較器340は、CPUモジュール100からの複数個数の出力、パケット#1、パケット#2およびパケット#3、とCPUモジュール200からの複数個数の出力、パケット#1、パケット#2(1)とパケット#2(2)とが再結合されたパケット#2およびパケット#3、とが一致するものであると検出する。
【0054】
このように、本発明では、ある期間において、バッファ321に格納された複数個数のパケットのそれぞれと同一のパケットがバッファ322に過不足なく格納されていればよい。
【0055】
以上のように、CPUモジュール100からの複数個数の出力の順序に対応させてCPUモジュール200からの複数個数の出力の順序を並び替え、これらの出力を比較するI/Oモジュール300を設けたため、複数のCPUモジュールからの出力の順序が互いに異なっている場合であっても、複数のCPUモジュールの動作が一致しているか否かを判別することができる。
【0056】
また、本実施の形態では、CPUモジュール100からの複数個数の出力の順序に対応させてCPUモジュール200からの複数個数の出力を分割し再結合させ、これらの出力を比較するI/Oモジュール300を設けた。このため、複数のCPUモジュールからの出力の中に分断され別のものと結合しているものが存在する場合であっても、複数のCPUモジュールの動作が一致しているか否かを判別することができる。
【0057】
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。本発明の第2の実施の形態は、CPUモジュール100および200のそれぞれにクロック要素20および30を設けた点で第1の実施の形態と異なる。他の構成は、第1の実施例と同様である。
【0058】
図5を参照すると、CPUモジュール100はクロック要素20を含む。CPUモジュール200はクロック要素30を含む。クロック要素20および30は同一のクロックレートである。クロック要素20および30は、情報処理装置2の初期化時などのリセット信号によって同期がとられる。
【0059】
演算要素101はクロック要素20からクロック信号を受け取り動作する。演算要素201はクロック要素30からクロック信号を受け取り動作する。
【0060】
次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。本発明の第3の実施の形態は、CPUモジュール100および200からの出力を受け取る度に、順序が一致するか否かを判別させる点にある。本実施の形態において、上述の実施の形態の要素と同一の符号を有する要素は同一の構成を有する。
【0061】
図6を参照すると、I/Oモジュール400は、命令解析部410、バッファ421および422、バッファ監視部430、比較器440、エラー制御部350、エラー検出部360、マルチプレクサ370およびI/Oインタフェース380を含む。エラー制御部350、エラー検出部360、マルチプレクサ370およびI/Oインタフェース380は第1の実施の形態のものと同様の構成を有する。
【0062】
次に、本発明の動作について図面を参照して説明する。
【0063】
図6を参照すると、I/Oモジュール400において、命令解析部410は、CPUモジュール100から受け取ったパケットをコマンド部とデータ部とに分割しバッファ421に格納する。命令解析部410は、CPUモジュール200から受け取ったパケットをコマンド部とデータ部とに分割しバッファ422に格納する。
【0064】
命令解析部410は、マスタCPUモジュール100に対応するバッファ421の先頭エントリのコマンド部を読み出し、バッファ422を探索して該コマンド部と同一のコマンド部を探す。同一のコマンド部がバッファ422から発見された場合、命令解析部410は、このコマンド部に対応するデータ部をバッファ421および422からそれぞれ読み出し、比較器440に出力する。
【0065】
比較器440では、命令解析部410から受け取ったバッファ421から読み出されたデータ部とバッファ421から読み出されたデータ部とを比較する。このとき、命令解析部410がCPUモジュール200から受け取った出力の順序と、比較器440が命令解析部410から受け取った出力の順序とは、必要に応じ異なっている。具体的には、命令解析部410が比較器440に送る出力の順序は、CPUモジュール100から受け取る出力の順序に対応するよう並び替えられている。
【0066】
本第3の実施の形態において、命令解析部410は、CPUモジュール100および200から受け取ったパケットをバッファに格納する前に、各パケットのコマンド部が対応するか否かを判別するようにしても良い。
【0067】
このように本実施の形態では、一致しているパケットはバッファに貯まらずI/Oインタフェース380に送られるため、パケットを格納するバッファの容量を小さくすることができる。
【0068】
次に、上述の実施の形態の実施様態について説明する。
【0069】
上述の実施の形態では1つのCPUモジュールに対して1つのバッファを対応付けたが、本実施の第1乃至第3の形態において、1つのCPUモジュールに対して複数のバッファを対応付けるようにしても良い。この場合、パケットの並べ替えのスループットを向上させることができる。
【0070】
また、上記実施の形態では、CPUモジュール100および200からの出力の順序の一致をその出力に元々備えられている情報を用いて判別したが、CPUモジュール100および200のそれぞれにおいて、各出力に順序を示す情報を付加させても良い。この場合、命令解析部は各出力の順序を示す情報を用いて順序の一致を判別する。
【0071】
【発明の効果】
以上説明したように、本発明では、第1のCPUモジュールからの複数個数の出力の順序に対応させて第2のCPUモジュールからの複数個数の出力の順序を並び替え、これらの出力を比較するI/Oモジュールを設けた。このため、複数のCPUモジュールからの出力の順序が互いに異なっている場合であっても、複数のCPUモジュールの動作が一致しているか否かを判別することができる。
【0072】
また、本発明では、第1のCPUモジュールからの複数個数の出力の順序に対応させて第2のCPUモジュールからの複数個数の出力を分割し再結合させ、これらの出力を比較するI/Oモジュールを設けた。このため、複数のCPUモジュールからの出力の中に分断され別のものと結合しているものが存在する場合であっても、複数のCPUモジュールの動作が一致しているか否かを判別することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態を示す図である。
【図2】本発明の実施の形態の動作の一例を示す図である。
【図3】本発明の実施の形態の動作の一例を示す図である。
【図4】本発明の実施の形態の動作の一例を示す図である。
【図5】本発明の第2の実施の形態を示す図である。
【図6】本発明の第3の実施の形態を示す図である。
【符号の説明】
100 CPUモジュール
200 CPUモジュール
300、400 I/Oモジュール

Claims (9)

  1. 互いに同期して同一の処理を行う第1および第2の処理手段と、
    前記第1および第2の処理手段からの出力を受け取り、前記第1の処理手段からの複数個数の出力と前記第2の処理手段からの複数個数の出力との順序を対応させて比較し一致しているか否かを判別する第3の処理手段とを含むことを特徴とする情報処理装置。
  2. 前記第3の処理手段は、前記第1の処理手段からの複数個数の出力を格納する第1の格納手段と、前記第2の処理手段からの複数個数の出力を格納する第2の格納手段とを含むことを特徴とする請求項1記載の情報処理装置。
  3. 前記第3の処理手段は、前記第1および第2の格納手段のうちいずれか一方において格納する複数個数の出力の格納量が所定量に達したときに、前記第1の格納手段に格納された前記第1の処理手段からの複数個数の出力と前記第2の格納手段に格納された前記第2の処理手段からの複数個数の出力との順序を対応させて比較し一致しているか否かを判別することを特徴とする請求項2記載の情報処理装置。
  4. 前記第3の処理手段は、上記第1および第2の処理手段の出力を受け取る頻度よりも低い頻度で上記判別を行うよう指定する指定手段をさらに含むことを特徴とする請求項1記載の情報処理装置。
  5. 互いに同期して同一の処理を行う第1および第2の処理手段と、
    前記第1および第2の処理手段からの出力を受け取る第3の処理手段と、
    この第3の処理手段に設けられ、前記第1の処理手段からの複数個数の出力に基づいて、前記第2の処理手段からの複数個数の出力を再構成する再構成手段と、
    前記第3の処理手段に設けられ、前記第1の処理手段からの複数個数の出力と前記再構成手段により再構成された前記第2の処理手段からの複数個数の出力とを比較する比較手段とを含むことを特徴とする情報処理装置。
  6. 前記第3の処理手段は、前記第1の処理手段からの複数個数の出力を格納する第1の格納手段と、前記第2の処理手段からの複数個数の出力を格納する第2の格納手段とを含み、
    前記再構成手段は、前記第2の格納手段に格納された前記第2の処理手段からの複数個数の出力の順序を、前記第1の格納手段に格納された前記第1の処理手段からの複数個数の出力の順序に基づいて並べ替えることを特徴とする請求項5記載の情報処理装置。
  7. 前記第3の処理手段は、前記第1の処理手段からの複数個数の出力を格納する第1の格納手段と、前記第2の処理手段からの複数個数の出力を格納する第2の格納手段とを含み、
    前記再構成手段は、前記第2の格納手段に格納された前記第2の処理手段からの複数個数の出力を、前記第1の格納手段に格納された複数個数の前記第1の処理手段からの複数個数の出力に基づいて分割し再結合することを特徴とする特徴とする請求項5記載の情報処理装置。
  8. 互いに同期して同一の処理を行う第1および第2の処理手段と、
    前記第1および第2の処理手段からの出力を受け取り、前記第1の処理手段からの第1の出力に対応する前記第2の処理手段からの第2の出力を選び、前記第1の出力と前記第2の出力とを比較し一致しているか否かを判別する第3の処理手段とを含むことを特徴とする情報処理装置。
  9. 前記第3の処理手段は、前記第1の処理手段からの出力を格納する第1の格納手段と、前記第2の処理手段からの出力を格納する第2の格納手段とを含み、
    前記第3の処理手段は、前記第1の格納手段に格納された前記第1の処理手段からの前記第1の出力に対応する前記第2の出力を前記第2の格納手段を探索して求めることを特徴とする請求項8記載の情報処理装置。
JP2003114385A 2003-04-18 2003-04-18 情報処理装置 Expired - Fee Related JP4155088B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2003114385A JP4155088B2 (ja) 2003-04-18 2003-04-18 情報処理装置
EP04009029A EP1469390A3 (en) 2003-04-18 2004-04-15 Fault tolerant Information processing apparatus
US10/824,594 US20040221195A1 (en) 2003-04-18 2004-04-15 Information processing apparatus
AU2004201590A AU2004201590A1 (en) 2003-04-18 2004-04-16 Information Processing Apparatus
CNA200410036826XA CN1538299A (zh) 2003-04-18 2004-04-19 信息处理设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003114385A JP4155088B2 (ja) 2003-04-18 2003-04-18 情報処理装置

Publications (2)

Publication Number Publication Date
JP2004318702A true JP2004318702A (ja) 2004-11-11
JP4155088B2 JP4155088B2 (ja) 2008-09-24

Family

ID=32906091

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003114385A Expired - Fee Related JP4155088B2 (ja) 2003-04-18 2003-04-18 情報処理装置

Country Status (5)

Country Link
US (1) US20040221195A1 (ja)
EP (1) EP1469390A3 (ja)
JP (1) JP4155088B2 (ja)
CN (1) CN1538299A (ja)
AU (1) AU2004201590A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008102686A (ja) * 2006-10-18 2008-05-01 Yokogawa Electric Corp フィールド制御装置
JP2008234141A (ja) * 2007-03-19 2008-10-02 Nec Corp フォールトトレラントコンピュータシステム及びデータ送信制御方法
JP2009505185A (ja) * 2005-08-08 2009-02-05 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 少なくとも2つの実行ユニットを有するコンピュータシステムにおいてデータを比較する方法およびデバイス
US7539897B2 (en) 2004-12-21 2009-05-26 Nec Corporation Fault tolerant system and controller, access control method, and control program used in the fault tolerant system
JP2009199275A (ja) * 2008-02-20 2009-09-03 Nec Corp ブレードサーバ、及びスイッチブレード
JP2012514257A (ja) * 2008-12-31 2012-06-21 インテル・コーポレーション 冗長プロセスを同期させるためのステート履歴ストレージ
JP2016212485A (ja) * 2015-04-30 2016-12-15 日本電信電話株式会社 仮想マシン同期システム、仮想マシン同期方法および仮想マシン同期プログラム

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6763875B2 (en) 2002-02-06 2004-07-20 Andersen Corporation Reduced visibility insect screen
DE102004032405A1 (de) * 2004-07-03 2006-02-09 Diehl Bgt Defence Gmbh & Co. Kg Weltraum-taugliche Rechnerarchitektur
US7519761B2 (en) * 2006-10-10 2009-04-14 International Business Machines Corporation Transparent PCI-based multi-host switch
JP4629793B2 (ja) * 2007-03-29 2011-02-09 富士通株式会社 情報処理装置、エラー処理方法
US20080240134A1 (en) * 2007-03-30 2008-10-02 International Business Machines Corporation Multi-node, peripheral component switch for a computer system
FR2925191B1 (fr) * 2007-12-14 2010-03-05 Thales Sa Architecture de traitement numerique a haute integrite a multiples ressources supervisees
US8959392B2 (en) * 2010-03-23 2015-02-17 Continental Teves Ag & Co. Ohg Redundant two-processor controller and control method
CN103392173B (zh) * 2011-03-10 2016-05-18 三菱电机株式会社 冗余化装置

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0314033A (ja) * 1989-06-12 1991-01-22 Fujitsu Ltd マイクロプロセッサ比較チェック機能の検査方式
US5202980A (en) * 1989-06-30 1993-04-13 Nec Corporation Information processing system capable of readily taking over processing of a faulty processor
US5226152A (en) * 1990-12-07 1993-07-06 Motorola, Inc. Functional lockstep arrangement for redundant processors
JPH05128080A (ja) * 1991-10-14 1993-05-25 Mitsubishi Electric Corp 情報処理装置
US5285441A (en) * 1992-03-17 1994-02-08 At&T Bell Laboratories Errorless line protection switching in asynchronous transer mode (ATM) communications systems
US5504859A (en) * 1993-11-09 1996-04-02 International Business Machines Corporation Data processor with enhanced error recovery
FR2721122B1 (fr) * 1994-06-14 1996-07-12 Commissariat Energie Atomique Unité de calcul à pluralité de calculateurs redondants.
DE4444688A1 (de) * 1994-12-15 1996-06-20 Abb Patent Gmbh Verfahren zur hochzuverlässigen und konsistenten Nachrichtenübertragung
EP0768660B1 (en) * 1995-03-08 2004-01-07 Matsushita Electric Industrial Co., Ltd. Device and method for reproducing data from disk, method for controlling rotation of disk, and reproduction clock generating device
JPH0983541A (ja) * 1995-09-19 1997-03-28 Fujitsu Ltd エラー処理方法および装置
JP3247043B2 (ja) * 1996-01-12 2002-01-15 株式会社日立製作所 内部信号で障害検出を行う情報処理システムおよび論理lsi
CN1953359B (zh) * 1997-02-13 2011-06-01 Ntt移动通信网株式会社 帧同步电路
DE59911944D1 (de) * 1998-02-04 2005-05-25 Siemens Ag Verfahren zur synchronisierung von atm-zellen aufweisenden datenströmen
US6253333B1 (en) * 1998-03-23 2001-06-26 International Business Machines Corporation Apparatus and method for testing programmable delays
US6256753B1 (en) * 1998-06-30 2001-07-03 Sun Microsystems, Inc. Bus error handling in a computer system
EP1157324A4 (en) * 1998-12-18 2009-06-17 Triconex Corp PROCESS AND DEVICE FOR PROCESSING CONTROL USING A MULTIPLE REDUNDANT PROCESS CONTROL SYSTEM
US6993081B1 (en) * 1999-11-23 2006-01-31 International Business Machines Corporation Seamless splicing/spot-insertion for MPEG-2 digital video/audio stream
FR2803057B1 (fr) * 1999-12-22 2002-11-29 Centre Nat Etd Spatiales Systeme informatique tolerant aux erreurs transitoires et procede de gestion dans un tel systeme
US6862283B2 (en) * 2000-01-13 2005-03-01 Freescale Semiconductor, Inc. Method and apparatus for maintaining packet ordering with error recovery among multiple outstanding packets between two devices
KR100694034B1 (ko) * 2000-05-13 2007-03-12 삼성전자주식회사 데이터 전송률 자동 검출장치
EP1158409B1 (en) * 2000-05-25 2008-05-28 Hitachi, Ltd. Storage system making possible data synchronisation confirmation at time of asynchronous remote copy
US6785291B1 (en) * 2000-09-29 2004-08-31 Nortel Networks Limited Apparatus and method for channel assignment of packet flows
DE10059758A1 (de) * 2000-11-30 2002-06-20 Bosch Gmbh Robert Verfahren zum Empfangen von Daten
US6614371B2 (en) * 2001-07-19 2003-09-02 Broadcom Corporation Synchronous data serialization circuit
US6341094B1 (en) * 2001-07-30 2002-01-22 Lsi Logic Corporation Method and apparatus for functional testing of memory related circuits
US6944692B2 (en) * 2001-09-13 2005-09-13 Sun Microsystems, Inc. Automated calibration of I/O over a multi-variable eye window
US6938183B2 (en) * 2001-09-21 2005-08-30 The Boeing Company Fault tolerant processing architecture
DE60219588T2 (de) * 2002-02-04 2008-01-10 Matsushita Electric Industrial Co., Ltd., Kadoma Verfahren zur Unterscheidung von Paketverlusten
US6948091B2 (en) * 2002-05-02 2005-09-20 Honeywell International Inc. High integrity recovery from multi-bit data failures

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7539897B2 (en) 2004-12-21 2009-05-26 Nec Corporation Fault tolerant system and controller, access control method, and control program used in the fault tolerant system
JP2009505185A (ja) * 2005-08-08 2009-02-05 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 少なくとも2つの実行ユニットを有するコンピュータシステムにおいてデータを比較する方法およびデバイス
JP2008102686A (ja) * 2006-10-18 2008-05-01 Yokogawa Electric Corp フィールド制御装置
JP2008234141A (ja) * 2007-03-19 2008-10-02 Nec Corp フォールトトレラントコンピュータシステム及びデータ送信制御方法
JP2009199275A (ja) * 2008-02-20 2009-09-03 Nec Corp ブレードサーバ、及びスイッチブレード
US8635370B2 (en) 2008-02-20 2014-01-21 Nec Corporation Blade server and switch blade
JP2012514257A (ja) * 2008-12-31 2012-06-21 インテル・コーポレーション 冗長プロセスを同期させるためのステート履歴ストレージ
JP2014160483A (ja) * 2008-12-31 2014-09-04 Intel Corp 装置、方法、及び、プロセッサ
JP2016212485A (ja) * 2015-04-30 2016-12-15 日本電信電話株式会社 仮想マシン同期システム、仮想マシン同期方法および仮想マシン同期プログラム

Also Published As

Publication number Publication date
AU2004201590A1 (en) 2004-11-04
EP1469390A3 (en) 2006-01-18
US20040221195A1 (en) 2004-11-04
EP1469390A2 (en) 2004-10-20
CN1538299A (zh) 2004-10-20
JP4155088B2 (ja) 2008-09-24

Similar Documents

Publication Publication Date Title
JP2004318702A (ja) 情報処理装置
KR100566338B1 (ko) 폴트 톨러런트 컴퓨터 시스템, 그의 재동기화 방법 및 재동기화 프로그램이 기록된 컴퓨터 판독가능 기억매체
EP2156291A2 (en) Dynamically rerouting node traffic on a parallel computer system
US7124319B2 (en) Delay compensation for synchronous processing sets
CN101714108B (zh) 同步控制设备、信息处理设备以及同步管理方法
US20050240829A1 (en) Lockstep error signaling
JP2002515146A (ja) 3連モジュール冗長コンピュータシステム
JP2004046611A (ja) フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
JPH0950424A (ja) ダンプ採取装置およびダンプ採取方法
JP2003015900A (ja) 追走型多重化システム、及び追走により信頼性を高めるデータ処理方法
EP2141596B1 (en) Information processing apparatus and error processing method
JPH0375834A (ja) パリティの置換装置及び方法
WO2012164418A1 (en) Facilitating processing in a communications environment using stop signaling
WO1997043712A2 (en) Triple modular redundant computer system
JP4401521B2 (ja) 2重化情報処理装置
US8264948B2 (en) Interconnection device
JP5104773B2 (ja) データ転送システム、データ転送装置およびデータ転送方法
JP3423732B2 (ja) 情報処理装置及び情報処理装置における障害処理方法
JP6052150B2 (ja) 中継装置
JP6194496B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP3652232B2 (ja) マイクロコンピュータのエラー検出方法及びエラー検出回路及びマイクロコンピュータシステム
JP4507875B2 (ja) 多重化装置及びレガシーデバイス多重化方法
JPH08185329A (ja) データ処理装置
JPH11134211A (ja) 二重化コンピュータシステムおよびその運用方法
JP3539687B2 (ja) プロセッサ二重化方式の情報処理装置

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050314

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060317

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080526

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20080611

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: 20080617

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080630

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120718

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120718

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130718

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees