(57)【要約】【課題】高価な外部ＩＣＥなしでターゲット端末のデバッグとトレースダンプが可能になるマルチコアプロセッサ及びデバッグ方法を提供する。【解決手段】デバッグコントロールユニットを内蔵したターゲットマルチコアプロセッサSOCにおけるEJTAGデバッグ機能、すなわち、プログラム停止・再開、レジスタダンプ、メモリダンプなどと全てのプロセッサのトレースダンプ機能をFIFOで構成し、ターゲットに内蔵のUSBデバイスコントローラのオプションデバイスとして実装する。【選択図】図２
2013015985.tif 000002
【特許請求の範囲】
【請求項１】
デバッグコントロールユニットを内蔵した、組み込みシステム向けのマルチコアプロセッサであって、
USBデバイスインタフェースを持ち、
USBデバイスコントローラによって制御されるＥＪＴＡＧおよびトレースデータ収集ハードウエアを有し、
これらのハードウエアにより、
マルチコアプロセッサシステムのデバックを外部のパーソナルコンピュータ等でＵＳＢ経由で行える事を特徴としたマルチコアプロセッサデバイス。
【請求項２】
ターゲットアプリケーションが動作する、少なくとも３個以上のＣＰＵと、
ＥＪＴＡＧデバッグコントロールユニットと、
ＥＪＴＡＧデバッグインターフェースと、
マルチコアプロセッサ毎のトレースデータを一定長にパッキングする機能と、
すべてのプロセッサからのトレースデータを一時的に保管するプロセッサ毎のＦＩＦＯと、
それらすべてのＦＩＦＯデータを集積し、
USB転送用のＦＩＦＯと、
ＵＳＢデバイスコントローラに依って制御されるＪＴＡＧ回路と、
ＵＳＢデバイスコントローラを経由して、外部のパーソナルコンピュータにトレースデータを転送する機能と、
メモリマネージメントユニットと、
ＤＤＲ ＳＤＲＡMメモリーコントローラと、
周辺ロジックと、
フラッシュメモリコントローラと、
内蔵メモリと、を有し、
すべてのプロセッサの実行トレースダンプが特別な外部ハードウエア無しに可能である事を特徴とするマルチコアプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバッグコントロールユニットを内蔵した組み込みシステム向けマルチコアプロセッサにおいて、プログラム停止・再開、レジスタダンプ、メモリダンプ、トレース等のEJTAGデバック方式に加えて、マルチコアプロセッサの全てのプロセッサの実行トレースを実時間処理で外部装置にダンプする方法に関する。
【背景技術】
【０００２】
ハイエンドのマルチコアプロセッサではEJTAG方式によるデバック制御が行われている。また、実行トレースダンプにおいてはプロセッサコアより、コード化で情報圧縮された、トレースダンプデータが送信される様になっている。図１従来例参照
【０００３】
図1において、[100]はターゲットデバイス(SoC)である。ターゲットデバイスはマルチコアプロセッサモジュール(101)を持つ。このモジュールはEJTAGデバック制御モジュール(102)を持ち、デバイス内のTAP回路を経由し、デバイス(100)の外部EJTAG端子に接続される。
【０００４】
本例のマルチコアプロセッサモジュールには一つのコヒーレンシープロセッサ(103)と４つのプロセッサコア(104-107)を内蔵し、すべてのコアからは適宜コード化された、可変長のトレースデータがトレース端子から出力される。
【０００５】
上記のトレース出力全てをデバイスの外に取りだすには多くのピン端子を必要とする為、デバイスの経済性に沿って、選択回路(109)で幾つかを選択、バッファー回路で64バイト等の固定長データに纏めてから、デバイスに設けられた専用端子から外部に取りだす。
【０００６】
EJTAGデバックツール(150)は制御パーソナルコンピュータ(180)とUSB接続され、デバイス(100)とEJTAGおよびトレース端子で接続する事が出来る。EJTAG端子からはJTAG接続を通じてDEBUG制御が出来る。トレース端子からはデバイスから送られてきたトレースデータをメモリーに蓄積、最終的には制御PC(180)に取り込む事が出来る。
【０００７】
以上が現状のデバック環境であるが、デバック専用端子（特にトレース端子）は製品コストを上げる要因となるが使用頻度は極めて低い。トレース出力については端子の高周波数特性を確保が難しい為、トレースに当たってはCPUのスピードを落とさなければならない場合もある。
【０００８】
近年、マルチコアプロセッサのコア数も増え、パフォーマンス調整や効率的なデバッグの為に実速度ですべてのプロセッサートレースダンプを取る必要性が高まっている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許公開２００６−１４６４１２
【特許文献２】ＰＣＴ／ＪＰ２００４／０１２３５０
【特許文献３】特許出願２００８−５０９４３９
【特許文献４】特許公開２００８−２２６０８３
【発明の概要】
【発明が解決しようとする課題】
【００１０】
マルチコアプロセッサのプロセッサ数増大に伴い、従来のトレースデータ処理方法では実速度かつ全プロセッサのトレースを取れなくなって来た。また、トレースの為の専用ピンを設ける事は経済性の妨げとなっている。
【課題を解決するための手段】
【００１１】
トレースダンプデータを一時的に蓄積する大規模メモリーの代わりにインテリジェントな選択回路を備えたFIFO集合体に置き換える事で、外部のデバックツールと等価な機能を持った回路をターゲットSOCに集積する事が可能となる。
【図面の簡単な説明】
【００１２】
【図１】従来はデバイスにEJTAGとトレース端子を付け、外部にこれらの端子と繋げるデバックツールを使用していた。
【図２】本特許による構成例：制御用PC(180)はターゲットデバイスのUSB端子に直接つながる。
【図３】複数のFIFOからランダムに蓄積されるトレースデータを効率良く、下位のFIFOに転送する実施回路例
【実施例】
【００１３】
図2の説明。100はマルチコアプロセッサモジュール(101)が内蔵された、ターゲットデバイスである。
【００１４】
マルチコアプロセッサモジュールのEJTAG端子はTAP回路に繋がれ、デバイス内のUSBデバイスコントローラに制御されるJTAGコントロール回路によって制御される。結果的にデバックは該USB端子に繋がれた外部の制御PC(280)に依ってコントロールされる。
【００１５】
マルチコアプロセッサモジュールから出力される５本のトレースデータはFIFOデータ集積回路(200)に依って、USB用のFIFOに適宜転送される。USBコントローラはこれらをさらに制御PC(280)へ転送する。このUSBデバイスは同時にターゲットデバイスの他の回路も制御できる。
【００１６】
図3は図2に置けるFIFOデータ集積回路(200)の実施例である。この例ではFIFO数は４本となっているが本数に制約は無い。
【００１７】
(302)で代表される各FIFOはデータ出力ポート(OUT)とFIFO内のデータ数を示すポート(CNT)がある。
【００１８】
(303)で代表される機能ブロックは二つある入力(I1,I2)のうち大きい数値を出力(O)に出力する。結果的に機能ブロック(303)の出力は全てのFIFOの最大データ数を示す。
【００１９】
上記の最大データ数は(304)で代表される機能ブロックの片方の入力に繋がれる。機能ブロック(304)は二つの入力(I1,I2)の数値がゼロ以外で一致した時に"1"を出力する。
【００２０】
(305)の選択回路はR(n)入力が"1"であるポートを優先して、D(n)のデータをFIFOから取り込む。
【００２１】
(306)はUSBのパケット用FIFOで512Bのデータ毎にホストへのパケット転送を起動する。
【図１】
2013015985.tif 000003
【図２】
2013015985.tif 000004
【図３】
2013015985.tif 000005