(57)【要約】【課題】稼働を停止することなく半故障状態から正常な状態への復旧が可能な多重化データ処理装置を提供する。【解決手段】多重化データ処理装置１は３個のプロセッサ１１を備える。３個のプロセッサ１１は並行して第１処理、第２処理、・・・、第ｍ処理、という一連のデータ処理を繰り返す。３個のプロセッサ１１は各々、自プロセッサのデータ処理の結果と他プロセッサのデータ処理の結果を照合する。照合回路１４と判定回路１５は、プロセッサ１１による照合の結果に基づき、プロセッサ１１の異常を検出する。判定回路１５は異常を検出したプロセッサ１１を再起動させる。再起動に伴いデータ処理を停止したプロセッサ１１は、データ処理を継続している他のプロセッサ１１から、現在のフレームに実行されるデータ処理を識別する処理識別データを受信し、データ処理を再開する際に、いずれのデータ処理を実行すべきかを受信した処理識別データに基づき特定する。【選択図】図１
2017016319.tif 000002
【特許請求の範囲】
【請求項１】
同一の一連のデータ処理を行う３個以上の複数のプロセッサを備える多重化データ処理装置であって、
前記複数のプロセッサのうち異常と判定されたプロセッサは、前記一連のデータ処理を停止し再開する前に、前記複数のプロセッサのうち前記一連のデータ処理を継続しているプロセッサが行っているデータ処理の識別情報を取得し、当該識別情報に基づき前記一連のデータ処理の再開時に行うデータ処理を特定する
多重化データ処理装置。
【請求項２】
前記複数のプロセッサのうち前記一連のデータ処理を継続しているプロセッサは、前記複数のプロセッサの他プロセッサとの間でデータ処理の同期を取るための信号と、自プロセッサが行っているデータ処理の識別情報を、同時または交互に出力する
請求項１に記載の多重化データ処理装置。
【請求項３】
前記複数のプロセッサの各々は、自プロセッサが行ったデータ処理の結果と前記複数のプロセッサの他プロセッサが行ったデータ処理の結果との照合の結果を出力し、
前記複数のプロセッサのうち、前記複数のプロセッサの各々から出力される前記照合の結果に基づき異常と判定されるプロセッサに前記一連のデータ処理の停止を指示する異常検出回路を備える
請求項１または２に記載の多重化データ処理装置。
【請求項４】
前記異常検出回路は、
前記複数のプロセッサのうちの２個のプロセッサの組合せの各々に関し、当該組合せの２個のプロセッサの各々から出力される前記照合の結果を照合する照合回路と、
前記複数のプロセッサの各々に関し、当該プロセッサから出力される前記照合の結果を照合の対象とする前記照合回路の前記照合の結果に基づき当該プロセッサを異常と判定する判定回路と
を備える請求項３に記載の多重化データ処理装置。
【請求項５】
前記複数のプロセッサのうち異常と判定されたプロセッサは、前記一連のデータ処理を停止した後に自プロセッサが正常であるか否かを診断し、正常であると診断したときに前記一連のデータ処理を再開する
請求項１乃至４のいずれか１項に記載の多重化データ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサによるデータ処理の結果の信頼性を向上させるための技術に関する。
【背景技術】
【０００２】
列車の車速制御を行う制御装置等のように、動作に高い信頼性が要求されるデータ処理装置がある。このような高い信頼性が要求されるデータ処理装置に関しては、同様の処理を並行して行うプロセッサを複数備えさせることにより、動作の信頼性を向上することが行われている。本願において、同様の処理を並行して行うプロセッサを２個備えるデータ処理装置を「二重化データ処理装置」といい、同様の処理を並行して行うプロセッサを３個以上備えるデータ処理装置を「多重化データ処理装置」という。
【０００３】
プロセッサを２個しか持たない二重化データ処理装置は、いずれかのプロセッサが異常なデータ処理を行うと、２個のプロセッサのいずれの処理結果が正常であるかを特定することができない。従って、二重化データ処理装置は、いずれかのプロセッサが異常なデータ処理を行う間、信頼性の高い処理結果を提供することができない。
【０００４】
これに対し、プロセッサを３個以上持つ多重化データ処理装置は、いずれかのプロセッサが異常なデータ処理を行っても、他の複数のプロセッサの処理結果が一致すれば、当該処理結果が正常であることを確認することができる。従って、多重化データ処理装置は、いずれかのプロセッサが異常なデータ処理を行っても、２以上のプロセッサが正常なデータ処理を行う限り、信頼性の高い処理結果の提供を継続することができる。
【０００５】
多重化データ処理装置に関する技術を提案する文献として、例えば特許文献１がある。特許文献１には、同様の演算を並行して行う３個の制御装置を信号線で結合した三重系の多重化制御装置が記載されている。特許文献１に記載の多重化制御装置は、３個の制御装置により並行して行った演算の結果に基づき多数決理論により異常な制御装置を識別する系間診断系を備え、正常な制御装置の系間同期信号の発生理論を変更することで異常な制御装置を系間診断系から切り離す。特許文献１に記載の発明によれば、検出された故障系が確実に切り離され、制御を停止することなく切り離した系の再立ち上げを行うことにより高い安全性を有する多重化制御装置が提供される、とされている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平６−３４８５２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
例えば、３個のプロセッサを備える三重化データ処理装置は、３個のうち１つのプロセッサが異常なデータ処理を行う間、他の２個のプロセッサが正常なデータ処理を行う限り、信頼性の高い処理結果の提供を継続できる。ただし、正常なデータ処理を行っていた２個のプロセッサのいずれかが異常なデータ処理を行うと、もはや当該三重化データ処理装置は信頼性の高い処理結果を提供することができなくなる。従って、異常なデータ処理を行うプロセッサは可能な限り速やかに正常化されることが望ましい。
【０００８】
異常なデータ処理を行うプロセッサを正常化させるための処理として、当該プロセッサの再起動が広く行われている。この場合、異常なデータ処理を行ったプロセッサは、再起動が指示されると同時にデータ処理が不可能となり、再起動の後、初期化等の所定の準備処理が完了すると、再びデータ処理が可能となる。再びデータ処理が可能となったプロセッサは、他のプロセッサからスタートアップ信号を受信することで他のプロセッサとの間の同期をとり、データ処理を再開する。
【０００９】
多重化データ処理装置が行うデータ処理は常に同一のデータ処理とは限らない。例えば、多重化データ処理装置が第１処理、第２処理、・・・、第ｍ処理（ただし、ｍは２以上の自然数）という複数の異なる種類のデータ処理を含む一連のデータ処理を繰り返す場合がある。この場合、異常なデータ処理を行ったためにデータ処理を停止していたプロセッサが再起動等の後、データ処理が可能な状態となっても、当該プロセッサは第１処理〜第ｍ処理のうちのいずれの処理を行えばよいかを知る術がないため、データ処理を再開することができない。
【００１０】
従って、複数の異なる種類のデータ処理を行う多重化データ処理装置においては、いずれかのプロセッサがデータ処理を停止すると、当該プロセッサがデータ処理から離脱した状態（以下、「半故障状態」という）での動作が継続されることになる。
【００１１】
半故障状態となった多重化データ処理装置を正常な状態に戻すためには、例えば多重化データ処理装置を再起動すればよいが、多重化データ処理装置の再起動が行われると、多重化データ処理装置の初期化等の所定の準備処理が完了するまでの間、多重化データ処理装置は稼働できない。
【００１２】
上述の事情に鑑み、本発明は、稼働を停止することなく半故障状態から正常な状態への復旧が可能な多重化データ処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決するために、本発明は、同一の一連のデータ処理を行う３個以上の複数のプロセッサを備える多重化データ処理装置であって、前記複数のプロセッサのうち異常と判定されたプロセッサは、前記一連のデータ処理を停止し再開する前に、前記複数のプロセッサのうち前記一連のデータ処理を継続しているプロセッサが行っているデータ処理の識別情報を取得し、当該識別情報に基づき前記一連のデータ処理の再開時に行うデータ処理を特定する多重化データ処理装置を第１の態様として提供する。
【００１４】
第１の態様にかかる多重化データ処理装置によれば、稼働を停止することなく半故障状態から正常な状態への復旧が行われる。
【００１５】
第１の態様にかかる多重化データ処理装置において、前記複数のプロセッサのうち前記一連のデータ処理を継続しているプロセッサは、前記複数のプロセッサの他プロセッサとの間でデータ処理の同期を取るための信号と、自プロセッサが行っているデータ処理の識別情報を、同時または交互に出力する、という構成が第２の態様として採用されてもよい。
【００１６】
第２の態様にかかる多重化データ処理装置によれば、データ処理を再開するプロセッサは、いずれのタイミングでいずれのデータ処理を開始すればよいかを知ることができる。
【００１７】
第１または第２の態様にかかる多重化データ処理装置において、前記複数のプロセッサの各々は、自プロセッサが行ったデータ処理の結果と前記複数のプロセッサの他プロセッサが行ったデータ処理の結果との照合の結果を出力し、前記複数のプロセッサのうち、前記複数のプロセッサの各々から出力される前記照合の結果に基づき異常と判定されるプロセッサに前記一連のデータ処理の停止を指示する異常検出回路を備える、という構成が第３の態様として採用されてもよい。
【００１８】
第３の態様にかかる多重化データ処理装置によれば、異常なデータ処理を行っているプロセッサが当該異常を自ら特定できない場合であっても、当該プロセッサのデータ処理が停止される。
【００１９】
第３の態様にかかる多重化データ処理装置において、前記異常検出回路は、前記複数のプロセッサのうちの２個のプロセッサの組合せの各々に関し、当該組合せの２個のプロセッサの各々から出力される前記照合の結果を照合する照合回路と、前記複数のプロセッサの各々に関し、当該プロセッサから出力される前記照合の結果を照合の対象とする前記照合回路の前記照合の結果に基づき当該プロセッサを異常と判定する判定回路とを備える、という構成が第４の態様として採用されてもよい。
【００２０】
第４の態様にかかる多重化データ処理装置によれば、或るプロセッサが正常であるか否かの判定が、当該或るプロセッサとは異なる２以上のプロセッサによる照合結果に基づき、高い信頼性で行われる。
【００２１】
第１乃至第４のいずれかの態様にかかる多重化データ処理装置において、前記複数のプロセッサのうち異常と判定されたプロセッサは、前記一連のデータ処理を停止した後に自プロセッサが正常であるか否かを診断し、正常であると診断したときに前記一連のデータ処理を再開する、という構成が第５の態様として採用されてもよい。
【００２２】
第５の態様にかかる多重化データ処理装置によれば、恒常的に異常を示すプロセッサがデータ処理を再開してしまうという不都合が回避される。
【図面の簡単な説明】
【００２３】
【図１】一実施形態にかかる多重化データ処理装置の構成を示した図。
【図２】一実施形態にかかる複数のプロセッサの間でスタートアップ信号と系間情報が伝送されるタイミングを示すタイミングチャート。
【図３】一実施形態にかかる判定回路の構成を示した図。
【図４】一実施形態にかかるプロセッサの処理フローを示した図。
【図５】一実施形態にかかるプロセッサの処理フローを示した図。
【図６】一実施形態にかかる複数のプロセッサの間でスタートアップ信号と系間情報が伝送されるタイミングを示すタイミングチャート。
【図７】一変形例にかかる多重化データ処理装置の構成を示した図。
【発明を実施するための形態】
【００２４】
［実施形態］
以下に本発明の一実施形態にかかる多重化データ処理装置１を説明する。図１は多重化データ処理装置１の構成を示した図である。なお、図１には多重化データ処理装置１により行われるデータ処理の結果を利用する装置として、処理結果利用装置９も示されている。多重化データ処理装置１はデータ処理の結果を示す処理結果データを処理結果利用装置９に出力する。
【００２５】
多重化データ処理装置１はＡ系、Ｂ系、Ｃ系の３個の系のプロセッサを備える三重化データ処理装置である。多重化データ処理装置１は、Ａ系プロセッサ１１Ａ、Ｂ系プロセッサ１１ＢおよびＣ系プロセッサ１１Ｃを備える。以下、これらの３個のプロセッサを「プロセッサ１１」と総称する。
【００２６】
本願において、プロセッサとは広くデータ処理を行う装置をいう。すなわち、本願におけるプロセッサには、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro-Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＧＰＵ（Graphics Processing Unit）等の汎用プロセッサ、ＡＳＩＣ（Application Specific Integrated Circuit）等で構築される専用プロセッサ、ＦＰＧＡ（Field-Programmable Gate Array）等の再構築可能なプロセッサ等のいずれも含まれる。
【００２７】
Ａ系プロセッサ１１ＡとＢ系プロセッサ１１Ｂは、以下の４本の伝送路で接続されている。
伝送路１２ＡＢ：Ａ系プロセッサ１１ＡからＢ系プロセッサ１１Ｂに対しスタートアップ信号を送信するために用いられる伝送路。
伝送路１２ＢＡ：Ｂ系プロセッサ１１ＢからＡ系プロセッサ１１Ａに対しスタートアップ信号を送信するために用いられる伝送路。
伝送路１３ＡＢ：Ａ系プロセッサ１１ＡからＢ系プロセッサ１１Ｂに対し系間情報を送信するために用いられる伝送路。
伝送路１３ＢＡ：Ｂ系プロセッサ１１ＢからＡ系プロセッサ１１Ａに対し系間情報を送信するために用いられる伝送路。
【００２８】
スタートアップ信号とは、３個のプロセッサ１１の各々において行われるデータ処理の実行タイミングの同期のために送受信される信号である。系間情報とは、３個のプロセッサ１１の各々において行われるデータ処理の内容を一致させるために送受信される情報である。本実施形態において、系間情報には、実行されるデータ処理の種類を識別する処理識別データと、データ処理の結果を示す処理結果データが含まれる。
【００２９】
Ｂ系プロセッサ１１ＢとＣ系プロセッサ１１Ｃは、以下の４本の伝送路で接続されている。
伝送路１２ＢＣ：Ｂ系プロセッサ１１ＢからＣ系プロセッサ１１Ｃに対しスタートアップ信号を送信するために用いられる伝送路。
伝送路１２ＣＢ：Ｃ系プロセッサ１１ＣからＢ系プロセッサ１１Ｂに対しスタートアップ信号を送信するために用いられる伝送路。
伝送路１３ＢＣ：Ｂ系プロセッサ１１ＢからＣ系プロセッサ１１Ｃに対し系間情報を送信するために用いられる伝送路。
伝送路１３ＣＢ：Ｃ系プロセッサ１１ＣからＢ系プロセッサ１１Ｂに対し系間情報を送信するために用いられる伝送路。
【００３０】
Ｃ系プロセッサ１１ＣとＡ系プロセッサ１１Ａは、以下の４本の伝送路で接続されている。
伝送路１２ＣＡ：Ｃ系プロセッサ１１ＣからＡ系プロセッサ１１Ａに対しスタートアップ信号を送信するために用いられる伝送路。
伝送路１２ＡＣ：Ａ系プロセッサ１１ＡからＣ系プロセッサ１１Ｃに対しスタートアップ信号を送信するために用いられる伝送路。
伝送路１３ＣＡ：Ｃ系プロセッサ１１ＣからＡ系プロセッサ１１Ａに対し系間情報を送信するために用いられる伝送路。
伝送路１３ＡＣ：Ａ系プロセッサ１１ＡからＣ系プロセッサ１１Ｃに対し系間情報を送信するために用いられる伝送路。
【００３１】
図２は３個のプロセッサ１１の間でスタートアップ信号と系間情報が伝送されるタイミングを示すタイミングチャートである。多重化データ処理装置１はシステムクロック（図１において図示略）を備え、３個のプロセッサ１１はシステムクロックから出力されるクロック信号に従い処理の同期を取る。本実施形態において、３個のプロセッサ１１は、多重化データ処理装置１の起動後に、第１処理、第２処理、・・・、第ｍ処理、第１処理、第２処理、・・・、第ｍ処理、（ただし、ｍは２以上の自然数）という具合に、複数の種類のデータ処理を含む一連のデータ処理を繰り返す。これらの処理の各々は、所定数のクロックに応じた時間長で規定されるフレームにおいて実行される。各フレームにおいて、３個のプロセッサ１１は各々、当該フレームにおける同期を取るためのスタートアップ信号、当該フレームにおいて実行するデータ処理を識別する処理識別データ、当該フレームにおいて実行した処理の結果を示す処理結果データ、を順次、他のプロセッサとの間で送受信する。
【００３２】
図２に示されるタイミングチャートに従い、３個のプロセッサ１１は、それらが正常に動作している限り、同じフレーム内で同じデータ処理を行い、同じ処理結果を示す処理結果データを生成する。
【００３３】
図１に戻り、多重化データ処理装置１の構成の説明を続ける。多重化データ処理装置１は、３個の照合回路、すなわち、照合回路１４ＡＢ、照合回路１４ＢＣおよび照合回路１４ＣＡを備える。以下、これらの３個の照合回路を「照合回路１４」と総称する。照合回路１４は３個のプロセッサ１１の各々において行われた処理結果データの照合結果を照合する回路である。
【００３４】
３個のプロセッサ１１の各々は、各フレームにおいて、２個の他プロセッサの各々から処理結果データを受信すると、これらの受信した処理結果データの各々と、自プロセッサが生成した処理結果データとの照合を行い、照合結果を示す照合結果フラグを出力する。以下、プロセッサ１１が出力する照合結果フラグは、その値が「１」の場合、照合の成功を示し、「０」の場合、照合の失敗を示すものとする。
【００３５】
Ａ系プロセッサ１１Ａは、Ａ系プロセッサ１１Ａが生成した処理結果データと、Ｂ系プロセッサ１１Ｂから受信した処理結果データとの照合結果を示す照合結果フラグを照合回路１４ＡＢに出力する。また、Ａ系プロセッサ１１Ａは、Ａ系プロセッサ１１Ａが生成した処理結果データと、Ｃ系プロセッサ１１Ｃから受信した処理結果データとの照合結果を示す照合結果フラグを照合回路１４ＣＡに出力する。
【００３６】
Ｂ系プロセッサ１１Ｂは、Ｂ系プロセッサ１１Ｂが生成した処理結果データと、Ｃ系プロセッサ１１Ｃから受信した処理結果データとの照合結果を示す照合結果フラグを照合回路１４ＢＣに出力する。また、Ｂ系プロセッサ１１Ｂは、Ｂ系プロセッサ１１Ｂが生成した処理結果データと、Ａ系プロセッサ１１Ａから受信した処理結果データとの照合結果を示す照合結果フラグを照合回路１４ＡＢに出力する。
【００３７】
Ｃ系プロセッサ１１Ｃは、Ｃ系プロセッサ１１Ｃが生成した処理結果データと、Ａ系プロセッサ１１Ａから受信した処理結果データとの照合結果を示す照合結果フラグを照合回路１４ＣＡに出力する。また、Ｃ系プロセッサ１１Ｃは、Ｃ系プロセッサ１１Ｃが生成した処理結果データと、Ｂ系プロセッサ１１Ｂから受信した処理結果データとの照合結果を示す照合結果フラグを照合回路１４ＢＣに出力する。
【００３８】
照合回路１４ＡＢはＡＮＤ回路であり、各フレームにおいて、Ａ系プロセッサ１１ＡとＢ系プロセッサ１１Ｂの各々から出力される照合結果フラグを入力値として、それらの入力値の論理積を照合結果フラグとして出力する。Ａ系プロセッサ１１ＡとＢ系プロセッサ１１Ｂで同一の処理結果データが生成され、Ａ系プロセッサ１１ＡとＢ系プロセッサ１１Ｂのいずれにおいても処理結果データの照合処理が正しく行われた場合、照合回路１４ＡＢが出力する照合結果フラグは「１」となり、それ以外の場合、照合回路１４ＡＢが出力する照合結果フラグは「０」となる。従って、照合回路１４ＡＢから出力される照合結果フラグが「１」である場合、Ａ系プロセッサ１１ＡとＢ系プロセッサ１１Ｂはいずれも正常なデータ処理を行っていることになる。
【００３９】
照合回路１４ＢＣはＡＮＤ回路であり、各フレームにおいて、Ｂ系プロセッサ１１ＢとＣ系プロセッサ１１Ｃの各々から出力される照合結果フラグを入力値として、それらの入力値の論理積を照合結果フラグとして出力する。Ｂ系プロセッサ１１ＢとＣ系プロセッサ１１Ｃで同一の処理結果データが生成され、Ｂ系プロセッサ１１ＢとＣ系プロセッサ１１Ｃのいずれにおいても処理結果データの照合処理が正しく行われた場合、照合回路１４ＢＣが出力する照合結果フラグは「１」となり、それ以外の場合、照合回路１４ＢＣが出力する照合結果フラグは「０」となる。従って、照合回路１４ＢＣから出力される照合結果フラグが「１」である場合、Ｂ系プロセッサ１１ＢとＣ系プロセッサ１１Ｃはいずれも正常なデータ処理を行っていることになる。
【００４０】
照合回路１４ＣＡはＡＮＤ回路であり、各フレームにおいて、Ｃ系プロセッサ１１ＣとＡ系プロセッサ１１Ａの各々から出力される照合結果フラグを入力値として受け取り、それらの入力値の論理積を照合結果フラグとして出力する。Ｃ系プロセッサ１１ＣとＡ系プロセッサ１１Ａで同一の処理結果データが生成され、Ｃ系プロセッサ１１ＣとＡ系プロセッサ１１Ａのいずれにおいても処理結果データの照合処理が正しく行われた場合、照合回路１４ＣＡが出力する照合結果フラグは「１」となり、それ以外の場合、照合回路１４ＣＡが出力する照合結果フラグは「０」となる。従って、照合回路１４ＣＡから出力される照合結果フラグが「１」である場合、Ｃ系プロセッサ１１ＣとＡ系プロセッサ１１Ａはいずれも正常なデータ処理を行っていることになる。
【００４１】
なお、照合回路１４から出力される照合結果フラグが「０」であっても、この１つの照合結果フラグのみでは、いずれのプロセッサ１１が異常なデータ処理を行っているかは特定されない。例えば、照合回路１４ＡＢから出力される照合結果フラグが「０」である場合、Ａ系プロセッサ１１ＡとＢ系プロセッサ１１Ｂのいずれが異常なデータ処理を行っているかは特定されない。
【００４２】
多重化データ処理装置１は、３個の判定回路、すなわち、判定回路１５Ａ、判定回路１５Ｂおよび判定回路１５Ｃを備える。以下、これらの３個の判定回路を「判定回路１５」と総称する。判定回路１５は各フレームにおいて３個の照合回路１４の各々から出力される照合結果フラグに基づき、３個のプロセッサ１１の各々のデータ処理が正常に行われたか否かを判定し、異常なデータ処理が行われた回数に応じて、プロセッサ１１に対する再起動および自己診断処理の指示を行う回路である。
【００４３】
なお、照合回路１４と判定回路１５は、３個のプロセッサ１１の各々から出力される照合結果フラグに基づき異常と判定されるプロセッサ１１にデータ処理の停止を指示する異常検出回路を構成する。
【００４４】
判定回路１５ＡはＡ系プロセッサ１１Ａのデータ処理が正常に行われたか否かを判定し、判定結果に応じて、再起動または自己診断処理をＡ系プロセッサ１１Ａに指示する。判定回路１５ＢはＢ系プロセッサ１１Ｂのデータ処理が正常に行われたか否かを判定し、判定結果に応じて、再起動または自己診断処理をＢ系プロセッサ１１Ｂに指示する。判定回路１５ＣはＣ系プロセッサ１１Ｃのデータ処理が正常に行われたか否かを判定し、判定結果に応じて、再起動または自己診断処理をＣ系プロセッサ１１Ｃに指示する。
【００４５】
３個の判定回路１５は共通の構成を備える。図３は３個の判定回路１５に共通する構成を示した図である。判定回路１５は、まず、２個の照合回路１４の各々から出力される照合結果フラグを入力値として受け取り、それらの入力値の論理和を判定結果フラグとして出力するＯＲ回路１５１を備える。
【００４６】
例えば、判定回路１５ＡのＯＲ回路１５１は、照合回路１４ＡＢから出力される照合結果フラグと、照合回路１４ＣＡから出力される照合結果フラグを入力値として受け取り、これらの入力値の論理和を判定結果フラグとして出力する。従って、照合回路１４ＡＢから出力される照合結果フラグと、照合回路１４ＣＡから出力される照合結果フラグの少なくとも１つが「１」であれば、判定回路１５ＡのＯＲ回路１５１が出力する判定結果フラグは「１」となる。
【００４７】
照合回路１４ＡＢから出力される照合結果フラグが「１」であれば、既述のように、Ａ系プロセッサ１１ＡとＢ系プロセッサ１１Ｂの両方が正常なデータ処理を行っていることになる。また、照合回路１４ＣＡから出力される照合結果フラグが「１」であれば、既述のように、Ａ系プロセッサ１１ＡとＣ系プロセッサ１１Ｃの両方が正常なデータ処理を行っていることになる。従って、照合回路１４ＣＡから出力される照合結果フラグが「１」であれば、Ａ系プロセッサ１１Ａが正常なデータ処理を行っていることになる。
【００４８】
一方、照合回路１４ＡＢから出力される照合結果フラグと、照合回路１４ＣＡから出力される照合結果フラグがいずれも「０」であれば、判定回路１５ＡのＯＲ回路１５１が出力する判定結果フラグは「０」となる。照合回路１４ＡＢから出力される照合結果フラグと、照合回路１４ＣＡから出力される照合結果フラグがいずれも「０」である場合とは、以下のいずれかの場合である。
Ｂ系プロセッサ１１Ｂが異常なデータ処理を行った場合。
Ｂ系プロセッサ１１Ｂは正常なデータ処理を行ったが、Ａ系プロセッサ１１ＡとＣ系プロセッサ１１Ｃが共に異常なデータ処理を行った場合。
【００４９】
２個のプロセッサ１１が同時に異常なデータ処理を行う可能性は、１つのプロセッサ１１が異常なデータ処理を行う可能性と比べると著しく低い。従って、照合回路１４ＣＡから出力される照合結果フラグがいずれも「０」である場合、すなわち、判定回路１５ＡのＯＲ回路１５１が出力する判定結果フラグが「０」である場合、Ｂ系プロセッサ１１Ｂが異常なデータ処理を行ったとみなしてよい。
【００５０】
上記のような理由で、本実施形態においては、ＯＲ回路１５１が出力する判定結果フラグが「０」である場合、このＯＲ回路１５１を備える判定回路１５に対応するプロセッサ１１が異常なデータ処理を行ったと判定される。
【００５１】
判定回路１５は、ＯＲ回路１５１に加え、ＯＲ回路１５１が判定結果フラグ「０」を出力した回数をカウントする異常回数カウンタ１５２と、異常回数カウンタ１５２のカウント結果が所定の閾値ＴRに達したときにプロセッサ１１に再起動を指示する再起動指示回路１５３と、再起動指示回路１５３により再起動の指示が行われた回数をカウントする再起動カウンタ１５４と、再起動カウンタ１５４のカウント結果が所定の閾値ＴDに達したときにプロセッサ１１に自己診断処理を指示する診断指示回路１５５を備える。
【００５２】
再起動指示回路１５３は、各フレームにおいて、再起動カウンタ１５４のカウンタ結果が閾値ＴDに達しておらず、かつ、異常回数カウンタ１５２のカウンタ結果が閾値ＴRに達した場合、プロセッサ１１を再起動させるとともに、異常回数カウンタ１５２のカウンタ結果を「０」にリセットする。
【００５３】
診断指示回路１５５は、各フレームにおいて、再起動カウンタ１５４のカウンタ結果が閾値ＴDに達した場合、プロセッサ１１に自己診断処理を行わせるとともに、異常回数カウンタ１５２および再起動カウンタ１５４のカウンタ結果を「０」にリセットする。
【００５４】
自己診断処理とは、プロセッサ１１が所定のプログラム（以下、「自己診断プログラム」という）に従いテスト用のデータ処理を行い、テスト用のデータ処理の処理結果を正しい処理結果と照合することで、自プロセッサが正常であるか否かを診断する処理である。プロセッサ１１は、対応する判定回路１５からの指示に従い自己診断処理を行い、自プロセッサが正常であると診断した場合、自己診断プログラムに従い、自プロセッサの再起動を行う。再起動したプロセッサ１１は、後述する手順に従い、他プロセッサが行っているデータ処理と同様の処理を再開する。一方、プロセッサ１１は、自プロセッサが異常であると診断した場合、自己診断プログラムに従い、多重化データ処理装置１の再起動が行われるまで自プロセッサの動作を停止する。
【００５５】
図１に戻り、多重化データ処理装置１の構成の説明を続ける。多重化データ処理装置１は、各フレームにおいて３個のプロセッサ１１の各々により生成される処理結果データのうち１つ選択し、選択した処理結果データを処理結果利用装置９に出力する選択回路１６を備える。
【００５６】
選択回路１６は、３個のプロセッサ１１の各々から処理結果データを受け取る。なお、図１においては、図が複雑とならないように、３個のプロセッサ１１の各々から選択回路１６に処理結果データを送信するために用いられる伝送路は図示が略されている。
【００５７】
また、選択回路１６は、３個の照合回路１４の各々から出力される照合結果フラグを受け取り、受け取った照合結果フラグに基づき正常なデータ処理を行ったプロセッサ１１を特定する。選択回路１６は正常なデータ処理を行ったプロセッサ１１から受け取った処理結果データの中から、所定の規則（例えば、Ａ系プロセッサ１１Ａ、Ｂ系プロセッサ１１Ｂ、Ｃ系プロセッサ１１Ｃの順に優先的に選択する、という規則等）に従い、いずれかの処理結果データを選択し、選択した処理結果データを処理結果利用装置９に出力する。以上が多重化データ処理装置１の構成の説明である。
【００５８】
続いて、プロセッサ１１の処理を説明する。図４はプロセッサ１１の処理のフローを示した図である。ユーザが多重化データ処理装置１の電源を投入するか、もしくは再起動のための所定の操作を多重化データ処理装置１に対し行うと、３個のプロセッサ１１の各々はプロセッサ１１が所定の立ち上げ処理を行う（ステップＳ１０１）。ステップＳ１０１において、プロセッサ１１の各々は、各種データの初期化や他プロセッサとの同期の確立等を行う。
【００５９】
続いて、プロセッサ１１の各々は、第１処理に伴う処理（ステップＳ１０２−１）、第２処理に伴う処理（ステップＳ１０２−２）、第３処理に伴う処理（ステップＳ１０２−３）、・・・、第ｍ処理に伴う処理（ステップＳ１０２−ｍ）、を繰り返し実行する。以下、ステップＳ１０２−１〜Ｓ１０２−ｍを「ステップＳ１０２」と総称する。なお、ステップＳ１０２は、例えば第１フレームにステップＳ１０２−１が行われ、第２フレームにステップＳ１０２−２が行われる、という具合に、フレーム毎に順次実行される。
【００６０】
図５はステップＳ１０２−ｉ（ただし、ｉは１≦ｉ≦ｍである任意の自然数）においてプロセッサ１１が行う処理、すなわち、第ｉ処理に伴いプロセッサ１１が行う処理のフローを示した図である。プロセッサ１１はまず、他プロセッサとの間でスタートアップ信号の送受信を行う（ステップＳ２０１）。続いて、プロセッサ１１は、他プロセッサとの間で第ｉ処理を識別する処理識別データの送受信を行う（ステップＳ２０２）。続いて、プロセッサ１１は第ｉ処理を行う（ステップＳ２０３）。
【００６１】
続いて、プロセッサ１１は他プロセッサとの間で第ｉ処理の処理結果データを送受信するとともに、選択回路１６に処理結果データを送信する（ステップＳ２０４）。続いて、プロセッサ１１は自プロセッサが生成した処理結果データと他プロセッサから受信した処理結果データを照合する（ステップＳ２０５）。続いて、プロセッサ１１はステップＳ２０５における照合の結果を示す照合結果フラグを照合回路１４に出力する（ステップＳ２０６）。
【００６２】
照合回路１４はステップＳ２０６においてプロセッサ１１から出力される照合結果フラグの論理積を示す照合結果フラグを判定回路１５と選択回路１６に出力する。判定回路１５は照合回路１４から入力される照合結果フラグに基づきプロセッサ１１が行ったデータ処理が正常であったか否かを判定し、異常なデータ処理が行われた回数に基づきプロセッサ１１の再起動または自己診断処理の要否を判定し、必要に応じてプロセッサ１１に再起動または自己診断処理を行わせる。選択回路１６は照合回路１４から入力される照合結果フラグに基づき正常なデータ処理を行ったプロセッサ１１を特定し、特定したプロセッサ１１から受信した処理結果データの中から所定の規則に従い選択した処理結果データを処理結果利用装置９に出力する。その結果、処理結果利用装置９には多重化データ処理装置１から正常な処理結果データが提供されることになる。
【００６３】
図４に戻り、プロセッサ１１が行う処理のフローの説明を続ける。プロセッサ１１は、異常なデータ処理を繰り返した場合、判定回路１５から再起動または自己診断処理の指示を受ける。プロセッサ１１は、再起動の指示を受けた場合、または自己診断処理の指示を受けて自己診断処理を行い、自プロセッサが正常であると診断した場合、再起動する。再起動したプロセッサ１１は、所定の立ち上げ処理を行う（ステップＳ３０１）。ステップＳ３０１において、プロセッサ１１は各種データの初期化等を行う。
【００６４】
続いて、プロセッサ１１は２個の他プロセッサの各々からスタートアップ信号を受信する（ステップＳ３０２）。続いて、プロセッサ１１は２個の他プロセッサの各々から処理識別データを受信する（ステップＳ３０３）。続いて、プロセッサ１１はステップＳ３０３において受信した２個の処理識別データを照合する（ステップＳ３０４）。ステップＳ３０４の照合が失敗した場合（ステップＳ３０４；Ｎｏ）、プロセッサ１１は次のフレームまで待機し、次のフレームにおいてステップ３０２〜Ｓ３０４の処理を繰り返す。
【００６５】
ステップＳ３０４の照合が成功した場合（ステップＳ３０４；Ｙｅｓ）、プロセッサ１１はステップＳ３０３において受信した処理識別データに基づき、自プロセッサのデータ処理の再開時にいずれのデータ処理を行うべきかを特定する（ステップＳ３０５）。その後、プロセッサ１１はステップＳ３０２において受信したスタートアップ信号に基づき特定される次のフレームの開始のタイミングで、ステップＳ３０５において特定したデータ処理を開始する（ステップＳ１０２）。
【００６６】
例えば、ステップＳ３０３において受信した処理識別データが第ｊ処理（ただし、ｊは１≦ｊ≦ｍ−１である任意の自然数）を示す場合、プロセッサ１１はステップＳ３０５において、第（ｊ＋１）処理を再開時に実行すべき処理として特定する。また、ステップＳ３０３において受信した処理識別データが第ｍ処理を示す場合、プロセッサ１１はステップＳ３０５において、第１処理を再開時に実行すべき処理として特定する。
【００６７】
続いて、プロセッサ１１はステップＳ３０２におけるスタートアップ信号の受信タイミングから１フレームだけ後のタイミングにスタートアップ信号の送受信（ステップＳ２０１）を行い、その後、ステップＳ３０５において特定したデータ処理に関するステップＳ２０２〜Ｓ２０６を行う。その後、プロセッサ１１はフレームに応じたステップＳ２０１を繰り返す。これにより、多重化データ処理装置１が半故障状態から正常な状態に復旧する。
【００６８】
図６は、Ｃ系プロセッサ１１Ｃが再起動に伴いデータ処理を停止し、第ｋフレームにおいて立ち上げ処理が完了した場合に、３個のプロセッサ１１の間でスタートアップ信号と系間情報が伝送されるタイミングを示すタイミングチャートである。この場合、Ｃ系プロセッサ１１Ｃは第（ｋ＋１）フレームにおいて、Ａ系プロセッサ１１ＡおよびＢ系プロセッサ１１Ｂからスタートアップ信号を受信し、その後、Ａ系プロセッサ１１ＡおよびＢ系プロセッサ１１Ｂから処理識別データを受信する。その後、Ｃ系プロセッサ１１Ｃは受信した処理識別データが示すデータ処理の次のデータ処理を、再開時に実行すべきデータ処理として特定する。そして、Ｃ系プロセッサ１１Ｃは、第（ｋ＋２）フレームにおいて、通常の処理を再開する。
【００６９】
上記のように、多重化データ処理装置１によれば、３個のプロセッサ１１のいずれかが異常なデータ処理を行っても、他の２個のプロセッサ１１が正常なデータ処理を行う限り、処理結果利用装置９に対する信頼性の高い処理結果データの提供が継続される。そして、異常なデータ処理を行ったプロセッサ１１は必要に応じて再起動または自己診断処理を行う。再起動または自己診断処理に伴い、異常なデータ処理を行ったプロセッサ１１は一時的にデータ処理を停止するが、その後、データ処理を再開する。データ処理を停止していたプロセッサ１１がデータ処理を再開する際、他のプロセッサ１１がデータ処理を停止する必要はない。そのため、多重化データ処理装置１は処理結果利用装置９への処理結果データの提供を停止することなく、半故障状態から正常な状態へ復旧することができる。
【００７０】
［変形例］
上述した実施形態は様々に変形することができる。以下にそれらの変形の例を示す。なお、上述した実施形態および以下に示す変形例は適宜組合わされてもよい。
【００７１】
（１）上述した実施形態において、多重化データ処理装置１は３個のプロセッサ１１を備える三重化データ処理装置である。多重化データ処理装置１が備えるプロセッサ１１の数は３個に限られず、４個以上であってもよい。
【００７２】
例えば、多重化データ処理装置１がＡ系プロセッサ１１Ａ、Ｂ系プロセッサ１１ＢおよびＣ系プロセッサ１１Ｃに加え、Ｄ系プロセッサ１１Ｄを備える四重化データ処理装置として構成されてもよい。この場合、多重化データ処理装置１は６つの照合回路１４（照合回路１４ＡＢ、照合回路１４ＢＣ、照合回路１４ＣＤ、照合回路１４ＤＡ、照合回路１４ＣＡおよび照合回路１４ＢＣ）を備え、４個のプロセッサ１１の各々に応じた４個の判定回路１５（判定回路１５Ａ、判定回路１５Ｂ、判定回路１５Ｃおよび判定回路１５Ｄ）を備える。
【００７３】
例えば、Ａ系プロセッサ１１Ａに関しては、３個の照合回路１４（照合回路１４ＡＢ、照合回路１４ＣＡおよび照合回路１４ＤＡ）のいずれかが照合結果フラグ「１」を出力すれば、正常なデータ処理を行ったことが確認される。他のプロセッサ１１に関しても同様である。
【００７４】
（２）上述した実施形態において、多重化データ処理装置１が備える複数のプロセッサ１１の各々の役割は同等であり、また、複数のプロセッサ１１の間の関係も同等である。これに代えて、多重化データ処理装置が主従関係を持つプロセッサ１１やグループ化されたプロセッサ１１を備える構成が採用されてもよい。
【００７５】
図７は本変形例の一例にかかる多重化データ処理装置２の構成を示した図である。多重化データ処理装置２は、Ａ系マスタプロセッサ１１Ａｍ、Ａ系スレーブプロセッサ１１Ａｓ、Ｂ系マスタプロセッサ１１ＢｍおよびＢ系スレーブプロセッサ１１Ｂｓ、という４個のプロセッサを備える。Ａ系マスタプロセッサ１１ＡｍとＡ系スレーブプロセッサ１１Ａｓは１つの二重化データ処理装置（以下、「Ａ系二重化データ処理装置」という）を構成し、Ｂ系マスタプロセッサ１１ＢｍとＢ系スレーブプロセッサ１１Ｂｓはもう１つの二重化データ処理装置（以下、「Ｂ系二重化データ処理装置」という）を構成する。
【００７６】
多重化データ処理装置２は、Ａ系二重化データ処理装置のための照合回路１４Ａおよび判定回路１５Ａと、Ｂ系二重化データ処理装置のための照合回路１４Ｂおよび判定回路１５Ｂを備える。
【００７７】
Ａ系二重化データ処理装置において、Ａ系マスタプロセッサ１１ＡｍとＡ系スレーブプロセッサ１１Ａｓはスタートアップ信号を送受信するための伝送路と、系間情報を送受信するための伝送路で接続されている。各フレームにおいて、Ａ系マスタプロセッサ１１Ａｍは自プロセッサにより生成した処理結果データと、Ａ系スレーブプロセッサ１１Ａｓから受信した処理結果データを照合した結果を示す照合結果フラグを照合回路１４Ａに出力する。同様に、各フレームにおいて、Ａ系スレーブプロセッサ１１Ａｓは自プロセッサにより生成した処理結果データと、Ａ系マスタプロセッサ１１Ａｍから受信した処理結果データを照合した結果を示す照合結果フラグを照合回路１４Ａに出力する。照合回路１４Ａは、２個のプロセッサから入力される照合結果フラグの論理積を照合結果フラグとして判定回路１５Ａに出力する。
【００７８】
判定回路１５Ａは照合回路１４Ａから出力される照合結果フラグが「１」であればＡ系マスタプロセッサ１１ＡｍおよびＡ系スレーブプロセッサ１１Ａｓは正常なデータ処理を行ったと判定する。一方、判定回路１５Ａは照合回路１４Ａから出力される照合結果フラグが「０」であればＡ系マスタプロセッサ１１ＡｍおよびＡ系スレーブプロセッサ１１Ａｓのいずれかが異常なデータ処理を行ったと判定し、異常回数をカウントする。判定回路１５Ａはカウントした異常回数に基づき、Ａ系マスタプロセッサ１１ＡｍおよびＡ系スレーブプロセッサ１１Ａｓに対する再起動または自己診断処理を指示する。
【００７９】
Ｂ系二重化データ処理装置に応じた照合回路１４Ｂおよび判定回路１５Ｂの動作は、Ａ系二重化データ処理装置に応じた照合回路１４Ａおよび判定回路１５Ｂの動作と同様である。
【００８０】
Ａ系マスタプロセッサ１１ＡｍとＢ系マスタプロセッサ１１Ｂｍは、Ａ系二重化データ処理装置とＢ系二重化データ処理装置がデータ処理の同期を取るためのスタートアップ信号を送受信するための伝送路と、Ａ系二重化データ処理装置とＢ系二重化データ処理装置の間で系間情報を送受信するための伝送路により接続されている。Ａ系二重化データ処理装置とＢ系二重化データ処理装置の各々が行う処理のフローは、図４に示したプロセッサ１１の各々が行う処理のフローと同様である。
【００８１】
各フレームにおいて、照合回路１４Ａと照合回路１４Ｂは各々、照合結果フラグを選択回路１６に出力する。選択回路１６は照合回路１４Ａと照合回路１４Ｂから入力される照合結果フラグに基づき正常なデータ処理を行った二重化データ処理装置を特定し、特定した二重化データ処理装置により生成された処理結果データの中から所定の規則に従い選択した処理結果データを処理結果利用装置９に出力する。
【００８２】
上述した多重化データ処理装置２も多重化データ処理装置１と同様に、処理結果利用装置９に対する処理結果データの提供を中断することなく、半故障状態から正常な状態へ復旧することができる。
【００８３】
（３）上述した実施形態において、異常と判定されたプロセッサ１１は、異常と判定された回数が閾値ＴRに達すると再起動し、再起動した回数が閾値ＴDに達すると自己診断処理を行う。異常と判定された際にプロセッサ１１が行う処理の内容は実施形態に例示の内容に限られない。例えば、異常と判定されたプロセッサ１１が再起動のみ、もしくは自己診断処理のみを行ってもよい。また、異常と判定されたプロセッサ１１が、再起動を伴わずに各種データの初期化を行う等、再起動および自己診断処理のいずれでもない処理を行う構成が採用されてもよい。また、異常と判定されたプロセッサ１１が再起動や自己診断処理等の動作を行うトリガとなる条件も、上述した実施形態に例示の条件に限られない。例えば、異常なデータ処理が行われた回数が閾値ＴDに達するとプロセッサ１１が再起動を伴わない自己診断処理を行い、自己診断処理で異常と診断した場合、再起動を行うように構成されてもよい。
【００８４】
（４）上述した実施形態において、プロセッサ１１は判定回路１５から再起動の指示を受けると、当該指示に従い自プロセッサを再起動させる。これに代えて、判定回路１５が、例えばプロセッサ１１に対する電力供給をいったん停止させた後に再開させる等により、強制的にプロセッサ１１を再起動させる構成が採用されてもよい。この場合、プロセッサ１１が自プロセッサを再起動できない状態となっていても、確実にプロセッサ１１の再起動が行われる。
【００８５】
（５）上述した実施形態において、異常なデータ処理を行ったプロセッサ１１は判定回路１５の指示に従い再起動等の処理を行う。これに代えて、プロセッサ１１が自プロセッサによるデータ処理が正常に行われたか否かを判定し、当該判定の結果に基づき自プロセッサを再起動等させる構成が採用されてもよい。
【００８６】
（６）上述した実施形態において、第１処理、第２処理、・・・、第ｍ処理の各々は、所定のクロック数により規定される同じ時間長のフレームにおいて行われる。フレームの時間長は固定長に限られず、可変長であってもよい。
【００８７】
（７）上述した実施形態において、プロセッサ１１は、第１処理、第２処理、・・・、第ｍ処理という一連のデータ処理を繰り返す。プロセッサ１１が行うデータ処理は同様の一連のデータ処理を繰り返す必要はない。例えば、プロセッサ１１が或るプログラムに従い、先行するデータ処理において生成した処理結果データに応じて後続のデータ処理を決定する構成が採用されてもよい。この場合、データ処理を停止した後、データ処理を再開するプロセッサ１１は、データ処理を継続しているプロセッサ１１から、現在のフレームで行われるデータ処理を識別する処理識別データに加え、次のフレームで行われるデータ処理の決定に要する先行するデータ処理の処理結果データを系間情報として受信する。データ処理を再開するプロセッサ１１は、他のプロセッサ１１から受信したこれらのデータに基づき、再開時に実行すべきデータ処理を決定する。
【００８８】
（８）上述した実施形態において、各フレームにおける処理識別データの出力のタイミングは、スタートアップ信号の出力のタイミングより後である。従って、スタートアップ信号と処理識別データは交互に出力される。各フレームにおける処理識別データとスタートアップ信号の出力のタイミングの関係はこれに限られず、例えば、スタートアップ信号と処理識別データが同じタイミングで出力されてもよい。
【００８９】
（９）上述した実施形態において、処理識別データは系間情報の一部として処理結果データの送受信に用いられる伝送路により送受信される。これに代えて、処理識別データがスタートアップ信号の送受信に用いられる伝送路により送受信されてもよい。さらに、処理識別データがスタートアップ信号として送受信されてもよい。
【００９０】
（１０）上述した実施形態において、スタートアップ信号の送受信と系間情報の送受信には異なる伝送路が用いられる。これに代えて、スタートアップ信号の送受信と系間情報の送受信に同じ伝送路が用いられてもよい。
【００９１】
（１１）データ処理を継続しているプロセッサ１１はデータ処理を停止しているプロセッサ１１に対しスタートアップ信号および系間情報を送信し続けてもよいし、スタートアップ信号および系間情報の送信を停止してもよい。データ処理を継続しているプロセッサ１１がデータ処理を停止しているプロセッサ１１に対するスタートアップ信号および系間情報の送信を停止する場合、データ処理を停止していたプロセッサ１１がデータ処理を再開可能な状態となった時点で、他のプロセッサ１１に対しスタートアップ信号および系間情報の送信の再開を要求する構成が採用されてもよい。
【符号の説明】
【００９２】
１…多重化データ処理装置、２…多重化データ処理装置、９…処理結果利用装置、１１…プロセッサ、１４…照合回路、１５…判定回路、１６…選択回路、１５１…ＯＲ回路、１５２…異常回数カウンタ、１５３…再起動指示回路、１５４…再起動カウンタ、１５５…診断指示回路
【図１】
2017016319.tif 000003
【図２】
2017016319.tif 000004
【図３】
2017016319.tif 000005
【図４】
2017016319.tif 000006
【図５】
2017016319.tif 000007
【図６】
2017016319.tif 000008
【図７】
2017016319.tif 000009