(57)【特許請求の範囲】
【請求項１】
複数のＣＰＵを有するコンピュータシステムにおけるＣＰＵの異常検出方法であって、
各ＣＰＵそれぞれに所定の間隔で順次入力信号を取得させる第１のステップと、
各ＣＰＵそれぞれに他のＣＰＵが算出した入力信号に対する最新の演算値を取得させる第２のステップと、
各ＣＰＵそれぞれに、前記第２のステップの実行により他のＣＰＵが算出した前記最新の演算値を取得させた後に、入力信号に対する演算値を算出させる第３のステップと、
各ＣＰＵそれぞれに、算出した最新の所定数の各演算値を、他のＣＰＵが算出した前記最新の演算値と大小比較させる第４のステップと、
前記第４のステップによる大小比較の結果に基づきＣＰＵの異常を検出する第５のステップとを備えることを特徴とするＣＰＵの異常検出方法。
【請求項２】
請求項１記載のＣＰＵの異常検出方法であって、
前記第４のステップにおける最新の所定数の各演算値は、最新の３つの演算値であることを特徴とするＣＰＵの異常検出方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＰＵの異常検出方法に係り、特に、複数のＣＰＵを有するコンピュータシステムにおけるＣＰＵの異常検出方法に関する。
【０００２】
【従来の技術】
従来より、内部に複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）  を設けて動作信頼性を向上させたコンピュータシステムが広く知られている。このようなコンピュータシステムでは、複数のＣＰＵの演算結果を比較することにより、ＣＰＵの故障等の有無が検出される。例えば、特開平５−３２４３９１号では、バス比較器によってＣＰＵの故障の有無を検出する方法が開示されている。
【０００３】
このバス比較器は、複数のＣＰＵ毎に対応して設けられた圧縮処理部と比較器とを有している。そして、それぞれの圧縮処理部は、対応するＣＰＵのビット毎のデータ圧縮部と直列転送部を有している。このような構成において、ＣＰＵの出力データは、バス比較器内のデータ圧縮部によって符号圧縮される。符号圧縮されたデータは、直列転送部によって直列に転送された後に比較器側に出力される。比較器は、各圧縮処理部から出力された圧縮データを順次比較して、不一致のデータがある場合にＣＰＵの故障等を検出する。
【０００４】
このような故障検出方法によれば、ＣＰＵの出力データがデータ圧縮部によって圧縮されるので、ＣＰＵのバスのビット数が増加しても対応することができる。また、ＣＰＵの出力データが圧縮されて比較結果の出力周波数も低くなるので、フェールセーフを確保する分周回路等を設ける必要もなく、バス比較器等の低コスト化が図られる。
【０００５】
【発明が解決しようとする課題】
しかし、上記従来例のような方法でＣＰＵの異常を検出するには、複数のＣＰＵの演算タイミングや外部センサ等から複数のＣＰＵに与えられるデータの入力タイミング等の同期をとる必要がある。このため、同期信号発生回路から各ＣＰＵに同期信号を与える必要があった。
【０００６】
また、ＣＰＵの同期をとるためにＣＰＵが各処理毎に要する演算時間等を厳密に見積もる必要があった。更に、複数のＣＰＵの同期をとるための同期信号がうまく働かず、ＣＰＵの同期がとれない場合の対策を準備しておく必要があった。
上記従来例において、完全な同期がとられていない複数のＣＰＵが演算を行なうとそれぞれの演算結果に差異が生じ、互いの演算結果の比較の結果、正常なＣＰＵでも異常であると誤認識されたり、異常なＣＰＵでも正常であると誤認識される可能性がある。
【０００７】
本発明は、上記の点に鑑みてなされたものであり、複数のＣＰＵを有するコンピュータシステムにおいて、複数ＣＰＵの同期をとることなく、ＣＰＵの異常を容易に検出する方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記目的は、請求項１に記載する如く、複数のＣＰＵを有するコンピュータシステムにおけるＣＰＵの異常検出方法であって、
各ＣＰＵそれぞれに所定の間隔で順次入力信号を取得させる第１のステップと、
各ＣＰＵそれぞれに他のＣＰＵが算出した入力信号に対する最新の演算値を取得させる第２のステップと、
各ＣＰＵそれぞれに、前記第２のステップの実行により他のＣＰＵが算出した前記最新の演算値を取得させた後に、入力信号に対する演算値を算出させる第３のステップと、
各ＣＰＵそれぞれに、算出した最新の所定数の各演算値を、他のＣＰＵが算出した前記最新の演算値と大小比較させる第４のステップと、
前記第４のステップによる大小比較の結果に基づきＣＰＵの異常を検出する第５のステップとを備えるＣＰＵの異常検出方法により達成される。
【０００９】
このようなＣＰＵの異常検出方法では、複数のＣＰＵが互いの演算値を比較し合うことにより、複数のＣＰＵの同期をとることなくＣＰＵの異常が容易に検出される。また、本発明は、他のＣＰＵの最新の演算値を取得してから、各ＣＰＵが自己の演算値を算出する構成であるため、各ＣＰＵにとって、取得した他のＣＰＵの最新の演算値は、常に自己の最新の演算値よりも先に算出されたものとなる。このため、各ＣＰＵは、既に算出した最新の所定数の演算値と他のＣＰＵが算出した最新の演算値との誤差に基づき、ＣＰＵの異常の有無を検出すればよく、自己の最新の演算値に続いて算出する演算値を比較時に考慮する必要がない。従って、比較時の誤差の許容範囲を小さく設定することができ、高精度なＣＰＵの異常検出が実現する。
【００１０】
また、上記目的は、請求項２に記載する如く、請求項１記載のＣＰＵの異常検出方法であって、
前記第４のステップにおける最新の所定数の各演算値は、最新の３つの演算値であるＣＰＵの異常検出方法により達成される。
各ＣＰＵが他のＣＰＵが算出した最新の演算値を取得するまでには、所定の微小な時間を要するため、各ＣＰＵが取得した他のＣＰＵの最新の演算値は、自己の前々回の演算処理時から最新の演算処理時の間に算出されたものであると限定できる。本発明によると、相手側ＣＰＵの最新の演算値と比較する自己ＣＰＵの演算値が最新の３つの演算値に限定されるので、比較時の誤差の許容範囲をより小さな値に設定することができる。誤差許容範囲をより小さな値に設定することで、ＣＰＵの異常の検出がより高精度に行なわれる。
【００１１】
【発明の実施の形態】
以下、図１〜図４を用いて本発明の実施の形態について説明する。
図１は、本発明の異常検出方法によってＣＰＵの異常を検出する制御用コンピュータ１０の構成図である。この制御用コンピュータ１０は、外部機器１２から順次与えられる入力信号に基づいて演算処理を行う。そして、制御用コンピュータ１０は、演算処理の結果に応じた制御信号を外部機器１４に与えて外部機器１４の動作制御を行なう。制御用コンピュータ１０に入力信号を供給する外部機器１２は、例えば、スイッチやセンサ等である。また、制御用コンピュータ１０によって制御される外部機器１４は、例えば、アクチュエータやＬＥＤ表示器等である。
【００１２】
図１に示すように、制御コンピュータ１０は、入力ポート１６、ＣＰＵ１８ａ、１８ｂ、メモリ２０ａ、２０ｂ、受信バッファ２２ａ、２２ｂ及び出力ポート２４等を有する。
入力ポート１６は、スイッチやセンサ等で構成される外部機器１２からの入力信号を順次取り込む。そして、入力ポート１６は、ノイズ消去処理やレベルシフト処理等を施した後の入力信号をＣＰＵ１８ａ、１８ｂに与える。
【００１３】
ＣＰＵ１８ａは、外部機器１２から入力ポート１６を介して与えられた入力信号に基づき演算処理を行なって、入力信号に応じた演算値ａ１、ａ２、ａ３、・・・を算出する。同様にＣＰＵ１８ｂも外部機器１２から入力ポート１６を介して与えられた入力信号に基づき演算処理を行なって、入力信号に応じた演算値ｂ１、ｂ２、ｂ３、・・・を算出する。
【００１４】
ＣＰＵ１８ａ、１８ｂは、同期がとられておらず、共に所定の間隔ｔ（例えば、約６ｍｓ）で演算値の算出を繰り返す。従って、演算値ａ１、ａ２、ａ３、・・・と演算値ｂ１、ｂ２、ｂ３、・・・は、例えば、ｂ１、ａ１、ｂ２、ａ２、ｂ３、ａ３、・・・のような順で交互に算出される。
ＣＰＵ１８ａによって算出された演算値ａ１、ａ２、ａ３、・・・は、メモリ２０ａと受信バッファ２２ｂに順次格納される。また、ＣＰＵ１８ｂによって算出された演算値ｂ１、ｂ２、ｂ３、・・・は、メモリ２０ｂと受信バッファ２２ａに順次格納される。
【００１５】
また、ＣＰＵ１８ａは、最新の３つの自己の演算値（例えば、ａ１、ａ２、ａ３）をメモリ２０ａから読み出し、最新のＣＰＵ１８ｂの演算値（例えば、ｂ３）を受信バッファ２２ａから読み出す。そして、ＣＰＵ１８ａは、演算値ａ１、ａ２、ａ３と演算値ｂ３を比較し、比較結果に応じた制御信号を出力ポート２４を介してアクチュエータやＬＥＤ表示器等で構成される外部機器１４に与える。この時、外部機器１４は、ＣＰＵ１８ａから与えられた制御信号に従って作動する。
【００１６】
一方、ＣＰＵ１８ｂは、最新の３つの自己の演算値（例えば、ｂ１、ｂ２、ｂ３）をメモリ２０ｂから読み出し、最新のＣＰＵ１８ａの演算値（例えば、ａ３）を受信バッファ２２ｂから読み出す。そして、ＣＰＵ１８ｂは、演算値ｂ１、ｂ２、ｂ３と演算値ａ３を比較し、比較の結果、必要に応じてＣＰＵ１８ａから外部機器１４への制御信号の出力を禁止にする。
【００１７】
メモリ２０ａ、２０ｂは、それぞれＣＰＵ１８ａ、１８ｂの演算処理の結果である演算値ａ１、ａ２、・・・、ｂ１、ｂ２、・・・の他、ＣＰＵ１８ａ、１８ｂの動作プログラム等を格納する。
次に、ＣＰＵ１８ａ、１８ｂの動作説明をフローチャートを用いて行なう。
図２は、ＣＰＵ１８ａが実行するルーチンを示すフローチャートである。図２に示すルーチンは、その処理が終了する毎に繰り返し起動させる。なお、メモリ２０ａ内には、前々回と前回のルーチンで取得された入力信号に基づくＣＰＵ１８ａの演算処理の結果である演算値ａ１、ａ２が既に格納されているものとする。また、受信バッファ２２ａには、ＣＰＵ１８ｂの演算処理の結果である最新の演算値ｂ３が既に格納されているものとする。
【００１８】
図２に示すルーチンが起動されると、先ず、ステップ１００において、外部機器１２からの入力信号が入力ポート１６を介して取得される。このステップ１００の処理が終了すると、次に、ステップ１０２の処理が実行される。
ステップ１０２では、ＣＰＵ１８ｂによる演算処理の結果である演算値ｂ３が受信バッファ２２ａから取得される。そして、次に、ステップ１０４の処理が実行される。
【００１９】
ステップ１０４では、ステップ１００において取得された入力信号に基づいた所定の演算が実行され、その結果、演算値ａ３が算出される。そして、続くステップ１０６では、ステップ１０４で算出された演算値ａ３がメモリ２０ａに格納される。また、演算値ａ３は、受信バッファ２２ｂにも与えられ、受信バッファ２２ｂ内に格納される。このステップ１０６の処理が終了すると、次に、ステップ１０８の処理が実行される。
【００２０】
ステップ１０８では、メモリ２０ａに格納されていた最新の３つの演算値ａ１、ａ２、ａ３と、ステップ１０２で取得されたＣＰＵ１８ｂの最新の演算値ｂ３との大きさの比較が行なわれる。ここで、例えば、演算値ａ１、ａ２、ａ３のうちの最大値をａＭＡＸ  、最小値をａＭＩＮ  とする。また、比較時の微小な誤差等の許容範囲を定める判定余裕値をαとする。この判定余裕値αは、予め設定されているものとする。ステップ１０８では、演算値ｂ３と演算値ａＭＡＸ  ＋α及びａＭＩＮ  −αとの大小関係の比較が行なわれる。そして、この比較処理の後にステップ１１０の処理が実行される。
【００２１】
ステップ１１０では、ステップ１０８の比較結果に基づいた判別処理が実行される。ステップ１０８において、ｂ３＞ａＭＡＸ  ＋α、又は、ｂ３＜ａＭＩＮ  −αが不成立ならば、ステップ１１０において、ＣＰＵ１８ｂの演算値ｂ３は、ＣＰＵ１８ａの演算値ａ１、ａ２、ａ３と近似しており、ＣＰＵ１８ａ、１８ｂは共に正常であると判断される。このステップ１１０の処理が終了すると、次に、ステップ１１２の処理が実行される。一方、ステップ１０８において、ｂ３＞ａＭＡＸ  ＋α、又は、ｂ３＜ａＭＩＮ  −αが成立するならば、ステップ１１０において、ＣＰＵ１８ｂの演算値ｂ３は、ＣＰＵ１８ａの演算値ａ１、ａ２、ａ３と大きく乖離しており、ＣＰＵ１８ａ、１８ｂの少なくとも一方は異常であると判断される。そして、ＣＰＵ１８ａから外部機器１４に対する制御信号の出力は停止され、今回のルーチンは終了となる。
【００２２】
ステップ１１２では、ステップ１０４で算出された演算値ａ３に基づき、制御信号が出力ポート２４を介して外部機器１４に与えられる。この時、外部機器１４は、ＣＰＵ１８ａから与えられた制御信号に従って作動する。そして、再び、ステップ１００の処理が実行される。
一方、ＣＰＵ１８ｂは、以下のようなルーチンを実行する。
【００２３】
図３は、ＣＰＵ１８ｂが実行するルーチンを示すフローチャートである。図３に示すルーチンは、その処理が終了する毎に繰り返し起動される。なお、メモリ２０ｂ内には、前々回と前回のルーチンで取得された入力信号に基づくＣＰＵ１８ｂの演算処理の結果である演算値ｂ１、ｂ２が既に格納されているものとする。また、受信バッファ２２ｂには、ＣＰＵ１８ａの最新の演算処理の結果である演算値ａ３が既に格納されているものとする。
【００２４】
図３に示すルーチンが起動されると、先ず、ステップ２００において、外部機器１２からの入力信号が入力ポート１６を介して取得される。ステップ２００の処理が終了すると、次に、ステップ２０２の処理が実行される。
ステップ２０２では、図２に示すルーチンのステップ１０６において受信バッファ２２ｂ内に格納された演算値ａ３が取得される。そして、次に、ステップ２０４の処理が実行される。
【００２５】
ステップ２０４では、ステップ２００において取得された入力信号に基づいた所定の演算が実行され、その結果、演算値ｂ３が算出される。そして、次のステップ２０６では、ステップ２０４で算出された演算値ｂ３がメモリ２０ｂに格納される。また、演算値ｂ３は、受信バッファ２２ａにも与えられ、受信バッファ２２ａ内に格納される。このステップ２０６の処理が終了すると、次に、ステップ２０８の処理が実行される。
【００２６】
ステップ２０８では、メモリ２０ｂに格納されていた最新の３つの演算値ｂ１、ｂ２、ｂ３と、ステップ２０２で取得されたＣＰＵ１８ａの最新の演算値ａ３との大きさの比較が行なわれる。ここで、例えば、演算値ｂ１、ｂ２、ｂ３のうちの最大値をｂＭＡＸ  、最小値をｂＭＩＮ  とする。また、比較時の微小な誤差等の許容範囲を定める判定余裕値をβとする。この判定余裕値βは、予め設定されているものとする。ステップ２０８では、演算値ａ３と演算値ａＭＡＸ  ＋β及びｂＭＩＮ  −βとの大小関係の比較が行なわれる。そして、この比較処理の後にステップ２１０の処理が実行される。
【００２７】
ステップ２１０では、ステップ２０８の比較結果に基づいた判別処理が実行される。ステップ２０８において、ａ３＞ｂＭＡＸ  ＋β、又は、ａ３＜ｂＭＩＮ  −βが不成立ならば、ステップ２１０において、ＣＰＵ１８ａの演算値ａ３は、ＣＰＵ１８ｂの演算値ｂ１、ｂ２、ｂ３と近似しており、ＣＰＵ１８ａ、１８ｂは共に正常であると判断される。そして、このステップ２１０の処理が終了すると、再び、ステップ２００の処理が実行される。一方、ステップ２０８において、ａ３＞ｂＭＡＸ  ＋β、又は、ａ３＜ｂＭＩＮ  −βが成立するならば、ステップ２１０において、ＣＰＵ１８ａの演算値ａ３は、ＣＰＵ１８ｂの演算値ｂ１、ｂ２、ｂ３と大きく乖離しており、ＣＰＵ１８ａ、１８ｂの少なくとも一方は異常であると判断される。この場合、次に、ステップ２１２の処理が実行される。
【００２８】
ステップ２１２では、ＣＰＵ１８ａに停止信号が与えられ、ＣＰＵ１８ａから外部機器１４への制御信号の出力が禁止となる。そして、今回のルーチンは終了となる。
上記のように、ＣＰＵ１８ａ、１８ｂが互いの演算値を比較し合うので、ＣＰＵ１８ａ、１８ｂが正常であるか否かが容易に判別できる。また、本発明によれば、ＣＰＵ１８ａ、１８ｂの同期をとる必要がないため、同期信号発生回路からＣＰＵ１８ａ、１８ｂに同期信号を与えなくてもよい。
【００２９】
ここで、ＣＰＵ１８ａ、１８ｂが互いの演算値を任意のタイミングで取得して、比較処理を行なうようにすると、相手側ＣＰＵ（例えば、ＣＰＵ１８ａにとってのＣＰＵ１８ｂ）の最新の演算値が自己ＣＰＵの最新の演算値より先に算出された値なのか後に算出された値なのか判別できない。例えば、ＣＰＵ１８ｂの最新の演算値ｂ３がＣＰＵ１８ａの最新の演算値ａ３より先に算出された値なのか後に算出された値なのか判別できない。この場合、ＣＰＵ１８ａの前回の演算処理で算出された演算値ａ２と、今回（最新）の演算値ａ３と、演算値ａ３の次に算出される演算値ａ４とを考慮して、上記ステップ１０８の比較処理における誤差等の許容範囲を定める判定余裕値αを大きめに設定する必要がある。
【００３０】
しかし、本発明では、上記ステップ１０２、１０４及びステップ２０２、２０４に示すように、ＣＰＵ１８ａ、１８ｂは、共に相手側ＣＰＵの最新の演算値を受信バッファ２２ａ、２２ｂを介して取得してから、自己の演算処理を行なっている。このため、相手際ＣＰＵの最新の演算値は、常に自己ＣＰＵの最新の演算値よりも先に算出されたものであると確定できる。
【００３１】
また、相手側ＣＰＵが最新の演算値を算出した後に、自己ＣＰＵがその演算値を受信バッファを介して取得するまでは所定の微小な時間τ（τ＜ｔ）を要するので、本発明において、自己ＣＰＵが受信バッファを介して取得した相手側ＣＰＵの最新の演算値は、自己ＣＰＵの前々回の演算処理時から今回（最新）の演算処理時の間に算出されたものであると限定できる。
【００３２】
そこで、本発明のステップ１０８、２０８では、相手側ＣＰＵの最新の演算値と、自己ＣＰＵの前々回、前回及び今回の演算処理時の演算値である最新の３つの演算値とを比較する構成にしている。このように、本発明では、相手側ＣＰＵの最新の演算値と比較する自己ＣＰＵの演算値を最小数の３つに限定しているので、比較処理における誤差等の許容範囲を定める判定余裕値α、βをより小さな値に設定することができる。判定余裕値α、βをより小さな値に設定することで、ＣＰＵ１８ａ、１８ｂの異常の検出がより高精度に行なわれる。
【００３３】
ここで、ＣＰＵ１８ａ、１８ｂの演算値の比較処理が不要な入力信号に対しては、ＣＰＵ１８ａ、１８ｂが個別に演算処理を行なうようにしてもよい。演算値の比較処理が不要な入力信号をＣＰＵ１８ａ、１８ｂのいずれか一方に分配することで、２つのＣＰＵ１８ａ、１８ｂを有効に利用することができる。
なお、上記実施例は、ＣＰＵ１８ａ、１８ｂが共にそれぞれのルーチンに従って動作し、受信バッファを介して最新の演算値を相手側ＣＰＵに与える構成であるが、例えば、ＣＰＵ１８ａをマスタＣＰＵとし、ＣＰＵ１８ｂをスレーブＣＰＵとしてもよい。この場合、マスタＣＰＵであるＣＰＵ１８ａがスレーブＣＰＵであるＣＰＵ１８ｂを起動させる。そして、ＣＰＵ１８ａによって起動したＣＰＵ１８ｂが送信バッファに格納していた最新の演算値をＣＰＵ１８ａに与える。
【００３４】
図４は、ＣＰＵ１８ａ、１８ｂが共に正常である時の演算値ａ１、ａ２、ａ３及びｂ３を示す図である。なお、演算値ａ１、ａ２、ｂ３、ａ３にそれぞれ対応する時刻ｔ１、ｔ２、ｔ３、ｔ４は、各演算値がＣＰＵ１８ａ、１８ｂによって算出された時刻を示す。また、演算値ａ１、ａ２、ｂ３、ａ３にそれぞれ対応する値Ａ、Ｂ、Ｃ、Ｄは、各演算値ａ１、ａ２、ｂ１、ａ３の大きさを示す。
【００３５】
図４に示すように、ＣＰＵ１８ｂによって時刻ｔ３に算出された最新の演算値ｂ３の値Ｃは、ＣＰＵ１８ａによって時刻ｔ１に算出された演算値ａ１の値Ａより大きく、時刻ｔ４に算出された演算値ａ３の値Ｄより小さい。従って、この場合、図２に示したルーチンのステップ１０８において、ＣＰＵ１０ａは、ＣＰＵ１８ａ、１８ｂが共に正常であると判断して外部機器１４を制御するための制御信号を出力する。
【００３６】
図５は、ＣＰＵ１８ａ、１８ｂの少なくとも一方が異常である時の演算値ａ１、ａ２、ａ３及びｂ３を示す図である。なお、演算値ａ１、ａ２、ｂ３、ａ３にそれぞれ対応する時刻ｔ１、ｔ２、ｔ３、ｔ４は、各演算値がＣＰＵ１８ａ、１８ｂによって算出された時刻を示す。また、演算値ａ１、ａ２、ｂ３、ａ３にそれぞれ対応する値Ａ、Ｂ、Ｃ、Ｄは、各演算値ａ１、ａ２、ｂ１、ａ３の大きさを示す。
【００３７】
図５に示すように、ＣＰＵ１８ｂによって時刻ｔ３に算出された最新の演算値ｂ３の値Ｃは、ＣＰＵ１８ａによって時刻ｔ４に算出された演算値ａ３の値Ｄに判定余裕値αを加えた値よりも大きい。従って、この場合、図２に示したルーチンのステップ１０８において、ＣＰＵ１０ａは、ＣＰＵ１８ａ、１８ｂの少なくとも一方が異常であると判断して、外部機器１４を制御するための制御信号の出力を停止する。同様に、ＣＰＵ１０ｂがＣＰＵ１８ａ、１８ｂの少なくとも一方が異常であると判断する場合は、ＣＰＵ１８ａから外部機器１４への制御信号の出力を禁止にする。
【００３８】
なお、制御用コンピュータ１０内のＣＰＵの数は２個に限らず、制御用コンピュータ１０内に３個以上のＣＰＵを設けて、互いの演算値の比較によってＣＰＵの異常検出を行なうようにしてもよい。
上記実施例において、図２のステップ１００及び図３のステップ２００の処理が特許請求の範囲に記載の第１のステップに相当し、図２のステップ１０２及び図３のステップ２０２の処理が特許請求の範囲に記載の第２のステップに相当し、図２のステップ１０４及び図３のステップ２０４の処理が特許請求の範囲に記載の第３のステップに相当する。また、図２のステップ１０８及び図３のステップ２０８の処理が特許請求の範囲に記載の第４のステップに相当し、図２のステップ１１０及び図３のステップ２１０の処理が特許請求の範囲に記載の第５のステップに相当する。
【００３９】
【発明の効果】
上述の如く、請求項１記載の発明によれば、複数のＣＰＵを有するコンピュータシステムにおいて、ＣＰＵの同期をとることなく、ＣＰＵの異常が容易に検出される。また、ＣＰＵの異常検出を高精度に行うことができる。
また、請求項２記載の発明によれば、ＣＰＵの異常検出をより高精度に行うことができる。
【図面の簡単な説明】
【図１】本発明の異常検出方法が適用される制御用コンピュータの構成図である。
【図２】ＣＰＵが実行するルーチンを示すフローチャートである。
【図３】ＣＰＵが実行するルーチンを示すフローチャートである。
【図４】２つのＣＰＵが共に正常である時の演算値の値を示す図である。
【図５】２つのＣＰＵのうちの少なくとも一方が異常である時の演算値の値を示す図である。
【符号の説明】
１０  制御用コンピュータ
１２、１４  外部機器
１６  入力ポート
１８ａ、１８ｂ  ＣＰＵ
２０ａ、２０ｂ  メモリ
２２ａ、２２ｂ  受信バッファ
２４  出力ポート
ａ１、ａ２、ａ３、ｂ１、ｂ２、ｂ３  演算値
α、β  判定余裕値
【図１】
0003627545.tif 000002
【図２】
0003627545.tif 000003
【図３】
0003627545.tif 000004
【図４】
0003627545.tif 000005
【図５】
0003627545.tif 000006