(57)【要約】同時に停止及び再生する機能を用いて、マルチコアシステムをデバッグする技術が説明される。１つの設計において、装置（例えばＡＳＩＣ）は、第１及び第２の処理コアを含む。デバッグ中に、第１又は第２の処理コアは、動作を停止するソフトウェアコマンドを受け取り、動作の停止を示す第１のハードウェア信号を生成する。他方の処理コアは、第１のハードウェア信号を受け取り、動作を停止する。両方の処理コアは、第１のハードウェア信号に基づいて、ほぼ同時に停止する。その後、第１又は第２の処理コアは、動作を再開する別のソフトウェアコマンドを受け取り、動作の再開を示す第２のハードウェア信号を生成する。他方の処理コアは、第２のハードウェア信号を受け取り、動作を再開する。両方の処理コアは、第２のハードウェア信号に基づいて、ほぼ同時に再開する。第１及び第２のハードウェア信号は、同一の、又は異なる処理コアから来ることができる。
2009524159.tif 000002
【特許請求の範囲】
【請求項１】
デバッグ中に、停止していた動作の再開を示す第１のハードウェア信号を生成するように動作可能な第１の処理コアと、
前記第１のハードウェア信号を受信することに応答して、動作を再開するように動作可能な第２の処理コアと
を備える装置。
【請求項２】
前記第１の処理コアは、前記第１のハードウェア信号が生成されると動作を再開し、前記第１の処理コアと第２の処理コアとは、ほぼ同時に動作を再開する請求項１に記載の装置。
【請求項３】
前記第１の処理コアは、再開ソフトウェアコマンドを受信することに応答して、前記第１のハードウェア信号を生成するように動作可能である請求項１に記載の装置。
【請求項４】
前記第１の処理コアは、停止を示す第２のハードウェア信号を生成するように動作可能であり、前記第２の処理コアは、前記第２のハードウェア信号を受信することに応答して停止するように動作可能である請求項１に記載の装置。
【請求項５】
前記第１のハードウェア信号は、物理ハードウェア信号上の第１のエッジに対応し、前記第２のハードウェア信号は、前記物理ハードウェア信号上の第２のエッジに対応する請求項４に記載の装置。
【請求項６】
前記第２の処理コアは、デバッグ中に前記第２の処理コアの停止を示す第２のハードウェア信号を生成するように動作可能である請求項１に記載の装置。
【請求項７】
前記第１及び第２の処理コアは、前記第２の処理コアからの前記第２のハードウェア信号に基づいて停止するように動作可能である請求項６に記載の装置。
【請求項８】
前記第１及び第２の処理コアのうち少なくとも１つが、デジタル信号処理（ＤＳＰ）コアである請求項１に記載の装置。
【請求項９】
前記第１及び第２の処理コアのうち少なくとも１つが、縮小命令セットコンピュータ（ＲＩＳＣ）マシンである請求項１に記載の装置。
【請求項１０】
前記第１及び第２の処理コアは、特定用途向け集積回路（ＡＳＩＣ）上で形成される請求項１に記載の装置。
【請求項１１】
少なくとも２つの処理コアのデバッグ中に、停止していた動作の再開を示す第１のハードウェア信号を生成する手段と、
前記第１のハードウェア信号を受信することに応答して、前記少なくとも２つの処理コアの動作を再開する手段と
を備える装置。
【請求項１２】
前記少なくとも２つの処理コアのうちの処理コアの動作を再開するためのソフトウェアコマンドを受信する手段を更に備え、前記第１のハードウェア信号は、前記ソフトウェアコマンドを受信することに応答して生成される請求項１１に記載の装置。
【請求項１３】
停止を示す第２のハードウェア信号を生成する手段と、
前記第２のハードウェア信号に応答して、前記少なくとも２つの処理コアの動作を、ほぼ同時に停止する手段と
を更に備える請求項１１に記載の装置。
【請求項１４】
前記少なくとも２つの処理コアのうちの処理コアの動作を停止するためのソフトウェアコマンドを受信する手段を更に備え、前記第２のハードウェア信号は、前記ソフトウェアコマンドを受信することに応答して生成される請求項１３に記載の装置。
【請求項１５】
少なくとも２つの処理コアのデバッグ中に、停止していた動作の再開を示す第１のハードウェア信号を生成することと、
前記第１のハードウェア信号を受信することに応答して、前記少なくとも２つの処理コアの動作をほぼ同時に再開することと
を備える方法。
【請求項１６】
前記少なくとも２つの処理コアのうちの処理コアの動作を再開するためのソフトウェアコマンドを受信することを更に備え、前記第１のハードウェア信号は、前記ソフトウェアコマンドを受信することに応答して生成される請求項１５に記載の方法。
【請求項１７】
停止を示す第２のハードウェア信号を生成することと、
前記第２のハードウェア信号に応答して、前記少なくとも２つの処理コアの動作を、ほぼ同時に停止することと
を更に備える請求項１５に記載の方法。
【請求項１８】
前記少なくとも２つの処理コアのうちの処理コアの動作を停止するためのソフトウェアコマンドを受信することを更に備え、前記第２のハードウェア信号は、前記ソフトウェアコマンドを受信することに応答して生成される請求項１７に記載の方法。
【請求項１９】
装置であって、
前記装置のための処理を実行するように動作可能な少なくとも３つの処理コアを備え、
前記少なくとも３つの処理コアのうちの第１の処理コアは、デバッグ中に動作の停止を示す第１のハードウェア信号を生成するように動作可能であり、
前記装置は、
前記少なくとも３つの処理コアと電気的に接続され、前記第１のハードウェア信号を、前記処理コアのうちの残りへ提供するクロススイッチを更に備える装置。
【請求項２０】
前記第１の処理コアは、前記第１のハードウェア信号が生成されると停止するように動作可能であり、前記少なくとも３つの処理コアは、前記第１のハードウェア信号に基づいて、ほぼ同時に停止する請求項１９に記載の装置。
【請求項２１】
前記第１の処理コアは、動作の再開を示す第２のハードウェア信号を生成するように動作可能であり、前記クロススイッチは、前記第２のハードウェア信号を、前記処理コアのうちの残りへ提供するように動作可能である請求項１９に記載の装置。
【請求項２２】
前記第１のハードウェア信号は、物理ハードウェア信号上の第１のエッジに対応し、前記第２のハードウェア信号は、前記物理ハードウェア信号上の第２のエッジに対応する請求項２１に記載の装置。
【請求項２３】
前記少なくとも３つの処理コアのうちの第２の処理コアは、動作の再開を示す第２のハードウェア信号を生成するように動作可能であり、前記クロススイッチは、前記第２のハードウェア信号を、前記処理コアのうちの残りへ提供するように動作可能である請求項１９に記載の装置。
【請求項２４】
前記少なくとも３つの処理コアは、少なくとも１つのデジタル信号処理（ＤＳＰ）コアと、少なくとも１つの縮小命令セットコンピュータ（ＲＩＳＣ）マシンとを備える請求項１９に記載の装置。
【請求項２５】
装置であって、
前記装置のための処理を実行し、ハードウェア出力信号を生成し、ハードウェア入力信号を受け取るように動作可能な少なくとも３つの処理コアを備え、
前記ハードウェア出力信号と前記ハードウェア入力信号とは、デバッグ中に、前記少なくとも３つの処理コアを同時に停止するか、同時に再開するか、同時に停止及び再開するために用いられる装置。
【請求項２６】
前記少なくとも３つの処理コアの各々は、それぞれのハードウェア入力信号に基づいて、動作を停止するように動作可能である請求項２５に記載の装置。
【請求項２７】
前記少なくとも３つの処理コアの各々は、それぞれのハードウェア入力信号に基づいて、動作を停止及び再開するように動作可能である請求項２５に記載の装置。
【請求項２８】
前記少なくとも３つの処理コアは、第１の処理コアと第２の処理コアとを備え、前記第１の処理コアは、第１のハードウェア入力信号に基づいて動作を停止するように動作可能であり、前記第２の処理コアは、第２のハードウェア入力信号に基づいて動作を停止及び再開するように動作可能である請求項２５に記載の装置。
【請求項２９】
前記少なくとも３つの処理コアと電気的に接続され、前記ハードウェア出力信号を、前記処理コアから受け取り、前記ハードウェア入力信号を、前記処理コアへ提供するように動作可能であるクロススイッチを更に備える請求項２５に記載の装置。
【請求項３０】
前記クロススイッチは、デバッグ中に動作の停止を示すハードウェア出力信号を検出し、前記ハードウェア出力信号を、前記少なくとも３つの処理コアに対して前記ハードウェア入力信号として提供するように動作可能である請求項２９に記載の装置。
【請求項３１】
前記クロススイッチは、デバッグ中に動作の再開を示すハードウェア出力信号を検出し、
前記ハードウェア出力信号を、前記少なくとも３つの処理コアに対して前記ハードウェア入力信号として提供するように動作可能である請求項２９に記載の装置。
【請求項３２】
前記クロススイッチは、指定された処理コアからのハードウェア出力信号を、前記少なくとも３つの処理コアに対してハードウェア入力信号として提供するように動作可能である請求項２９に記載の装置。
【請求項３３】
前記少なくとも３つの処理コアは、少なくとも１つのデジタル信号処理（ＤＳＰ）コアと、少なくとも１つの縮小命令セットコンピュータ（ＲＩＳＣ）マシンとを備える請求項２５に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に回路に関し、特にマルチコアシステムをデバッグするための方法及び装置に関する。
【背景技術】
【０００２】
マルチコアシステムは、多数の処理コアを有するシステムである。これらの処理コアは、デジタル信号処理（ＤＳＰ）コア、プロセッサコア、及び／又はその他のタイプの処理ユニットであることができる。ＤＳＰコアは、数学計算を極めて迅速に実行するように設計された専用のプロセッサである。例えば、ＤＳＰコアは、１つ又は複数の乗算及び累積（ＭＡＣ）ユニット、１つ又は複数の算術論理演算ユニット（ＡＬＵ）等を含みうる。プロセッサコアは、様々な機能を実行するようにプログラムされうる汎用プロセッサである。
【０００３】
マルチコアシステムは一般に、製造の前に設計段階及びデバッグ段階を経る。設計段階において、各処理コアは、そのコアに関する必要条件を満たすように設計される。デバッグ段階において、システム内の処理コアは、設計欠陥及びバグがないかテストされ、製造前に調整されることができる。
【０００４】
マルチコアシステムのデバッグは、様々な理由により挑戦である。第１に、各処理コアは、高度なデバッギングツールを用いてデバッグされる必要のある複雑なシステムでありうるためである。第２に、システム内の処理コアは、一般に相互に作用するので、与えられた処理コアをデバッグすることは、他の処理コアが適切に構成される必要があるためである。
【０００５】
従来、マルチコアシステムにおいて処理コアをデバッグするために多くのデバッガが用いられる。各デバッガは、コアのデバッグを可能にするための関連する処理コアの動作を制御するハードウェア、ファームウェア、及び／又はソフトウェアの組み合わせであることができる。各デバッガは、独立して動作され、関連する処理コアをデバッグすることができる。しかし、マルチコアシステムにおいてしばしば、これらの処理コアのデバッギングを、相互作用を得られるように調整することが望ましい。
【０００６】
従って、当該技術において、マルチコアシステムをデバッグする技術に対するニーズがある。
【発明の開示】
【０００７】
本特許出願は、米国特許仮出願６０／７５９，７９７号に対する優先権を主張する。
【発明の概要】
【０００８】
同時停止機能及び同時再開機能を備え、マルチコアシステムをデバッグするための技術が、本明細書で説明される。実施形態において、装置（例えばＡＳＩＣ）は、第１及び第２の処理コアを含む。デバッグ中に、第１又は第２の処理コアは、動作を停止するソフトウェアコマンドを受け取り、それに応答して、動作の停止を示す第１のハードウェア信号を生成する。他方の処理コアは、第１のハードウェア信号を受け取り、動作を停止する。両方の処理コアは、第１のハードウェア信号に基づいて、ほぼ同時に停止する。その後、第１又は第２の処理コアは、動作を再開する別のソフトウェアコマンドを受け取り、それに応答して、動作の再開を示す第２のハードウェア信号を生成する。両方の処理コアは、第２のハードウェア信号に基づいて、ほぼ同時に再開する。第１及び第２のハードウェア信号は、１つの処理コアから来ることができ、１つの物理ハードウェア信号の２つのエッジ（前方エッジ及び後方エッジ）に対応しうる。あるいは、第１及び第２のハードウェア信号は、一方の処理コアが両方のコアを同時に停止し、他方の処理コアが両方のコアを同時に再開できるように、異なる処理コアから来ることもできる。
【０００９】
別の実施形態において、装置は、少なくとも３つの処理コア及びクロススイッチを含む。処理コアは、ハードウェア出力信号を生成し、ハードウェア入力信号を受け取る。ハードウェア出力信号及びハードウェア入力信号は、デバッグ中に、処理コアを同時に停止、同時に再開、又は同時に停止及び再開するために用いられることができる。クロススイッチは、処理コアからハードウェア出力信号を受け取り、処理コアへハードウェア入力信号を提供する。クロススイッチは、デバッグ中に、処理コアによる動作の停止を示すハードウェア出力信号を検出し、このハードウェア出力信号を、ハードウェア入力信号として、全ての処理コアに対して提供することができる。クロススイッチはまた、動作の再開を示すハードウェア出力信号も検出し、このハードウェア出力信号を、ハードウェア入力信号として、全ての処理コアに対して提供することができる。同一の、又は異なる処理コアが、停止のためのハードウェア出力信号及び再開のためのハードウェア出力信号を生成しうる。
【００１０】
本発明の様々な局面及び実施形態が、以下でより詳細に説明される。
【詳細な説明】
【００１１】
本発明の特徴及び性質は、同一の参照符号が全体を通して対応して特定する図面と連携して、以下の詳細な説明からより明らかにされる。
【００１２】
「典型的」という用語は、本明細書において、「例、実例、又は例証を提供する」という意味で用いられる。本明細書で「典型的」として説明される任意の実施形態又は設計は、必ずしも他の実施形態又は設計よりも優れていたり有利であるようには解釈されない。
【００１３】
本明細書に開示されるデバッグ技術は、様々なマルチコアシステムのために用いられうる。マルチコアシステムは、例えば特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）、デジタル信号処理デバイス（ＤＳＰＤ）、プログラマブル論理デバイス（ＰＬＤ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、プロセッサ、コントローラ、マイクロプロセッサ等のような１つの集積回路（ＩＣ）内で実現されうる。例えば、マルチコアシステムは、システム・オン・ア・チップ（ＳｏＣ）であることができ、多数の処理コアは、１つのパッケージにカプセル化されうる１つ又は複数のＩＣダイ上に形成されることができる。マルチコアシステムはまた、多数のＩＣによっても実現されうる。マルチコアシステムはまた、例えば無線通信デバイス、セルラー電話、携帯情報端末（ＰＤＡ）、家庭用電子機器、ラップトップコンピュータ等のような様々な電子工学的デバイスのために用いられることができる。
【００１４】
図１は、デバッグ中に、２つの処理コアについて同時の停止をサポートする典型的マルチコアシステム１００のブロック図を示す。マルチコアシステム１００は、ＡＳＩＣ１００のための汎用処理を行うプロセッサコア１１０、及びＡＳＩＣのための数学計算を行うＤＳＰコア１１２を含む。プロセッサコア１１０は、縮小命令セットコンピュータ（ＲＩＳＣ）マシン又はその他いくつかのタイプのプロセッサであることができる。ＲＩＳＣマシンは、サポートされる命令の小さいセットを、極めて迅速に実行するように設計された汎用プロセッサである。一般に、プロセッサコア１１０及びＤＳＰコア１１２は、当該技術において知られているように、様々な設計によって実現されうる。各処理コアは、メモリ（例えばキャッシュ）内に格納されうる命令のシーケンス、又はその他の方式でコアに提供されうる命令のシーケンスを実行する。
【００１５】
デバッガ１２０は、プロセッサコア１１０をデバッグするために用いられ、デバッガ１２２は、ＤＳＰコア１１２をデバッグするために用いられる。各デバッガは、例えばＪＴＡＧ又はその他いくつかのタイプのインタフェースを経由して、そのデバッガの動作を指示する外部ホストシステムと接続しうる。例えば、外部ホストシステムは、デバッガを、関連する処理コアによって実行されるプログラム内にブレークポイントを定め、処理コアのリソースへアクセスし、処理コアの動作を一時停止／停止及び再開する等のように構成することができる。各デバッガは、関連する処理コアへデバッグコマンドを送り、デバッグ中に、そのコアの動作を制御することができる。これらのデバッグコマンドは、処理コアが実行しうるソフトウェアコマンド又はソフトウェア命令のセットの中から選択されうる。例えば、デバッグコマンドは、特定の事象が起こった場合に処理コアを停止するブレークポイントを定めることができる（又は、停止ソフトウェアコマンドとなることができる）。デバッグコマンドはまた、処理コアに動作を再開するよう指示する再開ソフトウェアコマンドとなることもできる。各処理コアは、一般に、通常の動作のための命令と同じ方式でデバッグコマンドを実行し、一般に、デバッグモードで動作していることを認識していない。
【００１６】
図１に示す例に関して、プロセッサコア１１０は、デバッガ１２０から停止ソフトウェアコマンドを受け取る場合は常に、停止ハードウェア信号を生成する。この停止ハードウェア信号は、ＤＳＰコア１１２に提供され、プロセッサコアが停止する場合は常に、ＤＳＰコアを停止するために用いられる。
【００１７】
図１に示す設計は、マルチコアデバッグ環境において、同時停止をサポートする。例えば、デバッガ１２０は、プロセッサコア１１０上にブレークポイントを定めることができ、デバッガ１２２は、ＤＳＰコア１１２上にブレークポイントを定めることができ、最初にヒットするブレークポイントは、どちらであっても両方の処理コアを停止することが可能である。プロセッサコア１１０上のブレークポイントが最初にヒットする場合、プロセッサコア１１０は、停止ハードウェア信号をアサートし、その後ＤＳＰコア１１２を停止する。逆に、もしＤＳＰコア１１２上のブレークポイントが最初にヒットする場合、プロセッサコア１１０と接続しているＤＳＰコア１１２は、停止ハードウェア信号（図１に示されない）をアサートし、プロセッサコア（図１に示されない）を停止する。この機能は、しばしばマルチコア停止と称される。しかし、図１に示す設計は、マルチコア停止からの、適切な動作の再開をサポートしない。デバッグ機能が完了した後、処理コア１１０及び１１２は、デバッガ１２０及び１２２から別々の再開ソフトウェアコマンドをそれぞれ送られることによって再開されうる。しかし、デバッガ１２０及び１２２は、一般に同期しておらず、及び／又は、２つの処理コアは、再開ソフトウェアコマンドを受信しても同時に再開しない可能性がある。この場合、一方の処理コア（例えばプロセッサコア１１０）は、他方の処理コア（たとえばＤＳＰコア１１２）が動作を再開する前に、多数のサイクル（例えば何千ものサイクル）を実行することがある。するとマルチコアシステム１００は同期性を失い、これは望ましくない。
【００１８】
図２は、デバッグ中に、２つの処理コアについて同時の停止及び再開をサポートするマルチコアシステム２００の実施形態のブロック図を示す。マルチコアシステム２００は、ＡＳＩＣ及びその他いくつかの電子工学的デバイスにおいて実現されうる。マルチコアシステム２００は、図１に示すプロセッサコア１１０、ＤＳＰコア１１２、及びデバッガ１２０及び１２２とそれぞれ同様の方式で動作するプロセッサコア２１０、ＤＳＰコア２１２、及びデバッガ２２０及び２２２を含む。
【００１９】
図２に示す実施形態に関して、プロセッサコア２１０は、ＤＳＰコア２１２と接続され、マルチコアデバッグ中に同時の停止及び再開のためにそれぞれ用いられうる、停止ハードウェア信号及び再開ハードウェア信号を提供する。プロセッサコア２１０は、プロセッサコアが、ブレークポイント又はデバッガ２２０からの停止ソフトウェアコマンドによって停止されると常に、停止ハードウェア信号をアサートする。プロセッサコア２１０は、プロセッサコアが、デバッガ２２０からの再開ソフトウェアコマンドによって動作を再開すると常に、再開ハードウェア信号をアサートする。このように停止ハードウェア信号及び再開ハードウェア信号は、プロセッサコア２１０の状態を示す。
【００２０】
図３は、図２のプロセッサコア２１０に用いられうる停止／再開ハードウェア信号の実施形態を示す。この実施形態に関して、停止／再開ハードウェア信号の前方／立上りエッジは、動作の停止を示し、停止／再開ハードウェア信号の後方／立下りエッジは、動作の再開を示す。この対極性は、動作の停止が後方／立下りエッジによって示され、動作の再開が前方／立上りエッジによって示されるようにも用いられることができる。
【００２１】
別の実施形態において、個別の停止ハードウェア信号及び再開ハードウェア信号が、停止及び再開を示すためにそれぞれ用いられる。また別の実施形態において、停止信号及び再開信号は、例えばバス、直列バスインタフェース（ＳＢＩ）等のようなハードウェアインタフェースを経由して送られる。また別の実施形態において、停止信号及び再開信号は、処理コアに対してハードウェア割込みをセットすることによって示される。停止信号及び再開信号はまた、１つの処理コアから別の処理コアへ、これらの処理コアのためのデバッガに頼らず、他の方式で送られることもできる。
【００２２】
図２を再び参照すると、マルチコアシステム２００は、マルチコアデバッグ環境において、同時の停止及び再開をサポートする。例えば、デバッガ２２０は、プロセッサコア２１０上にブレークポイントを定めることができ、デバッガ２２２は、ＤＳＰコア２１２上にブレークポイントを定めることができ、最初にヒットするブレークポイントは、どちらであっても両方の処理コアを停止することが可能である。デバッグ機能が完了した後、処理コアはどちらも、デバッガ２２０からプロセッサコア２１０へ再開ソフトウェアコマンドを送ることによって再開されうる。この再開ソフトウェアコマンドを受け取ると、プロセッサコア２１０は動作を再開し、また、再開ハードウェア信号をアサートする。ＤＳＰコア２１２は、プロセッサコア２１０から再開ハードウェア信号を受け取ると、動作を再開する。ＤＳＰコア２１２は、速い再開ハードウェア信号を用いることによって、プロセッサコア２１０による再開と同時に、又は２、３のサイクル内に、再開することが可能である。プロセッサコア２１０及びＤＳＰコア２１２は、もって、デバッグの解除から出て同期化されるであろう。
【００２３】
図２は、一方の処理コア（例えばプロセッサコア２１０）が停止及び再開ハードウェア信号を生成し、他方の処理コア（例えばＤＳＰコア２１２）が停止及び再開ハードウェア信号を受け取って実行する。この実施形態に関して、同時の再開は、再開ソフトウェアコマンドを、他方の処理コアのための再開ハードウェア信号を生成する処理コアへ送ることによって達成されうる。
【００２４】
同時の停止は、デバッグ中常にイネーブルされうるか、又は選択的にイネーブルされうる。例えば、ＤＳＰコア２１２は、停止ハードウェア信号を実行するように、又はこの信号を無視するように命令されうる。同時の再開もまた、デバッグ中いつでもイネーブルされうるか、又は選択的にイネーブルされうる。例えば、ＤＳＰコア２１２は、再開ハードウェア信号を実行するように、又はこの信号を無視するように命令されうる。
【００２５】
図４は、デバッグ中に、３つの処理コアについて同時の停止及び再開をサポートするマルチコアシステム４００の実施形態のブロック図を示す。マルチコアシステム４００は、ＡＳＩＣ又はその他いくつかの電子工学的デバイスにおいて実現されうる。図４に示す実施形態に関して、マルチコアシステム４００は、プロセッサコア４１０及び４１２、ＤＳＰコア４１４、クロススイッチ４３０、及びデバッガ４２０、４２２及び４２４を含む。プロセッサコア４１０及び４１２は、ＲＩＳＣマシン及び／又はその他いくつかのタイプのプロセッサであることができ、異なるアプリケーション及び機能をサポートするように設計されうる。デバッガ４２０は、プロセッサコア４１０をデバッグするために用いられ、デバッガ４２２は、プロセッサコア４１２をデバッグするために用いられ、デバッガ４２４は、ＤＳＰコア４１４をデバッグするために用いられる。各デバッガは、関連する処理コアにデバッグコマンドを送り、デバッグ中に、関連するコアの動作を制御することができる。
【００２６】
図４に示す実施形態に関して、プロセッサコア４１０は、停止／再開ハードウェア出力信号Ｓ１を生成し、クロススイッチ４３０へ提供し、更に、停止／再開ハードウェア入力信号Ｓａをクロススイッチから受け取る。プロセッサコア４１２は、停止／再開ハードウェア出力信号Ｓ２を生成し、クロススイッチ４３０へ提供し、更に、停止／再開ハードウェア入力信号Ｓｂをクロススイッチから受け取る。ＤＳＰコア４１４は、停止／再開ハードウェア出力信号Ｓ３を生成し、クロススイッチ４３０へ提供し、更に、停止／再開ハードウェア入力信号Ｓｃをクロススイッチから受け取る。各処理コアは、そのコアが（例えば停止ソフトウェアコマンドによって）停止されると常に、停止／再開ハードウェア出力信号をアサートすることができ、そのコアが（例えば再開ソフトウェアコマンドによって）再開されると常に、停止／再開ハードウェア出力信号をアサート停止することができる。各処理コアに関する停止／再開ハードウェア出力信号は、図３に示されるように生成されうる。
【００２７】
図４に示される実施形態に関して、プロセッサコア４１０及び４１２は、それぞれ、停止ハードウェア入力信号Ｓａ及びＳｂがアサートされると停止する。ＤＳＰコア４１４は、停止／再開ハードウェア入力信号Ｓｃがアサートされると停止し、停止／再開ハードウェア信号Ｓｃがアサート停止されると再開する。
【００２８】
実施形態において、クロススイッチ４３０は、３つの停止／再開ハードウェア出力信号Ｓ１、Ｓ２及びＳ３のうち１つを選択し、選択されたハードウェア信号を、停止ハードウェア入力信号Ｓａ及びＳｂ及び停止／再開ハードウェア入力信号Ｓｃとして提供する。この実施形態に関して、３つの処理コア全てが同じ停止ハードウェア信号を受け取るので、各処理コアは、他の２つの処理コアを同時に停止させることができる。この実施形態に関して、処理コア４１０及び４１２は、再開ハードウェア信号を受け取り、それぞれＤＳＰコア４１４を同時に再開することもできる。
【００２９】
別の実施形態において、クロススイッチ４３０は、停止／再開ハードウェア出力信号Ｓ２又はＳ３を、停止ハードウェア入力信号Ｓａとして提供し、停止／再開ハードウェア出力信号Ｓ１又はＳ３を、停止ハードウェア入力信号Ｓｂとして提供し、停止／再開ハードウェア出力信号Ｓ１又はＳ２を、停止／再開ハードウェア入力信号Ｓｃとして提供する。この実施形態に関して、プロセッサコア４１０は、プロセッサコア４１２又はＤＳＰコア４１４の何れかによって同時に停止されることができ、プロセッサコア４１２は、プロセッサコア４１０又はＤＳＰコア４１４の何れかによって同時に停止されることができ、ＤＳＰコア４１４は、プロセッサコア４１０又は４１２の何れかによって、同時に停止及び再開されることができる。この実施形態は、どの処理コアが各処理コアを同時に停止及び／又は再開するかを制御する際における柔軟性を提供する。
【００３０】
処理コア及びクロススイッチは、他の方式でも動作されることができ、これは本発明の範囲内である。例えば、各処理コアは、他の処理コアを同時に停止することができるが、プロセッサコア４１０だけが、ＤＳＰコア４１４を同時に再開することができる。この実施形態に関して、プロセッサコア４１２及びＤＳＰコア４１４は、停止／再開ハードウェア出力信号の代わりに、停止ハードウェア出力信号を提供しうる。
【００３１】
図５は、デバッグ中に、多数（Ｎ個）の処理コア５１０乃至５１８について同時の停止及び再開をサポートするマルチコアシステム５００の実施形態のブロック図を示す。マルチコアシステム５００は、ＡＳＩＣ又はその他いくつかの電子工学的デバイスにおいて実現されうる。処理コア５１０乃至５１８の各々は、プロセッサコア、ＤＳＰコア、又はその他いくつかのタイプの処理ユニットであることができる。デバッガ５２０乃至５２８は、処理コア５１０乃至５１８をそれぞれデバッグするために用いられうる。複数の処理コアをデバッグするために単一のデバッガを用いることもできる。各デバッガは、関連する処理コアにデバッグコマンドを送り、デバッグ中に、関連するコアの動作を制御することができる。
【００３２】
図５に示す実施形態に関して、処理コア５１０乃至５１８の各々は、停止／再開ハードウェア出力信号をクロススイッチ５３０へ提供し、更に、停止／再開ハードウェア入力信号をクロススイッチから受け取る。各処理コアは、そのコアが（例えば停止ソフトウェアコマンドによって）停止されると常に、停止／再開ハードウェア出力信号をアサートすることができ、そのコアが（例えば再開ソフトウェアコマンドによって）再開されると常に、停止／再開ハードウェア出力信号をアサート停止することができる。処理コアは、図３に示すように、停止／再開ハードウェア出力信号を、その信号を論理高値に持ってくることによってアサートすることができ、論理低値に持ってくることによってアサート停止することができる。実施形態において、各処理コアは、停止／再開ハードウェア入力信号がアサートされた場合常に停止し、停止／再開ハードウェア入力信号がアサート停止された場合常に再開する。実施形態において、各処理コアは、停止／再開ハードウェア入力信号を、選択的に実行又は無視するようにプログラムされうる。
【００３３】
実施形態において、クロススイッチ５３０は、１つの処理コアからの停止／再開ハードウェア出力信号を選択し、選択されたハードウェア信号を、停止／再開ハードウェア入力信号として、Ｎ個の処理コア全てに対して提供する。この実施形態に関して、全ての処理コアが同じ停止／再開ハードウェア信号を受け取るので、各処理コアは、他の処理コアを同時に停止、又は同時に再開することができる。クロススイッチ５３０は、Ｎ個の停止／再開ハードウェア出力信号Ｓ１乃至ＳＮから、１つの停止／再開ハードウェア出力信号を様々な方式で選択することができる。１つの実施形態において、クロススイッチ５３０は、Ｎ個の停止／再開ハードウェア出力信号をモニタし、全ての処理コアが動作している場合は、最初にアサートされた停止／再開ハードウェア出力信号を選択し、全ての処理コアが停止されている場合は、最初にアサート停止された停止／再開ハードウェア出力信号を選択する。別の実施形態において、１つの処理コアがマスタ処理コアとして指定され、クロススイッチ５３０は、この処理コアからの停止／再開ハードウェア出力信号を選択しうる。
【００３４】
別の実施形態において、各処理コアＣｘ（ｘ＝ａ、ｂ、・・・ｎ）は、その処理コアＣｘを停止及び／又は再開することのできる処理コアのセットに関連している。この実施形態に関して、クロススイッチ５３０は、セットのうち１つの処理コアからの停止／再開ハードウェア出力信号を、処理コアＣｘのための停止／再開ハードウェア入力信号として選択及び提供する。この実施形態は、どの処理コアが処理コアＣｘを同時に停止及び／又は再開するかを制御する際における柔軟性を提供する。処理コア及びクロススイッチは、他の方式でも動作されることができ、これは本発明の範囲内である。
【００３５】
上述したように、デバッグ技術は、様々な電子工学的デバイスにおいて用いられるマルチコアシステムのために用いられることができる。このデバッグ技術の、無線デバイスに関する典型的アプリケーションが、以下で説明される。
【００３６】
図６は、１つ又は複数の無線通信システムをモニタし、及び／又は、無線通信システムと通信することのできる無線デバイス６００のブロック図を示す。受信パス上で、アンテナ６１２は、基地局及び／又は人工衛星によって送信される信号を受信し、受信した信号を、受信機（ＲＣＶＲ）６１４へ提供する。受信機６１４は、受信した信号を処理（例えば、フィルタ、増幅、周波数ダウンコンバート、及びデジタル化）し、更なる処理のために、サンプルをＡＳＩＣ６２０へ提供する。送信パス上で、ＡＳＩＣ６２０は、送信されるデータを処理し、データチップを送信機（ＴＭＴＲ）６１６へ提供する。送信機６１６は、データチップを処理（例えば、アナログ変換、フィルタ、増幅、及び周波数アップコンバート）し、変調された信号を生成する。変調された信号は、アンテナ６１２経由で送信される。
【００３７】
ＡＳＩＣ６２０は、１つ又は複数の通信システムのモニタ、及び／又は、通信システムとの通信をサポートする様々な処理ユニットを含む。図６に示す実施形態に関して、ＡＳＩＣ６２０は、ＤＳＰコア６３０ａ及び６３０ｂ、プロセッサコア６４０ａ及び６４０ｂ、クロススイッチ６５０、コントローラ６６０、内部メモリ６７０、外部インタフェースユニット６８０を含む。ＤＳＰコア６３０ａ及び６３０ｂは、受信パスに関する処理（例えば復調及び復号）、送信パスに関する処理（例えば符号化及び変調）、及び／又はその他のアプリケーション及び機能に関する処理を実行する。プロセッサコア６４０ａ及び６４０ｂは、例えばビデオ、オーディオ、グラフィック、ゲーム等のような様々な機能をサポートする。各プロセッサコアは、ＲＩＳＣマシン、マイクロプロセッサ、又はその他いくつかのタイプのプロセッサであることができる。コントローラ６６０は、ＡＳＩＣ６２０内で、処理ユニットの動作を制御する。内部メモリ６７０は、ＡＳＩＣ６２０内で処理ユニットによって用いられるデータ及びプログラムコードを格納する。外部インタフェースユニット６８０は、ＡＳＩＣ６２０の外部にある他のユニットとのインタフェースとなる。一般に、ＡＳＩＣ６２０は、図６に示す処理ユニットより少ないユニット、多くのユニット、及び／又は、これらと異なるユニットを含むことができる。ＡＳＩＣ６２０に含まれる処理ユニットの数及び処理ユニットのタイプは、一般に、例えば無線デバイス６００によってサポートされる機能、通信システム、及びアプリケーションに依存する。
【００３８】
図６に示す実施形態に関して、各処理コアは、そのコアのデバッグをサポートするシリコン内（in-silicon）デバッガ（Ｄ）を含む。ＤＳＰコア６３０ａ及び６３０ｂ、及びプロセッサコア６４０ａ及び６４０ｂのためのデバッガは、ＪＴＡＧ又はその他いくつかのタイプのインタフェース（図６には示されない）を経由して、外部ホストシステムと通信しうる。クロススイッチ６５０は、停止ハードウェア出力信号、再開ハードウェア出力信号、及び／又は、停止／再開ハードウェア出力信号を、ＤＳＰコア６３０ａ及び６３０ｂ、及びプロセッサコア６４０ａ及び６４０ｂから受け取る。クロススイッチ６５０は、停止ハードウェア入力信号、再開ハードウェア入力信号、及び／又は、停止／再開ハードウェア入力信号を、例えば図４又は図５に関して上述したように、ＤＳＰコア及びプロセッサコアへ提供する。
【００３９】
ＡＳＩＣ６２０は、揮発性メモリ６９０及び不揮発性メモリ６９２と更に接続している。揮発性メモリ６９０は、ＡＳＩＣ６２０によって用いられるデータ及びプログラムコードのための大容量記憶を提供する。不揮発性メモリ６９２は、不揮発性大容量記憶を提供する。
【００４０】
本明細書で説明されるデバッグ技術は、様々な手段によって実現されうる。例えば、これらの技術は、ハードウェア、ファームウェア、ソフトウェア、又はこれらの組み合わせにおいて実現されることができる。ハードウェアでの実現に関して、デバッグ技術は、１つ又は複数のＡＳＩＣ、ＤＳＰ、ＤＳＰＤ、ＰＬＤ、ＦＰＧＡ、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、電子工学的デバイス、上述された機能を実現するために設計されたその他の電子工学的ユニット、又はこれらの組み合わせ内で実現されることができる。デバッグ技術のある局面は、上述された機能を実現するソフトウェアモジュール（例えば手順、関数等）によって実現されうる。ソフトウェアコードは、メモリ（例えば図６のメモリ６７０、６９０又は６９２）内に格納され、プロセッサ（例えばプロセッサコア６４０ａ又は６４０ｂ）によって実行されることができる。メモリは、プロセッサ内に、又はプロセッサに外付けで実装されうる。
【００４１】
開示された実施形態における上記記載は、当業者をして、本発明の製造又は利用を可能とするために提供される。これらの実施形態への様々な変形例もまた、当業者に対しては明らかであって、本明細書で定義された一般原理は、本発明の主旨又は範囲から逸脱することなくその他の実施形態にも適用されうる。従って、本発明は、本明細書に開示された実施形態に限定することは意図されておらず、本明細書に開示された原理及び新規特徴と整合が取れた最も広い範囲と一致するように意図されている。
【図面の簡単な説明】
【００４２】
【図１】図１は、２つの処理コアについて同時の停止を伴うマルチコアシステムを示す。
【図２】図２は、２つの処理コアについて同時の停止及び再開を伴うマルチコアシステムを示す。
【図３】図３は、典型的な停止／再開ハードウェア信号を示す。
【図４】図４は、３つの処理コアについて同時の停止及び再開を伴うマルチコアシステムを示す。
【図５】図５は、多数（Ｎ個）の処理コアについて同時の停止及び再開を伴うマルチコアシステムを示す。
【図６】図６は、無線デバイスのブロック図を示す。
【図１】
2009524159.tif 000003
【図２】
2009524159.tif 000004
【図３】
2009524159.tif 000005
【図４】
2009524159.tif 000006
【図５】
2009524159.tif 000007
【図６】
2009524159.tif 000008
【国際調査報告】
2009524159.tif 000009
2009524159.tif 000010
2009524159.tif 000011