(57)【特許請求の範囲】
【請求項１】
並列動作する３系統以上の多重化計算機システムであって、
前記夫々の系統は、プログラムを実行するプロセッサと、前記プログラム、前記プログラムで使用されるデータ及び前記プログラムの実行結果のデータとを記憶するメモリとを備え、
さらに、前記プロセッサによって対応する自系の前記メモリから読み出された前記プログラムについて、当該プログラムの実行に先立ち、夫々の前記プロセッサに、当該プロセッサ数と同数以上の命令データを異なる実行順序で分配する命令格納・分配部と、
前記命令格納・分配部が前記命令データを分配する場合、当該前記命令データ及びその命令アドレスの夫々の多数決を求め、前記命令格納・分配部に通知する命令多数決部と、
前記命令格納・分配部で分配された前記命令データ毎の夫々の実行出力について、その実行データ及び実行アドレスの夫々の多数決を求めるデータ多数決部と、
夫々の前記プロセッサの故障診断出力と、前記命令多数決部及びデータ多数決部の多数決判定出力とから、前記プロセッサ及び前記メモリの故障を判定し、該当する前記プロセッサの動作の停止をプロセッサに、または該当する命令データの実行の停止を前記命令格納・分配部に通知する故障診断部と
を備え、
前記故障診断部は、夫々の前記プロセッサが同一の命令データを同時に実行しないように予めプロセッサ数と同数以上の命令データを分配し、分配された前記命令データの実行時に異常が検出された場合、当該命令データを他系が実行しないように取り消し、
さらに、前記データ多数決部は、同じ、前記命令データの実行結果の多数決を求めて多数を出力するようにしたことを特徴とする多重化計算機システム。
【請求項２】
前記故障診断部は、夫々の前記プロセッサの故障診断信号を受信して前記命令格納・分配部に通知するプロセッサ故障診断回路と、
前記プロセッサ故障診断回路の故障信号、及び、前記命令多数決部及び前記データ多数決部の多数決判定出力を受信して、故障した前記プロセッサを特定し、その動作の停止を通知、または、前記故障信号に対応する前記命令データの取り消しを前記命令格納・分配部に通知する多数決故障診断回路と
を備え、
前記多数決故障診断回路は、前記命令データの実行時に、前記データ多数決部の多数決判定出力が２対１となった場合は、小数となった系統を故障と判定し、
この時の前記命令データが前記メモリへの書き込み時の場合は、少数となった前記プロセッサを故障と判定しその動作の停止信号を送信し、
この時の前記命令データが前記メモリから読み出し時の場合は、前記メモリの故障と判断して、該当する前記プロセッサに通知するようにしたことの特徴とする請求項１に記載の多重化計算機システム。
【請求項３】
前記命令格納・分配部は、前記命令データの分配時において、
当該プロセッサ数と同数以上の命令データを異なる順序で実行するように、夫々の前記プロセッサに格納し、複数の前記命令データの分配の完了を通知する分配完了命令を対応する夫々の前記プロセッサに送信する命令格納・分配回路と、
前記命令データの実行完了信号を夫々の前記プロセッサから受信して実行完了信号を前記命令格納・分配回路に送信する多数決トリガゲート回路と
を備え、
前記命令多数決部の多数決判定が２対１となった場合、当該多数となった系統の命令を分配し、
分配された前記故障診断部から故障が通知された場合、予め定められた数の命令データの分配が完了するまで当該命令データを再発行するようにしたことを特徴とする請求項１に記載の多重化計算機システム。
【請求項４】
前記命令多数決部は、前記命令データの分配時において、複数の前記プロセッサから送信された夫々の命令データを入力して、複数の前記命令データの多数決を求めて前記故障診断部に送信するとともに、前記命令データを前記命令格納・分配部に送信する命令データ多数決回路と、
夫々の前記命令データに対応する複数の命令アドレスの多数決を求めて、前記故障診断回路に送信するとともに、前記命令アドレスを前記命令格納・分配部に送信する命令アドレス多数決回路とを備える請求項１に記載の多重化計算機システム。
【請求項５】
前記データ多数決部は、分配された複数の前記命令データの実行時において、夫々の前記プロセッサが実行した実行データと、その実行アドレスとを一時保存する履歴保存レジスタと、
前記履歴保存レジスタに保存された、夫々の前記プロセッサの対応する前記実行データの多数決を、前記多数決トリガゲート回路を介して実行完了信号を受信した後に求め、結果を前記故障診断部に送信する実行データ多数決回路と、
前記履歴保存レジスタに保存された、夫々の前記実行データに対応する前記実行アドレスの多数決を、前記多数決トリガゲート回路を介して実行完了信号を受信した後に求め、結果を前記故障診断部に送信する実行アドレス多数決回路と
を備える請求項１に記載の多重化計算機システム。
【請求項６】
並列動作する３系統以上の多重化計算機システムの処理方法であって、
前記夫々の系統は、プログラムを実行するプロセッサと、前記プログラム、前記プログラムで使用されるデータ及び前記プログラムの実行結果のデータとを記憶するメモリとを備え、
さらに、前記プロセッサによって対応する自系の前記メモリから読み出された前記プログラムについて、当該プログラムの実行に先立ち、夫々の前記プロセッサに、当該プロセッサ数と同数以上の命令データを異なる実行順序で分配する命令格納・分配部と、
前記命令格納・分配部が前記命令データを分配する場合、当該前記命令データ及びその命令アドレスの夫々の多数決を求め、前記命令格納・分配部に通知する命令多数決部と、
前記命令格納・分配部で分配された前記命令データ毎の夫々の実行出力について、その実行データ及び実行アドレスの夫々の多数決を求めるデータ多数決部と、
夫々の前記プロセッサの故障診断出力と、前記命令多数決部及びデータ多数決部の多数決判定出力とから、前記プロセッサ及び前記メモリの故障を判定し、該当する前記プロセッサの動作の停止をプロセッサに、または該当する命令データの実行の停止を前記命令格納・分配部に通知する故障診断部と
を備え、
前記故障診断部は、夫々の系統のプロセッサが同一の命令データを同時に実行しないように、予め系統数と同数以上の前記命令データを分配する分配ステップと、
分配された複数の前記命令データを実行する実行ステップと、
から成り、
前記分配ステップでは、前記命令データの多数決を取って、不一致の場合には多数となった方の命令データを分配し、前記実行ステップでは、異常が検出された系の前記命令データを他系が実行することを取り消し、
前記データ多数決部は、さらに、同じ前記命令データに対応する実行データの多数決を求めて、多数となった前記実行データを当該多重化計算機システムの出力とするようにしたことを特徴とする多重化計算機システムの処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３つ以上の多重化された高信頼性の計算機システムに関し、特に、同一命令を実行する多重化計算機システム、及びその処理方法に関する。
【背景技術】
【０００２】
フォールトトレラント計算機の分野において、計算機の信頼性を高めるためにいろいろな技術が用いられている。その一般的な技術の１つは、プロセッサを多重化することである。
【０００３】
多重化されたプロセッサの各出力を多数決回路に入力して多重化されたプロセッサの出力値を決定することが一般的に用いられている。
【０００４】
この多数決回路の典型的な例として、三重化されたプロセッサの場合、３つの出力のうち２つの一致するものを選択する２／３多数決方式と呼ばれるものがある。この方式によると３つのプロセッサの内いずれか１つが故障しても多数決により正しいプロセッサの出力が得られる。
【０００５】
例えば、図５に示すように、３つのプロセッサ２１〜プロセッサ２３と夫々のメモリ２４〜メモリ２６を、夫々バス３１ａ〜３１ｃで接続して、並列動作を可能とした多重化計算機システムにおいて、各系統のデータ及びアドレスの正否をデータ多数決回路２８及びアドレス多数決回路２９で検出し、一致した出力の２つの出力を正常として運転を継続させるとともに、故障の系統の運転を停止する故障診断回路３０を備え、１つの系統が故障してもシステムの動作を継続できるようにしている。
【０００６】
この動作は、図６に示すように、夫々のプロセッサ２１〜プロセッサ２３は、同一命令Ａ、Ｂ・・・Ｆの実行に対して、各命令の実行に対して多数決をとって運転を行い、多数決の結果不一致となった少数の系統を故障と判断するようにしている。
【０００７】
このような構成においては、２つのプロセッサが故障した場合、あるいはデータ多数決回路２８またはアドレス多数決回路２９が故障した場合には、正常な出力を得ることが出来なくなり、システム全体の停止につながる可能性がある。
【０００８】
そのため、多重化された計算機システムにおいては、障害発生時に対して、種々の対策を行なっている。例えば、データを転送する複数のバスと、当該バスに個々に接続され同一動作する複数のプロセッサを有するプロセッシングユニットと、複数のプロセッサからバスを介してアクセスされるデバイスと、当該バスとデバイスの間にあって複数のプロセッサによるアクセスのうち動作が正しいと判断されるバスを選択し、当該バスとデバイス間のデータ転送を制御する計算機システムが有る。
【０００９】
この場合、複数のバスのデータを比較して、障害の発生を検出し、その検出結果に基づいてバスの選択を制御する障害検出部を備え、障害の発生を検出したプロセッサとひとつのバスによって接続される他のプロセッサの出力を許可し、障害の発生を検出したプロセッサを含むプロセッシングユニットをオンライン交換し、障害が発生したバスを障害が発生していない他のバスに同期させて動作させるようにして、信頼性を向上させた計算機システムがある（例えば、特許文献１参照。）。
【００１０】
また、多数決回路の故障に対しては、３つのプロセッシングユニットの出力を２つずつの組み合わせで比較し、当該比較結果に基づき１つのプロセッシングユニットの出力を選択出力するようにした多数決回路がある（例えば、特許文献２参照。）。
【特許文献１】特許第３４２４９６８号公報
【特許文献２】特許第３２２９０７０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
３つ以上の多重化計算機システムにおいては、上述したように、夫々のシステムが同一の命令データの処理を実行し、多数決をとって多数となった系統の処理を優先して出力することで、１つの系統が故障しても処理を実行することが出来るようにしている。
【００１２】
しかしながら、存在しない領域などへのアクセスとなる命令データ等のバグによって、同じ命令データが原因で、複数のシステムが同時に停止に至る可能性がある。
【００１３】
本発明は、上記問題点を解決するためになされたもので、３つ以上の多重化計算機システム、及びその処理方法において、１つの同じ命令データが原因で、複数のシステムが同時に停止に至る可能性を回避するようにした多重化計算機システム、及びその処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するために、本発明の多重化計算機システムは、並列動作する３系統以上の多重化計算機システムであって、前記夫々の系統は、プログラムを実行するプロセッサと、前記プログラム、前記プログラムで使用されるデータ及び前記プログラムの実行結果のデータとを記憶するメモリとを備え、さらに、前記プロセッサによって対応する自系の前記メモリから読み出された前記プログラムについて、当該プログラムの実行に先立ち、夫々の前記プロセッサに、当該プロセッサ数と同数以上の命令データを異なる実行順序で分配する命令格納・分配部と、前記命令格納・分配部が前記命令データを分配する場合、当該前記命令データ及びその命令アドレスの夫々の多数決を求め、前記命令格納・分配部に通知する命令多数決部と、前記命令格納・分配部で分配された前記命令データ毎の夫々の実行出力について、その実行データ及び実行アドレスの夫々の多数決を求めるデータ多数決部と、夫々の前記プロセッサの故障診断出力と、前記命令多数決部及びデータ多数決部の多数決判定出力とから、前記プロセッサ及び前記メモリの故障を判定し、該当する前記プロセッサの動作の停止をプロセッサに、または該当する命令データの実行の停止を前記命令格納・分配部に通知する故障診断部とを備え、前記故障診断部は、夫々の前記プロセッサが同一の命令データを同時に実行しないように予めプロセッサ数と同数以上の命令データを分配し、分配された前記命令データの実行時に異常が検出された場合、当該命令データを他系が実行しないように取り消し、さらに、前記データ多数決部は、同じ、前記命令データの実行結果の多数決を求めて多数を出力するようにしたことを特徴とする。
【００１５】
上記目的を達成するために、本発明による多重化計算機システムの処理方法は、並列動作する３系統以上の多重化計算機システムの処理方法であって、前記夫々の系統は、プログラムを実行するプロセッサと、前記プログラム、前記プログラムで使用されるデータ及び前記プログラムの実行結果のデータとを記憶するメモリとを備え、さらに、前記プロセッサによって対応する自系の前記メモリから読み出された前記プログラムについて、当該プログラムの実行に先立ち、夫々の前記プロセッサに、当該プロセッサ数と同数以上の命令データを異なる実行順序で分配する命令格納・分配部と、前記命令格納・分配部が前記命令データを分配する場合、当該前記命令データ及びその命令アドレスの夫々の多数決を求め、前記命令格納・分配部に通知する命令多数決部と、前記命令格納・分配部で分配された前記命令データ毎の夫々の実行出力について、その実行データ及び実行アドレスの夫々の多数決を求めるデータ多数決部と、夫々の前記プロセッサの故障診断出力と、前記命令多数決部及びデータ多数決部の多数決判定出力とから、前記プロセッサ及び前記メモリの故障を判定し、該当する前記プロセッサの動作の停止をプロセッサに、または該当する命令データの実行の停止を前記命令格納・分配部に通知する故障診断部とを備え、前記故障診断部は、夫々の系統のプロセッサが同一の命令データを同時に実行しないように、予め系統数と同数以上の前記命令データを分配する分配ステップと、分配された複数の前記命令データを実行する実行ステップと、から成り、前記分配ステップでは、前記命令データの多数決を取って、不一致の場合には多数となった方の命令データを分配し、前記実行ステップでは、異常が検出された系の前記命令データを他系が実行することを取り消し、前記データ多数決部は、さらに、同じ前記命令データに対応する実行データの多数決を求めて、多数となった前記実行データを当該多重化計算機システムの出力とするようにしたことを特徴とする。
【発明の効果】
【００１６】
３つ以上の多重化計算機システム、及びその処理方法において、１つの同じ命令データが原因で、複数のシステムが同時に停止に至る可能性を回避するようにした多重化計算機システム、及びその処理方法を提供することが出来る。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の多重化計算機システムについて、図１乃至図４を参照して、説明する。図１は、本発明の多重化計算機システムの構成図である。
【００１８】
多重化計算機システムは、並列処理動作が可能な複数のプロセッサ１〜プロセッサ３と、その処理プログラム及び処理データを記憶する夫々の対応するメモリ４〜メモリ６と、プロセッサ１〜プロセッサ３とメモリ４〜メモリ６とを接続するバス１１ａ〜バス１１ｃとを備える。
【００１９】
例えば、その１つの系は、プロセッサ１とバス１１ａとメモリ４とから成り、以後、これらの系統に共通の各部を総称する場合には、その番号を省略して記すことにする。
【００２０】
ここで、プロセッサとは、計算機の中央処理装置を指し、一般的には、ＣＰＵ（Central Processing Unit）としてチップ化されたものはマイクロプロセッサとも言う。
【００２１】
さらに、夫々のプロセッサがプログラムを実行した時の実行データと実行アドレスとの多数決を求めるデータ多数決部９と、データ多数決部９の出力から故障を診断する故障診断部１０とを備える。
【００２２】
さらに、このプロセッサがプログラムを実行するに際して、予め夫々のプロセッサが、同時に同じ命令を実行しないように、予め処理順序を変えて実行するように命令を分配する命令格納・分配部７と、プログラムを予め分配する場合、この命令データとその格納された命令アドレスについて、夫々のプロセッサに分配された命令データを比較し、夫々の多数決を求め、その結果を命令格納・分配部７に送る命令多数決部８とを備える。
【００２３】
この命令格納・分配部７では、命令多数決回路８の出力が不一致の場合、多数の命令データを採用する。また、この命令多数決回路８の出力を故障診断部１０に送信するとともに、命令データの実行前に分配された命令データに対して取り消しを指令する場合も有る。
【００２４】
また、これらの各部を接続するバス１１ａ〜１１ｃは、図１に示すように太い実線で示し、命令データ、命令アドレス以外の制御線１２は細線で示す。
【００２５】
次に、このように構成された各部の詳細について説明する。先ず、プロセッサが実行するプログラムについて、予めプログラムを所定のブロック単位に分割して分配する命令格納・分配部７について説明する。命令格納・分配部７は、当該多重化計算機システムの図示しないリセット信号で、予め定められたプロセッサによってメモリから読み出されたプログラムに対して、プログラムの実行に先立ち、複数のプロセッサ数と同数以上の複数の命令データを異なる順序で実行するように、夫々のプロセッサに予め格納させる命令格納・分配回路７ａと、命令格納・分配回路７ａで命令データの分配が完了したタイミングで、分配完了命令ＰＲＧ１〜３を命令格納・分配回路７ａから受信して、夫々のプロセッサに送信し、複数の命令データの実行完了信号ＴＲＧ１漢を夫々のプロセッサから受信し、命令格納・分配部回路７ａに返信する多数決トリガゲート回路７ｂとから成る。
【００２６】
次に、命令多数決部８は、複数のプロセッサからバスを介して送信された夫々の命令データを入力して、複数の命令データの多数決を求めて故障診断回路１０に送信するとともに、命令データを命令格納・分配部７に送信する命令データ多数決回路８ａと、夫々の命令データに対応する命令アドレスを、バスを介して入力し、複数の命令アドレスの多数決を求めて、故障診断回路１０に送信するとともに、その命令アドレスを命令格納・分配部７に送信する命令アドレス多数決回路８ｂとから成る。
【００２７】
また、データ多数決部９は、夫々のプロセッサが、分配された複数の命令データを実行する場合に、当該複数の命令データの演算出力である実行データとその実行アドレスとを一時保存する履歴保存レジスタ９ａと、履歴保存レジスタ９ａに保存された、実行データと実行アドレスの夫々の多数決を、多数決トリガゲート回路７ｂを介して実行完了信号ＴＲＧを受信した後に求め、結果を故障診断部１０に送信する実行データ多数決回路９ｂと、履歴保存レジスタ９ａに保存された、夫々のプロセッサの対応するアドレスの多数決を、多数決トリガゲート回路７ｂを介して実行完了信号ＴＲＧを受信した後に求め、結果を故障診断部１０に送信する実行アドレス多数決回路９ｃとから成る。
【００２８】
また、故障診断部１０は、夫々のプロセッサから自身の故障信号、例えば、ウオッチドッグタイマー信号の異常を受信して命令格納・分配部７に通知するプロセッサ故障診断回路１０ｃと、命令多数決部８及びデータ多数決部９の多数決判定出力を受信して、故障した系のプロセッサ及びメモリを特定し、その動作の停止信号を該当のプロセッサに通知、または、該当する命令データの実行を停止する停止信号を該当するプロセッサに通知する多数決故障診断回路１０ａと、命令多数決部８及びデータ多数決部９の多数決出力を選択するセレクタ回路１０ｂとから成る。
【００２９】
次に、バス１１ａデータの制御について、図２を参照して説明する。図２は、複数の系統のその１つについて、例えば、プロセッサ１とメモリ４との間のバス１１ａの系統について、バス１１ａのデータを双方向で制御するバッファゲート１３ａ、バッファゲート１３ｂ、及びセレクタ回路１４について示したものである。他のバス１１ｂ、バス１１ｃも同様の構成であるので、その説明を省略する。
【００３０】
図２に示すように、メモリ４からのプログラム（即ち、命令データ及び命令アドレス）の読み出し、また、プロセッサ１の演算後の実行データをメモリ４へ書き込みする場合は、この双方向バス１１ａを介して行なわれる。
【００３１】
例えば、プロセッサ１からメモリ４に実行データを書き込む場合には、バッファゲート回路１３ｂのゲート制御信号Ｓｇ３をアクティブにし、逆に、メモリ４からの読み出しする場合には、バッファゲート回路１３ａのゲート制御信号Ｓｇ１をアクティブにすると共に、セレクタ回路１４のセレクタゲート信号Ｓｇ２をアクティブにしメモリ側が選択できる様にする。
【００３２】
プロセッサ１が、命令格納・分配回路７ａ側の命令データを読み出しする場合は、このセレクタゲート信号Ｓｇ２は、前者と逆の論理信号とし、読み出しが選択できるようにする。
【００３３】
次に、このように構成された多重化計算機システムの動作について図３及び図４を参照して説明する。
【００３４】
この多重化計算機システムの動作は、２つに大別される。その１つは、実行するプログラムについて、予めこのプログラムを所定のブロック単位に分割して分配する分配動作（ステップｓ１〜ステップｓ６−１）と、分配された命令データを実行する実行動作（ステップｓ６−２〜ステップｓ１０）とからなる。そして、ブロック単位の実行結果について、異常が検出されなければ、以上の分配動作と実行動作を繰り返す（ステップｓ１１〜ステップｓ１９）。
【００３５】
次に、３つのプロセッサに対して抽出したプログラムから、３つの命令データＡ〜Ｃを１つのブロック単位として分配する場合について、図３を参照して説明する。
【００３６】
この所定のブロック単位は、同時に同じ命令データを夫々のプロセッサが同時に実行しないように分配されれば良い。また、分配された命令データの実行順が変わってもプログラムの処理結果に影響がないように、実際には、３つ以上の多数の命令データをブロック単位として、その複数を予め設定する。
【００３７】
先ず、予め定められたブロック単位の命令データについて、夫々のプロセッサがフェッチ（ステップｓ１）した同じ命令データは、バッファゲート回路１３を介して命令データ多数決回路８ａ、及び、その命令アドレス多数決回路８ｂで夫々の多数決を求める（ステップｓ２）。
【００３８】
多数決出力が全て同じ（一致）している場合には採用できる命令データとし、そうでなければ、多数の方の命令データを命令格納・分配回路７ａ内の図示しないメモリに、順次そのアドレスを更新して、予め定められたブロック単位の数の命令データ、ここでは、３つまでを一次格納してゆく（ｓ１〜ｓ５）。
【００３９】
この分配時には、多数決判定出力を故障診断回路１０に送信し、この命令多数決部８の出力の多数決の不一致が合っても、故障診断部１０で故障との損断が無ければ実行が可能である判断し、命令格納・分配回路７ａは、ブロック単位の予定の命令データ数が記憶されるまで繰り返す。
【００４０】
そして、分配する３つの命令データが抽出が完了すると、命令格納・分配回路７ａは、夫々のプロセッサに命令データの分配完了命令ＰＲＧ１〜３を送信し（ステップｓ６−１）、これを受信した夫々のプロセッサは、この命令の実行を開始する（ステップｓ６−２）。
【００４１】
そして、夫々の命令データを実行し、故障診断部１０で故障の有無が検出されなければ、その実行結果の実行データとその実行アドレスとを多数決データ部９の履歴保存レジスタ９ａに保存して行く。
【００４２】
この時、プロセッサ故障診断回路１０ｃで、故障が検出されれば、この異常信号を命令格納・分配部７に送信し（ステップｓ７）、分配格納・分配回路７ａは分配されたこの命令が、次のフェーズで他のプロセッサが実行しないように取り消しする命令を他のプロセッサに送信する（ステップｓ８）。
【００４３】
例えば、図３（ｂ）に示すように、３つの命令Ｄ〜Ｆが分配され、プロセッサ１でその命令データＤの実行時に故障が検出されると、プロセッサ２、３で実行する命令データＤを取り消す。
【００４４】
そして、ブロック単位の命令データの実行が完了する（ステップｓ６−１〜ステップ９）と、夫々のプロセッサは実行完了信号（ＴＲＧ１〜３）を命令格納・分配部７の多数決トリガゲート信号回路７ｂを介して、命令格納・分配回路７ａ及び、データ多数決部９に送信する。
【００４５】
すると、データ多数決部９は、履歴保存レジスタに９ａに保存された実行データ及び実行アドレスの多数決を、夫々実行データ多数決回路９ｂ及び実行アドレス多数決回路９ｃで求め（ステップｓ１１）、結果を故障診断部１０に送信する。
【００４６】
データ多数決部９で、不一致が検出されると、故障診断部１０は、少数の系の実行データを多数の実行データに書き換えるように少数となったプロセッサ指令する。
【００４７】
ここで、当該ブロック単位についてデータ多数決部９での不一致が検出されず（ステップｓ１２）、また、プロセッサ故障診断回路１０ｃからも故障が出力が無く（ステップｓ１６）、プログラムの終了で無ければ、引き続き次の命令データの取得に移行する（ステップｓ１７）。
【００４８】
ステップ１２で故障が検出されると、さらに、全体のプロセッサの故障であるか否かが判定される（ステップｓ１３）。
【００４９】
このステップｓ１２で全体の故障と判定される（ステップｓ１３）と、リトライを選択するか、もしくは、システムの停止（ステップｓ１８）を選択する。
【００５０】
また、多数決の結果、全ての系の故障で無く、いずれかの１系統のみの故障と判定された場合には、保守員にアラームを送信して保守作業を実行し（ステップｓ１５）、多重化計算機システムは多数となった二系統で運転される。
【００５１】
以上、説明したように、本実施例によれば、プログラムの命令データを予め同時に実行しないようにブロック単位で分配し、異常が検出された命令データを他のプロセッサが実行しないようにするので、同じ命令データでシステムが停止することが回避される。
【００５２】
また、実行された実行データについても多数決を求め、３つの系統の故障が判定されて実行データを多数のデータで書き換えることが出来る。
【００５３】
本発明は、上述した実施例に何ら限定されるものではなく、３系統以上の多重化された計算機システムにおいて、夫々の系統の命令データの実行を異なる位相で実行するようにして、３つ以上の複数の命令データのブロック単位で多数決をとるように構成されたものであれば良く、多重化する系統数によって、ブロック単位の命令データ数と多数決判定の処理タイミングンは適宜変更しても良く、また、必要とされる特定のプログラムのみ分配するようにしても良く、本発明の主旨を逸脱しない範囲で種々変形して実施することが可能である。
【図面の簡単な説明】
【００５４】
【図１】本発明の多重化計算機システムの構成図。
【図２】本発明の多重化計算機システムの命令データの動作の説明図。
【図３】本発明のバスインタフェースの構成図。
【図４】本発明の多重化計算機システムの動作を説明するフローチャート。
【図５】従来の多重化計算機システムの構成図。
【図６】従来の多重化計算機システムの命令データの動作の説明図。
【符号の説明】
【００５５】
１〜３  プロセッサ
４〜６  メモリ
７  命令格納・分配部
７ａ  命令格納・分配回路
７ｂ  多数決トリガゲート回路
８  命令多数決部
８ａ  命令データ多数決回路
８ｂ  命令アドレス多数決回路
９  データ多数決部
９ａ  履歴保存レジスタ
９ｂ  実行データ多数決回路
１０  実行アドレス多数決回路
１０ａ  多数決故障診断回路
１０ｂ  セレクタ回路
１０ｃ  プロセッサ故障診断回路
１１ａ、１１ｂ、１１ｃ  バス
１２  制御ライン
１３ａ、１３ｂ  バッファゲート回路
１４  セレクタ回路
【図１】
0005227653.tif 000002
【図２】
0005227653.tif 000003
【図３】
0005227653.tif 000004
【図４】
0005227653.tif 000005
【図５】
0005227653.tif 000006
【図６】
0005227653.tif 000007