(57)【要約】  主機能構成部は、連続的な所定の動作を実行し、動作に伴うイベントを連続的に発生させる。デバッグ・トレース回路は、主機能構成部で発生するイベントと制御情報リストのいずれか１つのエントリの検出条件指示情報とを比較し、比較の結果に応じて、検出条件指示情報と対をなす動作指示情報に指定された動作を実行する。デバッグ・トレース回路は、これを制御情報リストに従って連続的に行い、事象を特定する。
2008099657.tif 000002
【特許請求の範囲】
【請求項１】
デバッグ用の機能を備えた半導体集積回路であって、
連続的な所定の動作を実行し、前記動作に伴うイベントを連続的に発生させる主機能構成部と、
対象イベントの発生を検出するための検出条件指示情報と、前記検出条件指示情報と前記主機能構成部で発生するイベントとの比較の結果に応じた動作を指定する動作指示情報と、の対からなるエントリを、観測が要求される事象を一連のイベントで特定するように複数連ねた制御情報リストを予め記憶しており、前記主機能構成部で発生するイベントと前記制御情報リストのいずれか１つのエントリの検出条件指示情報とを比較し、前記比較の結果に応じて、前記検出条件指示情報と対をなす前記動作指示情報に指定された動作を実行することを、前記制御情報リストに従って連続的に行い、前記事象を特定するデバッグ・トレース回路と、を有する半導体集積回路。
【請求項２】
前記動作指示情報は、イベントデータを出力するか否かを規定する出力指示情報と、前記デバッグ・トレース回路の内部動作を規定する制御指示情報とを含んでいる、請求項１に記載の半導体集積回路。
【請求項３】
前記動作指示情報は、前記検出条件指示情報に該当するイベントが発生したときの動作を指定するヒット時動作指示情報と、前記検出条件指示情報に該当しないイベントが発生したときの動作を指定するミス時動作指示情報と、を含んでいる、請求項１に記載の半導体集積回路。
【請求項４】
前記主機能構成部は動作ユニットを含んで構成されており、
前記動作指示情報は、前記動作ユニットを指定して動作を指示するための動作ユニット制御指示情報を含んでおり、
前記デバッグ・トレース回路は、前記動作ユニット制御指示情報に従って前記動作ユニットに制御信号を送信する、請求項１に記載の半導体集積回路。
【請求項５】
前記動作指示情報は、測定に関する動作の制御を指示する性能測定制御指示情報を含んでおり、
前記デバッグ・トレース回路は、前記性能測定制御指示情報に従って、測定に関する動作を制御する、請求項１に記載の半導体集積回路。
【請求項６】
連続的な所定の動作を実行し、前記動作に伴うイベントを連続的に発生させる主機能構成部を備えた半導体集積回路に組み込まれるデバッグ・トレース回路であって、
対象イベントの発生を検出するための検出条件指示情報と、前記検出条件指示情報と前記主機能構成部で発生するイベントとの比較の結果に応じた動作を指定する動作指示情報と、の対からなるエントリを、観測が要求される事象を一連のイベントで特定するように複数連ねた制御情報リストを予め記憶する制御情報リスト保持部と、
前記主機能構成部で発生するイベントと前記制御情報リストのいずれか１つのエントリの検出条件指示情報とを比較することを、前記制御情報リストに従って連続的に実行するイベント検出部と、
前記イベント検出部による前記比較の結果に応じて、前記検出条件指示情報と対をなす前記動作指示情報に指定された動作を実行する制御部と、を有するデバッグ・トレース回路。
【請求項７】
前記動作指示情報は、イベントデータを出力するか否かを規定する出力指示情報と、前記デバッグ・トレース回路の内部動作を規定する制御指示情報とを含んでいる、請求項６に記載のデバッグ・トレース回路。
【請求項８】
前記動作指示情報は、前記検出条件指示情報に該当するイベントが発生したときの動作を指定するヒット時動作指示情報と、前記検出条件指示情報に該当しないイベントが発生したときの動作を指定するミス時動作指示情報と、を含んでいる、請求項６に記載のデバッグ・トレース回路。
【請求項９】
前記主機能構成部は動作ユニットを含んで構成されており、
前記動作指示情報は、前記動作ユニットを指定して動作を指示するための動作ユニット制御指示情報を含んでおり、
前記デバッグ・トレース回路は、前記動作ユニット制御指示情報に従って前記動作ユニットに制御信号を送信する動作ユニット制御部を更に有する、請求項６に記載のデバッグ・トレース回路。
【請求項１０】
前記動作指示情報は、測定に関する動作の制御を指示する性能測定制御指示情報を含んでおり、
前記デバッグ・トレース回路は、前記性能測定制御指示情報に従って、測定に関する動作を制御する性能測定部を更に有する、請求項６に記載のデバッグ・トレース回路。
【請求項１１】
連続的な所定の動作を実行し、前記動作に伴うイベントを連続的に発生させる主機能構成部を備えた半導体集積回路に組み込まれたデバッグ・トレース回路によって前記主機能構成部の動作を観測するための半導体集積回路動作観測方法であって、
対象イベントの発生を検出するための検出条件指示情報と、前記検出条件指示情報と前記主機能構成部で発生するイベントとの比較の結果に応じた動作を指定する動作指示情報と、の対からなるエントリを、観測が要求される事象を一連のイベントで特定するように複数連ねた制御情報リストを予め記憶しておき、
前記主機能構成部で発生するイベントと前記制御情報リストのいずれか１つのエントリの検出条件指示情報とを比較し、前記比較の結果に応じて、前記検出条件指示情報と対をなす前記動作指示情報に指定された動作を実行することを、前記制御情報リストに従って連続的に行い、前記事象を特定して観測を行なう、半導体集積回路動作観測方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の動作トレースに関する。
【背景技術】
【０００２】
近年の組み込み機器の複雑化に伴い、その開発段階において効率よくデバッグを行う手法の確立が望まれている。多くの組み込み機器のデバッグでは、インサーキットエミュレータ（ＩＣＥ）を用いてブレークポイントを設定する方法、ステップ実行を行う方法などが用いられている。しかし、これらの方法は、システムにリアルタイム性が要求される場合に周辺とのタイミングの整合がとれず、利用できない場面が多い。【０００３】
このような状況のもと、機器内部の動作トレースを行い、その状態変化や挙動を観測することの重要性が増している。【０００４】
一方で、組み込み機器では製造コスト削減のために内蔵メモリ容量やＣＰＵ性能の余裕度が少ないことも多い。それ故、サーバーやパーソナルコンピュータに代表される一般的なコンピュータ機器で用いられているような、ソフトウェア処理により動作ログを保存する方法は組み込み機器には満足に使用できないことが多い。また、組み込み機器には用途に特化したシステムＬＳＩを用いられていることが多く、それ故、ソフトウェア処理のみでは観測できない、バスの挙動、周辺回路の挙動などの観測が重要な場合が多い。【０００５】
このため、一般的にはシステムＬＳＩの動作状態を調べる信号をモニタ端子からＬＳＩの外部に取り出す仕組みを設け、モニタ端子を利用して動作状態の変化をトレースデータとして保存し、解析する手法が有効となる。このような手法を採る技術が特開２００２−２４２０１号公報（以下“文献１”という）に開示されている。【０００６】
図１は、文献１に記載されたシステムＬＳＩの内部構成を示すブロック図である。図１のシステムＬＳＩは、ＭＰＵコア（制御回路）９１と、ＭＰＵコア９１を動作させるためのプログラムを格納した内蔵ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、記憶回路）９２と、ＭＰＵコア９１と信号の送受を行う周辺回路９３を備えている。また、システムＬＳＩには、システムＬＳＩ周辺装置５が接続されており、両者は互いに信号の送受を行う。内蔵ＲＡＭ９２には、ＭＰＵコア９１を動作させるためのプログラムの他に、デバッグ支援機能プログラムも内蔵されている。【０００７】
また、信号選択回路９３１を内蔵したデバッグ支援回路９１４がＭＰＵコア９１の内部に設けられている。周辺回路９３の内部には信号選択回路９３２が設けられている。さらに最終的なモニタ信号を選択する信号選択回路９３３が設けられている。そして、各信号選択回路９３１〜９３３の選択動作をモニタ信号制御回路４が制御する。【０００８】
文献１のシステムＬＳＩは、ＭＰＵコア９１の内部信号のいずれかを選択する信号選択回路９３１と、周辺回路９３の内部信号のいずれかを選択する信号選択回路９３２と、これら信号選択回路９３１，９３２のいずれかの出力を選択する信号選択回路９３３とを有し、各信号選択回路９３１〜９３３の選択動作を必要に応じて任意に切り替えることができる。それ故、システムＬＳＩの内部動作をリアルタイムに詳細に解析することができる。また、モニタ用の端子が限られている場合でも複数のモニタ信号を容易に切り替えて出力できる。
【発明の開示】
【０００９】
しかしながら、文献１に開示されたトレースシステムにはいくつかの問題がある。
【００１０】
文献１に開示されたトレースシステムは、トレースデータをＬＳＩの外部に出力することを前提としており、単位時間あたりの観測可能トレースデータ量が外部との通信線の速度や内蔵バッファ容量などにより制限される。それ故、内部の動作速度が速いシステム等において所望の動作を確認できない場合が生じることがある。
【００１１】
また、文献１に開示されたトレースシステムは、観測対象信号を選択されたものに限定してトレースデータ量を削減する方法を採っているため、観測対象の全ての信号の挙動から特定条件の判断をしたい場合にそれができない。
【００１２】
本発明の一目的は、接続する通信線の速度や内蔵バッファ容量の影響を受けずに、観測対象の任意の信号を観測しつつ所望の動作を観測することを可能にする手段を提供することである。
【００１３】
上記目的を達成するために、本発明の一態様による半導体集積回路は、デバッグ用の機能を備えた半導体集積回路であって、
連続的な所定の動作を実行し、前記動作に伴うイベントを連続的に発生させる主機能構成部と、
対象イベントの発生を検出するための検出条件指示情報と、前記検出条件指示情報と前記主機能構成部で発生するイベントとの比較の結果に応じた動作を指定する動作指示情報と、の対からなるエントリを、観測が要求される事象を一連のイベントで特定するように複数連ねた制御情報リストを予め記憶しており、前記主機能構成部で発生するイベントと前記制御情報リストのいずれか１つのエントリの検出条件指示情報とを比較し、前記比較の結果に応じて、前記検出条件指示情報と対をなす前記動作指示情報に指定された動作を実行することを、前記制御情報リストに従って連続的に行い、前記事象を特定するデバッグ・トレース回路と、を有している。
【００１４】
本発明のデバッグ・トレース回路は、連続的な所定の動作を実行し、前記動作に伴うイベントを連続的に発生させる主機能構成部を備えた半導体集積回路に組み込まれるデバッグ・トレース回路であって、
対象イベントの発生を検出するための検出条件指示情報と、前記検出条件指示情報と前記主機能構成部で発生するイベントとの比較の結果に応じた動作を指定する動作指示情報と、の対からなるエントリを、観測が要求される事象を一連のイベントで特定するように複数連ねた制御情報リストを予め記憶する制御情報リスト保持部と、
前記主機能構成部で発生するイベントと前記制御情報リストのいずれか１つのエントリの検出条件指示情報とを比較することを、前記制御情報リストに従って連続的に実行するイベント検出部と、
前記イベント検出部による前記比較の結果に応じて、前記検出条件指示情報と対をなす前記動作指示情報に指定された動作を実行する制御部と、を有している。
【００１５】
本発明の半導体集積回路動作観測方法は、連続的な所定の動作を実行し、前記動作に伴うイベントを連続的に発生させる主機能構成部を備えた半導体集積回路に組み込まれたデバッグ・トレース回路によって前記主機能構成部の動作を観測するための半導体集積回路動作観測方法であって、
対象イベントの発生を検出するための検出条件指示情報と、前記検出条件指示情報と前記主機能構成部で発生するイベントとの比較の結果に応じた動作を指定する動作指示情報と、の対からなるエントリを、観測が要求される事象を一連のイベントで特定するように複数連ねた制御情報リストを予め記憶しておき、
前記主機能構成部で発生するイベントと前記制御情報リストのいずれか１つのエントリの検出条件指示情報とを比較し、前記比較の結果に応じて、前記検出条件指示情報と対をなす前記動作指示情報に指定された動作を実行することを、前記制御情報リストに従って連続的に行い、前記事象を特定して観測を行なう。
【図面の簡単な説明】
【００１６】
【図１】文献１に開示されたトレースシステムの構成を示すブロック図である。
【図２】第１の実施形態の構成を示すブロック図である。
【図３】第１の実施形態における制御情報リストの構成図である。
【図４】第１の実施形態におけるデバッグ・トレースシステムの処理フローを示すフローチャートである。
【図５】第２の実施形態の構成を示すブロック図である。
【図６】第２の実施形態における制御情報リストの構成図である。
【図７】第２の実施形態におけるデバッグ・トレースシステムの処理フローを示すフローチャートである。
【図８】第３の実施形態の構成を示すブロック図である。
【図９】第３の実施形態における制御情報リストの構成図である。
【図１０】第３の実施形態におけるデバッグ・トレースシステムの処理フローを示すフローチャートである。
【図１１】第１および第２の実施例に共通する制御部およびイベント検出部の具体的構成を示すブロック図である。
【図１２】第１の実施例におけるデバッグ・トレースシステムの処理フローを示すフローチャートである。
【図１３】第１の実施例における制御情報リストの構成図である。
【図１４】第２の実施例におけるデバッグ・トレースシステムの処理フローを示すフローチャートである。
【図１５】第２の実施例における制御情報リストの構成図である。
【発明を実施するための最良の形態】
【００１７】
本発明の実施形態について図面を参照して詳細に説明する。【００１８】
（第１の実施形態）
図２は、本発明の第１の実施形態によるデバッグ・トレースシステムの全体構成を示すブロック図である。図２を参照すると、システムＬＳＩ１は、観測対象である主機能構成部２と、デバッグ・トレース回路３とを含んでいる。ここでいうシステムＬＳＩは、ＳｉＰ（Ｓｙｓｔｅｍ  ｉｎ  Ｐａｃｋａｇｅ）、ＭＣＰ（Ｍｕｌｔｉ  Ｃｈｉｐ  Ｍｏｄｕｌｅ）、ＰｏＰ（Ｐａｃｋａｇｅ  ｏｎ  Ｐａｃｋａｇｅ）などのように複数のチップを集積する形態のものを含む。また、システムＬＳＩの内部の通信の容量はＬＳＩ外部との通信の容量と比べて十分大きい一般的な構造であるとする。主機能構成部２は、システムＬＳＩ１の本来の所望機能を実現する回路であり、一般的な例としてＭＰＵコア２１および周辺回路２２から構成されている。デバッグ・トレース回路３は、イベント検出部３１、制御部３２、および制御情報リスト保持部３３を有している。制御情報リスト保持部３３は制御情報リスト４を保持する。【００１９】
図３は、第１の実施形態における制御情報リストの構成図である。図３を用いて、制御情報リスト保持部３３に保持される制御情報リスト４の詳細について説明する。【００２０】
制御情報リスト４は複数のエントリ４１が並んだリストであり、各エントリ４１は検出条件指示部４２と動作指示部４３で構成されている。検出条件指示部４２には、観測対象とするイベントの検出条件が記載されている。発生したイベントと検出条件との比較によって、検出条件に該当するイベント（対象イベント）を検出することができる。動作指示部４３には、対象イベントを検出した場合の制御部３２の動作が記載されている。制御部３２の動作として、データの出力に関する指示、次に参照するエントリの変更に関する指示、測定を終了する指示、ＬＳＩの外部（以下、単に「外部」という）に対してデータを出力する指示、外部に制御情報を出力する指示などを記載することができる。【００２１】
図４は、第１の実施形態におけるデバッグ・トレースシステムの処理フローを示すフローチャートである。図４のフローチャートを用いて、本実施形態のデバッグ・トレースシステムの動作について説明する。【００２２】
まず、外部からの観測開始指示を制御部３２が受信すると、制御部３２は自身が保持する、制御情報リスト４からのエントリ読み出し位置を初期化する（ステップＳ１）。この際、通常は制御情報リスト４の先頭を指定するが、用法に応じてその他の値としてもよい。【００２３】
その後、制御部３２は、制御情報リスト保持部３３において保持される制御情報リスト４からエントリ４１を１つ読み出し、その値を内部に保持する（ステップＳ２）。次に、制御部３２は読み出したエントリ４１の検出条件指示部４２に応じてイベント検出部３１の検出条件を設定する（ステップＳ３）。【００２４】
その後、イベント検出部３１は設定された検出条件とイベントの比較を続け、イベント発生を通知する条件に該当すると、イベント検出通知を制御部３２に対して行う（ステップＳ４）。イベント発生を通知する条件とは、イベントの発生を制御部３２に通知するか否かの条件である。例えば、検出条件に該当したときだけイベントの発生を通知することにしてもよく、また検出条件に該当したときと該当しなかったときの両方でイベントの発生を通知することにしてもよい。また、イベント検出部３１はイベントの詳細情報を内部に保持する。【００２５】
その後、制御部３２はエントリ４１の動作指示部４３を参照し（ステップＳ５）、動作指示部４３の指示内容に応じて制御動作を行なう（ステップＳ６）。この制御動作は、イベント検出部３１からイベントの詳細情報を読み出してイベントデータとして出力すること、制御情報リスト４に記載されているユーザーデータを出力すること、エラー通知や正常終了通知に代表される制御情報を出力することなどである。【００２６】
また、制御部３２は、エントリ４１の動作指示部４３の指示内容に終了指示が含まれているか否か判定する（ステップＳ７）。指示内容に終了指示が含まれていれば、制御部３２は測定を終了する。指示内容に終了指示が含まれていなければ、制御部３２は必要に応じてエントリ読み出し位置を変更し（ステップＳ８）、次のエントリ４１の読み出しに戻る。【００２７】
なお、ここでは説明を平易にするため動作を１つずつ実行する形で記述したが、動作の更なる高速化のために複数のステップを同時に実行してもよく、またパイプライン方式により流れ作業的に実行してもよい。【００２８】
本実施形態によれば、確認したい一連の動作に対応する複数のエントリ４１を含む制御情報リスト４を予め用意しておき、イベントの検出条件や制御を制御情報リスト４に従って次々に変更するので、数多くの信号変化の中から特定のイベントが特定の順序で発生したことを内部で確認し、トレースデータを記録することができる。その結果、システムＬＳＩの内部でのイベント系列の追跡が可能となるので、通信線の速度や内蔵バッファ容量などに影響されずに、高速な観測対象の任意の信号を観測しつつ所望動作を確認することができる。【００２９】
（第２の実施形態）
次に、本発明の第２の実施形態について図面を参照して詳細に説明する。【００３０】
図５は、本発明の第２の実施形態によるデバッグ・トレースシステムの全体構成を示すブロック図である。本実施形態のシステムＬＳＩは、主機能構成部２１が、ＭＰＵコア２１、ＤＳＰ、アクセラレータなど所定の一連の動作をそれぞれ実行する動作ユニットで構成されている。また、本実施形態のシステムＬＳＩは、図２に示した第１の実施形態に加え、デバッグ・トレース回路３に動作ユニット制御部３４を有している。動作ユニット制御部３４は、主機能構成部２内の動作ユニットを制御するための信号を送信する。【００３１】
図６は、第２の実施形態における制御情報リストの構成図である。図６の制御情報リスト構成図に示すように、制御情報リスト４の動作指示部４３内には動作ユニット制御指示部４３１がある。動作ユニット制御指示部４３１には、動作ユニット制御部３４に対して、主機能構成部２内のどの動作ユニットに指示を行うか、どのような制御指示を行うか、もしくは指示を行わないかなどに関する情報が記載される。制御指示としては例えば停止指示や起動指示などがある。【００３２】
図７は第２の実施形態におけるデバッグ・トレースシステムの処理フローを示すフローチャートである。図７のフローチャートを用いて、第２の実施形態のデバッグ・トレースシステムの動作について説明する。【００３３】
まず、外部からの観測開始指示を制御部３２が受信すると、制御部３２は自身が保持する、制御情報リストからのエントリ読み出し位置を初期化する（ステップＳ１１）。この際、通常は制御情報リストの先頭を指定するが、用法に応じてその他の値としてもよい。【００３４】
その後、制御部３２は、制御情報リスト保持部３３において保持される制御情報リスト４からエントリ４１を１つ読み出し、その値を内部に保持する（ステップＳ１２）。次に、制御部３２は読み出したエントリ４１の検出条件指示部４２に応じて、イベント検出部３１の検出条件を設定する（ステップＳ１３）。【００３５】
その後、イベント検出部３１は設定された検出条件とイベントとの比較を続け、イベント発生を通知する条件に該当すると、イベント検出通知を制御部３２に対して行う（ステップＳ１４）。イベント発生を通知する条件とは、イベントの発生を制御部３２に通知するか否かの条件である。例えば、検出条件に該当したときだけイベントの発生を通知することにしてもよく、また検出条件に該当したときと該当しなかったときの両方でイベントの発生を通知することにしてもよい。また、イベント検出部３１はイベントの詳細情報を内部に保持する。【００３６】
その後、制御部３２はエントリ４１の動作指示部４３を参照し（ステップＳ１５）、動作ユニットに対する制御指示があるか否か判定する（ステップＳ１６）。動作ユニットに対する制御指示があれば、制御部３２は動作ユニット制御指示を動作ユニット制御部３４に送信する。動作ユニット制御部３４は、受信した動作ユニット制御指示の指示内容に応じて主機能構成部２内の動作ユニットに対して制御動作を行なう（ステップＳ１７）。動作ユニットに対する制御としては、動作ユニットの停止、起動、状態参照などがある。【００３７】
ステップＳ１６の判定にて動作ユニットに対する制御指示がなかったとき、あるいはステップＳ１７の制御動作の後、制御部３２は、エントリ４１の動作指示部４３の指示内容に応じて、その他の制御動作を行なう（ステップＳ１８）。その他の制御動作とは、イベント検出部３１からイベントの詳細情報を読み出してデータ出力を行うこと、制御情報リスト４に記載されているユーザーデータを出力すること、エラー通知や正常終了通知に代表される制御出力を実施することなどである。【００３８】
また、制御部３２は、エントリ４１の動作指示部４３の指示内容に終了指示が含まれているか否か判定する（ステップＳ１９）。指示内容に終了指示が含まれていれば、制御部３２は測定を終了する。指示内容に終了指示が含まれていなければ、制御部３２は必要に応じてエントリ読み出し位置を変更し（ステップＳ２０）、次のエントリの読み出しに戻る。【００３９】
なお、ここでは説明を平易にするため動作を１つずつ実行する形で記述したが、動作の高速化のために複数のステップを同時に実行してもよく、またパイプライン方式により流れ作業的に実行してもよい。【００４０】
デバッグにおいてはプログラム実行中ある事象が発生した時点のメモリ内容などの状況を確認したい場合がある。しかし、動作ユニットが動作中だと、その動作が終わって確認をするときに、確認したい箇所のメモリ内容の値が変更されてしまっている可能性がある。また、単純にあるイベントの発生を基準とすると観測したい事象でないものが含まれることになるので対象外の事象の排除が重要な場合がある。【００４１】
そこで、本実施形態では、第１の実施形態と同様のイベント系列の追跡機能に加え、動作ユニット制御部３４を更に備え、制御情報リスト４内の動作ユニット制御指示部４３１を導入し、確認したい事象に合わせた特定の動作ユニットに対する制御指示を含む制御情報リスト４を用いる。これにより、動作ユニットを観測に都合が良いように制御することができる。例えば対象となる事象が発生した直後にある動作ユニットを停止することができる。そして、ある事象が発生した直後のメモリ内容などを確認し、その動作ユニットに関するデータを取得することができる。【００４２】
（第３の実施形態）
図８は、本発明の第３の実施形態によるデバッグ・トレースシステムの全体構成を示すブロック図である。図８を参照すると、本実施形態のシステムＬＳＩは、図２に示した第１の実施形態に加え、性能測定部３５を有している。性能測定部３５は、入力された指示情報に従って、イベントの発生頻度、バストラフィック量、遅延値などの性能を測定する。【００４３】
図９は、第３の実施形態における制御情報リストの構成図である。図９の制御情報リスト構成図に示すように、制御情報リスト４の動作指示部４３内には性能測定制御指示部４３２がある。性能測定制御指示部４３２には、性能測定を制御するための性能測定部３５に対する指示情報を記載される。指示情報には、例えば、どのような性能測定を行なうかを示すパラメータを設定する指示、性能測定の開始または終了の指示がある。【００４４】
図１０は第３の実施形態におけるデバッグ・トレースシステムの処理フローを示すフローチャートである。図１０のフローチャートを用いて、第３の実施形態のデバッグ・トレースシステムの動作について説明する。【００４５】
まず、外部からの観測開始指示を制御部３２が受信すると、制御部３２は自身が保持する、制御情報リストからのエントリ読み出し位置を初期化する（ステップＳ２１）。この際、通常は制御情報リストの先頭を指定するが、用法に応じてその他の値としてもよい。【００４６】
その後、制御部３２は、制御情報リスト保持部３３において保持される制御情報リスト４からエントリ４１を１つ読み出し、その値を内部に保持する（ステップＳ２２）。次に、制御部３２は読み出したエントリ４１の検出条件指示部４２に応じてイベント検出部３１の検出条件を設定する（ステップＳ２３）。【００４７】
その後、イベント検出部３１は設定された検出条件とイベントとの比較を続け、イベント発生を通知する条件に該当すると、イベント検出通知を制御部３２に対して行う（ステップＳ２４）。イベント発生を通知する条件とは、イベントの発生を制御部３２に通知するか否かの条件である。例えば、検出条件に該当したときだけイベントの発生を通知することにしてもよく、また検出条件に該当したときと該当しなかったときの両方でイベントの発生を通知することにしてもよい。また、イベント検出部３１はイベントの詳細情報を内部に保持する。【００４８】
その後、制御部３２はエントリ４１の動作指示部４３を参照し（ステップＳ２５）、性能測定に関する指示情報があるか否か判定する（ステップＳ２６）。【００４９】
性能測定の指示情報があれば、制御部３２は、性能測定の指示情報を性能測定部３５に送信する。性能測定部３５は、制御部３２から受信した指示情報の内容に応じて性能測定の制御を行なう（ステップＳ２７）。性能測定の制御は、例えば、測定対象や測定項目の設定、測定の開始や終了などである。【００５０】
ステップＳ２６の判定にて性能測定の制御指示がなかったとき、あるいはステップＳ２７の制御動作の後、制御部３２は、エントリ４１の動作指示部４３の指示内容に応じて、その他の制御動作を行なう（ステップＳ２８）。その他の制御動作とは、イベント検出部３１からイベントの詳細情報を読み出してデータ出力を行うこと、制御情報リスト４に記載されているユーザーデータを出力すること、エラー通知や正常終了通知に代表される制御出力を実施することなどである。【００５１】
また、制御部３２は、エントリ４１の動作指示部４３の指示内容に終了指示が含まれているか否か判定する（ステップＳ２９）。指示内容に終了指示が含まれていれば、制御部３２は測定を終了する。指示内容に終了指示が含まれていなければ、制御部３２は必要に応じてエントリ読み出し位置を変更し（ステップＳ３０）、次のエントリの読み出しに戻る。【００５２】
なお、ここでは説明を平易にするため動作を１つずつ実行する形で記述したが、動作の高速化のために複数のステップを同時に実行してもよく、またパイプライン方式により流れ作業的に実行してもよい。【００５３】
プログラムのデバッグやその性能のチューニングにおいては、プログラム実行中のある事象の発生に応じて測定対象や測定内容を変更したい場合がある。また、ある事象の発生に応じて測定を開始あるいは終了したい場合がある。また、単純にあるイベントの発生に応じて測定を行なうと、測定したいケースでないものが測定されてしまうことがある。その場合、どうにかして測定対象外の事象を排除することが重要である。【００５４】
そこで、本実施形態では、第１の実施形態と同様のイベント系列の追跡機能に加え、性能測定部３５を更に備え、制御情報リスト４内に性能測定制御指示部４３２を導入し、確認したい事象の発生に合わせた性能測定に関する制御指示を含む制御情報リスト４を用いる。これにより、事象に応じて測定の動作を制御することができる。例えば対象となる事象が発生した直後に測定を開始したり、終了したりできる。また、対象となる事象が発生した直後に測定対象や測定内容を変更することもできる。【００５５】
（第１の実施例）
次に、上述した実施形態の具体的な実施例について説明する。【００５６】
図１１は、イベント検出部３１および制御部３２の具体的構成を示すブロック図である。図１１を参照すると、イベント検出部３１は、検出条件保持部３１１、条件判定部３１２、およびイベント保持部３１３で構成されている。【００５７】
検出条件保持部３１１は、イベントの検出条件を保持する。条件判定部３１２は、主機能構成部２から制御部３２への信号を観測し、イベントが検出条件保持部３１１に保持されている検出条件に該当するか否か判定する。イベントが検出条件に該当すると、条件判定部３１２は制御部３２にイベント検出通知を送る。イベント保持部３１３は、条件判定部３１２で検出されたイベントの詳細を保持する。【００５８】
この構成により、イベント検出部３１は、制御部３２から設定された検出条件を検出条件保持部３１１に保持し、その検出条件と一致するイベントが発生すると、条件判定部３１２にてイベントの発生を検出し、イベント保持部３１３にてそのイベントの詳細を保持する。【００５９】
一方、制御部３２は、制御実行部３２１、エントリ読み出し位置保持部３２２、およびエントリ情報保持部３２３で構成されている。【００６０】
制御実行部３２１は、制御情報リスト４に応じた制御を実行し、またそれに伴う各部への動作指示を行なう。エントリ読み出し位置保持部３２２は、制御情報リスト保持部３３から次に読み出すべき、制御情報のエントリ４の位置を保持する。エントリ情報保持部３２３は、制御情報リスト保持部３３から読み出したエントリ４の情報を保持する。【００６１】
この構成により制御部３２は、エントリ読み出し位置保持部３２２に保持されている位置情報で示されているエントリ４を制御情報リスト保持部３３から読み出してエントリ情報保持部３２３に保持し、制御実行部３２１にて、エントリ情報保持部３２３に保持されたエントリ４に従った制御動作を実行する。【００６２】
図１２は第１の実施例におけるデバッグ・トレースシステムの処理フローを示すフローチャートである。図１３は第１の実施例における制御情報リストの構成図である。【００６３】
図１２および図１３を用いて本実施例における動作を説明する。【００６４】
なお、図１２のステップＳ３２〜ステップＳ３４は図４のステップＳ２に相当する。図１２のステップＳ３５〜ステップＳ３６は図４のステップＳ３に相当する。また、図１２のステップＳ３７〜ステップＳ４０は図４のステップＳ４に相当する。【００６５】
図１３の制御情報リスト４の例では、動作指示部４３内に、ヒット時制御指示部４３３、ヒット時出力指示部４３４、ミス時制御指示部４３８、およびミス時出力指示部４３９が含まれている。【００６６】
ヒット時制御指示部４３３は、検出条件に該当するイベントを検出したとき（ヒット時）のデバッグ・トレース回路３の内部の動作を規定する動作指示である。ヒット時出力指示部４３４は、ヒット時のイベントデータを出力するか否かを設定する情報である。【００６７】
ミス時制御指示部４３８は、検出条件以外のイベントを検出したとき（ミス時）の動作を規定する動作指示である。ミス時出力指示部４３９は、ミス時のイベントデータを出力するか否かを設定する情報である。【００６８】
なお、ここでは単純な例としてヒット時制御指示部４３３およびヒット時出力指示部４３４が１つずつの構成が示されている。しかし、本発明がこれに限定される訳ではない。他の例として、検出条件指示部４２内に複数の検出条件を設定し、動作指示部４３に複数のヒット時制御指示部４３３およびヒット時出力指示部４３４を設定することができるエントリ４１の構成としてもよい。そうすれば、検出されたイベントの内容に応じて異なる処理を行うようなエントリ４１の設定が可能となる。【００６９】
図１２を参照すると、まず、外部から制御部３２へ観測開始指示が入力されると、制御実行部３２１がエントリ読み出し位置保持部３２２に初期値を設定する（ステップＳ３１）。エントリ読み出し位置保持部３２２に初期値が設定されることにより、制御情報リスト４からのエントリを読み出す位置が初期化される。この際、通常は制御情報リスト４の先頭を指定するが、用法に応じてその他の値としてもよい。【００７０】
その後、制御部３２は、エントリ読み出し位置保持部３２２より制御情報リスト保持部３３に読み出し位置を通知する（ステップＳ３２）。制御情報リスト保持部３３は、通知された読み出し位置に該当するエントリ４１を出力する（ステップＳ３３）。制御部３２は、制御情報リスト保持部３３から出力されたエントリ４１を内部のエントリ情報保持部３２３に保存する（ステップＳ３４）。【００７１】
次に、制御実行部３２１は、エントリ情報保持部３２３に保存されているエントリ４１の検出条件指示部４２を参照し（ステップＳ３５）、そこに示されている検出条件をイベント検出部３１の検出条件保持部３１１に書き込む（ステップＳ３６）。【００７２】
その後、主機能構成部２からの信号が変化すると（ステップＳ３７）、イベント検出部３１内の条件判定部３１２が、信号の観測結果と検出条件保持部３１１に保持されている検出条件とから、イベントを通知する条件に該当するか否か判定する（ステップＳ３８）。この通知条件の判定にて、通知条件に該当するイベントの発生が検出されなければ、条件判定部３１２はステップＳ３７に戻って、通知条件に該当するイベントの発生が検出されるまで処理を繰り返す。また、通知条件の判定にて、通知条件に該当するイベントの発生が検出されれば、条件判定部３１２は制御部３２にイベント検出通知を送る（ステップＳ３９）。【００７３】
制御実行部３２１はイベント検出通知を受けると（ステップＳ４０）、それがヒット通知かミス通知かを判定する（ステップＳ４１）。ヒット通知とは、検出条件に該当することが通知条件に含まれている場合に、その通知条件（検出条件）に該当したことを通知する情報である。ミス通知とは、検出条件に該当しないことが通知条件に含まれている場合に、その通知条件に該当したこと（すなわち、検出条件に該当しなかったこと）を通知する情報である。【００７４】
ヒット通知であれば、制御実行部３２１は、エントリ情報保持部３２３に保存されているエントリ４１のヒット時制御指示部４３３を参照して実行すべき制御の内容を取得し、ヒット時出力指示部４３４を参照してイベントデータを出力する必要があるか否かの情報を取得する（ステップＳ４２）。また、ミス通知であれば、制御実行部３２１は、エントリ情報保持部３２３に保存されているエントリ４１のミス時制御指示部４３８を参照して実行すべき制御の内容を取得し、ミス時出力指示部４３９を参照してイベントデータを出力する必要があるか否かの情報を取得する（ステップＳ４３）。【００７５】
続いて、制御実行部３２１は、ステップＳ４２またはステップＳ４３で取得した情報から、イベントデータを出力する必要があるか否か判定する（ステップＳ４４）。イベントデータを出力する必要があれば、制御実行部３２１はイベント検出部３１のイベント保持部３１３から、保持されているイベントの詳細情報を読み出し、必要な情報をイベントデータとして外部に出力する（ステップＳ４５）。【００７６】
ステップＳ４４の判定にてイベントデータを出力する必要がなかったとき、またはステップＳ４５にてイベントデータを出力したとき、制御実行部３２１は、ステップＳ４２またはステップＳ４３で取得した制御内容に従って制御を実行する（ステップＳ４６）。制御内容はヒット時制御指示部４３３またはミス時制御指示部４３８に示されている。【００７７】
指示内容が「変更なし」であれば、制御実行部３２１は、何もせずにステップＳ３２に戻る。指示内容が「次へ」であれば、制御実行部３２１は、エントリ読み出し位置保持部３２２の値を次のエントリ位置を示す値に書き換え（ステップＳ４７）、ステップＳ３２に戻る。指示内容が「終了」であれば、制御実行部３２１は、終了通知を外部に出力して（ステップＳ４８）、測定を終了する。【００７８】
なお、ここでは説明を平易にするため動作を１つずつ実行する形で記述したが、動作の高速化のために複数のステップを同時に実行してもよく、またパイプライン方式により流れ作業的に実行してもよい。【００７９】
なお、図１２に示した動作は、イベント検出部３１の動作をどのように規定するかによって、実行されるステップの一部に差異が生じる。【００８０】
例えば、イベント検出部３１を、ステップＳ３８にて観測結果が検出条件に該当したときだけステップＳ３９にてイベント検出通知を送るという動作に規定すれば、制御実行部３２１の側ではステップＳ４１からステップＳ４３に移行する動作は発生することがない。【００８１】
また、例えば、イベント検出部３１を、ステップＳ３８にて観測結果が検出条件に該当してもしなくてもイベント検出通知を送るという動作に規定すれば、イベント検出部３１が、ステップＳ３８から「Ｎｏ」の経路でステップＳ３７に戻るという繰り返し動作は発生しない。【００８２】
また、ヒットの通知条件とミスの通知条件とを別個に規定し、イベント検出部３１は、いずれかに該当したときにイベント検出通知を制御部３２に送ることにすれば、イベント検出部３１および制御部３２はいずれも図１２に示した全てのステップを実行する可能性がある。【００８３】
また、通知条件を規定し、イベント検出部３１は、その通知条件に該当したときにイベント検出通知を制御部３２に送ることにし、その通知条件の中でヒット通知とする範囲を規定することにしても、イベント検出部３１および制御部３２はいずれも図１２に示した全てのステップを実行する可能性がある。【００８４】
次に、本実施例における観測方法について、図１３に示した具体的な制御情報リスト４の例を用いて説明する。ここでは、主機能構成部２からの信号が検出条件である設定値と一致したことを、検出条件に該当するイベントとして扱う例を示す。これはアクセス関連のイベントに相当する。例えば、バス、メモリ、あるいは周辺回路のレジスタへの特定のアクセスがあったことを、検出条件に該当するイベントとするものがある。アクセス関連のイベントでは、特定のアドレスへのアクセスがあったこと、データが特定の値であるアクセスがあったこと、アクセス元が特定の動作ユニットであるアクセスがあったことなどを検出すべきイベントとして設定することができる。また、他の例として、タイマ、カウンタ、あるいはレジスタの値が所定値になったことを、検出条件に該当するイベントとするものがある。【００８５】
なお、検出条件として特定の１つの値を設定することにしてもよいが他の方法であってもよい。他の例として、上限値と下限値で範囲を設定する方法がある。また、複数のビットからなる特定の設定値を定めた上で、設定値の各ビットについて観測信号との比較を有効とするか否かマスク値で設定する方法も考えられる。また、アクセス元毎に比較を有効とするか無効とするかをビットマップで設定する方法も考えられる。さらに、上述した複数の方法を併用することもできる。【００８６】
図１３を参照すると、制御情報リスト４には３つのエントリ４１１、４１２、４１３が含まれている。【００８７】
エントリ４１１の検出条件指示部４２には「アドレスＡのバスアクセス」が設定されている。したがってアドレスＡへのバスアクセスがあればエントリ４１１のイベントとして検出されることになる。同様に、エントリ４１２の検出条件指示部４２には「アドレスＢのバスアクセス」が設定されている。エントリ４１３の検出条件指示部４２には「アドレスＣのバスアクセス」が設定されている。【００８８】
また、エントリ４１１およびエントリ４１２のヒット時制御指示部４３３には「次へ」が設定されている。「次へ」は、次のエントリの監視へと進むことを示している。したがって、例えばエントリ４１１のイベントにヒットすると、次のエントリ４１２の監視に移行することになる。同様に、エントリ４１２のイベントにヒットすると、次のエントリ４１３の監視に移行することになる。【００８９】
また、エントリ４１３のヒット時制御指示部４３３には「終了」が設定されている。
「終了」は、そこで測定を終了することを示している。したがって、エントリ４１３のイベントにヒットすると、そこで測定が終了することになる。【００９０】
また、エントリ４１１〜４１３のヒット時出力指示部４３４には「出力」が設定されている。「出力」は、イベントデータを出力することを意味している。したがって、例えばエントリ４１１のイベントにヒットすると、そのときのイベントデータを出力することになる。同様に、エントリ４１２のイベントにヒットすると、そのときのイベントデータを出力することになる。エントリ４１３のイベントにヒットすると、そのときのイベントデータを出力することになる。【００９１】
また、エントリ４１１、４１２、４１３のミス時制御指示部４３８には「変更なし」が設定され、ミス時出力指示部４３９には「出力せず」が設定されている。「変更なし」は、エントリの変更を行わず同じエントリの監視を継続することを示している。
「出力せず」は、イベントデータを出力しないことを示している。したがって、例えばエントリ４１１のイベントにヒットしなかったとき、そのままエントリ４１１のイベントの監視を継続し、またイベントデータを出力しないことになる。同様に、エントリ４１２のイベントにヒットしなかったとき、そのままエントリ４１２のイベントの監視を継続し、またイベントデータを出力しない。エントリ４１３のイベントにヒットしなかったとき、そのままエントリ４１３のイベントの監視を継続し、またイベントデータを出力しない。【００９２】
以上のように設定された制御情報リスト４を用いて測定を開始すると、まず参照するエントリの初期値としてエントリ４１１が指定される。主機能構成部２からの信号がアドレスＡへのバスアクセス以外のものであれば、参照する監視対象のエントリを変更せず、イベントデータを出力しない、そして、アドレスＡへのバスアクセスが観測されるのを待つ状態が続く。【００９３】
アドレスＡへのバスアクセスがあるとエントリ４１１のイベントが検出される。そうすると、参照するエントリがエントリ４１２へと変更され、またイベントデータとして、アドレスＡへのアクセスのデータ値が出力される。【００９４】
同様に、エントリ４１２を参照した観測では、アドレスＢへのバスアクセスが観測されるまで待つ状態が続き、それが観測されるとイベントデータが出力され、エントリ４１３を参照した観測に移行する。エントリ４１３を参照した観測で、アドレスＣへのバスアクセスが観測されるとイベントデータを出力して測定が終了する。【００９５】
以上、図１３のように設定された制御情報リスト４を用いることにより、あるプログラムの実行において様々なイベントに混ざってアドレスＡ、Ｂ、Ｃの順番でバスアクセスが発生したとき、その各バスアクセスのイベントデータ（例えばデータ値）をトレースデータとして取得することができる。不要なデータが取得されないので、データの記録に必要なバッファ容量が大幅に削減される。また、システムＬＳＩの外部から逐次操作をしなくても制御情報リスト４に従ってイベントの検出とデータの記録が行なわれるので、外部との通信線の速度に制約されない。【００９６】
（第２の実施例）
第２の実施例のイベント検出部３１および制御部３２の具体的構成は図１１に示した第１の実施例のものと同様である。【００９７】
図１４は第２の実施例におけるデバッグ・トレースシステムの処理フローを示すフローチャートである。図１５は第２の実施例における制御情報リストの構成図である。【００９８】
図１４および図１５を用いて本実施例における動作を説明する。【００９９】
なお、図１４のステップＳ５２〜ステップＳ５４は図４のステップＳ２に相当する。図１４のステップＳ５５〜ステップＳ５６は図４のステップＳ３に相当する。図１４のステップＳ５７〜ステップＳ６０は図４のステップＳ４に相当する。【０１００】
図１５に示した制御情報リスト４の例では、図１３の例と同様に、動作指示部４３内に、ヒット時制御指示部４３３、ヒット時出力指示部４３４、ミス時制御指示部４３８、およびミス時出力指示部４３９が含まれている。【０１０１】
ヒット時制御指示部４３３は、検出条件に該当するイベントを検出したとき（ヒット時）のデバッグ・トレース回路３の内部の動作を規定する動作指示である。ヒット時出力指示部４３４は、ヒット時のイベントデータを出力するか否かを設定する情報である。【０１０２】
ミス時制御指示部４３８は、検出条件以外のイベントを検出したとき（ミス時）の動作を規定する動作指示である。ミス時出力指示部４３９は、ミス時のイベントデータを出力するか否かを設定する情報である。【０１０３】
なお、ここでは単純な例としてヒット時制御指示部４３３およびヒット時出力指示部４３４が１つずつの構成が示されている。しかし、本発明がこれに限定される訳ではない。他の例として、検出条件指示部４２内に複数の検出条件を設定し、動作指示部４３に複数のヒット時制御指示部４３３およびヒット時出力指示部４３４を設定することができるエントリ４１の構成としてもよい。そうすれば、検出されたイベントの内容に応じて異なる処理を行うようなエントリ４１の設定が可能となる。【０１０４】
図１４を参照すると、まず、外部から制御部３２へ観測開始指示が入力されると、制御実行部３２１がエントリ読み出し位置保持部３２２に初期値を設定する（ステップＳ５１）。エントリ読み出し位置保持部３２２に初期値が設定されることにより、制御情報リスト４からのエントリを読み出す位置が初期化される。この際、通常は制御情報リスト４の先頭を指定するが、用法に応じてその他の値としてもよい。【０１０５】
その後、制御部３２は、エントリ読み出し位置保持部３２２より制御情報リスト保持部３３に読み出し位置を通知する（ステップＳ５２）。制御情報リスト保持部３３は、通知された読み出し位置に該当するエントリ４１を出力する（ステップＳ５３）。制御部３２は、制御情報リスト保持部３３から出力されたエントリ４１を内部のエントリ情報保持部３２３に保存する（ステップＳ５４）。【０１０６】
次に、制御実行部３２１は、エントリ情報保持部３２３に保存されているエントリ４１の検出条件指示部４２を参照し（ステップＳ５５）、そこに示されている検出条件をイベント検出部３１の検出条件保持部３１１に書き込む（ステップＳ５６）。【０１０７】
その後、主機能構成部２からの信号が変化すると（ステップＳ５７）、イベント検出部３１内の条件判定部３１２が、信号の観測結果と検出条件保持部３１１に保持されている検出条件とから、イベントを通知する条件に該当するか否か判定する（ステップＳ５８）。この通知条件の判定にて、通知条件に該当するイベントの発生が検出されなければ、条件判定部３１２はステップＳ５７に戻って、通知条件に該当するイベントの発生が検出されるまで処理を繰り返す。また、通知条件の判定にて、通知条件に該当するイベントの発生が検出されれば、条件判定部３１２は制御部３２にイベント検出通知を送る（ステップＳ５９）。【０１０８】
制御実行部３２１はイベント検出通知を受けると（ステップＳ６０）、それがヒット通知かミス通知かを判定する（ステップＳ６１）。ヒット通知とは、検出条件に該当することが通知条件に含まれている場合に、その通知条件（検出条件）に該当したことを通知する情報である。ミス通知とは、検出条件に該当しないことが通知条件に含まれている場合に、その通知条件に該当したこと（すなわち、検出条件に該当しなかったこと）を通知する情報である。【０１０９】
ヒット通知であれば、制御実行部３２１は、エントリ情報保持部３２３に保存されているエントリ４１のヒット時制御指示部４３３を参照して実行すべき制御の内容を取得し、ヒット時出力指示部４３４を参照してイベントデータを出力する必要があるか否かの情報を取得する（ステップＳ６２）。また、ミス通知であれば、制御実行部３２１は、エントリ情報保持部３２３に保存されているエントリ４１のミス時制御指示部４３８を参照して実行すべき制御の内容を取得し、ミス時出力指示部４３９を参照してイベントデータを出力する必要があるか否かの情報を取得する（ステップＳ６３）。【０１１０】
続いて、制御実行部３２１は、ステップＳ４２またはステップＳ６３で取得した情報から、イベントデータを出力する必要があるか否か判定する（ステップＳ６４）。イベントデータを出力する必要があれば、制御実行部３２１はイベント検出部３１のイベント保持部３１３から、保持されているイベントの詳細情報を読み出し、必要な情報をイベントデータとして外部に出力する（ステップＳ６５）。【０１１１】
ステップＳ６４の判定にてイベントデータを出力する必要がなかったとき、またはステップＳ６５にてイベントデータを出力したとき、制御実行部３２１は、ステップＳ６２またはステップＳ６３で取得した制御内容に従って制御を実行する（ステップＳ６６）。制御内容はヒット時制御指示部４３３またはミス時制御指示部４３８に示されている。【０１１２】
指示内容が「変更なし」であれば、制御実行部３２１は、何もせずにステップＳ５２に戻る。指示内容が「次へ」であれば、制御実行部３２１は、エントリ読み出し位置保持部３２２の値を次のエントリ位置を示す値に書き換え（ステップＳ６７）、ステップＳ５２に戻る。指示内容が「移動」であれば、制御実行部３２１は、エントリ読み出し位置保持部３２２の値を指定されたエントリ位置を示す値に書き換え、ステップＳ５２に戻る（ステップＳ６８）。指示内容が「終了」であれば、制御実行部３２１は、終了通知を外部に出力して（ステップＳ６９）、測定を終了する。指示内容が「エラー」であれば、制御実行部３２１は、エラー通知を外部に出力して（ステップＳ７０）、測定を終了する。【０１１３】
なお、ここでは説明を平易にするため動作を１つずつ実行する形で記述したが、動作の高速化のために複数のステップを同時に実行してもよく、またパイプライン方式により流れ作業的に実行してもよい。【０１１４】
次に、本実施例における観測方法について、図１５に示した具体的な制御情報リスト４の例を用いて説明する。ここでは、主機能構成部２からの特定の信号の変化を、検出条件に該当するイベントとして扱う例を示す。例えば、割り込み信号あるいは制御信号が有効になったこと、あるいは無効になったことを、検出条件に該当するイベントとするものがある。また、ある動作ユニットのステートが変化したことをイベントとするものがある。【０１１５】
なお、検出条件として特定の１つの信号についてイベントの検出条件を設定することにしてもよいが他の方法であってもよい。他の例として、複数のイベントの検出条件の値を設定した上で、それらのイベント毎に有効とするか無効とするかをビットマップで設定する方法も考えられる。これにより特定のイベント群を指定することができるようになる。【０１１６】
図１５を参照すると、制御情報リスト４には３つのエントリ４１４、４１５、４１６、４１７が含まれている。【０１１７】
エントリ４１４の検出条件指示部４２には「イベントＡ」が設定されている。したがってイベントＡが発生すればエントリ４１４のイベントとして検出されることになる。同様に、エントリ４１５の検出条件指示部４２には「イベントＢ」が設定されている。エントリ４１６の検出条件指示部４２には「イベントＣ」が設定されている。エントリ４１７の検出条件指示部４２には「イベントＤ」が設定されている。【０１１８】
また、エントリ４１４、エントリ４１５、およびエントリ４１６のヒット時制御指示部４３３には「次へ」が設定されている。「次へ」は、次のエントリの監視へと進むことを示している。したがって、例えばエントリ４１４のイベントにヒットすると、次のエントリ４１５の監視に移行することになる。同様に、エントリ４１５のイベントにヒットすると、次のエントリ４１６の監視に移行することになる。エントリ４１６のイベントにヒットすると、次のエントリ４１７の監視に移行することになる。【０１１９】
また、エントリ４１７のヒット時制御指示部４３３には「終了」が設定されている。「終了」は、そこで測定を終了することを示している。したがって、エントリ４１７のイベントにヒットすると、そこで測定が終了することになる。【０１２０】
また、エントリ４１４〜４１７のヒット時出力指示部４３４と、エントリ４１５〜４１７のミス時出力指示部４３９には「出力」が設定されている。「出力」は、イベントデータを出力することを意味している。したがって、例えばエントリ４１４のイベントにヒットすると、そのときのイベントデータを出力することになる。同様に、エントリ４１５、４１６、４１７のイベントにヒットすると、そのときのイベントデータを出力することになる。エントリ４１５、４１６、４１７のイベントにミスヒットすると、そのときのイベントデータを出力することになる。【０１２１】
また、エントリ４１４、４１７のミス時制御指示部４３８には「変更なし」が設定されている。「変更なし」は、エントリの変更を行わず同じエントリの監視を継続することを示している。したがって、エントリ４１４、４１７のイベントにヒットしなかったとき、そのままエントリ４１４のイベントの監視を継続することになる。【０１２２】
また、エントリ４１４のミス時出力指示部４３９には「出力せず」が設定されている。「出力せず」は、イベントデータを出力しないことを示している。したがって、エントリ４１４のイベントにヒットしなかったとき、イベントデータを出力しないことになる。【０１２３】
また、エントリ４１５のミス時制御指示部４３８には「エラー」が設定されている。「エラー」は、エラー通知を外部に出力し、そこで測定を終了することを示している。したがって、エントリ４１５のイベントにミスヒットすると、エラー通知が出力され、そこで測定が終了することになる。【０１２４】
また、エントリ４１６のミス時制御指示部４３８には「４１４に移動」が設定されている。「移動」は、指定されたエントリの監視へと進むことを示している。ここでは移動先として「４１４」が設定されている。したがって、エントリ４１６のイベントにミスヒットすると、エントリ４１４の監視に移行することになる。【０１２５】
以上のように設定された制御情報リスト４を用いて測定を開始すると、まず参照エントリの初期値としてエントリ４１４が指定される。これによりイベントＡの監視が開始される。検出されたイベントがイベントＡ以外であれば、参照する監視対象のエントリを変更せず、イベントデータを出力しない。そして、イベントＡが観測されるのを待つ状態が続く。イベントＡが発生すると、エントリ４１４のイベントが検出される。そうすると、参照するエントリがエントリ４１５へと変更され、またイベントデータが出力される。イベントデータは例えば検出されたイベントに関する情報である。【０１２６】
イベントＡが観測された後、次のイベントが観測されると、エントリ４１５の内容が参照される。エントリ４１５では、イベントＢ以外のイベントが検出されたときエラー通知を出力し、イベントデータを出力して測定が終了する。エラー終了した場合はイベントデータを調査することにより、何が起きたかを確認することができる。【０１２７】
一方、イベントＢが観測されれば、参照するエントリをエントリ４１６へ変更し、イベントデータを出力する。イベントＢが観測された後、次のイベントが検出されると、エントリ４１６の内容が参照される。エントリ４１６では、イベントＣ以外のイベントが検出されたとき、エントリ４１４に戻ってイベントＡの監視から開始する。イベントＣでないことがエラーではないが、トレースの条件でもないためイベントＡの監視からやり直している。【０１２８】
イベントＣが検出されると、その後はエントリ４１７の内容が参照される。エントリ４１７では、イベントＤ以外のイベントが検出した場合にはイベントデータを出力するが参照するエントリは変更しない。これによりイベントＤが検出されるまで全てのイベントのイベントデータをトレースデータとして記録することになる。そして、イベントＤが検出されると、そこで終了通知を出力して測定を終了する。【０１２９】
以上、図１５のように設定された制御情報リスト４を用いることにより、あるプログラムの実行においてイベントＡ、Ｂ、Ｃが連続して発生したことでイベントのトレースを開始し、イベントＤの発生によりトレースを終了することができる。【０１３０】
以上、実施形態および実施例を参照して本発明を説明したが、本発明は実施形態および実施例に限定されるものではない。クレームに定義された本発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。【０１３１】
この出願は、２００７年２月１４日に出願された日本出願特願２００７−０３３３４０を基礎として優先権の利益を主張するものであり、その開示の全てを引用によってここに取り込む。
【図１】
2008099657.tif 000003
【図２】
2008099657.tif 000004
【図３】
2008099657.tif 000005
【図４】
2008099657.tif 000006
【図５】
2008099657.tif 000007
【図６】
2008099657.tif 000008
【図７】
2008099657.tif 000009
【図８】
2008099657.tif 000010
【図９】
2008099657.tif 000011
【図１０】
2008099657.tif 000012
【図１１】
2008099657.tif 000013
【図１２】
2008099657.tif 000014
【図１３】
2008099657.tif 000015
【図１４】
2008099657.tif 000016
【図１５】
2008099657.tif 000017
【国際調査報告】
2008099657.tif 000018
2008099657.tif 000019
2008099657.tif 000020