(57)【要約】【課題】イベント検出した回数をトレース情報に付加してイベント発生回数の解析を容易にしたＣＰＵ開発支援装置を提供する。【解決手段】ＣＰＵのバスをトレースする手段と、該バストレース手段がトレースした情報を記録する手段と、バスのイベントを検出する手段とを備えたＣＰＵ開発支援装置において、イベント検出手段（イベント検出回路２１）で検出したイベント検出回数をカウントする手段（イベントカウンタ回路２３）と、バストレース手段（トレース情報取得回路２４）が得たトレース情報とイベントカウンタ手段が得たイベント検出回数情報とを付加する手段（付加回路２５）とを備え、トレースメモリ手段（トレースメモリ２６）にトレース結果を記録する際に、トレース情報とイベント検出回数情報とを合わせて記録する。【選択図】    図１
2004199559.tif 000002
【特許請求の範囲】
【請求項１】
エミュレート対象のＣＰＵのバスをトレースするバストレース手段と、該バストレース手段がトレースした情報を記録するトレースメモリ手段と、前記バスに生じるイベントを検出するイベント検出手段とを備えたＣＰＵ開発支援装置において、
前記イベント検出手段で検出したイベント検出回数をカウントするイベントカウンタ手段と、
前記バストレース手段が得たトレース情報と前記イベントカウンタ手段が得たイベント検出回数情報とを付加するイベントカウンタ付加手段とを備え、
前記トレースメモリ手段にトレース結果を記録する際に、前記トレース情報とイベント検出回数情報とを合わせて記録することを特徴とするＣＰＵ開発支援装置。
【請求項２】
請求項１記載のＣＰＵ開発支援装置において、
イベントの書込時点を取得するタイムスタンプ手段と、
前記トレースメモリに記録する情報を、前記イベントカウンタ手段が得たイベント検出回数情報と、前記タイムスタンプ手段が得た書込時点情報とを、切り替え可能な切替手段と
を備えたことを特徴とするＣＰＵ開発支援装置。
【請求項３】
請求項１〜請求項２記載のＣＰＵ開発支援装置において、
前記トレースメモリに記録する情報を、前記トレース情報とイベント検出回数情報と書込時点情報との何れかを選択可能な選択手段を備えたことを特徴とするＣＰＵ開発支援装置。
【請求項４】
請求項１〜請求項３記載のＣＰＵ開発支援装置において、
前記トレースメモリは、トレース情報とイベント検出回数情報との組合せ情報と、トレース情報と書込時点情報との組合せ情報と、イベント検出回数情報のみとを、それぞれ記録しておき、前記それぞれのトレース結果を表示することを特徴とするＣＰＵ開発支援装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＰＵ開発支援装置に関し、特に、ＣＰＵをエミュレートする場合に、イベント検出した回数をトレース情報に付加してイベント発生回数の解析を容易にしたＣＰＵ開発支援装置に関する。
【０００２】
【従来の技術】
従来から、評価対象となるＣＰＵが搭載された回路基板上において、当該ＣＰＵの動作をエミュレートするために、ＣＰＵ開発支援装置（In Circuit Emulator：エミュレータ）を使用してきた。
図７は、従来のＣＰＵ開発支援装置の一例の機能ブロック図である。
このＣＰＵ開発支援装置１００は、評価対象となるＣＰＵが搭載される回路基板のデバッグ作業をより容易に行うことを目的としたものである。
【０００３】
この目的を達成するために、エバチップ１１３は、評価対象マイコンに搭載されたＣＰＵの動作をエミュレートする場合に、内部ＲＡＭ１１３ａに書込んだデータを外部にも出力し、ロギングコントローラ１２３を介してデータロギング用メモリ１２２に時系列で書込む。
【０００４】
また、データロギング用メモリ１２２にデータを書込む場合には、ロギングコントローラ１２３のタイムスタンプデータ付加部１２３ｂにより書き込み時点を示すタイムスタンプデータを付加する。即ち、評価用ＣＰＵがエミュレーション動作を所定期間に渡って行った場合に、データが変化して行く履歴がデータロギング用メモリ１２２に記憶される。
【０００５】
このようにすれば、作業者は、例えば、評価用チップによるエミュレーション動作の終了後に、データロギング用メモリに時系列で記憶されているデータの内容をトレース手段１２５により、別個に記憶されている評価用チップの命令実行順序と併せて解析することができる。従って、従来とは異なり、データロガーを別個に用意することなく、プログラムが複雑な場合であってもデバッグを容易に行うことができ、作業性が良好となる（特許文献１）。
【０００６】
【特許文献１】
特開2000-194580号公報（段落番号0010〜0018、図１）
【０００７】
【発明が解決しようとする課題】
しかしながら、特許文献１の提案では、以下のような問題点がある。
問題点の一つ目は、ＣＰＵ開発支援装置のトレースは、プログラム実行をトレースするが、トレースメモリ（データロギング用メモリ）の制限の為、全てのトレース情報を記録することはできない。
【０００８】
従って、トレースメモリに記録された情報はプログラム実行の一部しか記録されない。
また、トレース情報にはタイムスタンプのように実行時間情報を取得することができ、タイムスタンプから実行回数を計算することができるが、不定期に実行されるプログラム，外部要因による実行されるプログラム等の実行回数をタイムスタンプから計算することは困難である。
問題点の二つ目は、タイムスタンプのトレースメモリの記録と、イベント検出回数のトレースメモリの記録を切り替えてトレースメモリに記録することができない。その結果、例えば実行回数を計測することが出来ないという不都合が生じる。
【０００９】
問題点の三つ目は、インサーキットエミュレータ（ＣＰＵ開発支援装置）のトレースは、プログラム実行をトレースするが、プログラム内容によっては条件待ち，回数実行等の同一のプログラムを実行する場合が多く、ループしている場合、無駄なトレース情報がトレース蓄積されている。トレースメモリの使用効率向上のため、無駄なトレース情報をトレースメモリに記録しないが、トレースに記憶しないループ回数をカウントすることができないので、トレースされなかった回数が取得できない。
【００１０】
問題点の四つ目は、デバッガはトレースメモリにトレース情報とイベント検出回数、トレース情報とタイムスタンプ、イベント検出回数のみをトレース結果としてトレースに表示する機能を持たない。その結果、例えばトレースメモリに記録されたトレース情報を正確に表示出来ないという不都合が生じる。
【００１１】
そこで本発明の課題は、ＣＰＵをエミュレートする場合に、イベント検出した回数をトレース情報に付加してイベント発生回数の解析を容易にしたＣＰＵ開発支援装置を提供することである。
【００１２】
【課題を解決するための手段】
前記課題を解決するために請求項１の発明は、エミュレート対象のＣＰＵのバスをトレースするバストレース手段と、該バストレース手段がトレースした情報を記録するトレースメモリ手段と、前記バスに生じるイベントを検出するイベント検出手段とを備えたＣＰＵ開発支援装置において、
前記イベント検出手段（図１のイベント検出回路２１）で検出したイベント検出回数をカウントするイベントカウンタ手段（イベントカウンタ回路２３）と、
前記バストレース手段（トレース情報取得回路２４）が得たトレース情報と前記イベントカウンタ手段が得たイベント検出回数情報とを付加するイベントカウンタ付加手段（付加回路２５）とを備え、
前記トレースメモリ手段（トレースメモリ２６）にトレース結果を記録する際に、前記トレース情報とイベント検出回数情報とを合わせて記録する構成としてある。
【００１３】
このようにすれば、トレースメモリ手段に記録されたイベント検出回数を取得することができ、例えば図２に示すように、フレーム，アドレス，データ，命令，ステータスと共に、イベント検出回数（カウント）を表示することができるので、作業者は効率的なデバッグを行うことができる。
【００１４】
また、請求項２では、請求項１記載のＣＰＵ開発支援装置において、
イベントの書き込み時点を取得するタイムスタンプ手段（図３のタイムスタンプ回路３２）と、
前記トレースメモリ手段（２６）に付加する情報を、前記イベントカウンタ手段（イベントカウンタ回路２３）が得たイベント検出回数の情報と、前記タイムスタンプ手段が得た書き込み時点の情報とを切り替え可能な切替手段（切替／付加回路３３）とを備えた構成としてある。
【００１５】
このようにすれば、トレース表示１３には、例えば図４に示すように、フレーム，アドレス，データ，命令，ステータスと共に、イベント検出回数またはタイムスタンプ情報（書込時点）（タイム／カウント）を表示することができるので、作業者は効率的なデバッグを行うことができる。
【００１６】
また、請求項３では、請求項１〜請求項２記載のＣＰＵ開発支援装置において、
前記バストレース手段のトレースメモリに記録する情報を、前記トレース情報とイベント検出回数情報と書込時点情報との何れかを選択可能な選択手段と、
該選択手段が選択した結果を表示する表示手段と
を備えた構成としてある。
【００１７】
このようにすれば、トレースメモリに記録されないトレース情報の記録されなかった回数を表示できるので、効率的なデバッグが可能となる。
【００１８】
また、請求項４では、請求項１〜請求項３記載のＣＰＵ開発支援装置において、
前記トレースメモリは、トレース情報とイベント検出回数情報との組合せ、トレース情報と書込時点情報との組合せ、イベント検出回数のみをそれぞれ記録しておき、前記それぞれのトレース結果を表示する表示手段を備えた構成としてある。
【００１９】
このようにすれば、トレースメモリに記録されたトレース情報とイベント検出回数、イベント検出回数のみをトレース結果としてトレース表示に表示可能となる。
【００２０】
このようにすれば、プログラム実行した任意位置のトレース情報と実行回数のトレース内容から任意位置の実行回数をトレースに表示できるので、効率的なデバッグが可能となる。
【００２１】
【発明の実施の形態】
以下、本発明を図示の実施形態に基づいて説明する。
（１）第１の実施形態
図１は本実施形態のＣＰＵ開発支援装置ＩＥ１の機能ブロック図である。
図１に示すように、ＣＰＵ開発支援装置ＩＥ１は、ホストコンピュータ１０とエミュレータ２０とを備えてなる。
【００２２】
ホストコンピュータ１０のデバッガ１１は、イベント検出したい条件をエミュレータ２０のイベント検出回路２１に設定する。
イベント検出回路２１はマイクロプロセッサ２２の実行状態を検出し、設定されたイベント条件に一致すると、検出結果をイベントカウンタ回路２３とトレース情報取得回路２４に出力する。
【００２３】
イベントカウンタ回路２３はイベント検出信号を受けてカウンタをカウントアップし、カウント情報を付加回路２５に出力する。
トレース情報取得回路２４は、イベント検出回路２１と付加回路２５からの情報を受け取り、トレース情報としてトレースメモリ２６に記録する。
【００２４】
デバッガ１１は、トレースデータ転送手段２７を介してトレースメモリ２６のトレース情報を取得する。
デバッガ１１はトレース情報をトレース解析部１２で解析し、イベント検出条件時のイベントカウンタ情報を解析し、トレース表示１２のイベント個所にイベント検出回数を表示する。
【００２５】
２８は演算に使用するメモリ（ＲＡＭ）、２９はプロセッサ情報の通路となるアドレスバス，データバス等のバス、３１はプロセッサ情報の流れを制御するＩ／Ｏである。
【００２６】
このような構成にすれば、トレース表示１３には、例えば図２に示すように、フレーム，アドレス，データ，命令，ステータスと共に、イベント検出回数（カウント）を表示することができるので、作業者は効率的なデバッグを行うことができる。
【００２７】
（２）第２の実施形態
図３は本実施形態のＣＰＵ開発支援装置ＩＥ２の機能ブロック図である。
図３に示すように、ＣＰＵ開発支援装置ＩＥ２は、ホストコンピュータ１０とエミュレータ２０Ａとを備えてなる。
本実施形態と第１の実施形態との相違点は、エミュレータ２０Ａにタイムスタンプ回路３２を追加し、付加回路２５を切替／付加回路３３に変更した点である。
【００２８】
ホストコンピュータ１０のデバッガ１１は、イベント検出したい条件をエミュレータ２０のイベント検出回路２１に設定する。デバッガ１１は、トレース情報に付加記録する情報を、イベントカウンタ回路２３か、タイムスタンプ回路３２か、を切替／付加回路３３に設定する。
【００２９】
イベント検出回路２１はマイクロプロセッサ２２の実行状態を検出し、設定されたイベント条件に一致すると検出結果を、イベントカウンタ回路２３とトレース情報取得回路２４に出力する。
イベントカウンタ回路２３はイベント検出信号を受けカウンタをカウントアップし、カウント情報を切替／付加回路３３に出力する。
【００３０】
プログラムの実行と同期してカウントしているタイムスタンプ回路３２から、タイムスタンプ情報が切替／付加回路３３に出力される。
切替／付加回路３３は、デバッガ１１からのトレース付加情報に設定された内容に従って、イベントカウンタ回路２３かタイムスタンプ回路３２かを切替えてトレース情報取得回路２４に出力する。
【００３１】
トレース情報取得回路２４はイベント検出回路２１と切替／付加回路３３からの情報を受け取り、トレース情報としてトレースメモリ２６に記録する。
デバッガ１１は、トレースデータ転送手段２７を介してトレースメモリ２６のトレース情報を取得する。
【００３２】
デバッガ１１はトレース情報をトレース解析部１２で解析し、イベント検出条件時の付加情報を解析し、トレース表示１３のイベント個所にイベント検出回数またはタイムスタンプ情報を表示する。
【００３３】
このような構成にすれば、トレース表示１３には、例えば図４に示すように、フレーム，アドレス，データ，命令，ステータスと共に、イベント検出回数またはタイムスタンプ情報（書込時点）（タイム／カウント）を表示することができるので、作業者は効率的なデバッグを行うことができる。
【００３４】
（３）第３の実施形態
図５は本実施形態のＣＰＵ開発支援装置ＩＥ３の機能ブロック図である。
図５に示すように、ＣＰＵ開発支援装置ＩＥは、ホストコンピュータ１０とエミュレータ２０Ｂとを備えてなる。
本実施形態と第２の実施形態との相違点は、エミュレータ２０Ｂの切替／付加回路３３をトレース情報選択回路３４に変更した点である。
【００３５】
ホストコンピュータ１０のデバッガ１１は、イベント検出したい条件をエミュレータ２０のイベント検出回路２１に設定する。デバッガ１１は、トレースメモリ２６に記録する情報が、プログラム実行情報か、イベントカウンタ回路情報か、タイムスタンプ回路情報か、をトレース情報選択回路３４に設定する。
【００３６】
イベント検出回路２１はマイクロプロセッサ２２の実行状態を検出し、設定されたイベント条件に一致すると、検出結果をイベントカウンタ回路２３とトレース情報選択回路３４に出力する。
イベントカウンタ回路２３はイベント検出信号を受け、カウンタをカウントアップし、カウント情報をトレース情報選択回路３４に出力する。
【００３７】
プログラムの実行と同期してカウントしているタイムスタンプ回路３２から、タイムスタンプ情報がトレース情報選択回路３４に出力する。
トレース情報選択回路３４はデバッガ１１からのトレース情報設定内容によってプログラム実行情報か、イベントカウンタ回路２３か、タイムスタンプ回路３２か、選択してトレース情報取得回路２４に出力する。
【００３８】
トレース情報取得回路２４は、トレース情報選択回路３４からの情報を受け取り、トレース情報としてトレースメモリ２６に記録する。
デバッガ１１は、トレースデータ転送手段２７を介してトレースメモリ２６のトレース情報を取得する。
【００３９】
デバッガ１１はトレース情報をトレース解析部１２で解析し、イベント検出時のトレース情報を解析してトレース表示１３のイベント個所に、トレース情報またはイベント検出回数またはタイムスタンプ情報を表示する。
【００４０】
このような構成にすれば、トレース表示１３には、例えば図６に示すように、フレーム，アドレス，データ，命令，ステータスと共に、トレース情報またはイベント検出回数またはタイムスタンプ情報（タイム／カウント）を表示することができるので、作業者は効率的なデバッグを行うことができる。
【００４１】
【発明の効果】
以上説明したように本発明によれば、以下の効果を発揮することができる。
請求項１記載の発明によれば、トレースメモリに記録されたイベント検出回数が取得することができるので、効率的なデバッグが可能となる。
【００４２】
請求項２記載の発明によれば、トレースメモリに記録されるタイムスタンプとイベント検出回数を選択できるので、効率的なデバッグが可能となる。
請求項３記載の発明によれば、トレースメモリに記録されないトレース情報の記録されなかった回数を表示できるので、効率的なデバッグが可能となる。
【００４３】
請求項４記載の発明によれば、トレースメモリに記録されたトレース情報とイベント検出回数、イベント検出回数のみをトレース結果としてトレース表示に表示可能となる。
【図面の簡単な説明】
【図１】本発明の第1の実施形態の機能ブロック図である。
【図２】同第１の実施形態における、表示例である。
【図３】本発明の第２の実施形態の機能ブロック図である。
【図４】同第２の実施形態における、表示例である。
【図５】本発明の第３の実施形態の機能ブロック図である。
【図６】同第３の実施形態における、表示例である。
【図７】従来例の機能ブロック図である。
【符号の説明】
ＩＥ１〜ＩＥ３  第１〜第３のＣＰＵ開発支援装置
１０  ホストコンピュータ
１１  デバッガ
１２  トレース解析部
１３  トレース表示
２０〜２０Ｂ  エミュレータ
２１  イベント検出回路
２２  マイクロプロセッサ
２３  イベントカウンタ回路
２４  トレース情報取得回路
２５  付加回路
２６  トレースメモリ
２７  トレースデータ転送手段
２８  メモリ
２９  バス
３１  Ｉ／Ｏ
３２  タイムスタンプ回路
３３  切替／付加回路
３４  トレース情報選択回路
【図１】
2004199559.tif 000003
【図２】
2004199559.tif 000004
【図３】
2004199559.tif 000005
【図４】
2004199559.tif 000006
【図５】
2004199559.tif 000007
【図６】
2004199559.tif 000008
【図７】
2004199559.tif 000009