(58)【調査した分野】(Int.Cl.,DB名)
前記挙動データ取得手段は、前記異常検出手段で異常を検出した場合に、その直前までの一定期間分の挙動データを前記挙動データ蓄積手段に蓄積すること特徴とする請求項1記載の電子機器。
前記挙動データ蓄積手段は、前記異常検出手段で異常が検出されなかった場合の挙動データについては削除をおこない、異常を検出した場合の挙動データのみを蓄積することを特徴とする請求項1記載の電子機器。
前記(4)のステップにおいて正常と判定されたときに、前記(1)のステップから蓄積されている挙動データを削除することを特徴とする請求項8記載の電子機器の異常検出方法。
【発明を実施するための形態】
【0012】
以下、本発明に係る各実施形態を、
図1ないし
図13を用いて説明する。
【0013】
〔実施形態1〕
以下、本発明の第一の実施形態を、
図1ないし
図10を用いて説明する。
【0014】
本実施形態では、電子機器自身を制御する制御プログラムを対象に、処理に要する時間を測定し、処理時間の長さに異常を検出した場合、異常原因を特定するためのデータを適切に取得する解析データ取得処理を有する異常検出機能付き電子機器1を例に採って説明する。また、本実施形態の異常検出機能付き電子機器1は、搭載メモリが少なく、メモリをリングバッファとして使用する場合においても、解析に必要なデータの取得を可能にするものである。
【0015】
先ず、
図1を用いて本発明の一実施形態に係る異常検出機能付き電子機器1の概略構成について説明する。
図1は、実施形態に係る異常検出機能付き電子機器1の概略構成を示すブロック図である。
【0016】
本実施形態の異常検出機能付き電子機器1は、
図1に示すように、制御部11と、記憶部12と、通信部13と、入力部14と、出力部15と、表示部16を有している。
【0017】
制御部11は、記憶部12が保持している処理プログラムを実行し、機器全体の動作を制御する部分であり、半導体装置のマイクロコンピュータにより実現される。
【0018】
記憶部12は、必要なデータ、プログラムを記憶する部分であり、半導体メモリ、磁気ディスクなどの媒体で実現される。本実施形態の記憶部12は、電子機器1の動作を制御する機器制御処理プログラム、機器制御処理プログラムの性能劣化を検出して異常判定する異常検出処理プログラム、異常判定された処理プログラムの動作を解析するために必要なデータを取得する動作解析データ取得処理プログラムなどを記憶する部分である。
【0019】
なお、本実施形態では、異常が検出された機器制御処理プログラムの動作を解析するための動作解析データ(以下、「挙動データ」という)として、機器制御処理プログラム中で呼び出されるスレッドの実行期間の情報を取得する場合を例に採って説明する。
【0020】
通信部13は、外部機器との通信をおこなう部分である。異常検出機能付き電子機器1の処理プログラムと、外部機器の有する処理プログラムとの間で通信をおこなう場合などに使用する。例えば、異常検出処理部122や挙動データ処理部123と同等の処理部を有する外部機器を用いて、異常検出機能付き電子機器1の異常検出や挙動データ取得をおこなう場合など、外部機器との間で処理コマンドを送受信するために使用する。
【0021】
入力部14は、電源を入れるなど異常検出機能付き電子機器1を操作するためのインタフェース部である。入力部14の例としては、ボタン、スイッチ、キー、ダイアル、スティック、マウス、リモートコントローラ、タッチパネルなどがある。
【0022】
出力部15は、機器操作用画面や機器情報、機器の処理結果など、ユーザに提供するための画像データを出力する部分である。また、取得した挙動データの情報を外部記憶媒体に出力する場合にも使用する。
【0023】
表示部16は、ユーザに機器操作用画面や機器情報、機器の処理結果、取得した挙動データの情報を表示する部分である。表示部16の例としては、液晶パネル、プラズマディスプレイパネル、有機ELパネルなどがある。また、表示部16は、スピーカなどを備えており、音声出力もおこなう。
【0024】
なお、異常検出機能付き電子機器1は、表示部16を異常検出機能付き電子機器1に備えていなくてもよく、その場合は外部接続された表示機器にて所望の画像が表示されるように、出力部15から画像データを出力させればよい。
【0025】
次に、
図2を用いて本実施形態の制御処理プログラムの機能構成について説明する。
図2は、本実施形態の制御処理プログラムの機能構成を示すブロック図である。
【0026】
本実施形態の制御処理プログラムは、機器制御処理部121と、異常検出処理部122と、挙動データ処理部123の機能により構成されている。
【0027】
機器制御処理部121は、異常検出機能付き電子機器1自身の制御プログラムであり、電子機器として動作させるための機器制御処理プログラムの有する機能である。機器制御処理プログラムは、例えば、リモコンから異常検出機能付き電子機器1の設定変更をおこなった場合、入力部14に入力された情報に基づいて異常検出機能付き電子機器1の設定を変更し、処理結果を出力部15を通して表示部16に表示させるといった一連の処理を実行するプログラムである。本実施形態では、機器制御処理部121の処理について異常検出をおこなう。以下、機器制御処理部121のことを、「異常検出対象部121」とも記すことにする。
【0028】
異常検出処理部122は、異常検出対象部121の性能劣化を検出して異常判定する異常判定処理プログラムの有する機能であり、処理時間測定部1221と、測定データ蓄積部1222と、異常検出部1223から構成される。処理時間測定部1221は、異常検出対象部121の処理について処理時間の測定をおこなう機能ブロックである。測定データ蓄積部1222は、測定した処理時間を蓄積する機能ブロックである。異常検出部1223は、測定した処理時間について異常の有無を検出する機能ブロックであるである。
【0029】
挙動データ処理部123は、異常検出対象部121の状態を解析するために必要なデータを取得する動作解析データ取得処理プログラムの有する機能であり、挙動データ取得部1231と、挙動データ蓄積部1232から構成される。挙動データ取得部1231は、異常検出対象部121の処理の挙動データを取得する機能ブロックである。挙動データ蓄積部1232は、取得した挙動データを蓄積する機能ブロックである。
【0030】
次に、各処理部の動作について説明する。本実施形態の制御部の動作の概略は、異常検出対象部121から、異常検出処理部122および挙動データ処理部123に対して処理要求を出し、これら処理部を制御するものである。
【0031】
異常検出対象部121から挙動データ処理部123へ出す要求は、挙動データ取得の開始および停止要求である。挙動データ取得要求により、挙動データ取得部1231が動作する。挙動データ取得部1231は、挙動データ取得の開始要求を受けると、異常検出対象部121の処理を監視し、その挙動データの取得を開始する。また、挙動データ取得の停止要求を受けた場合は、挙動データの取得を停止する。取得した挙動データは、挙動データ蓄積部1232に蓄積し、異常発生時の原因解析データとして使用する。
【0032】
一方、異常検出対象部121から異常検出処理部122へ出す要求は、異常検出と処理時間測定の開始および停止要求である。異常検出開始要求により、異常検出処理部122が異常検出の動作を開始する。また、処理時間測定開始要求により、処理時間測定部1221が動作する。処理時間測定部1221は、処理時間測定の開始要求を受けると、異常検出対象部121の処理について、処理時間の測定を開始する。また、処理時間測定の停止要求を受けた場合は、処理時間の測定を停止する。ここで、処理時間の測定方法は如何なるものでもよい。例えば、異常検出対象部121で動作するプログラムにて、タイマ機能を使用する方法が挙げられる。すなわち、異常検出対象部121の有するクロックを使用することにより、任意の処理の処理時間を測定することが可能である。処理時間測定部1221で測定した処理時間は、測定データ蓄積部1222に蓄積される。異常検出部1223は、処理時間測定部1221で測定した処理時間を、測定データ蓄積部1222に蓄積されている蓄積情報と比較し、処理時間の長さに異常がないか判定をおこなう。すなわち、正常な場合の処理時間と比較し、一定の値よりも長すぎたり、短すぎたりする場合には、異常と判定する。そして、異常がある場合は、異常検出処理部122から挙動データ処理部123へ挙動データ取得停止要求を出す。挙動データ処理部123は、挙動データ取得停止要求を受けると、挙動データ取得部1231を制御することにより、挙動データの取得を停止する。
【0033】
次に、
図3ないし
図5を用いて異常検出のために、制御プログラムの処理時間の測定とその結果の蓄積について説明する。
図3は、異常検出対象部121の処理時間の測定に関する処理を示すフローチャートである。
図4は、制御プログラムの処理に関して、繰り返し回数とその処理時間の関係を示すグラフである。
図5は、
図4のグラフに、測定点a,bをプロットしたグラフである。
【0034】
先に述べたように、本実施形態では、異常検出機能付き電子機器1自身の制御プログラムの処理時間を測定し、処理に要する時間から異常を検出する。
ここでは、異常検出対象部121の実行環境により、処理Aの繰り返し回数(M)が変わる処理を例に挙げている。また、処理Aの繰り返し処理を処理時間測定区間として設定し、測定される処理時間(Time)を記している。ここで、
図3に示す異常検出対象部121の処理の流れについて説明する。初めに、処理Aの繰り返し回数をカウントする変数nを初期化する(S10)。繰り返し処理の開始前に、処理時間測定開始要求を実行する(S11)。処理Aを実行後(S12)、変数nをインクリメントする(S13)。変数nのインクリメント後、繰り返し回数の判定をおこなう(S14)。処理AをM回繰り返し実行した後、処理時間測定停止要求を実行する(S15)。このように、処理時間を測定する区間の開始位置で処理時間測定開始要求(S11)を、停止位置で処理時間測定停止要求(S15)を実行することにより、特定の処理区間における処理時間(Time)を測定する。
【0035】
次に、この測定結果の蓄積について説明する。
【0036】
測定データ蓄積部1222は、異常検出部1223が異常を検出するための参照情報として使用する処理時間のデータを蓄積する。参照情報となる処理時間のデータは、事前に異常検出対象部121を何度か実行し、処理時間を測定することで蓄積しておく。蓄積するデータの形式は、如何なる形式であってもよく、テキストデータやバイナリデータなどの形式が挙げられる。ここで、
図3の処理を例に、参照情報の蓄積方法を説明する。この場合、処理時間測定区間における処理時間(Time)を参照情報として測定することになる。処理時間測定区間を変えずに、異常検出対象部121の実行環境を変えながら、すなわち、Mの値を変えながら、異常検出対象部121を何度か実行し、その時のMの値と、処理時間のデータを、測定データ蓄積部1222に蓄積する。
図4は、これらの蓄積データから近似曲線を描いたものである。このように、蓄積データを線形で表現することにより、任意のMの値に応じた処理時間(Time)を求めることができるようになるため、あらゆる実行環境に対応可能な参照情報として扱えるようになる。この近似曲線を参照情報として使用した場合、処理時間に異常がある場合のデータは、
図5の測定点aや測定点bのように近似曲線から、閾値εよりも逸脱したデータとして現れるため、容易に異常を判定することが可能になる。
【0037】
なお、実際の異常判定では、近似曲線を計算式の形で表現し、この計算式を測定データ蓄積部1222で保持しておく。計算式の一例としては近似式が挙げられる。処理時間測定部1221で測定した処理時間が近似式から外れている場合に異常と判定する。また、どの程度近似式から外れている場合を異常とするかを決める閾値情報についても、測定データ蓄積部1222の中に保持しておく。なお、異常判定に使用する近似式は、処理時間測定部1221が測定データ蓄積部1222に蓄積したデータを基に自動的に生成するか、ユーザが手動で生成するものとする。また、異常判定に使用する近似式は、電子機器の外部で生成したものでもよい。何れの方法で生成した場合でも、近似式は測定データ蓄積部1222に保持しておき、異常検出部1223で異常判定する場合に使用する。
【0038】
次に、
図6を用いて本発明の第一の実施形態に係る異常検出機能付き電子機器1における解析データ取得処理の正常時の処理について説明する。
図6は、本発明の第一の実施形態に係る異常検出機能付き電子機器1における解析データ取得処理の正常時の処理を示すタイミングチャートである。
【0039】
ここでいう「正常時」とは、異常検出処理部122の異常検出処理において、異常が検出されない場合を意味する。逆に、異常検出処理部122の異常検出処理において、異常が検出された場合を「異常時」と呼ぶことにする。
【0040】
図6では、解析データ取得処理の流れについて、縦方向に時間軸をとり、異常検出対象部121、異常検出処理部122、挙動データ処理部123の処理を示している。なお、異常検出対象部121においては、異常を検出するための処理時間を測定する処理時間測定区間を予め設定しておき、その区間の開始および終了位置において、処理時間測定開始および停止要求を出す処理を組み込んでおく。また、異常検出対象部121の処理の始まりと終わりには、挙動データ取得および異常検出の開始と停止要求を出す処理を組み込んでおくものとする。
【0041】
初めに、異常検出対象部121が、自身の処理を開始する(S100)。異常検出対象部121の処理の開始直後、異常検出対象部121から挙動データ処理部123へ挙動データ取得開始要求を出すことにより(S101)、挙動データ処理部123は挙動データ取得を開始する(S102)。これに続いて、異常検出対象部121から異常検出処理部122へ異常検出開始要求を出すことにより(S103)、異常検出処理部122は、異常検出を開始する(S104)。
【0042】
異常検出対象部121の処理が、異常検出の対象となる処理時間測定区間の開始位置に到達すると、異常検出対象部121は、異常検出処理部122へ処理時間測定開始要求を出す(S105)。異常検出処理部122は、この要求を受けることにより、処理時間の測定を開始する(S106)。そして、異常検出対象部121の処理が、異常検出の対象となる処理時間測定区間の終了位置に到達すると、異常検出対象部121は、異常検出処理部122へ処理時間測定停止要求を出す(S107)。異常検出処理部122は、この要求を受けることにより、処理時間の測定を停止する(S108)。
【0043】
その後、異常検出処理部122は、測定した処理時間を、測定データ蓄積部1222に蓄積している参照情報と比較し、データが基準時のものと比べて逸脱したものであるか否かを判定することにより、異常検出を行う(S109)。ここでは、正常時のときの処理について述べているので、異常は検出されなかったものとする。
【0044】
異常検出対象部121は、自身の処理が終了する前に異常検出処理部122へ異常検出停止要求を出すことにより(S110)、異常検出処理部122は異常検出を停止する(S111)。
【0045】
続いて、異常検出対象部121から挙動データ処理部123へ挙動データ取得停止要求を出すことにより(S112)、挙動データ処理部123は挙動データ取得を停止する(S113)。最後に、異常検出対象部121自身の処理が終了する(S114)。
【0046】
次に、
図7および
図8を用いて本実施形態における挙動データの取得処理について説明する。
図7は、
図6で示した挙動データ処理部123における挙動データの取得処理の詳細を示すフローチャートである。
図8は、リングバッファの概念を説明するための図である。
【0047】
取得した挙動データは、挙動データ蓄積部1232に示すメモリなどの記憶媒体に蓄積される。しかし、搭載メモリの少ない電子機器の場合、長時間の挙動データの蓄積は困難である。そこで、本実施形態では、挙動データの蓄積をリングバッファにより実現することにより、搭載メモリが少ない場合における挙動データ取得蓄積の容量不足の問題を解消する。
【0048】
リングバッファ(ring buffer)、は、
図8(a)に示されるように、概念上は、リング状に配置されたバッファであり、書き込みが一巡すると前に書いたデータの上に新しいデータが上書きされる。ただし、実際上の物理領域は、線形に構成されているので、
図8(b)に示されるように、書き込みポインタを、領域の終端まで来たときに、始端に戻すことにより、擬似的にリングバッファの機能を持たせている。
【0049】
上述のように、挙動データの蓄積先をリングバッファとした場合には、古い挙動データは上書きされ、直近の挙動データだけが残る。しかしながら、異常検出時の制御プログラムの解析に必要な挙動データは、異常を検出した直前の挙動データである可能性が高い。そこで、本実施形態の制御プログラムの動作においては、異常を検出した時点で挙動データの取得を停止することにする。このようにすることにより、挙動データの蓄積をリングバッファで実現する場合においても、異常検出時の制御プログラム解析に必要な挙動データを残すことが可能になる。
【0050】
ここで、
図7により本実施形態におけるリングバッファを用いた挙動データの取得処理の流れを説明する。
【0051】
先ず、挙動データ処理部123は、挙動データ取得を開始する(S102)。
【0052】
次に、挙動データ処理部123は、取得した挙動データを、格納先の記憶媒体の格納アドレスに格納する(S115)。
【0053】
次に、格納アドレスをインクリメントする(S116)。
【0054】
そして、格納アドレスがバッファ容量を超過したか否かを判定し(S117)、超過した場合には、データ格納アドレスをバッファ先頭に戻すことにより、リングバッファの機能を実現する(S118)。
【0055】
一方、格納アドレスがバッファ容量を超えなければ、挙動データの取得停止要求の有無を判定し(S119)、停止要求がなければ挙動データ取得を続ける。最終的には、挙動データの取得停止要求により、挙動データの取得を停止する(S113)。
【0056】
次に、
図9を用いて本発明の第一の実施形態に係る異常検出機能付き電子機器1における解析データ取得処理に関し、異常時の処理について説明する。
図9は、本発明の第一の実施形態に係る異常検出機能付き電子機器1における解析データ取得処理の異常時の処理を示すタイミングチャートである。
【0057】
初めに、異常検出対象部121が、自身の処理を開始する(S100)。異常検出対象部121の処理の開始直後、異常検出対象部121から挙動データ処理部123へ挙動データ取得開始要求を出すことにより(S101)、挙動データ処理部123は挙動データ取得を開始する(S102)。これに続いて、異常検出対象部121から異常検出処理部122へ異常検出開始要求を出すことにより(S103)、異常検出処理部122は、異常検出を開始する(S104)。
【0058】
異常検出対象部121の処理が、異常検出の対象となる処理時間測定区間の開始位置に到達すると、異常検出対象部121は、異常検出処理部122へ処理時間測定開始要求を出す(S105)。異常検出処理部122は、この要求を受けることにより、処理時間の測定を開始する(S106)。そして、異常検出対象部121の処理が、異常検出の対象となる処理時間測定区間の終了位置に到達すると、異常検出対象部121は異常検出処理部122へ処理時間測定停止要求を出す(S107)。異常検出処理部122は、この要求を受けることで、処理時間の測定を停止する(S108)。その後、異常検出処理部122は、測定した処理時間を、測定データ蓄積部1222に蓄積している参照情報と比較し、データが基準時のものと比べて逸脱したものであるか否かを判定することにより、異常検出をおこなう(S109)。ここでは、異常時について述べているので、ここで、異常を検出したとする。異常検出処理部122は、挙動データ処理部123に挙動データ取得停止要求を出すことにより(S120)、挙動データ処理部123は挙動データ取得を停止する(S113)。この後、異常検出処理部122は、異常検出処理を停止する(S111)。また、異常検出対象部121は、自身の処理が終了に到達した時点で停止する(S114)。
【0059】
次に、
図10を用いて、本発明の第一の実施形態に係る異常時のリングバッファの挙動データの蓄積状態を説明する。
図10は、本発明の第一の実施形態に係る異常時のリングバッファの挙動データの蓄積状態を説明する図である。
【0060】
図7で示したように、挙動データ処理部123で取得した挙動データは、リングバッファに蓄積される。
【0061】
解析データ取得処理で挙動データの取得をおこなった場合には、挙動データを蓄積するリングバッファは、
図10に示されるようになる。ここで、左端をリングバッファの先頭アドレス、右端をリングバッファの終了アドレスとして、リングバッファ内のデータを簡易的に示している。異常検出処理部122が異常を検出し、挙動データ処理部123が挙動データ取得を停止した時点のリングバッファの状態であり、異常検出の対象となった処理時間を測定した処理時間測定区間の挙動データが蓄積されている。また、データの蓄積はリングバッファで実現しているため、挙動データAや挙動データBで示すような、過去に取得した挙動データA,Bも含まれている。
【0062】
ここで、異常時の場合には、蓄積される挙動データは、挙動データの取得を開始した時点からのものではなく、“Period”で示すように、挙動データの取得を停止する直前の一定区間の挙動データだけとなる。しかしながら、先に述べたように、異常検出時の制御プログラムの解析に必要な挙動データは、異常を検出した直前の挙動データである可能性が高い。よって、異常を検出した時点で挙動データの取得を停止することで、挙動データの蓄積をリングバッファで実現する場合においても、異常検出時の制御プログラム解析に必要な挙動データを残すことが可能であるため、問題は生じることはなく、特に、異常の解析をおこなうために有益な挙動データのみがリングバッファに蓄積される。
【0063】
本実施形態では、異常検出対象部121の処理に対し、処理時間の測定をおこなう区間を、1区間だけ設定する例を示したが、複数の区間を設定するようにしてもよい。その場合は、各区間の開始および終了位置において、異常検出対象部121から異常検出処理部122へ処理時間測定の開始および停止要求を出すことにより実現可能である。また、各処理時間測定の停止後、取得した処理時間のデータを、測定データ蓄積部1222に蓄積している参照情報と比較することで、処理区間ごとの異常検出が可能となる。その場合には、事前に各処理区間についての近似式などの比較のためのデータを準備しておく必要がある。また、異常検出対象部121、異常検出処理部122、挙動データ処理部123が同一の記憶部12にある場合について示したが、異なる記憶部の上にあってもよい。さらに、各処理部は、独立している必要も無く、何れかの処理部の中に含まれるような構成にしてもよい。なお、本実施形態では、異常検出対象部121から、異常検出処理部122および挙動データ処理部123へ制御要求を出す方法について示したが、異常検出対象部121以外の処理部から、異常検出処理部122および挙動データ処理部123へ制御要求を出す構成にしてもよい。
【0064】
このように本実施形態によれば、電子機器の制御プログラムを対象に、処理に要する時間を測定し、処理時間の長さに異常を検出した場合、挙動データの取得を自動で停止させることが可能になる。電子機器自身の制御プログラムの動作の異常を検知し、異常原因を特定するためのデータを適切に取得する異常検出機能付き電子機器を提供できる。
【0065】
一般的に、異常検出時の制御プログラムの解析に必要な挙動データは、異常を検出した直前の挙動データである可能性が高い。よって、本実施形態を適用した場合、挙動データの蓄積をリングバッファで実現した場合においても異常原因を特定するためのデータを適切に取得できる。また、解析の対象とすべき挙動データは最後に取得した挙動データとなるため、問題の個所の挙動データ抽出が容易になる。
【0066】
さらに、挙動データの蓄積にリングバッファを用いることで搭載メモリの少ない電子機器にも適用可能となる。
【0067】
なお、挙動データは、
図1で示した出力部15から出力したり、表示部16に表示することにより、デバッグ時に出力して利用することができる。
【0068】
また、本実施形態の異常検出機能付き電子機器1のように、電子機器に異常検出処理部122や挙動データ処理部123を組み込む構成にすることにより、電子機器単体での異常検出および異常時の挙動データ取得が可能になる。これにより、製品開発におけるテスト工程などで、各々のテストとなる電子機器にデバッグ機能を有する外部機器を接続することなくテストをおこなうことができるため開発効率が向上することが期待される。
【0069】
〔実施形態2〕
以下、本発明に係る第二の実施形態を、
図11ないし
図13を用いて説明する。
【0070】
第一の実施形態では、異常検出処理部122が異常を検出した場合に、挙動データ処理部123に対して挙動データ取得停止要求を出して、挙動データの取得を停止し、異常時における解析のためのデータを、リングバッファに残す例を説明した。ここで、異常検出時に挙動データの取得を停止しているため、解析の対象とすべき挙動データは最後に取得した挙動データとなる。
【0071】
しかしながら、
図10に示すように、過去に取得した挙動データAや挙動データBも含まれているため、その挙動データを格納した開始アドレスはわからないという問題点がある。すなわち、挙動データAと処理時間測定区間の挙動データとの境界がわからない。これは、挙動データをどこまで遡って解析すればよいかわからないことを意味しており、挙動データの解析に手間がかかる。
【0072】
本実施形態は、このような問題が生じないような挙動データの蓄積をおこなうようにしたものである。
【0073】
先ず、
図11を用いて本発明の第二の実施形態に係る異常検出機能付き電子機器1における解析データ取得処理に関し、正常時の処理について説明する。
図11は、本発明の第二の実施形態に係る異常検出機能付き電子機器1における解析データ取得処理の異常時の処理を示すタイミングチャートである。
【0074】
異常検出対象部121においては、異常を検出するための処理時間を測定する処理時間測定区間を予め設定しておき、区間の開始位置では挙動データ取得および処理時間測定の開始要求を、終了位置では処理時間測定および挙動データ取得の停止要求を出す処理を組み込んでおく。また、異常検出対象部121の処理の始まりと終わりには、異常検出の開始および停止要求を出す処理を組み込んでおくものとする。
【0075】
初めに、異常検出対象部121が、自身の処理を開始する(S100)。
異常検出対象部121の処理の開始直後、異常検出対象部121から異常検出処理部122へ異常検出開始要求を出すことにより(S103)、異常検出処理部122は、異常検出を開始する(S104)。
【0076】
異常検出対象部121の処理が、異常検出の対象となる処理時間測定区間の開始位置に到達する直前で、異常検出対象部121は、挙動データ処理部123へ挙動データ取得開始要求を出す(S101)。挙動データ処理部123は、この要求を受けることにより、挙動データ取得を開始する(S102)。続いて、異常検出対象部121は、異常検出処理部122へ処理時間測定開始要求を出す(S105)。異常検出処理部122は、この要求を受けることにより、処理時間の測定を開始する(S106)。そして、異常検出対象部121の処理が、異常検出の対象となる処理時間測定区間の終了位置に到達すると、異常検出対象部121は、異常検出処理部122へ処理時間測定停止要求を出す(S107)。異常検出処理部122は、この要求を受けることで、処理時間の測定を停止する(S108)。その後、異常検出処理部122は、測定した処理時間を、測定データ蓄積部1222に蓄積している参照情報と比較し、データが正常時のものと比べて逸脱したものであるか否かを判定することにより、異常検出をおこなう(S109)。ここでは、正常時のときの処理について述べているので、異常は検出されなかったものとする。
【0077】
異常検出処理部122は、挙動データ処理部123に挙動データ取得停止要求を出すことで(S120)、挙動データ処理部123は挙動データ取得を停止する(S113)。挙動データ処理部123は、挙動データ取得を停止した後、異常検出されなかった区間(Period)に取得した挙動データを削除する(S121)。
【0078】
異常検出対象部121は、自身の処理が終了する前に異常検出処理部122へ異常検出停止要求を出すことにより(S110)、異常検出処理部122は、異常検出を停止する(S111)。最後に、異常検出対象部121自身の処理が終了する(S114)。
【0079】
次に、
図12を用いて本発明の第二の実施形態に係る異常検出機能付き電子機器1における解析データ取得処理に関し、異常時の処理について説明する。
図12は、本発明の第二の実施形態に係る異常時のリングバッファの挙動データの蓄積状態を説明する図である。
【0080】
初めに、異常検出対象部121が、自身の処理を開始する(S100)。
【0081】
異常検出対象部121の処理の開始直後、異常検出対象部121から異常検出処理部122へ異常検出開始要求を出すことにより(S103)、異常検出処理部122は、異常検出を開始する(S104)。
【0082】
異常検出対象部121の処理が、異常検出の対象となる処理時間測定区間の開始位置に到達する直前で、異常検出対象部121は、挙動データ処理部123へ挙動データ取得開始要求を出す(S101)。挙動データ処理部123は、この要求を受けることにより、挙動データ取得を開始する(S102)。続いて、異常検出対象部121は異常検出処理部122へ処理時間測定開始要求を出す(S105)。異常検出処理部122は、この要求を受けることで、処理時間の測定を開始する(S106)。そして、異常検出対象部121の処理が、異常検出の対象となる処理時間測定区間の終了位置に到達すると、異常検出対象部121は、異常検出処理部122へ処理時間測定停止要求を出す(S107)。異常検出処理部122は、この要求を受けることにより、処理時間の測定を停止する(S108)。その後、異常検出処理部122は、測定した処理時間を、測定データ蓄積部1222に蓄積している参照情報と比較し、データが正常時のものと比べて逸脱したものであるか否かを判定することにより、異常検出をおこなう(S109)。ここでは異常系について述べるので、異常を検出されたものとする。
【0083】
異常検出処理部122は、挙動データ処理部123に挙動データ取得停止要求を出すことで(S120)、挙動データ処理部123は挙動データ取得を停止する(S113)。この後、異常検出処理部122は、異常検出処理を停止する(S111)。また、異常検出対象部121は、処理の終了に到達した時点で停止する(S114)。
【0084】
次に、
図13を用いて、本発明の第二の実施形態に係る異常時のリングバッファの挙動データの蓄積状態を説明する。
図13は、本発明の第二の実施形態に係る異常時のリングバッファの挙動データの蓄積状態を説明する図である。
【0085】
先に
図10を用いて正常時の説明をしたが、異常が検出されなかった区間の挙動データについては、S121で削除している。よって、異常系において、異常が検出された場合、挙動データ蓄積部1232には、
図12の“Period”で示す区間の挙動データのみが蓄積されることになる。すなわち、挙動データ蓄積用リングバッファの中は、
図13に示すような状態になっており、異常が検出された処理時間測定区間の挙動データのみだけが残っており、異常が検出された処理時間測定区間における挙動データが容易に抽出できる。
【0086】
本実施形態では、異常検出対象部121の処理に対し、処理時間の測定をおこなう区間を1区間だけ設定する例を示したが、複数の区間を設定するようにしてもよい。その場合は、各区間の開始および終了位置において、異常検出対象部121から異常検出処理部122へ処理時間測定の開始および停止要求を出すことにより実現可能である。また、各処理時間測定の開始および停止要求の前後で、異常検出対象部121から挙動データ処理部123に挙動データ取得の開始および終了要求を出すことにより、処理時間測定区間ごとの挙動データ取得が可能になる。また、異常検出対象部121は、複数の処理時間測定区間を含むような位置で、挙動データ処理部123に対する挙動データ取得の開始および終了要求を出してもよい。また、異常検出対象部121から挙動データ処理部123への挙動データ取得開始要求と、異常検出対象部121から異常検出処理部122への処理時間測定開始要求は連携させてもよい。例えば、異常検出対象部121が挙動データ取得要求を出すことで、自動的に処理時間測定を開始するようにすることで、挙動データ取得要求と処理時間測定要求の両方の要求を出す必要が無くなるため、処理が簡易化できる。
【0087】
このように本実施形態によれば、異常を検出した場合の挙動データのみを蓄積することが可能になる。これにより、異常が検出された処理時間測定区間における挙動データが容易に抽出できる。
【0088】
〔異常検出機能付き電子機器の適用例〕
本発明を適用する異常検出機能付き電子機器1の具体例を示すならば、空調機を制御するための制御コントローラが挙げられる。この場合、空調機は、通信部13を介して、制御コントローラに接続され、制御コントローラにより制御される。よって、制御コントローラ自身の制御プログラムに異常が生じた場合には、空調機を正しく制御することができない。そこで、制御コントローラ自身の制御プログラムに異常検出機能を搭載し、制御コントローラに異常がある場合に検知できるようにする。異常検出および異常時の挙動データ取得は、制御コントローラの制御プログラムを開発する中でも有効である。例えば、制御プログラムの変更にミスがある場合に異常検出をおこなうことが可能である。さらに、異常検出だけでなく、その時の挙動データを取得できるため、処理プログラムの修正個所を判断するための情報を得ることが可能であり、制御プログラムの開発者を支援することができる。