(57)【特許請求の範囲】
【請求項１】
共有するメインバスを介して相互に接続され、デバッグの対象となる複数のマイクロプロセッサと、
デバッグプログラムに基づいてデバッグ作業を制御するデバッグツールに接続され、前記各マイクロプロセッサとの間で個別にデバッグプログラムならびにデバッグデータの転送制御を行う単一のデバッグモジュールと、
前記メインバスとは独立し、前記各マイクロプロセッサと前記デバッグモジュールをそれぞれ個別に接続し、前記各マイクロプロセッサと前記デバッグモジュールとの間で個別にデバッグプログラムならびにデバッグデータが転送されるデバッグシリアルバスと、
前記デバッグモジュールと前記各マイクロプロセッサとをそれぞれ個別に接続して、前記各マイクロプロセッサがデバッグされる際のデバッグ制御情報が転送されるデバッグ制御バスとを具備し、
前記各マイクロプロセッサは、それぞれ同期して動作しマルチプロセッサシステムを構築し、前記マイクロプロセッサのデバッグ機能を制御するデバッグサポートユニットを備え、
前記デバッグモジュールは、前記デバッグ制御バスを介して前記各マイクロプロセッサの任意の前記マイクロプロセッサに並行してデバッグ割り込みを要求してユーザーモードからデバッグモードに移行させ、前記デバッグ制御バスを介して前記各マイクロプロセッサのデバッグ状態を個別かつ並行して監視し、監視結果に基づいて任意の前記マイクロプロセッサをユーザーモードからデバッグモードに移行させる
ことを特徴とするシステムＬＳＩ。
【請求項２】
前記デバッグモジュールは前記メインバスに直接接続され、前記デバッグツールは、前記マイクロプロセッサを介することなく前記デバッグモジュールを介して前記メインバスに対して直接メモリアクセスを行う
ことを特徴とする請求項１記載のシステムＬＳＩ。
【請求項３】
前記デバッグモジュールは、前記各マイクロプロセッサに個別かつ並行して、デバッグモードからユーザモードへの復帰を任意に延長指示する
ことを特徴とする請求項１又は２記載のシステムＬＳＩ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、複数のマイクロプロセッサを備えたシステムＬＳＩにおいて、各マイクロプロセッサを独立して監視制御可能とし、複数のマイクロプロセッサを有機的にデバッグできるようにしたシステムＬＳＩに関する。
【０００２】
【従来の技術】
近年、半導体プロセス技術の向上により、機器組み込み用途向けのシステムＬＳＩでは、複数のマイクロプロセッサコアを同一のシリコンチップ上に搭載したものが登場し始めている。複数のプロセッサを使用する理由は、ＬＳＩが処理すべき内容を複数のタスクに分割し、各タスクに最適な構成を持ったプロセッサを並列に動作させることで、大幅な処理速度の向上と最適なシリコン面積の両立が可能になるからである。
【０００３】
特に、マルチメディア関連のシステムＬＳＩのうち、画像圧縮伸長処理を行うシステムＬＳＩでは、膨大な計算量が必要であり、かつリアルタイムに処理を完結することが要求される。これらのシステムを実現するものとして、ハードウエア回路の組み合わせにより解決する実装法がある一方、ここで述べるようなマルチプロセッサシステムの構成により実現する手法が多くなってきている。
【０００４】
この理由は、これらの処理が複数のタスクに分割しやすく、かつデータの依存関係から各タスクをパイプライン的に処理しやすいものだからである。また、時分割処理により一つのプロセッサに複数の機能の異なるタスクを割り当てることで、専用のハードウエア回路を複数用意するよりも結果的にシリコンコストを削減できる可能性があるからである。さらに、ファームウエアの書き換えを可能にしておき、仕様変更やアルゴリズム変更により性能向上への柔軟な対応が容易なことが、市場に供給された後にも必要になってきているからである。
【０００５】
このような複数のプロセッサを同一のシリコン上に収めたシステムＬＳＩにおいては、従来のマイクロプロセッサシステムにはないデバッグシステム設計上の課題がある。まず、一般的な複数のプロセッサをデバッグするために、外部との通信手段（一般的にはシリアルポート）を備えた従来のデバッグシステム（従来例１）と、複数の個々のプロセッサが単一で使用された場合に、外部に対してデバッグ機能を提供するようなデバッグモジュールを内蔵し、これらを組み合わせた従来のデバッグシステム（従来例２）を従来例とし、これら各々の従来例に対してシステム設計上の課題を説明する。
【０００６】
図６は上記従来例１の一構成を示す図である。図６において、デバッグの対象となるユーザターゲットシステム６０は、システムＬＳＩ６０１、システムＬＳＩ６０１に接続されたメモリ６０２ならびＩ／Ｏ６０３を備え、システムＬＳＩ６０１は、２つのマイクロプロセッサ６０４、６０５、デバッグモジュール６０６、メモリコントローラ６０８、ＤＭＡコントローラ６０９、Ｉ／Ｏコントローラ６１０を備え、これらはメインバス６０７を介して接続され、デバッグモジュール６０６は外部デバッグインターフェース６２を介してデバッグツール６１に接続されている。それぞれのマイクロプロセッサ６０４，６０５は、プロセッサコア６１１、バスインタフェースユニット６１２を備え、デバッグモジュール６０６は、シリアルＩ／Ｆ６１３、排他制御用セマフォ６１４を備えている。
【０００７】
このようなシステムＬＳＩ６０１は、特別なデバッグサポートユニットを持たず、すべてのデバッグ制御がソフトウエア的に実装される形態である。デバッグソフトウエアプログラム自体は、デバッグモジュール６０６を介してデバッグツール６１からシリアルＩ／Ｆ６１３の外部デバッグインタフェース６２を経由して供給され、メインバス６０７上のメモリイメージとして見えるようになっている。あるいは、さらに単純にデバッグプログラムもユーザーメモリ上に置かれることも考えられる。また、複数のマイクロプロセッサ６０４、６０５が同時にデバッグモジュール６０６のシリアルポートをアクセスするような資源衝突を防止するために、排他制御用セマフォ６１４が実装されることが多い。
【０００８】
このような構成において、まず従来例１の課題１を説明する。この課題とは、複数のマイクロプロセッサ６０４、６０５が同一の資源をアクセスすることにより発生するバグをどのようにしてデバッグを行うのかという点である。特にメインバス６０７の競合状態はバグを特定する上で重要な情報であり、競合時のメインバス状態はなるべく破壊されずにデバッグ時に観測できなければならない。また、この競合状態が深刻になり、メインバス６０７がデッドロックを起こした場合でも、デバッグが出来なければならない。しかし、従来例１では、デバッグソフトウエアプログラム自体がメインバス６０７を経由して供給されるため、上記の競合状態は破壊されて観測することができなかった。そもそも、メインバス６０７のデッドロックが解消された後でなければデバッグプログラムそのものが動作しない。
【０００９】
次に、従来例１の課題２を説明する。メインバス６０７は通常同時に１つのマイクロプロセッサ６０４、６０５のみのアクセスを行う。このことは、複数のマイクロプロセッサ６０４．６０５間で命令供給の時間的な差異が生じ、デバッグプログラム実行上における同期ずれが発生する可能性がある。特に、ユーザモードからデバッグモードへの移行時、ならびにデバッグモードからユーザモードへの復帰時には、遷移時の各マイクロプロセッサ６０４．６０５でのプログラム実行位置の相対関係を保持しつつ行われることが必要である。しかし、例えばデバッグモードからユーザモードへ復帰する場合は、従来例１では同時に１つのマイクロプロセッサ６０４．６０５のみが命令供給とメモリアクセスが可能なため、先にユーザモード復帰命令の供給を受けたマイクロプロセッサ６０４．６０５と、その後に命令供給を受けたマイクロプロセッサ６０４．６０５の間では時間的な差異が生じ、プログラムの相対位置関係を正確に把握することができなかった。
【００１０】
次に、従来例１の課題３を説明する。デバッグモジュール６０６は、メインバス６０７を経由してマイクロプロセッサ６０４、６０５よりアクセスを受ける。メインバス６０７は、特定のマイクロプロセッサ６０４．６０５のみにアクセス権を与えることが出来ない。このため、デバッグプログラムは常に公平にマイクロプロセッサ６０４、６０５にプログラムを実行させるのを前提にプログラミングする。特定のマイクロプロセッサ６０４．６０５のみの実行を連続的に行わせるといった制御は不可能なため、デバッグプログラムの実行の効率が悪化する。
【００１１】
次に、従来例１の課題４を説明する。複数のマイクロプロセッサ６０４．６０５を効率よくコントロールし、デバッグのパフォーマンスをいかに確保するのかという点では、デバッグモジュール６０６がメインバス６０７から受け取るアクセスはどのマイクロプロセッサ６０４．６０５からのものであるかが判別できないという事が問題になる。すなわち、デバッグ時に複数のマイクロプロセッサ６０４．６０５を個別にコントロールすることが出来ないため、マイクロプロセッサ６０４，６０５固有の情報を利用したソフトウエア的な動作の切り替えを行うようにしなければならない。これは、制御対象とならないマイクロプロセッサ６０４，６０５にとっては、全く不要の処理となっていた。
【００１２】
図７は上記従来例２の構成を示す図である。図７において、デバッグの対象となるユーザターゲットシステム７０は、システムＬＳＩ７０１、システムＬＳＩ７０１に接続されたメモリ７０２ならびＩ／Ｏ７０３を備え、システムＬＳＩ７０１は、２つのマイクロプロセッサ７０４、７０５、デバッグモジュールセレクタ７０６、メモリコントローラ７０８、ＤＭＡコントローラ７０９、Ｉ／Ｏコントローラ７１０を備え、デバッグモジュールセレクタ７０６を除くこれらはメインバス７０７を介して接続され、デバッグモジュールセレクタ７０６は外部デバッグインタフェース７２を介してデバッグツール７１に接続されている。それぞれのマイクロプロセッサ７０４，７０５は、プロセッサコア７１１、デバッグモジュール７１２、バスインタフェースユニット７１３、デバッグサポートユニット７１４を備えている。
【００１３】
このような構成においては、それぞれのマイクロプロセッサ７０４，７０５は、デバッグモジュール７１２ならびにデバッグサポートユニット７１４を備えることにより、デバッグプログラムの供給にメインバス７０７が使用されず、また各マイクロプロセッサ７０４、７０５のデバッグ機能を個別に制御することにより、上記従来例１の課題２を除く課題を解消することが可能である。しかし、従来例２においても上記課題２は解消されず、また新たな課題が発生していた。
【００１４】
まず、従来例２の課題１として、図７の構成において、デバッグツール７１のメインバス７０７上のメモリに対するアクセスは、マイクロプロセッサ７０４，７０５の命令を介して行われるため、実行メモリ転送速度が低下していた。
【００１５】
さらに、従来例２の課題２として、各マイクロプロセッサ７０４，７０５にはほとんど同じデバッグモジュール７１１、７１２が内蔵されるため、構成が大きくなりコストが上昇していた。
【００１６】
【発明が解決しようとする課題】
以上説明したように、複数のプロセッサを備えた従来のシステムＬＳＩにおいて、メインバスに共通接続された複数のマイクロプロセッサに対して、デバッグ作業を支援する単一のデバッグモジュールでデバッグ制御をソフトウェア的に行う場合には、メインバスの競合状態を観測できない、デバッグプログラムの相対位置関係を正確に把握できない、特定のマイクロプロセッサの連続実行が不可能になる、ならびに複数のマイクロプロセッサの動作切り替えをそれぞれのマイクロプロセッサの固有の情報を用いてソフトウェア的に行わなければならないといった不具合を招いていた。
【００１７】
一方、それぞれのマイクロプロセッサにデバッグサポートユニットを備えたシステムＬＳＩにあっては、デバッグプログラムの相対位置関係を正確に把握できない、実行メモリ転送速度が低下する、ならびに構成の大型化とコストが上昇するといった不具合を招いていた。
【００１８】
そこで、この発明は、上記に鑑みてなされたものであり、その目的とするところは、構成の大型化を招くことなく十分なデバッグを可能とし、デバッグの品質を向上することができるシステムＬＳＩを提供することにある。
【００１９】
【課題を解決するための手段】
上記目的を達成するために、課題を解決する手段は、共有するメインバスを介して相互に接続され、デバッグの対象となる複数のマイクロプロセッサと、デバッグプログラムに基づいてデバッグ作業を制御するデバッグツールに接続され、前記各マイクロプロセッサとの間で個別にデバッグプログラムならびにデバッグデータの転送制御を行う単一のデバッグモジュールと、前記メインバスとは独立し、前記各マイクロプロセッサと前記デバッグモジュールをそれぞれ個別に接続し、前記各マイクロプロセッサと前記デバッグモジュールとの間で個別にデバッグプログラムならびにデバッグデータが転送されるデバッグシリアルバスと、前記デバッグモジュールと前記各マイクロプロセッサとをそれぞれ個別に接続して、前記各マイクロプロセッサがデバッグされる際のデバッグ制御情報が転送されるデバッグ制御バスとを具備し、前記各マイクロプロセッサは、それぞれ同期して動作しマルチプロセッサシステムを構築し、前記マイクロプロセッサのデバッグ機能を制御するデバッグサポートユニットを備え、前記デバッグモジュールは、前記デバッグ制御バスを介して前記各マイクロプロセッサの任意の前記マイクロプロセッサに並行してデバッグ割り込みを要求してユーザーモードからデバッグモードに移行させ、前記デバッグ制御バスを介して前記各マイクロプロセッサのデバッグ状態を個別かつ並行して監視し、監視結果に基づいて任意の前記マイクロプロセッサをユーザーモードからデバッグモードに移行させることを特徴とする。
【００２３】
【発明の実施の形態】
以下、図面を用いてこの発明の実施形態を説明する。
【００２４】
この発明の一実施形態に係るシステムＬＳＩは、実行モードとしてユーザモードとデバッグモードを有する複数のマイクロプロセッサが、１本のメインバスを共有する形態のマルチプロセッサシステムで構成され、個々のマイクロプロセッサの実行モードを独立にコントロールし、その実行モードの状態を常に監視するためのインタフェースを備えている。この実行モードの監視機構を利用して、一つのマイクロプロセッサの実行状態が変化することを検出し、この変化を起点にして任意のマイクロプロセッサを同期的にデバッグモードへ移行させ、マルチプロセッサのデバッグ機能を実現する。
【００２５】
マイクロプロセッサが行うメモリアクセスのうち、デバッグプログラムの実行に必要なメモリアクセスをメインバスとは分離したバスにより行なうことで、バグ発生時のメインバス状態の保持や、各マイクロプロセッサのバス競合関係を保存、復元することを可能にする。さらに、メインバスより分離したバスにより、特定のマイクロプロセッサに対してメモリアクセスを行うことと、複数のマイクロプロセッサに対して同一のデータを同時に供給することを並行して行うことで、デバッグプログラムの高速な実行を可能にする。また、メインバスに直接接続され、全てのマイクロプロセッサが共通してアクセスできるメモリ領域にマイクロプロセッサの介在なしにアクセスできるようにしている。
【００２６】
図１はこの発明の一実施形態に係るシステムＬＳＩの構成を示す図である。図１において、この実施形態のシステムＬＳＩは、２つのマイクロプロセッサを備えたマルチプロセッサシステムであり、デバッグ対象のユーザターゲットシステム０は、システムＬＳＩ１、メモリ２ならびにＩ／Ｏ３を備えて構成され、システムＬＳＩ１は、デバッグモジュール１０，マイクロプロセッサ１１−１，１１−２、メモリコントローラ１５、ＤＭＡコントローラ１６、Ｉ／Ｏコントローラ１７を備えて構成されている。マイクロプロセッサ１１−１，１１−２は、それぞれバスインタフェースユニット１１−１１，１１−２１、プロセッサコア１１−１２，１１−２２、デバッグサポートユニット１１−１３，１１−２３を備えて構成されている。デバッグモジュール１０は、外部デバッグインタフェース５を介してデバッグツール２と接続され、デバッグ制御バス１２−１を介してマイクロプロセッサ１１−１のデバッグサポートユニット１１−１３と接続され、デバッグ制御バス１２−２を介してマイクロプロセッサ１１−２のデバッグサポートユニット１１−２３と接続され、デバッグシリアルバス１３−１を介してマイクロプロセッサ１１−１のバスインタフェースユニット１１−１１に接続され、デバッグシリアルバス１３−２を介してマイクロプロセッサ１１−２のバスインタフェースユニット１１−２１に接続され、メインバス１４を介してマイクロプロセッサ１１−１のバスインタフェースユニット１１−１１、マイクロプロセッサ１１−２のバスインタフェースユニット１１−２１、メモリコントローラ１５、ＤＭＡコントローラ１６ならびにＩ／Ｏコントローラ１７に接続されている。
【００２７】
デバッグシリアルバス１３−１，１３−２は、各マイクロプロセッサ１１−１，１１−２に対してメインバス１４を介在させずにデバッグツール２から供給されるデバッグ作業を実行制御するモニタプログラムをマイクロプロセッサ１１−１，１１−２が実行するために使用される。デバッグ制御バス１２−１，１２−２は、各マイクロプロセッサ１１−１，１１−２のデバッグサポートユニット１１−１３，１１−２３と結合し、デバッグモードの実行制御関連レジスタの監視と制御をデバッグツール２から可能にする。また、メインバス１４と外部デバッグインタフェース５は、メインバス１４上に接続されるメモリなどをデバッグツール２が直接アクセスするために使用される。
【００２８】
デバッグモジュール１０は、図２に示すように構成される。図２において、デバッグモジュール１０は、マルチデバッグコントロールレジスタ２０、デバッグコントロールレジスタ２１、アドレスレジスタ２２、バイトイネーブルレジスタ２３、データレジスタ２４、外部デバッグインタフェース回路２５、デバッグシリアルバス変換回路２６、デバッグシリアルバスセレクタ２７ならびにＤＭＡコントローラ２８を備えて構成されている。
【００２９】
外部デバッグインタフェース回路２５は、外部デバッグインタフェース５を介して転送される設定情報により、マルチデバッグコントロールレジスタ２０、デバッグコントロールレジスタ２１、アドレスレジスタ２２、バイトイネーブルレジスタ２３、データレジスタ２４の設定を行う。また、これらのレジスタの設定内容は、外部デバッグインタフェース５を介してデバッグツール２に伝達される。
【００３０】
マルチデバッグコントロールレジスタ２０は、各マイクロプロセッサ１１−１，１１−２の状態を監視しており、ブレークなどによりマイクロプロセッサ１１−１，１１−２がデバッグ状態に移行すると、対応した値が反映される。また、マルチデバッグコントロールレジスタ２０は、各マイクロプロセッサ１１−１，１１−２を強制的にデバッグモードに移行させるデバッグ割り込みを個別に発生させる。また、１つのマイクロプロセッサ１１−１，１１−２がデバッグモードに移行するのに同期して、特定のマイクロプロセッサ１１−１，１１−２に対して上記のデバッグ割り込みを発生させる。
【００３１】
デバッグシリアルバス１３−１又は１３−２は、マルチデバッグコントロールレジスタ２０からのデバッグシリアルバス選択信号の指示でデバッグシリアルバスセレクタ２７により選択され、デバッグシリアルバス変換回路２６に選択入力される。デバッグコントロールレジスタ２１は、デバッグシリアル開始信号によりデバッグシリアルバス変換回路２６を起動し、有効なデバッグシリアルバス１３−１又は１３−２とアドレスレジスタ２２、バイトイネーブルレジスタ２３、データレジスタ２４のデータ交換を行う。デバッグシリアル開始信号は、接続されるマイクロプロセッサ１１−１，１１−２がデバッグモードにある場合に有効となる。
【００３２】
一方、デバッグコントロールレジスタ２１は、ＤＭＡ開始信号によりＤＭＡコントローラ２８を起動して、メインバス１４に対しアドレスレジスタ２２、バイトイネーブルレジスタ２３、データレジスタ２４の内容でメモリアクセスを起こす。これにより、デバッグモジュール１０を介してデバッグツール２はメインバス１４に接続され、マイクロプロセッサ１１−１，１１−２がデバッグモードになくても利用することが出来る。
【００３３】
デバッグ制御バス１２−１，１２−２は、図３に示すように構成される。図３において、デバッグ制御バス１２−１，１２−２は、ＤＩＮＴ信号、Ｄｍ信号、ならびにＤＳｔｌ信号で構成される。マイクロプロセッサ１１−１，１１−２のプロセッサコア１１−１２，１１−２２は、デバッグモードに移行した場合に、デバッグモード通知信号をアサートしてデバッグサポートユニット１１−１３，１１−２３に知らせる。これにより、デバッグサポートユニット１１−１３，１１−２３は、Ｄｍ信号をアサートしデバッグモジュール１０に対してデバッグモードに移行したことを通知する。このＤｍ信号がアサートされる条件は次のものがある。
【００３４】
（条件１）ＤＩＮＴ信号がアサートされたことをデバッグサポートユニット１１−１３，１１−２３が検出し、デバッグサポートユニット１１−１３，１１−２３がプロセッサコア１１−１２，１１−２２に対してデバッグ割り込み要求信号をアサートする。
【００３５】
（条件２）デバッグサポートユニット１１−１３，１１−２３がデバッグ割り込み条件を検出し、プロセッサコア１１−１２，１１−２２に対してデバッグ割り込み要求信号をアサートする。
【００３６】
（条件３）プロセッサコア１１−１２，１１−２２が、デバッグ例外命令を実行することによりデバッグモードに移行する。
【００３７】
ＤＳｔｌ信号は、デバッグサポートユニット１１−１３，１１−２３を介してコアストール要求信号をプロセッサコア１１−１２，１１−２２にアサートする。このコアストール要求信号がアサートされている間は、ユーザーモードの実行は延期され、マイクロプロセッサ１１−１，１１−２間のユーザーモードの実行を開始する際の同期に使用される。
【００３８】
デバッグシリアルバス１３−１，１３−２は、図４に示すように構成される。図４において、デバッグシリアルバス１３−１，１３−２はＤＢＳＥＬ、ＤＳＤＡＯ、ＤＢＳＤＩで構成され、バスインタフェースユニット１１−１１，１１−２１に接続されている。バスインタフェースユニット１１−１１，１１−１２は、メインバスデバッグバス制御回路４０，パラレル→シリアル変換回路４１，シリアル→パラレル変換回路４２ならびにセレクタ４３を備えて構成されている。
【００３９】
プロセッサコア１１−１２，１１−２１からのデバッグモード通知信号は、メインバスデバッグバス制御回路４０に入力され、ＲＥＱ信号、ＡＣＫ信号、ＥＲＲ信号、アドレス、バイトイネーブル信号、リードライト要求信号、データといったメモリアクセスにかかわる信号をメインバス１４又はデバッグシリアルバス１３−１，１３−２に切り替える。デバッグモード通知信号がアサートされている場合は、メインバスデバッグバス制御回路４０から出力される選択信号によりセレクタ４３を切り替え、アドレス、バイトイネーブル信号、リードライト要求信号、データをパラレル→シリアル変換回路４１に入力する。デバッグモード通知信号がデアサートの場合には、上記選択信号に基づいてセレクタ４３により、全ての要求はメインバス１４へと切り替えられる。
【００４０】
パラレル→シリアル変換回路４１に入力されたアクセス内容は、ＤＢＳＥＬがアサートされることによりメインバスデバッグバス制御回路４０から出力される変換開始信号にしたがってＤＳＤＡＯへのシリアルデータ転送開始が指示される。リード要求の場合には、ＤＢＳＤＩからデータを受け取り、シリアル→パラレル変換回路４２によりデータを確定したことを変換終了信号としてメインバスデバッグバス制御回路４０に入力し、またセレクタ４３を介してプロセッサコア１１−１２，１１−２１にデータとして入力される。メモリアクセスの制御信号となるＲＥＱ信号、ＡＣＫ信号、ＥＲＲ信号は、上記変換開始信号ならびに変換終了信号から生成される。ＤＳＤＡＯ，ＤＢＳＤＩによるシリアル転送の開始は、ＤＢＳＥＬがアサートされることにより開始される。
【００４１】
外部デバッグインタフェース５は、図５に示すように構成される。図５において、外部デバッグインタフェース５は、ＴＣＫ、ＴＲＳＴ＊ 、ＴＭＳ、ＴＤＩ、ＴＤＯより構成される。デバッグモジュール１０の外部デバッグインタフェース回路２５には、システムＬＳＩ１全体のリセット信号ＲＥＳＥＴが与えられる。リセット信号ＲＥＳＥＴがアサートされた場合は、外部デバッグインタフェース５はリセットされる。また、ＴＲＳＴ＊ がアサートされた場合には、外部デバッグインタフェース回路２５のみがリセットされる。ＴＣＫ，ＴＭＳは外部デバッグインタフェース回路２５のレジスタ設定状態を決める。ＴＤＩはデバッグツール２から実際のレジスタの選択と、レジスタ値の確定に使用される。また、ＴＤＯはレジスタの確定値の監視に使用される。
【００４２】
このように、上記実施形態では、２つのマイクロプロセッサ１１−１，１１−２が内蔵され、これらのマイクロプロセッサ１１−１，１１−２が一つのメインバス１４を共有するシステムＬＳＩ１を構成し、メインバス１４上でエラーが発生してデバッグが必要になった場合には、デバッグに必要なデバッグプログラムとデータをメインバス１４とは独立したデバッグシリアルバス１３−１，１３−２により任意かつ個別にやりとりを一つのデバッグモジュール１０で行い、このデバッグモジュール１０と外部デバッグインタフェース５を介して接続されたデバッグツール２によりデバッグを行っている。これにより、複数のマイクロプロセッサ１１−１，１１−２に対する個別のデバッグ機能を最小コストで実現することができる。また、デバッグモジュールは、メインバス１４に接続されて直接メインバス１４に対してメモリアクセスを行うＤＭＡコントローラ２８を備え、このＤＭＡコントローラ２８を用いてデバッグツール２からプログラム等を直接転送することが可能となり、ユーザープログラムのダウンロードなどの効率を改善することができる。
【００４３】
また、２つのマイクロプロセッサ１１−１，１１−２のそれぞれに内蔵されるプロセッサコア１１−１２，１１−２２のデバッグ機能をコントロールするデバッグサポートユニット１１−１３，１１−２３と、デバッグ制御バス１２−１，１２−２を介して接続されたデバッグモジュール１０が、このデバッグ制御バス１２−１，１２−２を介して２つのマイクロプロセッサ１１−１，１１−２のデバッグ状態を個別に監視し、個別にデバッグ割り込み要求を発行している。これにより、ユーザモードからデバッグモードへの遷移を、マイクロプロセッサ１１−１，１１−２間の同期関係を崩さずに遷移させることが出来る。さらに、デバッグモジュール１０は、デバッグ制御バス１２−１，１２−２を介してデバッグモードからユーザモードへの復帰を任意の時間だけ延期する指示を与える。これにより、デバッグモードからユーザモードへの復帰時に、マイクロプロセッサ１１−１，１１−２間の同期関係を崩さずに遷移させることが出来る。
【００４４】
【発明の効果】
以上説明したように、この発明によれば、デバッグシリアルバスを介して単一のデバッグモジュールと複数のマイクロプロセッサとの間で個別にデバッグ作業に必要な情報を転送するようにしたので、各マイクロプロセッサを十分にデバッグすることができる。
【００４５】
また、デバッグツールがデバッグモジュールを介して直接メモリアクセスを行えるようにしたので、デバッグツールからの情報転送を効率よく実施することができる。
【００４６】
さらに、デバッグモジュールから各マイクロプロセッサへ個別にデバッグ割り込みを要求するようにしたので、マイクロプロセッサ間の同期関係を崩さずに、マイクロプロセッサをユーザモードからデバッグモードへ遷移させることができる。一方、デバッグモジュールが各マイクロプロセッサのデバッグモードからユーザモードへの復帰を任意に延長指示するようにしたので、マイクロプロセッサ間の同期関係を崩さずに、各マイクロプロセッサをデバッグモードからユーザモードに復帰させることが可能となる。
【図面の簡単な説明】
【図１】この発明の一実施形態に係るシステムＬＳＩをデバッグする構成を示す図である。
【図２】デバッグモジュールの構成を示す図である。
【図３】デバッグ制御バスの構成を示す図である。
【図４】バスインターフェースユニットならびにデバッグシリアルバスの構成を示す図である。
【図５】外部デバッグインタフェースの構成を示す図である。
【図６】システムＬＳＩをデバッグする従来の一構成を示す図である。
【図７】システムＬＳＩをデバッグする従来の他の構成を示す図である。
【符号の説明】
０  ユーザターゲットシステム
１  システムＬＳＩ
２  デバッグツール
３  メモリ
４  Ｉ／Ｏ
５  外部デバッグインタフェース
１０  デバッグモジュール
１１−１，１１−２  マイクロプロセッサ
１１−１１，１１−２１  バスインタフェースユニット
１１−１２，１１−２２  プロセッサコア
１１−１３，１１−２３  デバッグサポートユニット
１２−１，１２−２  デバッグ制御バス
１３−１，１３−２  デバッグシリアルバス
１４  メインバス
１５  メモリコントローラ
１６  ＤＭＡコントローラ
１７  Ｉ／Ｏコントローラ
２０  マルチデバッグコントロールレジスタ
２１  デバッグコントロールレジスタ
２２  アドレスレジスタ
２３  バイトイネーブルレジスタ
２４  データレジスタ
２５  外部デバッグインタフェース回路
２６  デバッグシリアルバス変換回路
２７  デバッグシリアルバスセレクタ
２８  ＤＭＡコントローラ
４０  メインバスデバッグバス制御回路
４１  パラレル→シリアル変換回路
４２  シリアル→パラレル変換回路
４３  セレクタ
【図１】
0003913470.tif 000002
【図２】
0003913470.tif 000003
【図３】
0003913470.tif 000004
【図４】
0003913470.tif 000005
【図５】
0003913470.tif 000006
【図６】
0003913470.tif 000007
【図７】
0003913470.tif 000008