(57)【特許請求の範囲】
【請求項１】
通信接続された複数の演算処理手段を備え、該複数の演算処理手段が同一の演算処理を同期して実行可能な情報処理装置であって、
複数の符号化手法から、エラー確率が設定値未満である一の符号化手法を選択する符号化手法選択手段と、
前記複数の演算処理手段が同一の演算処理を同期して実行する際に、前記複数の演算処理手段による演算処理結果を含む情報を、前記符号化手法選択手段によって選択された符号化手法によって符号化する符号化手段と、
前記複数の符号化手段によって符号化された情報を比較して、前記複数の演算処理手段が正常に作動しているかどうかを判定する判定手段と、
を備える情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記符号化手法選択手段は、前記エラー確率が設定値未満である符号化手法のうち、最も符号化ビット数が小さい符号化手法を選択する手段である、
情報処理装置。
【請求項３】
請求項１又は２に記載の情報処理装置であって、
前記設定値は、パラメータとして設定されたＣＰＵ要求安全度に符号エラー比率を乗算し、更に前記判定手段による時間あたりの比較回数を除算した値として算出される、
情報処理装置。
【請求項４】
請求項１ないし３のいずれか１項に記載の情報処理装置であって、
前記符号化手法選択手段は、前記設定値の対数値に基づいて最小符号化ビット数を算出し、符号化ビット数が前記算出した最小符号化ビット数を超える符号化手法を選択することにより、エラー確率が設定値未満である符号化手法を選択する手段である、
情報処理装置。
【請求項５】
通信接続された複数の演算処理手段を備え、該複数の演算処理手段が同一の演算処理を同期して実行可能な情報処理装置の自己診断方法であって、
複数の符号化手法から、エラー確率が設定値未満である一の符号化手法を選択する符号化手法選択ステップと、
前記複数の演算処理手段が同一の演算処理を同期して実行する際に、前記複数の演算処理手段による演算処理結果を含む情報を、前記符号化手法選択ステップにおいて選択された符号化手法によって符号化する符号化ステップと、
前記符号化ステップにおいて符号化された情報を比較して、前記複数の演算処理手段が正常に作動しているかどうかを判定する判定ステップと、
を備える情報処理装置の自己診断方法。
【請求項６】
請求項５に記載の情報処理装置の自己診断方法であって、
前記符号化手法選択ステップにおいて、前記エラー確率が設定値未満である符号化手法のうち、最も符号化ビット数が小さい符号化手法を選択することを特徴とする、
情報処理装置の自己診断方法。
【請求項７】
請求項５又は６に記載の情報処理装置の自己診断方法であって、
前記設定値を、パラメータとして設定されたＣＰＵ要求安全度に符号エラー比率を乗算し、更に前記判定ステップによる時間あたりの比較回数を除算した値として算出する設定値算出ステップを更に備える、
情報処理装置の自己診断方法。
【請求項８】
請求項５ないし７のいずれか１項に記載の情報処理装置の自己診断方法であって、
前記符号化手法選択ステップにおいて、前記設定値の対数値に基づいて最小符号化ビット数を算出し、該算出した最小符号化ビット数よりも符号化ビット数が大きい符号化手法を選択することにより、エラー確率が設定値未満である符号化手法を選択することを特徴とする、
情報処理装置の自己診断方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ（Central  Processing  Unit）等の演算処理手段を複数有し、この複数の演算処理手段によって同一の演算処理を冗長的に実行可能な情報処理装置、及びその自己診断方法に関する。
【背景技術】
【０００２】
近年、ＣＰＵ等の演算処理手段を複数有する情報処理装置（コンピュータ）が広く用いられている。この種の情報処理装置では、異なる内容の処理を複数の演算処理手段によって並行して実行することも可能であるが、同一の処理を複数の演算処理手段が冗長的に実行し、その演算処理結果を比較することによりいずれかの演算処理手段が故障状態に陥ったことを検出し、演算処理結果の信頼性を高めることもできる。
【０００３】
特に、プラント等の施設や車両・船舶・航空機等の移動体を制御する制御装置として用いられる場合に、演算処理結果の信頼性に対する要求が高くなるため、このような冗長的処理の必要性が高いものとなっている。また、このような演算処理結果の信頼性に対する要求は、コンピュータの用途が拡大しつつある昨今では、一般的な家庭用のパーソナルコンピュータにおいても同様に生じるものである。
【０００４】
複数の演算処理手段による演算処理結果を比較する技術として、以下のものが開示されている。
【０００５】
特許文献１には、複数のマイクロプロセッサを同期運転させ、各マイクロプロセッサのバス出力を符号圧縮し、圧縮データ同士を比較することによって動作不一致の故障を検出する故障検出装置について記載されている。
【０００６】
特許文献２には、複数のＣＰＵが同一の処理を行い、各ＣＰＵの出力データにチェックコードを付加してメモリに出力し、メモリに出力された複数の出力データのうちチェックコードが一致したものを抽出し、抽出した出力データ全体について比較照合を行ってＣＰＵ出力の誤りを検出する照合システムについて記載されている。
【０００７】
これらの文献に記載された技術は、比較照合データの量、又は転送量を低減することを目的の一つとしている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平５−３２４３９１号公報
【特許文献２】特開２０１０−９３２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記従来の特許文献１に記載の装置では、圧縮データ同士を比較することにより、比較照合を誤る可能性が生じる。
【００１０】
符号化したデータにおいて比較照合を誤る可能性については、例えばインターネットにおける「フリー百科事典『ウィキペディア（Wikipedia）：ハッシュ関数』」等で指摘されている。ハッシュ関数とは、データを符号化する手法の一つであるが、上記インターネットサイトでは、同じハッシュ値を与える二つの入力値を求めることが困難となる可能性について指摘している。
【００１１】
このような現象は、符号化された後のデータのビット数（符号化ビット数）が小さい場合に生じ易いものとなる。圧縮データについても同様に、データを圧縮すればするほど元データの相違点が埋没してしまい、故障を見過ごす可能性が高くなってしまう。上記特許文献１では、このような課題が存在するにも拘わらず、どこまで圧縮を行うかについての考慮がなされていない。
【００１２】
また、上記特許文献２に記載のシステムでは、ＣＰＵからメモリに出力するデータ量自体は低減されず、ＣＰＵからメモリへの伝送負荷や伝送時間を低減することはできない。更に、チェックコードが一致したものを抽出した後は、出力データ全体について比較照合を行うため、比較照合データの量を低減できる訳ではない。
【００１３】
本発明はこのような課題を解決するためのものであり、自己診断のためのデータ伝送量やデータ比較量の低減と、信頼性の維持を両立させた情報処理装置、及びその自己診断方法を提供することを、主たる目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するための本発明の第１の態様は、
通信接続された複数の演算処理手段を備え、該複数の演算処理手段が同一の演算処理を同期して実行可能な情報処理装置であって、
複数の符号化手法から、エラー確率が設定値未満である一の符号化手法を選択する符号化手法選択手段と、
前記複数の演算処理手段が同一の演算処理を同期して実行する際に、前記複数の演算処理手段による演算処理結果を含む情報を、前記符号化手法選択手段によって選択された符号化手法によって符号化する符号化手段と、
前記複数の符号化手段によって符号化された情報を比較して、前記複数の演算処理手段が正常に作動しているかどうかを判定する判定手段と、
を備える情報処理装置である。
【００１５】
この本発明の第１の態様によれば、複数の符号化手法から、エラー確率が設定値未満である一の符号化手法を選択する符号化手法選択手段を備え、複数の演算処理手段が同一の演算処理を同期して実行する際に、複数の演算処理手段による演算処理結果を含む情報を符号化手法選択手段によって選択された符号化手法によって符号化するため、自己診断のためのデータ伝送量やデータ比較量の低減と、信頼性の維持を両立させることができる。
【００１６】
本発明の第１の態様において、
前記符号化手法選択手段は、前記エラー確率が設定値未満である符号化手法のうち、最も符号化ビット数が小さい符号化手法を選択する手段であるものとしてよい。
【００１７】
こうすれば、自己診断のためのデータ伝送量やデータ比較量を、信頼性が維持される範囲内で、最低限に留めることができる。
【００１８】
また、本発明の第１の態様において、
前記設定値は、例えば、パラメータとして設定されたＣＰＵ要求安全度に符号エラー比率を乗算し、更に前記判定手段による時間あたりの比較回数を除算した値として算出される。
【００１９】
また、本発明の第１の態様において、
前記符号化手法選択手段は、前記設定値の対数値に基づいて最小符号化ビット数を算出し、符号化ビット数が前記算出した最小符号化ビット数を超える符号化手法を選択することにより、エラー確率が設定値未満である符号化手法を選択する手段であるものとしてよい。
【００２０】
本発明の第２の態様は、
通信接続された複数の演算処理手段を備え、該複数の演算処理手段が同一の演算処理を同期して実行可能な情報処理装置の自己診断方法であって、
複数の符号化手法から、エラー確率が設定値未満である一の符号化手法を選択する符号化手法選択ステップと、
前記複数の演算処理手段が同一の演算処理を同期して実行する際に、前記複数の演算処理手段による演算処理結果を含む情報を、前記符号化手法選択手段によって選択された符号化手法によって符号化する符号化ステップと、
前記符号化ステップにおいて符号化された情報を比較して、前記複数の演算処理手段が正常に作動しているかどうかを判定する判定ステップと、
を備える情報処理装置の自己診断方法である。
【００２１】
本発明の第２の態様によれば、複数の符号化手法から、エラー確率が設定値未満である一の符号化手法を選択する符号化手法選択ステップを備え、複数の演算処理手段が同一の演算処理を同期して実行する際に、複数の演算処理手段による演算処理結果を含む情報を、符号化手法選択ステップにおいて選択された符号化手法によって符号化するため、自己診断のためのデータ伝送量やデータ比較量の低減と、信頼性の維持を両立させることができる。
【００２２】
本発明の第２の態様において、
前記符号化手法選択ステップにおいて、前記エラー確率が設定値未満である符号化手法のうち、最も符号化ビット数が小さい符号化手法を選択することを特徴とするものとしてよい。
【００２３】
こうすれば、自己診断のためのデータ伝送量やデータ比較量を、信頼性が維持される範囲内で、最低限に留めることができる。
【００２４】
また、本発明の第２の態様において、
前記設定値を、パラメータとして設定されたＣＰＵ要求安全度に符号エラー比率を乗算し、更に前記判定ステップによる時間あたりの比較回数を除算した値として算出する設定値算出ステップを更に備えるものとしてよい。
【００２５】
また、本発明の第２の態様において、
前記符号化手法選択ステップにおいて、前記設定値の対数値に基づいて最小符号化ビット数を算出し、該算出した最小符号化ビット数よりも符号化ビット数が大きい符号化手法を選択することにより、エラー確率が設定値未満である符号化手法を選択することを特徴とするものとしてよい。
【発明の効果】
【００２６】
本発明によれば、自己診断のためのデータ伝送量やデータ比較量の低減と、信頼性の維持を両立させた情報処理装置、及びその自己診断方法を提供することができる。
【図面の簡単な説明】
【００２７】
【図１】本発明の一実施例に係る情報処理装置１のシステム構成例である。
【図２】符号エラー確率テーブル２０＃Ａ、２０＃Ｂを示す図である。
【図３】管理テーブル３０＃Ａ、３０＃Ｂを示す図である。
【図４】各機能ブロックによって繰り返し実行される処理の順序等を示すタイムチャートである。
【図５】符号化手法選択部２５＃Ａ、２５＃Ｂにより実行される符号化手法選択処理の流れを示すフローチャートである。
【図６】ＣＰＵ演算データ収集処理部３５＃Ａ、３５＃Ｂにより実行されるＣＰＵ演算データ収集処理の流れを示すフローチャートである。
【図７】ＣＰＵ演算データ収集処理部３５＃Ａ、３５＃Ｂにより演算データ格納部１５＃Ａ、１５＃Ｂから読み込まれ、連続データとして管理されるデータを模式的に示す図である。
【図８】符号化処理部４０＃Ａ、４０＃Ｂにより実行される符号化処理の流れを示すフローチャートである。
【図９】伝送処理部４５＃Ａ、４５＃Ｂにより実行される伝送処理の流れを示すフローチャートである。
【図１０】比較・判定処理部５５＃Ａ、５５＃Ｂにより実行される比較・判定処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００２８】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【００２９】
以下、図面を参照し、本発明の一実施例に係る情報処理装置、及びその自己診断方法について説明する。本発明の情報処理装置は、例えばマルチ・プロセッサ装置やマルチコア・プロセッサ等、複数の演算処理手段を備えるコンピュータを基本構成とする。
【００３０】
複数の演算処理手段は、同一の演算処理を同期して実行することが可能となっている。そして、本発明の情報処理装置では、演算結果を含むデータを符号化して送信し合い、符号化データを比較することによって演算処理手段の故障を検出可能となっている。以下、係る故障検出を「自己診断」と称する。
【００３１】
［基本構成］
図１は、本発明の一実施例に係る情報処理装置１のシステム構成例である。情報処理装置１は、ＣＰＵ＃Ａと、ＣＰＵ＃Ｂと、を備える。ＣＰＵ＃Ａ及びＣＰＵ＃Ｂには同一のクロック信号が供給されており、同一の演算処理を同期して実行可能となっている。クロック信号の発生装置はいずれかのＣＰＵに属していてもよい。また、ＣＰＵ＃ＡとＣＰＵ＃Ｂは通信接続されているが、有線・無線の別、シリアル通信・多重バスの別、周波数帯域、変調方式等の通信態様について特段の制限は存在しない。
【００３２】
ＣＰＵ＃Ａは、演算処理部１０＃Ａと、演算データ格納部１５＃Ａと、符号エラー確率テーブル２０＃Ａと、符号化手法選択部２５＃Ａと、管理テーブル３０＃Ａと、ＣＰＵ演算データ収集処理部３５＃Ａと、符号化処理部４０＃Ａと、伝送処理部４５＃Ａと、符号化データ格納部５０＃Ａと、比較・判定処理部５５＃Ａと、を備える。
【００３３】
同様に、ＣＰＵ＃Ｂは、演算処理部１０＃Ｂと、演算データ格納部１５＃Ｂと、符号エラー確率テーブル２０＃Ｂと、符号化手法選択部２５＃Ｂと、管理テーブル３０＃Ｂと、ＣＰＵ演算データ収集処理部３５＃Ｂと、符号化処理部４０＃Ｂと、伝送処理部４５＃Ｂと、符号化データ格納部５０＃Ｂと、比較・判定処理部５５＃Ｂと、を備える。
【００３４】
なお、同一の数字が付された機能ブロックは、いずれのＣＰＵに属するかを示す「＃Ａ」、「＃Ｂ」の別に拘わらず、基本的に同じ機能を有している。
【００３５】
ＣＰＵ＃Ａ、＃Ｂが有する機能ブロックのうち、演算データ格納部１５＃Ａ、１５＃Ｂ、符号化エラーテーブル２０＃Ａ、２０＃Ｂ、管理テーブル３０＃Ａ、３０＃Ｂ、及び符号化データ格納部５０＃Ａ、５０＃Ｂは、図示しないＲＡＭ（Random  Access  Memory）やフラッシュメモリ、レジスタ等に構築された記憶領域である。
【００３６】
演算処理部１０＃Ａ、１０＃Ｂは、例えばＡＬＵ（Arithmetic  Logic  Unit）やＦＰＧＡ（Field  Programmable  Gate  Array）等を含む。演算処理部１０＃Ａ、１０＃Ｂは、図示しないＯＳ（Operating  System）の制御によってプログラムメモリからフェッチされる命令に従い、各種演算処理を実行する。この命令は、情報処理装置１が本来実行すべきタスクのための命令であり、自己診断に係る命令とは異なる。前述のように、演算処理部１０＃Ａ、１０＃Ｂは、同一の演算処理を同期して実行する。
【００３７】
ここで、同一の演算処理とは、ダイバーシティ（多様化）を考慮し、入力と出力の関係は同じであるが、アルゴリズム、プログラム言語、コンパイラ、コンパイラのパラメータ等が異なる演算処理も含まれる。
【００３８】
演算処理部１０＃Ａ、１０＃Ｂの演算対象値や演算パラメータ、演算結果（以下、これらを必要に応じて入力状態、ステータスデータ、出力状態と称する）は、演算データ格納部１５＃Ａ、１５＃Ｂに格納される。
【００３９】
［符号化手法選択のためのパラメータ］
符号エラー確率テーブル２０＃Ａ、２０＃Ｂは、要求符号エラー確率テーブルと、符号化演算関数エラー確率テーブルとを含む。図２は、符号エラー確率テーブル２０＃Ａ、２０＃Ｂを示す図である。
【００４０】
要求符号エラー確率テーブルには、ＣＰＵ要求安全度と、符号エラー比率と、一秒あたりの比較回数とが格納される。これらのパラメータは、要求符号エラー確率（元データが一致しないにも拘わらず、符号化によって同一データとなり、故障を見過ごす確率の要求値）を算出するためのパラメータ群である。なお、この要求符号エラー確率が、特許請求の範囲における「設定値」に相当する。
【００４１】
各パラメータは、例えば情報処理装置１の起動時にＥＥＰＲＯＭ（Electrically  Erasable  and  Programmable  Read  Only  Memory）やＲＯＭ（Read  Only  Memory）等から読み込まれて要求符号エラー確率テーブルに格納される。なお、符号エラー確率テーブル２０＃Ａ、２０＃Ｂ自体がＥＥＰＲＯＭやＲＯＭ上の記憶領域であっても構わない。
【００４２】
また、要求符号エラー確率テーブルに格納されるパラメータは、ユーザーによって変更可能としてよい。
【００４３】
図２の例では、ＣＰＵ要求安全度は１０のマイナス８乗と例示しているが、係る数値はＣＰＵシステムの安全度水準における「ＳＩＬ（Safety  Integrity  Level）３」に対応している。この数値は要求される安全度水準が比較的高い例であり、要求される安全度水準が低い場合には、より大きい値（例えば１０のマイナス６乗など）が設定されてもよい。要求される安全度水準が高い場合とは、例えばプラント等の施設や移動体等の制御装置として用いられる場合であり、要求される安全度水準が低い場合とは、例えば家庭用のパーソナルコンピュータやゲーム機として用いられる場合である。また、原子力プラント等を制御する制御装置として用いられる場合、更に要求される安全度水準を高くしてもよい（ＣＰＵ要求安全度の値はより小さい値となる）。このように、本実施例の情報処理装置１では、用途に応じた値に要求される安全度水準を設定することができるため、後述する符号化処理の際に最適な符号化手法を選択することができる。
【００４４】
なお、ＣＰＵシステムの安全度水準については、例えば「IEC61508  FUNCTIONAL  SAFETY  OF  ELECTRICAL/ELECTRONIC/PROGRAMMABLE  ELECTRONIC  SAFETY-RELATED  SYSTEMS」に記載されている。
【００４５】
符号エラー比率とは、符号化により照合エラーが発生する確率の、ＣＰＵ要求安全度に示す割合である。また、一秒あたりの比較回数とは、符号化データを比較する一秒あたりの回数である。
【００４６】
一方、符号化演算関数エラー確率テーブルは、本実施例の情報処理装置１が選択し得る符号化演算関数と、それぞれの符号化後のビット数（以下、「符号化ビット数」と称する）、想定されるエラー確率を規定している。図２に示すように、各符号化演算関数を選択した場合に想定されるエラー確率は、２の（マイナス符号化ビット数）乗となる。係る点については、例えば「Val  Henson,  Richard  Henderson,  ”Guidelines  for  Using  Compare-by-hash”,  Originally  Appeared  in  HotOS  2003(2003)」に記載されている。
【００４７】
本実施例では、符号化演算関数として、ＨＭＡＣ（Keyed-Hashing  for  Message  Authentication  code）、ＭＤ４、ＳＨＡ１（Secure  Hash  Algorithm1）を選択できるものとした。これらは、いずれもハッシュ関数を利用した演算関数である。このように符号化演算関数エラー確率テーブルに登録される符号化演算関数は、符号化ビット数や演算速度、使用メモリ量等を考慮して選択される。
【００４８】
なお、いずれかの符号化演算関数を選択することが、特許請求の範囲における「符号化手法を選択する」ことに相当する。
【００４９】
［符号化手法の選択］
符号化手法選択部２５＃Ａ、２５＃Ｂは、それぞれ、符号エラー確率テーブル２０＃Ａ、２０＃Ｂに格納されたパラメータに基づいて符号化演算関数エラー確率テーブルから最適な符号化演算関数を選択し、選択した符号化演算関数を管理テーブル３０＃Ａ、３０＃Ｂの符号化演算関数テーブルに格納する。以下、その選択手法について説明する。
【００５０】
符号化手法選択部２５＃Ａ、２５＃Ｂは、次式（１）に基づいて最小符号化ビット数を算出する。そして、最小符号化ビット数を超える符号化ビット数を有する符号化演算関数のうち、最も符号化ビット数が小さい符号化演算関数を選択する。なお、次式（１）において、「Ｌｏｇ」は例えば常用対数である。
【００５１】
（最小符号化ビット数）＝−Ｌｏｇ（要求符号エラー確率）÷Ｌｏｇ２
＝−Ｌｏｇ｛（ＣＰＵ要求安全度）×（符号エラー比率）｝÷｛（一秒あたりの比較回数）×３６００｝÷Ｌｏｇ２  …（１）
【００５２】
これによって、想定されるエラー確率が要求符号エラー確率未満である符号化演算関数のうち、最も符号化ビット数が小さい符号化演算関数が選択されることになる（図２、及び次式（２）、（３）参照）。式（３）は上式（１）の変形である。図２や式（２）、（３）から判るように、符号化ビット数が最小符号化ビット数を超える場合、想定されるエラー確率は要求符号エラー確率よりも小さくなるからである。
【００５３】
（想定されるエラー確率）＝２＾｛−（符号化ビット数）｝  …（２）
（要求符号エラー確率）＝２＾｛−（最小符号化ビット数）｝  …（３）
【００５４】
このように、要求されるエラー確率を満たす（想定されるエラー確率が要求符号化エラー確率よりも小さい）符号化演算関数を選択することによって、演算処理の信頼性が確保される。更に、要求されるエラー確率を満たす符号化演算関数の中で、符号化ビット数が最小のものを選択することによって、後述するＣＰＵ間のデータ伝送量やデータ比較量を最小限に留めることができる。
【００５５】
なお、上式（１）に図２の値を当てはめると、最小符号化ビット数は次式（４）のように算出される。
【００５６】
（最小符号化ビット数）＝−Ｌｏｇ｛（１０＾−８）×（１０＾−３）÷（１０×３６００）｝÷Ｌｏｇ２
≒１６÷０．３
≒５４  …（４）
【００５７】
この場合、符号化ビット数が５４ビットを超える符号化演算関数を選択すれば、想定されるエラー確率が要求符号化エラー確率よりも小さくなる。図２の例では、いずれの符号化演算関数も符号化ビット数が５４ビットを超えているため、符号化ビット数が最小のＨＭＡＣを選択することになる。
【００５８】
［演算データ収集〜符号化〜比較・判定処理］
ＣＰＵ演算データ収集処理部３５＃Ａ、３５＃Ｂは、管理テーブル３０＃Ａ、３０＃Ｂに従って、演算データ格納部１５＃Ａ、１５＃Ｂに格納された演算処理部１０＃Ａ、１０＃Ｂの入力状態、ステータスデータ、出力状態を収集し、符号化処理部４０＃Ａ、４０＃Ｂに出力する（間に受け渡し用の記憶手段を挟んでよい）。
【００５９】
図３は、管理テーブル３０＃Ａ、３０＃Ｂを示す図である。図示するように、管理テーブル３０＃Ａ、３０＃Ｂには、演算処理部１０＃Ａ、１０＃Ｂの入力状態、ステータスデータ、出力状態が格納される演算データ格納部１５＃Ａ、１５＃Ｂのアドレス及びデータバイト数が規定されたＣＰＵ演算データ収集テーブルと、符号化手法選択部２５＃Ａ、２５＃Ｂにより選択された符号化演算関数（又はその識別子）が格納される符号化演算関数テーブルとが含まれる。
【００６０】
符号化処理部４０＃Ａ、４０＃Ｂは、管理テーブル３０＃Ａ、３０＃Ｂの符号化演算関数テーブルに格納された符号化演算関数を用いて、演算処理部１０＃Ａ、１０＃Ｂの入力状態、ステータスデータ、出力状態を符号化する。符号化されたデータ（以下、符号化データと称する）は、符号化データ格納部５０＃Ａ、５０＃Ｂに格納される他、伝送処理部４５＃Ａ、４５＃Ｂに出力される。符号化関数を用いた符号化処理の詳細については、種々の文献が公知となっているため、説明を省略する。
【００６１】
伝送処理部４５＃Ａ、４５＃Ｂは、例えば安全通信規格であるIEC61784-3やIEC622
80等の要件に従って、他方のＣＰＵに符号化データを送信する。また、伝送処理部４５＃Ａ、４５＃Ｂは、他方のＣＰＵから受信した符号化データを符号化データ格納部５０＃Ａ、５０＃Ｂに格納する。なお、通信データの誤り率を考慮し、CRC等の安全コードを必要に応じて付加する。
【００６２】
比較・判定処理部５５＃Ａ、５５＃Ｂは、符号化データ格納部５０＃Ａ、５０＃Ｂに格納された自ＣＰＵによる符号化データと、他方のＣＰＵから受信した符号化データを比較し、いずれかのＣＰＵ或いはその周辺機器が故障状態にあるか否かを判定する。本実施例では二つのＣＰＵによって処理を行っているため、故障ＣＰＵの特定は困難であり、故障を検出した場合は双方のＣＰＵをリセット又は停止することとなるが、三つ以上のＣＰＵを備える場合は多数決等の処理を行うことにより、故障ＣＰＵの特定まで行うことが可能となる。
【００６３】
［タイムチャート］
図４は、上記説明した各機能ブロックによって繰り返し実行される処理の順序等を示すタイムチャートである。本図は、横軸に時間をとっている。図示するように、まず、ＣＰＵ＃Ａ、＃Ｂは、演算処理部１０＃Ａ、１０＃Ｂによって入力、演算、出力処理を同期して実行する。係る処理は、情報処理装置１が本来のタスクとして実行するものである（制御装置として用いられる場合、制御演算等）。
【００６４】
次に、ＣＰＵ演算データ収集処理部３５＃Ａ、３５＃ＢがＣＰＵ演算データ収集処理を行い（図中、（ａ））、符号化処理部４０＃Ａ、４０＃Ｂが符号化処理を行い（図中、（ｂ））、伝送処理部４５＃Ａ、４５＃Ｂが伝送処理を行い（図中、（ｃ））、最後に比較・判定処理部５５＃Ａ、５５＃Ｂが、比較・判定処理を行う（図中、（ｄ））。
【００６５】
これらが終了すると、再度、演算処理部１０＃Ａ、１０＃Ｂによる入力、演算、出力処理が開始され、一定の処理周期（例えば１００［ｍｓ］程度）をもって繰り返し、入力、演算、出力処理〜比較・判定処理が実行される。この処理周期は、例えばカウントレジスタ７０がクロック信号の立ち上がりをカウントすることによって制御される。
【００６６】
［自己診断に係る処理フロー］
以下、各機能ブロックにより実行される処理の流れについて説明する。
【００６７】
図５は、符号化手法選択部２５＃Ａ、２５＃Ｂにより実行される符号化手法選択処理の流れを示すフローチャートである。本フローは、情報処理装置１の起動時、又は符号エラー確率テーブル２０＃Ａ、２０＃Ｂの要求符号エラー確率テーブルに格納されたパラメータが変更された時に開始される。なお、要求符号エラー確率テーブルに格納されたパラメータが変更されたことは、変更が行われた際にソフトウエア割り込みによって通知されるように設計されてもよいし、符号化手法選択部２５＃Ａ、２５＃Ｂが適切な周期でポーリングを行って検知してもよい。
【００６８】
まず、符号化手法選択部２５＃Ａ、２５＃Ｂは、要求符号エラー確率テーブルに格納されたパラメータを読み込む（Ｓ１００）。
【００６９】
次に、前述のように最小符号化ビット数を算出し（Ｓ１０２）、符号化ビット数が最小符号化ビット数を超える符号化演算関数のうち、最も符号化ビット数が小さい符号化演算関数を選択する（Ｓ１０４）。
【００７０】
そして、選択した符号化演算関数を管理テーブル３０＃Ａ、３０＃Ｂの符号化演算関数テーブルに格納する（Ｓ１０６）。
【００７１】
図６は、ＣＰＵ演算データ収集処理部３５＃Ａ、３５＃Ｂにより実行されるＣＰＵ演算データ収集処理の流れを示すフローチャートである。本フローは、前述したタイムチャートで説明したように、演算処理部１０＃Ａ、１０＃Ｂによる入力、演算、出力処理が終了したタイミングで開始される。
【００７２】
まず、ＣＰＵ演算データ収集処理部３５＃Ａ、３５＃Ｂは、管理テーブル３０＃Ａ、３０＃ＢのＣＰＵ演算データ収集テーブルから、演算データ格納部１５＃Ａ、１５＃Ｂのアドレス及びデータバイト数を読み込む（Ｓ２００）。
【００７３】
そして、演算データ格納部１５＃Ａ、１５＃Ｂに格納された演算処理部１０＃Ａ、１０＃Ｂの入力状態、ステータスデータ、出力状態を読み込んで、連続データとして管理する（Ｓ２０２）。管理されたデータは、前述のように、符号化処理部４０＃Ａ、４０＃Ｂに出力されることになる。
【００７４】
図７は、ＣＰＵ演算データ収集処理部３５＃Ａ、３５＃Ｂにより演算データ格納部１５＃Ａ、１５＃Ｂから読み込まれ、連続データとして管理されるデータを模式的に示す図である。このような連続データに対して符号化処理を行うことにより、符号化処理に要する時間の短縮を図ることができる。
【００７５】
図８は、符号化処理部４０＃Ａ、４０＃Ｂにより実行される符号化処理の流れを示すフローチャートである。本フローは、ＣＰＵ演算データ収集処理部３５＃Ａ、３５＃ＢによるＣＰＵ演算データ収集処理が終了したタイミングで開始される。
【００７６】
まず、符号化処理部４０＃Ａ、４０＃Ｂは、管理テーブル３０＃Ａ、３０＃Ｂの符号化演算関数テーブルから符号化演算関数を読み込む（Ｓ３００）。
【００７７】
次に、読み込んだ符号化演算関数を用いて、ＣＰＵ演算データ収集処理部３５＃Ａ、３５＃Ｂから入力された連続データを符号化する（Ｓ３０２）。
【００７８】
そして、符号化データを他のＣＰＵに送信するように伝送処理部４５＃Ａ、４５＃Ｂに指示し（Ｓ３０４）、符号化データ格納部５０＃Ａ、５０＃Ｂに格納する（Ｓ３０６）。
【００７９】
図９は、伝送処理部４５＃Ａ、４５＃Ｂにより実行される伝送処理の流れを示すフローチャートである。本フローは、符号化処理部４０＃Ａ、４０＃Ｂによる符号化処理が終了したタイミングで開始される。
【００８０】
まず、伝送処理部４５＃Ａ、４５＃Ｂは、自ＣＰＵで符号化した符号化データから伝送仕様に合致する伝文を作成し、他のＣＰＵに送信する（Ｓ４００）。
【００８１】
次に、他方のＣＰＵから符号化データを受信する（Ｓ４０２）。そして、受信した符号化データを符号化データ格納部５０＃Ａ、５０＃Ｂに格納する（Ｓ４０４）。この際に、伝文や伝送において異常が検知された場合には、異常データを符号化データ格納部５０＃Ａ、５０＃Ｂに格納する。
【００８２】
なお、図９のフローでは一律、送信→受信の順としたが、実際には、一方のＣＰＵでは送信→受信の順で、他方のＣＰＵでは受信→送信の順で処理が行われることになる。
【００８３】
図１０は、比較・判定処理部５５＃Ａ、５５＃Ｂにより実行される比較・判定処理の流れを示すフローチャートである。本フローは、伝送処理部４５＃Ａ、４５＃Ｂによる伝送処理が終了したタイミングで開始される。
【００８４】
まず、比較・判定処理部５５＃Ａ、５５＃Ｂは、符号化データ格納部５０＃Ａ、５０＃Ｂに格納された、自ＣＰＵによる符号化データと、他方のＣＰＵから受信した符号化データを読み込む（Ｓ５００）。
【００８５】
次に、読み込んだ符号化データを比較し、これらが一致しているか否かを判定する（Ｓ５０２）。符号化データが一致している場合は、何も処理を行わずに本フローを終了する。
【００８６】
一方、符号化データが一致していない場合は、前回から連続して不一致と判定されたか否かを判定する（Ｓ５０４）。
【００８７】
前回から連続して不一致と判定されなかった場合は、ＣＰＵ軽故障処理を行い、不一致発生を示すフラグ等を符号化データ格納部５０＃Ａ、５０＃Ｂ等に書き込む（Ｓ５０６）。ここで、ＣＰＵ軽故障処理とは、ＣＰＵのリセット等、各パラメータの再ダウンロード等を含む。係る処理は、ソフトエラー等の一過性の故障に対するものである。すなわち、単発的に符号化データが不一致と判定された場合には、ソフトウエア上のエラー処理に留め、情報処理装置１が行っているタスクを継続する。
【００８８】
前回から連続して不一致と判定された場合は、ＣＰＵ重故障処理を行い、符号化データ格納部５０＃Ａ、５０＃Ｂ等に書き込んだ不一致発生を示すフラグ等を消去する（Ｓ５０８）。ここで、ＣＰＵ重故障処理とは、情報処理装置のシャットダウン、その後の管理者権限以外のアクセス禁止等を含む。係る処理は、伝送路の断線、ＩＣの故障、ＲＯＭデータの破損、ＣＰＵ自体の故障等、修復困難な故障に対するものである。すなわち、連続して符号化データが不一致と判定された場合には、安全面を考慮して、情報処理装置１が行っているタスクを停止する。このような段階的なエラー処理を行うことにより、故障の程度に応じた適切な処理を行うことができる。
【００８９】
以上説明した本実施例の情報処理装置１によれば、想定されるエラー確率が要求符号化エラー確率よりも小さい符号化演算関数を選択することにより、演算処理の信頼性が確保され、要求されるエラー確率を満たす符号化演算関数の中で符号化ビット数が最小のものを選択することにより、ＣＰＵ間のデータ伝送量やデータ比較量を最小限に留めることができる。
【００９０】
この結果、自己診断のためのデータ伝送量やデータ比較量の低減と、信頼性の維持を両立させることができる。
【００９１】
自己診断のためのデータ伝送量を低減すると、例えばＣＰＵ間の通信にRS232Cによるシリアル通信等、安価で低速度の通信路を採用した場合に、通信時間がネックとなるシステムの性能低下を防止することができる。
【００９２】
また、本実施例の情報処理装置１によれば、段階的なエラー処理を行うことにより、故障の程度に応じた適切な処理を行うことができる。
【００９３】
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【００９４】
例えば、実施例では情報処理装置１が二個のＣＰＵを備えるものとしたが、三個以上のＣＰＵを備えるものとしてもよい。この場合、多数決によって故障ＣＰＵを特定することができる。
【００９５】
また、自己診断に係る監視専用のＣＰＵ（情報処理装置１が三個以上のＣＰＵを備える場合）や論理回路等を設けてもよい。
【産業上の利用可能性】
【００９６】
本発明は、コンピュータ、及びその周辺機器の製造業等に利用可能である。
【符号の説明】
【００９７】
１                  情報処理装置
１０＃Ａ、１０＃Ｂ  演算処理部
１５＃Ａ、１５＃Ｂ  演算データ格納部
２０＃Ａ、２０＃Ｂ  符号エラー確率テーブル
２５＃Ａ、２５＃Ｂ  符号化手法選択部
３０＃Ａ、３０＃Ｂ  管理テーブル
３５＃Ａ、３５＃Ｂ  ＣＰＵ演算データ収集処理部
４０＃Ａ、４０＃Ｂ  符号化処理部
４５＃Ａ、４５＃Ｂ  伝送処理部
５０＃Ａ、５０＃Ｂ  符号化データ格納部
５５＃Ａ、５５＃Ｂ  比較・判定処理部
７０                カウントレジスタ
＃Ａ、＃Ｂ          ＣＰＵ
【図１】
0005545067.tif 000002
【図２】
0005545067.tif 000003
【図３】
0005545067.tif 000004
【図４】
0005545067.tif 000005
【図５】
0005545067.tif 000006
【図６】
0005545067.tif 000007
【図７】
0005545067.tif 000008
【図８】
0005545067.tif 000009
【図９】
0005545067.tif 000010
【図１０】
0005545067.tif 000011