(57)【要約】【課題】複数種類の内部バスを外部でモニタ可能であって夫々モニタしているバスを識別可能なデバッグ支援機能を有するデータプロセッサを提供する。【解決手段】半導体チップにＣＰＵ（２）、デバッグ支援モジュール（９）及びその他の回路モジュール（３，４，５，６）が搭載される。デバッグ支援モジュールは、ＣＰＵ等の動作に利用される複数の情報伝達経路（ＩＡＢ，ＩＤＢ，ＸＡＢ，ＸＤＢ，ＹＡＢ，ＹＤＢ，ＤＡＢ，ＤＤＢ）の中からトレース条件に従って情報伝達経路を選択し、選択した情報伝達経路からトレース条件に従って得られるトレース情報と共に当該情報の属性情報をバッファ回路（２１）に保持して半導体チップの外部に直列的に出力する。複数種類の内部バスを外部でモニタ可能であって夫々モニタしているバスを識別可能である。トレース情報とその属性情報は直列的に同一外部端子から出力される。【選択図】図１
2006155671.tif 000002
【特許請求の範囲】
【請求項１】
半導体チップにＣＰＵ、デバッグ支援モジュール及びその他の回路モジュールが搭載され、前記デバッグ支援モジュールは、前記ＣＰＵ又はその他の回路モジュールの動作に利用される複数の情報伝達経路の中からトレース条件に従って情報伝達経路を選択し、選択した情報伝達経路からトレース条件に従って得られるトレース情報と共に当該情報の属性情報をバッファ回路に保持し、前記バッファ回路に保持されたトレース情報とその属性情報とを所定のフォーマットで前記半導体チップの外部に直列的に出力可能にするものであることを特徴とするデータプロセッサ。
【請求項２】
前記属性情報は対応するトレース情報が伝達された情報伝達経路の識別情報であることを特徴とする請求項１記載のデータプロセッサ。
【請求項３】
前記属性情報は対応するトレース情報を情報伝達経路に出現させる動作がマルチＣＰＵの何れのＣＰＵの動作に基づくかを識別可能にする識別情報であることを特徴とする請求項１記載のデータプロセッサ。
【請求項４】
リードアクセスをトレース条件とするとき、前記トレース情報はリードアクセスに対するアドレス情報及びデータ情報であり、前記属性情報は、アクセス種別がリードアクセスであることを示す情報、情報伝達経路の種別を示すバス識別情報、及びトレースすべき情報のサイズを示すサイズ情報であることを特徴とする請求項１記載のデータプロセッサ。
【請求項５】
ライトアクセスをトレース条件とするとき、前記トレース情報はライトアクセスに対するアドレス情報及びデータ情報であり、前記属性情報は、アクセス種別がライトアクセスであることを示す情報、情報伝達経路の種別を示すバス識別情報、及びトレースすべき情報のサイズを示すサイズ情報であることを特徴とする請求項１記載のデータプロセッサ。
【請求項６】
ＣＰＵによる命令実行の分岐をトレース条件とするとき、トレース情報は分岐元アドレス情報及び分岐先アドレス情報であり、前記属性情報は分岐時のトレースであることを示す情報、トレースすべき分岐元アドレス情報のサイズを示す情報、及びトレースすべき分岐先アドレス情報のサイズを示す情報であることを特徴とする請求項１記載のデータプロセッサ
【請求項７】
ＣＰＵによる命令実行の分岐をトレース条件とするとき、トレース情報は分岐元アドレス情報であり、前記属性情報は分岐時のトレースであることを示す情報及びトレースすべき分岐元アドレス情報のサイズを示す情報であることを特徴とする請求項１記載のデータプロセッサ。
【請求項８】
ＣＰＵによる命令実行の分岐をトレース条件とするとき、トレース情報は分岐先アドレス情報であり、前記属性情報は分岐時のトレースであることを示す情報、及びトレースすべき分岐先アドレス情報のサイズを示す情報であることを特徴とする請求項１記載のデータプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路化されたデータプロセッサ、特にデータプロセッサにおけるデバッグ支援機能に係り、例えばデータプロセッサに内蔵された複数種類の内部バスに対するトレースに適用して有効な技術に関する。
【背景技術】
【０００２】
マイクロコンピュータのようなデータプロセッサはＣＰＵと共にその他の回路モジュールを搭載するが、高機能化の要請により内蔵回路モジュールが増え、それに従って内部バスの構成も複雑化している。データプロセッサを用いるシステムのデバッグでは、ターゲットプログラムを実行しながらデータプロセッサ内部の状態をモニタ可能にしてデバッグに供することが必要になるが、データプロセッサの回路構成やバス構成が複雑化している状況では、ターゲットプログラムを実行しながら各種内部バスの内部情報をモニタし、さらにリアルタイム若しくはこれに近い状態でそれらバス情報をモニタするのが困難になってくることが本発明者に見出された。
【０００３】
データプロセッサにおける内部のデータトレース機能に着目した文献として、マルチプロセッサのトレース方法について記載された特開平１１−２１９３０３号公報、特開平３−９０９５５号公報がある。前者の文献には複数バスに対してモニタを行う観点、トレース情報にプロセッサの識別情報を付加する観点について考慮さていない。後者の文献は、バス情報がどのＣＰＵからのものであるかを示す識別情報を利用する観点が例示されている。
【０００４】
【特許文献１】特開平１１−２１９３０３号公報
【特許文献２】特開平３−９０９５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、前記後者の文献においても複数バスに対するモニタに関しては考慮されていない。要するに、複数バスのデータを並列的にモニタ可能にし、夫々モニタしているバスを識別可能にする機能について着目されていない。また、当該後者の文献においてバス情報と識別情報は夫々専用端子から並列的に出力され、それら情報を１チップのデータプロセッサから出力する場合を想定すると、外部端子数の制約を受けて実現不可能な場合もあることが予想される。
【０００６】
本発明の目的は、複数種類の内部バスを外部でモニタ可能であって夫々モニタしているバスを識別可能なデバッグ支援機能を有するデータプロセッサを提供することにある。
【０００７】
本発明の別の目的は、複数種類の内部バスを並列的に外部でモニタ可能なデバッグ支援機能を有するデータプロセッサを提供することにある。
【０００８】
本発明のその他の目的は、トレースすべき情報と当該情報が伝達された経路を識別可能にする識別情報とを同一外部端子から出力可能なデバッグ支援機能を有するデータプロセッサを提供することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
〔１〕本発明の第１の観点によるデータプロセッサは、半導体チップにＣＰＵ、デバッグ支援モジュール及びその他の回路モジュールが搭載される。前記デバッグ支援モジュールは、前記ＣＰＵ又はその他の回路モジュールの動作に利用される複数の情報伝達経路の中からトレース条件に従って情報伝達経路を選択し、選択した情報伝達経路からトレース条件に従って得られるトレース情報と共に当該情報の属性情報をバッファ回路に保持し、前記バッファ回路に保持されたトレース情報とその属性情報とを所定のフォーマットで前記半導体チップの外部に直列的に出力可能にする。
【００１２】
前記属性情報は対応するトレース情報が伝達された情報伝達経路、例えばバスの識別情報である。また、前記属性情報は対応するトレース情報を情報伝達経路に出現させる動作がマルチＣＰＵの何れのＣＰＵの動作に基づくかを識別可能にするＣＰＵ識別情報である。
【００１３】
上記より、データプロセッサの外部ではトレースすべき情報とその属性情報とを対にしてモニタ可能になるから、複数種類の内部バスを外部でモニタ可能であって夫々モニタしているバスを識別可能である。また、トレース情報とその属性情報は直列的に外部に出力されるから、それら情報を同一外部端子から出力でき、パッケージの外部端子数の制約から当該デバッグ支援機能が実装不可能になる事態を低減することができる。
【００１４】
〔２〕上記データプロセッサにおけるデバッグ支援機能の具体的な態様として、リードアクセスをトレース条件とするとき、前記トレース情報がリードアクセスに対するアドレス情報及びデータ情報であるなら、前記属性情報は、アクセス種別がリードアクセスであることを示す情報、情報伝達経路の種別を示すバス識別情報、及びトレースすべき情報のサイズを示すサイズ情報としてよい。
【００１５】
また、ライトアクセスをトレース条件とするとき、前記トレース情報がライトアクセスに対するアドレス情報及びデータ情報であるなら、前記属性情報は、アクセス種別がライトアクセスであることを示す情報、情報伝達経路の種別を示すバス識別情報、及びトレースすべき情報のサイズを示すサイズ情報としてよい。
【００１６】
また、ＣＰＵによる命令実行の分岐（例えばＣＰＵによる分岐命令の実行、割り込み、或いは例外処理の発生による分岐）をトレース条件とするとき、トレース情報が分岐元アドレス情報及び分岐先アドレス情報であるなら、前記属性情報は分岐時のトレースであることを示す情報、トレースすべき分岐元アドレス情報のサイズを示す情報、及びトレースすべき分岐先アドレス情報のサイズを示す情報としてよい。
【００１７】
ＣＰＵによる命令実行の分岐をトレース条件とするとき、トレース情報が分岐元アドレス情報であるなら、前記属性情報は分岐時のトレースであることを示す情報及びトレースすべき分岐元アドレス情報のサイズを示す情報としてよい。同様に、そのとき、トレース情報が分岐先アドレス情報であるなら、前記属性情報は分岐時のトレースであることを示す情報、及びトレースすべき分岐先アドレス情報のサイズを示す情報としてよい。
【００１８】
〔３〕本発明の第２の観点によるデータプロセッサは、半導体チップにＣＰＵ、デバッグ支援モジュール及びその他の回路モジュールが搭載される。前記デバッグ支援モジュールは、前記ＣＰＵ又はその他の回路モジュールの動作に利用される複数の情報伝達経路の中からトレース条件に従って情報伝達経路を選択し、選択した情報伝達経路からトレース条件に従ってトレース情報を取得する選択回路と、前記選択回路で選択されたトレース情報と共に当該情報の属性情報を保持するバッファ回路と、前記バッファ回路に保持されたトレース情報とその属性情報とを所定のフォーマットで前記半導体チップの外部に直列的に出力可能にする出力回路と、前記ＣＰＵにより指定されたトレース条件と前記ＣＰＵ及びその他の回路モジュールによる動作状態とに基づいて前記選択回路、バッファ回路及び出力回路の動作を制御する制御回路と、を有して成る。
【００１９】
この観点によるデータプロセッサにおいても、外部ではトレース情報とその属性情報とを対にしてモニタ可能になるから、複数種類の内部バスを外部でモニタ可能であって夫々モニタしているバスを識別可能であり、また、トレースすべき情報とその属性情報とを同一外部端子から出力できる。
【００２０】
〔４〕第２の観点のデータプロセッサにおける前記バッファ回路をＦＩＦＯバッファ回路とすれば情報記憶にＣＰＵのアドレス空間を考慮しなくて済む。このとき、前記制御回路は、ＦＩＦＯバッファ回路のフル状態によってトレースすべき情報がバッファ回路に保持されずに失われたことを示す情報コードを前記出力回路から半導体チップの外部に出力させてよい。これにより、トレースすべき情報の欠落を外部で容易に把握する事が可能になる。トレースすべき情報の欠落を抑制するには、制御回路はＦＩＦＯバッファ回路のフル状態に応答して新たなバスアクセス動作をバスサイクル単位で一時的に停止させる指示を与えるようにすればよい。要するにＦＩＦＯバッファ回路に記憶領域が空くまでＣＰＵやＤＭＡＣによるバスアクセスをストールさせればよい。
【００２１】
〔５〕第２の観点のデータプロセッサにおける前記選択回路には、例えば複数の情報伝達経路の中からトレース情報を得るための情報伝達経路を選択すると共に選択した情報伝達経路の情報をバスサイクル単位で保持する第１セレクタと、複数の情報伝達経路の中からトレース情報を得るための情報伝達経路を選択すると共に選択した情報伝達経路の情報をバスサイクル単位で保持する第２セレクタと、現在実行中の命令アドレスの直前の命令の命令アドレスを保持する命令アドレスバッファと、前記第１セレクタ、前記第２セレクタ及び前記命令アドレスバッファの出力から一つを選択して前記バッファ回路に与える第３セレクタとを有する構成を採用する。このとき、前記制御回路は、第１及び第２セレクタにトレース条件で指定された情報伝達経路を選択させ、第３セレクタにはトレース条件で指定されたアクセス態様の出現に応じて前記第１セレクタ、前記第２セレクタ又は前記命令アドレスバッファの出力を選択させるものである。
【００２２】
これにより、前記第１セレクタ及び第２セレクタで選択される複数の内部バスの状態を並列的にモニタ可能にすることができる。
【００２３】
並列モニタ可能な複数のバス上でトレース対象とするアクセス態様が同一バスサイクルで出現したときに対処するには、前記制御回路は、前記第１セレクタ及び第２セレクタで選択される夫々の情報伝達経路においてトレース条件で指定されたアクセス態様が同一バスサイクルで出現したとき、ＣＰＵやＤＭＡＣによる新たなバスアクセス動作を一時停止させ、夫々のアクセス態様で双方の情報伝達経路に出現して前記第１及び第２セレクタに保持された情報を第３セレクタを介して直列的にバッファ回路に格納すればよい。
【００２４】
〔６〕第２の観点のデータプロセッサにおける更に具体的な態様として、前記他の回路モジュールとしてＤＳＰ、Ｘメモリ、Ｙメモリ、ＤＭＡＣ及びバスステートコントローラを含み、前記情報伝達経路としてそれぞれアドレス及びデータを伝達するＩバス、Ｘバス、Ｙバス及びＤバスと、バスアクセス制御情報を伝達するＩＣバス及びＤＣバスを有するとき、前記ＣＰＵはＩバス、Ｘバス、Ｙバスにアドレスを出力可能であり、Ｉバスを介してデータ入出力可能であり、ＩＣバスにバスアクセス制御情報を出力可能であり、前記ＤＳＰはＩバス、Ｘバス、Ｙバスを介してデータ入出力可能であり、ＩＣバス及びＤＣバスを介してバスアクセス制御情報を入力可能であり、前記Ｘメモリは、Ｉバス、Ｘバス及びＤバスからアドレス入力可能であり、Ｉバス、Ｘバス及びＤバスとの間でデータ入出力入力可能であり、前記Ｙメモリは、Ｉバス、Ｙバス及びＤバスからアドレス入力可能であり、Ｉバス、Ｙバス及びＤバスとの間でデータ入出力入力可能であり、ＩＣバス及びＤＣバスを介してバスアクセス制御情報を入力可能であり、前記ＤＭＡＣはＩバスを介して転送制御条件の設定が可能にされ、Ｄバスにアドレス出力とデータ入出力可能であり、前記バスステートコントローラはＤＭＡＣによるアクセス制御のためにＤＣバスにバスアクセス制御情報を出力可能である。
【００２５】
このとき、前記制御回路には、前記ＩＣバス及びＤＣバスに接続され、前記ＩＣバス及びＤＣバスを介して供給されるアクセス制御情報に基づいてトレース条件に一致するアクセス動作の発生を判定し、トレース条件に一致するアクセス動作に利用されるバスを前記選択回路に選択させればよい。
【発明の効果】
【００２６】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００２７】
すなわち、データプロセッサの外部ではトレースすべき情報とその属性情報とを対にしてモニタ可能になるから、複数種類の内部バスのような情報伝達経路を外部でモニタ可能であって夫々モニタしている情報伝達経路を識別可能である。また、トレース情報とその属性情報は直列的に外部に出力されるから、それら情報を同一外部端子から出力でき、パッケージの外部端子数の制約から当該デバッグ支援機能が実装不可能になる事態を低減することができる。
【００２８】
また、複数の情報伝達経路の中からトレース条件に従って複数の情報伝達経路を選択し、選択した情報伝達経路からトレース条件に従ってトレース情報を取得するようにすれば、複数種類の情報伝達経路を並列的に外部でモニタすることができる。
【発明を実施するための最良の形態】
【００２９】
《データプロセッサ》
図１には本発明に係るデータプロセッサの一例が示される。同図に示されるデータプロセッサ１は、単結晶シリコンのような１個の半導体チップ若しくは半導体基板に例えばＣＭＯＳ集積回路製造技術によって形成され、特に制限されないが、ＲＩＳＣプロセッサとしての縮小命令セット（例えば１６ビット固定長命令セット）が適用されるＣＰＵ（中央処理装置）２と、演算とデータのロード・ストアを並列に実行することによって積和演算を高速に実行可能なＤＳＰ３を有する。更にＳＲＡＭなどによって構成されるデータメモリ（ＸＭＥＭ，ＹＭＥＭ）４，５、バスステートコントローラ（ＢＳＣ）６、ＩＯポートなどの入出力回路（Ｉ／Ｏ）７、ＤＭＡＣ（ダイレクト・メモリ・アクセス・コントローラ）８、デバッグ支援モジュール（ＡＵＤ）９を有する。ＣＰＵ２は、特に制限されないが、パイプライン処理によって命令を実行し、見掛け上、ＣＰＵ２の動作基準クロック信号の１サイクル毎に１命令を実行していくことができる。
【００３０】
データプロセッサ１の内部バスは機能毎に複数種類に大別され、情報伝達経路としてそれぞれアドレス及びデータを伝達するＩバス（ＣＰＵアドレスバスＩＡＢ，ＣＰＵデータバスＩＤＢ）、Ｘバス（ＸＭＥＭアドレスバスＸＡＢ，ＸＭＥＭデータバスＸＤＢ）、Ｙバス（ＹＭＥＭアドレスバスＹＡＢ，ＹＭＥＭデータバスＹＤＢ）及びＤバス（ＤＭＡアドレスバスＤＡＢ，ＤＭＡデータバスＤＤＢ）と、バスアクセス制御情報を伝達するＩＣバス（ＣＰＵコマンドバスＩＣＭＤＢ）及びＤＣバス（ＤＭＡコマンドバスＤＣＭＤＢ）を有する。
【００３１】
前記ＣＰＵ２は、フェッチした命令を命令デコーダ（図示せず）でデコードし、デコード結果に従って汎用レジスタや算術論理演算器（図示せず）を用いてアドレス情報やデータ情報の演算を行う。このＣＰＵ２はアドレスバスＩＡＢ、ＸＡＢ、ＹＡＢにアドレスを出力可能であり、データバスＩＤＢを介してデータ入出力可能であり、コマンドバスＩＣＭＤＢにバスアクセス制御情報（バスコマンド）を出力可能である。バスコマンドは、リード／ライトの区別、データアクセス／命令フェッチの区別、データサイズ等を指定する情報を含む。
【００３２】
前記ＤＳＰ３は、夫々図示を省略するＤＳＰ命令を解読するデコーダ、乗算器、算術論理演算器（ＡＬＵ）、積和演算専用のデータレジスタファイル等を有する。特に制限されないが、ＤＳＰ３の演算に必要なデータのアクセス制御はＣＰＵ２が行う。ＤＳＰ３はＣＰＵ２のアクセス制御によってデータメモリ（ＸＭＥＭ，ＹＭＥＭ）４，５から読み出されたデータを入力してディジタル信号処理演算を行い、ＤＳＰ３から出力される演算結果データはＣＰＵ２のアクセス制御によってメモリ（ＸＭＥＭ，ＹＭＥＭ）４，５などに格納される。要するに、前記ＤＳＰ３はデータバスＩＤＢ、ＸＤＢ、ＹＤＢを介してデータ入出力可能であり、コマンドバスＩＣＭＤＢ及びＤＣＭＤＢを介してバスアクセス制御情報（バスコマンド）を入力可能である。
【００３３】
前記ＸＭＥＭ４及びＹＭＥＭ５は、ＳＲＡＭ或いはＤＲＡＭなどによって構成され、ＤＳＰ３のデータメモリ或いはＣＰＵ２のワークメモリして利用される。前記ＸＭＥＭ４は、アドレスバスＩＡＢ、ＸＡＢ及びＤＡＢからアドレス入力可能であり、データバスＩＤＢ、ＸＤＢ及びＤＤＢとの間でデータ入出力入力可能であり、コマンドバスＩＣＭＤＢ及びＤＣＭＤＢを介してバスアクセス制御情報（バスコマンド）を入力可能である。前記ＹＭＥＭ５は、アドレスバスＩＡＢ、ＹＡＢ及びＤＡＢからアドレス入力可能であり、データバスＩＤＢ、ＹＤＢ及びＤＤＢとの間でデータ入出力入力可能であり、コマンドバスＩＣＭＤＢ及びＤＣＭＤＢを介してバスアクセス制御情報（バスコマンド）を入力可能である。
【００３４】
前記ＤＭＡＣ８はアドレスバスＩＡＢ及びデータバスＩＤＢを介してＣＰＵ２１より転送制御条件の設定が可能にされ、アドレスバスＤＡＢにアドレス出力を行い、データバスＤＤＢを利用して、データプロセッサ１の内部で、或いはデータプロセッサ１の内部と外部との間でデータ転送制御を行う。
【００３５】
前記ＢＳＣ６は、ＣＰＵ２のアクセス動作又はＤＭＡＣ８によるデータ転送制御に応答して、外部バス１１に対する外部バスアクセス、周辺バス１０を介する図示を省略する周辺回路アクセスのために、必要なバスサイクルの起動を制御する。ＤＭＡＣ８によるデータ転送先又は転送元がデータプロセッサ１内部の回路モジュールである場合に、それら内部回路モジュールが必要とするバスコマンドはＤＭＡＣ８からのＤＭＡリクエストに応答してＢＳＣ６がコマンドバスＤＣＭＤＢに出力する。
【００３６】
前記デバッグ支援モジュール９は、選択回路２０、ＦＩＦＯバッファ回路２１、出力回路２２、そして制御回路を構成する制御部２３と制御レジスタ部２４を有する。前記選択回路２０は、前記Ｉバス（ＩＡＢ，ＩＤＢ）、Ｘバス（ＸＡＢ，ＸＤＢ）、Ｙバス（ＹＡＢ，ＹＤＢ）、及びＤバス（ＤＡＢ，ＤＤＢ）に接続され、トレース条件で指示されたバスを選択し、選択したバス上にトレース条件で指示されたアクセス態様が出現したとき、そのアクセス態様に係る当該バス上の情報を選択する。前記トレース条件によるバスの指定は並列的に複数可能である。前記ＦＩＦＯバッファ回路２１は前記選択回路２０で選択された情報（トレース情報）と共に当該情報の属性情報を保持する。属性情報は例えばトレース情報が伝達されたバスの識別情報である。出力回路２２は、前記ＦＩＦＯバッファ回路２１に保持されたトレース情報とその属性情報とを所定のフォーマットのパケットデータとしてデータプロセッサ１の外部に直列的に出力可能にする。特に制限されないが、その直列出力データＡＵＤＡＴＡは４ビット単位のデータである。制御レジスタ部２４はＣＰＵ２によりＩバス（ＩＡＢ，ＩＤＢ）を介してトレース条件が設定される。制御部２３は、コマンドバスＩＣＭＤＢ，ＤＭＤＢを介して前記ＣＰＵ２等の回路モジュールによる動作状態をモニタし、制御レジスタ部２４に設定されたトレース条件とモニタした動作状態とに基づいて、前記選択回路２０、ＦＩＦＯバッファ回路２１及び出力回路２２の動作を制御する。制御部２３は前記データＡＵＤＡＴＡの４ビット単位の出力が同期されるクロック信号ＡＵＤＣＫと、パケット毎の同期信号ＡＵＤＳＹＮＣとをデータプロセッサ１の外部に出力する。
【００３７】
前記デバッグ支援モジュール９は例えばデータプロセッサ１にデバッグモードが設定されて動作可能にされる。そのようなデバッグモードは、デバッグ対象とされるターゲットシステムにデータプロセッサ１を接続して当該データプロセッサ１にターゲットプログラムを実行させるときに設定すればよい。データプロセッサ１がターゲットプログラムを実行している時、データプロセッサ１の外部に接続されたエミュレータは、前記デバッグ支援モジュール９から出力されるトレース情報とその属性情報をモニタすることができる。このように、デバッグ支援モジュール９の作用により、データプロセッサ１の複数種類の内部バス（Ｉバス、Ｘバス、Ｙバス、Ｄバス）を外部でモニタ可能であって、モニタしているバスの種別も識別可能である。また、トレース情報とその属性情報は直列的に外部に出力されるから、それら情報をデータプロセッサ１の同一外部端子から出力でき、パッケージの外部端子数の制約から当該デバッグ支援機能が実装不可能になる事態を低減することができる。
【００３８】
図２にはデータプロセッサの別の例が示される。同図に示されるデータプロセッサ１Ａは、図１に対してマルチＣＰＵの構成を備える。すなわち、第２のＣＰＵ１２を有し、当該ＣＰＵ１２はＣＰＵアドレスバスＩ２ＡＢ、ＣＰＵデータバスＩ２ＤＢ、ＣＰＵコマンドバスＩ２ＣＭＤＢを介してＢＳＣ６に接続される。このとき、選択回路２０にはバスＩ２ＡＢ，Ｉ２ＤＢも接続され、そのバスＩ２ＡＢ，Ｉ２ＤＢからの入力情報もモニタ可能にされる。この構成における属性情報として、更に、バスにトレース情報を出現させる動作がマルチＣＰＵ２，１２の何れのＣＰＵの動作に基づくかを識別可能にするＣＰＵ識別情報を含めておくことが望ましい。制御部２３はコマンドバスＩ２ＣＭＤＢの情報を入力することにより、トレース条件で指定されたバスＩ２ＡＢ，Ｉ２ＤＢ上でのアクセス態様の出現も監視する。その他の構成は図１と同様であり、マルチＣＰＵ構成においても上記同様の作用及び効果を得る。
【００３９】
《パケットデータフォーマット》
図３には図１の出力回路２２から出力される前記パケットデータのフォーマットが例示される。前記パケットデータはＣＭＤ１，ＣＭＤ１Ｅ，ＣＭＤ２で表現される属性情報と、これに続くトレース情報とを有する。ＣＭＤ１はアクセスの種類等を示す４ビットのコードデータである。この例ではトレース条件とされるアクセスの種類は、ＣＰＵ２による命令実行の分岐をトレース条件とするときの分岐トレース（ＢＰＣ）、リードアクセス（ＷＤＲＭ）、及びライト（ストア）アクセス（ＷＤＷＭ）に大別され、夫々に固有のコードが割当てられる。分岐トレースをトレース条件とするときトレース情報は分岐元アドレス情報又は／及び分岐先アドレス情報とされる。リードアクセス又は／及びライトアクセスをトレース条件とするときトレース情報はアクセスアドレス情報及びアクセスデータとされる。尚、ここでは、分岐トレースは前記ＣＰＵ２による分岐命令の実行による分岐を対象とする。割り込みや例外の発生による分岐を対象とすることも可能である。
【００４０】
ＣＭＤ１Ｅはバスの種類を示す４ビットのコードである。分岐トレースの場合にはトレースすべき分岐先／分岐元のアドレス情報はアドレスバスＩＡＢ経由で取得されるだけであるからコードＣＭＤ１Ｅは省かれる。リードアクセス又は／及びライトアクセスの場合、１ビットのプロセッサ識別情報ｐｔと、３ビットのバスの識別情報ｂｔを有する。バスの識別情報ｂｔはその値に応じて、Ｉバストレース、Ｙバストレース、Ｘバストレース、Ｘ及びＹバス双方トレース、Ｄバストレースを示す。
【００４１】
ＣＭＤ２は情報サイズを示す４ビットのコードである。分岐トレース（ＢＣＰ）コードに続く場合、ｓｄａは２ビットで分岐先アドレスのサイズを示し、ｓｓａは２ビットで分岐元アドレスのサイズを示す。アドレス情報に対しては後述の圧縮処理が施されて出力されるので、ｓｄａ／ｓｓａの値に応じて、アドレス情報の下位４ビット出力、下位８ビット出力、下位１６ビット出力、３２ビットフルアドレス出力を示す。ストアアクセス（ＷＤＷＭ）コード又はリードアクセス（ＷＤＲＭ）コードに続く場合、ｓａは２ビットでソースアドレスのサイズを示し、ｓｄは２ビットでデータサイズを示す。アドレス情報は後述の圧縮処理を経て出力されるので、ｓａの値に応じて、アドレス情報の下位４ビット出力、下位８ビット出力（ｂｔでＸ及びＹバス双方トレースが指示されている場合には、Ｘ，Ｙ夫々下位４ビット出力）、下位１６ビット出力（ｂｔでＸ及びＹバス双方トレースが指示されている場合には、Ｘ，Ｙ夫々下位８ビット出力）、３２ビットフルアドレス出力を示す。データサイズはｓｄの値に応じて８ビット、１６ビット、３２ビット（ｂｔでＸ及びＹバス双方トレースが指示されている場合には、Ｘ，Ｙ夫々１６ビット出力）を示す。
【００４２】
前記コードデータＣＭＤ１は、前記分岐トレース（ＢＰＣ）、リードアクセス（ＷＤＲＭ）、及びライトアクセス（ＷＤＷＭ）の他に、スタンバイ状態（ＳＴＤＢＹ）及びデータロスト状態（ＬＯＳＴ）を示すコードが割り当てられている。ＳＴＤＢＹコードはデバッグ支援モジュール９がスタンバイ状態であることを示し、後続データが無いことを意味する。ＬＯＳＴコードは、前記ＦＩＦＯバッファ回路２１のフル状態によってトレースすべき情報がＦＩＦＯバッファ回路２１に保持されずに失われたことを示す。これにより、トレースすべき情報の欠落を外部で容易に把握する事が可能になる。トレースすべき情報の欠落を抑制するには、制御部２３はＦＩＦＯバッファ回路２１のフル状態に応答してＣＰＵ２やＤＭＡＣ８による新たなバスアクセスをバスサイクル単位で一時的に停止させる指示を与えるようにすればよい。要するにＦＩＦＯバッファ回路２１の記憶領域が空くまでＣＰＵ２やＤＭＡＣ８によるバスアクセスをストールさせればよい。
【００４３】
《ＡＵＤ用制御レジスタ》
図４には図１のデバッグ支援モジュール９の詳細な一例が示される。前記制御部２３は入力バス制御部３０、ＦＩＦＯ制御部３１、出力制御部３２及びバスストール制御部３３を有する。前記出力回路２２は、アドレスデータ圧縮部３５、パケット変換部３６、属性情報生成部３７及びデマルチプレクサ３８を有する。制御レジスタ部２４は制御レジスタ３９Ａ，３９Ｂとアドレスデコーダ４０とを有する。
【００４４】
前記制御レジスタ３９Ａ，３９Ｂは図５に例示されるように夫々１６ビットのレジスタで構成され、ＣＰＵ２のアドレス空間に配置され、そのアドレスがアドレスバスＩＡＢからアドレスデコーダ４０に供給されることによって、データバスＩＤＢを介してリード・ライト可能にされる。前記制御レジスタ３９Ａ、３９Ｂの各ビットの意義は図６及び図７に例示される。
【００４５】
図６に例示されるように、分岐トレース機能ビットＢＲＥ，ＢＲはその設定値にしたがって、分岐トレース無効、分岐トレース有効で分岐元及び分岐先アドレス出力、分岐トレース有効で分岐元アドレスのみ出力、分岐トレース有効で分岐先アドレスのみ出力を指示する。
【００４６】
また、分岐トレース以外のトレース条件は、同時に２種類指定（ウインドウＡデータトレース、ウインドウＢデータトレース）できるようにされ、一方の情報トレース（ウインドウＡデータトレース）は、図６のウインドウデータトレース機能ビットＷＡ１，ＷＡ０による指定と、図７のウインドウＡ用プロセッサ別トレースバスセレクト機能ビットＷＡ０Ｂ２，ＷＡ０Ｂ１，ＷＡ０Ｂ０による指定で決まる。前者の機能ビットＷＡ１，ＷＡ０はその値にしたがって、ウインドウＡデータトレース機能無効、ウインドウＡデータトレースのライトアクセスのみ有効、ウインドウＡデータトレースのリードアクセスのみ有効、ウインドウＡデータトレースのライト及びリードアクセス有効を指示する。機能ビットＷＡ０Ｂ２，ＷＡ０Ｂ１，ＷＡ０Ｂ０はその値に従ってウインドウＡデータトレース対象バスとしてＩバス、Ｘバス、Ｙバス、Ｄバスの中から一つを指定する。他方の情報トレース（ウインドウＢデータトレース）は、図６のウインドウデータトレース機能ビットＷＢ１，ＷＢ０による指定と、図７のウインドウＢ用プロセッサ別トレースバスセレクトビットＷＢ０Ｂ２，ＷＢ０Ｂ１，ＷＢ０Ｂ０による指定で決まる。前者の機能ビットＷＢ１，ＷＢ０はその値にしたがって、ウインドウＢデータトレース機能無効、ウインドウＢデータトレースのライトアクセスのみ有効、ウインドウＢデータトレースのリードアクセスのみ有効、ウインドウＢデータトレースのライト及びリードアクセス有効を指示する。機能ビットＷＢ０Ｂ２，ＷＢ０Ｂ１，ＷＢ０Ｂ０はその値に従ってウインドウＢデータトレース対象バスとしてＩバス、Ｘバス、Ｙバス、Ｄバスの中から一つを指定する。
【００４７】
プロセッサコアセレクトビットＰＴ０は図１ではＣＰＵが１個であるから値１に固定とされる。図２の例ではＰＴ０＝０でＣＰＵ１２、ＰＴ０＝１でＣＰＵ２を指定するようにしてよい。或いはＰＴ０＝０でＣＰＵ２、ＰＴ０＝１でＣＰＵ２及びＣＰＵ１２を指定するようにしてもよい。
【００４８】
図６に示されるトレースモードビットＴＭはその値によってフルトレースモード又はリアルタイムトレースモードを指定する。フルトレースモードでは全てのトレース情報を出力するモードであり、ＦＩＦＯバッファ回路２１がフル状態になれば、空きができるまでバスストール制御部３３にてＣＰＵ２をストールさせる。リアルタイムトレースモードはＣＰＵ２を停止させること無くリアルタイムでトレース情報を出力するモードであり、ＦＩＦＯバッファ回路２１がフル状態になったり、ウインドウＡ，Ｂで並列してトレース情報が発生したりするとき、属性情報生成部３７が前記ＬＯＳＴコードを発行することになる。
【００４９】
《選択回路》
図８には前記選択回路の一例が示される。同図に示される選択回路２０は、第１セレクタ（ウインドウＡセレクタ）４１、第２セレクタ（ウインドウＢセレクタ）４２、第３セレクタ４３、及び命令アドレスバッファ４４を有する。第１セレクタ４１は、Ｉバス（ＩＡＢ，ＩＤＢ）、Ｘバス（ＸＡＢ，ＸＤＢ）、Ｙバス（ＹＡＢ，ＹＤＢ）、Ｄバス（ＤＡＢ，ＤＤＢ）の中からトレースすべき情報を得るためのバスを選択すると共に選択したバスの情報をバスサイクル単位で保持する。前記第２セレクタ４２も同じく、Ｉバス（ＩＡＢ，ＩＤＢ）、Ｘバス（ＸＡＢ，ＸＤＢ）、Ｙバス（ＹＡＢ，ＹＤＢ）、Ｄバス（ＤＡＢ，ＤＤＢ）の中からトレースすべき情報を得るためのバスを選択すると共に選択したバスの情報をバスサイクル単位で保持する。命令アドレスバッファ４４はＣＰＵ２が現在実行中の命令アドレスの直前の命令の命令アドレスを保持する。要するに、命令アドレスバッファ４４はＩバスのアドレスバスＩＡＢに伝達される命令アドレスを入力し、次の命令アドレスが入力された後も当該次の命令が実行完了されるまでの所定期間保持する。前記第３セレクタ４３は、前記第１セレクタ４１、前記第２セレクタ４２及び前記命令アドレスバッファ４４の出力から一つを選択して前記ＦＩＦＯバッファ回路２１に与える。
【００５０】
このとき、前記入力バス制御部３０は、制御レジスタ３９ＢのウインドウＡ用プロセッサコア別トレースバスセレクトビットＷＡ０Ｂ２，ＷＡ０Ｂ１，ＷＡ０Ｂ０によって指定されるバスの選択信号４５Ａを第１セレクタ４１に与える。同様に、前記入力バス制御部３０は、制御レジスタ３９ＢのウインドウＢ用プロセッサコア別トレースバスセレクトビットＷＢ０Ｂ２，ＷＢ０Ｂ１，ＷＢ０Ｂ０によって指定されるバスの選択信号４５Ｂを第２セレクタ４２に与える。前記第３セレクタ４３に対して入力バス制御部３０は、制御レジスタ３９Ａの分岐トレース機能ビットＢＲＥ，ＢＲ、ウインドウデータトレース機能ビットＷＡ１，ＷＡ０，ＷＢ１，ＷＢ０によって指定されたアクセス態様の出現に応じ、前記第１セレクタ４１、前記第２セレクタ４２又は前記命令アドレスバッファ４４の出力を選択させ選択信号４６を出力する。トレース条件として指定されたアクセス態様が出現したか否かはコマンドバスＩＣＭＤＢ，ＤＣＭＤＢの状態を監視して判定すればよい。例えば、第１セレクタ４１で選択されているバス上においてトレース条件で指定されたアクセス態様が出現したとき、入力バス制御部３０は第３セレクタ４３に当該第１セレクタ４１の出力を選択させる。また、第２セレクタ４２で選択されているバス上においてトレース条件で指定されたアクセス態様が出現したとき、入力バス制御部３０は第３セレクタ４３に当該第２セレクタ４２の出力を選択させる。また、入力バス制御部３０は、分岐トレースが有効に指示されているとき、分岐命令の実行を検出すると、分岐先命令である次の命令アドレスがアドレスバスＩＡＢから第１セレクタ４１に入力された後、第３セレクタ４３に、命令アドレスバッファ４４が保持する分岐元命令アドレスと、第１セレクタ４１が保持する分岐先アドレスとをＦＩＦＯバッファ回路２１に供給させる。
【００５１】
上記選択回路２０により、第１セレクタ４１及び第２セレクタ４２で選択される夫々の内部バスの状態を並列的にモニタすることができる。このとき、並列モニタ可能な複数のバス上でトレース対象とされるアクセス態様が同一バスサイクルで出現することがある。入力バス制御回路３０は、フルトレースモードが指定されている状態において、前記第１セレクタ４１及び第２セレクタ４２で選択される夫々のバスにおいてトレース条件で指定されたアクセス態様が同一バスサイクルで出現したとき、バスストール制御部３３にＣＰＵ２による命令実行又はＤＭＡＣによるデータ転送動作を一時停止させ、夫々のアクセス態様で双方のバスに出現し前記第１及び第２セレクタ４１，４２に保持されたトレース情報を第３セレクタ４３を介して直列的にＦＩＦＯバッファ回路２１に格納させる。
【００５２】
《バスストール制御》
ここで図４を参照しながらバスストール制御について詳述する。入力バス制御部３０はコマンドバスＩＣＭＤＢ，ＤＣＭＤＢからのバスコマンドに基づいてトレース条件に一致する状態が出現したかを判定しており、トレース条件に一致する状態の発生をヒット信号ＨＩＴａ，ＨＩＴｂ，ＨＩＴｉとして出力する。ヒット信号ＨＩＴａはウインドウＡデータトレースの条件に一致したとき（第１及び第３セレクタ４１，４３経由でトレースデータが取得されるとき）活性化され、ヒット信号ＨＩＴｂはウインドウＢデータトレースの条件に一致したとき（第２及び第３セレクタ４２，４３経由でトレースデータが取得されるとき）活性化され、ヒット信号ＨＩＴｉはＣＰＵ２による命令実行に分岐を生じた時活性化される。入力バス制御部３０はヒット信号ＨＩＴａ，ＨＩＴｂ，ＨＩＴｉが活性化されるとき、信号５３によってＦＩＦＯ制御部３１に書込みリクエストを行う。
【００５３】
ＦＩＦＯ制御部３１はＦＩＦＯバッファ回路２１に対して先入れ先出し形式でデータのリード・ライトを制御する。ライト可能な記憶エリアがなくなった時フル信号５０を活性化し、リード可能なデータが無くなった時エンプティ信号５１を活性化する。ＦＩＦＩ制御回路３１に対するリードリクエストは信号５２で与えられる。
【００５４】
バスストール制御部３３には前記ヒット信号ＨＩＴａ，ＨＩＴｂ，ＨＩＴｉ、フル信号５０、及び制御レジスタ３９Ａ，３９Ｂの設定データが入力される。バスストール制御部３３は、トレースモードビット（ＴＭ）によりフルトレースモードが指示されているとき、フル状態のときに前記ヒット信号ＨＩＴａ，ＨＩＴｂ，ＨＩＴｉが活性化された時、Ｉバス用のバスレディー信号ＡＵＤＩＲＤＹ又はＤバス用のバスレディー信号ＡＵＤＤＲＤＹを非活性化する。この例に従えば、バスレディー信号ＡＵＤＩＲＤＹ，ＡＵＤＤＲＤＹはＢＳＣ６に供給され、バスレディー信号ＡＵＤＩＲＤＹの非活性化によりＩバスを利用するバスアクセスが抑止され、バスレディー信号ＡＵＤＤＲＤＹの非活性化によりＤバスを利用するバスアクセスが抑止される。
【００５５】
《ＬＯＳＴフラグ制御》
前記バスストール制御部３３は、特に図示はしないが、トレースモードビット（ＴＭ）によりリアルタイムトレースモードが指示されている場合、ＦＩＦＯバッファ回路２１がフル状態のときに前記ヒット信号ＨＩＴａ，ＨＩＴｂ，ＨＩＴｉが活性化される毎に入力バス制御部３０内のＬＯＳＴフラグを順次セット状態として保持させる。その後、ＦＩＦＯバッファ回路２１に最初の空きが生じたとき、入力バス制御部３０はＬＯＳＴフラグのセット数の情報をＦＩＦＯ制御部３１を介してＦＩＦＯバッファ回路２１に書き込み制御する。
【００５６】
《出力制御》
ここで図４を参照しながら出力回路２２による出力制御について詳述する。入力バス制御部３０はコマンドバスＩＣＭＤＢ，ＤＣＭＤＢから入力されるバスコマンドの内容を解読して、属性情報として利用するバスアクセス制御情報をバスサイクル毎に取得し、ＦＩＦＯバッファ回路２１に与える。ＦＩＦＩバッファ回路２１はトレースすべきアドレス情報やデータ情報などと一緒に、対応するバスアクセス制御情報を、例えば同じＦＩＦＯ記憶段に記憶する。ＦＩＦＯバッファ回路２１に対する書込みの指示は前記信号５３によって与えられる。ＦＩＦＯバッファ回路２１に対する読み出しは信号５２で指示する。
【００５７】
属性情報生成部３７は、ＦＩＦＯバッファ回路２１から読み出されたバスアクセス制御情報を入力し、制御レジスタ３９Ａ，３９Ｂの設定値を受ける出力制御部３２の制御に従って、図３で説明したＣＭＤ１，ＣＭＤ１Ｅ，ＣＭＤ２で表される形態で属性情報を生成する。アドレスデータ圧縮部３５はＦＩＦＯバッファ回路２１から読み出されたトレースすべき情報としてのアドレス情報を圧縮処理して出力する。
【００５８】
アドレス情報の圧縮は、図９に例示されるように、直前のアドレス情報との差分を出力するという手法によって行う。すなわち、図９の（Ａ），（Ｂ）に例示されるように、全ビット一致のとき、或いは下位４ビットの範囲内で不一致の時には、今回のアドレス情報の下位４ビットだけを出力対象とする。（Ｃ）のように第５ビット目から第８ビット目の範囲で不一致ビットがあれば今回のアドレス情報の下位８ビットだけを出力対象とする。（Ｄ）のように第９ビット目から第１６ビット目の範囲で不一致ビットがあれば今回のアドレス情報の下位１６ビットだけを出力対象とする。（Ｅ）のように第１７ビット目から第３２ビット目の範囲で不一致ビットがあれば今回のアドレス情報をフルアドレスで出力対象とする。パケット変換部３６は出力制御部３２の制御にしたがって、図３で説明したパケットデータフォーマットに従ってアドレス情報やデータ情報のフォーマット変換を行う。
【００５９】
出力制御部３２はクロック信号ＡＵＤＣＫに同期させて、前記ＣＭＤ１，ＣＭＤ１Ｅ，ＣＭＤ２で表現される属性情報と、パケット変換部３６から出力されるトレース情報を、デマルチプレクサ３９で所定の順番に選択して、モニタデータＡＵＤＡＴＡとして外部に出力させ、パケット毎にパケット同期信号ＡＵＤＳＹＮＣを変化させる。
【００６０】
図１０及び図１１には分岐トレース（ＢＰＣ）時におけるデータＡＵＤＡＴＡ、クロック信号ＡＵＤＣＫ、パケット同期信号ＡＵＤＳＹＮＣの出力例が示される。図１０はＭＤ２の後にＤＡとして分岐先アドレス情報が１６ビット、ＳＡとして分岐元アドレス情報が８ビット続いている。図１１ではＭＤ２の後にＳＡとして分岐元アドレス情報が８ビット続いている。
【００６１】
図１２にはライトアクセス（ＷＤＷＭ）時におけるデータＡＵＤＡＴＡ、クロック信号ＡＵＤＣＫ、パケット同期信号ＡＵＤＳＹＮＣの出力例が示される。ＭＤ２の後にＡとしてアドレス情報が１６ビット、Ｄとしてデータ情報が１６ビット続いている。
【００６２】
図１３にはライトアクセス（ＷＤＷＭ）時におけるウインドウＡ，Ｂの連続トレース時におけるデータＡＵＤＡＴＡ、クロック信号ＡＵＤＣＫ、パケット同期信号ＡＵＤＳＹＮＣの出力例が示される。前後２回の出力動作では、ＭＤ２の後にＡとしてアドレス情報が１６ビット、Ｄとしてデータ情報が１６ビット続いている。
【００６３】
図１４にはリアルタイムトレースにおいてトレースデータ取りこぼしを生ずるときのデータＡＵＤＡＴＡ、クロック信号ＡＵＤＣＫ、パケット同期信号ＡＵＤＳＹＮＣの出力例が示される。データの取りこぼしを生じているとき、ＬＯＳＴコードが出力され、ＬＯＳＴコードの出力によってパケット同期信号ＡＵＤＳＹＣＫがローレベルにされ、次のＢＰＣコードが出力された時は既にパケット同期信号ＡＵＤＳＹＣＫがローレベルにされている。ＬＯＳＴ状態の後のパケット出力はパケット同期信号ＡＵＤＳＹＣＫによっても他のパケット出力と区別可能になる。前記ＬＯＳＴコードはＦＩＦＯバッファ回路２１に格納されているところの前記ＬＯＳＴフラグのセット数の情報に基づいて属性情報生成部３７が生成する。
【００６４】
《バスとＦＩＦＯバッファ回路との接続形態》
図１５には選択回路２０によるＩバスとＦＩＦＯバッファ回路の接続形態が模式的に例示される。バスＩＡＢ，ＩＤＢは夫々３２ビットである。ＦＩＦＯバッファ回路２１の一つの記憶段はここでは７４ビットとされ、３２ビットのアドレス記憶エリアＥ１，３２ビットのデータ記憶エリアＥ２、及び１０ビットの属性情報エリアＥ３が割当てられている。
【００６５】
図１６には選択回路２０によるＸバス、ＹバスとＦＩＦＯバッファ回路の接続形態が模式的に例示される。Ｘバス、ＹバスはＩバスに比べてビット数が半分以下にされている。特に制限されないが、アドレスバスＸＡＢ，ＹＡＢは夫々１５ビット、ＸＤＢ，ＹＤＢは夫々１６ビットとされる。ＦＩＦＯバッファ回路２１の一つの記憶段は７４ビットとされ、図１５と同じように、３２ビットのアドレス記憶エリアＥ１，３２ビットのデータ記憶エリアＥ２、及び１０ビットの属性情報エリアＥ３が割当てられている。但し、アドレスエリアＥ１には２種類のアドレスバスＸＡＢ，ＹＡＢが上位及下位の記憶エリアに並列的に接続され、データエリアＥ２には２種類のデータバスＸＤＢ，ＹＤＢが上位及下位の記憶エリアに並列的に接続される。したがって、Ｘバス（ＸＡＢ，ＸＤＢ）及びＹバス（ＹＡＢ，ＹＤＢ）をトレース対象とし、トレース条件に一致するアクセス状態が双方のバスに並行して出現した場合、双方のトレース情報を一度にＦＩＦＩバッファ回路２１に格納することができる。したがってその場合には、リアルタイムトレースモードにおいてはトレース情報が失われず、フルトレースモードではバスストールが発生しない。
【００６６】
《バス以外からのトレース情報》
以上の説明ではトレース情報はアドレスバス及びデータバスから取得するものとして説明した。図１７にはバス以外からトレース情報を取得可能にするデータプロセッサ１Ｂの構成が概略的に例示される。例えばタイマやシリアルインタフェースなどのその他の回路モジュール６０，６１から内部ステートなどのトレースしたい信号が伝達される信号線６２，６３を前記選択回路に接続する。制御部２３にはトレースすべき信号の発生(トレースイベント)を定義する信号例えば割込み信号等を信号線６４，６５から入力する。これにより、バスアクセス以外の所望のトレースイベントの発生に応答して、対応するイベント発生情報をトレース情報としてＦＩＦＯバッファ回路に蓄えることができる。この場合も、上記同様、複数のバスやトレースイベントを並列的に監視してトレース情報を取得でき、それらを少ない数の外部端子からデータＡＵＤＡＴＡとして直列的に外部に出力することができる。
【００６７】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００６８】
例えば、その他の回路モジュールはＤＳＰやメモリに限定されず適宜変更可能である。情報伝達経路としてのバスの構成は上記Ｉバス、Ｘバス、Ｙバス、Ｄバスに限定されず、内蔵回路モジュールの種類などに応じて適宜変更可能である。また、トレース情報を出力するパケットのフォーマットやコードデータの種類、制御レジスタの設定値の意義などについても適宜変更可能である。図８の構成は並列的に２種類のバスを指定してトレース可能にするが、並列的に３種類以上のバスを指定する構成を採用してもよい。また、トレース情報としてのアドレス情報は圧縮処理を一切施さずに、常にフルアドレスで出力してもよい。
【図面の簡単な説明】
【００６９】
【図１】本発明に係るデータプロセッサの第１の例を示すブロック図である。
【図２】本発明に係るデータプロセッサの第２の例としてＣＰＵを複数有するものを示すブロック図である。
【図３】図１の出力回路から出力される前記パケットデータのフォーマットを説明するための説明図である。
【図４】図１のデータプロセッサに内蔵されるデバッグ支援モジュールの詳細な一例を示すブロック図である。
【図５】制御レジスタの制御ビット構成を例示する説明図である。
【図６】制御レジスタの制御ビットの定義を示す説明図である。
【図７】制御レジスタの制御ビットの定義を示す説明図である。
【図８】図４のデバッグ支援モジュールが有する選択回路の詳細を例示するブロック図である。
【図９】アドレス情報の圧縮処理方法を例示する説明図である。
【図１０】分岐トレース（ＢＰＣ）時におけるデータＡＵＤＡＴＡ、クロック信号ＡＵＤＣＫ、パケット同期信号ＡＵＤＳＹＮＣの第１の出力例を示すタイミングチャートである。
【図１１】分岐トレース（ＢＰＣ）時におけるデータＡＵＤＡＴＡ、クロック信号ＡＵＤＣＫ、パケット同期信号ＡＵＤＳＹＮＣの第２の出力例を示すタイミングチャートである。
【図１２】ライトアクセス（ＷＤＷＭ）時におけるデータＡＵＤＡＴＡ、クロック信号ＡＵＤＣＫ、パケット同期信号ＡＵＤＳＹＮＣの出力例を示すタイミングチャートである。
【図１３】ライトアクセス（ＷＤＷＭ）時におけるウインドウＡ，Ｂの連続トレース時におけるデータＡＵＤＡＴＡ、クロック信号ＡＵＤＣＫ、パケット同期信号ＡＵＤＳＹＮＣの出力例を示すタイミングチャートである。
【図１４】リアルタイムトレースにおいてトレースデータ取りこぼしを生ずるときのデータＡＵＤＡＴＡ、クロック信号ＡＵＤＣＫ、パケット同期信号ＡＵＤＳＹＮＣの出力例を示すタイミングチャートである。
【図１５】選択回路によるＩバスとＦＩＦＯバッファ回路との接続形態を模式的に例示するブロック図である。
【図１６】選択回路によるＸバス、ＹバスとＦＩＦＯバッファ回路との接続形態を模式的に例示するブロック図である。
【図１７】バス以外からトレース情報を取得可能にするデータプロセッサを例示する概略ブロック図である。
【符号の説明】
【００７０】
１  データプロセッサ
２  ＣＰＵ
３  ＤＳＰ
４  Ｘデータメモリ（ＸＭＥＭ）
５  Ｙデータメモリ（ＹＭＥＭ）
６  バスステートコントローラ（ＢＳＣ）
８  ＤＭＡＣ
９  デバッグ支援モジュール（ＡＵＤ）
ＩＡＢ、ＩＤＢ  Ｉバス
ＸＡＢ，ＸＤＢ  Ｘバス
ＹＡＢ，ＹＤＢ  Ｙバス
ＤＡＢ，ＤＤＢ  Ｄバス
ＤＣＭＤＢ  ＤＣバス
ＩＣＭＤＢ  ＩＣバス
２０  選択回路
２１  ＦＩＦＯバッファ回路
２２  出力回路
２３  制御部
２４  制御レジスタ部
３０  入力バス制御部
３１  ＦＩＦＯＩ制御部
３２出力制御部
３３  バスストール制御部
４１  第１セレクタ
４２  第２セレクタ
４３  第３セレクタ
４４  命令アドレスバッファ
５０  フル信号
５１  エンプティ信号
５２  リードリクエスト信号
５３  ライトリクエスト信号
ＡＵＤＡＴＡ  パケットデータ
ＡＵＤＣＫ  クロック信号
ＡＵＤＳＹＮＣ  パケット同期信号
ＡＵＤＩＲＤＹ  Ｉバスレディー信号
ＡＵＤＤＲＤＹ  Ｄバスレディー信号
【図１】
2006155671.tif 000003
【図２】
2006155671.tif 000004
【図３】
2006155671.tif 000005
【図４】
2006155671.tif 000006
【図５】
2006155671.tif 000007
【図６】
2006155671.tif 000008
【図７】
2006155671.tif 000009
【図８】
2006155671.tif 000010
【図９】
2006155671.tif 000011
【図１０】
2006155671.tif 000012
【図１１】
2006155671.tif 000013
【図１２】
2006155671.tif 000014
【図１３】
2006155671.tif 000015
【図１４】
2006155671.tif 000016
【図１５】
2006155671.tif 000017
【図１６】
2006155671.tif 000018
【図１７】
2006155671.tif 000019
【手続補正書】
【提出日】平成18年4月12日(2006.4.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１中央処理装置と、
第２中央処理装置と、
デバッグモジュールと、
前記第１中央処理装置とデバッグモジュールに接続された第１バスと、
前記第２中央処理装置とデバッグモジュールに接続された第２バスと、
前記デバッグモジュールに接続された複数の外部端子と、を有する半導体チップ上に形成されたデータプロセッサであって、
前記デバッグモジュールは、前記第１又は第２バスからフェッチしたトレース情報と、トレース条件に応じたトレース情報の属性情報とを保持するバッファ回路と、を有し、
前記属性情報は、前記第１中央処理装置又は第２中央処理装置によって実行された動作に基づいたトレース情報であることを示す識別情報を含むことを特徴とするデータプロセッサ。
【請求項２】
前記デバッグモジュールは、前記トレース条件に応じて前記第１バス又は第２バスを選択する選択回路を有し、
前記デバッグモジュールは、前記バッファ回路内に選択回路によって選択されたバスのトレース情報を格納する請求項１記載のデータプロセッサ。
【請求項３】
前記デバッグモジュールは、前記第１中央処理装置によって前記トレース条件を設定される制御レジスタを更に有し、
前記選択回路は、前記制御レジスタに設定されたトレース条件に応じて、バスを選択する請求項２記載のデータプロセッサ。
【請求項４】
前記デバッグモジュールは、前記トレース情報と前記属性情報とを所定のフォーマットで、前記複数の外部端子を介して半導体チップの外部へ出力する請求項２記載のデータプロセッサ。
【請求項５】
前記デバックモジュールは、前記第１中央処理装置もしくは第２中央処理装置の何れに対するトレースであるかを示す制御レジスタを有する請求項４記載のデータプロセッサ。
【請求項６】
トレース条件がリードアクセスのとき、
前記トレース情報は、リードアクセスのアドレス情報とデータ情報とを含み、
前記属性情報は、アクセスタイプがリードアクセスであることを示す情報と、トレースすべき情報の大きさを示すサイズ情報と、前記バス識別情報とを含む請求項４記載のデータプロセッサ。
【請求項７】
トレース条件がライトアクセスのとき、
前記トレース情報は、ライトアクセスのアドレス情報とデータ情報とを含み、
前記属性情報は、アクセスタイプがライトアクセスであることを示す情報と、トレースすべき情報の大きさを示すサイズ情報と、前記バス識別情報とを含む請求項４記載のデータプロセッサ。
【請求項８】
前記中央処理装置で分岐命令が実行されたときがトレース条件のとき、前記トレース情報は分岐元アドレス情報と、分岐先アドレス情報と、分岐が発生した時間を示す情報と分岐元アドレス情報の大きさを示す情報と分岐先アドレス情報大きさを示す情報とを含む前記属性情報と、を含む請求項４記載のデータプロセッサ。
【請求項９】
前記デバックモジュールは、前記外部端子を介して半導体チップの外部へ情報コードを出力可能であり、
前記情報コードは、前記バッファ回路がフル状態のためにトレース情報が前記バッファ回路に保持されなかったことを示す請求項１記載のデータプロセッサ。
【請求項１０】
前記デバッグ回路は、前記バッファ回路に対しトレース情報と属性情報とが格納されなかったことを示すデータ欠落コードを、前記外部端子を介して半導体チップの外部へ出力可能である請求項１記載のデータプロセッサ。
【請求項１１】
前記デバッグ回路は、前記データ欠落コードの出力に応じて、前記第１又は第２中央処理装置の動作を一時的に停止する制御を行う請求項１０記載のデータプロセッサ。
【請求項１２】
前記属性情報は、トレース情報を転送したバスが前記第１バス又は第２バスであるかを示すバス識別情報を含むことを特徴とする請求項１記載のデータプロセッサ。