(57)【要約】【課題】トレース情報を限られた出力帯域のもとで、欠落することなく外部に取り出すための技術を提供する。【解決手段】所定のプログラムに従って演算処理を行うと共に、その演算処理についてのトレース情報を出力可能な演算装置（１０３）と、上記演算装置から出力されたトレース情報を圧縮するためのトレース圧縮装置（２００）とを設ける。上記トレース圧縮装置は、記憶装置（２３０）と、上記記憶装置に記憶されたトレース情報と新たに上記演算装置から出力されたトレース情報との比較を行う比較装置（２１０）と、上記比較装置での比較結果に基づいて、新たに外部出力するトレース情報を圧縮するトレース情報圧縮制御装置（２２０）とを含む。トレース情報の内容がすでに出力したトレース情報と同様であった場合に、すでに出力したトレース情報を指し示す情報を出力することにより、トレース情報の圧縮を可能とする。【選択図】図１
2009042815.tif 000002
【特許請求の範囲】
【請求項１】
所定のプログラムに従って演算処理を行うと共に、その演算処理についてのトレース情報を出力可能な演算装置と、
上記演算装置から出力されたトレース情報を圧縮するためのトレース圧縮装置と、を含み、
上記トレース圧縮装置は、上記演算装置から出力されたトレース情報を記憶可能な記憶装置と、
上記記憶装置に記憶されたトレース情報と新たに上記演算装置から出力されたトレース情報との比較を行う比較装置と、
上記比較装置での比較結果に基づいて、新たに外部出力するトレース情報を圧縮するためのトレース情報圧縮制御装置と、を含んで成ることを特徴とする半導体集積回路。
【請求項２】
上記トレース情報圧縮制御装置は、新たに上記演算装置から出力されたトレース情報が、上記記憶装置内のトレース情報と一致しない場合、そのトレース情報にインデックス番号を付加してから上記記憶装置に格納し、新たに上記演算装置から出力されたトレース情報が、上記記憶装置内のトレース情報と一致した場合には、新たに外部出力するトレース情報の内容を、上記記憶装置内の該当するトレース情報のインデックス番号に置き換えることによってトレース情報を圧縮する請求項１記載の半導体集積回路。
【請求項３】
上記トレース情報圧縮制御装置は、新たに上記演算装置から出力されたトレース情報が、上記記憶装置内のトレース情報と一致しない場合、そのトレース情報にインデックス番号を付加してから上記記憶装置に格納し、新たに上記演算装置から出力されたトレース情報が、上記記憶装置内のトレース情報と一致した場合には、新たに外部出力するトレース情報の内容を、該当するトレース情報の上記記憶装置内での格納順番の情報に置き換えることによってトレース情報を圧縮する請求項１記載の半導体集積回路。
【請求項４】
上記トレース情報圧縮制御装置は、上記トレース情報において圧縮対象とされる情報を設定可能なレジスタを含み、当該レジスタの設定情報に従って、圧縮対象とされる情報が決定される請求項２又は３記載の半導体集積回路。
【請求項５】
上記記憶装置は、それぞれ上記演算装置から出力されたトレース情報を記憶可能な複数のレジスタを含み、
上記比較装置は、それぞれ上記レジスタに記憶されたトレース情報と新たに上記演算装置から出力されたトレース情報との比較を可能とする複数の比較器とを含んで成る請求項１項記載の半導体集積回路。
【請求項６】
請求項１乃至５の何れか１項記載の半導体集積回路と、
上記半導体集積回路から出力された情報を復元可能なデバッグ装置と、を含んで成るデバッグシステム。
【請求項７】
上記デバッグ装置は、上記インデックス番号が指すトレース情報の内容に置き換えることによってトレース情報を復元するトレース復元装置を含んで成る請求項５記載のデバッグシステム。
【請求項８】
上記デバッグ装置は、上記記憶装置内での格納順番の情報に対応するトレース情報に置き換えることによってトレース情報を復元するトレース復元装置を含んで成る請求項５記載のデバッグシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロプロセッサなどの半導体集積回路、及びプログラム開発支援用のデバッグシステムに関する。
【背景技術】
【０００２】
近年、マイクロプロセッサを搭載するシステムの開発期間の短縮が求められており、マイクロプロセッサ内にプログラム開発を支援するデバッグ支援機能を備えることが行われている。特に、マイクロプロセッサが実行したプログラムの流れや、データの更新などのトレース情報を外部に出力するトレース情報出力機能はプログラム開発を支援するための重要な機能である。外部に取り出されたトレース情報は、マイクロプロセッサに接続されたデバッグ装置に取り込みプログラムの動作を解析するために用いられる。しかし、マイクロプロセッサの高速化によりトレース情報は増大し、トレース情報をマイクロプロセッサ外部に取り出すことが困難となっている。マイクロプロセッサ外部にトレース情報を取り出すためには、マイクロプロセッサにピンを設けなければならず、その本数の増加や出力回路の周波数の向上によりトレース情報出力帯域を向上させることができるが、ピン本数の増加や出力回路の周波数向上はマイクロプロセッサのコストの増大につながるために、トレース情報出力帯域の向上には限界がある。また、マイクロプロセッサ内部のメモリにトレース情報を蓄積することが行われるが、そのメモリ容量にも制限がある。プログラムの処理の流れを再現するためのトレース情報出力の一例に、分岐トレースという技術が知られている（たとえば、特許文献１）。この手法では、プログラムの実行過程において、分岐が発生した場合に、分岐先アドレスや分岐元アドレスを外部に出力する。この方法によれば、全ての命令実行過程を出力することなくプログラムの実行フローを再現することが可能であるため、トレース情報の出力量を抑制することが可能である。この方法においては、プログラム中のループ部分については、同一の分岐トレースの情報が何度も出力されるため、特許文献２では、命令がループ内を実行中であることを検出し、トレース出力を抑制するループ判定回路を備え、トレース情報を削減し、ループ外の命令を実行することを検出し、トレース情報採取の開始を制御する。また、特許文献３では、ループを検出し、ループ部分の途中の繰り返し部分を削除し、最後のループだけを残すように制御することが示されている。
【０００３】
【特許文献１】特開平８−１８５３３６号公報
【特許文献２】特開２００１−５６８９号公報
【特許文献３】特開平１１−２１９２９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述したように、トレース情報を取得するための出力帯域に制限があるために、高速化するＣＰＵが出力するトレース出力をもれなく取得することが困難となっている。プログラムの実行フローを再現するため、プログラムアドレス順に実行が進む場合はトレース出力を行わず、分岐命令などで不連続なアドレスに実行が遷移するたびにトレース情報を出力する分岐トレース法は、トレース情報を抑制する上で一定の効果があるが、分岐トレース法でさえも、分岐命令が連続して発生した場合などには、トレース出力が不可能になるという課題がある。分岐命令が連続して発生する場合の原因が、プログラム中のループ処理であることに着目して、ループ内のトレース情報を出力しない特許文献２の従来技術や、最後のループについてのみトレース情報を出力する特許文献３の従来技術がある。しかしながら、ループ内のプログラムの実行フローもループの回ごとに異なる場合がある。たとえば、forループ内にif文などの条件文を含むプログラムでは、たとえ何回も繰り返されるループであっても、回ごとに実行フローが変化することがあるために、プログラムの実行フローを忠実に再現するためには、ループ内のトレース情報もすべて取得することが望まれる。また、プログラムの実行フローを再現するためのトレース情報と、データの更新などの度に所定のデータを出力するデータトレースを組み合わせて実施することもプログラムのデバッグにおいて要求される。この場合も、ループ内のデータ更新の情報を取得したいという要求が高い。以上のように、ループ内のトレース情報についても欠落なく取得するという課題に対しては、従来技術では考慮されていない。
【０００５】
本願の発明の目的は、トレース情報を限られた出力帯域のもとで、欠落することなく外部に取り出すための技術を提供することにある。
【０００６】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【０００８】
すなわち、所定のプログラムに従って演算処理を行うと共に、その演算処理についてのトレース情報を出力可能な演算装置と、上記演算装置から出力されたトレース情報を圧縮するためのトレース圧縮装置とを設ける。上記トレース圧縮装置は、トレース情報を記憶可能な記憶装置と、上記記憶装置に記憶されたトレース情報と新たに上記演算装置から出力されたトレース情報との比較を行う比較装置と、上記比較装置での比較結果に基づいて、新たに外部出力するトレース情報を圧縮するためのトレース情報圧縮制御装置とを含む。
【０００９】
上記の手段によれば、トレース情報の内容がすでに出力したトレース情報と同様であった場合に、すでに出力したトレース情報を指し示す情報が出力されることにより、トレース情報の圧縮が可能とされる。
【発明の効果】
【００１０】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１１】
すなわち、トレース情報の内容がすでに出力したトレース情報と同様であった場合に、すでに出力したトレース情報を指し示す情報を出力することにより、トレース情報を圧縮することが可能となる。これにより、トレース情報を限られた出力帯域のもとで、欠落することなく外部に取り出すための技術を提供することができる。
【発明を実施するための最良の形態】
【００１２】
１．代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１３】
〔１〕本発明の代表的な実施の形態に係る半導体集積回路（１００）は、所定のプログラムに従って演算処理を行うと共に、その演算処理についてのトレース情報を出力可能な演算装置（１０３）と、上記演算装置から出力されたトレース情報を圧縮するためのトレース圧縮装置（２００）とを含む。上記トレース圧縮装置は、上記演算装置から出力されたトレース情報を記憶可能な記憶装置（２３０）と、上記記憶装置に記憶されたトレース情報と新たに上記演算装置から出力されたトレース情報との比較を行う比較装置（２１０）と、上記比較装置での比較結果に基づいて、新たに外部出力するトレース情報を圧縮するためのトレース情報圧縮制御装置（２２０）とを含んで成る。
【００１４】
〔２〕上記トレース情報圧縮制御装置は、新たに上記演算装置から出力されたトレース情報が、上記記憶装置内のトレース情報と一致しない場合、そのトレース情報にインデックス番号を付加してから上記記憶装置に格納し、新たに上記演算装置から出力されたトレース情報が、上記記憶装置内のトレース情報と一致した場合には、新たに外部出力するトレース情報の内容を、上記記憶装置内の該当するトレース情報のインデックス番号に置き換えることによってトレース情報を圧縮する。
【００１５】
〔３〕上記トレース情報圧縮制御装置は、新たに上記演算装置から出力されたトレース情報が、上記記憶装置内のトレース情報と一致しない場合、そのトレース情報にインデックス番号を付加してから上記記憶装置に格納し、新たに上記演算装置から出力されたトレース情報が、上記記憶装置内のトレース情報と一致した場合には、新たに外部出力するトレース情報の内容を、該当するトレース情報の上記記憶装置内での格納順番の情報に置き換えることによってトレース情報を圧縮する。
【００１６】
〔４〕上記トレース情報圧縮制御装置は、上記トレース情報において圧縮対象とされる情報を設定可能なレジスタを含み、当該レジスタの設定情報に従って、圧縮対象とされる情報が決定される。
【００１７】
〔５〕上記記憶装置は、それぞれ上記演算装置から出力されたトレース情報を記憶可能な複数のレジスタを含み、上記比較装置は、それぞれ上記レジスタに記憶されたトレース情報と新たに上記演算装置から出力されたトレース情報との比較を可能とする複数の比較器とを含んで成る。
【００１８】
〔６〕上記構成の半導体集積回路と、上記半導体集積回路から出力された情報を復元可能なデバッグ装置（１０１）とを含んでデバッグシステムを構成することができる。
【００１９】
〔７〕上記デバッグ装置には、上記インデックス番号が指すトレース情報の内容に置き換えることによってトレース情報を復元するトレース復元装置（３００）を設けることができる。
【００２０】
〔８〕上記デバッグ装置は、上記記憶装置内での格納順番の情報に対応するトレース情報に置き換えることによってトレース情報を復元するトレース復元装置（３００）を設けることができる。
【００２１】
２．実施の形態の説明
次に、実施の形態について更に詳述する。
【００２２】
＜第１実施形態＞
図１には、本発明の第１実施形態にかかるデバッグシステムが示される。図１に示されるデバッグシステムは、マイクロプロセッサ（ＣＨＩＰ）１００と、このマイクロプロセッサ（ＣＨＩＰ）１００の外部に配置されたデバッグ装置（ＤＴ）１０１と、デバッグインタフェース（ＤＩ）１０２を含んで構成される。
【００２３】
マイクロプロセッサ（ＣＨＩＰ）１００は、特に制限されないが、演算装置（ＣＰＵ）１０３と、トレース出力装置（ＴＯ）１０４と、トレース圧縮装置（ＴＣ）２００とを含み、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。
【００２４】
デバッグ装置（ＤＴ）１０１は、トレース入力装置（ＴＩ）１０５と、トレース復元装置（ＴＲ）３００と、デバッグ実行手段（ＤＰ）１０６とを含んで構成される。
【００２５】
演算装置（ＣＰＵ）１０３は、所定のプログラムに従って演算処理を行い、命令実行状況やメモリアクセス状況などの情報をトレース情報として出力する機能を有する。トレース出力装置（ＴＯ）１０４は、トレース情報（ＴＤ）をデバッグインタフェース（ＤＩ）１０２上に規定された通信プロトコルに則って出力する機能を有する。トレース入力装置（ＴＩ）１０５は、デバッグインタフェース（ＤＩ）１０２上に規定された通信プロトコルに則って入力されるトレース情報（ＴＤ）を受け取る機能を有する。デバッグ実行手段（ＤＰ）１０６は、トレース復元手段（ＴＲ）３００にて復元されたトレース情報を基にＣＰＵの挙動を解析する機能を有する。
【００２６】
トレース圧縮装置（ＴＣ）２００は、演算装置（ＣＰＵ）１０３から取得したトレース情報を圧縮してトレース出力装置（ＴＯ）１０４に出力する機能を有する。
【００２７】
トレース復元手段（ＴＲ）３００は、トレース情報をトレース入力装置（ＴＩ）１０５から受け取り、圧縮前の状態に復元してデバッグ実行手段（ＤＰ）１０６に出力する機能を有する。
【００２８】
トレース圧縮装置（ＴＣ）２００は、比較装置（ＣＭＰ）２１０、トレース圧縮制御装置（ＴＣＣ）２２０、データレジスタ（ＤＲ）２３０から構成される。
【００２９】
比較装置（ＣＭＰ）２１０は、トレース圧縮装置（ＴＣ）２００に入力されたトレース情報と、データレジスタ（ＤＲ）２３０に格納されているトレース情報とを比較して、トレース圧縮制御装置（ＴＣＣ）２２０に出力する機能を有する。データレジスタ（ＤＲ）２３０に格納された複数個のトレース情報との比較を同時に実行することができるように、比較装置（ＣＭＰ）２１０内には複数個の比較器が複数用意されている。トレース圧縮制御装置（ＴＣＣ）２２０は、比較装置（ＣＭＰ）２１０から入力される比較結果を用いて、トレース圧縮装置（ＴＣ）２００に入力されたトレース情報に対し、（１）何も操作しない、（２）０番〜Ｎ−１番までのインデックス番号を付加する、（３）インデックス番号を用いて圧縮する、の３つの操作のいずれかを実行して、トレース出力装置（ＴＯ）１０４に出力する機能を有する。また、データレジスタ（ＤＲ）２０３のレジスタ＃０〜レジスタ＃Ｎ−１に対するデータの読み書きを制御する機能を有する。上記（２）のインデックス番号を付加する操作を実行した場合は、トレース情報を、データレジスタ（ＤＲ）２０３内のレジスタ＃０〜レジスタＮ−１のＮ本のレジスタのうち、付加したインデックス番号と同じ番号をもつレジスタに格納する機能を有する。この機能により、レジスタ番号はインデックス番号との対応がとられる。
【００３０】
データレジスタ（ＤＲ）２３０は、レジスタ＃０〜レジスタ＃Ｎ−１のＮ本のレジスタを持ち、トレース圧縮制御装置（ＴＣＣ）２２０からのデータ読み書きの制御に従って、トレース圧縮制御装置（ＴＣＣ）２２０に入力されたトレース情報をレジスタに記憶する機能を有する。また、レジスタ＃０〜レジスタ＃Ｎ−１の値を比較装置（ＣＭＰ）２１０に出力する機能を有する。
【００３１】
図２には、上記トレース圧縮制御装置（ＴＣＣ）２２０の詳細な構成例が示される。
【００３２】
トレース圧縮制御装置（ＴＣＣ）２２０は、一致検出装置（ＨＤ）２２１、インデックス付加装置（ＩＡ）２２２、圧縮装置（ＣＵ）２２３、インデックスレジスタ（ＩＲ）２２４、セレクタ（ＳＥＬ）２２５、圧縮制御装置（ＣＣ）２２６を含んで構成される。一致検出装置（ＨＤ）２２１は、比較装置（ＣＭＰ）２１０から比較結果を受信し、一致検出信号（ＨＳ）ならびに一致レジスタ番号（ＨＮ）の二つの信号を生成する機能を有する。インデックス付加装置（ＩＡ）２２２は、入力されたトレース情報（ＴＤ）に対して、インデックスレジスタ（ＩＲ）２２４から入力されるインデックス番号を付加し、インデックス番号付トレース情報（ＩＴＤ）を生成し、セレクタ（ＳＥＬ）２２５に出力する機能を有する。圧縮装置（ＣＵ）２２３は、入力されたトレース情報を圧縮してセレクタ（ＳＥＬ）２２５に出力する機能を有する。圧縮の際に必要となる情報として、一致検出装置（ＨＤ）２２２から一致検出信号（ＨＳ）と一致レジスタ番号（ＨＮ）の二つの信号が入力される。一致検出信号（ＨＳ）が一致を示している場合、一致レジスタ番号（ＨＮ）は入力されたトレース情報に対応するインデックス番号と等しい。よって、入力されたトレース情報（ＴＤ）に対してインデックス番号（＝一致レジスタ番号（ＨＮ））を用いてトレース情報の圧縮を行い、圧縮トレース情報（ＣＴＤ）を生成してセレクタ（ＳＥＬ）２２５に出力する。一致検出信号（ＨＳ）が不一致を示している場合は、トレース情報の圧縮は行われない。
【００３３】
図３には、トレース情報（ＴＤ：Ｔｒａｃｅ  Ｄａｔａ）、インデックス番号付トレース情報（ＩＴＤ）、圧縮トレース情報（ＣＴＤ）の関係が示される。
【００３４】
インデックスレジスタ（ＩＲ）２２４は、インデックス付加装置（ＩＡ）２２２にて付加するインデックス（Ｉｎｄｅｘ）の値を保持し、インデックス付加装置（ＩＡ）に出力する機能を有する。セレクタ（ＳＥＬ）２２５は、(1)トレース圧縮制御装置（ＴＣＣ）２２０に入力されたトレース情報（ＴＤ）、（２）インデックス付加装置（ＩＡ）２２２にてインデックス番号を付加されたインデックス番号付トレース情報（ＩＴＤ）、（３）圧縮装置（ＣＵ）２２３にてインデックス番号を用いて圧縮された圧縮トレース情報（ＣＴＤ）の３つのうちいずれかを、トレース出力装置（ＴＯ）１０４とデータレジスタ（ＤＲ）２３０の２つに出力する機能を有する。両者の出力は独立していて、各々別々の値を出力する機能を有する。出力信号および出力先の選択は、圧縮制御装置（ＣＣ）２２６から入力される信号によって制御される。圧縮制御装置（ＣＣ）２２６には、トレース圧縮制御装置（ＴＣＣ）２２０に入力されたトレース情報（ＴＤ）、一致検出装置（ＨＤ）２２２が出力した一致検出信号（ＨＳ）と一致レジスタ番号（ＨＮ）、が入力される。インデックスレジスタ（ＩＲ）２２４の制御、セレクタ（ＳＥＬ）２２５の制御、データレジスタ（ＤＲ）２３０の読み書きの制御、を行う機能を有する。
【００３５】
トレース復元装置（ＴＲ）３００は、トレース復元制御手段（ＴＲＣ）３１０、記憶手段（ＭＵ）３２０から構成される。トレース復元制御手段（ＴＲＣ）３１０は、記憶手段（ＭＵ）３２０の制御を行い、記憶手段（ＭＵ）３２０のインデックス番号＃１〜＃Ｎ−１との間でトレース情報を読み書きを行う機能を有する。またトレース復元装置（ＴＲ）３００に入力されたトレース情報に対し、（１）何も操作しない、（２）インデックス番号付トレース情報（ＩＴＤ）の場合は、インデックス番号を除去して元のトレース情報（ＴＤ）を復元する、（３）インデックス番号によって圧縮された圧縮トレース情報（ＣＴＤ）の場合は、圧縮トレース情報（ＣＴＤ）から元のトレース情報（ＴＤ）を復元する、の３つの操作のいずれかを実行して、デバッグ実行部（ＤＰ）１０６に出力する機能を有する。上記（２）に示したインデックス番号を除去する操作を実行した場合は、除去後のトレース情報（ＴＤ）を記憶手段（ＭＵ）３２０のインデックス番号に対応する記憶領域に保存する機能を有する。（３）に示した圧縮トレース情報（ＣＴＤ）から元のトレース情報（ＴＤ）を復元する操作を実行した場合は、圧縮トレース情報（ＣＴＤ）内に記録されているインデックス番号を読み取り、記憶手段（ＭＵ）３２０のインデックス番号に対応する記憶領域からトレース情報を読み出す機能を有する。記憶手段（ＭＵ）３２０は、＃０〜＃Ｎ−１のＮ個の記憶領域を持ち、その各々にトレース情報を読み書きできる機能を有する。トレース復元制御手段（ＴＲＣ）３１０からのデータ読み書きの制御に従って、トレース圧縮復元装置（ＴＣＣ）２２０との間でトレース情報の読み書きを行う機能を有する。
【００３６】
図４には、上記トレース復元制御手段（ＴＲＣ）３１０の詳細な構成例が示される。
【００３７】
トレース情報復元装置（ＴＲＣ）３１０は、インデックス除去手段（ＩＥ）３１１、復元手段（ＲＵ）３１２、セレクタ（ＳＥＬ）３１３、復元制御手段（ＲＣ）３１４、によって構成される。
【００３８】
インデックス除去手段（ＩＥ）３１１は、トレース復元制御手段（ＴＲＣ）に入力されたインデックス付トレース情報（ＩＴＤ）に対して、インデックスを除去してトレース情報（ＴＤ）を復元し、セレクタ（ＳＥＬ）３１３および復元制御手段（ＲＣ）に出力する機能を有する。復元手段（ＲＵ）３１２は、トレース復元制御手段（ＴＲＣ）に入力された圧縮トレース情報（ＣＴＤ）から圧縮に使用したインデックス番号を読み取って復元制御手段（ＲＣ）３１４に出力する機能を有する。復元制御手段（ＲＣ）３１４の制御によって、インデックス番号に対応する圧縮前のトレース情報（ＴＤ）が記憶手段（ＭＵ）３２０から復元手段（ＲＵ）３１２に入力される。この圧縮前のトレース情報（ＴＤ）をセレクタ（ＳＥＬ）３１３に出力する機能を有する。セレクタ（ＳＥＬ）３１３は、（１）トレース復元制御手段（ＴＲＣ）３１０に入力されたトレース情報（ＴＤ）、（２）インデックス除去手段（ＩＥ）３１１によってインデックスを除去して復元されたトレース情報（ＴＤ）、（３）復元手段（ＲＵ）３１２によって圧縮トレース情報（ＩＴＤ）を復元して得られたトレース情報（ＴＤ）、の３つのうちいずれかを、デバッグ実行部（ＤＰ）１０６に出力する機能を有する。出力信号の選択は、復元制御装置（ＲＣ）３１４から入力される信号によって制御される。
【００３９】
復元制御装置（ＲＣ）３１４には、インデックス除去手段（ＩＥ）３１１によってインデックスを除去したトレース情報（ＴＤ）と、復元手段（ＲＵ）３１２によって読み取られたインデックス番号が入力され、この二つの入力に従ってセレクタ（ＳＥＬ）３１３の制御と、記憶手段（ＭＵ）３２０の読み書きの制御とを行う機能を有する。
【００４０】
上記の例によれば、以下の作用効果を得ることができる。
【００４１】
（１）トレース情報の内容がすでに出力したトレース情報と同様であった場合に、すでに出力したトレース情報を指し示す情報を出力することにより、トレース情報を圧縮することが可能となる。これにより、たとえば、分岐トレースでのループのような同一のトレース情報やデータトレースにおいてデータが変化しない場合のトレース情報を大幅に圧縮することが可能となる。さらに、多重ループやループ内に条件分岐が存在するような場合でもトレース情報を欠落なく効率的に圧縮可能である。
【００４２】
（２）デバッグ装置（ＤＴ）１０１によれば、マイクロプロセッサ（ＣＨＩＰ）１００によって圧縮されたトレース情報を元の情報に復元することができる。これにより、デバッグ装置（ＤＴ）１０１において、良好なデバッグを行うことができる。
【００４３】
（３）上記（１），（２）の作用効果により、携帯電話、デジタル家電、自動車の制御システムなどのマイクロプロセッサ応用システムの開発期間の短縮を図ることができる。
【００４４】
＜第２実施形態＞
次に、本発明の第２実施形態について図５〜図７を参照しながら説明する。
【００４５】
第１実施形態では、トレース情報の圧縮および復元にインデックス番号を使用し、圧縮前のトレース情報と圧縮後のトレース情報で同一のインデックス番号を使用することで、圧縮前のトレース情報と圧縮後のトレース情報を関連付けていた。
【００４６】
第２実施形態は、トレース情報の圧縮および復元にインデックス番号を使用しない。インデックス番号の代わりに、過去に出力したトレース情報の中で何番目に新しいトレース情報か、という情報を使用する。
【００４７】
第２実施形態の全体の構成図は、図１の第一実施形態の全体の構成図と同一である。図１で示したうち、図２で詳細に説明したトレース圧縮制御装置（ＴＣＣ）２２０の内部構成と、図４で詳細に説明したトレース復元制御手段（ＴＲＣ）３１０の内部構成に差異が存在する。
【００４８】
図５には、第２実施形態におけるトレース圧縮制御装置（ＴＣＣ）２２０の詳細が示され、図７には、トレース復元制御手段（ＴＲＣ）３１０の詳細が示される。
【００４９】
第２実施形態における図５に示すトレース圧縮制御装置（ＴＣＣ）２２０は、第一実施形態における図２に示すトレース圧縮制御装置（ＴＣＣ）２００と比較して、インデックス付加装置（ＩＡ）２２２およびインデックスレジスタ（ＩＲ）２２４を削除し、変わりに最新番号レジスタ（ＮＲ）２２７および順位決定装置（ＯＤ）２２８を追加したものである。
【００５０】
第２実施形態の圧縮制御装置（ＣＣ）２２６は、入力されたトレース情報をデータレジスタ（ＤＲ）２３０に保存するときに、データレジスタ（ＤＲ）２３０内の＃０〜＃Ｎ−１までのＮ本のレジスタに、＃０から＃１、＃２、…と順番に保存し、＃Ｎ−１まで使ったら次は＃０を使用する機能を有する。また現在最新のトレース情報がＮ本あるレジスタのうち何番のレジスタに保存されているかの情報を、最新番号レジスタ（ＮＲ）２２７に記録する機能を有する。例えばＮＲの値が５の場合、レジスタ＃５に最新のトレース情報、レジスタ＃４に二番目に新しいトレース情報、レジスタ＃３に３番目に新しい情報が保存されている。レジスタ＃２以降も同様である。
【００５１】
第２実施形態の最新番号レジスタ（ＮＲ）２２７は、現在最新のトレース情報がＮ本あるレジスタのうち何番のレジスタに保存されているかの情報を保存し、順位決定装置（ＯＤ）２２８に出力する機能を有する。順位決定装置（ＯＤ）２２８は、最新番号レジスタ（ＮＲ）２２７の値と、一致レジスタ番号（ＨＮ）の値から、一致したレジスタに保存されているトレース情報が何番目に新しいトレース情報なのかを計算し、その番号を順位番号（ＯＮ）として圧縮装置（ＣＵ）２２３に出力する機能を有する。圧縮装置（ＣＵ）２２３は、入力されたトレース情報を圧縮してセレクタ（ＳＥＬ）２２５に出力する機能を有する。圧縮の際に必要となる情報として、一致検出装置（ＨＤ）２２２からの一致検出信号（ＨＳ）と、順位決定装置（ＯＤ）からの順位番号（ＯＮ）の二つの信号が入力される。一致検出信号（ＨＳ）が一致を示している場合、順位番号（ＯＮ）は入力されたトレース情報が何番目に新しいトレース情報であるかを示している。よって、入力されたトレース情報（ＴＤ）に対して順位番号（ＯＮ）を用いてトレース情報の圧縮を行い、順位圧縮トレース情報（ＯＴＤ）を生成してセレクタ（ＳＥＬ）２２５に出力する。一致検出信号（ＨＳ）が不一致を示している場合は、トレース情報の圧縮は行われない。
【００５２】
図６には、トレース情報（ＴＤ：Ｔｒａｅ  Ｄａｔａ）と順位圧縮トレース情報（ＯＴＤ：Ｏｒｄｅｒ）の関係が示される。
【００５３】
第２実施形態における図７に示すトレース復元制御手段（ＴＲＣ）３１０は、第一実施形態における図４に示すトレース復元制御手段（ＴＲＣ）３１０と比較して、インデックス除去手段（ＩＥ）３１１を削除し、変わりに最新番号記憶手段（ＮＭ）３１５および領域番号決定装置（ＲＤ）３１５を追加したものである。
【００５４】
第２実施形態の復元手段（ＲＵ）３１２は、トレース復元制御手段（ＴＲＣ）３１０に入力された順位圧縮トレース情報（ＯＴＤ）から圧縮に使用した順位番号（ＯＮ）を読み取って復元制御手段（ＲＣ）３１４に出力する機能を有する。復元制御手段（ＲＣ）３１４、最新番号記憶手段（ＮＭ）３１５、領域番号決定装置（ＲＤ）３１６によって、圧縮した順位番号（ＯＮ）に対応する圧縮前のトレース情報（ＴＤ）が保存されている記憶領域の番号が計算され、計算した記憶領域番号に対応する圧縮前のトレース情報（ＴＤ）が記憶手段（ＭＵ）３２０から復元手段（ＲＵ）３１２に入力される。この圧縮前のトレース情報（ＴＤ）をセレクタ３１３に出力する機能を有する。
【００５５】
復元制御装置（ＲＣ）３１４は、復元手段（ＲＵ）３１２から順位番号（ＯＮ）が入力され、この入力に従って、セレクタ（ＳＥＬ）３１３と最新番号記憶手段（ＮＭ）３１５の制御を行う。また、順位番号（ＯＮ）を記憶手段（ＭＵ）３２０と領域番号決定手段（ＯＤ）３１６に出力する。
【００５６】
第２実施形態の最新番号記憶手段（ＮＭ）３１５は、現在最新のトレース情報がＮ個ある記憶領域のうち何番の記憶領域に保存されているかの情報を保存し、領域番号決定手段（ＲＤ）３１６に出力する機能を有する。
【００５７】
第２実施形態の領域番号決定手段（ＯＤ）３１６は、最新番号記憶手段（ＮＭ）３１５の値と、復元手段（ＲＵ）３１２から入力された順位番号（ＯＮ）の２つの値から、順位番号（ＯＮ）に対応する圧縮前のトレース情報（ＴＤ）が記憶手段（ＭＵ）３２０のどの領域番号に保存されているのかを計算し、記憶手段（ＭＵ）３２０に出力する機能を有する。
【００５８】
上記第１、第２の実施形態において、トレース情報の全ビットを一致/不一致検出対象として説明しているが、トレース情報の一部を一致/不一致検出対象とすることも可能である。また、トレース情報についても、その情報の一部のみを圧縮対象とすることができる。例えば、トレース情報のうち、アドレスのみを圧縮対象としたり、データのみを圧縮対象とすることができる。圧縮対象の切り替えは、トレース圧縮制御装置（ＴＣＣ）２２０内に設けられた適宜のレジスタに設定されたフラグによって行うように構成することができる。
【００５９】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００６０】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロコンピュータに適用した場合について説明したが、本発明はそれに限定されるものではなく、半導体集積回路に適用することができる。
【００６１】
本発明は、少なくともトレース情報を出力可能な演算装置を含むことを条件に適用することができる。
【図面の簡単な説明】
【００６２】
【図１】本発明の第１実施形態におけるデバッグシステムの全体的な構成例ブロック図である。
【図２】上記第１実施形態におけるトレース圧縮制御装置の構成例ブロック図である。
【図３】上記第１実施形態におけるトレース情報の説明図である。
【図４】上記第１実施形態におけるトレース復元制御手段の構成例ブロック図である。
【図５】本発明の第２実施形態におけるトレース圧縮制御装置の構成例ブロック図である。
【図６】上記第２実施形態におけるトレース情報の説明図である。
【図７】上記第２実施形態におけるトレース復元制御手段の構成例ブロック図である。
【符号の説明】
【００６３】
１００  マイクロプロセッサ（ＣＨＩＰ）
１０１  デバッグ装置（ＤＴ）
１０２  デバッグインタフェース（ＤＩ）
１０３  演算装置（ＣＰＵ）
１０６  デバッグ実行部（ＤＰ）
１０４  トレース出力装置（ＴＯ）
１０５  トレース入力装置（ＴＩ）
２００  トレース圧縮装置（ＴＣ）
３００  トレース復元手段（ＴＲ）
２２０  トレース圧縮制御装置（ＴＣＣ）
３１０  トレース復元制御手段（ＴＲＣ）
２１０  比較装置（ＣＭＰ）
２２１  一致検出装置（ＨＤ）
２２２  インデックス付加装置（ＩＡ）
３１１  インデックス除去手段（ＩＥ）
２２４  インデックスレジスタ（ＩＲ）
２２３  圧縮装置（ＣＵ）
ＲＵ  復元手段
２２６  圧縮制御装置（ＣＣ）
３１４  復元制御手段（ＲＣ）
２３０  データレジスタ（ＤＲ）
３２０  記憶手段（ＭＵ）
２２５，３１３  セレクタ（ＳＥＬ）
２２７  最新番号レジスタ（ＮＲ）
３１５  最新番号記憶手段（ＮＭ）
２２８  順位決定手段（ＯＤ）
３１６  レジスタ番号決定手段（ＲＤ）
【図１】
2009042815.tif 000003
【図２】
2009042815.tif 000004
【図３】
2009042815.tif 000005
【図４】
2009042815.tif 000006
【図５】
2009042815.tif 000007
【図６】
2009042815.tif 000008
【図７】
2009042815.tif 000009