(57)【要約】【課題】ディバグ用端子の増加やディバグ用端子間スキュー発生による最高動作周波数の制限を抑制することができるディバグ・システム及びディバグ方法の提供。【解決手段】マイクロコンピュータ３に、プログラムの命令実行のステータスを参照して分岐／割り込み発生を検出し分岐／割り込み発生通知及び割り込み要因通知を送信する手段と、ディバグ装置１に、分岐／割り込み発生通知を受信しクロックに同期するカウンタ値からアドレス変量を生成する手段と、予め定めた転送開始ビット列を検出し該ビット列により設定されるフラグを参照してシリアル・データとして受信した割り込み要因通知をパラレル・データに変換する手段と、ホスト・コンピュータ２からの要求に応じてアドレス変量と割り込み要因通知とを通知する手段とを備え、アドレス変量と割り込み要因通知とを用いてプログラムのトレースを実行する。【選択図】図１
2004086496.tif 000002
【特許請求の範囲】
【請求項１】
ディバグ対象となるプログラムの実行結果から、前記プログラムの分岐／割り込み発生を検出し、アドレス変量を生成する手段を少なくとも有することを特徴とするディバグ・システム。
【請求項２】
ディバグ対象となるプログラムを実行するマイクロコンピュータと、前記プログラムと同一のソース・コードを有し、トレースを実行するホスト・コンピュータと、ディバグ装置とを備え、
前記マイクロコンピュータに、少なくとも、前記プログラムの命令実行のステータスを参照して、分岐／割り込み発生を検出し、分岐／割り込み発生通知及び割り込みの種類を特定する割り込み要因通知を前記ディバグ装置に送信する手段を備え、
前記ディバグ装置に、少なくとも、前記マイクロコンピュータから送信される前記分岐／割り込み発生通知を受信し、クロックに同期するカウンタ値からアドレス変量を生成する手段と、予め定めた転送開始ビット列を検出し、該転送開始ビット列により設定されるフラグを参照して、シリアル・データとして受信した前記割り込み要因通知をパラレル・データに変換する手段と、前記ホスト・コンピュータからの要求に応じて、前記アドレス変量と前記割り込み要因とを送信する手段とを備え、
前記アドレス変量と前記割り込み要因とを用いて、前記ホスト・コンピュータで前記プログラムのトレースが実行されることを特徴とするディバグ・システム。
【請求項３】
前記マイクロコンピュータには、前記プログラムを記憶する内部メモリと、クロックを生成するクロック生成部と、前記クロックに同期して、前記内部メモリからプログラム・コードをフェッチして実行するプログラム実行部と、該プログラム実行部から命令実行のステータスを受け、分岐／割り込みの発生を検出し、前記分岐／割り込み発生通知及び前記割り込み要因通知として前記ディバグ装置に送信する分岐／割り込み検出部とを備え、
前記ディバグ装置には、前記分岐／割り込み検出部からの前記分岐／割り込み発生通知を受信し、分岐／割り込みの発生を検出する分岐／割り込み通知検出部と、前記クロックに同期してカウンタ値をカウント・アップし、前記分岐／割り込み発生の通知を受けて該カウンタ値をクリアするアドレス・カウンタと、前記分岐／割り込み発生の通知を受けて前記アドレス・カウンタのカウンタ値をラッチするアドレス変量保持部と、前記割り込み要因通知を受信し、予め定めた転送開始ビット列を検出して予め定めたビット数に応じてフラグを変更する転送開始ビット検出部と、前記フラグを参照して、前記割り込み要因通知を前記ビット数分シリアル・データとして受信し、パラレル・データに変換するシリアル・パラレル変換部と、内部データの有無に応じて送信可／不可を示す信号と前記アドレス変量及びパラレル・データに変換された前記割り込み要因を前記ホスト・コンピュータに送信するＦＩＦＯとを備えることを特徴とする請求項２記載のディバグ・システム。
【請求項４】
前記マイクロコンピュータに、前記ディバグ装置に出力する前記クロックを分周する１／Ｌ分周期を備え、前記ディバグ装置に、前記１／Ｌ分周期から受信した前記クロックをＬ倍に逓倍するＰＬＬを備えることを特徴とする請求項２又は３に記載のディバグ・システム。
【請求項５】
前記マイクロコンピュータに２本のディバグ専用端子を備え、該２本のディバグ専用端子により、前記分岐／割り込み発生通知と前記割り込み要因通知とが送信されることを特徴とする請求項２乃至４のいずれか一に記載のディバグ・システム。
【請求項６】
前記マイクロコンピュータに、前記分岐／割り込み発生通知と前記割り込み要因通知とを合成する合成部と、１本のディバグ専用端子とを備え、
前記ディバグ装置の前記分岐／割り込み通知検出部では、前記転送開始ビット検出部で設定される前記フラグを参照して、前記分岐／割り込み発生通知と前記割り込み要因通知とが識別されることを特徴とする請求項２乃至４のいずれか一に記載のディバグ・システム。
【請求項７】
ディバグ対象となるプログラムの実行結果から、前記プログラムの分岐／割り込み発生を検出してアドレス変量を生成し、該アドレス変量を用いて前記プログラムのトレースを行うことを特徴とするディバグ方法。
【請求項８】
ディバグ対象となるプログラムを実行するマイクロコンピュータと、前記プログラムと同一のソース・コードを有し、トレースを実行するホスト・コンピュータと、ディバグ装置とを備えるディバグ・システムにおけるディバグ方法であって、
前記マイクロコンピュータにおいて、前記プログラムの命令実行のステータスを参照して、分岐／割り込み発生を検出し、分岐／割り込み発生通知及び割り込みの種類を特定する割り込み要因通知を前記ディバグ装置に送信する処理を行い、
前記ディバグ装置において、前記マイクロコンピュータから送信される前記分岐／割り込み発生通知を受信し、クロックに同期するカウンタ値からアドレス変量を生成する処理と、予め定めた転送開始ビット列を検出し、該転送開始ビット列により設定されるフラグを参照して、シリアル・データとして受信した前記割り込み要因通知をパラレル・データに変換する処理と、前記ホスト・コンピュータからの要求に応じて、前記アドレス変量と前記割り込み要因通知とを送信する処理とを行い、
前記アドレス変量と前記割り込み要因通知とを用いて前記プログラムのトレースを実行することを特徴とするディバグ方法。
【請求項９】
前記ディバグ装置において、前記マイクロコンピュータから送信される前記分岐／割り込み発生通知と前記割り込み要因通知とを受信し、分岐／割り込み発生を検出するステップと、クロックに同期してカウント・アップされるカウンタ値をラッチし、アドレス変量を生成するステップと、該カウンタ値をクリアするステップと、前記ディバグ装置を”アドレス変量送信可”状態にするステップと、前記ホスト・コンピュータの要求に応じて前記アドレス変量を送信するステップと、前記アドレス変量が残っているかを判定し、残っていない場合に前記ディバグ装置を”アドレス変量送信不可”状態にするステップと、予め定めた転送開始ビット列を受信したかを判定するステップと、該転送開始ビット列を受信した場合に、割り込み要因転送フラグを”１”にして、割り込み要因通知を予め定めたビット数受信し、前記割り込み要因転送フラグを”０”にするステップと、前記ビット数受信した割り込み要因通知をパラレル・データに変換するステップと、前記ディバグ装置を”割り込み要因送信可”状態にするステップと、前記ホスト・コンピュータの要求に応じて前記割り込み要因を送信するステップと、前記割り込み要因が残っているかを判定し、残っていない場合に前記ディバグ装置を”割り込み要因送信不可”状態にするステップとを行うことを特徴とする請求項８記載のディバグ方法。
【請求項１０】
前記ホスト・コンピュータにおいて、前記マイクロコンピュータで実行されるプログラムと同一のソース・コードの実行位置を示すプログラム・カウンタをクリアするステップと、前記ディバグ装置が”アドレス変量送信可”状態になったら、前記ディバグ装置に前記アドレス変量を要求するステップと、前記アドレス変量を前記プログラム・カウンタに加算するステップと、前記ソース・コードを参照して、前記プログラム・カウンタで示すアドレスに対応する命令の種類を特定するステップと、特定された前記命令がジャンプ命令の場合は分岐先アドレスを代入し、コール命令の場合は前記プログラム・カウンタの値をスタックに待避して分岐先アドレスを代入し、リターン命令の場合はスタックに待避した値を前記プログラム・カウンタに代入するステップと、前記ソース・コードに分岐命令が記述されていない場合は、前記プログラム・カウンタの値をスタックに待避するステップと、前記ディバグ装置が”割り込み要因送信可”状態になったら、前記ディバグ装置に前記割り込み要因を要求するステップと、予め記憶されている割り込みルーチンの先頭アドレスの一覧表を参照して、受信した割り込み要因から分岐先アドレスを特定して前記プログラム・カウンタに代入するステップとを行うことを特徴とする請求項８又は９に記載のディバグ方法。
【請求項１１】
前記マイクロコンピュータでは、前記ディバグ装置に出力する前記クロックを分周する処理を行い、前記ディバグ装置では、分周された前記クロックを逓倍して前記クロックの周波数を復元する処理を行い、分周された前記クロックを用いることにより、クロック端子の動作周波数限界を緩和することを特徴とする請求項８乃至１０のいずれか一に記載のディバグ方法。
【請求項１２】
前記マイクロコンピュータでは、前記分岐／割り込み発生通知と前記割り込み要因通知とを合成して前記ディバグ装置に送信する処理を行い、前記ディバグ装置では、前記転送開始ビット列で設定される前記フラグを参照して、受信したビット列から前記分岐／割り込み発生通知と前記割り込み要因通知とを識別する処理を行い、前記分岐／割り込み発生通知と前記割り込み要因通知とを合成することにより、ディバグ専用端子の所要数を低減することを特徴とする請求項８乃至１１のいずれか一に記載のディバグ方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロコンピュータで実行するプログラムのディバグ・システム及びディバグ方法に関する。
【０００２】
【従来の技術】
近年、ＣＰＵの動作クロックは高速化が進み、プログラムを記憶したメモリのアドレス空間も拡大している。ＣＰＵ高速動作時のプログラム・トレースを可能にするため、ＣＰＵステータス通知用のディバグ端子を増やし、多くの情報を短い期間で出力する必要があった。また、トレース処理の待ち時間を吸収するために、ステータスを一時的にためるためのトレース・メモリの容量を増やす必要があった。しかし、ディバグ端子の増加はＩＣパッケージの外形が大きくなり、コストの増加につながる。トレース・メモリの増加は回路規模増加につながり、同様にコストの増加につながる。また、ディバグ端子の信号はＣＰＵ動作クロックに同期して出力するが、複数存在するディバグ端子間のスキュー（信号間の時間差）発生によりディバグ時に最高動作周波数が制限される。
【０００３】
ここで、ディバグ端子数の削減を目的として案出された従来例（特開平１１−２８２７１３号公報）の構成図を図２に示す。図２は従来例のディバグ・システムであり、マイクロコンピュータ９、ディバグ・ツール７、ホスト・コンピュータ８から構成される。
【０００４】
クロック生成部９３はＣＰＵ９０、内部メモリ９２、ステータス出力部９１、ディバグ・ツール７にクロックを供給する。ＣＰＵ９０は内部メモリ９２からプログラムをフェッチし実行する。ＣＰＵ９０は毎クロックごとに、ＣＰＵ９０の命令実行ステータスを生成し、ステータス出力部９１に出力する。ステータス出力部９１では受信した複数のステータスを送信するため、複数の信号線を設ける。例えば、分岐命令３種類（ジャンプ命令実行、コール命令実行、リターン命令実行）、割り込み実行、通常命令実行、以上の５種類のステータスを送信する場合は３本の信号線が必要になる。従来例ではステータスをＤＳＴ２、ＤＳＴ１、ＤＳＴ０で、ディバグ・ツール７に送信している。
【０００５】
ディバグ・ツール７は毎ＣＬＫごとに、受信したＣＰＵ９０の命令実行状態を示すＤＳＴ２、ＤＳＴ１、ＤＳＴ０をトレース・メモリ７２に書き込む。
【０００６】
ディバグ実行時、ホスト・コンピュータ８はデータ処理部７０にディバグ・コマンドを送信しディバグ・ツール７にトレースを指示する。データ処理部７０はトレース・メモリ７２に記録したステータスの値を読み出し、ＣＰＵ９０が実行しているプログラムのソース・コードと逐次比較してトレースを行う。
【０００７】
このように、上記従来例では、ＣＰＵ命令実行のステータスを生成し、そのステータスを複数の端子でディバグ・ツール７に送信する。ディバグ・ツール７ではステータスをトレース・メモリ７２に記録する。その後、記録したステータスとソース・コードとを比較する事でトレースを行う。
【０００８】
以上の動作により、アドレス・バス情報を送信するのではなく、命令実行のステータスを送信して、ディバグ・ツール７では、ステータスをデコードしてトレースを行うことでディバグ端子の削減を実現している。
【０００９】
【発明が解決しようとする課題】
しかしながら、上述した従来のディバグ・ツール及びディバグ方法では、以下に示す問題がある。
【００１０】
第１の問題は、ＣＰＵ命令実行のステータスをディバグ・ツール７に送信するために、通常動作においては不要である複数の端子が必要になるということである。ＩＣパッケージは、種類ごとに使用できる端子数が制限されているため、ディバグ端子が増えるとその分ユーザー端子を減らすか、ＩＣパッケージを大きくしなければならない。
【００１１】
第２の問題は、ディバグ時のＣＰＵ動作周波数がディバグ端子間のスキューにより制限されるということである。すなわち、ＣＰＵ動作クロックに同期したディバグ信号が複数あり、各端子間にはスキューが発生する。スキューにより、ディバグ装置でラッチ可能なタイミングが少なくなり、ステータスの取りこぼしが発生する。従って、ＣＰＵ９０の最高動作周波数がスキューの幅によって制限されてしまう。
【００１２】
第３の問題は、毎クロックごとに、ステ−タスを生成しており、その情報をトレース・メモリに格納するため多くのトレース・メモリ７２が必要になるということである。
【００１３】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、ディバグ用端子の増加やディバグ用端子間スキュー発生による最高動作周波数の制限を抑制し、トレース・メモリを不要にすることができるディバグ・システム及びディバグ方法を提供することにある。
【００１４】
【問題を解決するための手段】
上記目的を達成するため、本発明のディバグ・システムは、ディバグ対象となるプログラムの実行結果から、前記プログラムの分岐／割り込み発生を検出し、アドレス変量を生成する手段を少なくとも有するものである。
【００１５】
また、本発明のディバグ・システムは、ディバグ対象となるプログラムを実行するマイクロコンピュータと、前記プログラムと同一のソース・コードを有し、トレースを実行するホスト・コンピュータと、ディバグ装置とを備え、前記マイクロコンピュータに、少なくとも、前記プログラムの命令実行のステータスを参照して、分岐／割り込み発生を検出し、分岐／割り込み発生通知及び割り込みの種類を特定する割り込み要因通知を前記ディバグ装置に送信する手段を備え、前記ディバグ装置に、少なくとも、前記マイクロコンピュータから送信される前記分岐／割り込み発生通知を受信し、クロックに同期するカウンタ値からアドレス変量を生成する手段と、予め定めた転送開始ビット列を検出し、該転送開始ビット列により設定されるフラグを参照して、シリアル・データとして受信した前記割り込み要因通知をパラレル・データに変換する手段と、前記ホスト・コンピュータからの要求に応じて、前記アドレス変量と前記割り込み要因とを送信する手段とを備え、前記アドレス変量と前記割り込み要因とを用いて、前記ホスト・コンピュータで前記プログラムのトレースが実行されるものである。
【００１６】
本発明においては、前記マイクロコンピュータには、前記プログラムを記憶する内部メモリと、クロックを生成するクロック生成部と、前記クロックに同期して、前記内部メモリからプログラム・コードをフェッチして実行するプログラム実行部と、該プログラム実行部から命令実行のステータスを受け、分岐／割り込みの発生を検出し、前記分岐／割り込み発生通知及び前記割り込み要因通知として前記ディバグ装置に送信する分岐／割り込み検出部とを備え、前記ディバグ装置には、前記分岐／割り込み検出部からの前記分岐／割り込み発生通知を受信し、分岐／割り込みの発生を検出する分岐／割り込み通知検出部と、前記クロックに同期してカウンタ値をカウント・アップし、前記分岐／割り込み発生の通知を受けて該カウンタ値をクリアするアドレス・カウンタと、前記分岐／割り込み発生の通知を受けて前記アドレス・カウンタのカウンタ値をラッチするアドレス変量保持部と、前記割り込み要因通知を受信し、予め定めた転送開始ビット列を検出して予め定めたビット数に応じてフラグを変更する転送開始ビット検出部と、前記フラグを参照して、前記割り込み要因通知を前記ビット数分シリアル・データとして受信し、パラレル・データに変換するシリアル・パラレル変換部と、内部データの有無に応じて送信可／不可を示す信号と前記アドレス変量及びパラレル・データに変換された前記割り込み要因を前記ホスト・コンピュータに送信するＦＩＦＯとを備える構成とすることができ、前記マイクロコンピュータに２本のディバグ専用端子を備え、該２本のディバグ専用端子により、前記分岐／割り込み発生通知と前記割り込み要因通知とが送信されることが好ましい。
【００１７】
また、本発明においては、前記マイクロコンピュータに、前記分岐／割り込み発生通知と前記割り込み要因通知とを合成する合成部と、１本のディバグ専用端子とを備え、前記ディバグ装置の前記分岐／割り込み通知検出部では、前記転送開始ビット検出部で設定される前記フラグを参照して、受信したビット列から前記分岐／割り込み発生通知と前記割り込み要因通知とが識別される構成とすることもできる。
【００１８】
また、本発明のディバグ方法は、ディバグ対象となるプログラムの実行結果から、前記プログラムの分岐／割り込み発生を検出してアドレス変量を生成し、該アドレス変量を用いて前記プログラムのトレースを行うものである。
【００１９】
また、本発明のディバグ方法は、ディバグ対象となるプログラムを実行するマイクロコンピュータと、前記プログラムと同一のソース・コードを有し、トレースを実行するホスト・コンピュータと、ディバグ装置とを備えるディバグ・システムにおけるディバグ方法であって、前記マイクロコンピュータにおいて、前記プログラムの命令実行のステータスを参照して、分岐／割り込み発生を検出し、分岐／割り込み発生通知及び割り込みの種類を特定する割り込み要因通知を前記ディバグ装置に送信する処理を行い、前記ディバグ装置において、前記マイクロコンピュータから送信される前記分岐／割り込み発生通知を受信し、クロックに同期するカウンタ値からアドレス変量を生成する処理と、予め定めた転送開始ビット列を検出し、該転送開始ビット列により設定されるフラグを参照して、シリアル・データとして受信した前記割り込み要因通知をパラレル・データに変換する処理と、前記ホスト・コンピュータからの要求に応じて、前記アドレス変量と前記割り込み要因通知とを送信する処理とを行い、前記アドレス変量と前記割り込み要因通知とを用いて前記プログラムのトレースを実行するものである。
【００２０】
本発明においては、前記ディバグ装置において、前記マイクロコンピュータから送信される前記分岐／割り込み発生通知と前記割り込み要因通知とを受信し、分岐／割り込み発生を検出するステップと、クロックに同期してカウント・アップされるカウンタ値をラッチし、アドレス変量を生成するステップと、該カウンタ値をクリアするステップと、前記ディバグ装置を”アドレス変量送信可”状態にするステップと、前記ホスト・コンピュータの要求に応じて前記アドレス変量を送信するステップと、前記アドレス変量が残っているかを判定し、残っていない場合に前記ディバグ装置を”アドレス変量送信不可”状態にするステップと、予め定めた転送開始ビット列を受信したかを判定するステップと、該転送開始ビット列を受信した場合に、割り込み要因転送フラグを”１”にして、割り込み要因通知をＮビット（Ｎは１〜ｍ：割り込み要因数によって決定する）数受信し、前記割り込み要因転送フラグを”０”にするステップと、前記ビット数受信した割り込み要因通知をパラレル・データに変換するステップと、前記ディバグ装置を”割り込み要因送信可”状態にするステップと、前記ホスト・コンピュータの要求に応じて前記割り込み要因を送信するステップと、前記割り込み要因が残っているかを判定し、残っていない場合に前記ディバグ装置を”割り込み要因送信不可”状態にするステップとを行い、前記ホスト・コンピュータにおいて、前記マイクロコンピュータで実行されるプログラムと同一のソース・コードの実行位置を示すプログラム・カウンタをクリアするステップと、前記ディバグ装置が”アドレス変量送信可”状態になったら、前記ディバグ装置に前記アドレス変量を要求するステップと、前記アドレス変量を前記プログラム・カウンタに加算するステップと、前記ソース・コードを参照して、前記プログラム・カウンタで示すアドレスに対応する命令の種類を特定するステップと、特定された前記命令がジャンプ命令の場合は分岐先アドレスを代入し、コール命令の場合は前記プログラム・カウンタの値をスタックに待避して分岐先アドレスを代入し、リターン命令の場合はスタックに待避した値を前記プログラム・カウンタに代入するステップと、前記ソース・コードに分岐命令が記述されていない場合は、前記プログラム・カウンタの値をスタックに待避するステップと、前記ディバグ装置が”割り込み要因送信可”状態になったら、前記ディバグ装置に前記割り込み要因を要求するステップと、予め記憶されている割り込みルーチンの先頭アドレスの一覧表を参照して、受信した割り込み要因から分岐先アドレスを特定して前記プログラム・カウンタに代入するステップとを行う構成とすることができる。
【００２１】
このように、本発明は上記構成により、ディバグ専用端子数を減らすことができ、ＩＣパッケージの大きさごとに決まる使用可能端子数において使用できるユーザー端子数を増やすことができ、また、ディバグ時の高速動作が可能になる。更に、マイクロコンピュータ及びディバグ装置に、トレース・メモリを内蔵する必要がないため、マイクロコンピュータ及びディバグ装置の回路規模を縮小することができる。
【００２２】
【発明の実施の形態】
従来技術で示したように、マイクロコンピュータのディバグ・システムにおいては、ＣＰＵ動作クロックの高速化、プログラムを記憶したメモリのアドレス空間の拡大により、ディバグ用端子の増加という問題と、ディバグ用端子間スキュー（信号間の時間差）発生による最高動作周波数の制限という問題が存在する。そこで、本発明では、これらの問題を解決するために、分岐または割り込みを通知する信号と割り込み要因を通知する信号を用いてプログラム実行履歴のトレースを可能にするディバグ・システム及びディバグ方法について提案する。
【００２３】
以下、図１を参照して説明する。図１に示すように本発明の一実施形態に係るディバグ・システムは、プログラムの実行と、実行した結果、発生する分岐または割り込み命令を検出し、通知するマイクロコンピュータ３と、分岐または割り込みの通知からアドレス変量を検出するディバグ装置１と、検出したアドレス変量を基にプログラムのトレースを行うホスト・コンピュータ２とで構成される。
【００２４】
ディバグ対象となるマイクロコンピュータ３は、クロック生成部３２が生成するクロックに同期して、内部メモリ３１からプログラム・コードをフェッチして実行するＣＰＵ３０を有する。ＣＰＵ３０は、フェッチしたプログラムを実行するプログラム実行部３４と、プログラム実行部３４から命令実行のステータスを受け、分岐または割り込みの発生を検出する分岐／割り込み検出部３３とを有し、分岐または割り込みの発生を分岐／割り込み通知信号５でディバグ装置１に送信する。さらに、発生した割り込みの種類を割り込み要因信号６でシリアルに、ディバグ装置１に送信する。割り込み発生時の分岐先アドレスを示すには多数のビットを必要とする。割り込み命令の種類は、分岐先アドレスよりも少ないビット数で表すことが出来るため、割り込み要因を送信するほうが効率がよい。クロック生成部３２が生成するクロックは、ＣＬＫ４から出力し、ディバグ装置１に供給する。
【００２５】
ディバグ装置１はアドレス・カウンタ１２で、ＣＬＫ４に同期してカウンタ値をカウント・アップする。アドレス・カウンタ１２は分岐／割り込み通知検出部１１からの分岐または割り込み発生の通知を受信すると、カウンタ値をアドレス変量保持部１３でラッチ後、クリアする。アドレス変量保持部１３の出力は前回分岐または割り込みが発生した時点からのアドレス変量となる。ＦＩＦＯ１４は、ディバグ装置１とホスト・コンピュータ２間のアドレス変量の受け渡しを行い、アドレス変量を受信すると“アドレス変量送信可”をホスト・コンピュータ２に通知する。ＦＩＦＯ１７は、ディバグ装置１とホスト・コンピュータ２間の割り込み要因の受け渡しを行う。転送開始ビット検出部１５で転送開始ビット列を検出後シリアル・パラレル変換部１６とＦＩＦＯ１７に通知する。シリアル・パラレル変換部１６は割り込み要因をシリアルで受信し、Ｎビット（Ｎは１〜ｍ：割り込み要因数によって決定する）受信後にパラレル・データに変換してＦＩＦＯ１７に出力する。ＦＩＦＯ１７は“割り込み要因送信可”をホスト・コンピュータ２に通知する。
【００２６】
ホスト・コンピュータ２はＣＰＵ３０が実行するプログラムと同一プログラムのソース・コードを持ち、それを基にトレースを行う。ディバグ装置１から“アドレス変量送信可”と“割り込み要因送信可”の通知を受け、送信可であるならばアドレス変量または割り込み要因を受信する。アドレス変量を受信すると、そのアドレス変量から現在のプログラム・アドレスを算出し、算出したアドレスに対応するソース・コード上の命令を特定する。特定した命令が分岐命令であった場合は、その分岐先に分岐したと判断する。特定した命令が分岐命令でなかった場合には、割り込みが発生したと判断する。ホスト・コンピュータ２は割込み処理ルーチンの先頭アドレスの一覧表を持ち、割込み発生での分岐先を特定する。
【００２７】
以上の説明で明らかなように、本発明は分岐または割り込みの発生を通知する信号線と、割り込み要因を通知する信号線からアドレス変量と割り込み要因を検出し、トレースを実行することを特徴とするものである。
【００２８】
【実施例】
上記した本発明の実施の形態についてさらに詳細に説明すべく、本発明の実施例について図面を参照して説明する。
【００２９】
［実施例１］
まず、本発明の第１の実施例に係るディバグ・システム及びディバグ方法について、図１、図５乃至図１１、図１３及び図１４を参照して説明する。図１は、本発明の第１の実施例に係るディバグ・システムの構成を示す図である。また、図５乃至図７は、それぞれディバグ装置１を構成する分岐／割り込み通知検出部、アドレス変量保持部、転送開始ビット検出部の構成を示すブロック図であり、図８及び図９は、それぞれディバグ装置１のアドレス変量検出、割り込み要因検出の動作を示すタイミングチャート図である。また、図１０及び図１１は、本発明と従来技術におけるラッチ可能区間を比較するためのタイミングチャート図であり、図１３及び図１４は、それぞれディバグ装置の動作、ホスト・コンピュータの動作を示すフローチャート図である。
【００３０】
図１に示すように、本発明のディバグ・システムは、分岐または割り込みの通知からアドレス変量を算出するディバグ装置１と、ディバグ対象のマイクロコンピュータ３の実行プログラムと同一のソース・コードを持ち、受信するアドレス変量と割り込み要因からトレースを実行するホスト・コンピュータ２と、ディバグ対象であるマイクロコンピュータ３とで構成される。
【００３１】
マイクロコンピュータ３は、クロックを生成するクロック生成部３２と、プログラムを格納した内部メモリ３１と、プログラムをフェッチし実行を行うＣＰＵ３０とから構成され、ＣＰＵ３０は、プログラムを実行するプログラム実行部３４と、プログラムの実行を監視し、分岐または割り込みが発生したときに、発生を分岐／割り込み通知信号５で送信する分岐／割り込み検出部３３とから構成される。
【００３２】
このマイクロコンピュータ３は、クロック生成部３２が供給するクロックに同期して内部メモリ３１に格納してあるプログラムをフェッチする。プログラム実行部３４はフェッチしたプログラムを実行する。分岐／割り込み検出部３３では、プログラム実行部３４から命令実行ステータスを受信し、分岐または割り込みが発生した時に、分岐／割り込み通知信号５で通知する。また、割り込みが発生した場合は、割り込み要因信号６で割り込み要因をシリアルで送信する。クロック生成部３２で生成したクロックは、ＣＬＫ４でディバグ装置１に供給する。
【００３３】
ディバグ装置１は、分岐／割り込み通知信号５を受信し、分岐または割り込み発生の検出を行う分岐／割り込み通知検出部１１と、ＣＬＫ４に同期して、カウンタ値をカウント・アップし、分岐／割り込み通知検出部１１から分岐または割り込み発生の通知を受信したらカウンタ値をクリアするバイナリ・カウンタで構成するアドレス・カウンタ１２と、分岐または割り込み発生の通知を受けた時、アドレス・カウンタ１２のカウンタ値をラッチするアドレス変量保持部１３と、ＦＩＦＯ内のデータ有無を認識する機能を有し、“アドレス変量送信可／不可”を示す信号及びアドレス変量をホスト・コンピュータ２に送信するＦＩＦＯ１４と、マイクロコンピュータ３の出力する割り込み要因信号６を受信して、予め規定した転送開始ビット列を検出し、割り込み要因転送フラグをＮ（Ｎは１〜ｍ：割り込み要因数によって決定する）ビット数分“１”とし通知する転送開始ビット検出部１５と、割り込み要因転送フラグが“１”の間、シリアル・データを受信し、割り込み要因転送フラグが“０”になったら、パラレル・データに変換して出力するシリアル・パラレル変換部１６と、ＦＩＦＯ内のデータ有無を認識する機能を有し、“割り込み要因送信可／不可”を示す信号及びパラレル変換後の割り込み要因をホスト・コンピュータ２に送信するＦＩＦＯ１７とから構成される。
【００３４】
分岐／割り込み通知検出部１１は、図５に示すように、クロック端子にＣＬＫ４、データ端子に分岐／割り込み通知信号５を入力するラッチ回路１１０と、ラッチ回路１１０の出力及び分岐／割り込み通知信号５を入力し、分岐または割り込み発生のフラグを出力するＥＸＯＲ１１１とから構成される。この分岐／割り込み通知検出部１１では、分岐／割り込み通知信号５を受信し、ラッチ回路１１０でラッチする。ラッチ回路１１０の出力と、分岐／割り込み通知信号５のＥＸＯＲをとり分岐／割り込み通知信号５の変化点から１クロック分“１”となる通知信号を生成する。通知信号はアドレス変量保持部１３とアドレス・カウンタ１２とＦＩＦＯ１４に出力する。
【００３５】
アドレス変量保持部１３は、図６に示すように、分岐／割り込み通知検出部１１の出力信号によりアドレス・カウンタ１２の出力とラッチ回路１３１の出力とを選択するセレクタ１３０と、クロック端子にＣＬＫ４、データ端子にセレクタ１３０の出力を入力し、ＦＩＦＯ１４に分岐または割り込みが発生した時のアドレス変量を出力するラッチ回路１３１とから構成される。このアドレス変量保持部１３では、受信したアドレス・カウンタ１２の出力とラッチ回路１３１の出力とをセレクタ１３０で選択し、分岐／割り込み通知検出部１１の出力が“１”の時にアドレス・カウンタ１２の出力、分岐／割り込み通知検出部１１の出力が“０”の時にラッチ回路１３１の出力を選択する。セレクタ１３０の出力はラッチ回路１３１でラッチする。
【００３６】
転送開始ビット検出部１５は、図７に示すように、割り込み要因信号６を受信し、シリアルで受信した割り込み要因転送開始ビット列をパラレル・データに変換して出力するシリアル・パラレル変換部１５０と、シリアル・パラレル変換部１５０の出力が転送開始を示すビット列であるか判定し、転送の開始を通知するデコーダ１５１と、デコーダ１５１の転送開始通知出力から、Ｎ回カウントするカウンタ１５２と、転送開始の通知及びカウンタ１５２の出力から割り込み要因受信中に“１”となる割り込み要因転送フラグを出力する通知信号出力部１５３とから構成される。この転送開始ビット検出部１５では、ＣＬＫ４に同期して割り込み要因信号６をシリアル・パラレル変換部１５０で受信し、パラレル・データを出力する。デコーダ１５１は、シリアル・パラレル変換部１５０の出力が転送開始を示すビット列であるか判定し、通知信号出力部１５３が割り込み要因転送開始フラグを出力していない場合に、転送の開始をカウンタ１５２と通知信号出力部１５３に通知する。カウンタ１５２は転送開始の通知を受けると、カウントを開始し、Ｎ回カウントし停止する。通知信号出力部１５３は、カウンタ１５２のカウント開始から、Ｎ回カウントして止まるまで期間、割り込み要因転送フラグをシリアル・パラレル変換部１６とＦＩＦＯ１７に出力する。
【００３７】
なお、分岐／割り込み通知検出部、アドレス変量保持部、転送開始ビット検出部は図５乃至図７の構成に限定されず、同様の機能を持つものであればよい。
【００３８】
次に、上記構成のディバグ・システムの具体的な動作についてフローチャート図及びタイミングチャート図を参照して詳細に説明する。
【００３９】
まず、図１３のフローチャート図を参照して、ディバグ装置１の具体的な動作について説明する。
【００４０】
ディバグ装置１は、最初に装置の初期化をする（ステップＡ０）。分岐／割り込み通知検出部１１は分岐／割り込み通知信号５を受信し分岐または割り込み発生を検出し、アドレス変量保持部１３、アドレス・カウンタ１２、ＦＩＦＯ１４に通知する（ステップＡ１）。アドレス変量保持部１３は分岐または割り込み発生の通知を受信するとアドレス・カウンタ１２のカウンタ値をラッチし、ＦＩＦＯ１４に出力する（ステップＡ２）。ラッチしたカウンタ値は前回分岐または割り込みが発生した時点からのアドレス変量となる。アドレス・カウンタ１２は、ＣＬＫ４に同期してカウント・アップを行い（ステップＡ２１）、分岐または割り込み発生の通知を受信すると、カウンタ値をクリアする（ステップＡ３）。ＦＩＦＯ１４では分岐または割り込み発生の通知を受けると、アドレス変量を受信し、ＦＩＦＯ１４の状態を“アドレス変量送信可”にしてホスト・コンピュータ２に通知する（ステップＡ４）。ＦＩＦＯ１４はホスト・コンピュータ２からアドレス変量送信の要求があれば（ステップＡ５）、アドレス変量をホスト・コンピュータ２に送信する（ステップＡ６）。送信後、ＦＩＦＯ１４内にアドレス変量が残っているかどうかを判定し（ステップＡ７）、アドレス変量が残っていなければＦＩＦＯ１４の状態を“アドレス変量送信不可”にする（ステップＡ８）。転送開始ビット検出部１５は、割り込み要因信号６のシリアル・データを受信し、割り込み要因転送フラグが“０”の場合に、割り込み要因の転送開始を示す転送開始ビット列を受信したかどうか判定し（ステップＡ１０）、転送開始ビット列を受信した場合は、転送の開始を割り込み要因転送フラグを“１”としてシリアル・パラレル変換部１６、ＦＩＦＯ１７に通知する（ステップＡ１１）。割り込み要因転送フラグは、割込み要因をＮビット受信したかどうかを判定して（ステップＡ１３）、受信したのであれば“０”にする（ステップＡ１４）。シリアル・パラレル変換部１６は割り込み要因転送フラグが“１”の期間（ステップＡ９）、割り込み要因信号６を１ビットづつ受信する（ステップＡ１２）。割り込み要因をＮビット受信し、割り込み要因転送フラグが“０”になったら、シリアル・データをパラレル・データに変換してＦＩＦＯ１７に出力する（ステップＡ１５）。ＦＩＦＯ１７は割り込み要因を受信するとＦＩＦＯ１７の状態を“割り込み要因送信可”にする（ステップＡ１６）。ＦＩＦＯ１７はホスト・コンピュータ２から割り込み要因送信の要求があるかどうかを判定し（ステップＡ１７）、要求があった場合は割り込み要因をホスト・コンピュータ２に送信する（ステップＡ１８）。送信後、ＦＩＦＯ１７内に割り込み要因が残っているかどうかを判定し（ステップＡ１９）、アドレス変量が残っていなければＦＩＦＯ１７の状態を“割り込み要因送信不可”にする（ステップＡ２０）。
【００４１】
次に、図８を参照してディバグ装置１のアドレス変量検出動作のタイミングチャートについて説明する。
【００４２】
ＣＬＫ４はマイクロコンピュータ３の出力するクロック信号である。各信号はＣＬＫ４に同期して動作する。分岐／割り込み通知信号５はマイクロコンピュータ３の出力で、分岐または割り込みが発生した時に変化する（時刻Ｔ０、Ｔ１、Ｔ２）。分岐／割り込み通知信号５の変化を分岐／割り込み通知検出部１１で検出し、１クロック区間、“１”を出力し、アドレス・カウンタ１２、アドレス変量保持部１３、ＦＩＦＯ１４に、分岐または割り込みの発生（時刻Ｔ０、Ｔ１、Ｔ２）を通知する。アドレス・カウンタ１２は、分岐／割り込み通知検出部１１出力の“１”を受けて、カウンタ値をクリアする（時刻Ｔ０、Ｔ１、Ｔ２）。アドレス変量保持部１３は分岐／割り込み通知検出部１１出力の“１”を受けて、アドレス・カウンタ１２の出力をラッチし、ラッチ後の値をＦＩＦＯ１４に出力する（時刻Ｔ０、Ｔ１、Ｔ２）。アドレス変量保持部１３の出力は、次の分岐または割り込み発生まで保持する。
【００４３】
次に、図９を参照してディバグ装置１の割り込み要因検出動作のタイミングチャートについて説明する。
【００４４】
いま、割り込み要因を４ビットのシリアル・データ、割り込み要因の転送開始を示す転送開始ビット列を“０１”の２ビットとする。割り込み要因信号６はシリアルの信号である。転送開始ビット検出部１５は“０”、“１”を連続で受信することで転送の開始を判断する。タイミングチャートでは、時刻Ｔ３で“０”時刻Ｔ４で“１”を受信して転送の開始の通知を受けた後、転送開始ビット検出部１５内のカウンタ１５２でクロック数をカウントし、４クロック間“１”を出力する（Ｔ５からＴ８）。シリアル・パラレル変換部１６は転送開始ビット検出部１５の出力が“１”の期間に、割り込み要因を受信する。４ビット割り込み要因を受信し、シリアル・データをパラレル・データに変換してＦＩＦＯ１７に出力する（時刻Ｔ８）。タイミングチャートでは、時刻Ｔ５で“０”、時刻Ｔ６で“０”、時刻Ｔ７で“１”、時刻Ｔ８で“１”を受信し、パラレル・データ“００１１”を出力する。
【００４５】
次に、図１４のフローチャート図を参照して、ホスト・コンピュータ２の動作について説明する。
【００４６】
ホスト・コンピュータ２はマイクロコンピュータ３が実行するプログラムと同一のソース・コードを保有し、最初に、ソース・コードの実行位置を示すプログラム・カウンタをクリアする（ステップＢ０）。次に、ディバグ装置１の状態が“アドレス変量送信可”になるまで待機する（ステップＢ１）。ディバグ装置１の状態が“アドレス変量送信可”になれば、ディバグ装置１にアドレス変量を要求し、（ステップＢ２）。アドレス変量を受信する（ステップＢ３）。受信したアドレス変量は、プログラム・カウンタの値に加算する（ステップＢ４）。ソース・コードを参照して、プログラム・カウンタで示すアドレスに対応する命令の種類を特定する（ステップＢ５）。ジャンプ命令であった場合（ステップＢ６）は、ソース・コードに記述してある分岐先にジャンプしたと判断して、分岐先アドレスをプログラム・カウンタに代入する（ステップＢ７）。コール命令であった場合（ステップＢ８）は、現在のプログラム・カウンタの値をスタックに退避し（ステップＢ９）、ソース・コードに記述してある分岐先アドレスを、プログラム・カウンタに代入する（ステップＢ１０）。リターン命令であった場合（ステップＢ１１）は、スタックに退避してある値をプログラム・カウンタに代入する（ステップＢ１２）。ソース・コードに分岐命令が記述されていなかった場合は、割り込みが発生したと判断する。現在のプログラム・カウンタの値をスタックに退避し（ステップＢ１３）、ディバグ装置１の状態が“割り込み要因送信可”になるまで待機する（ステップＢ１４）。ディバグ装置１の状態が“割り込み要因送信可”になれば、ディバグ装置１に割り込み要因を要求し、（ステップＢ１５）。割り込み要因を受信する（ステップＢ１６）。ホスト・コンピュータ２は割込み処理ルーチンの先頭アドレスの一覧表を持ち、受信した割り込み要因から分岐先アドレスを特定し、分岐先アドレスをプログラム・カウンタに代入する（ステップＢ１７）。
【００４７】
以上説明した本実施例のディバグ・システムの構成及び動作により、分岐または割り込みの発生を通知する信号と、割り込みの要因を通知する信号の２本の信号線でトレースが可能となり、ディバグ専用端子数を減らすことができる。
【００４８】
また、従来技術では、ディバグ装置内でトレースを行うためディバグ装置内にトレース・メモリを設けている。また、受信するステータス信号を毎クロック記録する必要があるため、トレース・メモリを搭載せずに、ホスト・コンピュータでのトレース・データの解析をする場合には、高速のデータ転送と高い解析能力を必要とし、実現することは非常に困難である。これに対して本実施例では、分岐または割り込みが発生した時にのみアドレス変量を算出するため、ステータス信号の場合と比べるとデータ量を小さく抑えることが可能である。これにより、トレース・メモリではなく、ホスト・コンピュータの処理待ち時間の間だけアドレス変量を保持できるだけのＦＩＦＯの構成でトレースを実現することができる。
【００４９】
更に、本実施例の構成では、ディバグ時の高速動作が可能になる。この効果について具体的な数値を用いて説明する。
【００５０】
図１１に、マイクロコンピュータが従来技術であるディバグ情報を複数の信号線により通知する場合を示す。
【００５１】
分岐発生をＤＳＴ０＝“１”、ＤＳＴ１＝“１”、ＤＳＴ２＝“１”で示すとする。“Ｄ０”はＤＳＴ０のＣＬＫからの遅延時間、“Ｄ１”はＤＳＴ１のＣＬＫからの遅延時間、“Ｄ２”はＤＳＴ２のＣＬＫからの遅延時間である。“Ｓｅ”はディバグ装置端子のセットアップ時間である。セットアップ時間とはＣＬＫの立ち上がりでデータを読み込む前にデータが確定していなければならない時間である。“Ｈｏ”はディバグ装置端子のホールド時間である。ホールド時間とはＣＬＫが立ち上がった後、データを保持しておかなければならない時間である。
【００５２】
複数の信号線によりディバグ情報を通知する場合、ステータスを示す値をＤＳＴ０、ＤＳＴ１、ＤＳＴ２に出力する。時刻Ｔ１４で分岐が発生した場合、ＤＳＴ０、ＤＳＴ１、ＤＳＴ２の各信号を“１”として通知する。分岐を示すステータス信号のラッチ可能区間は、ＤＳＴ０は信号の値“１”の区間（Ｔ１５からＴ２１）からディバグ装置のセットアップ時間“Ｓｅ”と、ホールド時間“Ｈｏ”を引いた“Ｌ０”で示す区間になる。ＤＳＴ１は信号の値“１”の区間（Ｔ１８からＴ２３）からディバグ装置のセットアップ時間“Ｓｅ”と、ホールド時間“Ｈｏ”を引いた“Ｌ１”で示す区間、ＤＳＴ２は信号の値“１”の区間（Ｔ１７からＴ２２）からディバグ装置のセットアップ時間“Ｓｅ”と、ホールド時間“Ｈｏ”を引いた“Ｌ２”で示す区間になる。遅延時間“Ｄ０”、“Ｄ１”、“Ｄ２”が異なるので、信号間にスキューが存在することになる。スキューの最大値は“Ｄ１”から“Ｄ０”を引いたＴ１５−Ｔ１８区間になる。ＤＳＴ０、ＤＳＴ１、ＤＳＴ２のラッチ可能な区間は、Ｌ０とＬ１とＬ２が重なる期間（Ｔ１９−Ｔ２０）になる。よってＴ１９−Ｔ２０の区間にディバグ装置のＣＬＫのエッジを合わせれば、分岐を示すステータスをラッチすることが可能である。
【００５３】
ラッチ可能な区間Ｔ１９−Ｔ２０は、以下のように表すことが可能である。
【００５４】
2004086496.tif 000003
【００５５】
ＣＬＫの周波数を２００ＭＨｚとし、遅延時間“Ｄ０”を１ｎｓ、“Ｄ１”を４ｎｓ、“Ｄ２”を２ｎｓとし、ディバグ装置のセットアップ時間“Ｓｅ”を０．５ｎｓ、ディバグ装置のホールド時間“Ｈｏ”を０．１ｎｓとする。式（１）に代入すると、ラッチ可能区間は１．４ｎｓになる。
【００５６】
2004086496.tif 000004
【００５７】
ラッチ可能区間は、各信号間のスキューの幅が広くなるほど小さくなる。よってＣＬＫ最高動作周波数はスキューにより制限されることになる。
【００５８】
次に、図１０を参照して本実施例の１本の信号線により分岐または割り込みを通知する場合について説明する。
【００５９】
“Ｄ”は分岐／割り込み通知信号のＣＬＫからの遅延時間である。“Ｓｅ”は分岐／割り込み通知信号を受信するディバグ装置端子のセットアップ時間である。“Ｈｏ”は分岐／割り込み通知信号を受信するディバグ装置端子のホールド時間である。
【００６０】
Ｔ９で分岐が発生すると、ＣＬＫに同期して分岐／割り込み通知信号を“１”にする。遅延時間“Ｄ”が存在するので分岐／割り込み通知信号が“１”になるのはＴ１０になる。分岐／割り込み通知信号のラッチ可能区間はＣＬＫの１周期の区間Ｔ１０−Ｔ１３からディバグ装置のセットアップ時間“Ｓｅ”、ホールド時間“Ｈｏ”を引いたＴ１１−Ｔ１２区間になる。信号線が１本であるのでスキューは存在しない。ディバグ装置では、分岐／割り込み通知信号の値を時刻Ｔ１１−Ｔ１２の区間にラッチすることが可能である。ラッチ可能な区間Ｔ１１−Ｔ１２は、以下のように表すことが可能である。
【００６１】
2004086496.tif 000005
【００６２】
ＣＬＫの周波数を２００ＭＨｚとし、遅延時間“Ｄ”を４ｎｓ、ディバグ装置のセットアップ時間“Ｓｅ”を０．５ｎｓ、ホールド時間“Ｈｏ”を０．１ｎｓとする。式（３）に代入すると、ラッチ可能区間は４．４ｎｓになる。
【００６３】
2004086496.tif 000006
【００６４】
式（２）の結果と式（４）の結果を比較すると、ＣＬＫの周波数が同じであってもラッチ可能区間はスキュー幅の分、従来技術のほうが狭くなる。スキューは、ＣＬＫの周波数には依存せず、出力までの遅延時間で決まるので、ＣＬＫの周波数を早くすると、スキューの影響がさらに大きくなり、その結果、ＣＬＫの最高周波数がスキューにより決定することになる。これに対して、本発明では、スキューの影響がないので従来技術よりも高周波数での動作が可能となる。
【００６５】
［実施例２］
次に、本発明の第２の実施例に係るディバグ・システム及びディバグ方法について、図３を参照して説明する。図３は、本発明の第２の実施例に係るディバグ・システムの構成を示すブロック図である。
【００６６】
図３に示すように、本実施例のディバグ・システムは、第１の実施例の構成に加えて、マイクロコンピュータ３に出力するクロックを分周する１／Ｌ分周期３５（Ｌは２〜ｍ）と、ディバグ装置１に受信したクロックをＬ倍に逓倍するＰＬＬ１０を設けることを特徴としている。
【００６７】
マイクロコンピュータ３はクロック生成部３２で生成したクロックを直接出力せず、１／Ｌ分周期３５で１／Ｌに分周してＣＬＫ４で出力する。ディバグ装置１では受信したＣＬＫ４をＰＬＬ１０でＬ倍に逓倍し各ブロックに供給し、第１の実施例と同様にトレースを実行する。ディバグ端子がＣＬＫ４に同期して出力する場合、ＣＬＫ４端子がその他のデバック端子よりも２倍以上高速で動作する。ＣＬＫ４端子の動作周波数限界により、ディバグ時にＣＰＵ実動作周波数を実現できない場合があるが、第２の実施例ではＣＬＫ４を分周してから出力するため、一番動作周波数の高いＣＬＫ４の周波数を下げることができ、ディバグ時に高周波数で動作の制限が減るという効果が得られることになる。
【００６８】
［実施例３］
次に、本発明の第３の実施例に係るディバグ・システム及びディバグ方法について、図４及び図１２を参照して説明する。図４は、本発明の第３の実施例に係るディバグ・システムの構成を示すブロック図であり、図１２は、その動作を示すタイミングチャート図である。本実施例は、分岐または割り込みの発生を通知する信号と、割り込み要因を通知する信号を共用することを特徴としている。
【００６９】
図４に示すように、マイクロコンピュータ３に分岐発生と割り込み発生の通知と、割り込み要因を１本の信号線に合成するための合成部３６を設け、分岐／割り込み通知／割り込み要因信号１０３では、予め規定した、分岐発生を示すビット列と割り込み発生を示すビット列及び、それに続く割り込み要因をシリアルに送信する。
【００７０】
ディバグ装置１は、分岐／割り込み通知／割り込み要因信号１０３のシリアル・データを受信し、転送開始ビット検出部１５の出力である割り込み要因転送フラグが割り込み要因の受信を示していない場合に、予め規定したビット列から、分岐発生と割り込み発生の通知を検出する分岐／割り込み通知検出部１８を設ける。
【００７１】
本実施例は、このように分岐または割り込みを通知する信号線と割り込み要因を通知する信号線を共用することにより、ディバグ端子のよりいっそうの削減を実現し、ユーザー端子の使用可能端子数を増やすことが可能である。
【００７２】
次に、図１２を参照して本実施例の動作について説明する。
【００７３】
分岐発生を示すビット列を“１０”の２ビット、割り込み発生を示すビット列を“１１”の２ビット、割り込み要因を４ビットで示すとする。分岐／割り込み通知検出部１８は転送開始ビット検出部１５の出力する割り込み要因転送フラグが“０”の場合に、時刻Ｔ２４で“１”、時刻Ｔ２５で“０”をラッチして分岐発生、時刻Ｔ２６で“１”、時刻Ｔ２７で“１”をラッチして、割り込み発生を検出し、アドレス・カウンタ１２、アドレス変量保持部１３、ＦＩＦＯ１４に通知して第１の実施例と同様にアドレス変量を算出する。算出したアドレス変量はＦＩＦＯ１４に出力する。転送開始ビット検出部１５では、時刻Ｔ２６で“１”、時刻Ｔ２７で“１”をラッチして、割り込み発生を検出すると、割り込み要因転送フラグを“１”としてシリアル・パラレル変換部１６、ＦＩＦＯ１７、分岐／割り込み通知検出部１８に割り込み要因の受信を開始したことを通知する。シリアル・パラレル変換部１６は、割り込み要因転送フラグが“１”の間、割り込み要因として時刻Ｔ２８で“１”、時刻Ｔ２９で“１”、時刻Ｔ３０で“０”、時刻Ｔ３１で“１”をラッチし、パラレル・データに変換してＦＩＦＯ１７に出力する。図１２では時刻Ｔ２９−Ｔ３１区間に受信した４ビット“１１０１”が割り込み要因を示す。一般的なマイクロコンピュータは、割り込みには応答時間を要するため、その間サイクルを利用して割り込み要因を送信することが可能である。ホスト・コンピュータ２ではアドレス変量と割り込み要因を受信して、第１実施例と同様に、図１４のフローに従ってトレースを行う。
【００７４】
【発明の効果】
以上説明したように、本発明のディバグ・システム及びディバグ方法によれば下記記載の効果を奏する。
【００７５】
本発明の第１の効果は、ディバグ専用端子数を減らすことができ、ＩＣパッケージの大きさごとに決まる使用可能端子数において使用できるユーザー端子数を増やすことができるということである。
【００７６】
その理由は、分岐または割り込みの発生を通知する信号と、割り込みの要因を通知する信号の２本の信号線で、トレースを可能としているからである。
【００７７】
また、本発明の第２の効果は、ディバグ時の高速動作が可能になるということである。
【００７８】
その理由は、マイクロコンピュータの出力するクロックに同期するディバグ信号線が複数ではなく、１本の分岐／割り込み通知信号によりＣＰＵ実行結果を通知するため、複数の信号線で通知する場合のように信号間のスキューによる周波数の制限がなくなるからである。
【００７９】
また、本発明の第３の効果は、マイクロコンピュータ及びディバグ装置に、トレース・メモリを内蔵する必要がないため、マイクロコンピュータ及びディバグ装置の回路規模を縮小することができ、コストの減少が望めるということである。
【００８０】
その理由は、分岐または割り込みの発生時にだけ生成するアドレス変量からトレース可能であるのでデータ量が少なくて済み、ホスト・コンピュータの処理待ち時間の間、保持できる分だけのＦＩＦＯを用意すればよいからである。
【図面の簡単な説明】
【図１】本発明の一実施の形態（第１の実施例）に係るディバグ・システムの構成を示すブロック図である。
【図２】従来のディバグ・システムの構成を示すブロック図である。
【図３】本発明の第２の実施例に係るディバグ・システムの構成を示すブロック図である。
【図４】本発明の第３の実施例に係るディバグ・システムの構成を示すブロック図である。
【図５】本発明のディバグ装置を構成する分岐／割り込み通知検出部の構成を示すブロック図である。
【図６】本発明のディバグ装置を構成するアドレス変量保持部の構成を示すブロック図である。
【図７】本発明のディバグ装置を構成する転送開始ビット検出部の構成を示すブロック図である。
【図８】本発明のディバグ装置のアドレス変量検出動作を示すタイミングチャート図である。
【図９】本発明のディバグ装置の割り込み要因検出動作を示すタイミングチャート図である。
【図１０】本発明のディバグ・システムにおけるラッチ可能区間を示すタイミングチャート図である。
【図１１】従来のディバグ・システムにおけるラッチ可能区間を示すタイミングチャート図である。
【図１２】本発明の第２の実施例に係るディバグ・システムの動作を示すタイミングチャート図である。
【図１３】本発明の第１の実施例に係るディバグ装置の動作を示すフローチャート図である。
【図１４】本発明の第１の実施例に係るホスト・コンピュータの動作を示すフローチャート図である。
【符号の説明】
１　ディバグ装置
２　ホスト・コンピュータ
３　マイクロコンピュータ
４　ＣＬＫ
５　分岐／割り込み通知信号
６　割り込み要因信号
７　ディバグ・ツール
８　ホスト・コンピュータ
９　マイクロコンピュータ
１０　ＰＬＬ
１１　分岐／割り込み通知検出部
１２　アドレス・カウンタ
１３　アドレス変量保持部
１４、１７　ＦＩＦＯ
１５　転送開始ビット検出部
１６　シリアル・パラレル変換部
１８　分岐／割り込み通知検出部
３０　ＣＰＵ
３１　内部メモリ
３２　クロック生成部
３３　分岐／割り込み検出部
３４　プログラム実行部
３５　１／Ｌ分周器
３６　合成部
７０　データ処理部
７２　トレース・メモリ
９０　ＣＰＵ
９１　ステータス出力部
９２　内部メモリ
９３　クロック生成部
９４　分岐／割り込み検出部
９５　プログラム実行部
９６　ステータス生成部
１００　ＣＬＫ
１０１　ＤＳＴ
１０２　ＤＰＣＯ
１０３　分岐／割り込み通知／割り込み要因信号
１１０　ラッチ回路
１１１　ＥＸＯＲ
１３０　セレクタ
１３１　ラッチ回路
１５０　シリアル・パラレル変換部
１５１　デコーダ
１５２　カウンタ
１５３　通知信号出力部
【図１】
2004086496.tif 000007
【図２】
2004086496.tif 000008
【図３】
2004086496.tif 000009
【図４】
2004086496.tif 000010
【図５】
2004086496.tif 000011
【図６】
2004086496.tif 000012
【図７】
2004086496.tif 000013
【図８】
2004086496.tif 000014
【図９】
2004086496.tif 000015
【図１０】
2004086496.tif 000016
【図１１】
2004086496.tif 000017
【図１２】
2004086496.tif 000018
【図１３】
2004086496.tif 000019
【図１４】
2004086496.tif 000020