(57)【要約】中央処理装置（２）、デバッグ用インタフェースに利用可能な高速シリアル通信インタフェース回路例えばＵＳＢインタフェース回路（３）、及び外部メモリに接続可能な外部バスインタフェース回路（５）を有する。ＵＳＢインタフェース回路はその内部に複数の入力バッファ（ＥＰ１，ＥＰ２）を有し、相互に一の入力バッファに対する入力動作に並行して他の入力バッファからデータを出力可能とされる。デバッグモードにおいて、前記ＵＳＢインタフェース回路はシステムプログラムを受信し、受信されたシステムプログラムをメモリアクセス制御信号と共に前記外部バスインタフェース回路から出力可能である。ターゲットプログラムをホストコンピュータからターゲットシステムにダウンロードするときのデータ転送を高速化することができる。
2005022390.tif 000002
【特許請求の範囲】
【請求項１】
中央処理装置、デバッグ用インタフェースに利用可能な高速シリアル通信インタフェース回路、及び外部メモリに接続可能な外部バスインタフェース回路を有し、
前記高速シリアル通信インタフェース回路はその内部に複数の入力バッファを有し、相互に一の入力バッファに対する入力動作に並行して他の入力バッファからデータを出力可能とされ、
前記デバッグモードにおいて、前記高速シリアル通信インタフェース回路はシステムプログラムを受信し、受信されたシステムプログラムをメモリアクセス制御信号と共に前記外部バスインタフェース回路から出力可能であることを特徴とするマイクロコンピュータ。
【請求項２】
前記高速シリアル通信インタフェース回路は、ユニバーサルシリアルバスインタフェース回路であることを特徴とする請求項１記載のマイクロコンピュータ。
【請求項３】
受信されたシステムプログラムを外部バスインタフェースに接続されたメモリに転送制御が可能なダイレクトメモリアクセスコントローラを有することを特徴とする請求項２記載のマイクロコンピュータ。
【請求項４】
前記ダイレクトメモリアクセスコントローラによるシステムプログラムの転送元は前記高速シリアル通信インタフェースの入力バッファであることを特徴とする請求項３記載のマイクロコンピュータ。
【請求項５】
前記高速シリアル通信インタフェース回路の入力バッファに受信されたシステムプログラムを一時的に蓄積可能なランダムアクセスメモリを有し、
前記ダイレクトメモリアクセスコントローラによるシステムプログラムの転送元は前記ランダムアクセスメモリであることを特徴とする請求項３記載のマイクロコンピュータ。
【請求項６】
デバッグ専用低速シリアル通信インタフェース回路を有し、前記デバッグ専用低速シリアル通信インタフェース回路は、デバッグモードにおいて、前記高速シリアル通信インタフェース回路を制御する制御データの入力に利用可能であることを特徴とする請求項１記載のマイクロコンピュータ。
【請求項７】
前記デバッグ専用低速シリアル通信インタフェース回路は、デバッグモードにおいて、前記高速シリアル通信インタフェース回路に代えてシステムプログラムの受信に利用可能であることを特徴とする請求項６記載のマイクロコンピュータ。
【請求項８】
前記デバッグ専用低速シリアル通信インタフェース回路はＪＴＡＧに準拠しデータレジスタを有することを特徴とする請求項６又は７記載のマイクロコンピュータ。
【請求項９】
トレース制御回路を有し、前記トレース制御回路は前記中央処理装置が前記システムプログラムを実行したときの内部状態をトレース情報として逐次蓄えることを特徴とする請求項１又は６記載のマイクロコンピュータ。
【請求項１０】
前記トレース情報の外部出力に前記高速シリアル通信インタフェース回路を利用可能であることを特徴とする請求項９記載のマイクロコンピュータ。
【請求項１１】
ホストコンピュータと、エミュレータと、ターゲットデバイスとを用いて、ターゲットデバイスが実行するシステムプログラムを開発する方法であって、
前記エミュレータによる処理として、ホストコンピュータが高速シリアル通信で出力するシステムプログラムを２面バッファの一方のバッファに蓄積する第１処理と、前記２面バッファの他方のバッファに蓄積されたシステムプログラムを前記第１処理に並行してターゲットデバイスに低速シリアル通信で送信する第２処理と、ターゲットデバイスとの間の前記低速シリアル通信のハンドシェーク制御を行なう第３処理を含むことを特徴とするシステムプログラムの開発方法。
【請求項１２】
前記第２処理では、前記バッファから出力するシステムプログラムを前記一つのバッファの記憶容量以上のＦＩＦＯバッファを経由してターゲットデバイスに低速シリアル通信で送信し、
前記第３処理では、ターゲットデバイスからの送信許可に応答してＦＩＦＯバッファからターゲットデバイスへの送信を行ない、ＦＩＦＯバッファのフル状態に応答して前記バッファからＦＩＦＯバッファへの転送を抑制することを特徴とする請求項１１記載のシステムプログラムの開発方法。
【請求項１３】
ユーザモードとデバッグモードを有するマイクロコンピュータであって、
中央処理装置と、ユニバーサルシリアルバスインタフェース回路と、第１のデバッグ用制御プログラムを保有するＲＯＭと、ＲＡＭと、外部バスインタフェース回路とを備え、
前記ユニバーサルシリアルバスインタフェース回路は、前記デバッグモードで利用可能にされる所定のエンドポイントバッファ回路を有し、前記所定のエンドポイントバッファ回路は並列動作可能な一対のバッファを有し、前記一対のバッファは相互に一方が入力動作可能にされるのに並行して他方が出力動作可能とされ、
前記中央処理装置は、パワーオンリセット時に前記デバッグモードが指定されているとき、前記第１のデバッグ用制御プログラムを実行して、前記ユニバーサルシリアルバスインタフェース回路を動作可能に初期化し、第２のデバッグ用制御プログラムを前記ユニバーサルシリアルバスインタフェース回路で受信し、受信した第２のデバッグ用制御プログラムを前記ＲＡＭに格納し、ＲＡＭに格納した第２のデバッグ用制御プログラムの実行に移行するマイクロコンピュータ。
【請求項１４】
バッファＲＡＭとダイレクトメモリアクセスコントローラと更に有し、
中央処理装置は、前記第２のデバッグ用制御プログラムにしたがって、ユニバーサルシリアルバスインタフェース回路が受信したダウンロード要求コマンドに応答して、前記ダイレクトメモリアクセスコントローラに、ユニバーサルシリアルバスインタフェース回路が受信したプログラムを前記バッファＲＡＭに転送させる請求項１３記載のマイクロコンピュータ。
【請求項１５】
前記中央処理装置は、前記第２のデバッグ用制御プログラムにしたがって、ユニバーサルシリアルバスインタフェース回路が受信した転送要求コマンドに応答して、前記ダイレクトメモリアクセスコントローラに、前記バッファＲＡＭに転送されたプログラムを外部バスインタフェース回路を介して外部に転送制御させる請求項１４記載のマイクロコンピュータ。
【請求項１６】
中央処理装置は、前記第２のデバッグ用制御プログラムの実行状態において、モード制御コマンドに応答してユーザモードに移行し、
前記ユーザモードにおいて中央処理装置は外部バスインタフェース回路を介して命令をフェッチする請求項１３記載のマイクロコンピュータ。
【請求項１７】
中央処理装置と、ユニバーサルシリアルバスインタフェース回路と、第１のデバッグ用制御プログラムを保有するＲＯＭと、バッファＲＡＭと、外部インタフェース回路とを備え、
前記ユニバーサルシリアルバスインタフェース回路は、所定のエンドポイントバッファ回路を有し、前記所定のエンドポイントバッファ回路は並列動作可能な一対のバッファを有し、前記一対のバッファは相互に一方が入力動作可能にされるのに並行して他方が出力動作可能とされ、
前記中央処理装置は、パワーオンリセット時に前記第１のデバッグ用制御プログラムを実行して、前記ユニバーサルシリアルバスインタフェース回路を動作可能に初期化し、第２のデバッグ用制御プログラムを前記ユニバーサルシリアルバスインタフェース回路で受信し、受信した第２のデバッグ用制御プログラムを前記バッファＲＡＭに格納し、バッファＲＡＭに格納した第２のデバッグ用制御プログラムを前記外部インタフェース回路を介して出力させるマイクロコンピュータ。
【請求項１８】
ダイレクトメモリアクセスコントローラを更に有し、
前記ダイレクトメモリアクセスコントローラは、前記中央処理装置による転送制御条件にしたがって、前記バッファＲＡＭから第２のデバッグ用制御プログラムを前記外部インタフェース回路を介して外部に転送する請求項１７記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、マイクロコンピュータ、特にデバッグサポート機能を有するマイクロコンピュータに関し、更にはマイクロコンピュータを動作させるシステムプログラムの開発方法に関する。
【背景技術】
【０００２】  デバッグサポート機能を有するマイクロコンピュータはデバッグに際してエミュレータもしくはホストコンピュータと通信を行なうデバッグ用インタフェースを有する。このデバッグ用インタフェースには、例えばＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ，ＩＥＥＥ  Ｓｔｄ  １１４９．１，ＩＥＥＥ  Ｓｔａｎｄａｒｄ  Ｔｅｓｔ  Ａｃｃｅｓｓ  Ｐｏｒｔ  ａｎｄ  Ｂｏｕｎｄａｒｙ−Ｓｃａｎ  Ａｒｃｈｉｔｅｃｔｕｒｅ）プロトコルに準拠したシリアル入出力インタフェースが用いられている。特許文献１にもそのようなデバッグ用インタフェースを備えたマイクロコンピュータの記載がある。【０００３】
【特許文献１】特開２００２−２０２９００号公報（段落００１７）
【発明の開示】
【発明が解決しようとする課題】
【０００４】  本発明者はデバッグサポート機能（オンチップデバッグ機能とも称する）を有するマイクロコンピュータをシステムデバッグするとき（デバッグ対象マイクロコンピュータをターゲットマイクロコンピュータと称する）、そのターゲットプログラムをホストコンピュータからターゲットシステムのプログラムメモリにダウンロードする機能におけるデータ転送の高速化について検討した。例えば、ターゲットマイクロコンピュータはＪＴＡＧ準拠のデバッグ用シリアルインタフェース回路を有する。ＵＳＢ（Ｕｎｖｅｒｓａｌ  Ｓｅｉａｌ  Ｂｕｓ）インタフェース回路を持つパーソナルコンピュータ（ＰＣ）にＵＳＢケーブルでエミュレータを接続し、エミュレータは専用のユーザーインターフェースケーブルでターゲットシステム（ユーザーシステムとも称する）に搭載されたターゲットマイクロコンピュータのデバッグ用シリアルインタフェースに接続する。ターゲットマイクロコンピュータはオンチップデバック機能を有する。オンチップデバッグ機能を有するターゲットマイクロコンピュータは、ユーザモードの他に、ターゲットプログラムの開発を支援するデバッグモードを有する。前記ユーザモードではターゲットシステムのためにユーザが開発するユーザプログラムとしてのシステムプログラム（ターゲットプログラムとも称する）を実行する。前記デバッグモードでは、ユーザプログラムの実行が停止されているとき、主にプログラムデバッグ支援用のプログラム（デバッグ支援プログラムとも称する）を実行する。デバッグ支援プログラムは、ターゲットマイクロコンピュータの電源投入毎にホストコンピュータ上のエミュレータソフトより転送され、ターゲットマイクロコンピュータ内部のデバッグ用アドレス空間上に書き込みされ、ホストコンピュータ上のエミュレータソフトウェアとリンクされる。ホストコンピュータから供給されるユーザプログラムは、ターゲットマイクロコンピュータがユーザモードでデバッグ支援プログラムを実行することによって、ターゲットシステム上の所定メモリ空間に書き込まれる。エミュレータとターゲットマイクロコンピュータとの間の通信には前記ＪＴＡＧ準拠のデバッグ用シリアルインタフェース回路が用いられる。このデバッグ用シリアルインタフェース回路は、所定バイト単位でクロック同期のシリアル転送を行なうため、転送スピードは前記クロック周波数に比例し、ＵＳＢインタフェース回路に比べて低速である。例えば、ＵＳＢ規格１．１でも転送処理能力はフルスピードで１２００キロバイト（ＫＢ）／秒であるが、ＪＴＡＧ準拠のインタフェースでは４バイトのような１回の最大データ転送毎にターゲットマイクロコンピュータからのアクセス許可を示すステータスを取得して次の転送データをセットするというデータ転送手順を必要とし、それによるオーバヘッド故に、同期クロック周波数を上げても２３０ＫＢ／秒のような転送速度限界を生ずる。このような転送速度の相違によって、比較的容量の大きなターゲットプログラムのロード転送に長い時間を必要とし、システムデバッグ効率を低下させ、更にはターゲットプログラムの開発期間短縮を阻む要因の一つになっていることが本発明者によって明らかにされた。【０００５】  本発明の目的は、ターゲットマイクロコンピュータをシステムデバッグするとき、デバッグ対象のシステムプログラムをホストコンピュータからターゲットシステムにダウンロードするときのデータ転送を高速化することにある。【０００６】  本発明の別の目的は、エミュレータを利用してシステムプログラムを開発するとき、デバッグ対象のシステムプログラムをホストコンピュータからターゲットシステムにダウンロードするときのデータ転送の高速化という点において、システムプログラムの開発期間の短縮に寄与することにある。【０００７】  本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】  本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。【０００９】  〔１〕本発明に係るマイクロコンピュータは、中央処理装置、デバッグ用インタフェースに利用可能な高速シリアル通信インタフェース回路（３）、及び外部メモリに接続可能な外部バスインタフェース回路（５）を有する。前記高速シリアル通信インタフェース回路はその内部に複数の入力バッファ（ＥＰ１，ＥＰ２）を有し、相互に一の入力バッファに対する入力動作に並行して他の入力バッファからデータを出力可能とされる。前記デバッグモードにおいて、前記高速シリアル通信インタフェース回路はシステムプログラムを受信し、受信されたシステムプログラムをメモリアクセス制御信号と共に前記外部バスインタフェース回路から出力可能である。前記高速シリアル通信インタフェース回路は、例えばユニバーサルシリアルバスインタフェース回路である。システムデバッグに際して前記高速シリアル通信インタフェース回路にホストコンピュータを直結することにより、ターゲットプログラムをホストコンピュータからターゲットシステムにダウンロードするときのデータ転送を高速化することができる。特に前記高速シリアル通信インタフェース回路は交互に入出力動作を切換えて並列動作可能な２面バッファを備えるという点でデータ転送の更なる高速化が実現される。ターゲットプログラムをホストコンピュータからターゲットシステムにダウンロードするときのデータ転送の高速化という点において、ターゲットプログラムの開発期間の短縮に寄与する。【００１０】  本発明の望ましい形態では、受信されたシステムプログラムを外部バスインタフェース回路に接続されたメモリに転送制御可能なダイレクトメモリアクセスコントローラを有する。中央処理装置の負担軽減とデータ転送の更なる高速化に好都合である。前記ダイレクトメモリアクセスコントローラによるシステムプログラムの転送元は、例えば前記高速シリアル通信インタフェース回路の入力バッファである。前記高速シリアル通信インタフェース回路の入力バッファに受信されたシステムプログラムを一時的に蓄積可能なランダムアクセスメモリ（７）を備える場合には、前記ダイレクトメモリアクセスコントローラによるシステムプログラムの転送元は前記ランダムアクセスメモリとしてよい。前記高速シリアル通信インタフェース回路の入力バッファ（ＥＰ１，ＥＰ２）とランダムアクセスメモリ（７）で多段バッファを構成してシステムプログラムを受けるから、高速シリアル通信インタフェース回路による受信処理と受信データに対する転送処理との速度差に対して更に余裕ができる。【００１１】  本発明の望ましい形態では、デバッグ専用低速シリアル通信インタフェース回路（８）を有し、前記デバッグ専用低速シリアル通信インタフェース回路は、デバッグモードにおいて、前記高速シリアル通信インタフェース回路を制御する制御データの入力に利用可能である。デバッグ専用低速シリアル通信インタフェース回路は例えばＪＴＡＧ準拠のシリアルインタフェース回路であり、中央処理装置の制御を必要とせずにインタフェース動作を行なうことができるようになっている。前記デバッグ専用低���シリアル通信インタフェース回路は、例えばデバッグモードにおいて、前記高速シリアル通信インタフェース回路に代えてシステムプログラムの受信に利用可能である。【００１２】  デバッグサポート機能の充実という観点より、トレース制御回路を内蔵してよい。前記トレース制御回路は前記中央処理装置が前記システムプログラムを実行したときの内部状態をトレース情報として逐次蓄え、蓄えたトレース情報は前記システムプログラムの実行停止後に外部に出力される。前記トレース情報の外部出力に前記高速シリアル通信インタフェース回路を利用可能である。【００１３】  〔２〕本発明に係るシステムプログラムの開発方法は、ホストコンピュータ（２５）と、エミュレータ（３５）と、ターゲットデバイス（３３）とを用いて、ターゲットデバイスが実行するシステムプログラムを開発する方法であって、前記エミュレータによる処理として、ホストコンピュータが高速シリアル通信で出力するシステムプログラムを２面バッファの一方のバッファに蓄積する第１処理と、２面バッファの他方のバッファに蓄積されたシステムプログラムを前記第１処理に並行してターゲットデバイスに低速シリアル通信で送信する第２処理と、ターゲットデバイスとの間の前記低速シリアル通信のハンドシェーク制御を行なう第３処理を含む。２面バッファの利用により、ターゲットプログラムをホストコンピュータからターゲットシステムにダウンロードするときのデータ転送を高速化することができるという点において、ターゲットプログラムの開発期間を短縮することができる。【００１４】  本発明の具体的な形態として、前記第２処理では、前記バッファから出力するシステムプログラムを前記一つのバッファの記憶容量以上のＦＩＦＯバッファを経由してターゲットデバイスに低速シリアル通信で送信し、前記第３処理では、ターゲットデバイスからの送信許可に応答してＦＩＦＯバッファからターゲットデバイスへの送信を行ない、ＦＩＦＯバッファのフル状態に応答して前記バッファからＦＩＦＯバッファへの転送を抑制する。低速シリアル通信にＦＩＦＯバッファを用いることにより、第１処理から第２処理に渡されるデータの滞留による第１処理の中断を減らすことができ、この点においても、上記データ転送を高速化することができる。【００１５】  〔３〕本発明に係るマイクロコンピュータ（１）は、ユーザモードとデバッグモードを有し、中央処理装置（２）と、ユニバーサルシリアルバスインタフェース回路（３）と、第１のデバッグ用制御プログラムを保有するＲＯＭ（７１）と、ＲＡＭ（７）と、外部バスインタフェース回路（５）とを備える。前記ユニバーサルシリアルバスインタフェース回路は、前記デバッグモードで利用可能にされる所定のエンドポイントバッファ回路（２０）を有し、前記所定のエンドポイントバッファ回路は並列動作可能な一対のバッファ（ＥＰ１，ＥＰ２）を有し、前記一対のバッファは相互に一方が入力動作可能にされるのに並行して他方が出力動作可能とされる。ここで対象とするマイクロコンピュータはターゲットマイクロコンピュータであり、ユニバーサルシリアルバスインタフェース回路を介して直接デバッグ支援用のホストコンピュータに接続する場��を想定する。【００１６】  前記中央処理装置は、パワーオンリセット時に前記デバッグモードが指定されているとき、前記第１のデバッグ用制御プログラムを実行して、前記ユニバーサルシリアルバスインタフェース回路を動作可能に初期化し、第２のデバッグ用制御プログラムを前記ユニバーサルシリアルバスインタフェース回路で受信し、受信した第２のデバッグ用制御プログラムを前記ＲＡＭに格納し、ＲＡＭに格納した第２のデバッグ用制御プログラムの実行に移行する。これにより、マイクロコンピュータの電源投入毎に例えばホストコンピュータ上のエミュレータソフトより転送される第２のデバッグ用制御プログラムを高速にダウンロードすることができ、ホストコンピュータ上のエミュレータソフトウェアとリンクしたデバッグ制御可能な状態の立ち上げを高速化することができる。【００１７】  本発明の具体的な形態として、バッファＲＡＭとダイレクトメモリアクセスコントローラと更に有し、中央処理装置は、前記第２のデバッグ用制御プログラムにしたがって、ユニバーサルシリアルバスインタフェース回路が受信したダウンロード要求コマンドに応答して、前記ダイレクトメモリアクセスコントローラに、ユニバーサルシリアルバスインタフェース回路が受信したユーザプログラムを前記バッファＲＡＭに転送させる。デバッグ制御可能な状態においてユーザプログラムのダウンロードを高速化することができる。更に、本発明の望ましい形態として、前記中央処理装置は、前記第２のデバッグ用制御プログラムにしたがって、ユニバーサルシリアルバスインタフェース回路が受信した転送要求コマンドに応答して、前記ダイレクトメモリアクセスコントローラに、前記バッファＲＡＭに転送されたプログラムを外部バスインタフェース回路を介して外部のプログラムメモリに転送制御させる。この後、前記中央処理装置は、前記第２のデバッグ用制御プログラムの実行状態において、モード制御コマンドに応答してユーザモードに移行し、前記ユーザモードにおいて中央処理装置は外部バスインタフェース回路を介して前記プログラムメモリなどから命令をフェッチして、ユーザプログラムを実行する。ユーザプログラムの実行状態をトレースし、それを解析したりすることによってユーザプログラムに対するデバッグが行われる。【００１８】  〔４〕別の観点による本発明のマイクロコンピュータ（４０）は、中央処理装置（４４）と、ユニバーサルシリアルバスインタフェース回路（４８）と、第１のデバッグ用制御プログラムを保有するＲＯＭ（４５）と、バッファＲＡＭ（４７）と、外部インタフェース回路（４１）とを備え、前記ユニバーサルシリアルバスインタフェース回路は、所定のエンドポイントバッファ回路（２０）を有し、前記所定のエンドポイントバッファ回路は並列動作可能な一対のバッファ（ＥＰ１，ＥＰ２）を有し、前記一対のバッファは相互に一方が入力動作可能にされるのに並行して他方が出力動作可能とされる。前記中央処理装置は、パワーオンリセット時に前記第１のデバッグ用制御プログラムを実行して、前記ユニバーサルシリアルバスインタフェース回路を動作可能に初期化し、第２のデバッグ用制御プログラムを前記ユニバーサルシリアルバスインタ��ェース回路で受信し、受信した第２のデバッグ用制御プログラムを前記バッファＲＡＭに格納し、バッファＲＡＭに格納した第２のデバッグ用制御プログラムを前記外部インタフェース回路を介して出力させる。ここで対象とするマイクロコンピュータはターゲットマイクロコンピュータとデバッグ支援用のホストコンピュータとの間に配置されるエミュレータ（３３）の制御用マイクロコンピュータとされる。【００１９】  本発明の具体的な形態として、マイクロコンピュータはダイレクトメモリアクセスコントローラ（４６）を更に有し、前記ダイレクトメモリアクセスコントローラは、前記中央処理装置による転送制御条件にしたがって、前記バッファＲＡＭから第２のデバッグ用制御プログラムを前記外部インタフェース回路を介して外部に転送する。
【発明の効果】
【００２０】  本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。【００２１】  すなわち、ターゲットマイクロコンピュータをシステムデバッグするとき、システムプログラムをホストコンピュータからターゲットシステムにダウンロードするときのデータ転送を高速化することができる。要するに、システムデバッグにおいて、システムプログラムダウンロード機能の性能を向上させることができる。【００２２】  エミュレータを利用してシステムプログラムを開発するとき、システムプログラムをホストコンピュータからターゲットシステムにダウンロードするときのデータ転送の高速化という点において、システムプログラムの開発期間の短縮に寄与することができる。
【図面の簡単な説明】
【００２３】［図１］本発明に係るマイクロコンピュータを例示するブロック図である。
［図２］ＵＳＢＩＦ内蔵のマイクロコンピュータを搭載したターゲットシステムとホストコンピュータとの接続形態を示す説明図である。
［図３］ＵＳＢＩＦを備えていないマクロコンピュータを搭載したターゲットシステムとホストコンピュータとの接続形態を示す説明図である。
［図４］図３のマイクロコンピュータとエミュレータの一例を示すブロック図である。
［図５］ＦＰＧＡで構成されるＪＴＡＧインタフェースロジックの詳細を示す論理回路図である。
［図６］図５の構成による動作を示すタイミングチャートである。
［図７］ＲＡＭの２面バッファＢＵＦ１，ＢＵＦ２を切り換えてデータをＦＩＦＯＴＤＯに転送する制御手順を示すフローチャーである。
［図８］図５と図９の夫々の場合におけるプログラムダウンロードの動作タイミングの相違を示すタイミングチャートである。
［図９］図５の比較例に係るエミュレータを例示するブロック図である。
［図１０］図５の例と図９の比較例のそれぞれにおいてホストコンピュータからユーザープログラムファイルをダウンロードするときのダウンロード性能を例示する説明である。
［図１１］本発明に係るマイクロコンピュータの更に具体的な例を示すブロック図である。
［図１２］マイクロコンピュータによるオンチップデバッグの動作タイミングを例示するタイミングチャートである。
［図１３］ＵＳＢの通信フォーマットの説明図である。
［図１４］ホストコンピュータとＵＳＢインタフェース回路との通信ハンドシェック制御の基本形を例示するフローチャートである。
［図１５］ユーザープログラムの実行中に強制ブレークさせる場合のホストコンピュータとＵＳＢインタフェース回路との間でハンドシェーク制御内容を例示するフローチャートである。
［図１６］ホストコンピュータからＵＳＢインタフェース回路へのソフトウェアのダウンロードの制御内容を例示するフローチャートである。
［図１７］図１のマイクロコンピュータの変形例を示すブロック図である。
［図１８］図１７のマイクロコンピュータの変形例を示すブロック図である。
【符号の説明】
【００２４】  １  マイクロコンピュータ
２  ＣＰＵ
３  ＵＳＢインタフェース回路
４  外部メモリ
５  外部バスインタフェース回路
６  ＤＭＡＣ
７  ＲＡＭ
８  ＪＴＡＧ回路
９  トレース回路
１１  エミュレーションＲＡＭ
ＥＰ１，ＥＰ２  ２面バッファ
２０  バッファ部
２５  ホストコンピュータ
３０  ターゲットシステム
３３  マイクロコンピュータ
３４  ターゲットシステム
３５  エミュレータ
４７  ＲＡＭ
ＢＵＦ１，ＢＵＦ２  ２面バッファ
ＦＩＦＯＴＤＯ
４８  ＵＳＢインタフェース回路
７１  ＲＯＭ
７３  パワーオンリセット回路
７４  システムコントローラ
【発明を実施するための最良の形態】
【００２５】  図１には本発明に係るマイクロコンピュータ１が例示される。マイクロコンピュータ１は、単結晶シリコンのような１個の半導体基板（半導体チップ）に相補型ＭＯＳ集積回路製造技術等によって形成される。マイクロコンピュータ１は、中央処理装置（ＣＰＵ）２、デバッグ用インタフェースに利用可能な高速シリアル通信インタフェース回路としてのＵＳＢインタフェース回路（ＵＳＢＩＦ）３、外部メモリ（ＥＸＭＲＹ）４に接続可能な外部バスインタフェース回路（ＥＸＩＦ）５、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）６、ランダムアクセスメモリ（ＲＡＭ）７、デバッグ専用低速シリアル通信インタフェースとしてのＪＴＡＧインタフェース回路（ＪＴＡＧＩＦ）８、トレース制御回路（ＴＲＣＮＴ）９、トレース情報の外部出力制御用のＡＵＤ（アドバンスト・ユーザ・デバッグ）インタフェース回路（ＡＵＤＩＦ）１０、及びエミュレーションＲＡＭ（ＥＭＭＲＹ）１１を有し、特に制限されないが、それらは内部バス（ＩＢＵＳ）１２を共有する。尚、内部バス１２にはタイマカウンタなどその他の回路が接続されていてよい。前期ＲＡＭ７は転送データなどを一時的に保持するバッファＲＡＭなどとして利用される。【００２６】  前記ＵＳＢＩＦ３は、例えばＵＳＢ２．０規格に準拠し、ＵＳＢバッファ部（ＢＥＰ）２０とＵＳＢインタフェース制御部（ＵＣＮＴ）２１を有する。ＵＳＢバッファ部２０は夫々５１２バイトのＵＳＢバッファＥＰ１、ＥＰ２によるダブルバッファ構造を持つ。ＵＳＢバッファＥＰ１，ＥＰ２は例えばＦＩＦＯによって構成される。ＵＣＮＴ２１は所謂ＵＳＢデバイスコントロールとデータ転送制御を行なう。ＵＣＮＴ２１はＵＳＢホストとして例えば図１のホストコンピュータ（パーソナルコンピュータ）に搭載されるＵＳＢホストにＵＳＢケーブル２３で接続され、ＵＳＢデバイスコントロールとして、ＵＳＢホストからのコマンドに応答して所定のプロトコルでデータのシリアル送受信制御を行なう。ＵＳＢホストからの受信データはバッファ部２０に送られ、ＵＳＢホストへの送信データはバッファ部２０から供給される。ＵＣＮＴ２１はデータ転送制御としてバッファ部２０に対するリード・ライト制御と、ＤＭＡＣ６に対する転送要求の制御を行なう。特にバッファ部２０に対するリード・ライト制御では、相互に一のＵＳＢバッファに対する入力動作（ＵＳＢホストからの受信データ入力動作）に並行して他のＵＳＢバッファからデータ出力動作（ＤＭＡ転送のための内部バス１２への出力動作）を可能とする。【００２７】  ＤＭＡＣ７はＣＰＵ２により、転送元アドレス、転送先アドレスなどのデータ転送制御条件が設定され、ＵＳＢＩＦ３等からのＤＭＡ転送要求に応答して、転送元から転送動作へのデータ転送を制御する。データ転送モードとしてデュアルアドレシングモード及びシングルアドレシングモードの双方をサポートする。例えば、ＵＳＢバッファＥＰ１，ＥＰ２とＥＭＭＲＹ１１との間のシングルアドレスによるデータ転送、ＵＳＢバッファＥＰ１，ＥＰ２とＲＡＭ７との間のシングルアドレスによるデータ転送、ＲＡＭ７とＥＸＭＲＹ４との間のデュアルアドレスによるデータ転送を制御することができる。【００２８】  ＪＴＡＧＩＦ８は受信データを入力する入力レジスタＴＤＩ、送信データを出力する出力レジスタＴＤＯ、前記レジスタＴＤＩと内部バス１２を接続するデータレジスタＳＤＤＲ、図示を省略するコマンドレジスタ、ＪＴＡＧ制御回路（ＪＣＮＴ）２４を有する。ＪＣＮＴ２４はクロック信号ＴＣＫに同期してレジスタＴＤＯからのシリアル出力とレジスタＴＤＩへのシリアル入力を制御する。その制御には所謂ＴＡＰ（テスト・アクセス・ポート）コントロールを用い、クロック信号ＴＣＫに同期してシリアル入力される図示を省略する１ビットのモードセレクト信号のパターンによって制御を行なう。外部からＪＴＡＧＩＦ８へのデータ入力はレジスタＴＤＯから外部にアクセス許可ビットが出力される毎に可能にされる。例えばＪＴＡＧＩＦ８は４バイト受信毎に外部にアクセス許可ビットを出力する。この意味において、ＪＴＡＧＩＦ８によるシリアル通信速度は遅い。規格ではＴＣＫ周波数は数十ＭＨｚであり、ＵＳＢ２．０規格では転送処理能力がハイスピード時４８０ＭＢ／秒であるのに対して低速である。【００２９】  前記ＣＰＵ２は図示を省略する命令制御部と演算部を備える。命令制御部は命令フェッチを制御すると共にフェッチした命令のデコードを行なう。演算部は命令のデコード信号及び命令で指定されるオペランドを用いてデータ演算やアドレス演算を行なって命令を実行する。マイクロコンピュータ１は通常モードとしてのユーザモードの他に、ターゲットプログラムの開発を支援するデバッグモードを有する。前記デバッグモードの指定は、リセット時にモード端子から指定し、或いはユーザモードにおいてブレーク割り込みで指定することができる。前記ユーザモードではＥＸＭＲＹ４に格納されているシステムプログラム（ユーザプログラムとも称する）を実行する。前記デバッグモードでは、ユーザプログラムの実行が停止されているとき、主にプログラムデバッグ支援用のプログラム（デバッグ支援プログラム）を実行する。デバッグ支援プログラムは、マイクロコンピュータ１の電源投入毎にホストコンピュータ２５のエミュレータソフトにより転送され、ＥＭＭＲＹ１１のデバッグ用アドレス空間上に書き込みされる。ブートプログラムはマイクロコンピュータ１に内蔵される図示を省略するマスクＲＯＭ又は電気的に書換え可能なフラッシュメモリが保有する。デバッグ時に、ユーザプログラムはデバッグモードでマイクロコンピュータ１が前記デバッグ支援プログラムを実行することによって、ターゲットシステム上のＥＸＭＲＹ４に書き込まれる。ユーザプログラムはホストコンピュータ２５から供給される。【００３０】  図１では、ターゲットシステムのマイクロコンピュータ１とホストコンピュータ２５との間の通信にはＵＳＢＩＦ３が利用可能にされる。ＪＴＡＧＩＦ８を利用することも可能であるが、通信速度の点でＵＳＢＩＦ３の方が優れているので、ＵＳＢＩＦ３を利用するのが得策である。特にＵＳＢＩＦ３は交互に入出力動作を切換えて並列動作可能な２面バッファＥＰ１，ＥＰ２を備えるという点でデータ転送の更なる高速化が実現される。ユーザプログラムをホストコンピュータ２５からターゲットシステムにダウンロードするときのデータ転送の高速化という点において、ユーザプログラムの開発期間を短縮可能になる。【００３１】  ＵＳＢＩＦ３で受信されたシステムプログラムをＥＸＩＦ５に接続されたＥＸＭＲＹ４に転送するには、ＤＭＡＣ６を用いればよい。前記ＤＭＡＣ６によるシステムプログラムの転送元は、例えば前記ＵＳＢＩＦ３の入力バッファＥＰ１，ＥＰ２である。前記ＵＳＢＩＦ３の入力バッファＥＰ１，ＥＰ２に受信されたシステムプログラムをＲＡＭ７に一時的に蓄積する場合には、前記ＤＭＡＣ６により先ずバッファＥＰ１，ＥＰ２からＲＡＭ７に転送し、タイミングを見計らって、ＲＡＭ７からＥＸＭＲＹ４にシステムプログラムを転送すればよい。前記ＵＳＢＩＦ３の入力バッファＥＰ１，ＥＰ２とＲＡＭ７で多段バッファを構成してシステムプログラムを受けることにより、ＵＳＢＩＦ３による受信処理と受信データに対する外部への転送処理との速度差に対して更に余裕ができる。【００３２】  前記ＪＴＡＧＩＦ８は、デバッグモードにおいて、前記ＵＳＢＩＦ３を制御する制御データの入力に利用可能である。ＪＴＡＧＩＦ８は、例えばデバッグモードにおいて、前記ＵＳＢＩＦ３に代えてシステムプログラムの受信に利用可能である。その必要性は、ユーザモードにおいて前記ＵＳＢＩＦ３の使用が予約されていて、プログラムダウンロードに利用することができない環境にある場合などである。前記ＵＳＢＩＦ３は複数転送チャネルを備える構成であってもよい。その一つをオンチップデバック専用にすれば、プログラムダウンロードをＪＴＡＧＩＦ８による代替通信で行なうことを一切要しないから、そのデータ転送の高速化を保証することができる。【００３３】  前記ＴＲＣＮＴ９はＣＰＵ２がユーザプログラムを実行しているとき、ＣＰＵ２の内部状態をトレースバス１３を介して順次格納する回路である。格納場所はＦＩＦＯバッファ（ＦＢＵＦ）２６とされ、ＦＩＦＯバッファ２６に対するアドレス制御はアドレスカウンタ（ＡＣＯＵＮＴ）２７が行なう。ＦＩＦＯバッファ２６に蓄えられたトレース情報は、デバッグモードにおいて前記ＵＳＢＩＦ３又はＪＴＡＧＩＦ８によってホストコンピュータ２５に転送可能である。但しＦＩＦＯバッファ２６の容量は小さいので、大量のデータをトレースするには不向きである。大量のデータをトレース情報として収集する場合には前記ＡＵＤＩＦ１０を用いる。内部バス１２のアドレス情報及びデータ情報等をバスアクセスサイクル毎にトレースバッファ（ＴＲＢＵＦ）２８に蓄え、ＴＲＢＵＦ２８のデータをクロック信号ＡＵＤＣＬＫに同期して外部に出力すればよい。ＡＵＤＡＴＡは出力データ、ＡＵＤＳＹＮＣはデータ出力同期信号である。【００３４】  または、ＦＩＦＯバッファ２６に蓄えられたトレース情報をＲＡＭ７やＥＸＭＲＹ４へ一時的に格納し、ＵＳＢＩＦ３を用いて一括で出力することも可能である。【００３５】  図２にはマイクロコンピュータ１を搭載したターゲットシステム３０とホストコンピュータ２５との接続形態を示す。ターゲットシステム３０にはマイクロコンピュータ１のＵＳＢＩＦ３に接続するＵＳＢコネクタ３１が設けられ、このＵＳＢコネクタ３１とホストコンピュータ２５のＵＳＢコネクタをＵＳＢケーブル２３で��結すればよい。マイクロコンピュータ１はデバッグ機能を有するから、ホストコンピュータ２５とマイクロコンピュータ１の間にエミュレータを介在させることなく、ターゲットプログラムとしてのシステムプログラムとデバッグ支援プログラムのダウンロードを行なうことができ、その後のユーザモードでは、システムプログラムを実行しながらトレース情報を収集する。システムプログラムの実行がブレークされてデバッグモードに遷移されたとき、トレース情報を参照したりしてターゲットシステムに対する評価及びシステムプログラムの修正等が行なわれる。【００３６】  図３には別の例として前記ＵＳＢＩＦ３を備えていないマクロコンピュータ３３を搭載したターゲットシステム３４とホストコンピュータ２５との接続形態を示す。ターゲットシステム３４とホストコンピュータ２５との間にはエミュレータ３５が配置される。エミュレータ３５とホストコンピュータ２５はＵＳＢケーブル２３で接続される。ターゲットシステム３４とエミュレータ３５はＪＴＡＧインタフェースフェースケーブル３６で接続される。【００３７】  図４には前記マイクロコンピュータ３３とエミュレータ３５の一例が示される。マイクロコンピュータ３３は図１のマイクロコンピュータ１に対してＵＳＢＩＦ３を備えていない点が相異される。同一機能を有する回路要素には同一符号を付してその詳細な説明は省略する。【００３８】  エミュレータ３５は、マイクロコンピュータ４０、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）４１、シンクロナス・スタティック・ランダム・アクセス・メモリ（ＳＳＲＡＭ）４２から成る。【００３９】  マイクロコンピュータ４０はＣＰＵ４４、ＲＯＭ４５、ＤＭＡＣ４６、ＲＡＭ４７及びＵＳＢＩＦ４８を有し、１個の半導体基板に形成されている。ＵＳＢＩＦ４８は前記ＵＳＢＩＦ３と同様に、２面でＵＳＢバッファＥＰ１，ＥＰ２を有するＵＳＢバッファ部２０とＵＣＮＴ２１によって構成され、ＵＳＢ２．０規格に準拠する。ＲＡＭ４７はＵＳＢバッファＥＰ１，ＥＰ２の記憶情報に対する後段の２面ＲＡＭバッファを構成し、第１ＲＡＭバッファ領域ＢＵＦ１と第２ＲＡＭバッファ領域ＢＵＦ２が割当てられる。望ましくは、第１ＲＡＭバッファ領域ＢＵＦ１と第２ＲＡＭバッファ領域ＢＵＦ２に対して夫々個別のアクセスポートを持つデュアルポートであるのがよい。即ち、一方のＵＳＢバッファＥＰ１がホストコンピュータ２５から受信したデータを格納しているとき、他方のＵＳＢバッファＥＰ２から出力されるデータをＲＡＭ４７の第１ＲＡＭバッファ領域ＢＵＦ１に格納し、これに並行して第２バッファ領域ＢＵＦ２に格納されているデータを所定のポートから外部に出力することができる。また、他方のＵＳＢバッファＥＰ２がホストコンピュータ２５から受信したデータを格納しているとき、ＵＳＢバッファＥＰ１から出力されるデータをＲＡＭ４７の第２ＲＡＭバッファ領域ＢＵＦ２に格納し、これに並行して第１ＲＡＭバッファ領域ＢＵＦ１に格納されているデータを所定のポートから外部に出力することができる。ＵＳＢＩＦ４８からＲＡＭ４７へのデータ転送にはＤＭＡＣ４６を用いることが望ましい。【００４０】  ＦＰＧＡ４１はフラッ���ュメモリセルのような不揮発性記憶素子を多数有し、それら不揮発性記憶素子のプログラム状態に応じて論理機能を所望に設定することができる回路である。ここではＦＰＧＡ４１は、マイクロコンピュータ３３のＪＴＡＧＩＦ８とデータ送受信を行なうためのＪＴＡＧインタフェースロジック４１Ａと、ＳＳＲＡＭ４２のアクセス制御を行なうアドレス生成ロジック４１Ｂを構成する。【００４１】  ＪＴＡＧインタフェースロジック４１Ａは、出力ＦＩＦＯバッファＦＩＦＯＴＤＯ、入力バッファＴＤＩ、インタフェース制御回路（ＪＣＮＴ）５０を有する。ＲＡＭ４７から出力ＦＩＦＯバッファＦＩＦＯＴＤＯへのデータライトの際、ＵＳＢインタフェース制御プログラムを実行するＣＰＵ４４は出力ＦＩＦＯバッファＦＩＦＯＴＤＯへの書き込み可能状態（ＴＤＯＳＴ）と空き状態（ＴＤＯＦ）等を管理し、出力ＦＩＦＯバッファＦＩＦＯＴＤＯへ連続して転送データをセットする。マイクロコンピュータ３３のＪＴＡＧＩＦ８からのアクセス許可ビットはＪＣＮＴ５０が監視する。アクセス許可ビットがイネーブルになったとき出力ＦＩＦＯバッファＦＩＦＯＴＤＯから４バイトの情報送信が行なわれる。出力ＦＩＦＯバッファＦＩＦＯＴＤＯから送信された情報はマイクロコンピュータ３３のＪＴＡＧＩＦ８で受信され、データレジスタＳＤＤＲに格納される。データレジスタＳＤＤＲに格納されると、ＤＭＡＣ６が起動され、その情報はＤＭＡ転送にてＥＸＭＲＹ１４に書き込まれる。【００４２】  前記ＳＳＲＡＭ４２はマイクロコンピュータ３３のＡＵＤＩＦ１０から出力されるトレース情報の格納に利用される。前記ＦＰＧＡ４１で実現されるＳＳＲＡＭ４２のアクセス制御を行なうアドレス生成ロジックはアドレスカウンタ（ＡＣＯＵＮＴ）５２と、セレクタ（ＡＳＥＬ）５３を構成する。セレクタ５３はＳＳＲＡＭ４２のアドレシングをＣＰＵ４４で行なうかアドレスカウンタ５２で行なうかを選択する。どちらを選択するかはＣＰＵ４４の指示に従って決定される。【００４３】  このように、ホストコンピュータ２５に接続するＵＳＢＩＦ４８と、ターゲットコンピュータ３３のＪＴＡＧＩＦ８の間には、受信データの入力と出力を並列可能にするバッファＢＵＦ１，ＢＵＦ２による２面バッファと、２面バッファの一方のバッファから出力される受信データをＦＩＦＯ形式で蓄えることができる出力ＦＩＦＯバッファＦＩＦＯＴＤＯが設けられているから、ホストコンピュータ２５とマイクロコンピュータ３３がＵＩＳＢインタフェースで直結されていないが、ある程度データ転送効率を上げることができる。【００４４】  特に、内蔵ＲＡＭ４７を数キロバイトのダブルバッファ構造として、ホストコンピュータ２５からのダウンロードデータをバッファＢＦＵ１またはＢＦＵ２の一方に受信中に、他方のバッファが保持しているデータを出力ＦＩＦＯバッファＦＩＦＯＴＤＯにライトするように、処理を並列化したから、バッファＥＰ１、ＥＰ２のデータサイズとバッファＦＩＦＯＴＤＯのデータサイズが異なる場合であっても、また、バッファＥＰ１，ＥＰ２の動作とバッファＦＩＦＯＴＤＯの動作が独立しているためＤＭＡＣ転送を途中で中断させないという制約が必要になる場合であっても��対応することが可能になる。【００４５】  図５にはＦＰＧＡ４１で構成されるＪＴＡＧインタフェースロジック４１Ａの詳細が示される。図６には図５の動作タイミングが示される。【００４６】  バッファＦＩＦＯＴＤＯは４バイト×６１段（２４４バイト）の多段構成とされる。５５はマイクロコンピュータ４０に接続されるインタフェースである。バッファＦＩＦＯＴＤＯはＦＩＦＯ５６とシフトレジスタ５７によって構成される。コントロールブロック５８とバッファコントロールブロック５９はＪＣＮＴ５０を構成する。５９Ａ，５９Ｂは所定のロジックである。ＣＰＵＤＡＴＡ（ＲＥＧＤＡＴＡ．Ｄ）はＲＡＭ４７からの出力データ、ＣＰＵＷＲ＿Ｎ（ＴＤＯＷＲ＿Ｎ）はＦＩＦＯ５６に対するライトリクエスト、ＴＤＯＲＥＧ．ＱはＦＩＦＯ５６からのリードデータ、ＲＥＡＤＱはＦＩＦＯ５６に対するリードリクエスト、ＳＨＩＦＴＲＥＧ．はシフトレジスタ５７の出力データ（ＴＤＯ出力）である。ＳＢＵＦ＿ＬＯＡＤはシフトレジスタ５７のデータロード信号、Ｓ＿Ｐはシフトレジスタ５７のシフト信号である。ＴＤＯｅｍはＦＩＦＯ５６のエンプティ信号、ＴＤＯｆｌはＦＩＦＯ５６のフル信号である。ＴＤＯＳＴはバッファＦＩＦＯＴＤＯにライト可能か否かを示し、１でライト可、０でライト不可を意味する。ＴＤＯＦは１でバッファＦＩＦＯＴＤＯのデータがすべてシフトアウトしたこと、０でバッファＦＩＦＩＴＤＯのデータがすべてシフトアウトしていない（初期値）ことを示す。ＴＤＯＩＮＴはバッファＦＩＦＩＴＤＯのデータが全てシフトアウトした時に割込要求信号ＩＲＱを出力させるための信号であり、１で割込要求を可能とし、０で割込要求を抑止する（初期値）。【００４７】  マイクロコンピュータ４０のＲＡＭ４７より、ライトイネーブル（ＴＤＯＷＲ＿Ｎ）に応答してＣＰＵクロックＣＰＵＣＬＫ同期でデータ（ＲＥＧＤＡＴＡ．Ｄ）がＦＩＦＯ５６に書き込まれる。ＦＩＦＯ５６がフル状態のときは、ＣＰＵクロックＣＰＵＣＬＫに同期してＴＤＯｆｌが出力される。ＦＩＦＯ５６がエンプティ状態の時は、クロックＴＣＫに同期してＴＤＯｅｍが出力される。シフトレジスタ５７へのデータ転送開始ロードパルス（ＳＢＵＦ＿ＬＯＡＤ）は、ＦＩＦＯ５６が空の時はライトイネーブル（ＴＤＯＷＲ＿Ｎ）に同期して生成され、空でない時は転送終了パルス（ＤＯＮＥ＿Ｐ）に同期して生成される。この作用はロジック５９Ａ，５９Ｂにより実現される。ＤＯＮＥ＿Ｐは、ターゲットマイクロコンピュータ３３からのアクセス許可ビットに基づいて生成される。アクセス許可ビットは、レジスタＴＤＩを介して入力される。バッファコントロールブロック５９ではシフトレジスタ５７のデータ転送終了毎にＦＩＦＯ５６のデータ書き込み可能状態を示すＴＤＯｆｌをチェックする。ＴＤＯｆｌがバッファＦＩＦＩＴＤＯの書き込み可能状態を示すＴＤＯＳＴビットを生成し、ＴＤＯｅｍとＤＯＮＥ＿ＰによりバッファＦＩＦＯＴＤＯの空き状態を示すＴＤＯＦビットを生成し、コントロールブロック５８のＪＴＡＧレジスタに反映する。ＴＤＯＦをマイクロコンピュータ４０への割込み要求に使用する場合、割込み許可を示すＴＤＯＩＮＴビットとＴＤＯＦによって割込み要求信号ＩＲＱを生成する。ＣＰＵ４４がこの割込み要求を受付けると、例えば図７のＴＤＯデータセット処理実行における、次のＲＡＭバッファへの切り換え（Ｓ７）を行う。【００４８】  図７にはＲＡＭ４７の２面ＲＡＭバッファＢＵＦ１，ＢＵＦ２を切り換えてデータをバッファＦＩＦＯＴＤＯに転送する制御手順が示される。先ず、この制御手順を可能にするＴＤＯＩＮＴが１にされ（Ｓ１）、ＴＤＯＳＴ＝１かによってバッファＦＩＦＯＴＤＯの空きがチェックされ（Ｓ２）、空きがあればバッファＦＩＦＯＴＤＯにデータが転送される（Ｓ３）。転送されたデータバイト数がチェックされる。即ち、バッファＢＵＦ１，ＢＵＦ２の夫々に割当てられる領域の最大容量数か否かがチェックされる（Ｓ４）。その転送バイト数に到達すると、ＴＤＯＦ＝１かの判定によってＦＩＦＯＴＤＯの空きチェックを行ない（Ｓ５）、全てシフトアウトしたことが判定されると、ＣＰＵ４４にＩＲＱにて割り込みを要求し、ＴＤＯＦを０にクリアする（Ｓ６）。その後、転送元ＲＡＭバッファ領域が次のバッファＢＵＦ１又はＢＵＦ２に切り換えられる（Ｓ７）。上記処理を送信完了まで繰返す（Ｓ８）。完了後、ＴＤＩＮＴを０にクリアして（Ｓ９）、制御を終了する。【００４９】  このように、バッファＢＵＦ１からバッファＦＩＦＯＴＤＯへのデータライト転送は、バッファＦＩＦＯＴＤＯのバッファの書き込み可能状態（ＴＤＯＳＴビット）を参照して、ＲＡＭ４７の最大容量数キロバイト数を転送し、次にバッファＦＩＦＯＴＤＯの空き状態（ＴＤＯＦ）を確認した後、次のバッファＢＵＦ２又はＢＵＦ１へ切り替え、指定したデータ量を転送完了する迄その処理を繰り返す。これにより、ＲＡＭ４７からバッファＦＩＦＩＴＤＯへのデータライトの際、ＴＤＯＳＴビットとＴＤＯＦビットを管理し連続して転送データをセットする。マイクロコンピュータ３３からバッファＴＤＩに送られるアクセス許可ビットはハードロジック５８が監視する。それらの結果、図８の（Ａ）に示すように、アクセス許可ビットを検出してから転送データを転送するまでのオーバーヘッドを無くし、最大数百バイトの連続転送が可能になり、ユーザプログラムなどのダウンロード転送の高速化を実現することができる。ターゲットマイクロコンピュータがＵＳＢＩＦ３を持たない場合にもプログラムダウンロード転送速度をある程度高速化することが可能である。尚、図８の（Ａ）において、マイコン書き込みとはＲＡＭ４７からバッファＦＩＦＯＴＤＯへのデータ転送書込みを意味する。ＪＴＡＧ出力とはバッファＦＩＦＯＴＤＯからターゲットマイクロコンピュータ３３への転送データ出力を意味する。ＳＰはターゲットマイクロコンピュータ３３からのアクセス許可ビットのステータスポーリング処理を意味する。【００５０】  図９には比較例に係るエミュレータが例示される。ホストコンピュータとのインタフェースにはＵＳＢを用いる。ＵＳＢドライバ６１及びＵＳＢコントローラマイコンチップ６２が設けられる。ＵＳＢコントローラマイコンチップ６２のプログラムはＲＯＭ６３に格納され、ＳＤＲＡＭ６４がワークメモリとして利用される。受信したＵＳＢデータはＳＤＲＡＭ６４に一旦格納され、ＵＳＢパケット解析等を経てＳＤＲＡＭ６４に格納してからＪＴＡＧコントローラ６５のデータ出力レジスタからターゲットマイクロコンピュータにデータを送信する。ＪＴＡＧ準拠のインタフェースではソフトダウンロードデータ転送方式は、送信データの終了をターゲットＣＰＵからアクセス許可ビットを受け取ることができるステータス取得モードで行っている。また１回のデータ転送量は最大で４バイトである。エミュレータは転送の都度ターゲットマイクロコンピュータ３３からステータス取得モード終了を示すアクセス許可ビットを取得する。要するに、アクセス許可ビットをポーリングしながら取得して、データ出力レジスタ（ＴＤＯ）へ転送データをセットしなければならない。この場合には図８の（Ｂ）に示されるように、アクセス許可ビットの検出から転送データセットまでにオーバーヘッドＴ１が発生する。要するに、図８の（Ｂ）は４バイト転送毎にデータ出力レジスタ（ＴＤＯ）へのデータセットを行い、図８の（Ａ）はデータ出力レジスタ（ＴＤＯ）へのデータセットを予め行い、ハードロジック５８でアクセス許可ビット取得毎に４バイト単位でデータ出力を行う。【００５１】  図１０には図５の例と図９の比較例に関しホストコンピュータＰＣよりターゲットマイクロコンピュータの外付メモリに１メガバイトのユーザープログラムファイルをダウンロードするときのダウンロード性能が示される。傾向線ａは図５に対応され、傾向線ｂは図９に対応される。これによればホストコンピュータからターゲットマイクロコンピュータへデータ転送する際、図９の比較例におけるプログラムダウンロード性能は、ＴＣＫ＝１０ＭＨｚ以上にしても２３０ＫＢ／秒より変化はなかった。【００５２】  図５の例では、ＴＣＫ＝１０ＭＨ以上でもダウンロード性能がリニアに上がる。また、ＴＣＫ＝２０ＭＨｚである場合、ダウンロード性能が約２倍の４００ＫＢ／秒となる。【００５３】  図１１にはマイクロコンピュータ１の更に具体的な例が示される。図１との相違点は、ＵＳＢインタフェース回路３に複数のＵＳＢバッファ部（ＢＥＰ０〜ＢＥＰ６）２０を示している。更に、ブートプログラムを保有するＲＯＭ７１を図示している。前記エミュレーションメモリ１１はＳＲＡＭで構成されるのに対し、ＲＯＭ７１はマスクＲＯＭ又はＥＥＰＲＯＭやフラッシュメモリなどの電気的に書き換え可能な不揮発性メモリによって構成される。その他にブレーク回路７２が設けられる。ブレーク回路７２は、デバッグモードにおいてＣＰＵ２を介してブレーク条件が設定され、ユーザモードにおいてブレーク条件に一致する状態の発生を検出して、ＣＰＵ２にブレーク例外を要求する。【００５４】  前記ＵＳＢバッファ部２０のＢＥＰ０〜ＢＥＰ６の夫々はＵＳＢ規格におけるエンドポイントと称されるＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）バッファを意味する。ＦＩＦＯバッファは入力用（イン）、出力用（アウト）夫々別々に備えたダブルバッファ構造とされ、図１に示されるＥＰ１、ＥＰ２のように構成される。ＢＥＰ０はエンドポイント０、ＢＥＰ６はエンドポイント６と理解されたい。エンドポイントの番号は例である。一つのＵＳＢデバイスが持つことができるエンドポイントの最大数はＵＳＢ規格��規定されている。エンドポイント０（ＢＥＰ０）はコントロール転送に使用され、ＵＳＢデバイスにとって必須とされる。ここではＵＳＢインタフェース回路３はユーザモードとデバッグモードの双方で利用可能とされ、ＵＳＢバッファ部（ＢＥＰ０〜ＢＥＰ６）２０のうち、ＢＥＰ１，ＢＥＰ２はユーザプログラムによる使用に専用化され、ＢＥＰ３〜ＢＥＰ６はデバッグ支援に専用化される。ＢＥＰ０は双方で共用される。ＢＥＰ０はオンチップデバック専用のディスクリプタ情報をコントロール転送するのに使用される。ＢＥＰ３はＵＳＢデータのバルクアウト転送に利用されるＢＥＰ４はＵＳＢデータのバルクイン転送用に利用される。ＢＥＰ５は命令コマンドの入力に利用される。ＢＥＰ６はステータス情報の出力に利用される。ＢＥＰ１，ＢＥＰ２はユーザモードにおいてユーザの設定に従ってデータ入出力などに利用される。ＵＳＢインタフェース回路３は外部から与えられる４８ＭＨｚのような周波数のクロック信号ＣＬＫに同期動作される。ＣＬＫはマイクロコンピュータ１の内部でＰＬＬ回路などを介して生成されてもよい。【００５５】  前記ＲＯＭ７１が保有するブートプログラムは、特に制限されないが、ＵＳＢインタフェース回路３を初期化するためのＵＳＢ初期化制御プログラム及び転送制御プログラムとされる。転送制御プログラムは、ＵＳＢインタフェース回路３を介して受信したデバッグ支援プログラム（ＡＳＥファームソフトとも称する）をエミュレーションメモリ１１に格納するためのプログラムとされる。【００５６】  システムコントローラ（ＳＹＳＣ７４）は代表的に示された外部端子としてデバッグモード端子ＡＳＥＭＤ及びリセット端子ＲＥＳに接続され、また、パワーオンリセット回路（ＰＯＲＥＳ）７３から出力されるパワーオンリセット信号が供給され、それら入力に従ってマイクロコンピュータ１の動作モード等を制御する。ＳＹＳＣ７４は、デバッグモード端子ＡＳＥＭＤによってユーザモードが指定され、パワーオンリセット回路７３からのパワーオンリセット指示又はリセット端子ＲＥＳからのリセット指示があると、制御信号φ１によってＣＰＵが初期化され、ＣＰＵ２はＲＯＭ７１が保有する前記ＵＳＢ初期化制御プログラムを実行してエンドポイントＢＥ０、ＢＥＰ１、ＢＥＰ２の動作を可能とし、最後にＣＰＵ２はプログラム格納領域の先頭番地から命令を実行開始可能にされる。一方、ＳＹＳＣ７４は、デバッグモード端子ＡＳＥＭＤによってデバッグモードが指定され、パワーオンリセット回路７３からのパワーオンリセット指示があると、制御信号φ２によってＣＰＵ２が初期化され、ＣＰＵ２はＲＯＭ７１が保有する前記ＵＳＢ初期化制御プログラムを実行してエンドポイントＢＥ０〜ＢＥＰ６の動作を可能とし、その後ＣＰＵ２はＲＯＭ７１が保有する前記転送制御プログラムを実行して、ＵＳＢインタフェース回路３を介して受信したデバッグ支援プログラム（ＡＳＥファームソフトとも称する）をエミュレーションメモリ１１に格納し、最後にＣＰＵ２は転送したＡＳＥファームソフトの実行が可能にされる。尚、デバッグモードにおいてユーザモードに分岐したユーザプログラムの実行状態では、ＲＥＳによるリセット指示があってもデバッグモードそれ自体のリセット指示はマスクされる。デバッグモードからユーザモードに分岐してユーザープログラムを実行しているとき、リセット入力でリセットベクタへジャンプするかを検証し足りするのを可能にするためである。【００５７】  ＡＳＥファームソフトによってユーザプログラムをホストコンピュータ２５からダウンロードする場合、ＣＰＵ２は、ＡＳＥファームソフトにしたがって、ＵＳＢＩＦ３が受信したダウンロード要求コマンドに応答して、前記ＤＭＡＣ６に、ＵＳＢＩＦ３が受信したユーザプログラムを前記バッファＲＡＭ７に転送させる。例えば、ＵＳＢＩＦ３との通信が完了した後、ＣＰＵ２は、前記ＡＳＥファームソフトにしたがって、ＵＳＢＩＦ３が受信した転送要求コマンドに応答して、前記ＤＭＡＣ６に、前記バッファＲＡＭ７に転送されたプログラムを外部バスインタフェース回路５を介して外部メモリ４に転送制御させる。ＣＰＵ２は、前記ＡＳＥファームソフトの実行状態において、モード制御コマンドに応答してユーザモードに移行し、前記ユーザモードにおいてＣＰＵ２は外部メモリ４から命令をフェッチして実行することができる。【００５８】  図１２にはマイクロコンピュータによるオンチップデバッグの動作タイミングが例示される。時刻ｔ０にＡＳＥＭＤがローレベルにされてデバッグモードが指示され、時刻ｔ１に電源が投入されて、パワーオンリセット回路７３によりパワーオンリセットが指示されると（時刻ｔ２）、制御信号φ２が活性化され、ＣＰＵ２が初期化され、ＣＰＵ２はＲＯＭ７１が保有する前記ＵＳＢ初期化制御プログラムを実行してＵＳＢブート処理を行なってエンドポイントＢＥ０〜ＢＥＰ６の動作を可能とし、その後ＣＰＵ２は、ＲＯＭ７１が保有する前記転送制御プログラムを実行する。すなわち、ＵＳＢインタフェース回路が書き込みコマンドを受信すると、これに応答して、ＵＳＢインタフェース回路３を介して受信したデバッグ支援プログラム（ＡＳＥファームソフトとも称する）をエミュレーションメモリ１１に格納する（ＡＳＥファーム書き込み処理）。ＡＳＥファーム書き込み処理が終わった後、ＵＳＢインタフェース回路３がホストコンピュータからブレークコマンドを受信することにより、ＣＰＵ２はＥＭＭＲＹ１１上のＡＳＥファームソフトを実行可能にされる。この後、ＵＳＢインタフェース回路３がホストコンピュータからユーザプログラム実行コマンドを受信すると、当該ユーザプログラム実行コマンドで指定されるユーザプログラムのアドレスに処理が分岐し、ＣＰＵ２はユーザプログラムを実行するユーザモードに移行される。このユーザプログラムの実行状態において、例えばＵＳＢインタフェース回路がブレークコマンドを受信すると、ＣＰＵ２にブレーク例外要求ＢＥＲＱが発行され、ＣＰＵ２によるユーザプログラムの実行が停止され、ＣＰＵ２は再びＡＳＥファームソフトを実行するデバッグモードに遷移される。【００５９】  図１３にはＵＳＢの通信フォーマットが例示される。１フレームの先頭はＳＯＦ（Ｓｔａｒｔ  ｏｆ  ｆｒａｍｅ）とされる。ＵＳＢ規格におけるＵＳＢ通信フォーマットのフレーム内ではＤＡＴＡ０／ＤＡＴＡ１がオンチップデバック用データパケットとされる。ＤＡＴＡ０／ＤＡＴＡ１のリード／ライトは各ＢＥＰで行う。オンチップデバック用ＵＳＢパケットデータはヘッダーとデータから成る。ヘッダーは、識別ＩＤ、データサイズ、ステータス、命令コマンドの情報を含む。データ情報にダウンロードデータ等の情報を含む。【００６０】  図１４にはホストコンピュータ２５（ＰＣ側）とＵＳＢインタフェース回路３との通信ハンドシェック制御の基本形が例示される。ホストコンピュータ２５から送信されてくるＵＳＢデータパケットをＥＰ３に受信する。次にＣＰＵ２がＡＳＥファームプログラムに従ってＥＰ３に受信したＵＳＢデータパケットを読込み、解析して、解析結果に応ずる制御を行い、その制御結果をＥＰ４よりホストコンピュータ２５に送信する。【００６１】  図１５にはユーザープログラムの実行中に強制ブレークさせる場合のホストコンピュータ２５とＵＳＢインタフェース回路３との間でハンドシェーク制御内容が例示される。ＥＰ５を命令コマンド受信専用バッファとして使用する。ＥＰ５で受信した命令コマンドパケットを解析し、これに応じてＵＳＢ制御回路２１からＣＰＵ２へブレーク例外処理を要求し、ＡＳＥファームのベクタアドレスが与えられる。ＣＰＵ２はユーザプログラムの実行状態からＡＳＥファームプログラムのブレークのアドレスへジャンプする。ＵＳＢインタフェース制御回路２１はＣＰＵ２よりブレークアクナリッジＢＡＣＫを受信し、ＥＰ６にステータス情報（ＢＡＣＫ）をセットしホストコンピュータ２５に送信する。ホストコンピュータ２５はステータスがブレーク状態か否かを確認する。【００６２】  図１６にはホストコンピュータ２５からＵＳＢインタフェース回路３へのソフトウェア（ユーザプログラム）のダウンロードの制御内容が例示される。ホストコンピュータよりソフトダウンロード送信要求と共に転送サイズ、ロード先アドレスがＢＥＰ３へ送信する。これに対し、ＣＰＵ２からＢＥＰ４を介して送信許可がホストコンピュータ２５に転送され、それが完了次第、ホストコンピュータ２５より指定サイズ分だけダウンロードデータがＵＳＢインタフェース回路３に向けて送信される。このとき、ＵＳＢインタフェース回路のＢＥＰ３に受信した場合、ＵＳＢ割り込みにより、ＤＭＡ転送し、直接外部メモリ４に書き込む。指定サイズ分送信終えたらＥＰ４より送信完了をホストコンピュータに送信する。【００６３】  図１７にはマイクロコンピュータ１の更に別の例が示される。図１１との相違点は、ＪＴＡＧＩＦ８及びＡＵＤＩＦ１０を削除し、更に、ＵＳＢＩＦ３をデバッグモードに専用化した点である。ＵＳＢＩＦ３はＢＥＰ１，ＢＥＰ２を備えていない。ユーザー資源としてＵＳＢＩＦ３を利用することはできない。ＵＳＢＩＦ３はオンチップデバックのときだけ使用可能にされる。ＡＵＤＩＦ１０は大容量のトレースデータの格納にユーザー資源のオンチップＲＡＭ７やＥＸＭＲＹ４を使用することが可能な場合は必要ないためである。【００６４】  図１８にはマイクロコンピュータ１の更に別の例が示される。図１７との相違点は、ユーザ専用資源としてＵＳＢＩＦ３Ａを設けた点である。ユーザ専用資源としてＵＳＢＩＦ３ＡはＢＥＰ０，ＢＥＰ１，ＢＥＰ２を構成するバッファ２０と��ＳＢインタフェース制御回路２１Ａを備える。オンチップデバッグとユーザモードの夫々において全く専用化されたＵＳＢＩＦを利用可能である。【００６５】  特に図示はしないが図１１においてＡＵＤＩＦ１０だけを廃止することも可能である。ＵＳＢＩＦ３はオンチップデバックとユーザモードで兼用に使用あれるから、ユーザー資源としてＵＳＢＩＦ３をデバックする場合は、デバッグ用インタフェースとしてＪＴＡＧＩＦ８を利用すればよい。【００６６】  以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。【００６７】  例えば、ＣＰＵ２と内部バス１２の間にはキャッシュメモリが配置されてもよい。仮想アドレスをサポートする場合にはＣＰＵ２と内部バス１２の間にアドレス変換バッファが配置されていてよい。ロジック４１Ａ，４１ＢはＦＰＧＡで構成することに限定されない。【００６８】  図４で説明したマイクロコンピュータ４０が保有するＵＳＢＩＦ４８についても図１１で説明したＵＳＢＩＦ３を適用可能である。この場合、ユーザ専用のＢＥＰは必要ない。
【産業上の利用可能性】
【００６９】  本発明はマイクロコンピュータ、特にデバッグサポート機能を有するマイクロコンピュータ、更にはマイクロコンピュータを動作させるシステムプログラムの開発方法などに広く適用することができる。
【図１】
2005022390.tif 000003
【図２】
2005022390.tif 000004
【図３】
2005022390.tif 000005
【図４】
2005022390.tif 000006
【図５】
2005022390.tif 000007
【図６】
2005022390.tif 000008
【図７】
2005022390.tif 000009
【図８】
2005022390.tif 000010
【図９】
2005022390.tif 000011
【図１０】
2005022390.tif 000012
【図１１】
2005022390.tif 000013
【図１２】
2005022390.tif 000014
【図１３】
2005022390.tif 000015
【図１４】
2005022390.tif 000016
【図１５】
2005022390.tif 000017
【図１６】
2005022390.tif 000018
【図１７】
2005022390.tif 000019
【図１８】
2005022390.tif 000020
【手続補正書】
【提出日】平成17年12月26日(2005.12.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
中央処理装置、デバッグ用インタフェースに利用可能な高速シリアル通信インタフェース回路、及び外部メモリに接続可能な外部バスインタフェース回路を有し、
前記高速シリアル通信インタフェース回路はその内部に複数の入力バッファを有し、相互に一の入力バッファに対する入力動作に並行して他の入力バッファからデータを出力可能とされ、
前記デバッグモードにおいて、前記高速シリアル通信インタフェース回路はシステムプログラムを受信し、受信されたシステムプログラムをメモリアクセス制御信号と共に前記外部バスインタフェース回路から出力可能であることを特徴とするマイクロコンピュータ。
【請求項２】
前記高速シリアル通信インタフェース回路は、ユニバーサルシリアルバスインタフェース回路であることを特徴とする請求項１記載のマイクロコンピュータ。
【請求項３】
受信されたシステムプログラムを外部バスインタフェースに接続されたメモリに転送制御が可能なダイレクトメモリアクセスコントローラを有することを特徴とする請求項２記載のマイクロコンピュータ。
【請求項４】
前記ダイレクトメモリアクセスコントローラによるシステムプログラムの転送元は前記高速シリアル通信インタフェースの入力バッファであることを特徴とする請求項３記載のマイクロコンピュータ。
【請求項５】
前記高速シリアル通信インタフェース回路の入力バッファに受信されたシステムプログラムを一時的に蓄積可能なランダムアクセスメモリを有し、
前記ダイレクトメモリアクセスコントローラによるシステムプログラムの転送元は前記ランダムアクセスメモリであることを特徴とする請求項３記載のマイクロコンピュータ。
【請求項６】
デバッグ専用低速シリアル通信インタフェース回路を有し、前記デバッグ専用低速シリアル通信インタフェース回路は、デバッグモードにおいて、前記高速シリアル通信インタフェース回路を制御する制御データの入力に利用可能であることを特徴とする請求項１記載のマイクロコンピュータ。
【請求項７】
前記デバッグ専用低速シリアル通信インタフェース回路は、デバッグモードにおいて、前記高速シリアル通信インタフェース回路に代えてシステムプログラムの受信に利用可能であることを特徴とする請求項６記載のマイクロコンピュータ。
【請求項８】
前記デバッグ専用低速シリアル通信インタフェース回路はＪＴＡＧに準拠しデータレジスタを有することを特徴とする請求項６又は７記載のマイクロコンピュータ。
【請求項９】
トレース制御回路を有し、前記トレース制御回路は前記中央処理装置が前記システムプログラムを実行したときの内部状態をトレース情報として逐次蓄えることを特徴とする請求項１又は６記載のマイクロコンピュータ。
【請求項１０】
前記トレース情報の外部出力に前記高速シリアル通信インタフェース回路を利用可能であることを特徴とする請求項９記載のマイクロコンピュータ。
【請求項１１】
ホストコンピュータと、エミュレータと、ターゲットデバイスとを用いて、ターゲットデバイスが実行するシステムプログラムを開発する方法であって、
前記エミュレータによる処理として、ホストコンピュータが高速シリアル通信で出力するシステムプログラムを２面バッファの一方のバッファに蓄積する第１処理と、前記２面バッファの他方のバッファに蓄積されたシステムプログラムを前記第１処理に並行してターゲットデバイスに低速シリアル通信で送信する第２処理と、ターゲットデバイスとの間の前記低速シリアル通信のハンドシェーク制御を行なう第３処理を含み、
前記第２処理では、前記バッファから出力するシステムプログラムを前記一つのバッファの記憶容量以上のＦＩＦＯバッファを経由してターゲットデバイスに低速シリアル通信で送信し、
前記第３処理では、ターゲットデバイスからの送信許可に応答してＦＩＦＯバッファからターゲットデバイスへの送信を行ない、ＦＩＦＯバッファのフル状態に応答して前記バッファからＦＩＦＯバッファへの転送を抑制することを特徴とするシステムプログラムの開発方法。
【請求項１２】
ユーザモードとデバッグモードを有するマイクロコンピュータであって、
中央処理装置と、ユニバーサルシリアルバスインタフェース回路と、第１のデバッグ用制御プログラムを保有するＲＯＭと、ＲＡＭと、外部バスインタフェース回路とを備え、
前記ユニバーサルシリアルバスインタフェース回路は、前記デバッグモードで利用可能にされる所定のエンドポイントバッファ回路を有し、前記所定のエンドポイントバッファ回路は並列動作可能な一対のバッファを有し、前記一対のバッファは相互に一方が入力動作可能にされるのに並行して他方が出力動作可能とされ、
前記中央処理装置は、パワーオンリセット時に前記デバッグモードが指定されているとき、前記第１のデバッグ用制御プログラムを実行して、前記ユニバーサルシリアルバスインタフェース回路を動作可能に初期化し、第２のデバッグ用制御プログラムを前記ユニバーサルシリアルバスインタフェース回路で受信し、受信した第２のデバッグ用制御プログラムを前記ＲＡＭに格納し、ＲＡＭに格納した第２のデバッグ用制御プログラムの実行に移行するマイクロコンピュータ。
【請求項１３】
バッファＲＡＭとダイレクトメモリアクセスコントローラと更に有し、
中央処理装置は、前記第２のデバッグ用制御プログラムにしたがって、ユニバーサルシリアルバスインタフェース回路が受信したダウンロード要求コマンドに応答して、前記ダイレクトメモリアクセスコントローラに、ユニバーサルシリアルバスインタフェース回路が受信したプログラムを前記バッファＲＡＭに転送させる請求項１２記載のマイクロコンピュータ。
【請求項１４】
前記中央処理装置は、前記第２のデバッグ用制御プログラムにしたがって、ユニバーサルシリアルバスインタフェース回路が受信した転送要求コマンドに応答して、前記ダイレクトメモリアクセスコントローラに、前記バッファＲＡＭに転送されたプログラムを外部バスインタフェース回路を介して外部に転送制御させる請求項１３記載のマイクロコンピュータ。
【請求項１５】
中央処理装置は、前記第２のデバッグ用制御プログラムの実行状態において、モード制御コマンドに応答してユーザモードに移行し、
前記ユーザモードにおいて中央処理装置は外部バスインタフェース回路を介して命令をフェッチする請求項１２記載のマイクロコンピュータ。
【請求項１６】
中央処理装置と、ユニバーサルシリアルバスインタフェース回路と、第１のデバッグ用制御プログラムを保有するＲＯＭと、バッファＲＡＭと、外部インタフェース回路とを備え、
前記ユニバーサルシリアルバスインタフェース回路は、所定のエンドポイントバッファ回路を有し、前記所定のエンドポイントバッファ回路は並列動作可能な一対のバッファを有し、前記一対のバッファは相互に一方が入力動作可能にされるのに並行して他方が出力動作可能とされ、
前記中央処理装置は、パワーオンリセット時に前記第１のデバッグ用制御プログラムを実行して、前記ユニバーサルシリアルバスインタフェース回路を動作可能に初期化し、第２のデバッグ用制御プログラムを前記ユニバーサルシリアルバスインタフェース回路で受信し、受信した第２のデバッグ用制御プログラムを前記バッファＲＡＭに格納し、バッファＲＡＭに格納した第２のデバッグ用制御プログラムを前記外部インタフェース回路を介して出力させるマイクロコンピュータ。
【請求項１７】
ダイレクトメモリアクセスコントローラを更に有し、
前記ダイレクトメモリアクセスコントローラは、前記中央処理装置による転送制御条件にしたがって、前記バッファＲＡＭから第２のデバッグ用制御プログラムを前記外部インタフェース回路を介して外部に転送する請求項１６記載のマイクロコンピュータ。
【国際調査報告】
2005022390.tif 000021
2005022390.tif 000022
2005022390.tif 000023
2005022390.tif 000024