(57)【特許請求の範囲】
【請求項１】
CPUとバスコントローラを内蔵するマイクロコントローラにおいて，
前記ＣＰＵとバスコントローラとの間に設けられた分岐信号線，命令フェッチ要求信号線，第１のビット数の命令アドレスバス及び命令コードバスと，
前記分岐信号線と命令フェッチ要求信号線と命令アドレスバスと命令コードバスとが接続されたデバッグサポートユニットとを有し，
前記デバッグサポートユニットは，外部のインサーキットエミュレータに，前記第１のビット数より少ないビット数のツールバスと該ツールバスのステータスを通知するバスステータス信号線とを介して接続され，
更に，前記デバッグサポートユニットは，
命令アドレスをパラレル・シリアル変換するパラレル・シリアル変換回路と，
前記ＣＰＵから前記命令アドレスと共に受信した分岐信号と命令フェッチ要求信号に応答して分岐情報と命令フェッチ要求を有するステータス情報信号を生成するステータス情報生成回路と，
ステータス情報信号に応答して前記バスステータス信号線に命令アドレス出力信号を出力するステータス出力回路と，
前記ステータス情報信号に応答して，前記分岐情報が分岐有りの時は前記変換された命令アドレスを前記ツールバスにシリアルに出力し，分岐情報が分岐なしの時は分岐なし信号を前記ツールバスに出力するデータ出力回路とを有することを特徴とするマイクロコントローラ。
【請求項２】
請求項１において，前記データ出力回路は，前記分岐情報が分岐有りの時は，前記変換された命令アドレスを前記ツールバスに複数サイクルにわたりシリアルに出力し，分岐情報が分岐なしの時は前記分岐なし信号を前記ツールバスに１サイクルで出力することを特徴とするマイクロコントローラ。
【請求項３】
CPUとバスコントローラを内蔵するマイクロコントローラにおいて，
前記ＣＰＵとバスコントローラとの間に設けられた分岐信号線，命令フェッチ要求信号線，第１のビット数の命令アドレスバス及び命令コードバスと，
前記分岐信号線と命令フェッチ要求信号線と命令アドレスバスと命令コードバスとが接続されたデバッグサポートユニットとを有し，
前記デバッグサポートユニットは，外部のインサーキットエミュレータに，前記第１のビット数より少ないビット数のツールバスと該ツールバスのステータスを通知するバスステータス信号線とを介して接続され，
更に，前記デバッグサポートユニットは，
命令アドレスをパラレル・シリアル変換するパラレル・シリアル変換回路と，
前記ＣＰＵから前記命令アドレスと共に受信した分岐信号と命令フェッチ要求信号に応答して分岐情報と命令フェッチ要求を有するステータス情報信号を生成するステータス情報生成回路と，
前記ステータス情報信号に応答して前記バスステータス信号線に命令アドレス出力信号を出力するステータス出力回路と，
前記ステータス情報信号に応答して前記変換された命令アドレスを前記ツールバスにシリアルに出力するデータ出力回路とを有し，
前記ステータス情報生成回路は，次の命令フェッチ要求を受信する前に，現在の命令フェッチ要求に対応した命令コードの受信を完了した時，当該現在の命令フェッチ要求の命令アドレスに続く命令アドレスの命令コードを読み出す命令プリフェッチ要求のためのプリフェッチステータス情報信号を生成することを特徴とするマイクロコントローラ。
【請求項４】
請求項３において，前記ステータス情報生成回路は，前記命令プリフェッチ要求を開始した後，前記ＣＰＵから命令フェッチ要求を受け付けて分岐有りの分岐信号を受信したとき，前記命令プリフェッチ要求についての制御をキャンセルすることを特徴とするマイクロコントローラ。
【請求項５】
請求項３において，前記データ出力回路は，前記プリフェッチステータス情報信号に応答して，命令アドレスに代えて分岐なし信号を前記ツールバスに出力することを特徴とするマイクロコントローラ。
【請求項６】
請求項３において，前記ステータス情報生成回路は，前記ツールバスが使用中でなく，前記インサーキットエミュレータから受信される命令コードを格納するバッファに空きがあるとき，前記プリフェッチステータス情報信号を生成することを特徴とするマイクロコントローラ。
【請求項７】
CPUとバスコントローラを内蔵するマイクロコントローラにおいて，
前記ＣＰＵとバスコントローラとの間に設けられた命令フェッチ要求信号線またはデータアクセス要求信号線と，第１のビット数のアドレスバスと，
前記命令フェッチ要求信号線またはデータアクセス要求信号線と，アドレスバスが接続されたデバッグサポートユニットとを有し，
前記デバッグサポートユニットは，外部のインサーキットエミュレータに，前記第１のビット数より少ないビット数のツールバスと該ツールバスのステータスを通知するバスステータス信号線とを介して接続され，
更に，前記デバッグサポートユニットは，
アドレスに含まれる有効アドレスと当該有効アドレスの有効桁数信号とを有するエンコードアドレスを出力するエンコーダと，
前記エンコードアドレスをパラレル・シリアル変換するパラレル・シリアル変換回路と，
前記ＣＰＵから前記アドレスと共に受信した命令フェッチ要求信号またはデータアクセス要求信号に応答して，命令フェッチ要求またはデータアクセス要求を有するステータス情報信号を前記有効桁数信号の有効桁数のサイクル期間生成するステータス情報生成回路と，
前記ステータス情報信号に応答して，前記バスステータス信号線にアドレス出力信号を出力するステータス出力回路と，前記ステータス情報信号に応答して，前記エンコードアドレスを前記ツールバスにシリアルに出力するデータ出力回路とを有するマイクロコントローラ。
【請求項８】
CPUとバスコントローラを内蔵するマイクロコントローラにおいて，
前記ＣＰＵとバスコントローラとの間に設けられた命令フェッチ要求線と，命令アドレスをパラレルに転送する第１のビット数の命令アドレスバスと，
前記命令フェッチ要求線と命令アドレスバス接続されたデバッグサポートユニットとを有し，
前記デバッグサポートユニットは，外部のインサーキットエミュレータに，前記第１のビット数より少ないビット数のツールバスと該ツールバスのステータスを通知するバスステータス信号線とを介して接続され，
更に，前記デバッグサポートユニットは，
前記ＣＰＵから前記命令アドレスと共に受信した命令フェッチ要求が分岐あり命令の場合は，命令アドレスをパラレル・シリアル変換して，当該変換された命令アドレスを前記ツールバスにシリアルに出力し，前記命令フェッチ要求が分岐なし命令の場合は，分岐なし信号を前記ツールバスに出力することを特徴とするマイクロコントローラ。
【請求項９】
CPUとバスコントローラを内蔵するマイクロコントローラにおいて，
前記ＣＰＵとバスコントローラとの間に設けられた命令フェッチ要求信号線と，命令アドレスをパラレルに転送する第１のビット数の命令アドレスバス及び命令コードバスと，
前記命令フェッチ要求信号と命令アドレスバスと命令コードバスとが接続されたデバッグサポートユニットとを有し，
前記デバッグサポートユニットは，外部のインサーキットエミュレータに，前記第１のビット数より少ないビット数のツールバスと該ツールバスのステータスを通知するバスステータス信号線とを介して接続され，
更に，前記デバッグサポートユニットは，前記ＣＰＵから前記命令アドレスと共に受信した命令フェッチ要求信号に応答して前記命令アドレスを前記ツールバスにシリアルに出力し，次の命令フェッチ要求を受信する前に当該命令フェッチ要求に対応する命令コードを前記インサーキットエミュレータから受信した時に，命令プリフェッチ制御を開始することを特徴とするマイクロコントローラ。
【請求項１０】
CPUとバスコントローラを内蔵するマイクロコントローラにおいて，
前記ＣＰＵとバスコントローラとの間に設けられた命令フェッチ要求信号線と，第１のビット数のアドレスバスと，
前記命令フェッチ要求信号とアドレスバスが接続されたデバッグサポートユニットとを有し，
前記デバッグサポートユニットは，外部のインサーキットエミュレータに，前記第１のビット数より少ないビット数のツールバスと該ツールバスのステータスを通知するバスステータス信号線とを介して接続され，
更に，前記デバッグサポートユニットは，アドレスに含まれる有効アドレスと当該有効アドレスの有効桁数信号とを有するエンコードアドレスを生成し，前記ＣＰＵから前記アドレスと共に受信した命令フェッチ要求信号またはデータアクセス要求信号に応答して，前記エンコードアドレスを前記ツールバスにシリアルに出力するデータ出力回路とを有するマイクロコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は，デバッグサポートユニット（以下DSU）を有するマイクロコントローラに関し，特に，デバッグ用のプログラムやデータを記憶し，プログラムの命令コード実行時におけるＣＰＵの状態をモニタする機能を有するインサーキットエミュレータ（ICE）に対して，命令フェッチやデータアクセスを高速に行うことができるDSUを有するマイクロコントローラに関する。
【０００２】
【従来の技術】
コンピュータの周辺機器や家電などの被制御装置に組み込まれるマイクロコントローラは，制御プログラムやデータを記録した外付けのメモリと外部バスを介して接続され，そのメモリに対して命令フェッチ要求を出して命令コードを読み出し，データアクセス要求を出して所定のデータを読み出しまたは書き込みする。
【０００３】
かかるマイクロコントローラでは，開発段階でのデバッグ工程で，制御プログラムやデータを記憶し，命令コード実行時のマイクロコントローラ内の状態をモニタするなどの機能を有するインサーキットエミュレータ（ICE）をマイクロコントローラに接続して，エミュレータモードで動作させることが行われる。このエミュレータモードでの動作を可能にするために，開発段階のマイクロコントローラ内にはICEへのアクセスを制御するデバッグサポートユニット（DSU）が内蔵される。
【０００４】
マイクロコントローラは，ＣＰＵに加えて，外部バスとのアクセスのためにバスコントローラを内蔵する。そして，ＣＰＵとバスコントローラとは，多ビット構成のアドレスバスやデータバスとで接続され，両者はアクセス時のアドレスやデータをパラレルに送受信することができる。これらのバスアーキテクチャは，ＣＰＵ側が，バスコントローラからのウエイト信号が解除状態である時にアドレスと共にアクセス要求を出し，バスコントローラはそのアクセス要求を受け付けるとウエイト信号をウエイト状態にして外部にアクセスし，やがてアクセスされたデータや命令コードを取得すると，バスコントローラがＣＰＵにそれらのデータや命令コードを送信して，ウエイト信号を解除するという，単純な構成をとるのが一般的である。
【０００５】
このようなマイクロコントローラにおいて，上記のエミュレータモードでのデバッグを実施するためには，アドレスバスやデータバスをDSUにも接続し，DSUが外付けのICEとの間のアクセス制御を行うことが必要になる。つまり，DSUがCPUからのアクセス要求を取得してウエイト信号をウエイト状態にしてICEにアクセス要求を出し，ICEからデータや命令コードを取得したら，それをＣＰＵに送信すると共にウエイト信号を解除する。
【０００６】
【発明が解決しようとする課題】
しかしながら，外付けのICEは，プログラムやデータを記憶すると共に，マイクロコントローラの内部状態をモニタする機能を有する。かかる内部状態をモニタするための信号線の本数は，膨大な数に上り，それだけでマイクロコントローラの外部ピンの大部分を占めてしまう。その結果，DSUとICE間のデータやアドレスの転送用のツールバスに利用できる外部ピンの数には自ずと限界があり，かかるツールバスは，マイクロコントローラ内部のデータバスのように多くのビット構成にすることはできない。そのため，DSUとICE間の少数ビット構成のツールバスを介して，アドレスやデータを時分割でシリアル転送しなければならない。
【０００７】
例えば，マイクロコントローラ内部のアドレスバスやデータバスは１６ビットあるいは３２ビット構成にして，アドレスやデータを１サイクルでパラレル転送されるのに対して，DSUとICEとの間のツールバスは４ビット構成であり，DSUはCPUから受信した上記アドレスやデータをパラレル・シリアル変換して，ICEに時分割でシリアル転送することになる。その後，DSUは，ICE側から受信した命令コードをシリアルパラレル変換し，CPU側に送信する。この一連の命令フェッチが完了するまで，DSUはCPUに対してウエイト信号を送出してウエイトをかける。
【０００８】
このようなデータ転送の制約は，エミュレートモード動作において，頻繁に命令フェッチが生じると，命令コードを取り込むだけでツールバスを大幅に占領してしまい，デバッグ処理のパフォーマンスが悪くなるという問題を招いてしまう。
【０００９】
そこで，本発明の目的は，ICEに対するアクセス制御を効率的に行うことができるDSUを内蔵したマイクロコントローラを提供することにある。
【００１０】
更に，本発明の目的は，ICEへのツールバス幅が狭くても，エミュレータモードにおいて，CPUの命令フェッチやデータアクセスを効率的に行うことができるマイクロコントローラを提供することにある。
【００１１】
【課題を解決するための手段】
上記の目的を達成するために，本発明の第１の側面は，マイクロコントローラにおいて，内部にＣＰＵとバスコントローラとそれらを接続する第１のビット数の命令アドレスバスと第２のビット数の命令コードバスとを有し，更に，前記命令アドレスバスと命令コードバスが接続されたデバッグサポートユニットとを有し，前記デバッグサポートユニットは，外部のインサーキットエミュレータに，前記第１のビット数より少ない第３のビット数のツールバスと該ツールバスのステータスを通知するバスステータス信号線を介して接続される。
【００１２】
上記の構成において，デバッグサポートユニットは，命令アドレスをパラレル・シリアル変換するパラレル・シリアル変換回路と，前記ＣＰＵから受信した分岐信号と命令フェッチ要求信号に応答して分岐情報と命令フェッチ要求を有するステータス情報信号を生成するステータス情報生成回路と，ステータス情報信号に応答してバスステータス信号線に命令アドレス出力信号を出力するステータス出力回路と，前記ステータス情報信号に応答して，前記分岐情報が分岐有りの時は前記変換された命令アドレスを前記ツールバスにシリアルに出力し，分岐情報が分岐なしの時は分岐なし信号を前記ツールバスに出力するデータ出力回路とを有する。
【００１３】
かかるデバッグサポートユニットは，ICEへのアクセス制御において，分岐なしの命令フェッチ要求があった時は，ツールバスから命令アドレスをシリアルに複数サイクルの期間かけてICEに転送するのではなく，分岐なし信号を例えば１サイクルだけICEに転送する。従って，命令フェッチ要求における命令アドレスの転送効率を高くすることができる。
【００１４】
上記の目的を達成するために，本発明の第２の側面は，上記第１の側面のマイクロコントローラと同様の構成において，デバッグサポートユニットは，命令アドレスをパラレル・シリアル変換するパラレル・シリアル変換回路と，ＣＰＵから受信した分岐信号と命令フェッチ要求信号に応答して分岐情報と命令フェッチ要求を有するステータス情報信号を生成するステータス情報生成回路と，ステータス情報信号に応答してバスステータス信号線に命令アドレス出力信号を出力するステータス出力回路と，ステータス情報信号に応答して前記変換された命令アドレスを前記ツールバスにシリアルに出力するデータ出力回路とを有し，前記ステータス情報生成回路は，次の命令フェッチ要求を受け付ける前に，現在の命令フェッチ要求に対応した命令コードの受信を完了した時，当該現在の命令フェッチ要求の命令アドレスに続く命令アドレスに対する命令プリフェッチ要求のためのプリフェッチステータス情報信号を生成することを特徴とする。
【００１５】
上記デバッグサポートユニットは，ＣＰＵに対してウエイト状態になっている間に現在の命令フェッチ要求に対するICEへの命令アドレス出力を完了すると，自発的に現在の命令アドレスに続く命令アドレスに対応する命令プリフェッチを実行する。かかるアクセス制御により，ＣＰＵへのウエイト状態が解除された後にＣＰＵが分岐なしの命令フェッチ要求を出した場合は，デバッグサポートユニットは，既にプリフェッチした命令コードを短時間でもしくは即刻ＣＰＵに返信することができる。従って，バス幅が狭いツールバスの使用効率を高めることができる。
【００１６】
上記の第２の側面において，命令プリフェッチ要求のために，上記発明の第１の側面で説明したように，分岐なし信号と命令アドレス出力信号とをツールバスとバスステータス信号線にそれぞれ出力することが好ましい。これにより，無駄になるかも知れない命令プリフェッチを，少ないサイクルで行うことができる。
【００１７】
更に，上記の第２の側面において，命令プリフェッチ要求のためにステータス情報信号を生成してICEへの命令プリフェッチ実行中に，ＣＰＵから分岐有りの命令フェッチ要求を受信した時は，ステータス情報生成回路は，前記命令プリフェッチ要求のためのステータス情報信号の生成を中止することが好ましい。
【００１８】
上記の目的を達成するために，本発明の第３の側面は，上記第１の側面のマイクロコントローラと同様の構成において，デバッグサポートユニットは，アドレスに含まれる有効アドレスと当該有効アドレスの有効桁数信号とを有するエンコードアドレスを出力するエンコーダと，前記エンコードアドレスをパラレル・シリアル変換するパラレル・シリアル変換回路と，前記ＣＰＵから受信した命令フェッチ要求信号またはデータアクセス要求信号に応答して，命令フェッチ要求またはデータアクセス要求を有するステータス情報信号を前記有効桁数サイクルだけ生成するステータス情報生成回路と，ステータス情報信号に応答してバスステータス信号線にアドレス出力信号を出力するステータス出力回路と，前記ステータス情報信号に応答して，前記エンコードアドレスを前記ツールバスにシリアルに出力するデータ出力回路とを有する。
【００１９】
上記のデバッグサポートユニットによれば，命令フェッチ要求やデータアクセス要求時に，有効アドレスに有効桁数を付加したエンコードされたアドレスをICEに転送するので，アドレス転送に必要なバスサイクルを短くすることができる。
【００２０】
【発明の実施の形態】
以下，図面を参照して本発明の実施の形態例を説明する。しかしながら，本発明の保護範囲は，以下の実施の形態例に限定されるものではなく，特許請求の範囲に記載された発明とその均等物にまで及ぶものである。
【００２１】
図１は，本実施の形態例におけるマイクロコントローラの構成を示す図である。マイクロコントローラ１は，ＣＰＵ２とバスコントローラ３とデバッグサポートユニット（DSU）４とを有し，それらは，命令フェッチ要求信号６と３２ビットの命令アドレスバス７と１６ビットの命令コードバス８により接続される。更に，CPU，バスコントローラ，DSUの間には，データアクセス要求信号線９とデータアドレスバス１０とデータバス１１が設けられる。そして，命令系とデータ系それぞれに対して，命令ウエイト信号線１２とデータウエイト信号線１３とが設けられる。
【００２２】
CPU２は，バスコントローラ３に対して，命令フェッチ要求信号と命令アドレスを出力し，外部バス１５に接続される外部のメモリから命令コードをフェッチする。バスコントローラ３は，命令フェッチ要求信号を受信すると命令ウエイト信号を返して，CPUをウエイト状態にし，命令コードを命令コードバス８に出力するとウエイト状態を解除して，次の命令フェッチ要求信号を受け付ける。データアクセス要求も同様にして行われる。
【００２３】
マイクロコントローラ１は，デバッグ用のプログラムやマイクロコントローラ内の状態を監視するためのトレース機能を有するICEとのインターフェースを行うDSU４を内蔵する。そして，デバッグ工程では，CPUはDSUに対して命令フェッチ要求やデータアクセス要求を出して，エミュレータモードで動作する。
【００２４】
DSU４とICE５とは，命令コードバス８やデータバス１１に比較して少ないビット数，例えば４ビットのツールバス１６で接続されている。そして，DSU４は，３ビットのバスステータス信号線１７により，ICE５に対してツールバス１６の状態やツールバスに出力された信号の種類を出力する。
【００２５】
バスステータス信号１７により，非動作状態（ノーオペレーションNOP）と，命令アドレス，データリードアドレス，データライトアドレス，データ取り込みまたは命令コード取り込み，ライトデータの少なくとも６種類のツールバス状態がICEに通知される。
【００２６】
トレース用信号線１８は，１００本以上になる場合があり，その結果，ツールバス１６は，マイクロコントローラが内蔵する命令アドレスバス７やデータアドレスバス１０に比較するとビット数が少ない。そのため，DSUは，CPUから送信されるアドレスをパラレル・シリアル変換して，ツールバスを介してICE５に４ビットづつシリアルに転送する。従って，命令フェッチ要求やデータアクセス要求が頻繁に繰り返されると，ツールバス１６のビット数が少ないので，デバッグ処理のパフォーマンスが悪くなる。
【００２７】
図２は，本実施の形態例の原理を説明するための図である。図２（Ａ）にDSU内部のアクセス制御部の構成図，図２（Ｂ）にその動作タイミングチャート図，図２（Ｃ）に従来の動作タイミングチャート図をそれぞれ示す。
【００２８】
DSUのアクセス制御部は，図２（Ａ）に示されるとおり，CPUからの分岐信号１４と命令フェッチ要求信号６とを受信して，分岐情報と命令フェッチ要求とを含むステータス情報信号S20を生成するステータス情報生成回路２０と，ステータス情報信号S20に応答してバスステータス信号線１７に命令アドレス出力信号を出力するステータス出力回路２２と，CPUからパラレルに供給される３２ビットの命令アドレスをパラレル・シリアル変換して，４ビットのアドレスをシリアルに出力するパラレル・シリアル変換回路２４と，シリアルアドレスをツールバス１６に出力するデータ出力回路２８とを有する。分岐信号は，命令フェッチ対象の命令コードのアドレスが連続する時は分岐なし情報を，連続しない時は分岐有り情報を含む。CPU内部では通常，分岐のありなしを解析済みであるが，CPUがかかる分岐信号を出力しない場合は，DSU側で命令アドレスを比較することで検出することができる。
【００２９】
ステータス情報生成回路２０は，CPUが供給するフェッチ対象の命令が分岐有りの場合は，命令アドレスをシリアルに出力するために必要なバスサイクル数だけステータス情報信号S20を出力する。従って，ステータス情報生成回路２０内には，カウンタが内蔵されている。一方，ステータス情報生成回路２０は，分岐無しの場合は，ステータス情報信号S20は１バスサイクルのみしか出力しない。その場合，データ出力回路２８は，ステータス情報信号S20が有する分岐なし情報に応答して，ツールバス１６に，分岐なし信号を出力する。
【００３０】
図２（Ｃ）に示されるとおり，従来の命令フェッチ動作では，ステータス出力回路２２がバスステータス信号として，NOPの後の４番目のクロックから１１番目のクロックまでの８バスサイクルの期間，アドレス出力信号を出力し，データ出力回路２８が，パラレル・シリアル変換された４ビットの命令アドレスを，１サイクル遅れの５番目のクロックから１２番目のクロックまで１２回，ツールバス１６にシリアル転送する。その後，ステータス出力回路２２がバスステータス信号線１７にデータ取り込み信号を４サイクル出力し，それに応答して，ICEが命令コードを４サイクルで返信する。ICEは，バスステータス信号のステータスを参照して，対応する動作を行うので，ツールバスには，１クロック遅れでアドレスやデータが転送される。
【００３１】
それに対して，本実施の形態例では，図２（Ｂ）に示されるとおり，ステータス情報生成回路２０が分岐信号１４から分岐無しであることを検出すると，分岐無し情報を含むステータス情報信号S20をデータ出力回路２８とステータス出力回路２２に出力するので，４，５番目のクロックで１サイクルのみ，アドレス出力信号と分岐無し信号とが，バスステータス信号線１７とツールバス１６とにそれぞれ出力される。それに続いて，データ取り込み信号がバスステータス１７から出力され，それに応答して，１クロックサイクル遅れで，４サイクルにわたり命令コードが返信される。
【００３２】
図３は，本実施の形態例の別の原理を説明するための図である。図３（Ａ）のアドレス制御部の構成例に示されるとおり，ステータス情報生成回路２０と，ステータス出力回路２２と，パラレル・シリアル変換回路２４と，データ出力回路２８とを有し，更に，命令アドレス選択回路３０を有する。この例では，CPUからの命令フェッチ要求信号６に応答して，ステータス情報生成回路２０がステータス情報信号S20を出力して，命令フェッチ動作が完了した時点で，つまり，データ出力回路２８がツールバス１６に対して命令アドレスをシリアル転送し，若しくは分岐無し信号を出力した後，命令コードを受信した時点で，当該ステータス情報生成回路２０が未だCPUから命令フェッチ信号を受信していなければ，図示しないツールバス１６の受信バッファに空きがある時に限り，命令プリフェッチのために新たなステータス情報信号S20を出力する。この命令プリフェッチのステータス情報信号S20は，分岐無し情報を含み，それに応答して，命令アドレス選択回路３０は，CPUからの命令アドレスの代わりに，アドレスをプラス２した次の命令アドレスを出力する。従って，次のアドレスの命令アドレスが，パラレル・シリアル変換されてデータ出力回路２８からツールバス１６に出力される。上記の例では，分岐なしの命令アドレスはプラス２づつインクリメントされる。
【００３３】
つまり，CPUからの命令フェッチ要求信号を受信していなくても，現在の命令フェッチ動作が完了したら，ツールバスが未使用状態になっているので，受信バッファに空きがある限り，ステータス情報生成回路２０は命令プリフェッチ動作を開始する。そのため，ビット数が少ないツールバス１６を効率的に使用でき，その後CPUから命令フェッチ要求信号が来た時は，より短いサイクルでまたは即刻命令データを返信することができる。
【００３４】
上記の命令プリフェッチ動作は，図２に示した原理を利用して，ツールバス１６から分岐無し信号を出力することにより，よりツールバスの使用効率を上げることができる。その場合は，図３の命令アドレス選択回路３０は不要になる。
【００３５】
命令プリフェッチは，CPUから送信される命令フェッチ要求が分岐命令か分岐無し命令かを確認することなく行われる。従って，命令プリフェッチを実施中にCPUから次の分岐有りの命令フェッチ要求が来た場合は，前もって実施していた命令プリフェッチ動作は無駄になるので，ステータス情報生成回路２０が直ちにステータス情報信号S20としてキャンセル情報を出力する。
【００３６】
図３（Ｂ）は，上記の命令プリフェッチ動作中にキャンセルが行われた場合の動作タイミングチャート図である。４番目のクロックでバスステータス信号線１７にアドレス出力が出力され，次のクロックで分岐無し信号がツールバス１６に出力されて命令プリフェッチ動作が開始している。それに続いて，６番目のクロックからデータ取り込み信号がバスステータスに出力され，２サイクルの間命令コードがツールバス１６に返信された時点で，ステータス出力回路２２がノーオペレーション信号NOPを出力することで，ツールバス１６への命令コードの返信は停止される。ICEは，バスステータス１７のステータス信号に応答して，次のサイクルで対応する命令コードやデータをツールバス１６に出力する。従って，DSU側のアクセス制御部は，このNOP信号をバスステータスに出力することで，命令プリフェッチ動作をキャンセルすることができる。
【００３７】
図４は，本実施の形態例における更に別の原理を説明するための図である。命令フェッチ要求やデータアクセス要求において，DSUはアドレスをパラレル・シリアル変換してツールバス１６に転送する必要がある。その場合，例えば下位アドレスは，上位ビットは「０」のみであり，下位ビットのみに有効なアドレスが含まれる。そこで，図４（Ａ）に示されるとおり，エンコーダ３２が，CPUから供給される命令アドレスを解析し，有効アドレスの桁数（厳密には転送サイクル数）と有効アドレスとにエンコードする。例えば，３２ビットの命令アドレスが「０００００８８８」（１６進表示）の場合は，有効桁数３と有効アドレス「８８８」とからなるエンコードアドレス「３８８８」がエンコーダ３２で生成される。そして，そのエンコードアドレスS32Aがパラレル・シリアル変換回路２４に出力され，パラレル・シリアル変換されたアドレスが，データ出力回路２８からツールバスに転送される。
【００３８】
このようにエンコードされたアドレスは，通常のアドレスの転送サイクル８よりもその転送サイクルが４と少ないので，エンコーダ３２から有効桁数信号（TAG信号）S32Bがステータス情報生成回路２０に供給され，ステータス情報生成回路２０は，その有効桁数にプラス１したサイクル数の期間，ステータス情報信号S20を出力する。つまり，ステータス情報生成回路２０に内蔵されるカウンタは，有効桁数にプラス１したサイクル数だけカウントしながら，ステータス情報信号S20を出力する。
【００３９】
図４（Ｂ）は，上記の動作タイミングチャート図であり，４番目から８番目の４クロックサイクル期間，アドレス出力信号がバスステータス信号線１７に出力され，それから１クロックずれた５番目から９番目の４クロックサイクル期間で，有効桁数信号のTAB出力と有効命令アドレスとがツールバス１６経由でシリアルに出力される。ICEは，ツールバス１６に転送された命令アドレスのサイクル数が通常の８サイクルよりも短いことで，エンコードアドレスであることを認識し，デコードして，３２ビットの命令アドレスを生成し，命令フェッチを行う。
【００４０】
以上，本実施の形態例の原理を説明したが，次に，具体例を説明する。図５は，DSU４の構成例を示す図である。DSU４は，アクセス制御部４０とウエイト制御部４２とで構成される。命令フェッチ要求信号線６，命令アドレスバス７，分岐信号線１４，データアクセス要求信号９，データバス１０が，アクセス制御部４０に接続され，ウエイト信号線１２，１３とデータバス，命令コードバス８，１１がウエイト制御部４２に接続される。
【００４１】
アクセス制御部４０は，命令フェッチ要求信号と分岐信号に応答して，ICE５に対して命令フェッチを実行する。また，データアクセス要求信号に応答して，データリードまたはデータライトをICE５に対して実行する。アクセス制御部４０は，命令フェッチ要求信号やデータアクセス要求信号を受け付けると，ステータス情報信号S20を生成し，ウエイト制御部４２が，CPUに対してウエイト信号１２，１３を出力し，更なる要求信号の発行を禁止する。また，アクセス制御部４０が，ICEから命令コードまたはデータを受信したら，ウエイト制御部４２は，それらのデータをデータバスまたは命令コードバス１１，８を介してCPUに転送すると共に，ウエイト信号を解除する。それによって，CPUは次の要求信号を発行することができる。
【００４２】
図６は，アクセス制御部４０の詳細構成図である。アクセス制御部４０は，入力バッファ４４，４６，４８，５０，５２，５４と出力バッファ５６を有する。更に，命令フェッチ要求信号６と分岐信号１４及びデータアクセス要求信号９とを入力し，アクセスの種類を判定するアクセス判定回路５８を有する。アクセスの種類には，分岐なしの命令フェッチ要求，分岐ありの命令フェッチ要求，データリード要求，データライト要求とがある。アクセス判定回路の出力とエンコーダ32Aと32Bの有効桁数信号（TAG信号）S32A，S32Bとが，ステータス情報生成回路２０に供給される。
【００４３】
また，アクセス制御部４０には，アドレスとデータを選択するアドレス・データ選択回路６０が設けられ，エンコードされた命令アドレスと，エンコードされたデータアドレスと，ライト用のデータとが，ステータス情報生成回路２０が生成するステータス情報信号S20に応じて選択され，パラレル・シリアル変換回路２４に供給される。
【００４４】
更に，データ入出力回路２８が受信した命令コードや読み出しデータは，シリアル・パラレル変換回路６２にてシリアル・パラレル変換されて，出力バッファ５６からデータバス６４を介して，ウエイト制御部４２に出力される。また，ステータス情報信号S20は，ウエイト制御部４２にも出力され，それに応答して，ウエイト信号が出力される。
【００４５】
図６のアクセス制御部４０によれば，図２，３，４で説明した３種類のアクセス制御が全て実施される。つまり，分岐なし命令フェッチに対しては，ステータス出力回路２２から１サイクルだけ命令アドレス出力信号がバスステータス信号線１７に出力され，その次の１サイクルだけデータ入出力回路２８からツールバス１６に分岐なし信号が出力される。また，命令プリフェッチの場合も，上記と同様に分岐なし信号がツールバス１６に出力される。そして，命令アドレス及びデータアドレスの両方が，エンコーダ32A,32Bにて有効桁数のTAG信号と有効アドレス信号とにエンコードされ，パラレル・シリアル変換回路２４に供給され，更に，データ入出力回路２８が，ツールバス１６にTAG信号と有効アドレス信号とをシリアル転送する。
【００４６】
上記したアクセス制御によれば，ステータス情報生成回路２０が生成するステータス情報信号Ｓ２０に基づいて，ステータス出力回路２２やデータ入出力回路２８が対応するバスステータス信号やアドレス，データをICEに転送する。そこで，ステータス情報生成回路２０を中心とするアクセス制御の動作をフローチャートに従って以下説明する。
【００４７】
図７は，アクセス制御部での内部動作を示すフローチャート図である。ステータス情報生成回路２０は，アクセス制御のためにステータス情報信号を生成しているので，現在ツールバスが使用中か否かを知りうる立場にある。そこで，ステータス情報生成回路２０は，ツールバスが使用中でなければ（P10），データアクセス要求か，命令フェッチ要求のいずれかがCPUにより発行されたか否かをチェックする。CPUはウエイト信号によりウエイト状態が解除されている時のみ，上記の要求信号を発行する。また，図７に示されるとおり，データアクセス要求が優先的に処理される。
【００４８】
データアクセス要求が発行されていたら，それに応答して，データアクセスを実行する（P14）。また，命令フェッチ要求が発行されたら（P16），分岐信号から分岐ありかなしかが判定され（P18），分岐が発生していれば，分岐ありの命令フェッチが実行される（P20）。また，分岐が発生していなければ，分岐なし命令フェッチが実行される（P22）。
【００４９】
更に，ステータス情報生成回路２０は，データアクセス要求も命令フェッチ要求もなく，また，データアクセスや命令フェッチが完了してツールバスが不使用状態の時，ウエイト制御部内の出力バッファに命令データを格納するための空きが存在していれば（P24），プリフェッチのステータス情報信号を生成して，命令プリフェッチを実行さる（P26）。
【００５０】
図８は，データアクセスのフローチャート図である。データアクセス要求を受信するとデータアクセスが実行される。データアクセス要求が，データリードの場合は，ステータス情報信号S20に応答して，アドレス・データ選択回路６０がエンコードされたデータアドレスを出力し，パラレル・シリアル変換されたデータアドレスが，データ入出力回路２８から，ツールバス１６を介してICEに出力される（S32）。それに続いて，ICEから出力されたリードデータが，データ入出力回路２８に入力され（S34），ウエイト制御部内のバッファに格納される（P36）。また，データアクセス要求がデータライトの場合は，ステータス情報信号S20に応答して，エンコードされパラレル・シリアルされたデータアドレスが，ツールバス１６に出力され（S38），その後，ライトデータがツールバス１６に出力される（S40）。
【００５１】
図９は，分岐あり命令フェッチのフローチャート図である。分岐あり命令フェッチの場合は， TAGデータと有効アドレスからなるエンコードされた命令アドレスが，データ入出力回路２８からツールバス１６にシリアル出力される（P42）。エンコードされているので，転送サイクル数は，エンコードされない場合よりも短くなる。ICEは，それに応答して，命令コードを返信し，データ入出力回路２８が取り込み（P44），バッファに格納する（P46）。
【００５２】
図１０は，エンコーダでのエンコードのフローチャート図である。図１０のフローチャートには，エンコードにより検出された有効桁数（TAG）の生成工程が示される。３２ビットのアドレスは，１６進法では８桁になる。ツールバスが４ビットづつ転送するので，この４ビットをアドレスブロックと定義して，有効なアドレスブロック数をTAGデータとする。
【００５３】
図１０に示されるとおり，入力された命令アドレスまたはデータアドレスを上位桁から解析し，最上位ビット31-28が０でなければ，８桁全てが有効となり，有効アドレスブロック数としてTAG＝８を出力する（P50,P51）。最上位ビット31-28が０で次の上位ビット27-24が０でなければ，７桁が有効となり，有効アドレスブロック数としてTAG=７を出力する（P52,P53）。以下同様に，上位ビットが全て０であるときは，その残りの下位ビットのアドレスブロック数がTAGデータとして出力される。上位ビット31-4が０の場合は，有効アドレスブロック数は１となる（P64）。
【００５４】
上記の例では，TAG＝６以下の場合のみ，エンコードされたアドレスがシリアル転送され，TAG=7以上では，もとのアドレスがそのままシリアル転送される。
【００５５】
図１１は，分岐なし命令フェッチまたは命令プリフェッチのフローチャート図である。分岐なし命令フェッチ及び命令プリフェッチは，共に分岐なしの命令フェッチ動作になる。図１１には，特に命令プリフェッチのために分岐が発生したか否かの判断がステップ毎に行われる（P70,P72,P73,P74）。ステータス情報生成回路２０が，分岐なしの命令アドレス出力を示すステータス情報信号S20を生成すると，それに応答して，ステータス出力回路２２が，バスステータス信号線１７にアドレス出力信号を出力し，その次のサイクルで，データ入出力回路２８が，ツールバスに分岐なし信号を１サイクルのみ出力する（P71）。それに応答して，ICEが，次の命令アドレスに対応する命令コードを返信すると，データ入出力回路２８が，命令コードを受信し（P73），受信バッファに格納する（P75）。
【００５６】
命令プリフェッチ動作中に，次の命令フェッチ要求に分岐が含まれていることを示す分岐信号を受信すると，即座にキャンセルされる。また，命令コードを受信した後では，キャンセルに伴いその受信した命令コードがクリアされる（P76）。
【００５７】
分岐なし命令フェッチも，上記と同様の動作になる。但し，分岐なし命令フェッチの場合は，既に命令フェッチ要求を受信し，それが分岐なしであることが確定しているので，分岐発生が生じることはない。
【００５８】
図１２は，ウエイト制御部でのウエイト制御のフローチャート図である。ウエイト制御は，基本的に，ウエイト解除状態でCPUが命令フェッチ要求やデータアクセス要求を発行すると，DSUがCPUに対してウエイトを発行し，受け付けた要求に対応するアクセス制御を実行する。そして，そのアクセス制御が終了すると，DSUはCPUに対してウエイトを解除して，次の要求の発行を許可する。
【００５９】
図１２によれば，DSU内のウエイト制御部４２内の受信バッファに命令コードまたはデータが格納されている時（P80），それがデータリード要求に対応するものなら，データウエイトを解除して，バッファ内のデータをCPUにパラレル出力し，バッファをクリアする（P81,P82）。また，受信バッファ内が命令コードであるときは，CPUから発行済みの命令フェッチ要求に対する命令コードであれば，命令ウエイトを解除して，バッファ内の命令コードをCPUに出力し，バッファをクリアする（P83,P84）。更に，受信バッファ内に命令コードが格納されていても，それが命令プリフェッチに対応するもので，CPUから未だ命令フェッチ要求が出されていない場合は，その命令コードのCPUへの送信は行われない。
【００６０】
次に，データリード要求を受け付けると（P85），CPUに対してデータウエイトを発行し（P86），そのデータリード制御を実行する。また，データライト要求を受け付けると（P87），ツールバスが使用中であれば，CPUに対してデータウエイトを発行し（P88,P89），ツールバスが空くまでデータライト制御を待機させる。ツールバスが使用中でない若しくは直ぐに未使用になることが予想されれば，データウエイトを解除して（P90），受信したライトデータをツールバスからICEに転送する。
【００６１】
更に，命令フェッチ要求を受け付けると（P91），命令ウエイトをCPUに対して発行し（P92），命令フェッチ制御を実行する。
【００６２】
以下，本実施の形態例における命令プリフェッチ動作，データリード，データライト動作の具体例について，動作タイミングチャートにより説明する。
【００６３】
図１３は，分岐が発生しない時の命令プリフェッチ動作のタイミングチャート図である。この例では，３つの命令フェッチ要求が連続して発行された例である。なお，以下のクロックと状態の関係は，クロックの立ち上がりエッジを基準にして説明している。
【００６４】
まず，命令アドレス＃Ａの命令フェッチ要求に対する命令コードが取り込まれると，５番目のクロックで命令プリフェッチのためのアドレス出力がバスステータス１７に出力され，その１クロック後に分岐なし信号がツールバス１６に出力される。つまり，命令プリフェッチでは，現在の命令フェッチ要求のアドレスに続くアドレスの命令コードがフェッチされることを予想して，DSUが分岐なし信号を出力して，ICEに次のアドレスの命令コードを出力するよう要求する。
【００６５】
DSUは，図示しない命令コードバス８経由で，取り込んだ命令コードをCPUに出力すると，７番目のクロックで命令ウエイトを解除し，次の命令フェッチ要求を取り込む。それに伴い命令アドレスバス７にはアドレス＃Ｂが出力される。但し，既に命令プリフェッチにより次の命令フェッチ動作が始まっており，DSUは，引き続きデータ取り込み信号をバスステータス信号線１７に出力しながら，命令コードを受信する。ICEは，分岐なし信号を受信した後，バスステータスのデータ取り込み信号に応答して４サイクルで１６ビットの命令コードを受信する。このICEの動作は，固定的である。
【００６６】
DSUは，命令コードの取り込みを完了すると，ツールバス１６が空いているので，ウエイト制御部内の受信バッファに空きがあれば命令プリフェッチを開始する。このようにして，次の命令フェッチについても，その要求を受け付ける前に開始することで，ツールバスが空き状態のままになることをなくし，ツールバスの使用効率を高めることができる。その結果，命令フェッチ要求に対する命令コードが，短いサイクルでCPUに出力される。
【００６７】
図１４は，分岐が発生する時の命令プリフェッチ動作のタイミングチャート図である。この例では，DSUは分岐が発生してもキャンセルは行わない。命令アドレス＃Ａに対する命令フェッチ要求に対する命令コードの取り込みが終了すると，DSUは５番目のクロックでアドレス出力信号をバスステータスに出力し，分岐なし信号をツールバスに出力して，命令プリフェッチを開始する。それに続いて，DSUはデータ取り込み信号をバスステータスに出力し，命令コードを４サイクルかけてシリアルに取り込む。ここまでは，図１３と同じ動作である。
【００６８】
しかし，７番目のクロックで命令ウエイトを解除して，次の命令フェッチ要求を受け付けると，分岐信号１４が分岐あり（Ｈレベル）になっている。そこで，命令プリフェッチの命令コードの取り込みが終了すると，１２番目のクロック以降に，DSUは命令アドレス＃ＢをエンコードしたTAGデータと有効アドレスとをツールバスに出力し，１８番目のクロックから再度命令コードを取り込む。この命令コードの取り込みが終了すると，２３番目のクロックから再度命令プリフェッチのために，アドレス出力信号をバスステータスに，分岐なし信号をツールバスにそれぞれ出力する。
【００６９】
図１４の例では，CPUは，分岐あり命令フェッチ要求を連続して発行することが禁止されている。その結果，命令アドレス＃Ｂに対する２回の命令コード取り込み動作が，毎回繰り返されることが防止されている。
【００７０】
図１５は，分岐が発生する時の命令プリフェッチにおいてそれがキャンセルされる動作のタイミングチャート図である。この例では，DSUが分岐信号で分岐ありを検出すると，バスステータスにNOP信号を出力して，それまでの命令プリフェッチ動作をキャンセルする。
【００７１】
この例では，命令アドレス＃Ａに対する命令コードの取り込みが終了すると，DSUは５番目のクロックでアドレス出力をバスステータスに出力し，６番目のクロックで分岐なし信号をツールバスに出力し，命令プリフェッチを開始する。DSUが図示しない受信バッファから命令コードをCPUにパラレス出力すると，７番目のクロックで命令ウエイトを解除し，命令アドレス＃Ｂを受け付ける。そのとき，DSUは分岐信号１４に分岐あり情報が含まれていることを検出し，既に始めていたデータ取り込み信号の出力を停止して，バスステータス１７にNOP信号を出力する。それに応答して，ICEは命令プリフェッチに対する命令コードの出力を停止する。
【００７２】
そして，DSUは，１０番目のクロックからバスステータス１７にアドレス出力信号を出力し，１１番目のクロックでTAGデータを１２番目のクロックから４サイクルで有効命令アドレスをツールバスから出力する。それ以降の動作は，図１４の場合と同じである。
【００７３】
図１５の場合は，命令プリフェッチに対する命令フェッチ要求を受け付けた時に分岐ありであることが判明すると，DSUが先に始めた命令プリフェッチ動作をキャンセルするので，再度命令コードのフェッチを行っても，それによる遅れは，図１４の場合よりも少ない。
【００７４】
図１６は，命令フェッチとデータリード動作のタイミングチャート図である。命令アドレス＃Ｂに対する命令コードの取込が終了すると，５番目のクロックから，受付済みのデータアクセス要求（リード要求Ｒ）に対するデータアドレス＃１に対するデータリード制御が始まる。即ち，DSUは，５番目のクロックからアドレス出力信号をバスステータス１７に出力し，６番目のクロックからエンコードされたデータアドレスをTAGデータと共にツールバス１６に出力する。更に， DSUは９番目のクロックからデータ入力信号をバスステータスに出力し，１クロック後にリードデータをツールバスから取り込む。図１６には，簡略化のためにリードデータが２サイクルで取り込まれているが，リードデータが１６ビットであれば，データ取り込みには４サイクルが必要である。
【００７５】
DSUは７番目のクロックで命令ウエイトを解除して，次の命令フェッチ要求を受け付ける。この命令フェッチ要求は分岐なしであるので，DSUは，リードデータの取り込みが終了した後の１２番目のクロックでアドレス出力信号をバスステータスに出力し，その次のクロックで分岐なし信号をツールバスに出力して，命令アドレス＃Ｃに対する命令フェッチ制御を行う。更に，DSUは，ICEから取り込んだリードデータをデータバス１１からCPUにパラレルに出力すると，１４番目のクロックでデータウエイトを解除する。
【００７６】
図１７は，命令フェッチとデータライト動作のタイミングチャート図である。この例では，図１６の場合と同様に命令アドレス＃Ｂに対する命令コードの取り込みを終了すると，既に受け付けていたデータライト要求Ｗの制御を開始する。DSUは，アドレス出力信号をバスステータスに出力し，その１クロック後からTAGデータと有効データアドレスとをツールバスから出力する。それに続いて，DSUは９番目のクロックからデータ出力信号をバスステータスに出力し，ライトデータをツールバスに出力する。ここでも，簡単のためにライトデータの転送は２サイクルで終了している。
【００７７】
DSUは，ライトデータの転送を始めると，やがてツールバスが空くことを予想して，１０番目のクロックでデータウエイトを解除している。ライトデータの出力が終了すると，１２番目のクロックの立ち上がりエッジからアドレス出力信号をバスステータスに出力し，分岐なし信号をツールバスに出力して，命令アドレス＃Ｃの命令フェッチを介しする。
【００７８】
尚，ツールバスでは，DSUからのアドレスやデータの出力と，ICEからの命令コードやリードデータの出力との間に，１クロックサイクルのNOP状態が生成され，それによりツールバスでのデータのコンフリクトが防止される。図１７の例では，８番目のクロックでバスステータスにNOP信号が出力されて，９番目のクロックでツールバスには何もデータが出力されない状態になっている。しかし，DSUによるデータアドレスの出力とライトデータの出力との間には，データコンフリクトの問題はないので，NOP状態を生成する必要はない。
【００７９】
以上説明したとおり，本実施の形態例では，開発用のマイクロコントローラに内蔵される，ICEとのインターフェースを行うDSUに，命令アドレスに代えて分岐なし信号を出力して命令フェッチサイクルを短縮する機能と，ツールバスが空いていれば命令プリフェッチ制御を行う機能と，命令アドレスやデータアドレスをTAGデータと有効アドレスとからなるエンコードアドレスにしてICEに出力して命令フェッチサイクルを短縮する機能とを搭載する。それにより，限られたビット数しか持ち得ないツールバスであっても，その使用効率を上げて，デバッグ処理におけるICEへのアクセス制御のパフォーマンスを上げることができる。
【００８０】
以上，実施の形態例をまとめると以下の付記の通りである。
【００８１】
（付記１）CPUとバスコントローラを内蔵するマイクロコントローラにおいて，
前記ＣＰＵとバスコントローラとを接続する第１のビット数の命令アドレスバス及び命令コードバスと，
前記命令アドレスバスと命令コードバスとが接続されたデバッグサポートユニットとを有し，
前記デバッグサポートユニットは，外部のインサーキットエミュレータに，前記第１のビット数より少ないビット数のツールバスと該ツールバスのステータスを通知するバスステータス信号線とを介して接続され，
更に，前記デバッグサポートユニットは，
命令アドレスをパラレル・シリアル変換するパラレル・シリアル変換回路と，前記ＣＰＵから受信した分岐信号と命令フェッチ要求信号に応答して分岐情報と命令フェッチ要求を有するステータス情報信号を生成するステータス情報生成回路と，
ステータス情報信号に応答して前記バスステータス信号線に命令アドレス出力信号を出力するステータス出力回路と，
前記ステータス情報信号に応答して，前記分岐情報が分岐有りの時は前記変換された命令アドレスを前記ツールバスにシリアルに出力し，分岐情報が分岐なしの時は分岐なし信号を前記ツールバスに出力するデータ出力回路とを有する
ことを特徴とするマイクロコントローラ。
【００８２】
（付記２）付記１において，
前記データ出力回路は，前記分岐情報が分岐有りの時は，前記変換された命令アドレスを前記ツールバスに複数サイクルにわたりシリアルに出力し，分岐情報が分岐なしの時は前記分岐なし信号を前記ツールバスに１サイクルで出力することを特徴とするマイクロコントローラ。
【００８３】
（付記３）付記１において，
前記デバッグサポートユニットは，前記命令フェッチに対応するアドレス出力を出力した後，所定の複数サイクルの期間データ取り込み信号を前記バスステータス信号線に出力し，前記インサーキットエミュレータから前記命令フェッチに対応する命令コードをシリアルに受信することを特徴とするマイクロコントローラ。
【００８４】
（付記４）付記１において，
前記デバッグサポートユニットは，前記CPUからの命令フェッチ要求を受け付けた時に，前記CPUに対してウエイト信号を発行し，当該命令フェッチ要求に対応する命令コードを前記CPUに対して返信した時に，前記ウエイト信号を解除することを特徴とするマイクロコントローラ。
【００８５】
（付記５）付記１において，
前記デバッグサポートユニットは，前記CPUから命令フェッチ要求とデータアクセス要求とを受け付けた場合，前記データアクセス要求を優先的に処理することを特徴とするマイクロコントローラ。
【００８６】
（付記６）CPUとバスコントローラを内蔵するマイクロコントローラにおいて，
前記ＣＰＵとバスコントローラとを接続する第１のビット数の命令アドレスバス及び命令コードバスと，
前記命令アドレスバスと命令コードバスとが接続されたデバッグサポートユニットとを有し，
前記デバッグサポートユニットは，外部のインサーキットエミュレータに，前記第１のビット数より少ないビット数のツールバスと該ツールバスのステータスを通知するバスステータス信号線とを介して接続され，
更に，前記デバッグサポートユニットは，
命令アドレスをパラレル・シリアル変換するパラレル・シリアル変換回路と，前記ＣＰＵから受信した分岐信号と命令フェッチ要求信号に応答して分岐情報と命令フェッチ要求を有するステータス情報信号を生成するステータス情報生成回路と，
前記ステータス情報信号に応答して前記バスステータス信号線に命令アドレス出力信号を出力するステータス出力回路と，
前記ステータス情報信号に応答して前記変換された命令アドレスを前記ツールバスにシリアルに出力するデータ出力回路とを有し，
前記ステータス情報生成回路は，次の命令フェッチ要求を受信する前に，現在の命令フェッチ要求に対応した命令コードの受信を完了した時，当該現在の命令フェッチ要求の命令アドレスに続く命令アドレスに対する命令プリフェッチ要求のためのプリフェッチステータス情報信号を生成することを特徴とするマイクロコントローラ。
【００８７】
（付記７）付記６において，
前記ステータス情報生成回路は，前記命令プリフェッチ要求を開始した後，前記ＣＰＵから命令フェッチ要求を受け付けて分岐有りの分岐信号を受信したとき，前記命令プリフェッチ要求についての制御をキャンセルすることを特徴とするマイクロコントローラ。
【００８８】
（付記８）付記６において，
前記データ出力回路は，前記プリフェッチステータス情報信号に応答して，命令アドレスに代えて分岐なし信号を前記ツールバスに出力することを特徴とするマイクロコントローラ。
【００８９】
（付記９）付記６において，
前記ステータス情報生成回路は，前記ツールバスが使用中でなく，前記インサーキットエミュレータから受信される命令コードを格納するバッファに空きがあるとき，前記プリフェッチステータス情報信号を生成することを特徴とするマイクロコントローラ。
【００９０】
（付記１０）付記６において，
前記デバッグサポートユニットは，前記CPUからの命令フェッチ要求を受け付けた時に，前記CPUに対してウエイト信号を発行し，当該命令フェッチ要求に対応する命令コードを前記CPUに対して返信した時に，前記ウエイト信号を解除することを特徴とするマイクロコントローラ。
【００９１】
（付記１１）CPUとバスコントローラを内蔵するマイクロコントローラにおいて，
前記ＣＰＵとバスコントローラとを接続する第１のビット数のアドレスバスと，
前記アドレスバスが接続されたデバッグサポートユニットとを有し，
前記デバッグサポートユニットは，外部のインサーキットエミュレータに，前記第１のビット数より少ないビット数のツールバスと該ツールバスのステータスを通知するバスステータス信号線とを介して接続され，
更に，前記デバッグサポートユニットは，
アドレスに含まれる有効アドレスと当該有効アドレスの有効桁数信号とを有するエンコードアドレスを出力するエンコーダと，
前記エンコードアドレスをパラレル・シリアル変換するパラレル・シリアル変換回路と，
前記ＣＰＵから受信した命令フェッチ要求信号またはデータアクセス要求信号に応答して，命令フェッチ要求またはデータアクセス要求を有するステータス情報信号を前記有効桁数サイクル期間生成するステータス情報生成回路と，
前記ステータス情報信号に応答して，前記バスステータス信号線にアドレス出力信号を出力するステータス出力回路と，
前記ステータス情報信号に応答して，前記エンコードアドレスを前記ツールバスにシリアルに出力するデータ出力回路とを有するマイクロコントローラ。
【００９２】
（付記１２）付記１１において，
前記アドレスバスは，命令アドレスバスとデータアドレスバスとを有し，前記エンコーダは，前記命令アドレスバスとデータアドレスバスを介して入力するアドレスをエンコードすることを特徴とするマイクロコントローラ。
【００９３】
（付記１３）CPUとバスコントローラを内蔵するマイクロコントローラにおいて，
前記ＣＰＵとバスコントローラとを接続し命令アドレスをパラレルに転送する第１のビット数の命令アドレスバスと，
前記命令アドレスバス接続されたデバッグサポートユニットとを有し，
前記デバッグサポートユニットは，外部のインサーキットエミュレータに，前記第１のビット数より少ないビット数のツールバスと該ツールバスのステータスを通知するバスステータス信号線とを介して接続され，
更に，前記デバッグサポートユニットは，前記ＣＰＵから受信した命令フェッチ要求が分岐あり命令の場合は，命令アドレスをパラレル・シリアル変換して，当該変換された命令アドレスを前記ツールバスにシリアルに出力し，前記命令フェッチ要求が分岐なし命令の場合は，分岐なし信号を前記ツールバスに出力することを特徴とするマイクロコントローラ。
【００９４】
（付記１４）CPUとバスコントローラを内蔵するマイクロコントローラにおいて，
前記ＣＰＵとバスコントローラとを接続し命令アドレスをパラレルに転送する第１のビット数の命令アドレスバス及び命令コードバスと，
前記命令アドレスバスと命令コードバスとが接続されたデバッグサポートユニットとを有し，
前記デバッグサポートユニットは，外部のインサーキットエミュレータに，前記第１のビット数より少ないビット数のツールバスと該ツールバスのステータスを通知するバスステータス信号線とを介して接続され，
更に，前記デバッグサポートユニットは，前記ＣＰＵから受信した命令フェッチ要求信号に応答して前記命令アドレスを前記ツールバスにシリアルに出力し，次の命令フェッチ要求を受信する前に当該命令フェッチ要求に対応する命令コードを前記インサーキットエミュレータから受信した時に，命令プリフェッチ制御を開始することを特徴とするマイクロコントローラ。
【００９５】
（付記１５）付記１４において，
前記デバッグサポートユニットは，前記命令プリフェッチ制御中に，前記ＣＰＵから分岐有りの命令フェッチ要求を受付たら，当該命令プリフェッチ制御をキャンセルして，分岐先命令アドレスを前記ツールバスにシリアル転送することを特徴とするマイクロコントローラ。
【００９６】
（付記１６）CPUとバスコントローラを内蔵するマイクロコントローラにおいて，
前記ＣＰＵとバスコントローラとを接続する第１のビット数のアドレスバスと，
前記アドレスバスが接続されたデバッグサポートユニットとを有し，
前記デバッグサポートユニットは，外部のインサーキットエミュレータに，前記第１のビット数より少ないビット数のツールバスと該ツールバスのステータスを通知するバスステータス信号線とを介して接続され，
更に，前記デバッグサポートユニットは，
アドレスに含まれる有効アドレスと当該有効アドレスの有効桁数信号とを有するエンコードアドレスを生成し，前記ＣＰＵから受信した命令フェッチ要求信号またはデータアクセス要求信号に応答して，前記エンコードアドレスを前記ツールバスにシリアルに出力するデータ出力回路とを有するマイクロコントローラ。
【００９７】
【発明の効果】
以上，本発明によれば，開発中のマイクロコントローラに内蔵されるデバッグサポートユニットが，外付けのインサーキットエミュレータとのアクセス制御を効率的におこなうので，デバッグ処理のパフォーマンスを向上させることができる。
【図面の簡単な説明】
【図１】本実施の形態例におけるマイクロコントローラの構成を示す図である。
【図２】本実施の形態例の原理を説明するための図である。
【図３】本実施の形態例における別の原理を説明するための図である。
【図４】本実施の形態例における更に別の原理を説明するための図である。
【図５】  DSU４の構成例を示す図である。
【図６】アクセス制御部４０の詳細構成図である。
【図７】アクセス制御部での内部動作を示すフローチャート図である。
【図８】データアクセスのフローチャート図である。
【図９】分岐あり命令フェッチのフローチャート図である。
【図１０】エンコーダでのエンコードのフローチャート図である。
【図１１】分岐なし命令フェッチまたは命令プリフェッチのフローチャート図である。
【図１２】ウエイト制御部でのウエイト制御のフローチャート図である。
【図１３】分岐が発生しない時の命令プリフェッチ動作のタイミングチャート図である。
【図１４】分岐が発生する時の命令プリフェッチ動作のタイミングチャート図である。
【図１５】分岐が発生する時の命令プリフェッチでありキャンセルされる動作のタイミングチャート図である。
【図１６】命令フェッチとデータリード動作のタイミングチャート図である。
【図１７】命令フェッチとデータライト動作のタイミングチャート図である。
【符号の説明】
１        マイクロコントローラ
２        ＣＰＵ
３        バスコントローラ
４        デバッグサポートユニット
５        インサーキットエミュレータ
６        命令フェッチ要求信号線
７        命令アドレスバス
１２      命令ウエイト信号線
１４      分岐信号線
１６      ツールバス
１７      バスステータス信号線
【図１】
0004437881.tif 000002
【図２】
0004437881.tif 000003
【図３】
0004437881.tif 000004
【図４】
0004437881.tif 000005
【図５】
0004437881.tif 000006
【図６】
0004437881.tif 000007
【図７】
0004437881.tif 000008
【図８】
0004437881.tif 000009
【図９】
0004437881.tif 000010
【図１０】
0004437881.tif 000011
【図１１】
0004437881.tif 000012
【図１２】
0004437881.tif 000013
【図１３】
0004437881.tif 000014
【図１４】
0004437881.tif 000015
【図１５】
0004437881.tif 000016
【図１６】
0004437881.tif 000017
【図１７】
0004437881.tif 000018