(57)【要約】【課題】観測対象装置において繰り返し発生する第１イベントおよび第２イベントの相関度を簡単に算出する。【解決手段】観測対象の装置において繰り返し発生する第１イベントおよび第２イベントの相関度を検出する検出装置であって、第１イベントが発生してから次に第１イベントが発生するまでの期間である第１期間のそれぞれについて、当該第１期間中に第２イベントが発生した回数をカウントした第２イベントカウント値を取得する取得部と、第２イベントカウント値毎に、当該第２イベントカウント値が観測された観測回数を計測する計測部と、第２イベントカウント値毎の観測回数に基づいて、第１イベントおよび第２イベントの相関度を算出する算出部とを備える検出装置を提供する。
2008072678.tif 000002
【特許請求の範囲】
【請求項１】
観測対象の装置において繰り返し発生する第１イベントおよび第２イベントの相関度を検出する検出装置であって、
前記第１イベントが発生してから次に前記第１イベントが発生するまでの期間である第１期間のそれぞれについて、当該第１期間中に前記第２イベントが発生した回数をカウントした第２イベントカウント値を取得する取得部と、
前記第２イベントカウント値毎に、当該第２イベントカウント値が観測された観測回数を計測する計測部と、
前記第２イベントカウント値毎の観測回数に基づいて、前記第１イベントおよび前記第２イベントの相関度を算出する算出部と
を備える検出装置。
【請求項２】
前記取得部は、前記第２イベントが発生してから次に前記第２イベントが発生するまでの期間である第２期間のそれぞれについて、当該第２期間中に前記第１イベントが発生した回数をカウントした第１イベントカウント値を更に取得し、
前記計測部は、前記第１イベントカウント値毎に、当該第１イベントカウント値が観測された観測回数を更に計測し、
前記算出部は、前記第２イベントカウント値および前記第１イベントカウント値毎の観測回数に基づいて、前記相関度を算出する
請求項１に記載の検出装置。
【請求項３】
前記算出部は、所定の閾値以上の観測回数である前記第２イベントカウント値の数と、所定の閾値以上の観測回数である前記第１イベントカウント値の数とに基づいて、前記相関度を算出する請求項２に記載の検出装置。
【請求項４】
前記算出部は、観測回数が０でない前記第２イベントカウント値の数と、観測回数が０でない前記第１イベントカウント値の数との積を含む関数により前記相関度を算出する請求項３に記載の検出装置。
【請求項５】
前記計測部は、
前記第１イベントカウント値毎に、当該第１イベントカウント値が観測されたか否かを示す第１フラグを前記観測回数として記録し、前記第２イベントカウント値毎に、当該第２イベントカウント値が観測されたか否かを示す第２フラグを前記観測回数として記録するフラグ記憶部と、
観測された前記第１イベントカウント値に対応する前記第１フラグを立てて論理値１とし、観測された前記第２イベントカウント値に対応する前記第２フラグを立てて論理値１とするフラグ更新部と、
を有し、
前記算出部は、論理値１である前記第１フラグの数と、論理値１である前記第２フラグの数との積を含む関数により前記相関度を算出する
請求項４に記載の検出装置。
【請求項６】
前記算出部は、前記第２イベントカウント値が０でなく、かつ所定の閾値以上の観測回数である前記第２イベントカウント値の数と、前記第１イベントカウント値が０でなく、かつ所定の閾値以上の観測回数である前記第１イベントカウント値の数とに基づいて、前記相関度を算出する請求項２に記載の検出装置。
【請求項７】
前記観測対象装置の少なくとも一部の内部状態を予め定められたタイミングおきに内部状態記憶部に収集する収集部と、
前記相関度が、予め設定された上限値より大きくなった場合、および、予め設定された下限値より小さくなった場合の少なくとも一方の場合において、前記内部状態記憶部に記憶された前記内部状態の更新を禁止して当該内部状態を保存する更新禁止部と  を更に備える請求項２に記載の検出装置。
【請求項８】
観測対象装置と、前記観測対象装置において繰り返し発生する第１イベントおよび第２イベントの相関度を検出する検出装置とを備えるシステムであって、  前記観測対象装置は、当該観測対象装置の動作に応じて前記第１イベントおよび前記第２イベントを発生し、
前記検出装置は、
前記観測対象装置における前記第１イベントおよび前記第２イベントの発生を検出する検出部と、
前記第１イベントが発生してから次に前記第１イベントが発生するまでの期間である第１期間のそれぞれについて、当該第１期間中に前記第２イベントが発生した回数をカウントした第２イベントカウント値を取得する取得部と、
前記第２イベントカウント値毎に、当該第２イベントカウント値が観測された観測回数を計測する計測部と、
前記第２イベントカウント値毎の観測回数に基づいて、前記第１イベントおよび前記第２イベントの相関度を算出する算出部と
を有するシステム。
【請求項９】
情報処理装置において繰り返し発生する第１イベントおよび第２イベントの相関度を当該情報処理装置または他の情報処理装置により検出するプログラムであって、  前記情報処理装置または前記他の情報処理装置を、
前記第１イベントが発生してから次に前記第１イベントが発生するまでの期間である第１期間のそれぞれについて、当該第１期間中に前記第２イベントが発生した回数をカウントした第２イベントカウント値を、前記情報処理装置または他の情報処理装置が備える入力装置により取得する取得部と、
前記入力装置が取得した前記第２イベントカウント値毎に、当該第２イベントカウント値が観測された観測回数を前記情報処理装置または他の情報処理装置が備える命令処理装置により計測して記憶装置に格納する計測部と、
前記第２イベントカウント値毎の観測回数に基づいて、前記第１イベントおよび前記第２イベントの相関度を前記命令処理装置により算出する算出部と  して機能させるプログラム。
【請求項１０】
情報処理装置において繰り返し発生する第１イベントおよび第２イベントの相関度を当該情報処理装置または他の情報処理装置により検出する検出方法であって、  前記第１イベントが発生してから次に前記第１イベントが発生するまでの期間である第１期間のそれぞれについて、当該第１期間中に前記第２イベントが発生した回数をカウントした第２イベントカウント値を、前記情報処理装置または他の情報処理装置が備える入力装置が取得し、
前記入力装置が取得した前記第２イベントカウント値毎に、当該第２イベントカウント値が観測された観測回数を前記情報処理装置または他の情報処理装置が備える命令処理装置により計測して記憶装置に格納し、
前記第２イベントカウント値毎の観測回数に基づいて、前記第１イベントおよび前記第２イベントの相関度を前記命令処理装置により算出する  検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検出装置、システム、プログラムおよび検出方法に関する。特に本発明は、観測対象の装置において繰り返し発生する第１イベントおよび第２イベントの相関度を検出する検出装置、システム、プログラムおよび検出方法に関する。
【背景技術】
【０００２】
ハードウェアを検証する検証方法として、検証対象となるハードウェアから出力された信号をロジックアナライザ等により観察する方法が知られている。また、ソフトウェアの検証方法として、検証対象となるソフトウェアの実行コードを順次に実行させていくトレーサ等を用いた方法が知られている。また、ソフトウェアおよびハードウェアの検証方法として、検証対象となるソフトウェアまたはハードウェアの状態変化を順次に記録し、記録結果を統計処理した情報を用いて検証する方法が知られている。【０００３】
また、非特許文献１、特許文献１および特許文献２に記載された検証方法も知られている。非特許文献１には、異常なイベントの検出精度を高めるために、平常時のイベントの統計分布に関する調査を行い、その観測値から理論的な統計分布を求める方法が記載されている。特許文献１には、自らが発生させたイベントを使用して並列プログラムの実行再現並びにデバッグ作業の効率化を図るデバック装置が記載されている。特許文献２には、イベント間において定義される複数種類の関係に係る情報に基づいて、イベントログからイベントの生起パターンを検出し、検出されたイベントの生起パターンを出力するプログラムが記載されている。【０００４】
【特許文献１】特開平９−２１２３８５号公報
【特許文献２】特開２００６−４３４６号公報
【非特許文献１】竹森  敬祐、外３名、"攻撃イベント数に関する調査および理論統計分布へのモデル化"、[Online]、社団法人  電子情報通信学会、［平成１８年１０月２３日検索］、インターネット<URL:http://www.sasase.ics.keio.ac.jp/pdf/21381200403NS-TAKEMORI1.pdf>
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、ロジックアナライザを用いた検証方法およびトレーサを用いた検証方法においては、検証対象となるハードウェアおよびソフトウェアの規模が大きい場合、出力結果が膨大となる。このため、この方法においては、発生するバグを予測して登録しておき、登録したバグに該当しない出力結果を順次に削除していく必要があり、効率良く検証ができなかった。また、統計情報を用いて検証する方法においては、イベント同士の相互関係を解析することが困難であった。また、統計情報を用いて検証する方法においては、ソフトウェアまたはハードウェアの状態変化を順次に記録しなければならなかったので、長期間にわたりソフトウェアまたはハードウェアを動作させる場合、膨大な記憶領域が必要であった。【０００６】
また、非特許文献１に記載された方法は、攻撃イベント（異常なイベント）の統計分布を予めモデル化する必要があった。特許文献１に記載されたデバック装置は、自らイベントを発生してデバック対象となる並列プログラムに実行させなければならなかった。【０００７】
特許文献２に記載されたプログラムは、イベントの生起時刻を取得しなければならなく、処理も複雑であった。さらに、特許文献２に記載されたプログラムは、発生回数が少ないイベントの生起パターンを除外していたので、バグが含まれている可能性が高い生起パターンが除外され、確実に検証することができなかった。【０００８】
そこで本発明は、上記の課題を解決することのできる検出装置、システム、プログラムおよび検出方法を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明の第１の形態においては、観測対象の装置において繰り返し発生する第１イベントおよび第２イベントの相関度を検出する検出装置であって、第１イベントが発生してから次に第１イベントが発生するまでの期間である第１期間のそれぞれについて、当該第１期間中に第２イベントが発生した回数をカウントした第２イベントカウント値を取得する取得部と、第２イベントカウント値毎に、当該第２イベントカウント値が観測された観測回数を計測する計測部と、第２イベントカウント値毎の観測回数に基づいて、第１イベントおよび第２イベントの相関度を算出する算出部とを備える検出装置、並びに、この検出装置と観測対象装置とを備えるシステムを提供する。【００１０】
本発明の第２の形態においては、情報処理装置において繰り返し発生する第１イベントおよび第２イベントの相関度を当該情報処理装置または他の情報処理装置により検出するプログラムであって、情報処理装置または他の情報処理装置を、第１イベントが発生してから次に第１イベントが発生するまでの期間である第１期間のそれぞれについて、当該第１期間中に第２イベントが発生した回数をカウントした第２イベントカウント値を、情報処理装置または他の情報処理装置が備える入力装置により取得する取得部と、入力装置が取得した第２イベントカウント値毎に、当該第２イベントカウント値が観測された観測回数を情報処理装置または他の情報処理装置が備える命令処理装置により計測して記憶装置に格納する計測部と、第２イベントカウント値毎の観測回数に基づいて、第１イベントおよび第２イベントの相関度を命令処理装置により算出する算出部として機能させるプログラム、並びに、このプログラムが情報処理装置において実行されることにより実現される検出方法を提供する。【００１１】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明を実施するための最良の形態】
【００１２】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。【００１３】
図１は、本実施形態に係る観測対象装置１０および検出装置２０の構成を示す。検出装置２０は、観測対象装置１０において繰り返し発生する第１イベントおよび第２イベントの相関度を検出する。【００１４】
観測対象装置１０は、観測対象の装置であり、通常の装置、通常の回路、ハードウェアおよびソフトウェアの協働により動作する情報処理装置であってよい。また、観測対象装置１０は、検証対象の論理回路がプログラムされたＦＰＧＡ等によるハードウェアエシミュレータ、検証対象の論理回路を実装したＬＳＩ等を１または複数含む装置等であってよい。また、観測対象装置１０は、論理回路シミュレータ等のソフトウェアを実行することにより検証対象の論理回路をシミュレートする情報処理装置等であってもよい。【００１５】
観測対象装置１０が発生するイベントとは、当該観測対象装置１０内におけるハードウェアおよびソフトウェアの状態の変化をいう。ハードウェアの状態変化とは、例えば、特定の信号線の電圧変化、フリップフロップ（例えばレジスタ）の格納値の反転、ステートマシーンの状態遷移、割り込み信号の発生、メモリの格納値の変化、ランプのオン／オフ等の、ハードウェアにおける何らかの状態の変化をいう。ソフトウェアの状態変化とは、タスクの開始／終了、着目するアドレスの命令が実行されたこと、ソフトウェア割り込みが発生したこと、ソフトウェアモジュールが特定の命令を実行したこと、変数値が変化したこと等の、ソフトウェア上における何らかの状態の変化をいう。【００１６】
ここで、第１イベントおよび第２イベントに相関がある場合とは、第１イベントと第２イベントとの間になんらかの関連性がある場合をいう。例えば、関数Ｂの起動（第１イベント）の多くは関数Ａからの呼出命令（第２イベント）により行われる場合、割込信号線がトグルすると（第１イベント）、対応する割込処理をするハンドラが起動（第２イベント）する場合等は、第１イベントおよび第２イベントに相関がある。検出装置２０は、観測対象装置１０において発生する第１イベントおよび第２イベントの間における相関の強さを、数値で表された相関度として検出する。検出装置２０は、一例として、第１イベントおよび第２イベントの間の相関が最も強い場合に１となり、相関が最も強い状態から弱くなるに従って０に近づくような数値で表された相関度を出力する。【００１７】
検出装置２０は、検出部２２と、取得部２４と、計測部２６と、算出部２８とを備える。検出部２２は、観測対象装置１０における第１イベントおよび第２イベントの発生を検出する。検出部２２は、一例として、動作中における観測対象装置１０から出力された、制御信号、ソフトウェアの呼出命令および割込命令等を検出することにより、観測対象装置１０における第１イベントおよび第２イベントの発生を検出してよい。【００１８】
取得部２４は、第１イベントが発生してから次に第１イベントが発生するまでの期間である第１期間のそれぞれについて、当該第１期間中に第２イベントが発生した回数をカウントする。これに加え、取得部２４は、第２イベントが発生してから次に第２イベントが発生するまでの期間である第２期間のそれぞれについて、当該第２期間中に第１イベントが発生した回数をカウントする。そして、取得部２４は、第１イベントが発生してから次に第１イベントが発生するまでの期間である第１期間のそれぞれについて、当該第１期間中に第２イベントが発生した回数をカウントした第２イベントカウント値を取得する。これに加え、取得部２４は、第２イベントが発生してから次に第２イベントが発生するまでの期間である第２期間のそれぞれについて、当該第２期間中に第１イベントが発生した回数をカウントした第１イベントカウント値を更に取得する。【００１９】
取得部２４は、一例として、観測対象装置１０が連続的に動作している期間中において、所定の測定期間毎に、第２イベントカウント値および第１イベントカウント値を取得してよい。また、取得部２４は、一例として、観測対象装置１０の動作中に検出部２２により検出された第１イベントおよび第２イベントの発生のログを記憶してよい。そして、取得部２４は、例えば観測対象装置１０の動作終了後に当該ログから、所定の測定期間毎の第２イベントカウント値および第１イベントカウント値を取得してよい。【００２０】
計測部２６は、第２イベントカウント値毎に、当該第２イベントカウント値が観測された観測回数を計測する。これに加え、計測部２６は、第１イベントカウント値毎に、当該第１イベントカウント値が観測された観測回数を更に計測する。計測部２６は、一例として、それぞれの測定期間において、第２イベントカウント値毎に当該第２イベントカウント値が観測された観測回数、および、第１イベントカウント値毎に当該第１イベントカウント値が観測された観測回数を計測してよい。【００２１】
ここで、観測回数は、イベントカウント値が観測された回数に応じて異なるデータ値となる様々な表現形式を含む概念である。観測回数は、一例として、イベントカウント値が観測された頻度（回数）、イベントカウント値が観測された回数の割合、イベントカウント値が観測されたか否か、および、イベントカウント値が閾値を超えたか否か等であってよい。すなわち、計測部２６は、一例として、測定期間中にイベントカウント値が観測された頻度をイベントカウント値毎に計測し、この計測結果を観測回数として出力してよい。また、計測部２６は、測定期間中にイベントカウント値が観測された頻度の全体頻度に対する割合をイベントカウント値毎に計測し、この計測結果を観測回数として出力してよい。また、計測部２６は、一例として、測定期間中にイベントカウント値が観測されたか否かをイベントカウント値毎に計測し、この計測結果を観測回数として出力してよい。【００２２】
算出部２８は、第２イベントカウント値および第１イベントカウント値毎の観測回数に基づいて、観測対象装置１０により発生された第１イベントおよび第２イベントの相関度を算出する。本実施形態において、算出部２８は、所定の閾値以上の観測回数である第２イベントカウント値の数と、所定の閾値以上の観測回数である第１イベントカウント値の数とに基づいて、観測対象装置１０により発生された第１イベントおよび第２イベントの相関度を算出する。また、算出部２８は、一例として、測定期間中において少なくとも１回観測された第２イベントカウント値の数と、測定期間中において少なくとも１回観測された第１イベントカウント値の数に基づいて、観測対象装置１０により発生された第１イベントおよび第２イベントの相関度を算出してよい。また、算出部２８は、一例として、測定期間中において所定の閾値以上観測された第２イベントカウント値の数と、測定期間中において所定の閾値以上観測された第１イベントカウント値の数に基づいて、観測対象装置１０により発生された第１イベントおよび第２イベントの相関度を算出してもよい。【００２３】
また、算出部２８は、一例として、観測対象装置１０が連続的に動作している例えば予め設定された期間中における複数の測定期間のそれぞれについて、観測対象装置１０により発生された第１イベントおよび第２イベントの相関度を算出してよい。これにより、算出部２８は、長期間にわたって観測対象装置１０を連続動作させた場合における、第１イベントおよび第２イベントの相関度の変化を検出することができる。【００２４】
なお、算出部２８は、一例として、第２イベントカウント値毎の観測回数に基づいて、第１イベントおよび第２イベントの相関度を算出してもよい。すなわち、算出部２８は、第１イベントカウント値毎の観測回数を用いずに、第１イベントおよび第２イベントの相関度を算出してもよい。この場合において、取得部２４は第２イベントカウント値のみを取得し、計測部２６は第２イベントカウント値毎に当該第２イベントカウント値が観測された観測回数を計測してよい。これに代えて、算出部２８は、一例として、所定期間中における第１イベントの発生回数が第２イベントの発生回数以上の場合には、第１イベントカウント値に基づいて相関度を算出し、所定期間中における第２イベントの発生回数が第１イベントの発生回数より多い場合には、第２イベントカウント値に基づいて相関度を算出してよい。【００２５】
図２は、検出装置２０による第１イベントおよび第２イベントの相関度の算出の処理の流れを示す。観測対象装置１０の動作が開始すると、まず、検出部２２は、観測対象装置１０における第１イベントの発生および第２イベントの発生を検出する（Ｓ１００２）。【００２６】
続いて、取得部２４は、測定期間中における、第１イベントが発生してから次に第１イベントが発生するまでの第１期間のそれぞれについて、第２イベントカウント値を取得する（Ｓ１００４−１）。これとともに、取得部２４は、測定期間中における、第２イベントが発生してから次に第２イベントが発生するまでの第２期間のそれぞれについて、第１イベントカウント値を取得する。（Ｓ１００４−２）。取得部２４は、観測対象装置１０の動作中においてリアルタイムで第２イベントカウント値および第１イベントカウント値を取得してもよいし、観測対象装置１０の動作終了後に、検出部２２により生成された第１イベントおよび第２イベントの発生のログから第２イベントカウント値および第１イベントカウント値を取得してもよい。【００２７】
続いて、計測部２６は、第２イベントカウント値毎に、当該第２イベントカウント値が観測された観測回数を計測する（Ｓ１００６−１）。これとともに、計測部２６は、第１イベントカウント値毎に、当該第１イベントカウント値が観測された観測回数を計測する（Ｓ１００６−２）。【００２８】
算出部２８は、第２イベントカウント値毎の観測回数および第１イベントカウント値毎の観測回数に基づいて、観測対象装置１０により発生された第１イベントおよび第２イベントの相関度を算出する（Ｓ１００８）。【００２９】
ここで、算出部２８は、一例として、下記式（１）または式（２）により表される演算により、第１イベントおよび第２イベントの相関度を算出してよい。なお、式（２）は、式（１）を変形した式である。【００３０】
【数１】
2008072678.tif 000003
【００３１】
式（１）および式（２）内の各変数および関数は、次の内容を表す。ＣＡＢは、第１イベントおよび第２イベントの相関度を表す。ＡＢｉは、ｉ番目（ｉは１以上の整数）の第２イベントカウント値を表し、Ｆ（ＡＢｉ）は、ｉ番目の第２イベントカウント値の発生頻度を表す。ＢＡｊは、ｊ番目（ｊは１以上の整数）の第１イベントカウント値を表し、Ｆ（ＢＡｊ）は、ｊ番目の第１イベントカウント値の発生頻度を表す。【００３２】
Ｎｏｎｚｅｒｏ（Ｘ）は、Ｘが０の場合に０、Ｘが０でない場合に１となる関数である。従って、Ｎｏｎｚｅｒｏ（Ｆ（ＡＢｉ））は、ｉ番目の第２イベントカウント値が少なくとも１回発生している場合には１、１回も発生していていない場合には０となる。Ｎｏｎｚｅｒｏ（Ｆ（ＢＡｊ））は、ｊ番目の第１イベントカウント値が少なくとも１回発生している場合には１、１回も発生していていない場合には０となる。【００３３】
ＮＡは、第１イベントの発生総数を表す。なお、第１イベントは少なくとも１回は発生しているものとする（ＮＡ＞０）。ＮＢは、第２イベントの発生総数を表す。なお、第２イベントは少なくとも１回は発生しているものとする（ＮＢ＞０）。【００３４】
すなわち、以上に示す演算をする算出部２８は、観測回数が０でない第２イベントカウント値の数と、観測回数が０でない第１イベントカウント値の数との積を含む関数により相関度を算出する。例えば、算出部２８は、観測回数が０でない第２イベントカウント値の数（式（２）右辺における分母左側のカッコ内の値）と、観測回数が０でない第１イベントカウント値の数（式（２）右辺における分母右側のカッコ内の値）とを乗算した値（式（２）右辺における分母の値）の逆数を、相関度（ＣＡＢ）として算出してよい。これにより、算出部２８によれば、第１イベントおよび第２イベントの相関が強い場合には１となり、相関が弱くなるに従って０に近づくような数値で表した相関度を算出することができる。【００３５】
また、算出部２８は、第１、第２イベントカウント値が０でないことを更に条件とし、第２イベントカウント値が０でなく、かつ観測回数が０でない第２イベントカウント値の数と、第１イベントカウント値が０でなく、かつ観測回数が０でない第１イベントカウント値の数とに基づいて、相関度を算出してよい。算出部２８は、一例として、ＡＢ＝０でなく、かつＦ（ＡＢi）が０でない第２イベントカウント値（Ｎｏｎｚｅｒｏ（Ｆ（ＡＢi））＝１）の数と、ＢＡ＝０でなく、かつＦ（ＢＡj）が０でない第２イベントカウント値（Ｎｏｎｚｅｒｏ（Ｆ（ＢＡj））＝１）の数とに基づいて、相関度を算出してよい。これにより、算出部２８によれば、所定の発生割合で同期して発生される第１イベントおよび第２イベントの相関度を、より適切な値とすることができる。例えば、算出部２８によれば、第１イベントがＮ回（Ｎは１以上の整数）発生される毎に第２イベントが必ず１回発生されるような場合における相関度を、１とすることができる。【００３６】
以上に代えて、算出部２８は、観測回数が０でない第１イベントカウント値の数および観測回数が０でない第２イベントカウント値の数から相関度を算出するのに代えて、所定の閾値以上の観測回数である第１イベントカウント値の数および所定の閾値以上の観測回数である第２イベントカウント値の数から相関度を算出することも可能である。【００３７】
なお、算出部２８は、式（１）および式（２）の右辺における分子の値を、任意の定数とした演算式により、相関度を算出してよい。すなわち、算出部２８は、観測回数が０でない第２イベントカウント値の数と、観測回数が０でない第１イベントカウント値の数との積の逆数に、さらに、定数を乗算した値を相関度として算出してよい。これに代えて、算出部２８は、積の逆数に定数を乗算した値に、さらに、他の定数を加算した値を相関度として算出してよい。【００３８】
また、算出部２８は、定数から、式（１）および式（２）の右辺における式を減算した演算式により、相関度を算出してよい。すなわち、算出部２８は、観測回数が０でない第２イベントカウント値の数と、観測回数が０でない第１イベントカウント値の数との積の逆数の正負を反転した値に、さらに、定数を加算した値を相関度として算出してよい。これに代えて、算出部２８は、他の定数を、積の逆数の正負を反転して定数を加算した値により除算した値を、相関度として算出してよい。【００３９】
以上に示した検出装置２０によれば、観測対象装置１０における第１イベントおよび第２イベントの相関度を、容易に算出することができる。これにより、検出装置２０によれば、第１イベントおよび第２イベントの相関度を利用して、効率良く観測対象装置１０の検証およびデバック等をさせることができる。【００４０】
さらに、検出装置２０は、測定期間毎に順次に生成した相関度の変化点を検出し、検出した変化点の位置から、観測対象装置１０における動作が通常時と異なり不良が含まれている可能性が高い点（特異点）を特定することができる。そして、検出装置２０は、特定した特異点を後段の検証装置等に通知して、当該特異点近傍における観測対象装置１０の動作を検証させよい。これにより、検出装置２０によれば、効率良く観測対象装置１０の検証およびデバック等をさせることができる。【００４１】
さらに、検出装置２０によれば、特異点を検出するにあたり、当該特異点において発生すると予測されるイベントの発生パターン等を予め登録しておく必要がない。従って、検出装置２０によれば、予測が困難な不良等に応じて発生する特異点および発生頻度が少なく検出が困難であったイベントの発生パターンに応じて発生される特異点等も、確実に検出することができる。【００４２】
さらに、検出装置２０によれば、観測対象装置１０を長期間にわたり動作させた場合においても、観測対象装置１０の検証およびデバック等を適切に行うことができる。すなわち、観測対象装置１０を長期間連続動作させて内部状態を順次に取得し、検出装置２０により検出された特異点近傍の内部状態のみを保存し、特異点の近傍以外の観測対象装置１０の内部状態を順次に消去することができる。従って、検出装置２０から出力された相関度を利用して特異点を検出する検証装置またはデバック装置は、観測対象装置１０を連続動作させた場合に生じる大量の内部状態を保存しなくてよいので、観測対象装置１０を長期間にわたり動作させた場合においても記憶装置のオーバーフローを招くことなく検証等をすることができる。【００４３】
図３は、観測対象装置１０における第１イベントおよび第２イベントの発生パターンの一例を示す。図４は、観測対象装置１０が図３のパターンでイベントを発生した場合における、第２イベントカウント値が観測された頻度（観測回数）の一例を示す。図５は、観測対象装置１０が図３のパターンでイベントを発生した場合における、第１イベントカウント値が観測された頻度（観測回数）の一例を示す。【００４４】
例えば、観測対象装置１０が図３のパターン、すなわち、第１イベントが１回発生して、続いて、第２イベントが２回発生するパターンを繰り返して発生したとする。この場合、計測部２６は、図４に示すように、各第２イベントカウント値（ＡＢ０，ＡＢ１，ＡＢ２，ＡＢ３，ＡＢ４，ＡＢ５）について、観測回数（Ｆ（ＡＢ０）＝０，Ｆ（ＡＢ１）＝０，Ｆ（ＡＢ２）＝２４０，Ｆ（ＡＢ３）＝０，Ｆ（ＡＢ４）＝０，Ｆ（ＡＢ５）＝０）を算出する。また、この場合、計測部２６は、図５に示すように、各第１イベントカウント値（ＢＡ０，ＢＡ１，ＢＡ２，ＢＡ３，ＢＡ４，ＢＡ５）について、観測回数（Ｆ（ＢＡ０）＝２４０，Ｆ（ＢＡ１）＝２４０，Ｆ（ＢＡ２）＝０，Ｆ（ＢＡ３）＝０，Ｆ（ＢＡ４）＝０，Ｆ（ＢＡ５）＝０）を算出する。【００４５】
図６は、観測対象装置１０が図３のパターンでイベントを発生した場合における、第２イベントカウント値が観測されたか否かを表す値（観測回数）の一例を示す。図７は、観測対象装置１０が図３のパターンでイベントを発生した場合における、第１イベントカウント値が観測されたか否かを表す値（観測回数）の一例を示す。【００４６】
計測部２６は、図４に示す第２イベントカウント値のうち０回の場合を除いた第２イベントカウント値毎の観測回数（ＡＢ１〜ＡＢ５）のそれぞれを、Ｎｏｎｚｅｒｏ関数により、第２イベントカウント値が観測されたか否かを表す値に変換して、第２イベント回数毎の観測回数として出力する。すなわち、計測部２６は、図６に示すように、ＡＢ０を除いた各第２イベントカウント値（ＡＢ１，ＡＢ２，ＡＢ３，ＡＢ４，ＡＢ５）について、観測回数（Ｎｏｎｚｅｒｏ（Ｆ（ＡＢ１））＝０，Ｎｏｎｚｅｒｏ（Ｆ（ＡＢ２））＝１，Ｎｏｎｚｅｒｏ（Ｆ（ＡＢ３））＝０，Ｎｏｎｚｅｒｏ（Ｆ（ＡＢ４））＝０，Ｎｏｎｚｅｒｏ（Ｆ（ＡＢ５））＝０）を算出する。また、図５に示す第１イベントカウント値のうち０回の場合を除いた第１イベントカウント値毎の観測回数を、Ｎｏｎｚｅｒｏ関数により、第１イベントカウント値が観測されたか否かを表す値に変換して、第１イベント回数毎の観測回数として出力する。すなわち、計測部２６は、図７に示すように、ＢＡ０を除いた各第１イベントカウント値（ＢＡ１，ＢＡ２，ＢＡ３，ＢＡ４，ＢＡ５）について、観測回数（Ｎｏｎｚｅｒｏ（Ｆ（ＢＡ１））＝１，Ｎｏｎｚｅｒｏ（Ｆ（ＢＡ２））＝０，Ｎｏｎｚｅｒｏ（Ｆ（ＢＡ３））＝０，Ｎｏｎｚｅｒｏ（Ｆ（ＢＡ４））＝０，Ｎｏｎｚｅｒｏ（Ｆ（ＢＡ５））＝０）を算出する。【００４７】
図８は、観測対象装置１０が図３のパターンでイベントを発生した場合における、第１イベントカウント値を横軸に表し、第２イベントカウント値を縦軸に表す。さらに、図８は、第１イベントカウント値および第２イベントカウント値が検出されたか否かを表す値がともに１の部分の交点を１、少なくとも一方の値が０の部分の交点を０とした図を示す。【００４８】
算出部２８は、第２イベントカウント値が観測されたイベントカウント値の数、すなわち、観測回数（Ｎｏｎｚｅｒｏ（Ｆ（ＡＢｉ））が１となるイベントカウント値の数を算出する。また、算出部２８は、第１イベントカウント値が観測されたイベントカウント値の数、すなわち、観測回数（Ｎｏｎｚｅｒｏ（Ｆ（ＢＡｊ））が１となるイベントカウント値の数を算出する。観測対象装置１０が図３のパターンでイベントを発生した場合、算出部２８は、第２イベントカウント値が観測されたイベントカウント値の数として１を算出し、第１イベントカウント値が観測されたイベントカウント値の数として１を算出する。【００４９】
続いて、算出部２８は、第２イベントカウント値が観測されたイベントカウント値の数（本例の場合１個）と、第１イベントカウント値が観測されたイベントカウント値の数（本例の場合１個）との積（本例の場合  １×１＝１）を算出する。算出部２８は、一例として、観測回数が０でない第２イベントカウント値の数と、観測回数が０でない第１イベントカウント値の数との積として、図８に示す表における、第１イベントカウント値および第２イベントカウント値が検出されたか否かを表す値がともに１の部分の交点の数を算出してよい。【００５０】
そして、算出部２８は、算出した積（図８における表の１の数）の逆数（本例の場合"１"）を相関度として出力してよい。以上の図３〜図８に示すように、検出装置２０によれば、相関が比較的に強い第１イベントおよび第２イベントの相関度を、簡易に算出することができる。【００５１】
図９は、観測対象装置１０における第１イベントおよび第２イベントの発生パターンの他の一例を示す。図１０は、観測対象装置１０が図９のパターンでイベントを発生した場合における、第２イベントカウント値が観測されたか否かを表す値（観測回数）の一例を示す。図１１は、観測対象装置１０が図９のパターンでイベントを発生した場合における、第１イベントカウント値が観測されたか否かを表す値（観測回数）の一例を示す。【００５２】
例えば、観測対象装置１０が図９のパターン、すなわち、まず第１イベントが１回発生、次に第２イベントが２回発生、次に第１イベントが２回発生、次に第２イベントが３回発生、次に第１イベントが１回発生、次に第２イベントが１回発生するパターンを繰り返して発生したとする。この場合、計測部２６は、図１０に示すように、ＡＢ０を除いた各第２イベントカウント値（ＡＢ１，ＡＢ２，ＡＢ３，ＡＢ４，ＡＢ５）について、観測回数（Ｎｏｎｚｅｒｏ（Ｆ（ＡＢ１））＝１，Ｎｏｎｚｅｒｏ（Ｆ（ＡＢ２））＝１，Ｎｏｎｚｅｒｏ（Ｆ（ＡＢ３））＝１，Ｎｏｎｚｅｒｏ（Ｆ（ＡＢ４））＝０，Ｎｏｎｚｅｒｏ（Ｆ（ＡＢ５））＝０）を算出する。また、計測部２６は、図１１に示すように、ＢＡ０を除いた各第１イベントカウント値（ＢＡ１，ＢＡ２，ＢＡ３，ＢＡ４，ＢＡ５）について、観測回数（Ｎｏｎｚｅｒｏ（Ｆ（ＢＡ１））＝１，Ｎｏｎｚｅｒｏ（Ｆ（ＢＡ２））＝１，Ｎｏｎｚｅｒｏ（Ｆ（ＢＡ３））＝０，Ｎｏｎｚｅｒｏ（Ｆ（ＢＡ４））＝０，Ｎｏｎｚｅｒｏ（Ｆ（ＢＡ５））＝０）を算出する。【００５３】
図１２は、観測対象装置１０が図９のパターンでイベントを発生した場合における、第１イベントカウント値を横軸に表し、第２イベントカウント値を縦軸に表す。さらに、図１２は、第１イベントカウント値および第２イベントカウント値が検出されたか否かを表す値がともに１の部分の交点を１、少なくとも一方の値が０の部分の交点を０とした図を示す。【００５４】
算出部２８は、第２イベントカウント値が観測されたイベントカウント値の数、すなわち、観測回数（Ｎｏｎｚｅｒｏ（Ｆ（ＢＡｉ））が１となるイベントカウント値の数を算出する。また、算出部２８は、第１イベントカウント値が観測されたイベントカウント値の数、すなわち、観測回数（Ｎｏｎｚｅｒｏ（Ｆ（ＡＢi））が１となるイベントカウント値の数を算出する。観測対象装置１０が図９のパターンでイベントを発生した場合、算出部２８は、第２イベントカウント値が観測されたイベントカウント値の数として３を算出し、第１イベントカウント値が観測されたイベントカウント値の数として２を算出する。【００５５】
続いて、算出部２８は、第２イベントカウント値が観測されたイベントカウント値の数（本例の場合３個）と、第１イベントカウント値が観測されたイベントカウント値の数（本例の場合２個）との積（本例の場合  ３×２＝６）を算出する。算出部２８は、一例として、観測回数が０でない第２イベントカウント値の数と、観測回数が０でない第１イベントカウント値の数との積として、図８に示す表における、第１イベントカウント値および第２イベントカウント値が検出されたか否かを表す値がともに１の部分の交点の数を算出してよい。【００５６】
そして、算出部２８は、算出した積（図１２における表の１の数）の逆数（本例の場合"１／６"）を相関度として出力してよい。以上の図９〜図１２に示すように、検出装置２０によれば、相関が比較的に弱い第１イベントおよび第２イベントの相関度も、簡易に算出することができる。【００５７】
図１３（Ａ）は、互いに相関がある第１イベント（例えばタイマー割り込み）および第２イベント（例えば割り込み終了処理）のイベント発生パターンの一例を示す。図１３（Ｂ）は、図１３（Ａ）のイベント発生パターン中において、ある第２イベント（例えば割り込み終了処理）が遅れた場合の、イベント発生パターンの一例を示す。【００５８】
検出装置２０は、一例として、本来相関が強い第１イベントおよび第２イベントの相関度から、当該第１イベントおよび第２イベントが正常な動作をしているか否かを検証することができる。例えば、観測対象装置１０は、１００ミリ秒毎に１回起動するタイマー割り込みを用いて、関数Ｋを１ミリ秒間に１回起動したとする。この場合、タイマー割り込みを第１イベント、関数Ｋの起動を第２イベントとすると、検出装置２０は、第１イベントおよび第２イベントの相関度として、本来"１"を出力するはずである。従って、検出装置２０は、出力結果（相関度）が"１"であるか否かを判断することによって、観測対象装置１０が正常に動作しているか否かを検証することができる。【００５９】
さらに、例えば、検出装置２０は、関数Ｋの処理を本来１ミリ秒以内に完了するとする。この場合、図１３（Ａ）に示すように、タイマー割り込みを第１イベント、割り込み終了処理を第２イベントとすると、第２イベント（割り込み終了処理）は、次の第１イベント（タイマー割り込み）の前に発生する。従って、検出装置２０は、本来、出力結果（相関度）として"１"を出力する。【００６０】
しかし、なんらかの原因で、ある時刻において呼び出された関数Ｋが終了せずに割り込み終了処理が遅れた場合、当該割り込み終了処理（第２イベント）は、次のタイマー割り込み（第１イベント）より後に発生する。この場合、第１イベントと次の第１イベントの間に２回の第２イベントが発生する期間が生じるので、検出装置２０は、当該測定期間における相関度として、"１／２"を出力する。従って、検出装置２０は、相関が強い第１イベントおよび第２イベントの相関度が低い方向に変化したことを検出することによって、観測対象装置１０が正常に動作していない特異点を検出することができる。【００６１】
図１４は、優先順位逆転現象により、互いに相関の無いタスク（Ｔ２，Ｔ３）間に相関が発生する場合のタスク処理を示す。本来相関がないまたは相関が非常に弱い第１イベントおよび第２イベントにおいて、例えば、タスクに不適切な優先度が設定された場合、不適当な排他制御手順が設定された場合、長時間の割り込み禁止処理がされた場合、優先順位逆転現象が生じた場合等には、相関度が高くなる。従って、検出装置２０は、本来相関が無いまたは非常に弱い第１イベントおよび第２イベントの相関度が、高い値に変化したことを検出することによって、観測対象装置１０が正常に動作していない特異点を検出することができる。【００６２】
例えば、観測対象装置１０は、図１４に示すタスクＴ１、Ｔ２、Ｔ３を実行する。観測対象装置１０は、タスクＴ３を最も高い優先度で実行し、タスクＴ２を次の優先度で実行し、タスクＴ１を最も低い優先度で実行する。また、タスクＴ１およびタスクＴ３は、観測対象装置１０のリソースを排他的に共有する。そして、タスクＴ２およびタスクＴ３は、本来相関が無い。【００６３】
このような場合において、観測対象装置１０は、タスクＴ１を実行中にタスクＴ２を呼び出し、その後に、タスクＴ３を呼び出したとする。この場合、観測対象装置１０は、タスクＴ２を、タスクＴ１より優先して実行する。ここで、タスクＴ３は、タスクＴ２よりも更に優先度が高いので、本来タスクＴ２に対して割り込みして実行されるはずである。しかし、観測対象装置１０は、タスクＴ１がリソースを獲得しているので、タスクＴ１の完了（すなわち、タスクＴ２の完了）するまでタスクＴ３を実行できない。この結果、実質上、タスクＴ２は、タスクＴ３よりも優先して実行されてしまう。【００６４】
このようにタスクＴ２とタスクＴ３との優先順位が逆転する場合、本来、相関が無いはずのタスクＴ２およびタスクＴ３の間に、順序関係が生じて相関が強くなる。従って、検出装置２０は、本来相関が弱いはずのイベント間において相関が強くなった特異点を検出することにより、このような優先順位逆転現象等が生じる部分を検出することができる。
図１５は、本実施形態の第１変形例に係る計測部２６および算出部２８の構成を示す。本変形例は、図１に示した観測対象装置１０と略同一の構成および機能を採るので、以下相違点を除き説明を省略する。【００６５】
図１５は、本実施形態の第１変形例に係る計測部２６および算出部２８の構成を示す。本変形例は、図１に示した観測対象装置１０と略同一の構成および機能を採るので、以下相違点を除き説明を省略する。【００６６】
本変形例に係る計測部２６は、フラグ記憶部４２と、フラグ更新部４４とを有する。フラグ記憶部４２は、第１イベントカウント値毎に、当該第１イベントカウント値が観測されたか否かを示す第１フラグを観測回数として記録し、第２イベントカウント値毎に、当該第２イベントカウント値が観測されたか否かを示す第２フラグを観測回数として記録する。この場合において、フラグ記憶部４２は、一例として、０を除く第１イベントカウント値毎に第１フラグを記録し、０を除く第２イベントカウント値毎に第２フラグを記録してよい。【００６７】
フラグ更新部４４は、観測された第１イベントカウント値に対応する第１フラグを立てて論理値１とし、観測された第２イベントカウント値に対応する第２フラグを立てて論理値１とする。フラグ更新部４４は、一例として、測定期間の開始時において、フラグ記憶部４２に記録された第１フラグおよび第２フラグを論理値０にする。そして、フラグ更新部４４は、測定期間中において順次入力される第１イベントカウント値および第２イベントカウント値を判定し、対応するイベントカウント値の第１フラグおよび第２フラグを立てて論理値１としてよい。【００６８】
そして、算出部２８は、論理値１である第１フラグの数と、論理値１である第２フラグの数との積を含む関数により相関度を算出する。以上に示す第１変形例によれば、第１イベントカウント値毎の観測回数および第２イベントカウント値毎の観測回数を容易に生成することができる。【００６９】
図１６は、本実施形態の第２変形例に係る観測対象装置１０および検出装置２０の構成を示す。本変形例は、図１に示した観測対象装置１０および検出装置２０と略同一の構成および機能を採るので、以下相違点を除き説明を省略する。【００７０】
検出装置２０は、収集部３０と、更新禁止部３２とを更に備える。収集部３０は、観測対象装置１０の少なくとも一部の内部状態を予め定められたタイミングおきに内部状態記憶部３４に収集する。収集部３０は、一例として、観測対象装置１０の動作中において検出部２２による第１イベントおよび第２イベントの検出と並行して、観測対象装置１０の内部状態を内部状態記憶部３４に収集してよい。収集部３０は、観測対象装置１０の内部状態として、例えば、信号線の電圧、フリップフロップ（例えばレジスタ）の格納値、ステートマシーンの状態、割り込み信号の状態、メモリの格納値、タスクの実行状態、着目するアドレスの命令の実行状態、ソフトウェア割り込みの発生状態、変数値等を収集してよい。【００７１】
また、収集部３０は、一例として、収集した観測対象装置１０の内部状態を表す情報を時系列に順次に内部状態記憶部３４に記録してよい。また、収集部３０は、一例として、内部状態記憶部３４が所定容量以上の内部状態を表す情報を記憶した場合、時間的に前の情報から順に消去してよい。【００７２】
更新禁止部３２は、相関度が、予め設定された上限値より大きくなった場合、および、予め設定された下限値より小さくなった場合の少なくとも一方の場合において、内部状態記憶部３４に記憶された内部状態の更新を禁止して当該内部状態を保存する。更新禁止部３２は、一例として、直前の相関度から変化した場合において、内部状態記憶部３４に記憶された内部状態の更新を禁止して当該内部状態を保存してよい。以上に示す第２変形例によれば、不良が含まれている可能性が高い点における観測対象装置１０の内部状態を保存することができるので、効率良く観測対象装置１０の検証およびデバック等をすることができる。【００７３】
図１７は、本実施形態の第３変形例に係る観測対象装置１０および検出装置２０の構成を示す。システム１００は、観測対象装置１０と、検出装置２０とを備える。観測対象装置１０および検出装置２０は、それぞれ、図１に示した観測対象装置１０および検出装置２０と略同一の構成および機能を有するので、以下相違点を除き詳細な説明を省略する。【００７４】
観測対象装置１０および検出装置２０は、一つの装置内に組み込まれる。観測対象装置１０および検出装置２０は、一例として、１つのＩＣチップ、１つのモジュールまたは１つの基板上に実装されてよい。また、観測対象装置１０が、情報処理装置が観測対象のプログラムを実行することによって実現される場合、検出装置２０は、同一の情報処理装置上でプログラムを実行することにより実現されてもよい。以上に示す第３変形例によれば、観測対象装置１０自体に検出装置２０を組み込むので、検証時およびデバック時における観測対象装置１０に対する検出装置２０の接続処理等を省略でき、簡易に検証およびデバック等をすることができる。【００７５】
図１８は、本発明の実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続される命令処理装置であるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、及び表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される入力装置２０２５、通信インターフェイス２０３０、ハードディスクドライブ２０４０、及びＣＤ−ＲＯＭドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０を有するレガシー入出力部とを備える。【００７６】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００及びグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０及びＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。【００７７】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、他の装置から情報を入力する入力装置２０２５、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０を接続する。通信インターフェイス２０３０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ２０６０は、ＣＤ−ＲＯＭ２０９５からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。【００７８】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラムや、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０や、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を接続する。【００７９】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。【００８０】
コンピュータ１９００にインストールされ、コンピュータ１９００を検出装置２０として機能させるプログラムは、取得モジュールと、計測モジュールと、算出モジュールとを備える。コンピュータ１９００を検出装置２０として機能させるプログラムは、観測対象装置１０とは異なる他の情報処理装置（コンピュータ１９００）により実行されてもよいし、観測対象装置１０を実現する情報処理装置（コンピュータ１９００）自体により実行されてもよい。【００８１】
これらのプログラム又はモジュールは、ＣＰＵ２０００等に働きかけて、コンピュータ１９００を、取得部２４、計測部２６、算出部２８としてそれぞれ機能させる。より詳しくは、これらのプログラム又はモジュールは、情報処理装置または他の情報処理装置を、第２イベントカウント値および第１イベントカウント値を入力装置２０２５により取得する取得部２４として機能させる。また、これらのプログラム又はモジュールは、情報処理装置または他の情報処理装置を、観測回数をＣＰＵ２０００により計測して、ＲＡＭ２０２０またはハードディスクドライブ２０４０等の記憶装置に格納する計測部２６として機能させる。また、これらのプログラム又はモジュールは、情報処理装置または他の情報処理装置を、第１イベントおよび第２イベントの相関度をＣＰＵ２０００により算出する算出部２８として機能させる。【００８２】
以上に示したプログラム又はモジュールは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５の他に、ＤＶＤやＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。【００８３】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００８４】
【図１】本発明の実施形態に係る観測対象装置１０および検出装置２０の構成を示す。
【図２】検出装置２０による第１イベントおよび第２イベントの相関度の算出の処理の流れを示す。
【図３】観測対象装置１０における第１イベントおよび第２イベントの発生パターンの一例を示す。
【図４】観測対象装置１０が図３のパターンでイベントを発生した場合における、第２イベントカウント値が観測された頻度（観測回数）の一例を示す。
【図５】観測対象装置１０が図３のパターンでイベントを発生した場合における、第１イベントカウント値が観測された頻度（観測回数）の一例を示す。
【図６】観測対象装置１０が図３のパターンでイベントを発生した場合における、第２イベントカウント値が観測されたか否かを表す値（観測回数）の一例を示す。
【図７】観測対象装置１０が図３のパターンでイベントを発生した場合における、第１イベントカウント値が観測されたか否かを表す値（観測回数）の一例を示す。
【図８】観測対象装置１０が図３のパターンでイベントを発生した場合における、第１イベントカウント値を横軸に表し、第２イベントカウント値を縦軸に表す。
【図９】観測対象装置１０における第１イベントおよび第２イベントの発生パターンの他の一例を示す。
【図１０】観測対象装置１０が図９のパターンでイベントを発生した場合における、第２イベントカウント値が観測されたか否かを表す値（観測回数）の一例を示す。
【図１１】観測対象装置１０が図９のパターンでイベントを発生した場合における、第１イベントカウント値が観測されたか否かを表す値（観測回数）の一例を示す。
【図１２】観測対象装置１０が図９のパターンでイベントを発生した場合における、第１イベントカウント値を横軸に表し、第２イベントカウント値を縦軸に表す。
【図１３】（Ａ）は、互いに相関がある第１イベント（例えばタイマー割り込み）および第２イベント（例えば割り込み終了処理）のイベント発生パターンの一例を示す。（Ｂ）は、図１３（Ａ）のイベント発生パターン中において、ある第２イベント（例えば割り込み終了処理）が遅れた場合の、イベント発生パターンの一例を示す。
【図１４】優先順位逆転現象により、互いに相関の無いタスク（Ｔ２，Ｔ３）間に相関が発生する場合のタスク処理を示す。
【図１５】本実施形態の第１変形例に係る計測部２６および算出部２８の構成を示す。
【図１６】本実施形態の第２変形例に係る観測対象装置１０および検出装置２０の構成を示す。
【図１７】本実施形態の第３変形例に係る観測対象装置１０および検出装置２０の構成を示す。
【図１８】本発明の実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。
【符号の説明】
【００８５】
１０  観測対象装置
２０  検出装置
２２  検出部
２４  取得部
２６  計測部
２８  算出部
３０  収集部
３２  更新禁止部
３４  内部状態記憶部
４２  フラグ記憶部
４４  フラグ更新部
１００  システム
１９００  コンピュータ
２０００  ＣＰＵ
２０１０  ＲＯＭ
２０２０  ＲＡＭ
２０２５  入力装置
２０３０  通信インターフェイス
２０４０  ハードディスクドライブ
２０５０  フレキシブルディスク・ドライブ
２０６０  ＣＤ−ＲＯＭドライブ
２０７０  入出力チップ
２０７５  グラフィック・コントローラ
２０８０  表示装置
２０８２  ホスト・コントローラ
２０８４  入出力コントローラ
２０９０  フレキシブルディスク
２０９５  ＣＤ−ＲＯＭ
【図１】
2008072678.tif 000004
【図２】
2008072678.tif 000005
【図３】
2008072678.tif 000006
【図４】
2008072678.tif 000007
【図５】
2008072678.tif 000008
【図６】
2008072678.tif 000009
【図７】
2008072678.tif 000010
【図８】
2008072678.tif 000011
【図９】
2008072678.tif 000012
【図１０】
2008072678.tif 000013
【図１１】
2008072678.tif 000014
【図１２】
2008072678.tif 000015
【図１３】
2008072678.tif 000016
【図１４】
2008072678.tif 000017
【図１５】
2008072678.tif 000018
【図１６】
2008072678.tif 000019
【図１７】
2008072678.tif 000020
【図１８】
2008072678.tif 000021
【国際調査報告】
2008072678.tif 000022
2008072678.tif 000023
2008072678.tif 000024
2008072678.tif 000025