説明

メモリトレース装置及び方法

【課題】 実行時間を増大させることなく、効率よくマイクロコンピュータのメモリをトレースする。
【解決手段】 複数の命令ユニット104と、命令コードに該当する命令ユニットを選択する命令デコーダ103と、命令コードが扱うデータを格納する汎用レジスタ105とを有し、さらに、命令ユニット毎に例外を発生させるか否かを設定するステータスフラグを記憶するステータスレジスタ111と、プログラムに記述されたステータスフラグの状態を設定する設定コードに従いステータスフラグを更新するステータス更新部110と、命令ユニットが選択された時点で、命令ユニットに対応するステータスフラグをチェックし、ステータスフラグがオン状態の場合に例外を発生する命令ユニット毎に設けられた例外発生部121と、例外が発生したか否かを監視し、例外が発生した時点で汎用レジスタ105に格納されたデータをデータ記憶領域12に書き込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マイクロコンピュータを利用した処理システムのソフトウェア開発を支援するメモリトレース装置及び方法に関する。
【背景技術】
【0002】
従来より、マイクロコンピュータを利用したシステムの開発において、そのソフトウェア開発のために、デバッグモニタが使用されている。プログラムのデバッグを行う場合は、ある特定アドレスのメモリの内容がある特定の値で参照または変更されたことを的確に把握し、その時点でプログラムの状態を認識することが要求される場合がある。
【0003】
一般に、開発中のハードウェアをデバッグする場合には、ホストコンピュータと開発中のシステムをICE(In Circuit Emulator)を介して接続し、このハードウェア上で動作するソフトウェアの動作状態をトレースすることがある。また、一方では、開発中のハードウェアのプロセッサに、デバッグ用コード(デバッグモニタ等)を組み込み、そのデバッグ用コードを介して、ホストコンピュータと開発中のハードウェアを接続し、同ハードウェアが備えるCPUにて動作するソフトウェアの動作状態をトレースすることがある。上記のような不具合の原因を解析するには、上記に示したハードウェアのCPU上にて動作するソフトウェアの動作状態をトレースできるデバッグシステムを用いて、ハードウェアに関するログ情報を収集するコードを埋め込んだソフトウェアを動作させ、バグが発生した時点で、ソフトウェアを停止させ、ログを解析する。
【0004】
しかし、ログ情報を収集するコードを挿入してソフトウェアを実行させると、プログラムサイズの変化やメモリの使用状況の変化により不具合が発生しないことがある。
【0005】
この問題を解決するために、例えば特許文献1には、マイクロプロセッサがアクセスする主記憶メモリと同一アドレスにトレース条件を記憶したトレース条件メモリを有し、マイクロプロセッサのアクセス時の各信号条件とトレース条件との一致検出によってそのときの各信号条件をトレース蓄積メモリに記憶する方法が記載されている。また、特許文献2には、ICEを使用し、実行形式プログラムを静的に解析し、命令列の中からデータメモリアクセス命令を探索し、その検出アドレスに対しソフトウェアブレークを設定し、プログラムを実行してブレークが発生した場合、指定されたブレーク条件と一致したか否かの判断を行い、一致すればブレークを発生させる方法が記載されている。
【0006】
【特許文献1】特開昭63−158637号公報
【特許文献2】特開2003−15907号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1では、命令コードを実行する度に、マイクロプロセッサのアクセス時の各信号条件とトレース条件との一致検出をハードウェアで行うため、回路規模が大きくなるという問題がある。また、特許文献2では、プログラムの実行前にデータメモリアクセス命令の命令コードを静的に探索する時間が必要である。
【0008】
本発明は、このような事情に鑑みてなされたものであり、ハードウェアを大きくすること無く、実行前にかかる時間を無くし、ICEを使わずに、実際にプログラムを実行する環境でメモリ破壊の不具合を的確に把握することができるメモリトレース装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明のメモリトレース装置では、プログラム記憶領域と、データ記憶領域と、データトレース部と、を有する外部メモリと、複数の命令ユニットと、前記プログラム記憶領域に記憶されたプログラムの命令コードに該当する前記命令ユニットを選択し前記命令コードを実行させる命令デコーダと、前記命令ユニットが前記命令コードを実行する際に前記命令コードが扱うデータを格納する汎用レジスタと、からなるマイクロコンピュータと、を有し、前記マイクロコンピュータは、さらに、前記複数の命令ユニットの各々に例外発生通知信号を出力させる(オン状態)か否か(オフ状態)を設定するステータスフラグを記憶するステータスレジスタと、前記プログラムに記述された前記ステータスフラグの状態を設定する設定コードに従い前記ステータスレジスタに記憶されている前記ステータスフラグを更新するステータス更新部と、前記命令ユニットが選択された時点で、前記命令ユニットに対応する前記ステータスフラグをチェックし、前記ステータスフラグがオン状態の場合に前記例外発生通知信号を出力する前記複数の命令ユニットの各々に設けられた例外発生部と、前記例外発生通知信号を受信したか否かを判定し、前記例外発生通知信号を受信した時点で前記汎用レジスタに格納された前記データを前記データ記憶領域に書き込む処理を前記データトレース部に指示する例外処理部と、を有する、ことを要旨とする。
【0010】
この構成によれば、プログラムの命令コードに応じた命令ユニットを命令デコーダが選択した時点で例外発生部がステータスフラグをチェックし、例外発生通知信号を出力させるオン状態になっている場合、例外発生通知信号を出力し、例外発生通知信号を受信した時点での汎用レジスタのデータをトレースすることができるので、プログラムの個々の命令コードにデバッグコードを埋め込む必要が無く、実際のプログラムを実行させた状態でのメモリトレースを行うことができるので、ハードウェアを大きくすること無く、実行前にかかる時間を無くし、ICEを使わずに、メモリ破壊の不具合を的確に把握することができる。
【0011】
また、本発明のメモリトレース装置では、前記ステータスフラグは、さらに、前記命令ユニットの個々の命令に対してサブステータスフラグが設定され、前記例外発生部は、前記サブステータスフラグがオン状態の場合に前記例外発生通知信号を出力する。
【0012】
この構成によれば、命令ユニットの個々の命令に対して例外発生通知信号を出力させることができるので、より詳細にメモリ破壊の不具合を的確に把握することができる。
【0013】
また、本発明のメモリトレース方法では、プログラム記憶領域と、データ記憶領域と、データトレース部と、を有する外部メモリと、複数の命令ユニットと、前記プログラム記憶領域に記憶されたプログラムの命令コードに該当する前記命令ユニットを選択し前記命令コードを実行させる命令デコーダと、前記命令ユニットが前記命令コードを実行する際に前記命令コードが扱うデータを格納する汎用レジスタと、からなるマイクロコンピュータと、を有し、前記複数の命令ユニットの各々に例外発生通知信号を出力させる(オン状態)か否か(オフ状態)を設定するステータスフラグを記憶するステータスフラグ記憶工程と、前記プログラムに記述された前記ステータスフラグの状態を設定する設定コードに従い前記ステータスレジスタに記憶されている前記ステータスフラグを更新するステータス更新工程と、前記命令ユニットが選択された時点で、前記命令ユニットに対応する前記ステータスフラグをチェックし、前記ステータスフラグがオン状態の場合に前記例外発生通知信号を出力する前記命令ユニット毎に設けられた例外発生工程と、前記例外発生通知信号を受信したか否かを判定し、前記例外発生通知信号を受信した時点で前記汎用レジスタに格納された前記データを前記データ記憶領域に書き込む処理を前記データトレース部に指示する例外処理工程と、からなる。
【0014】
この構成によれば、プログラムの命令コードに応じた命令ユニットを命令デコーダが選択した時点で例外発生部がステータスフラグをチェックし、例外発生通知信号を出力させるオン状態になっている場合、例外発生通知信号を出力し、例外発生通知信号を受信した時点での汎用レジスタのデータをトレースすることができるので、プログラムの個々の命令コードにデバッグコードを埋め込む必要が無く、実際のプログラムを実行させた状態でのメモリトレースを行うことができるので、ハードウェアを大きくすること無く、実行前にかかる時間を無くし、ICEを使わずに、メモリ破壊の不具合を的確に把握することができる。
【発明を実施するための最良の形態】
【0015】
以下、本発明を具体化した実施形態について図面に従って説明する。
(第1実施形態)
【0016】
<メモリトレース装置の構成>
図1は、本発明の一実施形態に係るメモリトレース装置の全体構成図である。
【0017】
図1に示すように、メモリトレース装置1は、外部メモリ10と、マイクロコンピュータ100と、から構成される。メモリトレース装置1は、さらに、USB(Universal Serial Bus)などのシリアル通信インターフェースを有し、デバッグ用PC20をUSBケーブル21で接続してプログラムのデバッグを行う。
【0018】
外部メモリ10は、マイクロコンピュータ100を動作させるためにデバッグ用PC20からUSBケーブル21により転送されるプログラムを記憶するプログラム記憶領域11と、データ記憶領域12と、データトレース部13を有する。
【0019】
マイクロコンピュータ100は、外部メモリ10のプログラム記憶領域11に記憶されたプログラムから命令コードを読み込み、命令レジスタ102に格納する命令フェッチ101と、命令レジスタ102に格納された命令コードを1つずつ解読し、命令コードに対応する命令ユニット104を選択し、命令コードを実行させる命令デコーダ103と、命令ユニット104が命令コードを実行する際に命令コードが扱うデータを格納する汎用レジスタ105と、プログラムカウンタ106と、を有する。
【0020】
本実施形態では、命令ユニット104は、ステータス更新部110と、乗算ユニット120と、加減算/シフトユニット130と、ロード/ストアユニット140と、ブランチ/ジャンプユニット150から構成されている。
【0021】
プログラムの命令コードには、図2(A)に示すように、命令ユニット104のそれぞれのユニット毎に例外発生通知信号を出力させる(オン状態=1)か否か(オフ状態=0)を設定するステータスフラグが記述されている。例えば、図2(A)の(1)行目のSET MP_UNIT_FLAG=1は、乗算ユニット120のステータスフラグMP_UNIT_FLAGをオン状態にする設定であり、図2(A)の(3)行目のSET ADD_SHIFT_UNIT_FLAG=1は、加減算/シフトユニット130のステータスフラグADD_SHIFT_UNIT_FLAGをオン状態にする設定であり、図2(A)の(5)行目のSET LOAD_STORE_UNIT_FLAG=0は、ロード/ストアユニット140のステータスフラグLOAD_STORE_UNIT_FLAGをオフ状態にする設定である。
【0022】
命令デコーダ103は、図2(A)の命令コードを解読し、ステータス更新部110を選択する。ステータス更新部110は、図2(A)の命令コードに従い、マイクロコンピュータ100が有するステータスレジスタ111のステータスフラグの値を図2(B)に示すように更新する。例えば、図2(B)の(1)行目は、乗算ユニット120のステータスフラグMP_UNIT_FLAGがオン状態である1に設定され、図2(B)の(3)行目は、加減算/シフトユニット130のステータスフラグADD_SHIFT_UNIT_FLAGがオン状態である1に設定され、図2(B)の(5)行目は、ロード/ストアユニット140のステータスフラグLOAD_STORE_UNIT_FLAGがオフ状態である0に設定される。
【0023】
乗算ユニット120と加減算/シフトユニット130とロード/ストアユニット140は、汎用レジスタ105の所定のアドレスの領域を使い、演算やデータの置き換えを行う。メモリトレース装置1は、プログラムの実行過程において汎用レジスタ105のデータが書き換わる過程をトレースすることにより、データ破壊や演算ミスなどを詳細に追うことが可能となる。従って、本実施形態のメモリトレース装置1は、汎用レジスタ105のデータを書き換える乗算ユニット120と加減算/シフトユニット130とロード/ストアユニット140に、命令デコーダ103から選択された時点で例外発生通知信号を出力するか否かを判断する例外発生部121、131、141を各々搭載している。
【0024】
乗算ユニット120に搭載された例外発生部121は、ステータスレジスタ111に記憶されたステータスフラグMP_UNIT_FLAGの設定に従い、オン状態の場合に例外発生通知信号を出力する。加減算/シフトユニット130に搭載された例外発生部131は、ステータスレジスタ111に記憶されたステータスフラグADD_SHIFT_UNIT_FLAGの設定に従い、オン状態の場合に例外発生通知信号を出力する。ロード/ストアユニット140に搭載された例外発生部141は、ステータスレジスタ111に記憶されたステータスフラグLOAD_STORE_UNIT_FLAGの設定に従い、オン状態の場合に例外発生通知信号を出力する。
【0025】
マイクロコンピュータ100は、さらに、例外処理部160を有し、例外発生部121、131、141から例外発生通知信号を受信したか否かを判定し、例外発生通知信号を受信した時点でデータトレース部13に汎用レジスタ105のデータをトレースする処理を指示する。
【0026】
データトレース部13は、例外処理部160からの指示に従い、例外発生通知信号を受信した時点の命令レジスタ102の命令コードを解析し、汎用レジスタ105の書き換えられたデータを抽出し、データ記憶領域12に書き込む。
【0027】
ここで、図2(A)において、前述した(1)、(3)、(5)行目の命令コードは、命令ユニット毎に対するステータスフラグであり、命令ユニットが選択された時点で例外発生通知信号を出力させるか否かを設定できるが、複数の命令を持つ命令ユニットの個々の命令毎に例外発生通知信号を出力させる(オン状態=1)か否か(オフ状態=0)のサブステータスフラグを設定することもできる。
【0028】
例えば、図2(A)の(2)行目のSET MP_ORDER_FLAG=0は、乗算ユニット120のMP命令のサブステータスフラグMP_ORDER_FLAGをオフ状態にする設定であり、図2(A)の(4)行目のSET ADD_ORDER_FLAG=0は、加減算/シフトユニット130のADD命令のサブステータスフラグADD_ORDER_FLAGをオフ状態にする設定である。さらに、図2(A)の(6)行目のSET LW_ORDER_FLAG=1は、ロード/ストアユニット140のLW命令のサブステータスフラグLW_ORDER_FLAGをオン状態にする設定であり、図2(A)の(7)行目のSET SW_ORDER_FLAG=0は、ロード/ストアユニット140のSW命令のサブステータスフラグSW_ORDER_FLAGをオフ状態にする設定である。
【0029】
<例外発生部の動作>
次に、図3を参照して例外発生部121、131、141の動作を説明する。図3は、乗算ユニット120の例外発生部121の動作を説明するフローチャートである。
【0030】
先ず、ステップS100では、命令デコーダ103が乗算ユニット120を選択したか否かを監視し、選択された場合は、ステップS102に移行し、選択されていない場合は、監視を続ける。
【0031】
次に、ステップS102では、ステータスレジスタ111の乗算ユニット120のステータスフラグMP_UNIT_FLAGの設定をチェックし、オン状態か否かを判定し、オン状態の場合は、ステップS106に移行し、オフ状態の場合は、ステップS104に移行する。
【0032】
次に、ステップS106では、例外発生通知信号を出力し、ステップS100に戻る。
【0033】
一方、ステップS104では、ステータスレジスタ111の乗算ユニット120のMP命令のサブステータスフラグMP_ORDER_FLAGの設定をチェックし、オン状態か否かを判定し、オン状態の場合は、ステップS106に移行し、オフ状態の場合は、ステップS100に戻る。
【0034】
例外発生部131、141の動作も、同様である。
【0035】
<例外処理部の動作>
次に、図4を参照して例外処理部160の動作を説明する。図4は、例外処理部160の動作を説明するフローチャートである。
【0036】
先ず、ステップS152では、例外発生部121、131、141から出力される例外発生通知信号を受信したか否かを判定し、例外発生通知信号を受信した場合は、ステップS154に移行し、例外発生通知信号を受信していない場合は、待機する。
【0037】
次に、ステップS154では、データトレース部13に対して、汎用レジスタ105のデータをトレースする処理を指示し、ステップS152に戻る。
【0038】
<プログラムとメモリトレースされた結果>
次に、図5を参照してメモリトレース装置全体の動作を説明する。図5は、プログラムとメモリトレースされた結果を説明する図である。
【0039】
図5(A)は、プログラムコードの一例である。(1)行目の命令コードADD r[0],r[1],r[2]は、加減算/シフトユニット130のADD命令により汎用レジスタ105のアドレスr[1]とr[2]に格納されたデータを加算し、アドレスr[0]に格納する命令(または、r[0]に指定されたメモリ番地に格納する命令)である。(2)行目の命令コードMP r[0],r[1],r[2]は、乗算ユニット120のMP命令により汎用レジスタ105のアドレスr[1]とr[2]に格納されたデータを乗算し、アドレスr[0]に格納する命令(または、r[0]に指定されたメモリ番地に格納する命令)である。
【0040】
(3)行目の命令コードBEQ r[1],r[2],L200は、ブランチ/ジャンプユニット150のBEQ命令により汎用レジスタ105のアドレスr[1]とr[2]に格納されたデータを比較し、値が等しい場合ラベルL200にジャンプする命令である。(4)行目の命令コードJ L100は、ブランチ/ジャンプユニット150のJ命令により無条件にラベルL100にジャンプする命令である。
【0041】
(5)行目の命令コードLW r[0],#aは、ロード/ストアユニット140のLW命令により外部メモリ10のアドレス#aのデータを汎用レジスタ105のアドレスr[0]にロードする命令である。(6)行目の命令コードSW r[0],#bは、ロード/ストアユニット140のSW命令により汎用レジスタ105のアドレスr[0]のデータ外部メモリ10のアドレス#bにストアする命令である。
【0042】
<メモリトレース装置全体の動作>
先ず、デバッグ用PC20は、図2(A)のステータスフラグ設定用の命令コードと、図5(A)のプログラムコードを外部メモリ10のプログラム記憶領域11に転送する。
【0043】
次に、命令フェッチ101は、プログラム記憶領域11から順次命令コードを読み出し、命令レジスタ102に格納していく。
【0044】
次に、命令デコーダ103は、命令レジスタ102に格納された命令コードを1つずつ解読し、命令ユニット104を選択する。最初に、図2(A)のステータスフラグ設定用の命令コードをステータス更新部110に実行させ、図2(B)のようにステータスレジスタ111の値を更新する。
【0045】
次に、図5(A)のプログラムコードを解析し、命令ユニット104を選択する。最初に(1)行目の命令コードADD r[0],r[1],r[2]が解読され、加減算/シフトユニット130が選択される。この時点で、加減算/シフトユニット130の例外発生部131は、ステータスレジスタ111のADD_SHIFT_UNIT_FLAGの設定をチェックし、図2(B)の(3)行目に示すようにADD_SHIFT_UNIT_FLAG=1に設定されているので、例外発生通知信号を出力する。
【0046】
例外発生通知信号を受信したので、例外処理部160は、データトレース部13に汎用レジスタ105のデータをトレースする処理を指示する。図5(B)の(1)行目に示すように、汎用レジスタ105のアドレスr[0]とr[0]の値が、データ記憶領域12に書き込まれる。
【0047】
図5(A)の(2)行目の命令コードMP r[0],r[1],r[2]についても同様に、MP_SHIFT_UNIT_FLAG=1に設定されているので、図5(B)の(2)行目に示すように、汎用レジスタ105のアドレスr[0]とr[0]の値が、データ記憶領域12に書き込まれる。
【0048】
次に、図5(A)の(3)行目の命令コードBEQ r[1],r[2],L200が解読され、ブランチ/ジャンプユニット150が選択されるが、ブランチ/ジャンプユニット150は、例外発生部を搭載していないので、例外発生通知信号は出力されない。図5(A)の(4)行目の命令コードJ L100も同様である。
【0049】
次に、図5(A)の(5)行目の命令コードLW r[0],#aが解読され、ロード/ストアユニット140が選択される。ここで図2(B)の(5)行目に示すようにLOAD_STORE_UNIT_FLAG=0(オフ状態)と設定されているので、次にロード/ストアユニット140のLW命令のサブステータスフラグを参照する(図3のステップS104)。図2(B)の(6)行目に示すようにLW_ORDER_FLAG=1に設定されているので、図5(B)の(5)行目に示すように、汎用レジスタ105のアドレスr[0]とr[0]の値が、データ記憶領域12に書き込まれる。
【0050】
次に、図5(A)の(6)行目の命令コードSW r[0],#bが解読され、ロード/ストアユニット140が選択される。ここで図2(B)の(5)行目に示すようにLOAD_STORE_UNIT_FLAG=0(オフ状態)と設定されているので、次にロード/ストアユニット140のSW命令のサブステータスフラグを参照する(図3のステップS104)。図2(B)の(7)行目に示すようにSW_ORDER_FLAG=0(オフ状態)と設定されているので、例外発生通知信号は出力されない。
【0051】
以上に述べた前記実施形態によれば、以下の効果が得られる。
【0052】
本実施形態では、プログラムの命令コードに応じた命令ユニットを命令デコーダが選択した時点で例外発生部がステータスフラグをチェックし、例外発生通知信号を出力させるオン状態になっている場合、例外発生通知信号を出力し、例外発生通知信号を受信した時点での汎用レジスタのデータをトレースすることができるので、プログラムの個々の命令コードにデバッグコードを埋め込む必要が無く、実際のプログラムを実行させた状態でのメモリトレースを行うことができるので、ハードウェアを大きくすること無く、実行前にかかる時間を無くし、ICEを使わずに、メモリ破壊の不具合を的確に把握することができる。
【0053】
なお、本実施形態では、サブステータスフラグがある場合について説明したが、サブステータスフラグは無くてもよい。その場合、回路規模をさらに小さくすることができる。
【0054】
以上、本発明の実施形態を説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施し得ることができる。以下、変形例を挙げて説明する。
【0055】
(変形例1)本発明に係るメモリトレース装置の第1変形例について説明する。前記第1実施形態では、例外発生通知信号を受信した時点で、汎用レジスタ105のアドレスと格納された値のみをデータ記憶領域12に書き込むように説明したが、データトレース部13は、例外発生通知信号を受信した時点で、プログラムカウンタ106からプログラムカウンタ値を取得し、プログラムカウンタ値と汎用レジスタ105のアドレスと格納された値をデータ記憶領域12に書き込むようにしてもよい。
【図面の簡単な説明】
【0056】
【図1】本発明のメモリトレース装置の全体構成図。
【図2】ステータスレジスタの構成図。
【図3】例外発生部の動作を説明するフローチャート。
【図4】例外処理部の動作を説明するフローチャート。
【図5】プログラムとメモリトレースされた結果を説明する図。
【符号の説明】
【0057】
1…メモリトレース装置、10…外部メモリ、11…プログラム記憶領域、12…データ記憶領域、13…データトレース部、20…デバッグ用PC、21…USBケーブル、100…マイクロコンピュータ、101…命令フェッチ、102…命令レジスタ、103…命令デコーダ、104…命令ユニット、105…汎用レジスタ、106…プログラムカウンタ、110…ステータス更新部、111…ステータスレジスタ、120…乗算ユニット、121…例外発生部、130…加減算/シフトユニット、131…例外発生部、140…ロード/ストアユニット、141…例外発生部、150…ブランチ/ジャンプユニット、160…例外処理部。

【特許請求の範囲】
【請求項1】
プログラム記憶領域と、データ記憶領域と、データトレース部と、を有する外部メモリと、
複数の命令ユニットと、プログラムカウンタと、前記プログラム記憶領域に記憶されたプログラムの命令コードに該当する前記命令ユニットを選択し前記命令コードを実行させる命令デコーダと、前記命令ユニットが前記命令コードを実行する際に前記命令コードが扱うデータを格納する汎用レジスタと、からなるマイクロコンピュータと、
を有し、
前記マイクロコンピュータは、さらに、
前記複数の命令ユニットの各々に例外発生通知信号を出力させる(オン状態)か否か(オフ状態)を設定するステータスフラグを記憶するステータスレジスタと、
前記プログラムに記述された前記ステータスフラグの状態を設定する設定コードに従い前記ステータスレジスタに記憶されている前記ステータスフラグを更新するステータス更新部と、
前記命令ユニットが選択された時点で、前記命令ユニットに対応する前記ステータスフラグをチェックし、前記ステータスフラグがオン状態の場合に前記例外発生通知信号を出力する前記複数の命令ユニットの各々に設けられた例外発生部と、
前記例外発生通知信号を受信したか否かを判定し、前記例外発生通知信号を受信した時点で前記汎用レジスタに格納された前記データを前記データ記憶領域に書き込む処理を前記データトレース部に指示する例外処理部と、
を有する、
ことを特徴とするメモリトレース装置。
【請求項2】
請求項1に記載のメモリトレース装置において、前記ステータスフラグは、さらに、前記命令ユニットの個々の命令に対してサブステータスフラグが設定され、前記例外発生部は、前記サブステータスフラグがオン状態の場合に前記例外発生通知信号を出力する、ことを特徴とするメモリトレース装置。
【請求項3】
プログラム記憶領域と、データ記憶領域と、データトレース部と、を有する外部メモリと、
複数の命令ユニットと、プログラムカウンタと、前記プログラム記憶領域に記憶されたプログラムの命令コードに該当する前記命令ユニットを選択し前記命令コードを実行させる命令デコーダと、前記命令ユニットが前記命令コードを実行する際に前記命令コードが扱うデータを格納する汎用レジスタと、からなるマイクロコンピュータと、
を有し、
前記複数の命令ユニットの各々に例外発生通知信号を出力させる(オン状態)か否か(オフ状態)を設定するステータスフラグを記憶するステータスフラグ記憶工程と、
前記プログラムに記述された前記ステータスフラグの状態を設定する設定コードに従い前記ステータスレジスタに記憶されている前記ステータスフラグを更新するステータス更新工程と、
前記命令ユニットが選択された時点で、前記命令ユニットに対応する前記ステータスフラグをチェックし、前記ステータスフラグがオン状態の場合に前記例外発生通知信号を出力する前記複数の命令ユニットの各々に設けられた例外発生工程と、
前記例外発生通知信号を受信したか否かを判定し、前記例外発生通知信号を受信した時点で前記汎用レジスタに格納された前記データを前記データ記憶領域に書き込む処理を前記データトレース部に指示する例外処理工程と、
からなる、
ことを特徴とするメモリトレース方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2007−86965(P2007−86965A)
【公開日】平成19年4月5日(2007.4.5)
【国際特許分類】
【出願番号】特願2005−273423(P2005−273423)
【出願日】平成17年9月21日(2005.9.21)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】