(57)【特許請求の範囲】
【請求項１】
少なくとも１つのハードウェアソース、少なくとも１つのファームウェアソース、及び少なくとも１つのソフトウェアソースを含む複数のソースからデバッグ信号を受信するセントラルデバッグユニットと、
前記セントラルデバッグユニットから前記デバッグ信号を受信するトレースマージユニットであって、前記トレースマージユニットは、前記複数のソースの１つ以上からの前記デバッグ信号と複数のハードウェアユニットからの機能デバッグ信号との間で選択する調停回路を有し、前記トレースマージユニットは、前記選択されたデバッグ信号又は機能デバッグ信号にタイムスタンプを付加し、
前記タイムスタンプ付き選択されたデバッグ信号又は機能デバッグ信号を受信し、前記タイムスタンプ付き選択されたデバッグ信号又は機能デバッグ信号を並列化するパラレルトレースインタフェースと、
前記タイムスタンプ付き選択されたデバッグ信号又は機能デバッグ信号を受信し、前記タイムスタンプ付き選択されたデバッグ信号又は機能デバッグ信号を直列化する、シリアルトレースインタフェースと、
前記セントラルデバッグユニットから前記デバッグ信号、及び前記パラレルトレースインタフェースから前記並列化タイムスタンプ付き選択されたデバッグ信号又は機能デバッグ信号を受信し、出力パスに出力するために、前記デバッグ信号、前記並列化タイムスタンプ付き選択されたデバッグ信号又は機能デバッグ信号のうちの１つを選択し、前記出力パスは、複数の出力パスから選択される、セレクションユニットと、
を含む、装置。
【請求項２】
前記装置は、システムオンチップ（ＳｏＣ）を備え、前記複数の出力パスは、
汎用入力／出力ピンのセットと、
マイクロセキュアデジタルピンのセットと、
メモリ相互接続のセットと、
少なくとも１つのユニバーサルシリアルバスピンと、
のうちの１つ以上を含む、請求項１に記載の装置。
【請求項３】
前記セレクションユニットは、前記ＳｏＣが閉じた筐体を持つポータブルデバイス内に構成されたとき、マイクロセキュアデジタルピンの前記セットに対応する前記出力パス上に前記選択されたデバッグ信号を出力するように構成される、請求項２に記載の装置。
【請求項４】
前記装置は、さらに、分散セレクションユニットを備え、前記分散セレクションユニットは、
前記装置を含むシステムオンチップ（ＳｏＣ）の第１の機能ユニットに位置する第１のセレクションユニットと、
前記ＳｏＣのアンコアロジックに位置する第２のセレクションユニットであって、前記第２のセレクションユニットは、前記第１のセレクションユニットを含む複数の第１のセレクションユニットから出力を受信し、
前記第２のセレクションユニットを含む複数の第２のセレクションユニットから出力を受信し、選択したデバッグ信号を前記セントラルデバッグユニットに出力する、第３のセレクションユニットと、
を含む、請求項１に記載の装置。
【請求項５】
前記ＳｏＣのテストインタフェースを経由してトレース制御信号を受信し、前記トレース制御信号に応答して、トレースコレクションユニットから前記セントラルデバッグユニットへの出力のために、ハードウェアトレース情報、ソフトウェアトレース情報及びファームウェアトレース情報のうちの１つを選択するように構成された、トレースコレクションユニットをさらに含む、請求項２に記載の装置。
【請求項６】
前記ファームウェアは、前記ＳｏＣに対するブートコードを含む、請求項２に記載の装置。
【請求項７】
前記セントラルデバッグユニットの第１の部分を含む第１の電力領域及び前記セントラルデバッグユニットの第２の部分を含む第２の電力領域とを含み、前記ＳｏＣが低電力モードで動作する間、前記第１の電力領域は、電源オンを維持し、前記第２の電力領域は電源オフである、請求項２に記載の装置。
【請求項８】
前記セントラルデバッグユニットの前記第１の部分は、前記低電力モードに関連するデバッグ信号を受信し、処理する、請求項７に記載の装置。
【請求項９】
前記ＳｏＣを含むポータブルデバイスのユーザ動作の間、前記セントラルデバッグユニットの少なくとも前記第１の部分を無効にするように構成されるヒューズロジックを含み、前記ヒューズロジックは、前記ポータブルデバイスの前記ＳｏＣに組み込む前に構成される、請求項７に記載の装置。
【請求項１０】
前記ヒューズロジックは、前記ポータブルデバイスのデバッグ動作の間、前記セントラルデバッグユニットの前記第１の部分を有効にするために上書きされるように構成される、請求項９に記載の装置。
【請求項１１】
前記並列化タイムスタンプ付き選択されたデバッグ信号又は機能デバッグ信号は、モバイルインダストリプロセッサインタフェース（ＭＩＰＩ）アライアンスシステムトレースプロトコルと互換性がある、請求項１に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、集積回路及びそのような回路を組み込んだシステムに対するデバッグ動作に関連する。
【背景技術】
【０００２】
現代のシステムオンチップ（ＳｏＣ：System  on  Chip）や他の集積回路（ＩＣ）は、長いバッテリ寿命を達成するために低電力命令（directives：ディレクティブ）を有するように設計されている。そのようなＩＣやＳｏＣのデバッグは、以前の世代と比較してかなり高い精度でウェイクアップとスリープするデバイス中に設計された複数の低電力領域のため非常にチャレンジングである。現在利用可能なデバッグソリューションは、ファームウェアと低電力動作のデバッグを行う限られた能力しか提供しない。
【図面の簡単な説明】
【０００３】
【図１】実施形態に従ったプロセッサの一部のブロック図である。
【図２】本発明の実施形態に従ったプロセッサの別のブロック図である。
【図３】本発明の実施形態に従ったトレースコレクションユニットのブロック図である。
【図４】本発明の実施形態に従った方法の流れ図である。
【図５】本発明の実施携帯に従ったシステムのブロック図である。
【図６】実施形態が使用できるシステムの実例のブロック図である。
【図７】実施形態が使用できる別のシステムの実例のブロック図である。
【図８】実施形態に従ったシステムオンチップのブロック図である。
【発明を実施するための形態】
【０００４】
様々な実施形態において、システムインパッケージ（ＳｉＰ）、マルチチップパッケージ（ＭＣＰ）を含むプロセッサや他のシステムオンチップ（ＳｏＣ）に対する電力を意識した（power-aware）低電力デバッグアーキテクチャが提供され、それは、例えば、ブートアップに制限されず含むファームウェア動作、低電力状態エントリ／イグジット（low  power  state  entry/exit）に制限されず含む低電力動作などをとりわけ含み、例えば、システムへの実装としてそれらのデバイスの幅広い様々な態様をテスト／デバッグできるようなものである。このデバッグアーキテクチャは、低電力タブレットやスマートフォン用ＩＣ／ＳｏＣ，例えば、モノのインターネット（ＩｏＴ）デバイス、ウェアラブルなど組み込みデバイス、クライアント／サーバアプリケーションで使用される低電力デバイスなどのデバッグに使用することができる。実施形態は、それ故に、初期のブートデバッグの間にハードウェア／ソフトウェア／ファームウェアの可観測性を提供し、低電力状態と低電力状態のエントリ／イグジット遷移は、システムの全体の動作範囲の効率的なデバッグを提供する。異なる実施形態において、デバッグトリガは、ファームウェア、オペレーティングシステム又は他のソフトウェアに含むことができ、様々なプラットフォームの動作状態をテストするためにデバッグ情報が選択的に収集される時点をトリガすることができる。
【０００５】
またさらに、進化したＩＣ／ＳｏＣは、よりさらに厳しい電力消費要求を持っているので、実施形態は、デバッグロジックを選択的に有効及び無効にする技術を提供することによって、そのようなロジックの電力消費は、そのようなプロセッサを持つ出荷された数多くの製品において、避けることが可能となる。しかしながら、実施形態は、さらに、こられの製品のうちの１つが、デバッグ／故障解析のために現場から戻ってきたとき、選択的な有効性を提供することができることを理解されたい。
【０００６】
様々な実施形態において、電力を意識した低電力デバッグスキームは、常時オン（ＡＯＮ：Always-ON）領域で動作するロジックの初期ブートデバッグを可能にする。１実施形態において、デバッグ動作に対するメインのコントローラであるセントラルデバッグユニットは、最小限のロジックで構成することができ、ＡＯＮ領域又は独立したデバッグ電力領域に保持され、しばしばプロセッサ内でデバッグすることが最も困難な回路であり得る、電源を入れる段階の初期の動作又は低電力遷移の間のロジックのデバッグを可能とする。
【０００７】
このようにして、デバッグパス及びデバッグロジックがＡＯＮ又はデバッグ電力領域に保持されるように初期ブートの初め、及び低電力遷移の間に、デバッグ動作を実行することができる。すなわち、所定のデザインにおいて、組み込んだデバッグロジックをプロセッサ又はプラットフォームの電力消費対象（デザイン仕様に従って）に実行させる場合、デバッグロジックは、分離されたデバッグ電力領域に配置することができる。この独立したデバッグ電力領域は、ＡＯＮ電力領域から分離されて保持されることができ、１つ以上の制御可能電力領域は、コアとプロセッサの他の機能ユニットを含むことができる。その結果、デバッグ電力領域は、このデバッグ電力領域におけるリーク電流喪失による電力喪失を含んだ電力を節約するために出荷前は、製造の間に、恒久的に電源オフ（例えば、構成ヒューズのセットの１つ以上のヒューズを溶かすこと又は他の構成値を経由して）として構成することができる。この場合は、リターンマテリアルオーソライゼイション（ＲＭＡ）デバッグ又は別の理由（例えばフィールドテスト）のために返却された部品に電力を適用する必要があり、ヒューズの上書きは、例えば、テストアクセスポート（ＴＡＰ）コントローラ経由で提供することができる。
【０００８】
これから図１を参照して、実施形態に従ったＳｏＣなどのプロセッサの一部のブロック図を示す。最初に示されるＳｏＣ１００の一部は、Ｘ（ＤＦｘ）回路に対するデザインに関連し、それは、テストのためのデザイン、バリデーションのためのデザイン、デバッグのためのデザインなどを含む様々な目的に使用することができる（ＤＦｘにおけるＸは、テスト（Test）に対するデザインを意味する「Ｔ」、デバッグ（Debug）に対するデザインを意味する「Ｄ」、バリデーション（Validation：検証）に対するデザインを意味する「Ｖ」などと置き換えることができる）。この特定のデザインは、デバッグのためのデザインが目的であり、このロジックがデバッグ目的で主として使用される。一般に、プロセッサの機能ユニット又は他のデバッグホストの１つ以上からの入力を受信し、そのような情報を所望のフォーマットでデバッグホストの内部又は外部に対して提供するために適切に処理するために、そのような回路は使用することができる。そのようなＤＦｘ回路は、プロセッサのデザイン、開発及びデバッグの経過の間で使用することができ、さらに、例えば、スマートフォン、タブレット、ファブレット、又は任意の他のポータブル又は他のコンピューティングデバイスなどのポータブルコンピューティングデバイスなどとしてプラットフォームにプロセッサを組み込む間に使用することができる。もちろん、ＤＦｘ回路は、またポストプラットフォーム製造テストとデバッグ動作に対して使用することもできる。
【０００９】
示された実施形態において、ＳｏＣ１００は、１つ以上のコア１３００〜１３０ｎを含む数個の機能回路を含む。実施形態において、そのようなコアは、所定のＩｎｔｅｌ（Ｒ）アーキテクチャ（ＩＡ）デザインなどの異種又は同種のコアのセットであり得る。もちろん、別の実施形態において、例えば代わりのＡＲＭアーキテクチャに基づいたコアなどの別の製造業者のコアもあり得る。そして、別の実施形態において、Ｉｎｔｅｌ（Ｒ）ベースコアとＡＲＭベースコア又は他のロジックの組合せもあり得る。
【００１０】
一般に、図１に示された回路の残りの部分は、プロセッサのＤＦｘ回路に関係する。見られるように、ＤＦｘユニット１２０は、ハードウェア、ファームウェア、及び／又はソフトウェアの種々の収集を含む様々なオンチップソースからの入力を受信するように構成される。種々のソースから受信した様々な入力を収集し、第１の内部相互接続１３８を経由して選択されたデバッグ信号を送るように構成されたセントラルデバッグユニット（ＣＤＵ）１２５を、ＤＦｘユニット１２０は含む。動作の間、ハードウェア（ＨＷ）、ソフトウェア（ＳＷ）及びファームウェア（ＦＷ）のデバッグトレースを含むデバッグ信号は、ＣＤＵ１２５へ送信される。本明細書で使用されるように、「トレース（trace）」は所望のオンチップ位置から取得された信号また他の情報のストリーミングセットを指し、リアルタイムで見られる又は記憶され後にアプリケーション開発者、アプリケーションプログラム、又はシステム動作を観察するための外部の装置などの所定のユーザによって見るために読み出される、動作に関する情報を一般に提供する。プロセッサの様々な機能ユニットから受信された内部デバッグ信号は、例えば、興味があるデバッグブロックとＣＤＵ１２５内の最終的なセレクタとの間のアンコア（uncore）ロジックなどの独立したブロックにおけるブロックレベルのセレクタ、中間ブロックにおける中レベルのセレクタを使って順に並べられる（collated）点に留意されたい。低電力デバッグに関連する信号は、ブロック内のＡＯＮ領域に置かれ、ＡＯＮ信号が送信され低電力デバッグが有効にされる。代替案としては、上述の通り、これらの信号は、デバッグ領域にも置かれる（製造テスト／デバッグの後でヒューズが切断され又は代替手段によって製造で無効にすることのいずれも可能である）。
【００１１】
１実施形態において、セントラルデバッグユニット１２５の少なくとも一部は、デバッグロジックによる電力消費を最少化するために、この領域によって電力供給される必要なロジックのみと共にＡＯＮ電力領域において維持することができる。１実施形態において、ＣＤＵ１２５は、集中型パケタイザ、トリガロジック、及び圧縮ロジックを含む。もちろん、他の実施形態において、追加のロジックがＣＤＵ１２５にある場合もある。１実施形態において、ＣＤＵ１２５からのこれらのデバッグ信号出力は、最小限処理されたデバッグ信号のセットであり得、示されるように、セレクションロジック１６０とトレースマージユニット１４０を含む複数の宛先に提供することができる。
【００１２】
さらに示されるように、トレースマージユニット１４０は、入来機能デバッグ信号も受信し、それらは、１実施例において、リアルタイム命令トレース（ＲＴＩＴ）信号（及び／又はリアルタイムデータトレース信号）の形式又はＩｎｔｅｌ（Ｒ）プロセッサトレース（ＰＴ）トレース又は他のトレース技術などのデバッグ信号のプロプライエトリな形式をとる。この目的を達成するために、トレースマージユニット１４０は、調停ロジック１４５を含み、調停ロジック１４５は、内部デバッグ信号と機能デバッグ信号又は他のコアデバッグ信号の間で調停を行い、それにより、入来信号をこれらの種々のパスの間で調整し、トレースマージユニット１４０の残りの部分に選択した信号を提供する。
【００１３】
一般に、トレースマージユニット１４０は、タイムスタンプ情報を付加することによってＣＤＵ出力をさらに処理するように構成される。同様に、トレースマージユニット１４０は、１つ以上のプロトコルと互換性があるやり方でこのタイムスタンプ付きデバッグトレース情報をストリームする。例えば、１実施形態において、トレースマージユニット１４０は、モバイルインダストリプロセッサインタフェース（ＭＩＰＩ）アライアンスシステムトレースプロトコル（ＳＴＰ）と互換性があり得る。別の実施形態において、トレースマージユニット１４０は、ＡＲＭトレースファネル（ARM  trace  funnel）と互換性があり得、ＡＲＭトレースファネルは、トレースラッパープロトコル、ＡＲＭエンベッデッドトレースマクロセル（ＥＴＭ）又は他のプロトコルを実行する。もちろん、ＲＴＩＴ又はＩｎｔｅｌ（Ｒ）ＰＴなどの他のプロトコルも使うことができる。トレースマージユニット１４０経由で内部デバッグ信号を提供することによって、そのような内部デバッグ信号は、タイムスタンプを付加され、例えば、ＭＩＰＩ  ＳＴＰプロトコルなどの所定のプロトコルで送信される。同様に、これらの処理され、タイムスタンプが付けられた信号は、プロセッサから出力することができ、ロジックアナライザ、トレースポートアナライザ（ＴＰＡ）、又は送信されたタイムスタンプ付きデバッグストリームを解読する他のツールなどの所定のデバッグツールによって受信され、使用することができる。そのようなツールにおいて、これらの信号は、デバッグを行うために解読され、視覚化することができる。またさらに、タイムスタンプトレースは、信号間の時間相関関係を可能とし、それ故に、デバッグを容易にする。
【００１４】
これらの処理されたデバッグ信号は、相互接続１４８を経由してパラレルトレースインタフェース（ＰＴＩ）ロジック１５０に提供され、そこでさらに信号を処理することができる。１実施形態において、ＰＴＩロジック１５０は、受信したデバッグ情報を並列化するように構成される。並列化の幅は、出力のために選択されるピン又は他の出力パスの数に依存して制御される点（例えば、１、２、４、８、又は１６など）に留意されたい。処理された信号は、相互接続１５５を経由してセレクションロジック１６０に提供される。一般に、セレクションロジック１６０は、相互接続１５５を経由して受信した処理された信号又は相互接続１３８を経由して受信されたもっと最小限の処理されたデバッグ信号のいずれかを選択し、相互接続１６５を経由して選択された信号を出力ユニット１７０へ出力するように構成される。一般に、出力ユニット１７０は、オンダイ相互接続を経由して出力パスを出力接続の１つ以上のセットに提供し、１実施形態において、それらは、ＳｏＣの専用出力ピン、入力／出力（Ｉ／Ｏ）ピン、及び／又はシステムメモリに接続されたピン又は他の相互接続に対応することができ、システムメモリは、オンチップスタティックランダムアクセスメモリであり得る。１実施形態において、これらの出力接続は、出力ピンの第１のセット１８００〜１８０ｎと出力ピンの第２のセット１９００〜１９０ｎを含むことができる。１実施形態において、第１の出力ピン１８０は、汎用ＩＯ（ＧＰＩＯ）ピンであり、第２の出力ピン１９０は、ＰＴＩピンなどの別のタイプのピン接続であり得る。１実施形態において、ある出力パスは、例えば、ＰＴＩピンを経由して閉じた筐体（closed  chassis）システムのマイクロセキュアデジタル（ＳＤ）ピンに接続され、それによりフォームファクタデバッグ（ＦＦＤ）又は閉じた筐体デバッグが、開いた筐体に追加して可能となる。
【００１５】
いくつかの実施形態において、並列化の代わりに、トレースマージユニット１４０からの処理されたデバッグ信号は、高速シリアルストリームを経由して宛先に送信することができる。この場合、トレースデータは、セレクションユニット１１０において、ＰＴＩロジック１５０の出力から又はトレースマージユニット１４０からのいずれかが、ＣＤＵ１２５によるＴｒａｃｅ  Ｄａｔａ  Ｓｅｌ信号出力に応答して、選択することができる。１実施形態において、セレクションロジック１１０に対するデフォルトの選択は、ディスプレイコントローラ１０５の出力を選択し、デバッグに基づいて、選択は、デバッグトレースデータを選択するように変更される。この選択された出力は、ディスプレイロジック１１２へ提供され、それは、並列トレースデータから直列ストリームに変換され、プロトコル情報が付加され、高速シリアルＩ／Ｏインタフェース１１４へ運ばれる。図１のこの特定の高レベル図が示されたが、本発明の範囲は、この点において制限されないことを理解されたい。
【００１６】
これから図２を参照して、プロセッサ１００のさらなる詳細が示される。さらに具体的に、図２は、ＳｏＣの全体の高レベル図を提供し、ＳｏＣは、追加のＳｏＣ回路の文脈で、図１で上述したデバッグ回路を含む。図２は、コア１０６を示し、それは、１実施形態においてＳｏＣのメインの中央処理装置（ＣＰＵ）であり得、そして、１実施形態において、１つ以上の命令セットアーキテクチャの命令を実行するように構成された進化したアウトオブオーダー実行コア（advanced  out-of-order  execution  core）であり得る。同様に、コア１０６は、ノースユニット１０８に接続され、ノースユニット１０８は、１実施形態において、メモリコントローラ及び／又は他のインタフェース回路などの様々なインタフェース及び他の制御回路を含むことができる。見られるように、ノースユニット１０８は、ＤＦｘユニット１２０に接続される。
【００１７】
加えて、ウェストユニット１１１も、ＤＦｘユニット１２０に接続される。様々な実施形態において、ウェストユニット１１１は、１つ以上のプロセッサ、グラフィックスプロセッサ、一定の機能ユニットなどの１つ以上の処理ユニットを含む。さらにまた、サウスユニット１１５は、追加の又は異なる機能ユニット、インタフェースユニットなどを含むことができ、同様にＤＦｘユニット１２０にも接続される。トレース収集及び通信に関する追加の詳細は、サウスユニット１１５に見られる点に留意すべきである。もっと具体的には、様々なトレースがサウスユニット１１５内のトレースコレクションユニット１１８に提供される。
【００１８】
示した実施形態において、メッセージトレースは、ソフトウェアトレース、ファームウェアトレース及びハードウェアトレースを含み、メッセージトレース、１実施形態において、ＡＯＮトレースを含むことができるので、ＳｏＣが位置する所定のプラットフォームが低電力モードであっても、これらのトレースは、電源オンの回路に関連する。例えば、スマートフォン、タブレット、モノのインターネット（ＩｏＴ）などのモバイルプラットフォームの文脈において、プラットフォームは電源オンであるが使われていないとき（例えば、そのディスプレイはオフで、ユーザの相互作用が起こらないとき）、ＳｏＣのある回路は、常時オンのままであり、セルラシステムなどのワイヤレス通信システムの基地局などとの接続性は維持される。
【００１９】
１実施形態において、トレースコレクションユニット１１８は、例えば、チップ外（off-chip）から（及びロジックアナライザなどのプラットフォーム外のソース）、例えば、次にジョイントテストアクショングループ（ＪＴＡＧ）ユニット１１９に接続されるＳｏＣのＪＴＡＧインタフェースを経由して、制御信号を受信するジョイントテストアクショングループ（ＪＴＡＧ）ユニット１１９を経由して受信された信号によって制御される。別の実施形態において、制御信号は、任意の他のメモリマップ入力／出力（ＭＭＩＯ）アクセスメカニズム（例えば、デバッグバトラ、シリアルワイヤデバッグ、Ｉ２Ｃなど）から受信することができる。その結果、トレースコレクションユニット１１８に集められた様々なトレース信号は、ＤＦｘユニット１２０、より具体的には、本明細書で説明される処理のために図１のＣＤＵ１２５に対応することができるデバッグロジックに提供される。図２に示されたデバッグ回路の残りの部分は、図１に関して上述したものに一般に対応することができる点に留意すべきである。図２においてこの高レベルで実施形態が示されているが、本発明の範囲は、この点で制限されないことを理解されたい。
【００２０】
これから図３を参照して、本発明の実施形態に従ったトレースコレクションユニットのさらなる詳細が示される。トレースコレクションユニット２００は、図２のトレースコレクションユニット１１８に一般に対応することができる点に留意すべきである。複数のそのようなトレースコレクションユニットは、例えば、様々なクラスタ又はプロセッサのユニットに位置することができることを理解されたい。見られるように、トレースコレクションユニット２００は、複数のソースからの入来トレース情報を受信するように構成され、複数のソースは、ソフトウェアメッセージ２１０、ファームウェアメッセージ２２０、内部信号マルチプレクサ（又はスイッチ切り替え電力領域（switched  power  domain））ソース２３０と常時オン（又は非スイッチ切り替え電力領域（unswitched  power  domain））ソース２４０を含む。マルチプレクサなどのセレクションユニット２４５は、ソース２３０とソース２４０との間で選択することができる点に留意されたい。
【００２１】
これらのソースからの様々なトレース情報は、仲介記憶領域として対応するトレースバッファ２１５、２２５、２３５に提供することができる。最後に、例えば別のマルチプレクサなどのセレクションロジック２５０は、構成入力を経由して受信した構成信号（configuration  signals）に応答して制御することができ、セントラルデバッグユニット又は他の宛先に接続された内部相互接続などの出力パス２６０を経由して出力のために対応するトレースを選択する。図３にはこの限定的な回路が示されているが、本発明の範囲は、この点について制限されないことを理解されたい。
【００２２】
１実施形態においてハードウェアトレースは、クラスタレベル内で、内部信号が可観測性のためにマルチプレクサツリーに接続される内部デバッグ信号マルチプレクサアーキテクチャ経由、マルチプレクサ入力経由、又はファブリックトレースフック（ＦＴＨ）経由のいずれかで収集することができる。そのようなハードウェアトレースは、プロトコルレベルで又は低電力又は遷移デバッグに関するものであり得る点に留意されたい。これらのＨＷトレースは、ＡＯＮ領域又はその他から供給され、いずれの場合にしても、信号はＡＯＮ領域内の内部デバッグマルチプレクサに送信され、それにより記憶と再生の必要性を避けることができる（セーブとリストアとしても知られる）。代わりの記憶と再生は、機械の状態が、電源がオフにされる（電力削減の目的で）前に保存され、そして、機械の電源が再度入れた後に、状態はリストアされる。
【００２３】
１実施形態において、ソフトウェアトレースは、クラスタ内で柔軟に処理され、例えばマルチプレクサ選択を使って動的にソフトウェアマスタを選択することができる。いくつかのケースにおいて、デバッグに必要な場合は、複数のソフトウェアマスタが、インタリーブすることができる。上述の通り、実施形態は、ファームウェア（ＦＷ）トレースを処理することも提供し、そのような実施形態では、ＡＯＮロジックがデバッグに対して利用可能なときは、そのようなトレースはリアルタイムでストリームすることができる。
【００２４】
１実施形態を用いて、低電力エントリ／イグジット又は異なる電力状態間での遷移に関連するデバッグ情報を取得し、出力することができる。そのように、実施形態は、すべての種類のトレース及びＨＷ、ＳＷ、ＦＷ及び内部信号などのイベントの可観測性を提供することにより、ＳｏＣ又は他のＩＣの出力ポートで観測可能にする。
【００２５】
別の言いかたをすれば、実施形態は、常にハードウェア（トランザクションレベル及び信号レベル）、ソフトウェアとファームウェアのトレースの可観測性を提供し、それは制限なく、初期デバッグ、低電力エントリ／イグジット遷移（low  power  entry/exit  transitions）、及び通常のランタイムデバッグに対して、信号レベルの可観測性と遷移レベルの可観測性をさらに提供する。またさらに、実施形態は、機能ユニットデバッグ信号に加えて、内部デバッグストリームを処理するためのＳＴＭブロックの再利用による内部デバッグＨＷ、ＳＷとＦＷのトレースのタイムスタンプ付加を提供する。
【００２６】
そのように、実施形態は、デバッグデータへのトリガ動作、フィルタリング、パケット化、圧縮の機能と共にすべての種類のデバッグソース（例えば、ハードウェア、ソフトウェア及びファームウェア）の完全な、共通の、効率的でスケーラブルなデバッグ能力を可能とし、効率的なデバッグに対する出力バンド幅を提供する。また、実施形態に従ったデバッグアーキテクチャは、分離されたデバッグ電力プレーン上にデバッグロジックの一部の又は全部を置くことにより、生産部品における電力を節約することができ、このプレーンへの電力は、例えば、ヒューズ又は他の手段を経由して、電源オフすることができ、コンポーネントレベルで節電するためにデバッグロジックを電源オフし、次に、プラットフォームの電力も節約し、オーバーライド機能によりリターンパーツのデバッグのためにその電源を入れることができる。
【００２７】
加えて、実施形態が低電力デバッグ（Ｓ０ｉｘなどのＡＣＰＩシステムの低電力状態の
間）の実行に使用されるので、出力パスは、ＡＯＮの１つ又はデバッグ電力領域にロジックを置くことによって、Ｄｉｓｐｌａｙ  Ｐｏｒｔ、ＰＣＩｅ、ＵＳＢ又はタイプＣコネクタなどの高速シリアルトレースポートなどの他の位置に接続することができる。いくつかのケースでは、トレース情報は、閉じた筐体デバッグに対して、組み込みＤＦｘインタフェース又はＵＳＢプロトコルによるダイレクトコネクトインタフェース（ＤＣＩ）を経由して通信することもできる。実施形態は、それ故に、特に、低電力モバイルＳｏＣ並びにクライアント／サーバＩＣ及びＳｏＣを含む多くの異なる種類のＩＣのデバッグに対して使用することができる。
【００２８】
これから図４を参照すると、本発明の実施形態に従った方法の流れ図が示されている。より具体的には、図４の方法３００は、ファームウェア実行の間、ＳｏＣのデバッグロジックを使って実行されるデバッグ動作に関連する。図４に示された特定の実施形態は、プリブートファームウェア動作に関するものであるが、本発明の範囲は、このような環境に制限されず、ファームウェアベースのデバッグは、ＳｏＣを含むプラットフォームの通常のシステム動作の間に同様に実行することができることを理解されたい。
【００２９】
見られるように、方法３００は、ＳｏＣのＡＯＮ部分を電源オンにすることから始まる（ブロック３１０）。動作におけるこの時点で、プラットフォームとＳｏＣは完全には機能していないので、ＳｏＣの限られた部分のみ、すなわち、ＡＯＮ電力領域のみが電源オンされる。それ故に、デバッグ回路の部分がＡＯＮ電力領域に位置する実施形態において、これらの部分もまた電源オンされる。代わりにデバッグ回路が、その自身のデバッグ電力領域に組み込まれる別の実施形態において、このデバッグ電力領域も電源オンにすることができる。
【００３０】
デバッグ回路がファームウェアとハードウェアのトレース情報を収集するように構成することができるブロック３２０へ次のパスを制御する。そのような構成は、例えば、ＪＴＡＧインタフェースなどのＳｏＣのテストインタフェースを経由して、実行され、マルチレベルマルチプレクサアーキテクチャの異なるレベルなどで様々なセレクタにそのようなハードウェア及びファームウェアのトレースを提供するように構成させる。
【００３１】
次に、制御パスはブロック３３０へ行き、そこでは、ＳｏＣの動作がプリブート環境で開始され、プリブート環境では、基本入力／出力（ＢＩＯＳ）の異なるモジュールなどが、例えばユニファイドエクステンシブルファームウェアインタフェース（ＵＥＦＩ）などに従って、プラットフォームファームウェアの少なくとも一部が実行される。そのような動作の間、ファームウェアとハードウェアのトレース情報は、デバッグ回路で処理される（ブロック３４０）。そのような処理に応答して、処理される情報は、選択された出力パスを経由してＳｏＣからストリームすることができる（ブロック３５０）。例えば、プロトタイプ形式のプラットフォームの開発の間などのいくつかの状況では、開いた筐体（open  chassis）配置が存在することができ、トレース情報は、ＧＰＩＯピン（又はそれらのピンの一部）を経由してストリーミング出力され、又は後の抽出及びデバッグのためにメモリに送られ又はデバッグ目的のための代替ピンを経由して送ることができる。代わりに、プラットフォームデザインがさらに前進し、完全に機能的なプラットフォームが存在するとき、閉じた筐体デバッグ動作が発生するかも知れず、そして、トレース情報は、１つ以上のマイクロＳＤピンのセット又はＨＤＭＩ（登録商標）、ＵＳＢ又は最終製品で利用可能な代替のピンなどの他のピンの組を経由して、他の出力パスを経由してストリーミング出力される。
【００３２】
まだ図４を参照して、プラットフォームデバッグの間、エラーが検出されたか否かは、ストリームされたトレース情報に基づいて決定することができる（ひし形３６０）。いいえの場合は、プラットフォームは、ブート環境に遷移することができる（ブロック３６５）。ブート環境（所定のＯＳによって）への移行に応じて、デバッグ回路の追加の構成が発生し、ファームウェアトレース情報の取得の代わりに、ソフトウェアトレース情報を取得することができる（あるハードウェアトレース情報に加えて）点に留意されたい。
【００３３】
そうではなく１つ以上のエラーがプリブート環境で検出された場合、エラー検出イベントにタイムスタンプを付加することができるブロック３７０へパスが制御される。１実施形態において、そのようなタイムスタンプは、受信したストリーミングトレース情報のタイムスタンプ情報を使ってある程度達成することができ、それは、タイムスタンプを含むフォーマットとして受信することができる。最後にブロック３８０において、タイムスタンプエラー検出イベントは、例えば、プラットフォームが接続されるトレース解析ツールのユーザなどにレポートすることができる。図４の実施形態にはこの高レベルで示されているが、本発明の範囲は、この点で制限されないことを理解されたい。
【００３４】
これから図５を参照して、本発明の実施形態に従ったシステムのブロック図が示されている。図５の実施形態において、システム９００は、複数の領域を含むＳｏＣであり得、それらのぞれぞれは、独立した動作電圧と動作周波数で動作するように制御することができる。特定の説明に役立つ実例として、システム９００は、インテルコーポレーションから入手可能なｉ３、ｉ５、ｉ７又は他のそのようなプロセッサなどのＩｎｔｅｌ（Ｒ）アーキテクチャコア（ＴＭ）ベースＳｏＣであり得る。しかしながら、サニーヴェール、ＣＡのアドバンストマイクロデバイスＩｎｃ．（ＡＭＤ）、ＡＲＭホールディングスＬｔｄ．からＡＲＭベースデザイン又はそれらのライセンシー又はサニーヴェール、ＣＡのＭＩＰＳテクノロジーＩｎｃ．ＭＩＰＳベースデザイン、またはそれらのライセンシー又はアドプタ―からの入手可能な低電力ＳｏＣ又はプロセッサは、代わりに、アップルＡ７プロセッサ、クアルコムスナップドラゴンプロセッサ、又はテキサスインスツルメンツのＯＭＡＰプロセッサなどの他の実施形態に存在しても良い。そのようなＳｏＣは、スマートフォン、タブレットコンピュータ、ファブレットコンピュータ、ウルトラブック（ＴＭ）コンピュータ、ＩｏＴデバイス、ウェアラブル、又は他のポータブルコンピューティングデバイスなどの低電力システムにおいて使用することができる。
【００３５】
図５の示された高レベル図において、ＳｏＣ９００は、複数のコアユニット９１００〜９１０ｎを含む。各コアユニットは、１つ以上のプロセッサコア、１つ以上のキャッシュメモリ及び他の回路を含むことができる。各コアユニット９１０は、１つ以上の命令セット又は他の命令セット又はそれらの組合せをサポートする（例えば、ｘ８６命令セット（新しいバージョンが追加されたいくつかの拡張と共に）、ＭＩＰＳ命令セット、ＡＲＭ命令セット（例えばＮＥＯＮなどのオプションの追加の拡張と共に））。コアユニットのいくつかは、異種のリソース（例えば、異なるデザインの）であり得る点に留意されたい。加えて、そのような各コアは、キャッシュメモリ（図示ぜず）に接続することができ、そのような実施形態では、共用レベル（Ｌ２）キャッシュメモリであり得る。不揮発性記憶装置９３０は、様々なプログラムや他のデータを記憶するために使用することができる。例えば、この記憶装置は、ＢＩＯＳ、他のシステムソフトウェアなどのマイクロコード、ブート情報の少なくとも部分を記憶するために使用することができる。
【００３６】
各コアユニット９１０は、また、ＳｏＣの追加の回路に相互接続を可能とするバスインタフェースユニットなどのインタフェースも含むこともできる。１実施形態において、各コアユニット９１０は、次にメモリコントローラ９３５に接続されるプライマリキャッシュコヒーレントオン・ダイ相互接続として動作することができるコヒーレントファブリックに接続される。次に、メモリコントローラ９３５は、ＤＲＡＭ（図５における説明の簡単のため示されていない）などのメモリとの通信を制御する。
【００３７】
コアユニットに加えて、追加の処理エンジンがプロセッサ内に存在し、それは、１つ以上のグラフィックス処理ユニット（ＧＰＵ）を含むことができる少なくとも１つのグラフィックスユニット９２０を含み、グラフィックス処理の実行と同様に、グラフィックスプロセッサ（いわゆるＧＰＧＰＵ動作）上で汎用の動作を場合により実行する。加えて、少なくとも１つのイメージ信号プロセッサ９２５が存在し得る。信号プロセッサ９２５は、ＳｏＣの内部又はオフチップのいずれかの１つ以上のキャプチャデバイスから受信した入来イメージデータを処理するように構成することができる。
【００３８】
他のアクセラレータも存在し得る。図５の説明において、ビデオコーダー９５０は、高解像度ビデオコンテンツに対するハードウェアアクセラレーションサポートを提供するなどのビデオ情報に対するエンコーディング及びでコーディングを含むコーディング動作を実行することができる。ディスプレイコントローラ９５５は、さらに、システムの内部及び外部のディスプレイに対するサポートを提供することを含むディスプレイ動作を加速することを提供することができる。加えて、デバッグユニット９４５は、存在することができ、デバッグユニット９４５は、本明細書で説明された低電力デバッグアーキテクチャを含むことができる。各ユニットは、電力マネージャ９４０を経由してそれ自身の電力消費を制御することができ、電力マネージャ９４０は、様々な電力管理技術を実行する制御ロジックを含むことができる。
【００３９】
いくつかの実施形態において、ＳｏＣ９００は、さらに、様々な周辺機器装置が接続され得るコヒーレントファブリックに接続される非コヒーレントファブリックを含むことができる。１つ以上のインタフェース９６０ａ〜９６０ｄは、１つ以上のオフチップデバイスとの通信を可能にする。そのような通信は、特に他の種類の通信プロトコルの中で、ＰＣＩｅ（ＴＭ）、ＧＰＩＯ、ＵＳＢ、Ｉ２Ｃ、ＵＡＲＴ、ＭＩＰＩ、ＳＤＩＯ、ＤＤＲ、ＳＰＩ、ＨＤＭＩなどの様々な通信プロトコルに従うことができる。図５の実施形態におけるこの高レベルとして示されているが、本発明の範囲は、この点で制限されないことを理解されたい。
【００４０】
これから図６を参照すると、実施形態で使用することができるシステムの実例のブロック図が示されている。見えるように、システム１２００は、スマートフォン又は他のワイヤレス通信機であり得る。ベースバンドプロセッサ１２０５は、システムから送信され又はシステムによって受信される通信信号に関して様々な信号処理を実行するように構成される。次に、ベースバンドプロセッサ１２０５は、アプリケーションプロセッサ１２１０に接続され、アプリケーションプロセッサ１２１０は、多くの良く知られたソーシャルメディア及びマルチメディアアプリケーションなどのユーザアプリケーションに加えて、ＯＳ及び他のシステムソフトウェアを実行するシステムのメインのＳｏＣであり得る。アプリケーションプロセッサ１２１０は、さらに、デバイスに対する様々な他のコンピューティング動作を実行するように構成され、本明細書で説明される低電力デバッグアーキテクチャを含むことができる。
【００４１】
次に、アプリケーションプロセッサ１２１０は、例えば、タッチスクリーンディスプレイなどのユーザインタフェース／ディスプレイ１２２０に接続することができる。加えて、アプリケーションプロセッサ１２１０は、不揮発性メモリ、すなわち、フラッシュメモリ１２３０及びシステムメモリ、すなわち、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）１２３５を含むメモリシステムに接続することができる。さらに見られるように、アプリケーションプロセッサ１２１０は、さらに、ビデオ及び／又は静止画を記録できる１つ以上のイメージキャプチャデバイスなどのキャプチャデバイス１２４０に接続される。
【００４２】
まだ図６を参照して、加入者アイデンティティモジュール及び場合によりセキュア記憶装置及び暗号化プロセッサを備えるユニバーサルインテグレーテッドサーキットカード（ＵＩＣＣ）１２４０も、アプリケーションプロセッサ１２１０に接続される。システム１２００は、さらに、アプリケーションプロセッサ１２１０に接続することができるセキュリティプロセッサ１２５０を含むことができる。複数のセンサ１２２５は、アプリケーションプロセッサ１２１０に接続することができ、加速度計及び他の環境情報などの様々な検知された情報の入力を可能にする。オーディオ出力デバイス１２９５は、ボイスコミュニケーション、再生又はストリーミングオーディオデータなどの形式で、サウンドを出力するインタフェースを提供することができる。  
【００４３】
さらに説明するように、近距離無線通信（ＮＦＣ）非接触インタフェース１２６０は、ＮＦＣアンテナ１２６５を経由してＮＦＣ近距離場における通信を提供する。分離したアンテナが図６に示されているが、いくつかの実施形態において、１つのアンテナ又は異なるセットのアンテナを提供し、様々なワイヤレス機能を可能とすることを理解されたい。
【００４４】
電力管理統合回路（ＰＭＩＣ：power  management  integrated  circuit）１２１５は、アプリケーションプロセッサ１２１０に接続され、プラットフォームレベル電力管理を実行する。この目的を達成するために、ＰＭＩＣ１２１５は、アプリケーションプロセッサ１２１０に電力管理リクエストを発行し、上述のある低電力状態に入ることができる。その上、プラットフォームの制限に基づいて、ＰＭＩＣ１２１５は、またシステム１２００の他のコンポーネントの電力レベルを制御することができる。
【００４５】
送信し、受信する通信を可能にするために、様々な回路がベースバンドプロセッサ１２０５とアンテナ１２９０との間に接続できる。具体的には、無線周波数（ＲＦ）トランシーバ１２７０及びワイヤレスローカルエリアネットワーク（ＷＬＡＮ）トランシーバ１２７５があり得る。一般に、ＲＦトランシーバ１２７０は、例えば、符号分割多重アクセス（ＣＤＭＡ）、グローバルシステムフォーモバイルコミュニケーション（ＧＳＭ（登録商標））、ロングタームエボリューション（ＬＴＥ）又は他のプロトコルなどに合致して、３Ｇ又は４Ｇワイヤレス通信プロトコルなどの所定のワイヤレス通信プロトコルに従って、ワイヤレスデータ及びコールを受信及び送信するために使用することができる。加えて、ＧＰＳセンサ１２８０が存在し得る。例えばＡＭ／ＦＭ及び他の信号などのラジオ信号の受信又は送信などの他のワイヤレス通信も提供することができる。加えて、ＷＬＡＮトランシーバ１２７５を経由して、ブルートゥース（登録商標）標準規格又はＩＥＥＥ８０２．１１ａ／ｂ／ｇ／ｎなどのＩＥＥＥ８０２．１１標準規格に従うなどのローカルワイヤレス通信も実現することができる。
【００４６】
これから図７を参照して、実施形態が使用され得る別のシステムの実例のブロック図が示される。図７の説明において、システム１３００は、タブレットコンピュータ、２：１タブレット、ファブレット又は他のコンバーチブル又はスタンドアローンのタブレットのようなモバイル低電力システムであり得る。図示されるように、ＳｏＣ１３１０があり、デバイスのアプリケーションプロセッサとして動作するように構成することができる。ＳｏＣ１３１０は、本明細書で説明するように低電力デバッグアーキテクチャを含むことができる。
【００４７】
様々なデバイスは、ＳｏＣ１３１０に接続することができる。示した図において、メモリサブシステムは、ＳｏＣ１３１０に接続されたフラッシュメモリ１３４０及びＤＲＡＭ１３４５を含む。加えて、タッチパネル１３２０は、ＳｏＣ１３１０に接続され、タッチパネル１３２０のディスプレイ上に仮想キーボードの提供を含めて、ディスプレイ機能及びタッチ経由のユーザ入力を提供する。有線ネットワーク接続性を提供するために、ＳｏＣ１３１０は、イーサネット（登録商標）インタフェース１３３０に接続される。周辺機器ハブ１３２５は、ＳｏＣ１３１０に接続され、様々なポート又は他のコネクタのいずれかによってシステム１３００に接続することができるなどの、様々な周辺機器デバイスとのインタフェースを可能にする。
【００４８】
ＳｏＣ１３１０内の内部電力管理回路及び機能に加えて、ＰＭＩＣ１３８０は、ＳｏＣ１３１０に接続され、例えば、システムがバッテリ１３９０又はＡＣアダプタ１３９５経由でＡＣ電力による電力を供給されているかに基づいて、プラットフォームベース電力管理を提供する。この電力ソースベース電力管理に加えて、ＰＭＩＣ１３８０は、環境及び使用条件に基づいて、プラットフォーム電力管理動作をさらに実行することができる。またさらに、ＰＭＩＣ１３８０は、ＳｏＣ１３１０に制御及び状態情報を送信し、ＳｏＣ１３１０内の様々な電力管理動作を起こさせることができる。
【００４９】
まだ図７を参照して、ワイヤレス機能を提供するために、ＷＬＡＮユニット１３５０は、ＳｏＣ１３１０に接続され、次にアンテナ１３５５に接続される。様々な実装において、ＷＬＡＮユニット１３５０は、ＩＥＥＥ８０２．１１プロトコル、ブルートゥース（登録商標）（ＴＭ）プロトコル又は任意の他のワイヤレスプロトコルを含む１つ以上のワイヤレスプロトコルに従って通信を提供することができる。
【００５０】
さらに図示されるように、複数のセンサ１３６０は、ＳｏＣ１３１０に接続することができる。これらのセンサは、ユーザジェスチャセンサを含む、様々な加速度計、環境及び他のセンサを含むことができる。最後に、オーディオコーデック１３６５は、ＳｏＣ１３１０に接続され、オーディオ出力デバイス１３７０にインタフェースを提供する。もちろん、図７にこの特定の実装と共に示されたが、多くの変形や代替案も可能であることを理解されたい。
【００５１】
次に図８に移って、１実施形態に従ったＳｏＣデザインの実施形態が描かれる。特定の説明のための実例として、ＳｏＣ２０００は、ユーザ機器（ＵＥ）を含んでいる。１つの実施形態において、ＵＥは、ウェアラブル、ハンドヘルドフォン、スマートフォン、タブレット、ウルトラシンノートブック、ノートブック、ＩｏＴデバイス、又は任意の他の同様のデバイスなどのエンドユーザによって使用される任意のデバイスを指す。しばしば、ＵＥは、基地局又はノードに接続し、それらは潜在的に事実上、ＧＳＭネットワークにおけるモバイルステーション（ＭＳ）に対応する。
【００５２】
ここでＳｏＣ２０００は、２コアー２００６及び２００７を含む。上述と同様にコア２００６と２００７は、Ｉｎｔｅｌ（Ｒ）アーキテクチャコア（ＴＭ）ベースプロセッサ、アドバンストマイクロデバイス、Ｉｎｃ．（ＡＭＤ）プロセッサ、ＭＩＰＳベースプロセッサ、ＡＲＭベースプロセッサデザイン、又はそれらのカスタム、及びそれらのライセンシー又はアドプタなどの命令セットアーキテクチャに適合することができる。コア２００６及び２００７は、キャッシュ制御２００８に接続され、それは、バスインタフェースユニット２００９及びＬ２キャッシュ２０１０と関連し、システム２０００の他の部分と通信する。相互接続２０１０は、オンチップ相互接続を含む。
【００５３】
相互接続２０１０は、本明細書において説明する低電力アーキテクチャを有することができる、デバッグユニット２０３０などの他のコンポーネントに通信チャネルを提供する。見られるようにデバッグユニット２０３０は、複数のオフチップ接続とインタフェースすることができる。相互接続２０１０は、また、ＳＯＣ２０００を初期化してブートするコア２００６及び２００７による実行のためにブートコードを保持するブートＲＯＭ２０３５、外部メモリ（例えばＤＲＡＭ２０６０）とインタフェースするＳＤＲＡＭコントローラ２０４０、不揮発性メモリ（例えば、フラッシュ２０６５）とインタフェースするフラッシュコントローラ２０４５、周辺機器とインタフェースする周辺機器コントローラ２０５０（例えば、シリアルペリフェラルインタフェースなど）、ＭＩＰＩ又はＨＤＭＩ／ＤＰインタフェースのうちの１つを経由して表示し、入力を受信する（例えば、タッチ使用可能入力）ビデオコーデック２０２０及びビデオインタフェース２０２５、グラフィックス関連の計算を実行するＧＰＵ２０１５などに接続される。
【００５４】
加えて、システムは、ブルートゥースモジュール２０７０、３Ｇモデム２０７５、ＧＰＳ２０８０、及びＷｉＦｉ２０８５などの通信のための周辺機器を説明する。また電力コントローラ２０５５もシステムに含まれる。
【００５５】
以下の実例は、さらなる実施形態に関連する。
【００５６】
１実例において、装置は、少なくとも１つのハードウェアソース、少なくとも１つのファームウェアソース、及び少なくとも１つのソフトウェアソースを含む複数のソースからデバッグ信号を受信するセントラルデバッグユニットと、前記セントラルデバッグユニットから前記デバッグ信号を受信するトレースマージユニットであって、前記トレースマージユニットは、前記複数のソースの１つ以上からの前記デバッグ信号と複数のハードウェアユニットからの機能デバッグ信号との間で選択する調停回路を有し、前記トレースマージユニットは、前記選択されたデバッグ信号又は機能デバッグ信号にタイムスタンプを付加し、前記タイムスタンプ付き選択されたデバッグ信号又は機能デバッグ信号を受信し、前記タイムスタンプ付き選択されたデバッグ信号又は機能デバッグ信号を並列化するパラレルトレースインタフェースと、前記タイムスタンプ付き選択されたデバッグ信号又は機能デバッグ信号を受信し、前記タイムスタンプ付き選択されたデバッグ信号又は機能デバッグ信号を直列化する、シリアルトレースインタフェースと、前記セントラルデバッグユニットから前記デバッグ信号、及び前記パラレルトレースインタフェースから前記並列化タイムスタンプ付き選択されたデバッグ信号又は機能デバッグ信号を受信し、出力パスに出力するために、前記デバッグ信号、前記並列化タイムスタンプ付き選択されたデバッグ信号又は機能デバッグ信号のうちの１つを選択し、前記出力パスは、複数の出力パスから選択される、セレクションユニットと、を含む。
【００５７】
１実例において、前記装置は、システムオンチップ（ＳｏＣ）を備え、前記複数の出力パスは、汎用入力／出力ピンのセットと、マイクロセキュアデジタルピンのセットと、メモリ相互接続のセットと、少なくとも１つのユニバーサルシリアルバスピンと、のうちの１つ以上を含む。
【００５８】
１実例において、前記装置は、さらに、分散セレクションユニットを備え、前記分散セレクションユニットは、前記装置を含むシステムオンチップ（ＳｏＣ）の第１の機能ユニットに位置する第１のセレクションユニットと、前記ＳｏＣのアンコアロジックに位置する第２のセレクションユニットであって、前記第２のセレクションユニットは、前記第１のセレクションユニットを含む複数の第１のセレクションユニットから出力を受信し、前記第２のセレクションユニットを含む複数の第２のセレクションユニットから出力を受信し、選択したデバッグ信号を前記セントラルデバッグユニットに出力する、第３のセレクションユニットと、を含む。
【００５９】
１実例において、前記装置は、さらに前記ＳｏＣのテストインタフェースを経由してトレース制御信号を受信し、前記トレース制御信号に応答して、前記トレースコレクションユニットから前記セントラルデバッグユニットへの出力のために、ハードウェアトレース情報、ソフトウェアトレース情報及びファームウェアトレース情報のうちの１つを選択するように構成された、トレースコレクションユニットを含む。
【００６０】
１実例において、前記ファームウェアは、前記ＳｏＣに対するブートコードを含む。
【００６１】
１実例において、前記装置は、前記セントラルデバッグユニットの第１の部分を含む第１の電力領域及び前記セントラルデバッグユニットの第２の部分を含む第２の電力領域とを含み、前記ＳｏＣが低電力モードで動作する間、前記第１の電力領域は電源オンを維持し、前記第２の電力領域は電源オフである。
【００６２】
１実例において、前記セントラルデバッグユニットの前記第１の部分は、前記低電力モードに関連するデバッグ信号を受信し、処理する。
【００６３】
１実例において、前記装置は、さらに前記ＳｏＣを含むポータブルデバイスのユーザ動作の間、前記セントラルデバッグユニットの少なくとも前記第１の部分を無効にするように構成されるヒューズロジックを含み、前記ヒューズロジックは、前記ポータブルデバイスの前記ＳｏＣに組み込む前に構成される。前記ヒューズロジックは、前記ポータブルデバイスのデバッグ動作の間、前記セントラルデバッグユニットの前記第１の部分を有効にするために上書きされるように構成される。
【００６４】
１実例において、前記並列化タイムスタンプ付き選択されたデバッグ信号又は機能デバッグ信号は、ＭＩＰＩアライアンスシステムトレースプロトコルと互換性がある。
【００６５】
１実例において、ＳｏＣは、ユーザ機器タッチ使用可能デバイスに組み込まれる。
【００６６】
別の実例において、システムは、ディスプレイ及びメモリを備え、上述の実例の１つ以上の装置を含む。
【００６７】
１実例において、少なくとも１つのコンピュータ読取甲斐能媒体は、命令を含み、命令は実行されたときにシステムに、ファームウェアトレース情報及びハードウェアトレース情報を収集するプロセッサのデバッグ回路を構成することであって、前記デバッグ回路は、前記プロセッサを含むプラットフォームがオンのとき、電源オンである第１の電力領域に位置する第１の部分と、前記プラットフォームが低電力状態にあるとき電源オフである第２の電力領域に位置する第２の部分を含み、前記プラットフォームのプリブート環境において、前記ファームウェアトレース情報及び前記ハードウェアトレース情報を前記デバッグ回路で処理することと、前記処理されたファームウェアトレース情報及び前記処理されたハードウェアトレース情報を前記プロセッサの選択された出力パスを経由して、前記プロセッサから前記プラットフォームに接続された解析ツールにストリーミングすることと、をさせる。
【００６８】
１実例において、前記少なくとも１つのコンピュータ読取可能媒体が、さらに命令を含み、実行されたときに、前記システムに前記処理されたファームウェアトレース情報及び前記処理されたハードウェアトレース情報のうちの少なくとも１つの情報に基づいてエラーの検出に応答して、エラー検出イベントにタイムスタンプを付加することを可能にする。
【００６９】
１実例において、前記少なくとも１つのコンピュータ読取可能媒体がさらに、命令を含み、実行されたときに、前記プリブート環境において前記デバッグ回路の前記第１の部分を有効にすることと、前記プリブート環境において前記デバッグ回路の前記第２の部分を無効にすることとを含む。
【００７０】
１実例において、前記ファームウェアトレース情報を処理することが、前記ファームウェアトレース情報のフィルタリング、パケット化、及び圧縮のうちの１つ以上を含む。
【００７１】
１実例において、ＳｏＣは、命令を実行する少なくとも１つのコアであって、前記少なくとも１つのコアは、前記少なくとも１つのコアの動作に関する第１の機能デバッグ信号を提供する第１のデバッグロジックを含み、非コア動作を実行する少なくとも１つのコアに接続されたアンコアロジックであって、前記アンコアロジックは、前記アンコアロジックの動作に関する第２の機能デバッグ信号を提供する第２のデバッグロジックを含み、前記少なくとも１つのコア及び前記アンコアロジックに接続され、前記第１及び第２の機能デバッグ信号を受信するセントラルデバッグユニットであって、前記セントラルデバッグユニットは、少なくとも１つのファームウェアソース及び少なくとも１つのソフトウェアソースからデバッグ情報を受信し、圧縮されたデバッグ情報を出力し、前記圧縮されたデバッグ情報を受信し、前記圧縮されたデバッグ情報にタイムスタンプを付加する、トレースマージユニットと、前記タイムスタンプ付き圧縮されたデバッグ情報を複数の出力パスの１つに出力する出力ユニットであって、前記１つの出力パスは、テストインタフェースを介して前記ＳｏＣに提供される構成に従って選択される、を備える。
【００７２】
１実例において、前記複数の出力パスが、汎用入力／出力ピンのセットと、マイクロセキュアデジタルピンのセットと、メモリ相互接続のセットと、少なくとも１つのシリアルピンとのうちの１つ以上を含む。
【００７３】
１実例において、前記ＳｏＣが、前記ＳｏＣを含むプラットフォームがオンのとき電源オンのままである第１の電力領域及び前記プラットフォームが低電力状態にあるとき電源オフである第２の電力領域を含み、前記セントラルデバッグユニットは、前記第１の電力領域を含まれる第１の部分及び前記第２の電力領域に含まれる第２の部分を含む。
【００７４】
１実例において、前記ＳｏＣは、前記ＳｏＣを含むプラットフォームのユーザ動作の間、前記セントラルデバッグユニット、前記トレースマージユニット、及び前記出力ユニットを無効にするように構成されるヒューズロジックを備え、前記ヒューズロジックは、前記プラットフォームのデバッグ動作の間、前記セントラルデバッグユニット、前記トレースマージユニット、及び前記出力ユニットの少なくとも一部を有効にするために上書きされるように構成される。
【００７５】
１実例において、前記セントラルデバッグユニットは、トリガロジック、フィルタロジック、パケット化ロジック、及び圧縮ロジックのうちの少なくとも１つを含む。
【００７６】
１実例において、パラレルトレースインタフェースは、前記タイムスタンプ付き圧縮デバッグ情報を受信し、前記タイムスタンプ付き圧縮デバッグ情報を並列化するように構成される。
【００７７】
１実例において、前記並列化タイムスタンプ付き圧縮デバッグ情報を直列化し、前記直列化タイムスタンプ付き圧縮デバッグ情報を直列出力パスを経由して出力する、手段をさらに備える。
【００７８】
上述の実例の様々な組み合わせも可能である点を理解されたい。
【００７９】
実施形態は、多くの異なるタイプのシステムにおいて使用することができる。例えば、１つの実施形態において、通信デバイスは、本明細書で説明した様々な方法及び技術を実行するように配置することができる。もちろん、本発明の範囲は、通信デバイスに制限されることはなく、代わりに他の実施形態は、命令を処理する他のタイプの装置、又はコンピューティングデバイス上で実行されたことに応答して、本明細書で説明した方法又は技術の１つ以上をデバイスに実行させる命令を含む１つ以上の機械読取可能媒体を対象とすることができる。
【００８０】
実施形態は、コードとして実装することができ、命令を実行するためにシステムをプログラムするために使用することができる命令をその中に記憶した非一時的記憶媒体に保存することができる。記憶媒体は、フロッピーディスク、光ディスク、半導体ドライブ（ＳＳＤ）、コンパクトディスクリードオンリメモリ（ＣＤ−ＲＯＭ）、コンパクトディスク書込み可能（ＣＤ−ＲＷ）、及び磁気光ディスクを含むディスク、リードオンリメモリ（ＲＯＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭ）、フラッシュメモリ、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、磁気又は光学式カードなどの半導体デバイスの任意のタイプ、又は電子的命令を記憶するのに適した任意の他のタイプの媒体を含みこれらに制限されない。
【００８１】
本発明は、限られた数の実施形態に関して説明されたが、当業者であれば、それらからの多数の変更や修正を認識することができる。添付の請求の範囲は、この本発明の真の趣旨と範囲内に含まれるすべてのそのような変更や変形をカバーする意図である。
【図１】
0006490803.tif 000002
【図２】
0006490803.tif 000003
【図３】
0006490803.tif 000004
【図４】
0006490803.tif 000005
【図５】
0006490803.tif 000006
【図６】
0006490803.tif 000007
【図７】
0006490803.tif 000008
【図８】
0006490803.tif 000009