(57)【要約】【課題】  ロード命令のトレース時に、データアクセス情報をインデックス情報として使用することなく、トレース制御情報とリードデータ情報の対応付けを可能とする。【解決手段】  トレース制御回路１５は、ロード命令実行時のデータアクセス情報及びロード命令実行時にデータアクセス情報が格納されるロード／ストアバッファ１０４のＩＤ（ＡＩＤ）を受信する。次に、受信したデータアクセス情報に基づいてトレース制御情報ＴＣを生成し、受信したＡＩＤに応じて、生成したトレース制御情報ＴＣを格納するバッファを、トレース制御バッファ１５３Ａ乃至Ｄから選択する。続いて、ロード命令実行後のリードデータ情報及びロード命令の実行に使用されたロード／ストアバッファのＩＤ（ＲＩＤ）を受信する。最後に、ＲＩＤに基づいて、トレース制御バッファ１５３Ａ乃至Ｄからトレース制御情報ＴＣが格納されたバッファを選択する。【選択図】  図１
2006107004.tif 000002
【特許請求の範囲】
【請求項１】
マイクロプロセッサのトレースを行うトレース制御回路であって、
前記マイクロプロセッサでのロード命令の実行に使用されるロードバッファを識別する識別情報に基づいて、命令実行時のトレース情報と命令実行後のトレース情報との対応付けを行うトレース制御回路。
【請求項２】
前記マイクロプロセッサにおけるロード命令実行時のデータアクセス情報及びロード命令実行時にデータアクセス情報が格納されるロードバッファを識別する第1の識別情報を、前記マイクロプロセッサから受信する手段と、
受信した前記データアクセス情報に基づいてトレース制御情報を生成する手段と、
前記トレース制御情報を格納する複数の制御情報バッファと、
前記第1の識別情報に応じて、前記複数の制御情報バッファから前記トレース制御情報を格納する制御情報バッファを選択する手段と、
前記マイクロプロセッサにおけるロード命令実行後のリードデータ情報及びロード命令の実行に使用されたロードバッファを識別する第２の識別情報を、前記マイクロプロセッサから受信する手段と、
前記第２の識別情報に基づいて、前記複数の制御情報バッファから前記トレース制御情報が格納された制御情報バッファを選択する手段とを備える請求項１に記載のトレース制御回路。
【請求項３】
前記複数のロードバッファと前記複数の制御情報バッファが一対一に対応づけられ、
前記制御情報バッファを選択する手段は、前記第１の識別情報に基づいて前記複数の制御情報バッファのうちの１つを一意的に選択することを特徴とする請求項２に記載のトレース制御回路。
【請求項４】
前記データアクセス情報と前記第1の識別情報を対応付けて出力し、
前記リードデータ情報と前記第２の識別情報を対応付けて出力する請求項２に記載のトレース制御回路。
【請求項５】
ロード命令の実行に必要なデータアクセス情報を格納する複数のロードバッファを備え、
ロード命令の実行時に前記データアクセス情報を格納した前記ロードバッファを識別する第１の識別情報を出力し、
ロード命令実行後にデータアクセスに使用したロードバッファを識別する第２の識別情報を出力するマイクロプロセッサ。
【請求項６】
前記データアクセス情報と前記第１の識別情報を対応付けて出力し、
前記リードデータ情報と前記第２の識別情報を対応付けて出力する請求項５に記載のマイクロプロセッサ。
【請求項７】
マイクロプロセッサが出力するデータを収集するトレースの制御方法であって、
前記マイクロプロセッサにおけるロード命令実行時のデータアクセス情報及びロード命令実行時にデータアクセス情報が格納されるロードバッファを識別する第1の識別情報を、前記マイクロプロセッサから受信し、
受信した前記データアクセス情報に基づいてトレース制御情報を生成し、
前記マイクロプロセッサにおけるロード命令実行後のリードデータ情報及びロード命令の実行に使用されたロードバッファを識別する第２の識別情報を、前記マイクロプロセッサから受信し、
前記第１の識別情報と前記第２の識別情報に基づいて、前記トレース制御情報と前記リードデータ情報との対応付けを行うトレース制御方法。
【請求項８】
受信した前記データアクセス情報と前記第１の識別情報を対応付けて出力し、
受信した前記リードデータ情報と前記第２の識別情報を対応付けて出力する請求項７に記載のトレース制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロプロセッサのトレースを行うためのトレース制御回路に関する。
【背景技術】
【０００２】
従来からマイクロプロセッサのデバッグを行う手法として、マイクロプロセッサの命令実行状況やデータアクセス状況を外部から“トレース“することが行われている。トレースは、マイクロプロセッサが出力するプログラムカウンタ（ＰＣ）の値、アクセスするメモリアドレス等のデータをプロセッサと接続したトレース制御回路において収集することにより行われる。
【０００３】
一方、マイクロプロセッサの命令実行を高速化する手法にパイプラインがある。パイプラインとは、マイクロプロセッサで実行される各ステージ、例えば、命令フェッチ（ＩＦ）、命令解読（ＩＤ）、命令実行（ＥＸ）、メモリアクセス（ＭＥＭ）、ライトバック（ＷＢ）の各ステージを並列に実行することにより、マイクロプロセッサの処理速度を向上する技術であり、多くのマイクロプロセッサにおいて採用されている。また、パイプライン構成を採用したマイクロプロセッサの命令処理速度をさらに向上させる手法に、ノンブロッキングアクセス及びリオーダリングアクセスがある。
【０００４】
ノンブロッキングアクセスとは、ロード／ストア命令の実行時に、実行する複数のロード／ストア命令間に依存関係がなければ、先に実行された命令のメモリアクセスが完了するのを待たずに次の命令を実行する動作を指す。他方、リオーダリングアクセスとは、ロード／ストア命令に依存関係がなければ命令の実行順番とは無関係にデータアクセスサイクル完了する動作を指す。例えば、メモリアクセス速度の異なる複数のメモリがある場合は、マイクロプロセッサとメモリ間の制御バス、アドレスバス及びデータバス（以下では、まとめてメモリバスと呼ぶ）もそれぞれ独立に存在するから、それぞれのメモリに対するデータアクセスサイクルの発行を独立に行うことができる。つまり、あるメモリに対するデータアクセスサイクルの完了を待つことなく、別のメモリに対してデータアクセスサイクルを発行することが可能である。
【０００５】
このようにノンブロッキングアクセス及びリオーダリングアクセスを行うマイクロプロセッサでは、メモリアクセス速度の違いによって、命令実行順序（データアクセスサイクルの発行順序）とデータアクセスサイクルが完了する順序が一致しない場合がある。例えば、メモリアクセス速度の異なる２つのメモリ（高速メモリ及び低速メモリ）がある場合に、低速メモリに対するデータアクセスサイクルが先に発行され、高速メモリに対するデータアクセスサイクルが後に発行されると、低速メモリに対するデータアクセスサイクルより先に高速メモリに対するデータアクセスサイクルが完了する場合がある。
【０００６】
ノンブロッキングアクセス及びリオーダリングアクセスを行う従来のマイクロプロセッサ３０と従来のトレース制御回路３５によるロード／ストア命令実行時のトレース動作について図３及び図４を用いて説明する。図３は、マイクロプロセッサ３０及びトレース制御回路３５の構成を示したものである。
【０００７】
始めに、マイクロプロセッサ３０の構成を説明する。命令実行制御部３０１は命令実行を制御する回路であり、ロード命令が実行されると、メモリアクセス制御部３０２に対して、実行プログラムカウンタ値（ＰＣ）、アクセスアドレス（Ａ）、Ｒ／Ｗ情報（ＲＷ）、アクセスサイズ（Ｓ）と、ストア命令の場合はさらにライトデータ情報（ＷＤ）を出力する。これらの情報を以下ではデータアクセス情報と呼ぶ。また、これらのデータアクセス情報は出力端子群３０９にも出力される。出力端子群３０９に出力されるデータアクセス情報は、トレース制御回路３５においてトレースデータとして収集されると共に、後述する出力端子群３１０から出力されるライトバック情報との対応付けを行うためのインデックス情報として使用される。
【０００８】
メモリアクセス制御部３０２は、高速メモリ３０６及び低速メモリ３０７に対してデータアクセスを行う回路である。データアクセス情報は、命令実行制御部３０１から入力選択部３０３に入力される。入力選択部３０３は、ロード／ストアバッファ３０４が備える複数のバッファ、図３ではバッファＡ乃至バッファＤの４つのバッファから、受信したデータアクセス情報を格納するバッファを選択する。ロード／ストアバッファ３０４は、複数のバッファ（図３ではバッファＡ乃至バッファＤの４つのバッファ）を備えており、高速メモリ３０６又は低速メモリ３０７に対するデータアクセス情報を格納するとともに、ロード命令実行後に高速メモリ３０６又は低速メモリ３０７から読み出したリードデータ（ＲＤ）を格納する。
【０００９】
出力選択部３０５は、ロード／ストアバッファ３０４が備える複数のバッファから、ライトバック制御部３０８に出力するリードデータＲＤを選択する。また、出力選択部３０５は、選択したリードデータＲＤと当該リードデータＲＤに対応するデータアクセス情報であるＰＣ値（ＲＰＣ）、アクセスアドレス（ＲＡ）、Ｒ／Ｗ情報（ＲＲＷ）及びリードデータサイズＲＳを、出力端子群３１０に対して出力する。以下では、出力端子群３１０に出力される情報をまとめてライトバック情報と呼ぶ。
【００１０】
ライトバック制御部３０８は、メモリアクセス制御部３０２から入力されたリードデータをマイクロプロセッサ３０が備えるレジスタファイル（図示せず）に格納する。
【００１１】
マイクロプロセッサ３０は、あるロード／ストア命令に引き続いて実行される命令がロード／ストア命令の結果に依存しない場合には、当該ロード／ストア命令の実行完了を待つことなく次の命令の実行を開始する（ノンブロッキングアクセス）。また、ロード／ストアバッファ３０４の備えるバッファＡ乃至Ｄのうち、複数のバッファにデータアクセス情報が格納されている場合、アクセス先メモリのメモリバスにデータアクセスサイクルが発行されておらず、かつ、複数のデータアクセス情報で表されるロード／ストア命令に依存関係がなければ、複数のメモリバスに並行してデータアクセスサイクルを発行する（リオーダリングアクセス）。従って、命令実行順序とは異なった順序でデータアクセスサイクルが完了する場合がある。
【００１２】
続いて、トレース制御回路３５の構成を説明する。データアクセス情報検出部３５１は、マイクロプロセッサ３０の出力端子群３０９から出力されるデータアクセス情報を、入力端子群３５７を介して受信する。データアクセス情報検出部３５１は、受信したデータアクセス情報（ＰＣ、Ａ、ＲＷ、Ｓ及びストア命令の場合はＷＤ）からトレース情報３６０を生成して出力する。さらに、データアクセス情報検出部３５１はトレース制御情報（ＴＣ）を生成し、受信したデータアクセス情報がロード命令に関するものであった場合、生成したトレース制御情報ＴＣを入力選択部３５２に出力する。
【００１３】
ここで、トレース制御情報ＴＣとは、マイクロプロセッサ３０において実行される命令をトレースするか否か、つまり、トレース制御回路３５で検出したデータアクセス情報及びライトバック情報を外部の解析装置に対して出力するか否かを示す情報である。トレース制御回路３５では、トレース制御情報ＴＣをトレース制御バッファ３５３に保持し、マイクロプロセッサ３０におけるリードデータサイクル完了後に出力されるライトバック情報とトレース制御バッファ３５３に保持しておいたトレース制御情報とを対応付けることにより、ライトバック情報を出力するか否かを決定する。
【００１４】
入力選択部３５２は、トレース制御情報ＴＣとデータアクセス情報（ＰＣ、Ａ、ＲＷ、Ｓ）を受信して、トレース制御バッファ３５３が備える複数のバッファ（図３ではバッファＡ乃至バッファＤ）のいずれかに出力する。なお、出力先バッファの選択は、後述する出力選択部３５５によってトレース制御情報ＴＣが選択・出力済みであるバッファを選択することにより行われる。
【００１５】
トレース制御バッファ３５３は、複数のバッファ（図３ではバッファＡ乃至バッファＤの４つのバッファ）を備えており、入力選択部３５２から入力されるトレース制御情報ＴＣ及びデータアクセス情報を格納する。トレース制御情報ＴＣと合わせてデータアクセス情報を保持する理由は、後述する比較・出力制御部３５４において、トレース制御情報ＴＣとリードデータ情報を対応付けるためのインデックス情報としてデータアクセス情報を使用するためである。
【００１６】
比較・出力制御部３５４は、マイクロプロセッサ３０の出力端子群３１０から出力されるライトバック情報（ＲＰＣ、ＲＡ、ＲＲＷ及びＲＳ）を、入力端子群３５８を介して受信する。さらに、比較・出力制御部３５４は、受信したライトバック情報と、トレース制御バッファ３５３に保持されたデータアクセス情報とを比較し、ライトバック情報に対応するデータアクセス情報が格納されたバッファを選択する。またさらに、比較・出力制御部３５４は、選択したバッファ（図３ではバッファＡ乃至バッファＤのいずれかのバッファ）に保持されたトレース制御情報ＴＣを選択するよう出力選択部３５５に対して指示する。
【００１７】
出力選択部３５５は、比較・出力制御部３５４から指示されたバッファが保持するトレース制御情報ＴＣを選択し、ライトバック情報検出部３５６に対して出力する。ライトバック情報検出部３５６は、マイクロプロセッサ３０から入力端子群３５８を介してライトバック情報を受信し、受信したライトバック情報ＲＰＣ、ＲＡ、ＲＲＷ、ＲＳ及びＲＤ）からトレース情報３６１を生成して出力する。なお、ライトバック情報検出部３５６は、外部の解析装置等にトレース情報３６１を出力するか否かをトレース制御情報ＴＣで指示される内容に応じて決定する。
【００１８】
以上に説明したように、ノンブロッキングアクセス及びリオーダリングアクセスを行うマイクロプロセッサ３０をトレースするためのトレース制御回路３５では、トレース制御情報ＴＣとリードデータＲＤを対応付けるインデックス情報としてデータアクセス情報（ＰＣ、Ａ、ＲＷ、Ｓ）及びライトバック情報（ＲＰＣ、ＲＡ、ＲＲＷ、ＲＳ）を使用する。以下では、トレース制御情報ＴＣとリードデータＲＤとの対応付け動作について、図４を用いて詳しく説明する。
【００１９】
図4は、マイクロプロセッサ３０で実行されるロード命令１、ロード命令２、ロード命令３及びロード命令４が、マイクロプロセッサ３０において順次実行開始される場合を示している。ＥＸステージにおいてロード命令が実行されるとトレース制御回路３５はデータアクセス情報を受信し、トレース情報３６０を生成して出力する。図４のトレース制御バッファ３５３Ａ乃至３５３Ｄは、トレース制御バッファ３５３が備えるバッファＡ乃至バッファＤを示している。バッファ３５３Ａ乃至３５３Ｄには、データアクセス情報検出部３５１で生成されたトレース制御情報ＴＣ１乃至ＴＣ４と、インデックス情報として使用されるデータアクセス情報が格納される。なお、図４では、ロード命令１及び２はトレースを行い、ロード命令３及び４はトレースを行わない場合を示している。このため、ロード命令１及び２に対応するトレース制御情報ＴＣ１及びＴＣ２は“ＯＮ”、ロード命令３及び４に対応するトレース制御情報ＴＣ３及びＴＣ４は“ＯＦＦ”となっている。
【００２０】
マイクロプロセッサ３０はリオーダリングアクセス行うため、ロード命令１乃至４が順次実行開始された場合の実行開始順序と、ＭＥＭステージにおいてデータアクセスサイクルが完了するまで順序が一致するとは限らない。図４の完了１乃至４は、それぞれロード命令１乃至４に対するデータアクセスサイクルが完了するタイミング（ＭＥＭステージの完了タイミング）を表しており、ロード命令１、３、４、２の順でデータアクセスサイクルが完了する場合を示している。
【００２１】
トレース制御回路３５は、データアクセス回路完了順に出力されるライトバック情報４１乃至４４とトレース制御情報ＴＣ１乃至Ｔ４との対応付けを行う。まず始めにロード命令１のデータアクセスサイクルが完了し、トレース制御回路３５はライトバック情報４１を受信する。比較・出力制御部３５４は、受信したライトバック情報４１とバッファ３５３Ａ乃至３５３Ｄに格納されたデータアクセス情報の比較を行い、ライトバック情報４１に対応するロード命令１によるデータアクセス情報を格納するバッファ３５３Ａを選択する。ライトバック情報検出回路３５６は、選択されたバッファ３５３Ａに格納されたトレース制御情報ＴＣ１に従って、トレース情報３６１を出力するか否かを決定する。ライトバック情報４２乃至４４についてもライトバック情報４１と同様に比較が行われ、対応付けられたトレース制御情報ＴＣに基づいてトレース情報３６１を出力するか否かが決定される。
【特許文献１】特開２０００−２０３４５号公報
【特許文献２】特開平１０−２４０５７０号公報
【特許文献３】特開平６−１６１８１８号公報
【発明の開示】
【発明が解決しようとする課題】
【００２２】
上述したように、従来のノンブロッキングアクセス及びリオーダリングアクセスを行うマイクロプロセッサと接続されるトレース制御回路では、ロード命令をトレースする際に実行ＰＣ、アクセスアドレス、Ｒ／Ｗ情報、リードデータサイズ等の多くの情報をインデックス情報として保持する必要があるという課題がある。
【００２３】
ロード命令のトレース時に実行ＰＣ、アクセスアドレス、Ｒ／Ｗ情報、リードデータサイズ等をインデックス情報として使用するトレース方法では、トレース制御情報と合わせてインデックス情報保持しなければならないため、これらを格納するトレース制御バッファの容量が大きくなってしまう。
【００２４】
また、マイクロプロセッサがループ処理を実行する場合には、同じＰＣ値の命令によって同じアドレスに対して繰り返しロード命令を実行する場合がある。このような場合には、複数のロード命令のデータアクセス情報が同一となってしまう。このため、ロード命令実行後にマイクロプロセッサから出力されるライトバック情報とトレース制御バッファにインデックス情報として保持したデータアクセス情報との一致のみでは、トレース制御情報とリードデータ情報の対応付けができず、同じ値を持つデータアクセス情報から最も古いものを選択する処理が必要になる。例えば、トレース制御バッファに格納された順序を示すシーケンス番号や格納時間を示すタイムスタンプ情報等による比較処理を行わなければならない。
【課題を解決するための手段】
【００２５】
本発明にかかるトレース制御回路は、マイクロプロセッサのトレースを行うトレース制御回路であって、前記マイクロプロセッサでのロード命令の実行に使用されるロードバッファを識別する識別情報に基づいて、命令実行時のトレース情報と命令実行後のトレース情報との対応付けを行うものである。
【００２６】
上述した本発明にかかるトレース制御回路では、命令実行時のトレース情報であるトレース制御情報と命令実行後のトレース情報であるリードデータ情報との対応付けを、マイクロプロセッサから受信したロード／ストアバッファを識別する識別情報に基づいて行うことができる。このため、従来のトレース制御回路においてインデックス情報としていた冗長なデータアクセス情報をトレース制御バッファに保持する必要がない。
【００２７】
また、マイクロプロセッサにおいてデータアクセスサイクルが完了するまでは、同一のロード／ストアバッファが複数のロード命令の実行に使用されることはない。このため、データアクセスサイクルの終了後に、リードデータ情報がマイクロプロセッサからトレース制御回路に対して出力されるまでは、ロード／ストアバッファは１つのロード命令の実行に排他的に使用されていることになる。したがって、本発明にかかるトレース制御回路では、ロードストアバッファの識別情報に基づいてトレース制御情報とリードデータ情報とを一意的に対応付けることができる。これにより、従来のトレース制御回路で必要であった同じ値を持つデータアクセス情報から最も古いものを選択する処理に相当する処理を行わなくても、トレース制御情報とライトバック情報の対応付けが可能となる。
【発明の効果】
【００２８】
本発明により、ノンブロッキングアクセス及びリオーダリングアクセスを行うマイクロプロセッサが実行するロード命令をトレースする際に、実行ＰＣ、アクセスアドレス、Ｒ／Ｗ情報、リードデータサイズ等の多くの情報をインデックス情報として保持する必要がなくなる。
【発明を実施するための最良の形態】
【００２９】
発明の実施の形態１．
本実施の形態にかかるマイクロプロセッサ１０及びトレース制御回路１５の構成を図１に示す。本実施の形態にかかるマイクロプロセッサ１０は、ノンブロッキングアクセス及びリオーダリングアクセスを行うプロセッサであり、ロード／ストアバッファ１０４が備える各バッファを識別可能なロード／ストアバッファＩＤを出力する出力端子１０９及び１１１を備えている。また、マイクロプロセッサ１０は、ロード／ストア命令実行時にデータアクセス情報を格納したバッファのロード／ストアバッファＩＤをデータアクセス情報とともに出力する。さらに、ロード命令の場合にはデータアクセスサイクルが完了した後、リードデータ情報と合わせてデータアクセスに使用したロード／ストアバッファのロード／ストアバッファＩＤを出力する。一方、トレース制御回路１５は、マイクロプロセッサ１０から受信するロード／ストアバッファＩＤとトレース制御バッファ１５３が備える各バッファとが一対一に対応付けられていることを特徴としている。
【００３０】
始めに、マイクロプロセッサ１０の構成を説明する。なお、従来のマイクロプロセッサ３０と同様に動作する命令実行制御部３０１、高速メモリ３０６、低速メモリ３０７、ライトバック制御部３０８及び出力端子群３０９に対しては図３で用いた記号と同様の記号を付与し、詳細な説明を省略する。メモリアクセス制御部１０２は、高速メモリ３０６及び低速メモリ３０７に対してデータアクセスを行う回路である。命令実行制御部３０１から入力選択部１０３に対して、データアクセス情報であるアクセスアドレス（Ａ）、Ｒ／Ｗ種別（ＲＷ）、データサイズ（Ｓ）、さらにストア命令の場合はライトデータ（ＷＤ）が入力される。なお、従来のマイクロプロセッサ３０では、入力選択部３０３に対してＰＣ値も入力していたが、本実施の形態にかかるマイクロプロセッサ１０では、ＰＣ値をインデックス情報として使用しないため、ＰＣ値をメモリアクセス制御部１０２において保持する必要はない。
【００３１】
入力選択部１０３は、受信したデータアクセス情報を格納するバッファを、ロード／ストアバッファ１０４が備える複数のバッファ、図１ではバッファＡ乃至バッファＤの４つのバッファから選択する。さらに、入力選択部１０３は、選択したバッファのロード／ストアバッファＩＤ（ＡＩＤ）を出力端子１０９に出力する。
【００３２】
ロード／ストアバッファ１０４は、複数のバッファ（図１ではバッファＡ乃至バッファＤの４つのバッファ）を備えており、高速メモリ３０６又は低速メモリ３０７に対するデータアクセス情報を格納するとともに、ロード命令実行後に高速メモリ３０６又は低速メモリ３０７から読み出したリードデータ（ＲＤ）を格納する。
【００３３】
出力選択部１０５は、ロード／ストアバッファ１０４が備える複数のバッファから、ライトバック制御部３０８に出力するリードデータＲＤを格納したバッファを選択し、当該リードデータＲＤをライトバック制御部３０８及び出力端子１１０に出力する。さらに、出力選択部１０５は、ライトバック制御部３０８に出力したリードデータＲＤを格納していたバッファのロード／ストアバッファＩＤ（ＲＩＤ）を出力端子１１１に出力する。
【００３４】
続いて、トレース制御回路１５の構成を説明する。データアクセス情報検出部１５１は、マイクロプロセッサ１０の出力端子群３０９から出力されるデータアクセス情報及び出力端子１０９から出力されるＡＩＤを、入力端子群３５７及び入力端子１５７を介して受信する。データアクセス情報検出部１５１は、受信したデータアクセス情報（ＰＣ、Ａ、ＲＷ、Ｓ及びストア命令の場合はＷＤ）及びＡＩＤからトレース情報１６０を生成して出力する。さらに、データアクセス情報検出部１５１はトレース制御情報（ＴＣ）を生成し、受信したデータアクセス情報がロード命令に関するものであった場合、生成したトレース制御情報ＴＣを入力選択部１５２に出力する。
【００３５】
入力選択部１５２は、トレース制御情報ＴＣとＡＩＤを受信して、トレース制御バッファ１５３が備える複数のバッファ（図１ではバッファＡ乃至バッファＤ）のいずれかに格納する。ここで、トレース制御バッファ１５３は、少なくともロード／ストアバッファ１０４が備えるバッファ数と同数のバッファを備えており、トレース制御情報ＴＣは、受信したＡＩＤと一対一に対応付けられたバッファに格納される。例えば、ロード／ストアバッファ１０４が備えるバッファＡ乃至Ｄのそれぞれが、トレース制御バッファ１５３が備えるバッファＡ乃至Ｄと対応付けられることとし、受信したＡＩＤがロード／ストアバッファ１０４のバッファＡを示すものであれば、トレース制御情報ＴＣをトレース制御バッファ１５３のバッファＡに格納することとすればよい。
【００３６】
出力選択部１５４は、マイクロプロセッサ１０の出力端子１１１から出力されるＲＩＤを、入力端子１５９を介して受信する。さらに、出力選択部１５４は、トレース制御バッファ１５３の備えるバッファから、受信したＲＩＤに対応するバッファを一意的に選択する。上述した例に従えば、受信したＲＩＤがロード／ストアバッファ１０４のバッファＡを示すものであれば、トレース制御バッファ１５３のバッファＡを選択する。出力選択部１５４は、選択したバッファに格納されたトレース制御情報ＴＣを、ライトバック情報検出部１５６に出力する。
【００３７】
ライトバック情報検出部１５６は、マイクロプロセッサ１０から入力端子１１０及び１１１を介してリードデータ情報ＲＤ及びロード／ストアバッファＩＤ（ＲＩＤ）を受信し、受信したＲＤ及びＲＩＤからトレース情報１６１を生成して出力する。なお、ライトバック情報検出部１５６は、外部の解析装置等にトレース情報１６１を出力するか否かをトレース制御情報ＴＣで指示される内容に応じて決定する。
【００３８】
以上に説明したように、本実施の形態にかかるトレース制御回路１５では、ロード／ストアバッファＩＤを用いてトレース制御情報ＴＣとリードデータ情報ＲＤとの対応付けを行う。このため、データアクセス情報（ＰＣ、Ａ、ＲＷ、Ｓ）及びライトバック情報（ＲＰＣ、ＲＡ、ＲＲＷ、ＲＳ）をインデックス情報として使用する必要がない。
【００３９】
さらに本実施の形態にかかるトレース制御回路１５では、リードデータ情報ＲＤに対応するトレース制御情報ＴＣが格納されたトレース制御バッファを、リードデータ情報と共に受信したＲＩＤの値から一意的に選択することができる。このため、従来必要であった同じ値を持つインデックス情報から最も古いものを選択する処理が不要になるばかりでなく、トレース制御バッファに格納されたデータとの比較処理自体が不要となり、トレース制御情報ＴＣとリードデータ情報ＲＤの対応付けを行う処理をいっそう簡略化することができる効果がある。
【００４０】
また、従来のトレース制御回路３５は、ライトバック情報から生成したトレース情報３６１の中に、データアクセス情報から生成したトレース情報３６０との対応付けを可能とするためＰＣ値、アクセスアドレス等のインデックス情報を含めていた。これに対して本実施の形態にかかるトレース制御回路１５は、ＡＩＤ及びＲＩＤによりトレース情報の対応付けが可能であるため、従来に比べて出力するトレース情報１６１のサイズを小さくすることが可能となる。
【００４１】
発明の実施の形態２．
本実施の形態にかかるマイクロプロセッサ及びトレース制御回路の構成を図２に示す。本実施の形態にかかるマイクロプロセッサは実施の形態１で説明したマイクロプロセッサ１０と同様であるため、説明を省略する。トレース制御回路２５は、トレース制御バッファ２５３にロード／ストアバッファＩＤを保持することを特徴としている。入力選択部２５２は、受信したＡＩＤとトレース制御情報ＴＣを、トレース制御バッファ２５３が備えるバッファのうち未使用状態にあるいずれかのバッファに格納する。一方、出力選択部２５４は、受信したＲＩＤと一致するＡＩＤと共に格納されているトレース制御情報を選択してライトバック情報検出部１５６に出力する。その他の構成及び動作は発明の実施の形態１と同様である。
【００４２】
このような構成によっても、従来のトレース制御回路のように冗長なインデックス情報を必要せず、トレース制御情報ＴＣとリードデータ情報ＲＤの対応付けが可能である。また、ロード／ストアバッファ１０４が備える各バッファは、データアクセスサイクルが完了し、リードデータがライトバック制御部３０８及びトレース制御回路２５に出力されるまで排他的に使用されることから、トレース制御バッファ２５３の備える複数のバッファに同一のＡＩＤが同時に格納される状態は発生しない。このため、従来必要であった同じ値を持つインデックス情報から最も古いものを選択する処理が不要になる。
【００４３】
なお、上述した発明の実施の形態１及び２では、トレース制御情報ＴＣとリードデータ情報との対応付けを行う場合について説明したが、これらに限らず、ロード命令実行時と実行後のその他のトレース情報間の対応付けをロード／ストアバッファＩＤに基づいて行うことが可能である。
【図面の簡単な説明】
【００４４】
【図１】発明の実施の形態１にかかるマイクロプロセッサ及びトレース制御回路の構成図である。
【図２】発明の実施の形態２にかかるマイクロプロセッサ及びトレース制御回路の構成図である。
【図３】従来のマイクロプロセッサ及びトレース制御回路の構成図である。
【図４】従来のトレース制御情報ＴＣとリードデータＲＤとの対応付け動作を説明するための図である。
【符号の説明】
【００４５】
１０  マイクロプロセッサ
１０２  メモリアクセス制御部
１５、２５  トレース制御回路
１５１  データアクセス情報検出部
１５２、２５２  入力選択部
１５３、２５３  トレース制御バッファ
１５４、２５４  出力選択部
１５６  ライトバック情報検出部
１６０、１６１  トレース情報
【図１】
2006107004.tif 000003
【図２】
2006107004.tif 000004
【図３】
2006107004.tif 000005
【図４】
2006107004.tif 000006