(57)【要約】【課題】  少ないクロック数でデバッグメモリ空間の連続するアドレスのデータを転送することができるデバッグ用レジスタ、およびデータ転送方法を提供する。【解決手段】  アドレスレジスタおよびＰｒＡｃｃレジスタからのデータのシフトアウトとデータレジスタおよびＰｒＡｃｃレジスタへのデータのシフトインを同時に実行し、シフトアウトされたアドレスレジスタの値が予想した値であったときは、シフトインされたデータのデータレジスタへの書き込みおよびＰｒＡｃｃレジスタへの書き込みを実行する命令を用い、シフトインするデータとして、次にアクセスが予想されるアドレスから取得したデータと、デバッグが継続して実行されるようプロセッサアクセスのペンディングを制御するＰｒＡｃｃデータを順次入力することにより、デバッグメモリ空間の連続するアドレスから順次データを取得して前記データレジスタに順次書き込む。【選択図】  図２
2006146757.tif 000002
【特許請求の範囲】
【請求項１】
ＥＪＴＡＧ準拠のマイクロプロセッサに搭載されるデバッグ用レジスタであって、
アドレスレジスタと、
データレジスタと、
プロセッサアクセスのペンディングを制御するＰｒＡｃｃ信号が格納される第１のＰｒＡｃｃレジスタと、
前記ＰｒＡｃｃ信号が格納される第２のＰｒＡｃｃレジスタと、
前記ＰｒＡｃｃ信号が書き込まれるＰｒＡｃｃ領域を有するコントロールレジスタと
を具備することを特徴とするデバッグ用レジスタ。
【請求項２】
デバッグ用命令の種類により、前記アドレスレジスタと前記第１のＰｒＡｃｃレジスタは連結されて１つのシフトレジスタとして使用され、前記データレジスタと前記第２のＰｒＡｃｃレジスタは連結されて１つのシフトレジスタとして使用されることを特徴とする請求項１に記載のデバッグ用レジスタ。
【請求項３】
ＥＪＴＡＧ準拠のマイクロプロセッサに搭載されるデバッグ用レジスタであって、
パラレル入力およびパラレル出力機能を有するシフトレジスタと、
パラレル入力およびパラレル出力機能を有してプロセッサアクセスのペンディングを制御するＰｒＡｃｃ信号が格納されるＰｒＡｃｃレジスタと、
前記シフトレジスタからパラレル出力されたデータが書き込まれるアドレスレジスタと、
前記シフトレジスタからパラレル出力されたデータが書き込まれるデータレジスタと、
前記シフトレジスタおよび前記ＰｒＡｃｃレジスタからパラレル出力されたデータが書き込まれるＰｒＡｃｃビット領域を有するコントロールレジスタと
を具備し、前記アドレスレジスタおよび前記コントロールレジスタの前記ＰｒＡｃｃ領域からパラレル出力されたデータが前記シフトレジスタおよび前記ＰｒＡｃｃレジスタにパラレル入力されることを特徴とするデバッグ用レジスタ。
【請求項４】
デバッグ用命令の種類により、前記シフトレジスタと前記ＰｒＡｃｃレジスタは連結されて１つのシフトレジスタとして使用されることを特徴とする請求項３に記載のデバッグ用レジスタ。
【請求項５】
デバッグ用レジスタとしてアドレスレジスタ、データレジスタおよびＰｒＡｃｃレジスタを備えるＥＪＴＡＧ準拠のマイクロプロセッサのデバッグ用レジスタへのデータの転送方法であって、
アドレスレジスタおよびＰｒＡｃｃレジスタからのデータのシフトアウトとデータレジスタおよびＰｒＡｃｃレジスタへのデータのシフトインの同時実行、および前記シフトアウトした前記アドレスレジスタの値が予想した値であったときに前記シフトインしたデータのデータレジスタおよびＰｒＡｃｃレジスタへの書き込みの実行を行う命令を備え、
デバッグメモリ空間の連続するアドレスから順次データを取得して前記データレジスタに順次書き込むときは前記命令を用い、
前記命令を実行するときに、前記シフトインするデータとして、次にアクセスが予想されるアドレスから取得したデータと、デバッグが継続して実行されるようプロセッサアクセスのペンディングを制御するＰｒＡｃｃデータを入力することを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＥＪＴＡＧ方式のオンチップデバッグ回路に含まれるデバッグ用レジスタ、およびそのレジスタへのデータ転送方法に関する。
【背景技術】
【０００２】
マイクロプロセッサを組み込んだシステムのソフトウェア開発には、従来からＩＣＥ（In-circuit  Emulator）が幅広く用いられてきた。しかし、半導体の微細加工技術の進歩により、マイクロプロセッサの高速・大規模化、多様化が進み、ＣＰＵの周辺機能を取り込むいわゆる１チップ化が進展するにつれ、ＩＣＥもいっそう複雑になり、その開発はコストと時間がかかるようになった。また、ＣＰＵのライフサイクルが短くなる傾向もあり、従来型のＩＣＥでは市場の要求に応えることが難しくなってきた。
【０００３】
そこで、これらの問題点を解決するために、マイクロプロセッサ自身にデバッグ機能を埋め込むオンチップデバッグ方式が提案されている（例えば、特許文献１参照。）。
【０００４】
このオンチップデバッグ方式の一つとしてＥＪＴＡＧ（Enhanced JTAG）方式がある。ＥＪＴＡＧ方式は、バウンダリ・スキャン・テストに用いられているＪＴＡＧ用テスト回路にデバッグ回路を追加して、マイクロプロセッサを組み込んだシステムのソフトウェアのデバッグを可能としたものである。
【０００５】
このＥＪＴＡＧ方式によるオンチップデバッグを行う場合、図４に示すように、マイクロプロセッサ１０に組み込んだＥＪＴＡＧＴＡＰ（ＥＪＴＡＧテストアクセスポート）１００とデバッグホスト２０とをＥＪＴＡＧプローブ３０を介して接続する。これにより、デバッグホスト２０とマイクロプロセッサ１０との間でデバッグ制御用命令やデバッグに必要なデータの通信が行われる。
【０００６】
図５にＥＪＴＡＧＴＡＰ１００の概観を示す。
【０００７】
ＥＪＴＡＧＴＡＰ１００には、テスト動作を制御するＴＡＰコントローラ１０１と、デバッグ命令を書き込む命令レジスタ１０２と、複数のデータレジスタを有するデータレジスタ群１０３が含まれる。
【０００８】
また、ＥＪＴＡＧＴＡＰ１００には、デバッグホスト２０と通信を行う端子として、テストクロック（ＴＣＫ）、テストモード（ＴＭＳ）、テストデータイン（ＴＤＩ）、テストデータアウト（ＴＤＯ）があり、オプションとしてテストリセット（ＴＲＳＴ）を設けることができる。
【０００９】
データレジスタ群１０３には、デバッグメモリ空間のアドレスを指定するアドレスレジスタ１０３１と、アドレスレジスタ１０３１で指定したアドレスのデータをデバッグメモリ空間から転送して書き込むデータレジスタ１０３２と、プロセッサのリセットなどの制御を行うコントロールレジスタ１０３３が含まれる。どのデータレジスタが選択されるかは命令レジスタ１０２の値による。
【００１０】
コントロールレジスタ１０３３には、ＰｒＡｃｃ信号が書き込まれるＰｒＡｃｃ領域が含まれている。このＰｒＡｃｃ信号はプロセッサアクセスのペンディングを制御する。すなわち、ＰｒＡｃｃ＝１のときはプロセッサアクセスをペンディングし、ＰｒＡｃｃ＝０のときはプロセッサアクセスのペンディングを解除する。
【００１１】
命令レジスタ１０２とデータレジスタ群１０３の各レジスタは、従来、それぞれシフトレジスタで構成されており、入力は入力端子ＴＤＩに共通に接続され、出力はセレクタ１０３４およびセレクタ１０４を介して出力端子ＴＤＯに接続されている。命令レジスタ１０２と複数のデータレジスタ群１０３のどのレジスタにデータが入力されるかは、ＴＡＰコントローラ１０１により制御される。
【００１２】
図６に、ＴＡＰコントローラ１０１の状態遷移図を示す。
【００１３】
ＴＡＰコントローラ１０１の状態遷移はＴＭＳの値によって制御され、各状態（ステート）における動作はＴＣＫに同期している。
【００１４】
図６において、Select-DR-ScanからUpdate-DR（DR：データレジスタ）に至る状態遷移は、データレジスタ群１０３の各レジスタに対するデータの読み書きの実行を表し、Select-IR-ScanからUpdate-IR（IR：インストラクションレジスタ）に至る状態遷移は、命令レジスタ１０２に対するデータの読み書きの実行を表す。
【００１５】
そこで、マイクロプロセッサ１０がデバッグ状態になって、デバッグホスト２０のデバッグメモリ空間から取得したデータを転送してデータレジスタ１０３２に書き込もうとする場合、コントロールレジスタ１０３３とアドレスレジスタ１０３１とデータレジスタ１０３２の３種類のレジスタの読み書きを制御する必要がある。そのため、読み書きするレジスタを切り替える際に命令レジスタ１０２へ書き込む命令コードを毎回書き換える必要がある。
【００１６】
マイクロプロセッサ１０がデバッグ状態になって、デバッグメモリ空間から取得したデータを転送してデータレジスタ１０３２に書き込もうとする場合、マイクロプロセッサ１０がＰｒＡｃｃ＝１にした後、各レジスタの読み書きが次のように行われる。
【００１７】
（１）ＰｒＡｃｃ＝１を確認するためのコントロールレジスタ１０３３の読み出し
（２）アドレスレジスタ選択命令の命令レジスタ１０２への書き込み
（３）アドレス値のアドレスレジスタ１０３１からの読み出し
（４）データレジスタ選択命令の命令レジスタ１０２への書き込み
（５）データのデータレジスタ１０３２への書き込み
（６）コントロールレジスタ選択命令の命令レジスタ１０２への書き込み
（７）デバッグホスト２０からＰｒＡｃｃ＝０をコントロールレジスタ１０３３へ書き込み
【００１８】
いま、アドレスレジスタ１０３１、データレジスタ１０３２およびコントロールレジスタ１０３３をそれぞれ３２ビットとすると、Select-DR-ScanからUpdate-DRに至ってSelect-DR-Scanに戻る状態遷移にそれぞれ３６クロックを要し、命令レジスタ１０２を８ビットとすると、Select-IR-ScanからUpdate-IRに至ってSelect-IR-Scanに戻る状態遷移に１３クロックを要する。したがって、この場合、上述の（１）〜（７）の手順の実行に要するクロック数は、１８３（＝３６＋１３＋３６＋１３＋３６＋１３＋３６）となる。
【００１９】
このように、デバッグ用に用いられる図５に示した従来のデータレジスタ群の構成では、デバッグのときにデバッグメモリ空間の連続するアドレスのデータを連続してデータレジスタへ転送する場合にも、上述の手順を繰り返し実行する必要があり、データの転送に多くのクロック数を要するという問題があった。
【特許文献１】特開２００４−２０６２８３号公報  （第４ページ、図１）
【発明の開示】
【発明が解決しようとする課題】
【００２０】
そこで、本発明の目的は、デバッグメモリ空間の連続するアドレスのデータの転送を少ないクロック数で行うことができるデバッグ用レジスタ、およびデータ転送方法を提供することにある。
【課題を解決するための手段】
【００２１】
本発明の一態様によれば、ＥＪＴＡＧ準拠のマイクロプロセッサに搭載されるデバッグ用レジスタであって、アドレスレジスタと、データレジスタと、プロセッサアクセスのペンディングを制御するＰｒＡｃｃ信号が格納される第１のＰｒＡｃｃレジスタと、前記ＰｒＡｃｃ信号が格納される第２のＰｒＡｃｃレジスタと、前記ＰｒＡｃｃ信号が書き込まれるＰｒＡｃｃ領域を有するコントロールレジスタとを具備することを特徴とするデバッグ用レジスタが提供される。
【００２２】
また、本発明の別の一態様によれば、ＥＪＴＡＧ準拠のマイクロプロセッサに搭載されるデバッグ用レジスタであって、パラレル入力およびパラレル出力機能を有するシフトレジスタと、パラレル入力およびパラレル出力機能を有してプロセッサアクセスのペンディングを制御するＰｒＡｃｃ信号が格納されるＰｒＡｃｃレジスタと、前記シフトレジスタからパラレル出力されたデータが書き込まれるアドレスレジスタと、前記シフトレジスタからパラレル出力されたデータが書き込まれるデータレジスタと、前記シフトレジスタおよび前記ＰｒＡｃｃレジスタからパラレル出力されたデータが書き込まれるＰｒＡｃｃビット領域を有するコントロールレジスタとを具備し、前記アドレスレジスタおよび前記コントロールレジスタの前記ＰｒＡｃｃ領域からパラレル出力されたデータが前記シフトレジスタおよび前記ＰｒＡｃｃレジスタにパラレル入力されることを特徴とするデバッグ用レジスタが提供される。
【００２３】
また、本発明の一態様によれば、デバッグ用レジスタとしてアドレスレジスタ、データレジスタおよびＰｒＡｃｃレジスタを備えるＥＪＴＡＧ準拠のマイクロプロセッサのデバッグ用レジスタへのデータの転送方法であって、アドレスレジスタおよびＰｒＡｃｃレジスタからのデータのシフトアウトとデータレジスタおよびＰｒＡｃｃレジスタへのデータのシフトインの同時実行、および前記シフトアウトした前記アドレスレジスタの値が予想した値であったときに前記シフトインしたデータのデータレジスタおよびＰｒＡｃｃレジスタへの書き込みの実行を行う命令を備え、デバッグメモリ空間の連続するアドレスから順次データを取得して前記データレジスタに順次書き込むときは前記命令を用い、前記命令を実行するときに、前記シフトインするデータとして、次にアクセスが予想されるアドレスから取得したデータと、デバッグが継続して実行されるようプロセッサアクセスのペンディングを制御するＰｒＡｃｃデータを入力することを特徴とするデータ転送方法が提供される。
【発明の効果】
【００２４】
本発明によれば、１つの命令の実行だけでアドレスレジスタからのアドレス値の読み出しとデータレジスタへのデータの書き込みを連続して実行するので、少ないクロック数でデバッグメモリ空間の連続するアドレスのデータを連続してデータレジスタへ転送することができ、データ転送速度の向上を図ることができる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施例を図面を参照して説明する。
【実施例１】
【００２６】
図１は、本発明の実施例１に係るデバッグ用レジスタの構成を示すブロック図である。
【００２７】
デバッグ用レジスタを構成するデータレジスタ群1は、アドレスレジスタ１１と、データレジスタ１２と、コントロールレジスタ１３と、第１のＰｒＡｃｃレジスタ１１Ａと、第２のＰｒＡｃｃレジスタ１２Ａとを含む。
【００２８】
アドレスレジスタ１１、データレジスタ１２およびコントロールレジスタ１３は、それぞれシフトレジスタを形成し、入力は共通の入力端子に接続されている。この入力端子は、図５に示したＥＪＴＡＧＴＡＰ１００のＴＤＩに接続される。
【００２９】
アドレスレジスタ１１の出力は第１のＰｒＡｃｃレジスタ１１Ａに接続されており、アドレスレジスタ１１と第１のＰｒＡｃｃレジスタ１１Ａを連結させて１つのシフトレジスタとして動作させることができる。
【００３０】
データレジスタ１２の出力は第２のＰｒＡｃｃレジスタ１２Ａに接続されており、データレジスタ１２と第２のＰｒＡｃｃレジスタ１２Ａを連結させて１つのシフトレジスタとして動作させることができる。
【００３１】
アドレスレジスタ１１の出力、データレジスタ１２の出力、コントロールレジスタ１３の出力、第１のＰｒＡｃｃレジスタ１１Ａの出力および第２のＰｒＡｃｃレジスタ１２Ａの出力はセレクタ１４に接続されており、デバッグ命令の種類によりどのレジスタの出力が出力端子に出力されるかが決定される。出力端子は、図５に示したＥＪＴＡＧＴＡＰ１００のＴＤＯに接続される。
【００３２】
第１のＰｒＡｃｃレジスタ１１Ａおよび第２のＰｒＡｃｃレジスタ１２Ａには、プロセッサアクセスのペンディングを制御するＰｒＡｃｃ信号の値が書き込まれる。第１のＰｒＡｃｃレジスタ１１ＡへのＰｒＡｃｃ信号の値の書き込みは、第１のＰｒＡｃｃレジスタ１１Ａをアドレスレジスタ１１に連結させて、入力端子（ＴＤＩ）からＰｒＡｃｃ信号の値をシフトインさせることによって行われる。同様に、第２のＰｒＡｃｃレジスタ１２ＡへのＰｒＡｃｃ信号の値の書き込みは、第２のＰｒＡｃｃレジスタ１２Ａをデータレジスタ１２に連結させて、入力端子（ＴＤＩ）からＰｒＡｃｃ信号の値をシフトインさせることによって行われる。
【００３３】
コントロールレジスタ１３にはＰｒＡｃｃ信号を書き込むＰｒＡｃｃ領域１３Ａがあり、マイクロプロセッサによるＰｒＡｃｃ信号値の書き込みが行われる。このＰｒＡｃｃ領域１３Ａに書き込まれたＰｒＡｃｃ信号値は、図６に示すＴＡＰコントローラの状態の中のCapture-DRステートのときに第１のＰｒＡｃｃレジスタ１１Ａへ書き込まれる。また、第２のＰｒＡｃｃレジスタ１２ＡをシフトインされたＰｒＡｃｃ信号値は、図６に示すＴＡＰコントローラの状態の中のUpdate-DRステートのときにコントロールレジスタ１３のＰｒＡｃｃ領域１３Ａに書き込まれる。
【００３４】
マイクロプロセッサがデバッグ状態になって、デバッグホスト２０のデバッグメモリ空間から取得したデータを転送して本実施例のデータレジスタ１２に書き込む場合は、アドレスレジスタ１１と第１のＰｒＡｃｃレジスタ１１Ａを連結し、データレジスタ１２と第２のＰｒＡｃｃレジスタ１２Ａを連結し、ＴＤＩからＰｒＡｃｃの値を第１のＰｒＡｃｃレジスタ１１Ａあるいは第２のＰｒＡｃｃレジスタ１２Ａをシフトインすることによってプロセッサアクセスのペンディングを制御する。
【００３５】
次に、図２のフローチャートを用いて、本実施例のデータレジスタ１２にデバッグメモリ空間の連続するアドレスのデータを連続して書き込む方法を説明する。
【００３６】
ここで、新たなデバッグ用命令として「ダウンロード命令」を設ける。この「ダウンロード命令」が命令レジスタにあるときは、図６に示すＴＡＰコントローラの状態の中のShift-DR状態では、アドレスレジスタ１１と第１のＰｒＡｃｃレジスタ１１Ａを連結した値がＴＤＯからシフトアウト出力され、Update-DRステートでは、データレジスタ１２と第２のＰｒＡｃｃレジスタ１２Ａを連結して構成したシフトレジスタシフトへＴＤＩからシフトイン入力された値が書き込まれる。
【００３７】
また、アドレスレジスタ１１とデータレジスタ１２は、それぞれ３２ビットで構成されるものとする。
【００３８】
デバッグメモリ空間の連続するアドレスのデータを連続してマイクロプロセッサへ転送する状況になると、まず、命令レジスタへ「ダウンロード命令」を書き込む（ステップＳ１）。
【００３９】
次いで、ＴＡＰコントローラの制御により、Select-DR→Capture-DR→Shift-DR×３２回を実行すると、ＴＤＯにはアドレスレジスタ１１の値と第１のＰｒＡｃｃレジスタ１１Ａの値がシフトアウト出力され、ＴＤＩからはデータレジスタ１２へのデータと第２のＰｒＡｃｃレジスタ１２Ａへ書き込む値としてＰｒＡｃｃ＝０がシフトイン入力される（ステップＳ２）。このとき、データレジスタ１２へ入力するデータとしては、アドレスが連続することを予想して次のアドレスに格納されているデータの値をＴＤＩへ与える。
【００４０】
ここで、シフトアウトされたＰｒＡｃｃ信号の値を確認する（ステップＳ３）。このときシフトアウトされたＰｒＡｃｃ値は、マイクロプロセッサが書き込んだ値である。この値が‘１’であるときは、マイクロプロセッサがデバッグを要求しており、‘０’であるときは、マイクロプロセッサからのデバッグ要求が発生していないことを意味する。
【００４１】
そこで、シフトアウトされたＰｒＡｃｃ信号値が‘０’であるときは、さらにShift-DRを実行して、ＰｒＡｃｃ＝１をシフトインし（ステップＳ４）、Exit1-DRステートを経由してUpdate-DRステートへ遷移して（ステップＳ５）、第２のＰｒＡｃｃレジスタ１２ＡへＰｒＡｃｃ＝１を書き込んで（ステップＳ６）、ステップＳ２へ戻る。ただし、この第２のＰｒＡｃｃレジスタ１２ＡへＰｒＡｃｃ＝１を書き込む行為は、ＥＪＴＡＧ仕様上は無視される。
【００４２】
一方、ＴＤＯから読み出されたＰｒＡｃｃ値が‘１’であるときは、同時にＴＤＯから読み出されたアドレスレジスタ１１の値が予想したアドレスと一致するかどうかを判定する（ステップＳ７）。
【００４３】
ＴＤＯから読み出されたアドレスレジスタ１１の値が予想したアドレスと一致したときは（ＹＥＳ）、ステップＳ２で既にデータレジスタ１２へのデータとＰｒＡｃｃ＝０を入力しているので、Exit1-DRステートを経由してUpdate-DRステートへ遷移し（ステップＳ８）、この遷移により、入力されたデータをデータレジスタ１２へ書き込み、ＰｒＡｃｃ＝０をコントロールレジスタ１３のＰｒＡｃｃ領域１３Ａに書き込む（ステップＳ９）。
【００４４】
コントロールレジスタ１３のＰｒＡｃｃ領域１３ＡにＰｒＡｃｃ＝０が書き込まれると、プロセッサアクセスのペンディングが解除されて、マイクロプロセッサは、プログラムに記述された一定の処理を実行する。その処理の実行後、マイクロプロセッサが再びコントロールレジスタ１３のＰｒＡｃｃ領域１３ＡにＰｒＡｃｃ＝1をセットすると、ステップＳ２における次の連続データの入力が実行される。
【００４５】
一方、もし、ＴＤＯから読み出されたＰｒＡｃｃ値が‘０’であるときは、連続データの終了と判断できるので、ＴＤＯから読み出されたアドレスレジスタ１１の値に該当するアドレスに格納されているデータとＰｒＡｃｃ信号値としてＰｒＡｃｃ＝０をＴＤＩからシフトイン入力する（ステップＳ１０）。
【００４６】
続いて、Exit1-DRステートを経由してUpdate-DRステートへ遷移し（ステップＳ１１）、シフトイン入力されたデータをデータレジスタ１２へ書き込み、ＰｒＡｃｃ＝０をコントロールレジスタ１３のＰｒＡｃｃ領域１３Ａに書き込んで（ステップＳ１２）、「ダウンロード命令」の実行を終了する。
【００４７】
上述した方法によれば、「ダウンロード命令」を1回命令レジスタに書き込むだけで、デバッグメモリ空間の連続するアドレスのデータをデータレジスタへ連続して書き込むことができる。これにより、従来、アドレスレジスタとデータレジスタの切り替えのたびに命令レジスタへの命令コードの書き換えが必要だったのに対し、大幅に処理クロック数を減少させることができる。
【００４８】
例えば、1回のデータの転送に要するクロック数をＴＡＰコントローラの状態遷移に沿って、各ステートの後の括弧の中に示すと次のようになる。
【００４９】
Select-DR（１）→Capture-DR（１）→Shift-DR（１）×３２→Exit1-DR（１）→Update-DR（１）→Select-DR（１）となり、合計３７クロックで済む。これは、従来、同じ処理に１８３クロックを要していたのに対して大幅な処理クロック数の減少であり、その分データの転送を高速に行うことができる。
【実施例２】
【００５０】
図３は、本発明の実施例２に係るデバッグ用レジスタの構成を示すブロック図である。
【００５１】
デバッグ用レジスタを構成するデータレジスタ群２は、シフトレジスタ２０と、ＰｒＡｃｃレジスタ２０Ａと、アドレスレジスタ２１と、データレジスタ２２と、コントロールレジスタ２３とを含む。コントロールレジスタ２３には、ＰｒＡｃｃ信号の書き込み領域としてＰｒＡｃｃ領域２３Ａがある。
【００５２】
本実施例では実施例１とは異なり、シフトレジスタ２０のみが入力端子（ＴＤＩ）に接続され、シフトレジスタ２０にＰｒＡｃｃレジスタ２０Ａを連結したＰｒＡｃｃレジスタ２０Ａの出力、またはシフトレジスタ２０単独の出力がセレクタ２４で選択されて出力端子（ＴＤＯ）に出力される。その選択はデバッグ命令の種類による。
【００５３】
シフトレジスタ２０およびＰｒＡｃｃレジスタ２０Ａは、それぞれパラレル入力機能およびパラレル出力機能を有する。シフトレジスタ２０からパラレル出力されたデータは、データレジスタ２２あるいはコントロールレジスタ２３のいずれかに書き込まれる。ただし、コントロールレジスタ２３のＰｒＡｃｃ領域２３Ａには、ＰｒＡｃｃレジスタ２０Ａからパラレル出力されたＰｒＡｃｃ値を書き込むこともできる。
【００５４】
一方、アドレスレジスタ２１、データレジスタ２２、コントロールレジスタ２３のいずれかから出力されたデータは、シフトレジスタ２０へパラレル入力される。ただし、コントロールレジスタ２３のＰｒＡｃｃ領域２３Ａから出力されたＰｒＡｃｃ値は、ＰｒＡｃｃレジスタ２０Ａへパラレル入力される。
【００５５】
このような構成により、本実施例のアドレスレジスタ２１、データレジスタ２２、コントロールレジスタ２３に対するシフトイン入力およびシフトアウト出力は、１つのシフトレジスタ２０および１つのＰｒＡｃｃレジスタ２０Ａを用いて行うことができる。
【００５６】
本実施例のデータレジスタ２２にデバッグメモリ空間の連続するアドレスのデータを連続して書き込む場合、実施例１と同様、「ダウンロード命令」を新たに設ける。ただし、本実施例における「ダウンロード命令」は次のように機能する。
【００５７】
すなわち、本実施例において「ダウンロード命令」が命令レジスタにあるときは、ＴＡＰコントローラのCapture-DRステートでは、アドレスレジスタ２１からパラレル出力されたデータをシフトレジスタ２０へパラレル入力し、コントロールレジスタ２３のＰｒＡｃｃ領域２３Ａから出力されたＰｒＡｃｃ値をＰｒＡｃｃレジスタ２０Ａへパラレル入力する。また、Shift-DRステートでは、Capture-DRステートで入力されたアドレス値とＰｒＡｃｃ値をＴＤＯへシフトアウト出力すると同時に、ＴＤＩからデータレジスタに書き込むデータとＰｒＡｃｃ値をシフトイン入力する。さらに、Update-DRステートでは、シフトイン入力されたデータをデータレジスタ２２へ書き込み、ＰｒＡｃｃ値をコントロールレジスタ２３のＰｒＡｃｃ領域２３Ａへ書き込む。
【００５８】
このような「ダウンロード命令」を用いて、図２に示したフローを実行することにより、本実施例においても実施例1と同様に、デバッグメモリ空間の連続するアドレスのデータを少ないクロック数でデータレジスタに書き込むことができる。
【００５９】
このような本実施例のデータレジスタ群の構成によれば、入力端子（ＴＤＩ）に接続されるシフトレジスタは、アドレスレジスタ、データレジスタ、コントロールレジスタ共通に１個設けるだけでよく、回路構成を簡略化することができる。
【図面の簡単な説明】
【００６０】
【図１】本発明の実施例１に係るデバッグ用レジスタの構成を示すブロック図。
【図２】本発明の実施例に係るデータ転送方法のフローを示すフローチャート。
【図３】本発明の実施例２に係るデバッグ用レジスタの構成を示すブロック図。
【図４】ＥＪＴＡＧを用いたデバッグシステムを示す図。
【図５】ＥＪＴＡＧ準拠のマイクロプロセッサのＴＡＰの構成の例を示すブロック図。
【図６】ＥＪＴＡＧ準拠のマイクロプロセッサのＴＡＰコントローラの状態遷移図。
【符号の説明】
【００６１】
１、２  データレジスタ群
１１、２１  アドレスレジスタ
１２、２２  データレジスタ
１３、２３  コントロールレジスタ
１１Ａ、１２Ａ、２０Ａ  ＰｒＡｃｃレジスタ
１３Ａ、２３Ａ  ＰｒＡｃｃ領域
１４、２４  セレクタ
２０  シフトレジスタ
【図１】
2006146757.tif 000003
【図２】
2006146757.tif 000004
【図３】
2006146757.tif 000005
【図４】
2006146757.tif 000006
【図５】
2006146757.tif 000007
【図６】
2006146757.tif 000008