(57)【要約】【課題】  高価な外部ＩＣＥなしでターゲット端末のデバッグが可能になるマルチコアプロセッサ及びデバッグ方法を提供する。【解決手段】  デバッグコントロールユニットを内蔵した組み込みシステム向けマルチコアプロセッサにおけるＪＴＡＧ ＩＣＥデバッグ機能、すなわち、プログラム停止・再開、レジスタダンプ、メモリダンプ、トレースなどを、１つのマルチコアプロセッサを使って実現させる。【選択図】  図１
2006146412.tif 000002
【特許請求の範囲】
【請求項１】
デバッグコントロールユニットを内蔵した、組み込みシステム向けのマルチコアプロセッサであって、
一のＣＰＵで前記デバッグコントロールユニットを制御することにより、ターゲット端末のデバッグを行うことを特徴とするマルチコアプロセッサ。
【請求項２】
ターゲットアプリケーションが動作する、少なくとも１以上の第１のＣＰＵと、
ターゲット側デバッガソフトが動作する第２のＣＰＵと、
デバッグコントロールユニットと、
デバッグインターフェースと、
メモリマネージメントユニットと、
周辺ロジックと、
メモリコントローラと、
内蔵メモリと、を有し、
一のＣＰＵで前記デバッグコントロールユニットの制御を行うことを特徴とするマルチコアプロセッサ。
【請求項３】
前記第１のＣＰＵ及び前記第２のＣＰＵは、前記デバッグコントロールユニットによりコントロールされることを特徴とする請求項２記載のマルチコアプロセッサ。
【請求項４】
前記第１のＣＰＵ及び前記第２のＣＰＵのうち少なくとも１つのＣＰＵは、前記デバッグインターフェースを介して前記デバッグコントロールユニットをコントロールすることを特徴とする請求項２又は３記載のマルチコアプロセッサ。
【請求項５】
前記デバッグコントロールユニットは、前記第１のＣＰＵ及び前記第２のＣＰＵをコントロールすることにより、ブレイクポイント設定による前記各ＣＰＵの停止、再開、内部レジスタのリード・ライト、内部キャッシュのリード・ライト、前記周辺ロジックへのアクセス、前記内蔵メモリへのアクセス、前記メモリマネージメントユニットの設定・設定値参照、前記各ＣＰＵの命令実行のトレースのうち少なくとも１以上の機能を実装することを特徴とする請求項２から４のいずれか１項に記載のマルチコアプロセッサ。
【請求項６】
前記周辺ロジックを介して接続され、ホスト側デバッガソフトを有する外部デバッグホストを有し、
前記外部デバッグホストは、前記周辺ロジックを介して通信を行い、制御されることを特徴とする請求項２から５のいずれか１項に記載のマルチコアプロセッサ。
【請求項７】
ブレイクポイントを設定する場合、前記第２のＣＰＵから前記デバッグコントロールユニットのブレイクポイント制御レジスタに対し該当ＣＰＵの指定とアドレスを設定することにより停止又は再開させることを特徴とする請求項２から６のいずれか１項に記載のマルチコアプロセッサ。
【請求項８】
前記第２のＣＰＵから前記メモリコントローラ経由で前記内蔵メモリ又は前記外部メモリに所定のブレイクポイント命令を書き込むことで、前記第１のＣＰＵでソフトウエアブレイクを発生させることを特徴とする請求項２から７のいずれか１項に記載のマルチコアプロセッサ。
【請求項９】
前記デバッグコントロールユニットに対してキャッシュの参照先アドレス、キャッシュコヒーレンシ情報を与えることにより、前記第２のＣＰＵで当該キャッシュの中身を物理メモリに反映させ、同じアドレスのメモリを参照することでキャッシュの内容をダンプすることを特徴とする請求項２から８のいずれか１項に記載のマルチコアプロセッサ。
【請求項１０】
前記第２のＣＰＵでトレースデータの解析をリアルタイムで行い、必要なデータだけを外部インターフェースを通して出力することを特徴とする請求項２から９のいずれか１項に記載のマルチコアプロセッサ。
【請求項１１】
デバッグコントロールユニットを内蔵した、組み込みシステム向けのマルチコアプロセッサのデバッグ方法であって、
一のＣＰＵで前記デバッグコントロールユニットを制御することにより、ターゲット端末のデバッグを行うことを特徴とするデバッグ方法。
【請求項１２】
前記デバッグコントロールユニットにより、ターゲットアプリケーションが動作する、少なくとも１以上の第１のＣＰＵ及び前記ターゲット側デバッガソフトが動作する第２のＣＰＵをコントロール可能とすることを特徴とする請求項１１記載のデバッグ方法。
【請求項１３】
前記第１のＣＰＵ及び前記第２のＣＰＵのうち少なくとも１つのＣＰＵは、前記デバッグインターフェースを介して前記デバッグコントロールユニットをコントロール可能とする請求項１１又は１２記載のデバッグ方法。
【請求項１４】
前記デバッグコントロールユニットは、前記第１のＣＰＵ及び前記第２のＣＰＵをコントロールすることにより、ブレイクポイント設定による前記各ＣＰＵの停止、再開、内部レジスタのリード・ライト、内部キャッシュのリード・ライト、周辺ロジックへのアクセス、内蔵メモリへのアクセス、メモリマネージメントユニットの設定・設定値参照、前記各ＣＰＵの命令実行のトレースのうち少なくとも１以上の機能を実装することを特徴とする請求項１１から１３のいずれか１項に記載のデバッグ方法。
【請求項１５】
周辺ロジックを介して接続され、ホスト側デバッガソフトを有する外部デバッグホストは、前記周辺ロジックを介して通信を行い、制御されることを特徴とする請求項１１から１４のいずれか１項に記載のデバッグ方法。
【請求項１６】
ブレイクポイントを設定する場合、前記第２のＣＰＵから前記デバッグコントロールユニットのブレイクポイント制御レジスタに対し該当ＣＰＵの指定とアドレスを設定することにより停止又は再開させることを特徴とする請求項１１から１５のいずれか１項に記載のデバッグ方法。
【請求項１７】
前記第２のＣＰＵからメモリコントローラ経由で内蔵メモリ又は外部メモリに所定のブレイクポイント命令を書き込むことで、前記第１のＣＰＵでソフトウエアブレイクを発生させることを特徴とする請求項１１から１６のいずれか１項に記載のデバッグ方法。
【請求項１８】
前記デバッグコントロールユニットに対してキャッシュの参照先アドレス、キャッシュコヒーレンシ情報を与えることにより、前記第２のＣＰＵで当該キャッシュの中身を物理メモリに反映させ、同じアドレスのメモリを参照することでキャッシュの内容をダンプすることを特徴とする請求項１１から１７のいずれか１項に記載のデバッグ方法。
【請求項１９】
前記第２のＣＰＵでトレースデータの解析をリアルタイムで行い、必要なデータだけを外部インターフェースを通して出力することを特徴とする請求項１１から１８のいずれか１項に記載のデバッグ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバッグコントロールユニットを内蔵した組み込みシステム向けマルチコアプロセッサに関し、詳しくは、プログラム停止・再開、レジスタダンプ、メモリダンプ、トレース等のＪＴＡＧＩＣＥデバッグ機能を実現するマルチコアプロセッサ及びデバッグ方法に関する。
【背景技術】
【０００２】
従来、組み込み機器においてソフトウエアをデバッグする際、ＩＣＥと、ＩＣＥを接続するためのＩ／Ｆを持つ専用のデバッグボードとを使用するという手法を使っていた。しかし、ＩＣＥもデバッグボードも大量に作るものではないため非常に高価であり、また、実際の製品とは異なるためにソフトの挙動が異なる(デバッグボードでは不具合が発生するが、実機ではできない)ことがある。
【０００３】
また、ＬＳＩに内蔵された周辺回路などは間接的なデバッグ、すなわち外部からＤＣＵ（Debug Control Unit：デバッグコントロールユニット）経由でコントロールすることになるため、実際の使用方法などとは異なることがあった。
【０００４】
さらに、近年のＣＰＵの高性能化に伴い、ＭＭＵ(Memory Management Unit：メモリマネージメントユニット)などの外部からは実際のメモリアドレスが見えないような回路や、外部からＤＣＵをコントロールするためのＩ／Ｆの高速化により、ＩＣＥでのデバッグを実現させることがさらに難しくなってきている。
【０００５】
従来、図２のようにＬＳＩのデバッグＩ／Ｆ６と外付けのＪＴＡＧ ＩＣＥ１０を使用することでデバッグを行っていた。しかし、そのためには専用の高速通信用コネクタ(６〜３８pinなど)が必要で携帯電話のような小型の端末では使用できなかった。また、非常に高価(２０〜１００万円以上)であるため使用できる台数も限られる。さらに、ＩＣＥ自体の消費電力の問題で、移動中のデバッグなどを行うには大きなバッテリを持ち歩く必要が出てきてしまい、現実的には不可能である。さらに、メモリの内容を制御するためにターゲットに合わせたメモリエミュレーションユニットも必要になり、これはシステム依存のため一般的に特注品となる。納期や価格の問題に直面していた。
【０００６】
従来技術例として、「マルチプロセッサシステムのプログラムデバッグ方法」がある（例えば、特許文献１参照）。この発明は、密結合型マルチプロセッサシステムを構成する複数のプロセッサ１１〜１５の内の１つのプロセッサ１５をデバッガ動作用プロセッサとしてシステムから論理的に切り離し、その上でデバッガ１１１を動作させ、残りのプロセッサ１１〜１４でシステム動作を続ける。デバッガ１１１はデバッガ用コンソール１７から入力されたコマンドに応じてプロセッサ１１〜１４を個別に停止させたり、再開させたり、オペレーティング・システム１１０にブレイクポイントを設定する機能を持つ。ブレイクポイント例外時に、例外を発生したプロセッサのみ停止させるか、プロセッサ１１〜１４全てを停止させるかが選択できる。よって、特別なプロセッサを使用せずに、マルチプロセッサシステムのオペレーティング・システムのデバッグが行え、且つ、複数のプロセッサが一斉に同一のクリティカルリージョンを実行するといったタイミングを作ることができる。
【特許文献１】特開平６−３３２７４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記特許文献１の発明は、大規模なオープンシステム開発時におけるソフトウエアデバッグ手法によるＯＳのデバッグを主眼に置いたものであり、組込みで使われるＩＣＥデバッグの代替としては使用できない。また、上記発明の実現のためには特別にソフトを組み込む必要があり、メモリの限られた小型機などでは実現が難しい。
【０００８】
本発明は、上記事情に鑑みてなされたものであり、ＤＣＵをマルチコアの内の１つのＣＰＵで制御することにより、高価な外部ＩＣＥなしでターゲット端末のデバッグが可能になるマルチコアプロセッサ及びデバッグ方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
かかる目的を達成するために、請求項１記載の発明は、デバッグコントロールユニットを内蔵した、組み込みシステム向けのマルチコアプロセッサであって、一のＣＰＵでデバッグコントロールユニットを制御することにより、ターゲット端末のデバッグを行うことを特徴とする。
【００１０】
請求項２記載の発明は、ターゲットアプリケーションが動作する、少なくとも１以上の第１のＣＰＵと、ターゲット側デバッガソフトが動作する第２のＣＰＵと、デバッグコントロールユニットと、デバッグインターフェースと、メモリマネージメントユニットと、周辺ロジックと、メモリコントローラと、内蔵メモリと、を有し、一のＣＰＵでデバッグコントロールユニットの制御を行うことを特徴とする。
【００１１】
請求項３記載の発明は、請求項２記載の発明において、第１のＣＰＵ及び第２のＣＰＵは、デバッグコントロールユニットによりコントロールされることを特徴とする。
【００１２】
請求項４記載の発明は、請求項２又は３記載の発明において、第１のＣＰＵ及び第２のＣＰＵのうち少なくとも１つのＣＰＵは、デバッグインターフェースを介してデバッグコントロールユニットをコントロールすることを特徴とする。
【００１３】
請求項５記載の発明は、請求項２から４のいずれか１項に記載の発明において、デバッグコントロールユニットは、第１のＣＰＵ及び第２のＣＰＵをコントロールすることにより、ブレイクポイント設定による各ＣＰＵの停止、再開、内部レジスタのリード・ライト、内部キャッシュのリード・ライト、周辺ロジックへのアクセス、内蔵メモリへのアクセス、メモリマネージメントユニットの設定・設定値参照、各ＣＰＵの命令実行のトレースのうち少なくとも１以上の機能を実装することを特徴とする。
【００１４】
請求項６記載の発明は、請求項２から５のいずれか１項に記載の発明において、周辺ロジックを介して接続され、ホスト側デバッガソフトを有する外部デバッグホストを有し、外部デバッグホストは、周辺ロジックを介して通信を行い、制御されることを特徴とする。
【００１５】
請求項７記載の発明は、請求項２から６のいずれか１項に記載の発明において、ブレイクポイントを設定する場合、第２のＣＰＵからデバッグコントロールユニットのブレイクポイント制御レジスタに対し該当ＣＰＵの指定とアドレスを設定することにより停止又は再開させることを特徴とする。
【００１６】
請求項８記載の発明は、請求項２から７のいずれか１項に記載の発明において、第２のＣＰＵからメモリコントローラ経由で内蔵メモリ又は外部メモリに所定のブレイクポイント命令を書き込むことで、第１のＣＰＵでソフトウエアブレイクを発生させることを特徴とする。
【００１７】
請求項９記載の発明は、請求項２から８のいずれか１項に記載の発明において、デバッグコントロールユニットに対してキャッシュの参照先アドレス、キャッシュコヒーレンシ情報を与えることにより、第２のＣＰＵで当該キャッシュの中身を物理メモリに反映させ、同じアドレスのメモリを参照することでキャッシュの内容をダンプすることを特徴とする。
【００１８】
請求項１０記載の発明は、請求項２から９のいずれか１項に記載の発明において、第２のＣＰＵでトレースデータの解析をリアルタイムで行い、必要なデータだけを外部インターフェースを通して出力することを特徴とする。
【００１９】
請求項１１記載の発明は、デバッグコントロールユニットを内蔵した、組み込みシステム向けのマルチコアプロセッサのデバッグ方法であって、一のＣＰＵでデバッグコントロールユニットを制御することにより、ターゲット端末のデバッグを行うことを特徴とする。
【００２０】
請求項１２記載の発明は、請求項１１記載の発明において、デバッグコントロールユニットにより、ターゲットアプリケーションが動作する、少なくとも１以上の第１のＣＰＵ及びターゲット側デバッガソフトが動作する第２のＣＰＵをコントロール可能とすることを特徴とする。
【００２１】
請求項１３記載の発明は、請求項１１又は１２記載の発明において、第１のＣＰＵ及び第２のＣＰＵのうち少なくとも１つのＣＰＵは、デバッグインターフェースを介してデバッグコントロールユニットをコントロール可能とする。
【００２２】
請求項１４記載の発明は、請求項１１から１３のいずれか１項に記載の発明において、デバッグコントロールユニットは、第１のＣＰＵ及び第２のＣＰＵをコントロールすることにより、ブレイクポイント設定による各ＣＰＵの停止、再開、内部レジスタのリード・ライト、内部キャッシュのリード・ライト、周辺ロジックへのアクセス、内蔵メモリへのアクセス、メモリマネージメントユニットの設定・設定値参照、各ＣＰＵの命令実行のトレースのうち少なくとも１以上の機能を実装することを特徴とする。
【００２３】
請求項１５記載の発明は、請求項１１から１４のいずれか１項に記載の発明において、周辺ロジックを介して接続され、ホスト側デバッガソフトを有する外部デバッグホストは、周辺ロジックを介して通信を行い、制御されることを特徴とする。
【００２４】
請求項１６記載の発明は、請求項１１から１５のいずれか１項に記載の発明において、ブレイクポイントを設定する場合、第２のＣＰＵからデバッグコントロールユニットのブレイクポイント制御レジスタに対し該当ＣＰＵの指定とアドレスを設定することにより停止又は再開させることを特徴とする。
【００２５】
請求項１７記載の発明は、請求項１１から１６のいずれか１項に記載の発明において、第２のＣＰＵからメモリコントローラ経由で内蔵メモリ又は外部メモリに所定のブレイクポイント命令を書き込むことで、第１のＣＰＵでソフトウエアブレイクを発生させることを特徴とする。
【００２６】
請求項１８記載の発明は、請求項１１から１７のいずれか１項に記載の発明において、デバッグコントロールユニットに対してキャッシュの参照先アドレス、キャッシュコヒーレンシ情報を与えることにより、第２のＣＰＵで当該キャッシュの中身を物理メモリに反映させ、同じアドレスのメモリを参照することでキャッシュの内容をダンプすることを特徴とする。
【００２７】
請求項１９記載の発明は、請求項１１から１８のいずれか１項に記載の発明において、第２のＣＰＵでトレースデータの解析をリアルタイムで行い、必要なデータだけを外部インターフェースを通して出力することを特徴とする。
【発明の効果】
【００２８】
本発明によれば、ＤＣＵをマルチコアプロセッサの内の１つのＣＰＵで制御することにより、高価な外部ＩＣＥなしでターゲット端末のデバッグが可能になる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明を実施するための最良の形態について添付図面を参照して詳細に説明する。
【００３０】
（発明の特徴）
本発明は、デバッグコントロールユニットを内蔵した組み込みシステム向けマルチコアプロセッサにおけるＪＴＡＧ ＩＣＥデバッグ機能、すなわち、プログラム停止・再開、レジスタダンプ、メモリダンプ、トレースなどを、１つのマルチコアプロセッサを使って実現させることを特徴としている。
【００３１】
本発明のマルチコアプロセッサは、図１に示すように、２つ以上の汎用ＣＰＵ１〜３と、ＤＣＵ４、ＤＣＵと、ＤＣＵを制御するためのデバッグＩ／Ｆ６(ＪＴＡＧ Ｉ／Ｆなど)、ＭＭＵ５、周辺ロジック７、キャッシュメモリ１１〜１３を内蔵するマルチコアＬＳＩ１４で、ＣＰＵ１〜３の１つのＣＰＵ(例えばＣＰＵ３)にてＤＣＵ４の制御を行う。外部デバッグホスト９は、マルチコアＬＳＩ１４に内蔵された周辺ロジック(例えばＵＳＢ Ｉ／Ｆなど)を介して通信を行い、制御される。
【００３２】
このようにして、本発明では、外付けのＪＴＡＧ ＩＣＥと同等のデバッグ機能をＬＳＩ単体で実現できるものとし、実製品に近い小型端末機でも高度なデバッグを行うことができる。
【実施例１】
【００３３】
（実施例の構成）
図１に本実施例の構成例を示す。本実施例のマルチコアプロセッサは、２つ以上の汎用ＣＰＵ１〜３と、ＤＣＵ４、ＤＣＵ４をコントロールするデバッグＩ／Ｆ６、ＭＭＵ５、周辺ロジック７、キャッシュメモリ１１〜１３、メモリコントローラ１５、内蔵メモリ１６、マルチコアＬＳＩ１４と接続される外部メモリ８、外部デバッグホスト９、ホスト側デバッガソフト１７、ターゲット側デバッガソフト１６、ターゲットアプリケーション１８で構成される。
【００３４】
（実施例の動作）
図１を参照して、本実施例の動作例について説明する。
ＬＳＩ１４にはターゲットアプリケーション１８が動作するＣＰＵ１〜２とターゲット側デバッガソフト１６が動作するＣＰＵ３がある。このＣＰＵ数は少なくとも２個以上であれば制限は無く、１つはデバッガソフトが動作し、他のＣＰＵはそれぞれ任意のソフトウエアが動作するものとする。
【００３５】
各ＣＰＵ１〜３はＤＣＵ４によりコントロール可能で、また少なくとも１つのＣＰＵはＤＣＵ４をデバッグＩ／Ｆ６を介してコントロール可能とする(本実施例の場合ＣＰＵ３)。
【００３６】
このＤＣＵ４はハード的にＣＰＵ１〜３をコントロールすることができ、ブレイクポイント設定による各ＣＰＵの停止、再開、内部レジスタのリード・ライト、内部キャッシュのリード・ライト、周辺ロジックへのアクセス、内蔵メモリへのアクセス、ＭＭＵの設定・設定値参照、ＣＰＵの命令実行のトレースなどの機能を必要に応じて全部または一部が実装されており、ソフトウエアのデバッグを行えるものとする。
【００３７】
通常、このＤＣＵ４は規格化されたデバッグＩ／Ｆ(ＪＴＡＧ Ｉ／Ｆなど)により外部のＩＣＥと接続され、デバッグ機能を発揮する。しかし、本実施例の場合、内部にあるＣＰＵ３からアクセスされコントロールされることになる。このため、外部にＪＴＡＧ ＩＣＥなどは不要となり、また端末に備えられている周辺ロジック７の機能(ＵＳＢやシリアルなどのＩ／Ｆ)を使用して外部デバッグホスト９、ホスト側デバッガソフト１７と通信することで外部ＪＴＡＧ ＩＣＥを使用した場合と同等の高度なデバッグ機能が実現できる。
【００３８】
（ハードウエアブレイク）
ブレイクポイントを設定する場合、ＣＰＵ３からＤＣＵ４のブレイクポイント制御レジスタに対し該当ＣＰＵの指定とアドレスを設定することにより停止させ、また再開の指示もＣＰＵ３からＤＣＵ４経由で行う。
【００３９】
（ソフトウエアブレイク）
ＣＰＵ３からメモリコントローラ経由で内蔵メモリ１６、外部メモリ８に所定のブレイクポイント命令を書き込むことで、ＣＰＵ１〜２でソフトウエアブレイクを発生させる。ＣＰＵ３も停止させることは可能だが、その場合ターゲット側のデバッガソフトが停止することになる。通常、ＭＭＵ５を備えたＬＳＩでは物理メモリのアドレスと、ソフトウエアがそれぞれ参照する論理メモリのアドレスは一致しない。外部のＪＴＡＧ ＩＣＥだとこれを識別するのは難しいが、内部のデバッグ用ＣＰＵ３であれば、ＭＭＵの設定値を直接読み込むことで論理アドレスと物理アドレスの解決を簡単に行うことができるため、ソフトウエアブレイクポイントの設定も簡易である。
【００４０】
（キャッシュメモリのリード・ライト）
ＣＰＵ１〜３のキャッシュメモリの内容はそれぞれのＣＰＵでしか参照できないが、ＤＣＵ４に対してキャッシュの参照先アドレス、キャッシュコヒーレンシ情報(実メモリと一致しているか不一致かの情報)さえ与えることができれば、デバッグ用ＣＰＵ３で当該キャッシュの中身を物理メモリに反映させ、同じアドレスのメモリを参照することでキャッシュの内容をダンプすることが可能となる。また、キャッシュコヒーレンシ解決をハード的に行うＳＭＰ型のマルチコアプロセッサの場合は、他のＣＰＵのキャッシュを直接参照できるため、さらに容易に実現できる。
【００４１】
（周辺ロジックへのアクセス）
通常、外部ＪＴＡＧ ＩＣＥを使用する場合、ＬＳＩ内部の周辺ロジックへのアクセスはレジスタレベルの制御(手入力やあらかじめ指定した簡単なマクロ制御など)に限られてしまう。しかし、内部に存在するＣＰＵを使用する場合、周辺ロジックの複雑な制御も可能となる。たとえば、内蔵されているＵＳＢ Ｉ／Ｆを使いデータを直接外部コンソールへ送信することや、ＬＣＤコントローラを制御し端末に実装された表示デバイスからメッセージを表示させることや、端末に実装されたキーボードデバイスからデバッグコマンドを入力することも可能になる。
【００４２】
その他、ＬＳＩに内蔵された機能だけでなく、外部バスを経て接続されている周辺デバイスの制御も可能であり、ターゲット端末が備えている全機能をデバッグ中に制御することも可能である。
【００４３】
（ＣＰＵの命令実行のトレース）
ＤＣＵ４で取得されているＣＰＵ１〜３の命令実行トレース情報はＣＰＵの動作速度の高速化に伴いデータ転送レートが増加しており、数百MHzで動作するようなＣＰＵの場合リアルタイムトレースを行うには高速データ転送可能な専用Ｉ／Ｆが必要となる。当然装置も高価なものとなり、将来GHzプロセッサになると現実的には外部のトレースユニットでは実現不可能になると考えられる。
【００４４】
一般的にＤＣＵ４で取得されるトレースデータは外部ユニットで解析が必要で、解析後のデータは元データよりも小さくなる。ＣＰＵ３でトレースデータの解析をリアルタイムで行い、必要なデータだけを外部Ｉ／Ｆを通して出力することでＵＳＢのような汎用Ｉ／Ｆでもトレースデータの取得が可能になる。
【００４５】
その他、ＤＣＵ４が備えるＣＰＵ内のレジスタアクセス、内蔵周辺ロジックのレジスタアクセス、内蔵メモリへのアクセスなどは問題なく行える。
【００４６】
（実施例の効果）
以上説明したように、本実施例においては、以下に記載するような効果を奏する。
第１の効果は、ＤＣＵをマルチコアの内の１つのＣＰＵで制御することにより、高価な外部ＩＣＥなしでターゲット端末のデバッグが可能になる。外部ホストとの通信にはＬＳＩ内蔵のＵＳＢ Ｉ／Ｆなどを使うこともできる。
【００４７】
第２の効果は、上記外部ＩＣＥなしでデバッグが行えることから、実製品に近い小型端末でも戸外に持ち出してデバッグが可能になる。
【００４８】
第３の効果は、従来難しかったＭＭＵを使用した物理メモリアドレス、仮想メモリアドレスの解決のための特殊な手法が不要になる。
【００４９】
第４の効果は、ＤＣＵを制御するＣＰＵはデバッグが終われば通常のＣＰＵとして使用でき、セキュリティ機能などへの転用が可能になり、無駄を省くことができる。
【００５０】
第５の効果は、高クロックＣＰＵはＤＣＵをコントロールするためや、トレースデータを取得するために高速な通信Ｉ／Ｆが必要になるが、ＤＣＵを内部からコントロールすることにより高速通信のための外部Ｉ／Ｆが不要となる。
【００５１】
第６の効果は、並列ＣＰＵを使うことで、評価対象のソフトウエアに対して無用なオーバーヘッドを課することなくデバッグを行うことができる。
【実施例２】
【００５２】
デバッグの一部をソフト的に処理しても良い。ＤＣＵ４のコントロールからだけではなく、ＣＰＵ１、ＣＰＵ２側にあらかじめデバッグをサポートするソフトを組み込み、デバッグ用ＣＰＵ３とのプロセス間通信などにより、デバッグ機能をサポートすることも可能である。
【００５３】
以上、本発明の実施例について説明したが、上記実施例に限定されるものではなく、その要旨を逸脱しない範囲において種々の変形が可能である。
【図面の簡単な説明】
【００５４】
【図１】本発明の実施例１に係るマルチコアプロセッサの構成を示すブロック図である。
【図２】従来技術に係るマルチコアプロセッサの構成を示すブロック図である。
【符号の説明】
【００５５】
１、２、３    ＣＰＵ
４    ＤＣＵ
５    ＭＭＵ
６    デバッグＩ／Ｆ
７    周辺ロジック
８    外部メモリ
９    外部デバッグホスト
１１、１２、１３    キャッシュメモリ
１４    マルチコアＬＳＩ
１５    メモリコントローラ
１６    ターゲット側デバッガソフト
１７    ホスト側デバッガソフト
１８    アプリケーションソフト
【図１】
2006146412.tif 000003
【図２】
2006146412.tif 000004