(57)【要約】【課題】トレースメモリの格納情報量およびデバッグに必要なコード量を増加する。【解決手段】トレース解析テーブル４６と、トレース情報の実行アドレスと命令コードを復元して送信する命令復元部６２と、オブジェクトコードリスト記憶部６０とを備え、オブジェクトコードリストと、トレース情報を読み出して、アドレスレジスタ２８に記憶された最終格納アドレスから逆時間方向にトレース情報毎に切り出して、トレース解析テーブル４６に登録するトレース解析装置４８および、長さの異なるフォーマットで圧縮変換されたトレース情報と最終格納アドレス情報をトレース解析テーブルに入力するステップと、時間軸と逆方向に解析し、トレース情報を順次情報の単位に切り出してトレース解析テーブルに登録するステップと、オブジェクトコードリストを入力して、登録されたトレース情報の実行アドレスと命令コードに復元するステップとを備えるトレース解析方法。【選択図】図２  
2006012066.tif 000002
【特許請求の範囲】
【請求項１】
トレース情報を格納するトレースメモリ，前記トレース情報の最終格納アドレス情報を記憶するアドレスレジスタを備えるトレース装置に接続されたトレース解析装置であって、
前記トレース情報を登録するトレース解析テーブルと、
プログラムのオブジェクト／ソースコードリストを記憶するオブジェクトコードリスト記憶部と、
前記トレース情報の最終格納アドレスに従って、前記トレース解析テーブルに登録された前記トレース情報，前記オブジェクトコードリスト記憶部に記憶された前記オブジェクト／ソースコードリストを読み出して、実行アドレスと命令コードを復元する命令復元部
とを備えることを特徴とするトレース解析装置。
【請求項２】
前記トレース解析テーブルは、
前記オブジェクトコードリスト記憶部に記憶された前記プログラムのオブジェクト／ソースコードリストと、
前記トレースメモリに格納された前記トレース情報を読み出して、前記最終格納アドレス情報が示す前記トレース情報より格納されたプログラムの実行された順と逆順に解析し、順次情報の単位に切り出して読み出されたトレース情報
とを登録することを特徴とする請求項１記載のトレース解析装置。
【請求項３】
長さの異なるフォーマットで圧縮変換されたトレース情報を前記トレース情報の最終格納アドレス情報に従って、トレース解析テーブルに入力するステップと、
前記トレース情報の最終格納アドレス情報に従って、前記トレース情報より格納されたプログラムの実行された順と逆順に解析し、前記トレース情報を順次情報の単位に切り出して前記トレース解析テーブルに登録するステップと、
プログラムのオブジェクトコードリスト／ソースコードリストを入力して、前記トレース解析テーブルに登録された前記トレース情報の実行アドレスと命令コードを復元するステップ
とを備えることを特徴とするトレース解析方法。
【請求項４】
前記トレース解析テーブルに登録するステップは、
読み出しアドレスが減少する方向に、フォーマット単位毎に前記トレース情報を切り出し、読み出すステップと、
前記トレース情報がトレース開始／終了フォーマットの時は、１個目のトレース開始／終了フォーマットであるかを調べるステップと、
１個目のトレース開始／終了フォーマットである時は、次のトレース情報の切り出しと登録を行うステップと、
トレース開始／終了フォーマットが１個目でない時は、トレース解析テーブルへの登録を終了するステップ
とを備えることを特徴とする請求項３記載のトレース解析方法。
【請求項５】
前記復元するステップは、
前記プログラムのオブジェクトコードリスト／ソースリストから実行アドレス情報が登録されたトレース情報の命令コードを得て、前記トレース解析テーブルに登録するステップと、
前記命令コードが分岐命令でない時は、前記命令コードのサイズから、次のトレース情報の実行アドレスを求めるステップと、
前記命令コードが分岐命令であり、前記トレース情報が静的分岐フォーマットの時は、前記オブジェクトコードリストから分岐先アドレス情報を得て、前記トレース情報が動的フォーマットの時は、アドレス情報を解析中の分岐命令の実行アドレスに加えて分岐先アドレス情報を求めて次のトレース情報の実行アドレスを求めるステップと、
前記オブジェクトコードリストと前記ソースリストとの対応情報が得られる時は、前記オブジェクトコードリストに前記ソースリストを対応付けて実行プログラムを復元するステップ
とを備えることを特徴とする請求項３記載のトレース解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トレース解析装置およびトレース解析方法に係り、特にトレースメモリに格納されたトレース情報を解析して、プロセッサの動的なプログラム実行状況を表示するトレース解析装置およびトレース解析方法に関する。
【背景技術】
【０００２】
近年のマイクロプロセッサは、動作周波数を高めて高性能化するだけでなく、プロセッサが搭載されたシステムの開発期間を短くすることを支援する機能も求められている。プロセッサおよびプロセッサを搭載したシステムの開発では、プロセッサが実行したプログラムの流れやデータ更新の情報（トレース情報）を解析できることは、開発期間の短縮に有効である。このため、プロセッサに、プロセッサのトレース情報を外部に出力する機能を設けて、取り出されたトレース情報からプログラムの流れやデータの更新の状況を解析するインサーキットエミュレータ（ＩＣＥ：In Circuit Emulator）などの技術開発が行われ提供されている。
【０００３】
一方、プロセッサの高速化により、解析のために信号を取り出すことが困難になってきている。このため、プロセッサのトレース情報を圧縮して、リアルタイムで出力する信号の数を減らす技術開発や、プロセッサ内部にメモリを設けてリアルタイムなトレース情報をメモリに蓄積記録するようにした技術開発も進められている。プロセッサ内部などに設けたメモリにトレース情報を格納する場合、使用するメモリに対して出来るだけトレース情報を多く蓄えるために、可変長のトレース格納フォーマットを用いる方法が知られている（例えば、非特許文献１参照）。
【０００４】
しかしながら、この可変長のトレース格納フォーマットを用いてメモリ（トレースメモリ）にトレース情報を格納する場合、可変長のデータを隙間なく格納することができず、無駄なデータが詰められるという不都合が存在する。
【０００５】
即ち、通常、可変長のトレース格納フォーマットを用いる場合、格納したトレース情報の解析が行えるようにするために、トレースメモリの１ワード（６４ビット）毎に、そのワードに格納されたトレース情報の先頭アドレスを求めるための４ビット長の情報を下位側［３：０］に格納している。このため、トレースメモリの１／１６の容量がトレース情報を格納する目的に使用できず、また、その情報が示すトレース情報の先頭アドレスが４ビット毎になるため、その直前のトレース情報の最終アドレスが４の倍数−１でない時は、無駄なデータが詰められることになり、使用するメモリに対して出来るだけトレース情報を多く蓄えることの実現を妨げる問題があった。
【非特許文献１】ミップス・テクノロジーズ著、“ＥＪＴＡＧ  トレースコントロールブロック仕様”, ドキュメント番号：ＭＤ００１４８，改訂版１．０４，  ２００２年３月２１日、（“EJTAG Trace Control Block Specification”，MIPS Technologies Inc. 2001-2002, http://www.mips.jp/04doc/MIPSDoc/ejtag.html, P.3-6）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、トレースメモリに格納できるトレース情報量を増加し、デバッグに必要なコード量を増加し、プログラム開発支援性能の高いトレース解析装置およびトレース解析方法を提供する。
【課題を解決するための手段】
【０００７】
本発明の実施の形態の第１の特徴は、（イ）トレース情報を格納するトレースメモリ，トレース情報の最終格納アドレス情報を記憶するアドレスレジスタを備えるトレース装置に接続されたトレース解析装置であって、（ロ）トレース情報を登録するトレース解析テーブルと、（ハ）プログラムのオブジェクト／ソースコードリストを記憶するオブジェクトコードリスト記憶部と、（ニ）トレース情報の最終格納アドレスに従って、トレース解析テーブルに登録されたトレース情報，オブジェクトコードリスト記憶部に記憶されたオブジェクト／ソースコードリストを読み出して、実行アドレスと命令コードを復元する命令復元部とを備えるトレース解析装置であることを要旨とする。
【０００８】
本発明の実施の形態の第２の特徴は、（イ）長さの異なるフォーマットで圧縮変換されたトレース情報をトレース情報の最終格納アドレス情報に従って、トレース解析テーブルに入力するステップと、（ロ）トレース情報の最終格納アドレス情報に従って、トレース情報より格納されたプログラムの実行された順と逆順に解析し、トレース情報を順次情報の単位に切り出してトレース解析テーブルに登録するステップと、（ハ）プログラムのオブジェクトコードリスト／ソースコードリストを入力して、トレース解析テーブルに登録されたトレース情報の実行アドレスと命令コードを復元するステップとを備えるトレース解析方法であることを要旨とする。
【発明の効果】
【０００９】
本発明のトレース解析装置およびトレース解析方法によれば、トレースメモリにトレース情報の格納場所を示すデータを格納することが不要になり、トレースメモリに格納できるトレース情報量が増えて、デバッグに必要なコード量を増やすことができる。
【発明を実施するための最良の形態】
【００１０】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。ただし、図面は模式的なものであり、各ブロックの平面寸法、各データフォーマットの厚み等は現実のものとは異なることに留意すべきである。又、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることはもちろんである。
【００１１】
また、以下に示す実施の形態は、この発明の技術的思想を具体化するための装置や方法を例示するものであって、この発明の技術的思想は、各ブロックの構成部品の配置等を下記のものに特定するものでない。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【００１２】
[実施の形態]
（全体構成）
本発明の実施の形態に係るトレース解析装置４８を内蔵するＪＴＡＧデバッグ装置１２と解析対象のプロセッサ１０の模式的全体ブロックは、図１に示すように構成される。
【００１３】
プロセッサ１０は、図１に示すように、トレース情報出力ユニット１８を備えるプロセッサコアモジュール１４と、トレース装置２０，ＪＴＡＧデバッグインタフェース２２を備えるデバッグモジュール１６と、プロセッサコアモジュール１４，デバッグモジュール１６間をバス３６，３８を介して接続するメインバス３４とから構成される。
【００１４】
プロセッサコアモジュール１４は、プロセッサ命令を読み込み実行する。デバッグモジュール１６は、ＪＴＡＧデバッグインタフェース２２においてＪＴＡＧデバッグ出力バス６４を介して外部のＪＴＡＧデバッグ装置１２に接続されており、デバッグ時に、外部のＪＴＡＧデバッグ装置１２によって制御可能である。
【００１５】
プロセッサコアモジュール１４内に設けられたトレース情報出力ユニット１８は、トレース情報出力データバス５０を介してトレース装置２０に接続されており、プロセッサコアモジュール１４の命令実行状態を示す情報を入力して、デバッグモジュール１６内のトレース装置２０にトレース情報を出力する。
【００１６】
トレース装置２０は、図１に示すようにプロセッサ１０のプログラム実行状態を示すトレース情報を格納するトレースメモリ３２と、トレース情報をあらかじめ定めたトレースフォーマットに圧縮して、トレースメモリ３２に循環的に順次格納するトレース情報圧縮ユニット２４と、トレースメモリ３２に最終的に格納したアドレスを保持するアドレスレジスタ２８およびバッファレジスタ３０とを備え、トレースメモリ３２の内容をプログラムの実行された順と逆順に解析し、トレースフォーマットの切れ目を探索し、切れ目からプログラムの実行順にトレース解析を行う。
【００１７】
トレース情報圧縮ユニット２４は、トレース情報の圧縮を停止する圧縮停止部２６を備え、トレース開始およびトレース終了時に特定の形式のトレース情報をトレースメモリ３２に格納する構成を備えていても良い。又、トレース装置２０は、トレース対象であるプロセッサ１０に内蔵されていても良いことは勿論である。
【００１８】
（トレース解析装置）
本発明の実施の形態に係るトレース解析装置は、図２に示すように、トレース情報を格納するトレースメモリ３２，トレース情報の最終格納アドレス情報を記憶するアドレスレジスタ２８を備えるトレース装置２０に接続されたトレース解析装置４８であって、トレース情報を登録するトレース解析テーブル４６と、プログラムのオブジェクト／ソースコードリストを記憶するオブジェクトコードリスト記憶部６０と、トレース情報の最終格納アドレスに従って、トレース解析テーブル４６に登録されたトレース情報，オブジェクトコードリスト記憶部６０に記憶されたオブジェクト／ソースコードリストを読み出して、実行アドレスと命令コードを復元する命令復元部６２とを備える。
【００１９】
トレース解析テーブル４６は、オブジェクトコードリスト記憶部６０に記憶されたプログラムのオブジェクト／ソースコードリスト４４と、トレースメモリ３２に格納されたトレース情報を読み出して、最終格納アドレス情報が示すトレース情報より格納されたプログラムの実行された順と逆順に解析し、順次情報の単位に切り出して読み出されたトレース情報とを登録する。
【００２０】
プロセッサコアモジュール１４で実行されたプログラムを解析するＪＴＡＧデバッグ装置１２は、図２に示すように、トレースメモリ読み出しデータバス５２および最終格納アドレス読み出しデータバス５４に接続されるトレース解析装置４８と、オブジェクト／ソースコードリスト４４を備える。トレース情報を入力するトレース解析テーブル４６は、トレース解析装置４８に内蔵されている。実行中のプログラムのオブジェクト／ソースコードリスト４４はバス５８を介してトレース解析装置４８に入力されている。
【００２１】
トレース動作時には、プログラムを実行したプロセッサコアモジュール１４内のトレース情報出力ユニット１８から、命令の種類，アドレス情報，データ情報，およびトレース情報出力ユニット１８の動作状況などからなるトレース情報を出力させて、トレース装置２０に入力する。トレース装置２０では、トレース情報圧縮ユニット２４に入力されたトレース情報を図３に示す形式に圧縮して、トレースメモリ３２に順次格納させる。
【００２２】
トレース動作終了後、ＪＴＡＧデバッグ装置１２は、トレースメモリ３２の内容とアドレスレジスタ２８に記憶された最終格納アドレスをトレース装置２０から読み出し、プロセッサコアモジュール１４上で実行中のプログラムのオブジェクト／ソースコードリスト４４を、バス５８を介して、トレース解析装置４８内のオブジェクトコードリスト記憶部６０に入力し、トレース解析プログラムを用いてトレースメモリ３２の内容を解析し、トレース中のプロセッサコアモジュール１４のプログラム実行状況を出力データバス５６に出力する。
【００２３】
トレース装置２０では、プロセッサコアモジュール１４が実行したプログラムの流れやデータ更新の情報であるトレース情報を、トレース情報出力ユニット１８から入力し、可変長のトレース格納フォーマットに圧縮変換し、トレースメモリ３２に格納する順序をトレースメモリ３２のワードの上位より下位方向に行うようにするとともに循環的に格納することが可能である。
【００２４】
格納フォーマットは下位ビットより解釈すればフォーマットの種類とフォーマット長が一意的に定まるようにする。
【００２５】
トレース終了後、最終格納アドレス情報を用いて、トレースメモリ３２に格納された可変長のトレース情報をトレース終了時点から時間軸の逆方向へ正確に切り出すことができるので、トレースメモリ３２にトレース情報の格納場所を示すデータを格納することが不要となり、トレース装置２０に格納できるトレースの情報量を増加させることができ、トレース装置２０の性能が向上する。
【００２６】
プロセッサ開発やプロセッサを内蔵するシステム開発において、本発明の実施の形態に係るトレース解析装置を用いてデバッグやプロセッサの評価解析作業を行う時は、図２に示すように、トレース状態におけるプロセッサコアモジュール１４のプログラム実行状況を示す実行命令のアドレスや命令の種類およびデータメモリへの読み書きデータなどのプロセッサコアモジュール１４に関するトレース情報とトレース情報出力ユニット１８の状態を示す情報がトレース情報としてトレース情報圧縮ユニット２４に送られる。トレース情報は、トレース情報圧縮ユニット２４において、圧縮変換されてアドレスレジスタ２８が示すアドレスのトレースメモリ３２に格納される。トレース終了後に、トレース解析装置４８がトレースメモリ３２に格納されたトレース情報とアドレスレジスタ２８からトレース情報の最終格納アドレス情報とを入力して、トレース解析テーブル４６にトレース情報を情報単位に切り出し登録する。トレース解析装置４８は、トレース情報に含まれる分岐命令のアドレス情報などとプロセッサコアモジュール１４が実行したプログラムのオブジェクトコードリストを参照しながら、トレース解析テーブル４６に登録されたトレース情報を実行アドレスと実行した命令に復元する。更にトレース解析装置４８は、復元されたオブジェクトコード列とソースコードリストとの変換情報などが参照できる時は、ソースコードリストを復元して、プログラム実行状況を表示装置などに出力する。
【００２７】
デバッグ作業では、復元されるプログラムコード量やデータアクセス情報などの情報量が多いほど、デバッグ作業が容易になるため、多くのトレース情報を格納できるように大容量のトレースメモリ３２が求められる。一方、高速なプロセッサ１０では外部に信号を取り出すことが困難なため、トレースメモリ３２はプロセッサ１０に内蔵されることになる。
【００２８】
本発明の実施の形態に係るトレース解析装置４８およびトレース解析方法においては、トレースメモリ３２にあらかじめ定めたフォーマットで圧縮変換して格納したトレース情報と、最終格納アドレス情報とを入力し、トレース情報の下位側で示される種類と長さ情報を用いて、最終格納アドレスより逆方向に順次トレース情報を切り出してトレース解析テーブル４６に登録し、更にプロセッサコアモジュール１４で実行されたプログラムのオブジェクト／ソースコードリスト４４を入力して、分岐命令のトレース情報とオブジェクトコードリストより、トレース解析テーブル４６のトレース情報を実行アドレスと命令コードに解析復元して、プログラム実行状況を出力できるので、トレースメモリ３２にトレース情報の格納場所を示すデータを格納することが不要になり、トレースメモリ３２に格納できるトレース情報量が増えて、デバッグに必要なコード量を増やすことができてプログラム開発支援性能の高いプロセッサを提供できる。
【００２９】
（トレースフォーマット）
圧縮したトレース情報は、図３に示すように、１２種類のフォーマットでトレースメモリ３２に格納される。全てのフォーマットは、下位側より読み出すことで、そのフォーマット全体の長さが判断できるように、構成されている。
【００３０】
プロセッサコアモジュール１４が、次に示す命令列を実行する時を例に、トレース情報が格納される様子を説明する。
【００３１】
以下の表記において、例えば左端の０ｘ０１００は、プログラムメモリのアドレス１００番地を１６進表示したものである。
【００３２】
０Ｘ０１００  ａｄｄ  ＄２，４
０Ｘ０１０２  ｓｗ    ＄３,(＄２)
０Ｘ０１０４  ｊｍｐ  ＄５      ;この時点のＲｅｇｉｓｔｅｒ５の内容が０Ｘ１０００であるとする。
【００３３】
：        ：
：        ：
０Ｘ１０００  ａｄｄ  ＄３，１００
：        ：
プロセッサコアモジュール１４が、１００番地のａｄｄ命令を実行すると、トレース情報としてＤＰＦ２が生成され、格納される。次にプロセッサコアモジュール１４が、１０２番地のｓｗ命令を実行すると、トレース情報としてＤＰＦ２が生成されて、格納される。次に、１０４番地のｊｍｐ命令を実行すると、トレース情報としてＤＰＦ５が生成されて、格納される。トレース情報は、トレースメモリ３２のワードの上位より下位方向に隙間無く順次格納される。また、格納するトレース情報がワードの境界を越える時は、境界位置で分割して複数の連続するワードに格納される。そしてトレースメモリ３２の最終ワードに続くワードは、トレースメモリ３２の先頭ワードであるように制御して循環的にトレース情報を格納する。
【００３４】
内蔵されたトレースメモリ３２は、容量が限られるため、本発明の実施の形態に係るトレース解析装置４８が入力するトレース情報はトレース情報圧縮ユニット２４で、図３に示す可変長のフォーマットに圧縮され、図示しないトレース情報の格納機構で、トレースメモリ３２のバイト境界やワード境界を跨るようにして隙間無く格納する。また、デバッグ作業では、トレース開始直後のトレース情報だけでなく、トレース終了時直前のトレース情報も有効である。このため、トレース情報の格納機構は、格納アドレスがトレースメモリ３２の最終アドレスを超える時には、先頭アドレスに戻って（循環的）格納できるように構成している。この結果、トレースメモリ３２に格納できるトレース情報量を増加させている。
【００３５】
図３に示される可変長の圧縮されたフォーマットは、全て下位側よりビットを順次解析するとフォーマットの種類だけでなく、フォーマットの全体の長さを得ることができるように、定義される。以下、フォーマットが示す機能概略を説明する。
【００３６】
フォーマット１（ＤＰＦ１）は、プロセッサコアモジュール１４などで命令を実行していないことを示す。
【００３７】
フォーマット２（ＤＰＦ２）は、プロセッサコアモジュール１４が分岐命令以外の命令を実行したことを示す。
【００３８】
フォーマット３（ＤＰＦ３）は、実行したプログラムのオブジェクトコードから、静的に分岐先アドレスが定まる分岐命令を実行したことを示す。ここで、ＤＰＦ３を「静的分岐フォーマット」と表記する。
【００３９】
フォーマット４（ＤＰＦ４）は、分岐先アドレスが現在の実行アドレスの上位１６ビットが同じとなる分岐命令や分岐動作を実行したことを示し、アドレスの下位１６ビットの内の１５ビット（本発明の実施の形態の対象のプロセッサ１０の命令長が最短で１６ビットのため、最下位の１ビットは使用されない）と分岐命令の種類などを示す３ビットの情報を含む。ここで、ＤＰＦ４を「動的分岐フォーマット」と表記する・
フォーマット５（ＤＰＦ５）は、分岐先アドレスが現在の実行アドレスの上位１６ビットと異なる分岐命令や分岐動作を実行したことを示し、分岐アドレスの３２ビットの内の３１ビットと分岐命令や分岐動作の種類などを示す３ビットの情報を含む。ここで、ＤＰＦ５を「分岐フォーマット」と表記する。
【００４０】
フォーマット６（ＤＰＦ６）は、トレース開始直後、およびトレース終了直後にトレースメモリ３２に格納されて、有効なトレース情報の範囲を示す。ここで、ＤＰＦ６を「トレース開始／終了フォーマット」と表記する。
【００４１】
ＤＤＦ１からＤＤＦ６のフォーマットは、トレース時にデータトレースの設定が行われている時にトレース情報を示すために使用され、トレースメモリ３２へのアクセス命令でアクセスしたアドレスやデータを示し、通常、メモリアクセス命令を実行したことを示すフォーマット２（ＤＰＦ２）の直後に格納される。
【００４２】
（トレース装置のトレース動作）
図４に示すトレースメモリ３２に格納されたトレース情報の内容を例に、トレース装置２０の動作を説明する。なお、以降の説明では、プログラムの実行順序の解析手順が中心となるので、これらのフォーマットの詳細な説明を省略するが、図４に示すトレース情報に含まれているＤＤＦ４は、データトレースでデータを示すフォーマットであり、１６ビットのデータに加えてデータアクセス全体とその１６ビットとの関係を示す２ビットの情報が含まれる。
【００４３】
（ａ）トレース動作が開始されると、トレース装置２０はＤＰＦ６を生成し、アドレスレジスタ２８を０で初期化し、バッファレジスタ３０を０で初期化後、バッファレジスタ３０の最左端部分にＤＰＦ６を格納して、アドレスレジスタ２８の値をＤＰＦ６のフォーマット長である５増加させる（図３のＤＰＦ６を参照）。
【００４４】
（ｂ）６４ビット長のバッファレジスタ３０のビットアドレスは、最右端が０で最左端が６３になるが、アドレスレジスタ２８がバッファレジスタ３０やトレースメモリ３２のビットアドレスを指す時は、アドレスレジスタ２８の下位６ビットを反転して用いている。以下の説明において、この出力を反転してアドレス指定しているとの記述は省略する。即ち、下位６ビットが０の時は最左端の６３ビット目を意味し、逆に下位６ビットが６３の時は最右端の０ビット目を示す。
【００４５】
（ｃ）次いでプロセッサコアモジュール１４からストールなどで命令を実行していないことを示すトレース情報が出力され、トレース装置２０に入力されたので、トレース情報圧縮ユニット２４で、ＤＰＦ１を生成して、アドレスレジスタ２８の指すバッファレジスタ３０のアドレスに格納し、アドレスレジスタ２８の値を１増加させる（図３のＤＰＦ１を参照）。
【００４６】
（ｄ）次のサイクルも同様のトレース情報が出力されたので、同様にＤＰＦ１を格納する動作を行う。
【００４７】
（ｅ）次のサイクルで、プロセッサコアモジュール１４から分岐命令であることを示すトレース情報が出力されたので、トレース情報圧縮ユニット２４は、圧縮停止部２６を動作させてＤＰＦ４またはＤＰＦ５を生成するが、命令の実行アドレスと比較した時、分岐先アドレスの上位１６ビットが異なるので、ＤＰＦ５のフォーマットでトレース情報を生成して、アドレスレジスタ２８の指すバッファレジスタ３０のアドレスに格納し、アドレスレジスタ２８の値を３９増加させる（図３のＤＰＦ５を参照）。
【００４８】
（ｆ）以下８サイクルは、プロセッサコアモジュール１４のトレース情報出力ユニット１８からの出力に従い、トレース情報を圧縮生成して、アドレスレジスタ２８の指すバッファレジスタ３０のアドレスに格納し、アドレスレジスタ２８の値を更新させることを繰り返す。
【００４９】
（ｇ）続くサイクルで、プロセッサコアモジュール１４のトレース情報出力ユニット１８から、プログラムのオブジェクトコードから静的に分岐先アドレスが定まる分岐命令であることが出力されたので、トレース情報圧縮ユニット２４は、アドレス情報を圧縮してＤＰＦ３を生成して、アドレスレジスタ２８の指すバッファレジスタ３０のアドレスに格納し、アドレスレジスタ２８の値を５増加させる（図３のＤＰＦ３を参照）。
【００５０】
（ｈ）以下２サイクルは、プロセッサコアモジュール１４が命令を実行していないので、ＤＰＦ１が格納されるが２サイクル目のＤＰＦ１を格納して、アドレスレジスタ２８の値を更新すると下位６ビットを除いたアドレスレジスタ２８の値が増加し、下位６ビットが０となるので、バッファレジスタ３０の内容をトレースメモリ３２の先頭ワードに格納するとともに、バッファレジスタ３０を初期化する。
【００５１】
（ｉ）次のサイクルでは、プロセッサコアモジュール１４のトレース情報出力ユニット１８から、次のプログラム実行アドレスが連続するような命令を実行したことを示すトレース情報が出力されたので、トレース情報圧縮ユニット２４はＤＰＦ２を生成し、アドレスレジスタ２８の下位６ビットが指すバッファレジスタ３０のアドレスに格納し、アドレスレジスタ２８の値を２増加させる（図３のＤＰＦ２を参照）。
【００５２】
（ｊ）以下５サイクルは、同様にプロセッサコアモジュール１４のトレース情報出力ユニット１８からの出力に従い、トレース情報を圧縮生成して、アドレスレジスタ２８の下位６ビットが指すバッファレジスタ３０のアドレスに格納し、アドレスレジスタ２８の値を更新させることを繰り返す。
【００５３】
（ｋ）５サイクル目の命令が、Ｌｏａｄ命令であらかじめトレース情報出力ユニット１８に設定したアドレスからのデータ読み出しを行ったため、トレース情報圧縮ユニット２４は１６ビット長のデータ情報を含むＤＤＦ４を連続して生成し、アドレスレジスタ２８の下位６ビットが指すバッファレジスタ３０のアドレスに格納し、アドレスレジスタ２８の値を２５増加させる（図３のＤＤＦ４を参照）。
【００５４】
（ｌ）以下１０サイクルは、プロセッサコアモジュール１４内のトレース情報出力ユニット１８からの出力に従い、トレース情報を圧縮生成して、アドレスレジスタ２８の下位６ビットが指すバッファレジスタ３０のアドレスに格納し、アドレスレジスタ２８の値を更新させることを繰り返す。
【００５５】
（ｍ）次のサイクルで、プロセッサコアモジュール１４から分岐命令であることを示すトレース情報が出力され、命令の実行アドレスと比較した時、分岐先アドレスの上位１６ビットが異なるので、トレース情報圧縮ユニット２４は、ＤＰＦ５のフォーマットでトレース情報を生成して、アドレスレジスタ２８の下位６ビットが指すバッファレジスタ３０のアドレスに格納し、アドレスレジスタ２８の値を３９増加させる（図３のＤＰＦ５を参照）。増加時、アドレスレジスタ２８の下位６ビットを除いたアドレスレジスタ２８の値が増加し下位６ビットが０でないので、ＤＰＦ５の上位側がバッファレジスタ３０に格納できるビット位置でＤＰＦ５を分割して、分割した上位側のトレース情報をバッファレジスタ３０に格納し、トレースメモリ３２の先頭から第２番目のワードに格納するとともに、バッファレジスタ３０を初期化する。バッファレジスタ３０に、分割したＤＰＦ５の下位側を格納する。
【００５６】
（ｎ）以下２３サイクルは、プロセッサコアモジュール１４内のトレース情報出力ユニット１８からの出力に従い、トレース情報を圧縮生成して、アドレスレジスタ２８の下位６ビットが指すバッファレジスタ３０のアドレスに格納し、アドレスレジスタ２８の値を更新させることを繰り返して、アドレスレジスタ２８の下位６ビットを除くアドレスレジスタ２８の値が増加し、下位６ビットが０となるので、バッファレジスタ３０をトレースメモリ３２の先頭から第３番目のワードに格納するとともに、バッファレジスタ３０を初期化する。
【００５７】
（ｏ）続くサイクルは、プロセッサコアモジュール１４が命令を実行していないので、ＤＰＦ１をバッファレジスタ３０に格納し、アドレスレジスタ２８の値を１増加させる（図３のＤＰＦ１を参照）。
【００５８】
（ｐ）ここで、トレース動作の終了を検出すると、トレース装置２０は、ＤＰＦ６を生成し、アドレスレジスタ２８の指すバッファレジスタ３０のアドレスに格納しアドレスレジスタ２８の値を５増加させ、バッファレジスタ３０を、トレースメモリ３２の先頭から第４番目のワードに格納する（図３のＤＰＦ６を参照）。
【００５９】
トレースメモリのメモリマップと、トレース情報をサイクルごとに切り出す様子は、図８（ａ）および図８（ｂ）に示すように表される。又、トレース解析テーブルに登録されたトレース情報と、解析処理で変化するトレース情報の様子は、図９（ａ）および図９（ｂ）に示すように表される。
【００６０】
トレースメモリ３２に格納されたトレース情報は可変長であるが、図８に示すように、最終格納アドレスから、トレースメモリ３２を上位方向に順次読み出すことで、トレース情報の下位部分に示されるそれぞれのトレース情報フォーマットの全体の長さの情報を用いて、次の（前の実行サイクル）のトレース情報の格納アドレスを得ることができ、各サイクルのトレース情報を切り出すことができる。
【００６１】
このように、トレースメモリ３２からトレース情報を切り出して行く時、ＤＰＦ６のトレース情報を得た時は、トレース動作の開始時点に達したことを知ることができる。もしも、トレースメモリ３２の先頭ワードのトレース情報の切り出しを行ってもＤＰＦ６が得られない時は、トレースメモリ３２が循環的に使用されていることを知ることができ、トレースメモリ３２の最終ワードからのトレース情報の切り出しを行うことができる。
【００６２】
本発明の実施の形態に係るトレース解析装置は、このようなトレース装置２０に適用することによって、圧縮した可変長のトレース情報のみをトレースメモリ３２に格納しても、最終格納アドレス情報から、正確にトレース情報を切り出すことができるので、トレースメモリ３２にトレース情報の格納位置を示す情報を格納する必要がなく、トレースメモリ３２に格納できるトレース情報量を増加させることができ、搭載プロセッサシステムの開発期間を短くする機能の高いプロセッサ１０を提供できる。
【００６３】
又、本発明の実施の形態に係るトレース解析装置は、このようなトレース装置２０に適用することによって、トレースメモリ３２にトレース情報の格納アドレス情報を格納しなくても個々のトレース情報を切り出すことができ、トレースメモリ３２に格納するトレース情報を増加させることができる。
【００６４】
更に又、本発明の実施の形態に係るトレース解析装置は、このようなトレース装置２０をプロセッサ１０に内蔵することで、高速動作するプロセッサ１０のトレース情報を得ることができる。
【００６５】
分岐命令に係わるトレース情報は、トレース開始後、または分岐先アドレス情報が圧縮された形式のトレース情報での格納が一定の容量を超えた後は、分岐先アドレス情報が圧縮されない形式のトレース情報を格納するようにしても良い。例えば、ＤＰＦ３やＤＰＦ４（命令実行アドレスと分岐先アドレスの上位１６ビットが同じ時に下位１５ビット［１５：１］の差異をアドレス情報として用いることで圧縮する）を用いて、分岐命令のアドレス情報を圧縮して格納する時、格納したトレース情報の合計容量が一定の値を超えても、ＤＰＦ５による分岐命令のトレース情報が格納されない時は、ＤＰＦ３やＤＰＦ４に圧縮できる条件が整っていても、ＤＰＦ５によって分岐命令のトレース情報を格納する。
【００６６】
このように制御することで、格納できるトレース情報量は減少するが、トレースメモリ３２の内容にＤＰＦ５が発生しないようなプログラムの解析でも、妥当な量のトレース情報を保存することができ、搭載プロセッサシステムの開発期間を短くする機能の高いプロセッサ１０を提供できる。プログラムの分岐アドレス情報を圧縮して、トレース情報を格納した時に、プログラムの実行状況の復元の精度を向上させることができる。  
トレース情報は、プロセッサ１０が実行した命令毎のトレース情報に限定しても良い。例えば、プロセッサコアモジュール１４がストールなどで命令を実行していない時は、トレース情報を格納しないようにすることで、プロセッサコアモジュール１４の実行サイクル数の情報は失われるが、プログラムで実行した命令のトレース情報を、トレースメモリ３２に、より多く格納することができ、搭載プロセッサシステムの開発期間を短くする機能の高いプロセッサ１０を提供できる。プロセッサコアモジュール１４が実行した命令に関するトレース情報に、限定することで、トレースメモリ３２に格納できるトレース情報を増加させることができる。
【００６７】
本発明の実施の形態に係るトレース解析装置は、このようなトレース装置２０に適用することによって、プロセッサコアモジュール１４のプログラム実行状況をトレースメモリ３２にあらかじめ定めたフォーマットで圧縮変換して格納したトレース情報と、最終格納アドレス情報とを入力し、トレース情報の下位側で示される種類と長さ情報を用いて、最終格納アドレスより逆方向に順次トレース情報を切り出してトレース解析テーブル４６に登録する。更にプロセッサコアモジュール１４の実行したプログラムのオブジェクトコードリストを入力して、分岐命令のトレース情報とオブジェクトコードリストより、トレース解析テーブル４６のトレース情報を実行アドレスと命令コードに解析復元して、プログラム実行状況を出力できるので、トレースメモリ３２にトレース情報の格納場所を示すデータを格納することが不要になり、トレースメモリ３２に格納できるトレース情報量が増えて、デバッグに必要なコード量を増やすことができてプログラム開発支援性能の高いプロセッサを提供できる。
【００６８】
（トレース解析方法）
本発明の実施の形態に係るトレース解析方法における主要な処理手順は、図５乃至図７に示すように、フローチャート図で表すことができる。
【００６９】
本発明の実施の形態に係るトレース解析方法は、図５に示すように、長さの異なるフォーマットで圧縮変換されたトレース情報をトレース情報の最終格納アドレス情報に従って、トレース解析テーブルに入力するステップＳ１と、トレース情報の最終格納アドレス情報に従って、トレース情報より格納されたプログラムの実行された順と逆順に解析し、トレース情報を順次情報の単位に切り出してトレース解析テーブルに登録するステップＳ２と、プログラムのオブジェクトコードリスト／ソースコードリストを入力して、トレース解析テーブルに登録されたトレース情報の実行アドレスと命令コードを復元するステップＳ３
とを備える。
【００７０】
トレース解析テーブルに登録するステップＳ２は、図６に示すように、読み出しアドレスが減少する方向に、フォーマット単位毎に前記トレース情報を切り出し、読み出すステップＳ１１と、トレース情報がトレース開始／終了フォーマット（ＤＰＦ６）の時は、１個目のトレース開始／終了フォーマット（ＤＰＦ６）であるかを調べるステップＳ１５と、１個目のトレース開始／終了フォーマット（ＤＰＦ６）である時は、次のトレース情報の切り出しと登録を行うステップＳ１８と、トレース開始／終了フォーマット（ＤＰＦ６）が１個目でない時は、トレース解析テーブルへの登録を終了する終了ステップとを備える。
【００７１】
前記復元するステップＳ３は、図７に示すように、プログラムのオブジェクトコードリスト／ソースリストから実行アドレス情報が登録されたトレース情報の命令コードを得て、トレース解析テーブルに登録するステップＳ１０２と、命令コードが分岐命令でない時は、命令コードのサイズから、次のトレース情報の実行アドレスを求めるステップＳ１０６と、命令コードが分岐命令であり、トレース情報が静的分岐フォーマットＤＰＦ３の時は、オブジェクトコードリストから分岐先アドレス情報を得て、トレース情報が動的フォーマットＤＰＦ４の時は、アドレス情報を解析中の分岐命令の実行アドレスに加えて分岐先アドレス情報を求めて次のトレース情報の実行アドレスを求めるステップＳ１０７と、オブジェクトコードリストとソースリストとの対応情報が得られる時は、オブジェクトコードリストにソースリストを対応付けて実行プログラムを復元するステップＳ１１４とを備える。
【００７２】
トレース解析装置の主要な解析手順を、図５に示す。
【００７３】
（ａ１）まず、ステップＳ１において、長さの異なるフォーマットで圧縮変換されたトレース情報とトレース情報の最終格納アドレス情報とをＪＴＡＧデバッグ装置１２に入力する。
【００７４】
（ｂ１）次に、ステップＳ２において、トレースメモリ３２に格納されたトレース情報をトレース解析テーブル４６に登録する。
【００７５】
（ｃ１）次に、ステップＳ３において、トレース解析テーブル４６のトレース情報を解析してプロセッサコアモジュール１４の実行サイクル数や実行命令コードなどの情報に復元する。
【００７６】
図８は、図５のステップＳ２において、（ａ）トレースメモリ３２のメモリマップと、（ｂ）サイクル毎に切り出されたトレース情報の関係を示す図である。図９は、図５のステップＳ３において、（ａ）トレース情報がトレース解析テーブルに登録された様子、および（ｂ）解析処理の進行に従ってプログラム実行情報に復元されて行く様子を説明するための図である。
【００７７】
図４に示されたトレースメモリに格納されたトレース情報を入力する時を例に、トレース解析装置の動作の説明を行う。
【００７８】
トレース動作が終了すると、本発明の実施の形態に係るトレース解析装置は、図５のステップＳ１，Ｓ２に示すようにトレースメモリからトレース情報を入力し、アドレスレジスタから最終格納アドレス情報を入力して、トレース解析テーブルに情報単位のトレース情報に切り出し登録し、ステップＳ３に示すようにオブジェクトコードリストを入力してトレース解析テーブルのトレース情報をプログラム実行情報に復元して出力する。
【００７９】
（図５のステップＳ１，Ｓ２）
図５に示すステップＳ１，Ｓ２の概略処理手順を、図６を用いて説明する。
【００８０】
（ａ２）ステップＳ１１において、トレースメモリ３２に格納されたトレース情報と、トレース情報の最終格納アドレスをトレース解析装置４８に読み出す。
【００８１】
（ｂ２）ステップＳ１２において、各種アクセスポインターを初期設定する。トレース解析装置４８に読み込まれたトレース情報の読み出しアドレスに、ステップＳ１１で読み込んだ最終格納アドレスを設定し、トレース解析テーブル４６の書き込みアドレスに、トレースメモリサイズより推定できるトレース解析テーブル４６の最大アドレスを設定し、実行サイクル数を０と設定する。
【００８２】
（ｃ２）ステップＳ１３において、読み出しアドレスが示すアドレスからアドレスが減少する方向に読み込まれたトレース情報を読み出して行き、フォーマットから判断可能な単位毎にトレース情報を切り出し、読み出す。
【００８３】
読み出したトレース情報を書き込みアドレスが示すトレース解析テーブル４６に登録する。読み込まれたトレース情報は、最終格納アドレスを最終アドレスとするトレースメモリサイズのシフトレジスタに格納されたデータのように読み出し制御される。
【００８４】
即ち、トレース解析装置４８内のメモリに格納された後のトレース情報は、読み出しアドレスが順次減少して行く時にワード境界やバイト境界を意識せずにデータを読み出すことができるように制御され、また、トレースメモリ３２が循環的に使用されている時は、読み出しアドレスが−１となると、読み出しアドレスにトレースメモリサイズのアドレス値が設定されて読み出し動作が継続できるように制御される。
【００８５】
（ｄ２）ステップＳ１４において、読み出しアドレスは読み出したトレース情報の長さだけ減少し、トレース解析テーブル４６への書き込みアドレスは１減少して、次のトレース情報の切り出し登録に対応したポインタの更新が行われる。なお、読み出しアドレスは上記説明を行ったように、更新時に制御される。
【００８６】
（ｅ２）ステップＳ１５において、読み出したトレース情報がトレースの開始ならびに終了を示すＤＰＦ６かを調べる。
【００８７】
（ｆ２）ステップＳ１５において、ＤＰＦ６でない時は、ステップＳ１６において実行サイクル数を１減少させ、トレース解析テーブル４６に登録するデータを更新する。
【００８８】
（ｇ２）次いで、ステップＳ１７において、トレース情報の切り出しとトレース解析テーブル４６への登録が全て終了したかを調べる。このステップの詳細は図示されないが、概略以下のように処理される。
【００８９】
（ｈ２）循環的にトレースメモリ３２が使用されていない時は、読み出しアドレスが４以下になっているかを調べ、４以下で２個目のＤＰＦ６が次のトレース情報処理で切り出せないアドレスになっている時はエラーであり、エラー処理を行う。５以上であれば、切り出し登録が終了していないとして、ステップＳ１３に戻る。
【００９０】
（ｉ２）循環的にトレースメモリ３２が使用されている時は、読み出しアドレスが一度０に達するまでは、切り出し登録が終了していないとして、ステップＳ１３に戻る。
【００９１】
（ｊ２）しかし、一度０を超えて読み出しアドレスが更新された後は、読み出しアドレスが最終格納アドレスに０ｘ３Ｆを加えて下位６ビットをマスクした値と比較して大きな時は、切り出し登録が終了していないとして、ステップＳ１３に戻る。
【００９２】
（ｋ２）等しいか小さな時は、読み出し登録は終了したことを示し、図５のステップＳ２を終了する。
【００９３】
（ｌ２）なお、小さな時は、最後に登録したトレース情報は上位ビットに誤りが含まれるのでトレース解析テーブル４６より削除して、アドレスポインター類を一つ前の状態に戻して、図５のステップＳ２を終了する。
【００９４】
（ｍ２）ステップＳ１５において、トレース情報がＤＰＦ６の時は、ステップＳ１８で１個目のＤＰＦ６であるかを調べる。
【００９５】
（ｎ２）ステップＳ１８において、１個目のＤＰＦ６である時は、トレース終了を示すトレース情報であり、トレース解析テーブル４６への登録が開始されたことを意味し、次のトレース情報の切り出しと登録を行うステップＳ１３に戻る。
【００９６】
（ｏ２）ステップＳ１８において、ＤＰＦ６が１個目でない（２個目）時は、トレース開始を示すトレース情報であるため、図５のステップＳ２の切り出しとトレース解析テーブルへの登録を終了する。
【００９７】
（図５のステップＳ３）
図５に示すステップＳ３の概略処理手順を、図７を用いて説明する。
【００９８】
（ａ３）ステップＳ１０１で、トレース解析テーブル４６に登録されたＤＰＦ５のフォーマットのトレース情報をトレース情報が登録されたトレース解析テーブル４６の先頭より調べる。
【００９９】
（ｂ３）ステップＳ１０２で、見つけられたＤＰＦ５のフォーマットのトレース情報に続いて実行された命令のトレース解析テーブル４６にＤＰＦ５の分岐先アドレス情報を実行アドレス情報として登録する。
【０１００】
（ｃ３）ステップＳ１０３で、実行したプログラムのオブジェクト／ソースコードリスト４４を読み込む。
【０１０１】
（ｄ３）ステップＳ１０４で、オブジェクトコードリストから実行アドレス情報が登録されたトレース情報の命令コードを得て、トレース解析テーブル４６に登録する。
【０１０２】
（ｅ３）ステップＳ１０５で、登録した命令コードが分岐命令か調べる。
【０１０３】
（ｆ３）ステップＳ１０５で、分岐命令でない時は、ステップＳ１０６で、命令コードのサイズから、次のトレース情報の実行アドレスを求めて、ステップＳ１０８に進む。
【０１０４】
（ｇ３）ステップＳ１０５で調べた命令コードが分岐命令である時は、分岐先アドレス情報を求めて次のトレース情報の実行アドレスを求めて、第１０８のステップに進む。ステップＳ１０７で、トレース情報がＤＰＦ３の時は、オブジェクトコードリストから分岐先アドレス情報を得て、ＤＰＦ４の時は、１６ビット（１５ビットに最下位ビットに０を加えたもの）のアドレス情報を解析中の分岐命令の実行アドレスに加えて分岐先アドレス情報を求め、次のトレース情報の実行アドレスを求めて、ステップＳ１０８に進む。
【０１０５】
（ｈ３）ステップＳ１０８で、現在解析したトレース情報に続くサイクルで、命令実行したトレース情報があるか調べる。
【０１０６】
（ｉ３）命令実行したトレース情報がある時は、ステップＳ１０９で、そのトレース情報に実行アドレス情報を登録して、ステップＳ１０４に戻る。命令実行したトレース情報が解析テーブルの最終アドレスまで見つからない時は、ステップＳ１１０に進む。
【０１０７】
（ｊ３）ステップＳ１１０では、トレース解析テーブル４６に登録された命令が実行されたことを示すトレース情報で、実行アドレスが登録されていないものがあるか調べる。
【０１０８】
（ｋ３）全ての命令実行したトレース情報に実行アドレスが登録されていると、ステップＳ１１４に進む。
【０１０９】
（ｌ３）実行アドレスが登録されていない命令実行のトレース情報が存在すると、ステップＳ１１１で、トレース実行時の情報から実行アドレスが確定できるか調べる。
【０１１０】
例えば、トレース開始時からのトレース情報が存在する時（ＤＰＦ６が２個存在）は、トレース開始時のプログラム実行アドレス情報を得ることができる。
【０１１１】
（ｍ３）実行アドレスが確定できるトレース情報が無い時は、残るトレース情報の解析を中止してステップＳ１１２で、トレース解析テーブル４６の解析結果の表示開始情報を命令コードが得られた直前の命令実行サイクルに変更設定して、ステップＳ１１４に進む。
【０１１２】
（ｎ３）ステップＳ１１２において実行アドレス情報が得られた時は、ステップＳ１１３で命令実行のトレース情報に実行アドレス情報を登録して、ステップＳ１０４に戻る。
【０１１３】
（ｏ３）ステップＳ１１４で、オブジェクトコードリストとソースリストとの対応情報が得られる時は、表示開始可能なオブジェクトコードリストにソースリストを対応付けて実行プログラムの復元した結果を出力し、この結果図５のステップＳ３を終了する。
【０１１４】
このようにして、本発明の実施の形態に係るトレース解析方法が適用されたトレース解析装置は、長さの異なるフォーマットでトレース情報を圧縮変換してトレース情報のみを格納したトレースメモリより読み出したトレース情報から実行プログラムを復元表示することができるため、トレース情報の開始位置情報などのトレース情報をトレースメモリに格納する必要がなく、トレースメモリに多くのトレース情報を蓄えることができて、開発支援性能の高いプロセッサを提供できる。
【０１１５】
[その他の実施の形態]
上記のように、本発明の実施の形態によって記載したが、この開示の一部をなす論述および図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施の形態および運用技術が明らかとなろう。
【０１１６】
このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【０１１７】
【図１】本発明の実施の形態に係るトレース解析装置を内蔵するＪＴＡＧデバッグ装置と解析対象のプロセッサの模式的全体ブロック構成図。
【図２】本発明の実施の形態に係るトレース解析装置におけるプログラム解析のデータの流れを説明する模式的ブロック構成図。
【図３】トレース情報のフォーマットの一覧を示す図。
【図４】トレース情報が格納されたトレースメモリのメモリマップを示す図。
【図５】トレース解析装置の主要な処理手順フロー図。
【図６】図５のステップＳ１，Ｓ２の概略処理フロー図。
【図７】図５のステップＳ３の概略処理フロー図。
【図８】（ａ）トレースメモリのメモリマップと、（ｂ）トレース情報をサイクルごとに切り出す様子を示す図。
【図９】（ａ）トレース解析テーブルに登録されたトレース情報と、（ｂ）解析処理で変化するトレース情報の様子を示す図。
【符号の説明】
【０１１８】
１０…プロセッサ
１２…ＪＴＡＧデバッグ装置
１４…プロセッサコアモジュール
１６…デバッグモジュール
１８…トレース情報出力ユニット
２０…トレース装置
２２…ＪＴＡＧデバッグインタフェース
２４…トレース情報圧縮ユニット
２６…圧縮停止部
２８…アドレスレジスタ
３０…バッファレジスタ
３２…トレースメモリ
３４…メインバス
３６，３８，５８…バス
４０…ホストコンピュータ
４２…トレース解析プログラム格納部
４４…オブジェクト／ソースコードリスト
４６…トレース解析テーブル
４８…トレース解析装置
５０…トレース情報出力データバス
５２…トレースメモリ読み出しデータバス
５４…最終格納アドレス読み出しデータバス
５６…出力データバス
６０…オブジェクトコードリスト記憶部
６２…命令復元部
６４…ＪＴＡＧデバッグ出力バス
Ｓ１〜Ｓ３…ステップ
Ｓ１１〜Ｓ１８…図５のステップＳ２の処理ステップ
Ｓ１０１〜Ｓ１１４…図５のステップＳ３の処理ステップ
【図１】
2006012066.tif 000003
【図２】
2006012066.tif 000004
【図３】
2006012066.tif 000005
【図４】
2006012066.tif 000006
【図５】
2006012066.tif 000007
【図６】
2006012066.tif 000008
【図７】
2006012066.tif 000009
【図８】
2006012066.tif 000010
【図９】
2006012066.tif 000011