(57)【要約】【課題】  プロセッサモジュールの挙動をトレース可能であり、且つアプリケーション処理回路の挙動をも選択的にトレースできるマイクロプロセッサを提供する。【解決手段】  命令を実行して命令の種類及び命令の命令長の情報を生成するプロセッサモジュール３と、プロセッサモジュール３と協調して動作し、特定のアプリケーションを処理するアプリケーション処理回路５と、命令長の情報から命令の実行アドレスを算出するアドレス算出回路４３と、算出された実行アドレスが指定アドレス区間内である場合にアプリケーション処理回路５からデータを取得するデータ取得回路４４と、取得されたデータを実行状況の情報と共に格納するトレースメモリ４６とを備える。【選択図】    図１
2007148565.tif 000002
【特許請求の範囲】
【請求項１】
命令を実行して前記命令の種類及び命令長の情報を含むトレース情報を生成するプロセッサモジュールと、
前記プロセッサモジュールと協調して動作し、特定のアプリケーションを処理するアプリケーション処理回路と、
前記命令長の情報から前記命令の実行アドレスを算出するアドレス算出回路と、
算出された前記実行アドレスが指定アドレス区間内である場合に前記アプリケーション処理回路からデータを取得するデータ取得回路と、
前記取得されたデータが前記トレース情報と共に格納されるトレースメモリ
とを備えることを特徴とするマイクロプロセッサ。
【請求項２】
前記トレースメモリに対して前記取得されたデータ及び前記トレース情報を格納する際に、前記取得されたデータ及び前記トレース情報を圧縮する圧縮回路を更に備えることを特徴とする請求項１に記載のマイクロプロセッサ。
【請求項３】
前記プロセッサモジュールは、前記命令が分岐を伴う命令であるか否かを判定し、前記命令が前記分岐を伴う命令でない場合に前記命令長の情報を生成し、前記命令が前記分岐を伴う命令である場合に分岐先アドレスの情報を生成し、
前記アドレス算出回路は、前記分岐先アドレスと前記命令長の情報を加算して前記実行アドレスを得ることを特徴とする請求項１又は２に記載のマイクロプロセッサ。
【請求項４】
前記プロセッサモジュールは、ＶＬＩＷ型の命令を実行した場合に前記ＶＬＩＷ型の命令の命令長を示すＶＬＩＷ命令情報を更に生成し、
前記アドレス算出回路は、前記ＶＬＩＷ命令情報から前記実行アドレスを算出することを特徴とする請求項１又は２に記載のマイクロプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマイクロプロセッサに関し、特にマイクロプロセッサの挙動をトレースする技術に関する。
【背景技術】
【０００２】
多数の命令からなるプログラムのデバッグやシステムの性能測定工程においては、運用時に生じる問題点を検出するため、プログラムを実行するマイクロプロセッサの挙動がトレースされる。また、マイクロプロセッサの挙動をトレースするトレース装置をマイクロプロセッサ内に組み込むインサーキットエミュレータが知られている。トレース装置がトレースしたマイクロプロセッサの挙動の情報（以下、「トレース情報」という。）は、マイクロプロセッサ外部の解析装置に転送される。
【０００３】
一方、マイクロプロセッサの高速化により、プログラムの実行状況の解析が困難になってきている。このため、トレース情報を圧縮して、リアルタイムで出力するトレース情報量を削減する手法や、トレース情報をトレース装置内のメモリに格納する手法が用いられる。更に、圧縮されたトレース情報に対し、命令長を示すデータを含ませることが可能な手法が提案されている（例えば、特許文献１参照。）。
【０００４】
また、微細加工技術の発達により、１つのマイクロプロセッサに多くの機能が実装される場合が増加している。この結果、命令を実行するプロセッサモジュールと、他のアプリケーションを処理するアプリケーション処理回路が１つのマイクロプロセッサ内に実装されることがある。
【０００５】
しかしながら、プロセッサモジュールの挙動が完全にトレースできたとしても、アプリケーション処理回路の挙動をトレースできない。プロセッサモジュール及びアプリケーション処理回路のそれぞれの挙動をトレースする場合、トレース装置がトレースする情報の情報量が大幅に増加する。
【特許文献１】米国特許第６５０７９２１号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、プロセッサモジュールの挙動をトレース可能であり、且つアプリケーション処理回路の挙動をも選択的にトレースできるマイクロプロセッサを提供する。
【課題を解決するための手段】
【０００７】
本発明の一態様によれば、命令を実行して命令の種類及び命令長の情報を含むトレース情報を生成するプロセッサモジュールと、プロセッサモジュールと協調して動作し、特定のアプリケーションを処理するアプリケーション処理回路と、命令長の情報から命令の実行アドレスを算出するアドレス算出回路と、算出された実行アドレスが指定アドレス区間内である場合にアプリケーション処理回路からデータを取得するデータ取得回路と、取得されたデータがトレース情報と共に格納されるトレースメモリとを備えるマイクロプロセッサが提供される。
【発明の効果】
【０００８】
本発明によれば、プロセッサモジュールの挙動をトレース可能であり、且つアプリケーション処理回路の挙動をも選択的にトレースできるマイクロプロセッサを提供できる。
【発明を実施するための最良の形態】
【０００９】
次に、図面を参照して、本発明の実施形態を説明する。以下の実施形態における図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
【００１０】
＜全体構成例＞
本発明の実施形態に係るマイクロプロセッサ１は、図１に示すように、メインバス６と、メインバス６に接続されたプロセッサモジュール３、アプリケーション処理回路５、及びトレース装置４とを備える。マイクロプロセッサ１は、デバッグ時において解析装置２に接続される。更に、プロセッサモジュール３は、内部バス３４と、内部バス３４に接続されたプロセッサコア３１、コプロセッサ３２、及びトレース情報出力回路３３とを備える。プロセッサモジュール３は、命令を実行して、命令の種類と命令のサイズ（以下、「命令長」という。）の情報を含むトレース情報を生成する。アプリケーション処理回路５は、プロセッサモジュール３と協調して動作し、特定のアプリケーションを処理する。
【００１１】
アプリケーション処理回路５としては、メインバス６に流れるデータをモニタするバスモニタ、又は任意の信号処理を実行するデジタル・シグナル・プロセッサ（ＤＳＰ）等が使用できる。アプリケーション処理回路５は、プロセッサモジュール３と協調して動作しながら、毎サイクルで例えば１６ビット程度のデータを内部で生成する。生成されるデータは、アプリケーション処理の中間的なデータであり、マイクロプロセッサ１の外部から直接参照することはできないデータであるとする。アプリケーション処理回路５が生成するデータは、デバッグや性能測定のためにトレース装置４に向けて出力される。
【００１２】
また、トレース装置４は、プロセッサモジュール３からの命令長の情報を累積加算することで命令の実行アドレスを算出するアドレス算出回路４３と、アドレス算出回路４３によって算出された実行アドレスが指定アドレス区間内である場合にアプリケーション処理回路５からデータを取得するデータ取得回路４４と、データ取得回路４４によって取得されたデータがトレース情報と共に格納されるトレースメモリ４６とを備える。ここで「命令の実行アドレス」とは、具体的には、プロセッサモジュール３のプロセッサコア３１内部のプログラムカウンタ（ＰＣ）の値を意味する。
【００１３】
トレース装置４は、トレース情報出力回路３３が出力するトレース情報と、アプリケーション処理回路５から取得したデータとを関連付けてトレースメモリ４６に格納する。したがって、ユーザが実行アドレスを指定して、アプリケーション処理回路５からのデータをトレース可能なトレース装置４が構成される。よって、実行アドレスで指定可能な命令単位で、アプリケーション処理回路５からのデータのうちの必要な部分のみを選択的にトレースメモリ４６に格納できる。この結果、トレース対象とする情報の情報量とトレースメモリ４６の記憶容量とのトレードオフを考慮しつつ、デバッグの状況に応じたトレース処理が可能となる。
【００１４】
＜プロセッサモジュールの構成例＞
次に、プロセッサモジュール３の構成について詳細に説明する。プロセッサモジュール３は、可変長の命令セットを有し、各命令は例えば１６ビット又は３２ビットの命令長を有する。また、プロセッサモジュール３は、「コアモード」と「超長語命令（ＶＬＩＷ）モード」の２つの命令実行モードを有している。コアモードのときはプロセッサコア３１が実行する命令の実行アドレスは連続するが、ＶＬＩＷモードで動作する場合は、プロセッサコア３１が実行する命令の後にコプロセッサ３２向けの命令がプログラムメモリ（図示省略）に並べて配置される。よって、ＶＬＩＷモードで動作しているときは、プロセッサコア３１で実行されるプログラムの実行アドレスは、３２ビット又は６４ビット単位の固定長で配置されることとなる。
【００１５】
トレース情報出力回路３３は、プロセッサコア３１及びコプロセッサ３２の挙動を内部バス３４を介して検出し、表１に示すようなトレース情報ＰＣＯＤＥ，ＰＴＤをトレース装置４に出力する。
【表１】
2007148565.tif 000003
【００１６】
トレース情報ＰＣＯＤＥには、各サイクルでプロセッサコア３１が実行する命令の種類の情報が含まれる。これに対してトレース情報ＰＴＤには、プロセッサコア３１が実行する命令の分岐先の実行アドレス（以下、「分岐先アドレス」という。）と、コア命令又はＶＬＩＷ命令の命令長の各情報が含まれる。尚、表１に示す例においては、トレース情報ＰＣＯＤＥが４ビットであり、トレース情報ＰＴＤが１６ビットである一例を示している。また、トレース情報ＰＣＯＤＥの初期値を“４’ｂ００００”とし、トレース情報ＰＴＤの初期値を“１６’ｈ００００”としている。
【００１７】
トレース情報ＰＴＤのフォーマット例を図２に示す。図２に示す２ビットデータＣＩＳはコア命令の命令長を示すデータである。一例として、データＣＩＳが“００”である場合は実行したコア命令がないことを意味する。データＣＩＳが“０１”である場合は１６ビットのコア命令を実行したことを意味する。データＣＩＳが“１０”である場合は３２ビットのコア命令を実行ことを意味する。
【００１８】
また、図２に示す２ビットデータＶＩＳは、ＶＬＩＷモードであるか否か、及びＶＬＩＷモードである場合にＶＬＩＷ命令の命令長を示すデータである。一例として、データＶＩＳが“００”である場合はコプロセッサ３２による命令実行が行われない、即ちコアモードであることを意味する。データＣＩＳが“０１”である場合は３２ビット命令長のＶＬＩＷモードで実行することを意味する。データＣＩＳが“１０”である場合は６４ビット命令長のＶＬＩＷモードで実行することを意味する。
【００１９】
トレース情報ＰＣＯＤＥ及びＰＴＤの関係を表２に示す。表２に示すように、プロセッサコア３１及びコプロセッサ３２が分岐を伴わない命令を実行した場合には、トレース情報ＰＴＤには分岐を伴わない命令の命令長の情報が含まれる。これに対してプロセッサコア３１及びコプロセッサ３２が分岐を伴う命令を実行した場合には、トレース情報ＰＴＤには分岐先アドレスの情報が含まれる。
【表２】
2007148565.tif 000004
【００２０】
また、表２に示す“ＮＩ”は、実行する命令がない場合等に出力される。トレース情報ＰＣＯＤＥが“ＮＩ”である場合、表２に示すように、トレース情報ＰＴＤとしては命令長及び分岐先アドレスのいずれの情報も出力されない。
【００２１】
トレース情報ＰＣＯＤＥが“ＩＥ”である場合、プロセッサコア３１の現在の命令が、以下の（１）〜（４）いずれにもあてはまらない命令を実行したことを意味する：
（１）ＢＴ／ＪＰ／ＪＶ／ＢＮの条件を満たす分岐命令
（２）ＥＸの条件を満たす例外発生時の命令
（３）ＲＴの条件を満たすリピートブロックの最後の命令
（４）ＤＭの条件を満たすデバッグモード中の命令
また、トレース情報ＰＣＯＤＥが“ＩＥ”であるときはトレース情報ＰＴＤとしては命令長の情報が出力される。尚、“ＩＥ”に該当する命令としては、例えば加算命令ａｄｄ３、及び停止命令ｈａｌｔ，ｓｌｅｅｐ等がある。
【００２２】
更に、表２に示す“ＢＴ”は、プロセッサコア３１の現在の命令が、プログラム実行オブジェクト(ソース)から静的に分岐先が特定される分岐・ジャンプ命令によって分岐が発生したことを意味する。トレース情報ＰＣＯＤＥが“ＢＴ”である場合、トレース情報ＰＴＤとしては分岐先アドレスの情報が出力される。“ＢＴ”に該当する命令としては、ｂｒａ命令、ｂｅｑｚ命令、ｂｎｅｚ命令、ｂｅｑｉ命令、及びｂｓｒ命令等がある。尚、ｂｒａ命令は、任意のアドレスへＰＣ相対で実効アドレスを求めジャンプするための命令である。ｂｓｒ命令は、任意のアドレスへＰＣ相対で実効アドレスを求めサブルーチンジャンプするための命令である。ｂｅｑｚ命令、ｂｎｅｚ命令、及びｂｅｑｉ命令は、所定のフラグがセット又はクリアのときに分岐する命令である。
【００２３】
表２に示す“ＪＰ”は、プロセッサコア３１の現在の命令が、プログラム実行オブジェクト(ソース)から静的に分岐先がわからない分岐・ジャンプであること、又はリターン命令であることを意味する。尚、デバッグモードから復帰するｄｒｅｔ命令も“ＪＰ”に該当する。トレース情報ＰＣＯＤＥが“ＪＰ”である場合、トレース情報ＰＴＤとしては分岐先アドレスの情報が出力される。“ＪＰ”に該当する命令としては、ｊｍｐ命令、ｊｓｒ命令、ｒｅｔ命令、ｒｅｔｉ命令、及びｄｒｅｔ命令等がある。尚、ｊｍｐ命令は、任意のアドレスにジャンプする命令である。ｊｓｒ命令は、任意のアドレスにサブルーチンジャンプするための命令である。ｒｅｔ命令、ｒｅｔｉ命令、及びｄｒｅｔ命令は、サブルーチンから戻るための命令である。
【００２４】
表２に示す“ＪＶ”は、プロセッサコア３１の現在の命令が、ＶＬＩＷモードとコアモードのトグルを発生させる、ジャンプ命令又はリターン命令であることを意味する。トレース情報ＰＣＯＤＥが“ＪＶ”である場合、トレース情報ＰＴＤとしては分岐先アドレスの情報が出力される。“ＪＶ”に該当する命令としては、ｊｍｐ命令、ｊｓｒｖ命令、ｂｓｒｖ命令、ｒｅｔ命令、及びｒｅｔｉ命令等がある。
【００２５】
表２に示す“ＥＸ”は、プロセッサコア３１の現在の命令で、デバッグ例外及びリセット例外を除く他の例外が発生したことを意味する。トレース情報ＰＣＯＤＥが“ＥＸ”である場合、トレース情報ＰＴＤとしては分岐先アドレスの情報が出力される。
【００２６】
表２に示す“ＲＴ”は、リピートブロックの最後の命令で、リピートブロックの最初に戻る場合に出力される。リピートブロックの最後の命令でも、リピートブロックを抜ける場合は、“ＩＥ”に該当する。トレース情報ＰＣＯＤＥが“ＲＴ”である場合、トレース情報ＰＴＤとしては分岐先アドレスの情報が出力される。
【００２７】
表２に示す“ＤＭ”は、デバッグ例外の発生と、デバッグモード中の命令の実行、ストール状態等、又はデバッグモードであることを意味する。トレース情報ＰＣＯＤＥが“ＤＭ”である場合、命令長及び分岐先アドレスのいずれの情報もトレース情報ＰＴＤとして出力されない。
【００２８】
表２に示す“ＢＮ”は、プロセッサコア３１の現在の命令が、ソースコードから静的に分岐先がわかる、分岐・ジャンプ命令によって分岐が成立しなかったことを意味する。トレース情報ＰＣＯＤＥが“ＢＮ”である場合、命令長の情報がトレース情報ＰＴＤとして出力される。“ＢＮ”に該当する命令としては、ｂｒａ命令、ｂｅｑｚ命令、ｂｎｅｚ命令、ｂｅｑｉ命令、及びｂｓｒ命令等がある。
【００２９】
＜プロセッサモジュールの動作例＞
次に、図３に示すタイムチャートを参照して、本発明の実施形態に係るプロセッサモジュール３の動作例を説明する。但し、プロセッサモジュール３をコアモードで動作させる場合について説明する。
【００３０】
図３のサイクルＣ１においては、プロセッサコア３１は図３（ｄ）に示すように命令を実行しないため、図３（ｂ）に示すトレース情報ＰＣＯＤＥは表２に示した“ＮＩ”となる。
【００３１】
サイクルＣ２において、プロセッサコア３１は、図３（ｄ）に示すように加算命令ａｄｄ３を実行するため、図３（ｂ）に示すトレース情報ＰＣＯＤＥは“ＩＥ”となる。尚、サイクルＣ２においてはトレース情報ＰＴＤとして命令長の情報は生成されず、次のサイクルであるサイクルＣ３で生成される。
【００３２】
サイクルＣ３において、プロセッサコア３１はジャンプ命令ｊｍｐを実行したことを出力するため、“ＪＰ”をトレース情報ＰＣＯＤＥとして出力する。同時に、サイクルＣ２で実行したａｄｄ３命令に対応する命令長の情報（ｓｉｚｅ）をトレース情報ＰＴＤとして出力する 
サイクルＣ４及びＣ５においては、プロセッサコア３１は命令を実行していない。このため、サイクルＣ４及びＣ５では、トレース情報ＰＣＯＤＥとして“ＮＩ”が出力される。サイクルＣ３で出力した“ＪＰ”に従って、分岐（ジャンプ）先アドレスをサイクルＣ４及びＣ５の２サイクルに渡って出力する。
【００３３】
サイクルＣ６において、プロセッサコア３１は、ロード命令ｌｗを実行するため、図３（ｂ）に示すトレース情報ＰＣＯＤＥは“ＩＥ”となる。
【００３４】
＜トレース装置の構成例＞
以下に、図１に示すトレース装置４の構成について詳細に説明する。トレース装置４は、上述したアドレス算出回路４３、データ取得回路４４、及びトレースメモリ４６に加えて、デマルチプレクサ４１、アドレスレジスタ４２、圧縮回路４５、及び指定アドレスレジスタ４７を備える。デマルチプレクサ４１の入力は、プロセッサモジュール３のトレース情報出力回路３３の出力に接続される。アドレスレジスタ４２の入力は、デマルチプレクサ４１及びアドレス算出回路４３のそれぞれの出力に接続される。アドレス算出回路４３の入力は、デマルチプレクサ４１及びアドレスレジスタ４２のそれぞれの出力に接続される。指定アドレスレジスタ４７の入力は、デバッグ時において、マイクロプロセッサ１外部の解析装置２の出力に接続される。データ取得回路４４の入力は、アプリケーション処理回路５、アドレス算出回路４３、及び指定アドレスレジスタ４７のそれぞれの出力に接続される。圧縮回路４５の入力は、デマルチプレクサ４１及びデータ取得回路４４のそれぞれの出力に接続される。トレースメモリ４６の入力は、圧縮回路４５の出力に接続される。トレースメモリ４６の出力は、デバッグ時において、マイクロプロセッサ１外部の解析装置２の入力に接続される。
【００３５】
デマルチプレクサ４１は、トレース情報ＰＣＯＤＥ，ＰＴＤのうち、分岐先アドレスの情報をアドレスレジスタ４２に出力し、命令長の情報をアドレス算出回路４３に出力し、トレース情報全体を圧縮回路４５に出力する。アドレスレジスタ４２は、分岐先アドレスを保持すると共に、アドレス算出回路４３が算出する実行アドレスを順次保持する。アドレス算出回路４３は、アドレスレジスタ４２に保持されるアドレス値と命令長の情報とを加算することで実行アドレスを算出する。
【００３６】
指定アドレスレジスタ４７は、解析装置２から転送される指定アドレス区間の情報を保持する。指定アドレス区間は、例えば“アドレスＸ１〜アドレスＸ２”のように設定される。或いは、“先頭アドレス〜アドレスＸ”又は“アドレスＸ〜最終アドレス”といった設定方法でも構わない。
【００３７】
データ取得回路４４は、アドレス算出回路４３が算出した実行アドレスが、指定アドレスレジスタ４７に保持される指定アドレス区間内であるか否かを判定する。実行アドレスが指定アドレス区間内である場合にのみ、データ取得回路４４は、アプリケーション処理回路５からのデータを圧縮回路４５に伝達する。
【００３８】
圧縮回路４５は、データ取得回路４４が取得したデータとトレース情報出力回路３３が生成したトレース情報とを圧縮して、圧縮されたデータ及びトレース情報をトレースメモリ４６に格納する。
【００３９】
また、トレースメモリ４６には、図４に示すようなフォーマットで、圧縮されたデータ及びトレース情報が順次格納される。図４に示す例において、圧縮されたトレース情報ＤＰＦ１，ＤＰＦ２，ＤＰＦ３，ＤＰＦ４，ＤＰＦ５，及びＤＰＦ６は、プロセッサモジュール１による命令実行の有無、分岐発生の有無、及び分岐が発生した場合の分岐先アドレス等についての情報を含んでいる。圧縮されたトレース情報ＤＰＦ１，ＤＰＦ２，ＤＰＦ３，ＤＰＦ４，ＤＰＦ５，及びＤＰＦ６は、図１に示した解析装置２を用いて復元及び解析することで、プロセッサモジュール３上で命令がどのように実行されたかを知ることができる。
【００４０】
更に、アプリケーション処理回路５からのデータは、図４に示すデータＡＰＦに相当する。データＡＰＦは解析装置２上で動作するデバッグプログラムで解析した結果中に埋め込まれ、トレース情報と同時に表示装置（図示省略）上に表示される。この結果、アプリケーション処理回路５の動作情報をプロセッサモジュール３の挙動と同期させた形で得ることができる。
【００４１】
したがって、本発明の実施形態に係るトレース装置４によれば、生成されているデータをデバッグや、性能解析のためにプロセッサでのプログラムの実行状況と同期させてトレースを取得し、且つ、トレース量を圧縮するために、プロセッサで実行しているプログラムの実行アドレスによって、アプリケーション処理回路５からトレース情報を取得できる。
【００４２】
トレース動作終了後、解析装置２は、トレースメモリ４６の内容と共に、トレースメモリ４６の最終格納アドレスを読み出す。解析装置２は、プロセッサモジュール３上で実行中のプログラムのオブジェクト／ソースリストを用いて、トレースメモリ４６の内容を解析し、トレース中のプロセッサモジュール３のプログラム実行状況を出力する。
【００４３】
このように、プロセッサモジュール３がプログラムの一部分を実行する期間におけるアプリケーション処理回路５の挙動をトレースすることが可能なトレース装置４が構成されている。
【００４４】
＜トレース動作例＞
次に、図５に示すフローチャートを参照して、本発明の実施形態に係るトレース装置４によるトレース動作例を説明する。
【００４５】
ステップＳ１０１において、図１に示すプロセッサモジュール３が命令を実行する。具体的には、プロセッサモジュール３は、コアモード又はＶＬＩＷモードで１つの命令を実行する。
【００４６】
ステップＳ１０２において、トレース情報出力回路３３は、トレース装置４に対してトレース情報を出力する。
【００４７】
ステップＳ１０３において、アドレス算出回路４３は、ステップＳ１０３で得られたトレース情報に基づき、プロセッサモジュール３が実行した命令の実行アドレスを算出する。実行アドレスの算出動作の詳細については後述する。
【００４８】
ステップＳ１０４において、データ取得回路４４は、ステップＳ１０４で算出された実行アドレスが、指定アドレスレジスタ４７に保持されている指定アドレス区間内であるか否か判定する。実行アドレスが、指定アドレス区間内であると判定された場合、ステップＳ１０５に移行する。これに対して、実行アドレスが、指定アドレス区間内でないと判定された場合、ステップＳ１０６に移行する。
【００４９】
ステップＳ１０５において、データ取得回路４４は、アプリケーション処理回路５からのデータを取得し、取得したデータを圧縮回路４５に伝達する。取得したデータを圧縮回路４５に伝達すると、ステップＳ１０６に移行する。
【００５０】
ステップＳ１０６において、圧縮回路４５は、データ取得回路４４が取得したデータとトレース情報出力回路３３が生成したトレース情報とを圧縮して、圧縮されたデータ及びトレース情報をトレースメモリ４６に格納する。
【００５１】
ステップＳ１０７において、解析装置２は、トレース動作を終了させるか否か判定する。トレース処理を終了させると判定された場合、トレース動作が終了する。トレース動作を終了させないと判定された場合、ステップＳ１０１に戻る。
【００５２】
＜実行アドレス算出動作例＞
次に、図６に示すフローチャートを参照して、図５のアドレス算出動作の詳細について説明する。
【００５３】
ステップＳ２０１において、デマルチプレクサ４１は、トレース情報ＰＣＯＤＥ，ＰＴＤに基づき、プロセッサモジュール３が実行した命令が分岐を伴う命令であるか否か判定する。プロセッサモジュール３が実行した命令が分岐を伴う命令であると判定された場合、ステップＳ２０２に移行する。プロセッサモジュール３が実行した命令が分岐を伴わない命令であると判定された場合、ステップＳ２０３に移行する。
【００５４】
ステップＳ２０２において、デマルチプレクサ４１が、分岐先アドレスをアドレスレジスタ４２に設定する。
【００５５】
ステップＳ２０３において、デマルチプレクサ４１は、トレース情報ＰＴＤに基づき、プロセッサモジュール３が実行した命令がＶＬＩＷ命令であるか否か判定する。プロセッサモジュール３が実行した命令がＶＬＩＷ命令であると判定された場合、ステップＳ２０４に移行する。これに対して、プロセッサモジュール３が実行した命令がＶＬＩＷ命令でないと判定された場合、ステップＳ２０５に移行する。
【００５６】
ステップＳ２０４において、アドレス算出回路４３は、ＶＬＩＷ命令の命令長を判定する。例えば、ＶＬＩＷ命令の命令長が３２ビット又は６４ビットのいずれであるかが判定される。ＶＬＩＷ命令の命令長が判定されると、ステップＳ２０５に移行する。
【００５７】
ステップＳ２０４において、アドレス算出回路４３は、アドレスレジスタ４２に保持されているアドレス値と、プロセッサモジュール３が実行した命令の命令長とを加算することで、命令の実行アドレスを算出する。
【００５８】
以上詳細に述べたように、本発明の実施形態に係るマイクロプロセッサ１によれば、プログラムの実行バイナリ（ソース）を用いずに実行アドレスを算出し、算出した実行アドレスに応じて、アプリケーション処理回路５の挙動を選択的にトレース可能なトレース装置４を提供できる。この結果、アプリケーション処理回路５からのデータのうち、デバッグや性能測定上必要な部分のみをトレースメモリ４６に格納できる。
【００５９】
（その他の実施形態）
上記のように、本発明は実施形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施形態、実施例及び運用技術が明らかとなろう。
【００６０】
上述した実施形態においては、１つのプロセッサモジュール３がマイクロプロセッサ１に搭載される一例を説明した。しかしながら、プロセッサモジュール３を複数搭載しても構わない。この場合、複数のプロセッサモジュールに１つのトレース装置を割り当てる、或いは、複数個のプロセッサモジュールと１つのトレース装置との間にマルチプレクサを接続し、トレース対象とするプロセッサモジュールを適宜選択すれば良い。
【００６１】
また、トレース装置４において、指定アドレス区間が１つである一例を説明した。しかしながら、指定アドレス区間が複数であっても構わない。指定アドレス区間を複数とする場合、指定アドレスレジスタ４７を複数個備える、或いは１つの指定アドレスレジスタ４７に複数の指定アドレス区間を設定すればよい。
【００６２】
更に、アプリケーション処理回路５としてバスモニタ又はＤＳＰ等を使用可能であると説明したが、プロセッサモジュール３から処理内容の指示又はデータ等を受け取る回路であればアプリケーション処理回路５に該当する。
【００６３】
このように本発明は、ここでは記載していない様々な実施形態等を包含するということを理解すべきである。したがって、本発明はこの開示から妥当な特許請求の範囲の発明特定事項によってのみ限定されるものである。
【図面の簡単な説明】
【００６４】
【図１】本発明の実施形態に係るマイクロプロセッサの全体構成例を示すブロック図である。
【図２】本発明の実施形態に係るトレース情報出力回路が出力するトレース情報のフォーマット例を示す模式図である。
【図３】本発明の実施形態に係るプロセッサモジュールの動作例を示すタイムチャートである。
【図４】本発明の実施形態に係るトレースメモリにおけるデータ格納フォーマット例を示す模式図である。
【図５】本発明の実施形態に係るトレース装置の動作例を示すフローチャートである。
【図６】本発明の実施形態に係るアドレス算出回路の動作例を示すフローチャートである。
【符号の説明】
【００６５】
３…プロセッサモジュール
５…アプリケーション処理回路
４３…アドレス算出回路
４４…データ取得回路
４６…トレースメモリ
【図１】
2007148565.tif 000005
【図２】
2007148565.tif 000006
【図３】
2007148565.tif 000007
【図４】
2007148565.tif 000008
【図５】
2007148565.tif 000009
【図６】
2007148565.tif 000010