(57)【要約】【課題】ＣＰＵシステムの信頼性を向上させることができ、特に、信頼性が高くないＣＰＵシステムを信頼性が要求されるシステムの中に組み込んで利用しても、システムの信頼性を維持することができるＣＰＵの動作監視方法を提供すること。【解決手段】メインＣＰＵ１の電流負荷状態を検出する電流検出部３を設け、電流検出部３による電流値信号をサブＣＰＵ２に入力するようにし、メインＣＰＵ１の各処理に対する電流負荷の正常な範囲と、メインＣＰＵ１の暴走状態での電流負荷の範囲を記憶しておく記憶部５を設け、メインＣＰＵ１での各演算処理に対応する電流負荷が正常な範囲でも暴走状態の範囲でもない場合に予期しない動作状態であることを検知するようにした。【選択図】        図１
2004302847.tif 000002
【特許請求の範囲】
【請求項１】
演算処理を行うメインＣＰＵを別に設けたサブＣＰＵで監視するＣＰＵの動作監視方法において
前記メインＣＰＵの電流負荷状態を検出する電流値検出手段を設け、同電流値検出手段による電流値信号を前記サブＣＰＵに入力するようにし、
メインＣＰＵの各処理に対する電流負荷の正常な範囲と、メインＣＰＵの暴走状態での電流負荷の範囲を記憶しておく記憶部を設け、
メインＣＰＵでの各演算処理に対応する電流負荷が正常な範囲でも暴走状態の範囲でもない場合に予期しない動作状態であることを検知することを特徴とするＣＰＵの動作監視方法。
【請求項２】
請求項１に記載されたＣＰＵの動作監視方法において、
メインＣＰＵが暴走状態と判断するとサブＣＰＵからの信号でメインＣＰＵが実行させるソフトウエア全体のリセットを行い、メインＣＰＵが暴走ではないが予期しない動作状態と判断するとサブＣＰＵからの信号でメインＣＰＵがその実行動作をリセットするようにしたことを特徴とするＣＰＵの動作監視方法。
【請求項３】
請求項１又は請求項２に記載されたＣＰＵの動作監視方法において、
サブＣＰＵで実行するメインＣＰＵを監視するソフトウエアが、リアルタイム動作する部分を有するようにしたことを特徴とするＣＰＵの動作監視方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のＣＰＵを機器が有する場合にメインとなるＣＰＵの状態を他のＣＰＵで監視するＣＰＵの動作監視方法の技術分野に属する。
【０００２】
【従来の技術】
従来のＣＰＵの動作監視方法は、親となるＣＰＵと子となるＣＰＵの間のデータバスに共有メモリを設け、相互に送るデータに基づきエラーが無いか判定することで状態の判断を行っている（例えば、特許文献１参照。）。
【０００３】
【特許文献１】
特開平８−３０５６７３号公報
【０００４】
【発明が解決しようとする課題】
しかしながら、従来のＣＰＵの動作監視方法にあっては、ＣＰＵの暴走あるいは過大負荷による異常動作は検出できるが、例えば、ＣＰＵが正常動作し、また負荷も一定範囲内にある場合においては、システムとして期待されていない動作、つまりある種のソフトウエア・バグのようなものは検出することができなかった。
【０００５】
本発明は、上記問題点に着目してなされたもので、その目的とするところは、ＣＰＵシステムの信頼性を向上させることができ、特に、信頼性が高くないＣＰＵシステムを信頼性が要求されるシステムの中に組み込んで利用しても、システムの信頼性を維持することができるＣＰＵの動作監視方法を提供することにある。
【０００６】
【課題を解決するための手段】
上記目的を達成するため、請求項１記載の発明では、演算処理を行うメインＣＰＵを別に設けたサブＣＰＵで監視するＣＰＵの動作監視方法において、メインＣＰＵの電流負荷状態を検出する電流値検出手段を設け、電流値検出手段による電流値信号をサブＣＰＵに入力するようにし、メインＣＰＵの各処理に対する電流負荷の正常な範囲と、メインＣＰＵの暴走状態での電流負荷の範囲を記憶しておく記憶部を設け、メインＣＰＵでの各演算処理に対応する電流負荷が正常な範囲でも暴走状態の範囲でもない場合に予期しない動作状態であることを検知することを特徴とする手段とした。
【０００７】
請求項２記載の発明では、メインＣＰＵが暴走状態と判断するとサブＣＰＵからの信号でメインＣＰＵが実行させるソフトウエア全体のリセットを行い、メインＣＰＵが暴走ではないが予期しない動作状態と判断するとサブＣＰＵからの信号でメインＣＰＵがその実行動作をリセットするようにしたことを特徴とする手段とした。
【０００８】
請求項３記載の発明では、サブＣＰＵで実行するメインＣＰＵを監視するソフトウエアが、リアルタイム動作する部分を有するようにしたことを特徴とする手段とした。
【０００９】
【発明の作用と効果】
請求項１記載の発明では、メインＣＰＵに流れる電流値を電流値検出手段によって検出し、その電流値信号をサブＣＰＵに入力することにより、サブＣＰＵでメインＣＰＵの各処理に対応して電流負荷の状態を把握できるようにする。このようにして電流負荷の状態で監視するメインＣＰＵが、各演算処理に対応する電流負荷の範囲を外れる状態になったことを検知できるようにすると、サブＣＰＵとメインＣＰＵで信号をやり取りしなくてもサブＣＰＵでメインＣＰＵの状態を把握することができるため、メインＣＰＵのシステムに左右されることなくメインＣＰＵの監視ができる。そのため、ＣＰＵシステムの信頼性を向上させることができ、特に、信頼性が高くないＣＰＵシステムを信頼性が要求されるシステムの中に組み込んで利用しても、システムに依存することなくＣＰＵの監視ができるので、システムの信頼性を維持することができる。
さらに本発明では、正常な電流負荷の範囲か、暴走状態を示す範囲か、又は、予期しない動作状態であるかを電流値から判断できるので、これを検知するので、ＣＰＵの暴走状態を検知して被害を最小限に食い止めることができ、システムの保護に役立つとともに、ソフトウエア・バグのように暴走ではない予期しない動作状態を検知して適切な処置ができるようにし、システムをさらに信頼性高く使用できる。
【００１０】
請求項２記載の発明では、メインＣＰＵが暴走状態と判断するとサブＣＰＵからの信号でメインＣＰＵが実行させるソフトウエア全体のリセットを行い、ソフトウエアの暴走状態が長く維持されることによるハード的なダメージやデータの消失などのダメージを早期に回避することができる。また、メインＣＰＵが暴走ではないが予期しない動作状態と判断するとサブＣＰＵからの信号でメインＣＰＵがその実行動作をリセットする。そのため、暴走ではないが、ソフトウエアの暴走につながるような予期しない動作や使用する人にとっては重大なトラブルにつながる予期しない動作を検知して適切な処置を行える。このため、システムの信頼性はさらに向上できる。
【００１１】
請求項３記載の発明では、サブＣＰＵで実行するメインＣＰＵを監視するソフトウエアが、リアルタイム動作する部分を有するようにしたため、イベントの発生等に左右されずに所定の時間または所定の時間毎にＣＰＵの監視が行えるので、さらに確実な監視ができる。
【００１２】
【発明の実施の形態】
以下、本発明のＣＰＵの動作監視方法を実現する実施の形態を、請求項１〜３に係る発明に対応する実施例に基づいて説明する。
【００１３】
（実施例）
【００１４】
まず、構成を説明する。
図１は実施例のＣＰＵの動作監視方法に用いる回路のブロック図である。図２は実施例のＣＰＵの動作監視方法の説明図である。図３は実施例のＣＰＵの動作監視方法におけるサブＣＰＵでの処理の流れを示すフローチャートである。図１，２における主要符号を説明すると、１はメインＣＰＵ、２はサブＣＰＵ、３は電流検出部、４は電源部、５は記憶部である。
【００１５】
実施例のＣＰＵの動作監視方法では、メインＣＰＵ１とサブＣＰＵ２を設け、少なくともメインＣＰＵ１はサブＣＰＵ２からの信号を受けることができるようにする。
【００１６】
さらに、電源部４からメインＣＰＵ１への電源供給の途中に電流検出部３を設ける。この電流検出部３からの電流信号は、サブＣＰＵ２に入力されるようにする。本実施例では、電流検出部３として電流検出用抵抗チップを用いている。
次に、メインＣＰＵでの各処理に対応する正常な電流負荷範囲と暴走状態の範囲を示すデータを記憶しておく記憶部５を設ける。記憶部５に記憶させるデータは、しきい値となる図２に示すα，β，γの値となる。
【００１７】
本実施例において、メインＣＰＵ１で実行するソフトウエアは、非リアルタイムＯＳ（オペレーションシステム、以下ＯＳ）上で動くものとし、サブＣＰＵ２で実行する監視のためのソフトウエアはリアルタイム動作する部分を有するものとする。
また、本実施例において、「ソフトウエア全体のリセットを行う」とは電源リセットと同等のリセットを行い、電気的にＣＰＵの内部を初期化することを指し、「実行動作をリセットする」とは状態変数を初期化し、現在の状態をデフォールトの状態にすることを指すものとする。
【００１８】
メインＣＰＵ１に流れる電流値は、図２に示すように、通常の処理の場合には、その各処理に対応する消費電流値は図２中のαを超えてβ以下となる。この範囲を正常処理範囲とする。よって、メインＣＰＵ１の消費電流がこの範囲の場合には通常の処理だと判断できることとなる。
【００１９】
次に、この電流値を越える電流値が流れると暴走と判断できる消費電流値のしきい値を図２中のγとする。また、消費電流値が０の場合には暴走によるＣＰＵの停止状態と判断できるので、この場合には暴走停止状態と判断する。
【００２０】
よって、消費電流が０を超えてα以下の状態、及び消費電流がβを超えてγ以下の状態ではバグなどが発生した暴走ではないが予期しない動作状態と判断することができる。
【００２１】
次に、作用を説明する。
【００２２】
［サブＣＰＵでの監視制御］
図３は実施例のサブＣＰＵ２で実行されるメインＣＰＵ１の監視の処理の流れを示すフローチャートで、以下、各ステップについて説明する。
【００２３】
ステップＳ１では、メインＣＰＵ１へ処理（ここでは処理Ｘとする）の実行を指令する。
【００２４】
ステップＳ２では、ステップＳ１で指令した処理（処理Ｘ）に対応する消費電流値の範囲を示すデータであるα，β，γを記憶部から読み出す。
【００２５】
ステップＳ３では、電流検出部３でメインＣＰＵ１の消費電流を検出し、電流信号をサブＣＰＵ２に入力する。
【００２６】
ステップＳ４では、検出した電流値がαを超えてβ以下の範囲内にあるかどうかを判断し、範囲内であるならばステップＳ５に移行し、範囲外であるならばステップＳ６に移行する。
【００２７】
ステップＳ５は、通常の状態を検出した状態である。
【００２８】
ステップＳ６では、検出した電流値が０を超えてα以下の範囲か又はβを超えてγ以下の範囲にあるかどうかを判断し、範囲内ならばステップＳ７に移行し、範囲外ならばステップＳ９に移行する。
【００２９】
ステップＳ７は、暴走ではないが予期しない動作状態を検出した状態である。
【００３０】
ステップＳ８では、サブＣＰＵ２からメインＣＰＵ１に信号を送って、メインＣＰＵ１で実行している実行動作をリセットする。
【００３１】
ステップＳ９は、暴走状態を検出した状態である。
【００３２】
ステップＳ１０では、サブＣＰＵ２からメインＣＰＵ１に信号を送って、メインＣＰＵ１で実行しているソフトウエアのリセットを行う。
【００３３】
［メインＣＰＵの監視作用］
▲１▼通常の動作
メインＣＰＵ１が通常の動作を行っている場合には、メインＣＰＵ１の電流負荷は処理Ｘに対応する消費電流となり、図２に示すαを超えてβ以下の範囲内となる。
そのことはステップＳ４で判断されてステップＳ５に移行し、通常状態であることとなる。この場合、特に処理を要しない。
【００３４】
▲２▼予期しない動作の検出
メインＣＰＵ１がソフトウエアのバグなどを実行しているような状態では、処理Ｘに対応する正常な範囲を外れるような負荷が発生するが、処理としてはメインＣＰＵ１が通常に処理していることとなる。そのため、メインＣＰＵ１での消費電流は、通常の電流負荷よりも高くあるいは低く、かつ暴走状態と判断出来るほどではないものとなる。よって、ステップＳ３でサブＣＰＵ２に入力される電流検出部３で検出した電流値は、０を超えてα以下の範囲となるかあるいはβを超えてγ以下の範囲となる。
【００３５】
このことは、ステップＳ６で判断され、ステップＳ７に移行し、予期しない動作状態を検出した状態となる。この状態になると、ステップＳ８で、サブＣＰＵ２からメインＣＰＵ１に信号を出力してメインＣＰＵ１が実行しているソフトウエア上の実行動作をキャンセルさせる。本実施例では、メインＣＰＵ１では、非リアルタイムＯＳ上でソフトウエアを実行しているので、サブＣＰＵ２からの信号が入力されると、強制的なソフトウエアのリセットのイベントが発生して実行されることとなる。
このようにして強制的にソフトウエア上のバグ等の動作を実行しているメインＣＰＵ１の実行動作のリセットを行えば、ソフトウエアの暴走につながるような予期しない動作や使用する人にとっては重大なトラブルにつながる予期しない動作がリセットされる。
▲３▼暴走状態の検出
メインＣＰＵ１が暴走すると、通常の処理では生じないような負荷がメインＣＰＵ１に発生する。この負荷は電流負荷となる。あるいは暴走によりメインＣＰＵが停止し電流値が０になる。このため、ステップＳ１でサブＣＰＵ２に入力される電流検出部３で検出した電流値はあらかじめ設定しているしきい値γを超えるか、０となる。このことはステップＳ６で判断されてステップＳ９に移行し、暴走状態が検出されたこととなる。この状態になると、ステップＳ１０において、サブＣＰＵ２からメインＣＰＵ１へ信号を出力し、メインＣＰＵ１で実行しているソフトウエアを強制的にリセットさせる。本実施例では、メインＣＰＵ１では、非リアルタイムＯＳ上でソフトウエアを実行しているので、サブＣＰＵ２からの信号が入力されると、強制的なソフトウエアのリセットのイベントが発生して実行されることとなる。
【００３６】
このようにして強制的にソフトウエアのリセットを行えば、メインＣＰＵ１の暴走によるハードウエアへのダメージや記憶装置に記憶させたデータの消失などを生じる前にＣＰＵによるソフトウエアの実行を止めて、新たにソフトウエアを起動する。
【００３７】
次に、効果を説明する。
【００３８】
実施例のＣＰＵの動作監視方法にあっては、下記に列挙する効果を得ることができる。
【００３９】
（１）演算処理を行うメインＣＰＵ１を別に設けたサブＣＰＵ２で監視するＣＰＵの動作監視方法において、メインＣＰＵ１の電流負荷状態を検出する電流検出部３を設け、電流検出部３による電流値信号をサブＣＰＵ２に入力するようにし、メインＣＰＵ１の各処理に対する電流負荷の正常な範囲と、メインＣＰＵ１の暴走状態での電流負荷の範囲を記憶しておく記憶部５を設け、メインＣＰＵ１での各演算処理に対応する電流負荷が正常な範囲でも暴走状態の範囲でもない場合に予期しない動作状態であることを検知するため、メインＣＰＵ１のシステムに左右されることなくメインＣＰＵ１の監視ができる。そのため、ＣＰＵシステムの信頼性を向上させることができ、特に、信頼性が高くないＣＰＵシステムを信頼性が要求されるシステムの中に組み込んで利用しても、システムに依存することなくＣＰＵの監視ができるので、システムの信頼性を維持することができる。さらに、暴走状態を検知することにより被害を最小限に食い止めることができ、システムの保護に役立つとともに、ソフトウエア・バグのように暴走ではない予期しない動作状態を検知することにより、適切な処置ができるようにし、システムをさらに信頼性高く使用できる。
【００４０】
（２）メインＣＰＵ１が暴走状態と判断するとサブＣＰＵ２からの信号でメインＣＰＵ１が実行させるソフトウエア全体のリセットを行い、メインＣＰＵ１が暴走ではないが予期しない動作状態と判断するとサブＣＰＵ２からの信号でメインＣＰＵ１がその実行動作をリセットするようにしたため、システムの信頼性はさらに向上できる。
【００４１】
（３）サブＣＰＵ２で実行するメインＣＰＵ１を監視するソフトウエアが、リアルタイム動作する部分を有するようにしたため、さらに確実な監視ができる。
【００４２】
以上、本発明のＣＰＵの動作監視方法を実施例に基づき説明してきたが、具体的な構成については、これらの実施例に限られるものではなく、特許請求の範囲の各請求項に係る発明の要旨を逸脱しない限り、設計の変更や追加等は許容される。
【００４３】
例えば、実施例では、メインＣＰＵ１の消費電流値によってメインＣＰＵ１の各処理に対応する電流負荷を検出していたが、メインＣＰＵ１の消費電流波形をパターン化して各処理に対応して判別させるようにしてもよい。
【図面の簡単な説明】
【図１】実施例のＣＰＵの動作監視方法に用いる回路のブロック図である。
【図２】実施例のＣＰＵの動作監視方法の説明図である。
【図３】実施例のＣＰＵの動作監視方法におけるサブＣＰＵでの処理の流れを示すフローチャートである。
【符号の説明】
１  メインＣＰＵ
２  サブＣＰＵ
３  電流検出部
４  電源部
５  記憶部
【図１】
2004302847.tif 000003
【図２】
2004302847.tif 000004
【図３】
2004302847.tif 000005