(57)【要約】  処理システムの性能を解析するためのシステムおよび方法は、処理システムの選択されたノードに位置するトレースポイントの中に設けられたパフォーマンスカウンタに基づく。監視されるべき第1のトランザクションは、そのトランザクションが第1のトレースポイントにおいてパフォーマンスカウンタによってしきい値回数よりも多く検出される場合、第1のトレースポイントにおいて監視されるべきトランザクションとして識別される。第1のトレースタグ識別子は、第1のトレースポイントにおいて第1のトランザクションに関連付けられる。第1のトランザクションは、1つまたは複数の他のトレースポイントにおいて第1のトレースタグ識別子に基づいて識別される。トレースポイントにおいて第1のトランザクションが識別されるタイムスタンプに基づいて、トレース情報、すなわち、第1のトランザクションの消費デバイスのレイテンシ、場所などの情報などが、様々なトレースポイントから取得される。
2019511784.tif 000002
【特許請求の範囲】
【請求項１】
処理システムの性能を解析する方法であって、
前記処理システムの第1のトレースポイントにおいて監視されるべきトランザクションとして第1のトランザクションを識別するステップと、
前記第1のトレースポイントにおいて第1のトレースタグ識別子を前記第1のトランザクションに関連付けるステップと、
前記第1のトレースタグ識別子に基づいて前記処理システムの1つまたは複数の他のトレースポイントにおいて前記第1のトランザクションを識別するステップと
を備える、方法。
【請求項２】
前記第1のトレースポイントにおいて少なくともしきい値回数だけ前記第1のトランザクションを検出したことに基づいて、監視されるべきトランザクションとして前記第1のトランザクションを識別するステップを備える、請求項1に記載の方法。
【請求項３】
前記第1のトランザクションの属性に基づいて前記第1のトランザクションを検出するステップを備える、請求項2に記載の方法。
【請求項４】
前記属性が、前記第1のトランザクションのアドレス、演算コード、モード、またはタイプのうちの少なくとも1つを備える、請求項3に記載の方法。
【請求項５】
前記第1のトレースポイントにおいて少なくとも前記しきい値回数だけ前記第1のトランザクションを検出するステップが、前記第1のトレースポイントに設けられたパフォーマンスカウンタにおいて、前記第1のトレースポイントにおいて前記第1のトランザクションが検出された回数をカウントするステップと、前記第1のトランザクションが検出された前記回数をしきい値と比較するステップとを備える、請求項2に記載の方法。
【請求項６】
前記第1のトレースポイントにおいて前記第1のトランザクションが少なくとも前記しきい値回数だけ検出されたときに前記パフォーマンスカウンタをリセットするステップをさらに備える、請求項5に記載の方法。
【請求項７】
前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントにおいて前記第1のトランザクションが識別されるタイムスタンプを決定するステップを備える、請求項1に記載の方法。
【請求項８】
前記第1のトランザクションに対するトレース情報を前記タイムスタンプから決定するステップを備える、請求項7に記載の方法。
【請求項９】
前記タイムスタンプに基づいて、前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントとしての少なくとも2つのトレースポイントの間での前記第1のトランザクションのレイテンシを決定するステップをさらに備える、請求項8に記載の方法。
【請求項１０】
前記第1のトレースポイントが、前記処理システムのシステムファブリックに結合されるエージェントの入口点に位置する、請求項1に記載の方法。
【請求項１１】
前記第1のトレースタグ識別子に基づいて、前記処理システムの中での前記第1のトランザクションの消費デバイスの場所を決定するステップをさらに備える、請求項1に記載の方法。
【請求項１２】
前記第1のトレースタグ識別子に基づいて、前記第1のトランザクションのキャッシュ状態、再試行、およびキャッシュヒット/ミスレートのうちの1つまたは複数を決定するステップをさらに備え、前記第1のトランザクションがキャッシュアクセスを備える、請求項1に記載の方法。
【請求項１３】
処理システムであって、
監視されるべきトランザクションとして第1のトランザクションを識別するように構成される第1のトレースポイントと、
第1のトレースタグ識別子を前記第1のトランザクションに関連付けるように構成される、前記第1のトレースポイントに設けられたトレースタグ付け論理と、
前記第1のトレースタグ識別子に基づいて前記第1のトランザクションを識別するように構成される、前記処理システムの1つまたは複数の他のトレースポイントと
を備える、処理システム。
【請求項１４】
前記第1のトレースポイントが、前記第1のトレースポイントにおいて前記第1のトランザクションが検出された回数をカウントするように構成されるパフォーマンスカウンタと、前記第1のトレースポイントにおいて前記第1のトランザクションが検出された前記回数をしきい値と比較するように構成されるしきい値比較器とを備える、請求項13に記載の処理システム。
【請求項１５】
前記しきい値比較器は、前記第1のトレースポイントにおいて前記第1のトランザクションが検出された前記回数が前記しきい値よりも多い場合、前記第1のトレースタグ識別子を前記第1のトランザクションに関連付けるために前記トレースタグ付け論理へのトリガを生成するように構成される、請求項14に記載の処理システム。
【請求項１６】
前記しきい値比較器は、前記第1のトレースポイントにおいて前記第1のトランザクションが検出された前記回数が前記しきい値よりも多い場合、前記パフォーマンスカウンタをリセットするためのリセット信号を生成するようにさらに構成される、請求項14に記載の処理システム。
【請求項１７】
前記パフォーマンスカウンタが、前記第1のトランザクションの属性に基づいて前記第1のトランザクションを検出するように構成される、請求項14に記載の処理システム。
【請求項１８】
前記属性が、前記第1のトランザクションのアドレス、演算コード、モード、またはタイプのうちの少なくとも1つを備える、請求項17に記載の処理システム。
【請求項１９】
前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントが、対応する前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントにおいて前記第1のトランザクションが識別されるタイムスタンプを決定するように構成される、請求項13に記載の処理システム。
【請求項２０】
前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントが、前記タイムスタンプから前記第1のトランザクションに対するトレース情報を決定するように構成される、請求項19に記載の処理システム。
【請求項２１】
前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントの少なくとも2つのトレースポイントが、前記タイムスタンプに基づいて前記少なくとも2つのトレースポイントの間での前記第1のトランザクションのレイテンシを決定するように構成される、請求項20に記載の処理システム。
【請求項２２】
前記第1のトレースポイントが、前記処理システムのシステムファブリックに結合されるエージェントの入口点に位置する、請求項13に記載の処理システム。
【請求項２３】
前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントのうちの1つまたは複数が、前記第1のトレースタグ識別子に基づいて前記処理システムの中での前記第1のトランザクションの消費デバイスの場所を決定するように構成される、請求項13に記載の処理システム。
【請求項２４】
前記第1のトランザクションがキャッシュアクセスを備え、前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントのうちの1つまたは複数が、前記第1のトレースタグ識別子に基づいて前記第1のトランザクションのキャッシュ状態、再試行、およびキャッシュヒット/ミスレートのうちの1つまたは複数を決定するように構成される、請求項13に記載の処理システム。
【請求項２５】
セットトップボックス、音楽プレーヤ、サーバ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、固定位置データユニット、コンピュータ、ラップトップ、タブレット、通信デバイス、およびモバイルフォンからなるグループの中から選択されたデバイスに統合される、請求項13に記載の処理システム。
【請求項２６】
装置であって、
処理システムの中の第1のトレースするための手段において監視されるべきトランザクションとして第1のトランザクションを識別するための手段と、
前記第1のトレースするための手段において第1のトレースタグ識別子を前記第1のトランザクションに関連付けるための手段と、
前記第1のトレースタグ識別子に基づいて前記処理システムの中の1つまたは複数の他のトレースするための手段において前記第1のトランザクションを識別するための手段と
を備える、装置。
【請求項２７】
前記第1のトレースするための手段において少なくともしきい値回数だけ前記第1のトランザクションを検出するための手段を備える、請求項26に記載の装置。
【請求項２８】
前記第1のトレースするための手段および前記1つまたは複数の他のトレースするための手段において前記第1のトランザクションが識別されるタイムスタンプを決定するための手段を備える、請求項26に記載の装置。
【請求項２９】
前記タイムスタンプから前記第1のトランザクションに対するトレース情報を決定するための手段を備える、請求項28に記載の装置。
【請求項３０】
前記タイムスタンプに基づいて、前記第1のトレースするための手段および前記1つまたは複数の他のトレースするための手段としてのトレースするための少なくとも2つの手段の間での前記第1のトランザクションのレイテンシを決定するための手段をさらに備える、請求項28に記載の装置。
【請求項３１】
プロセッサによって実行されたとき、前記プロセッサに処理システムの性能を解析する動作を実行させるコードを備える、非一時的コンピュータ可読記憶媒体であって、
前記処理システムの第1のトレースポイントにおいて監視されるべきトランザクションとして第1のトランザクションを識別するためのコードと、
前記第1のトレースポイントにおいて第1のトレースタグ識別子を前記第1のトランザクションに関連付けるためのコードと、
前記第1のトレースタグ識別子に基づいて前記処理システムの1つまたは複数の他のトレースポイントにおいて前記第1のトランザクションを識別するためのコードと
を備える、非一時的コンピュータ可読記憶媒体。
【請求項３２】
前記第1のトレースポイントにおいて少なくともしきい値回数だけ前記第1のトランザクションを検出するためのコードを備える、請求項31に記載の非一時的コンピュータ可読記憶媒体。
【請求項３３】
前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントにおいて前記第1のトランザクションが識別されるタイムスタンプを決定するためのコードを備える、請求項31に記載の非一時的コンピュータ可読記憶媒体。
【請求項３４】
前記タイムスタンプから前記第1のトランザクションに対するトレース情報を決定するためのコードを備える、請求項33に記載の非一時的コンピュータ可読記憶媒体。
【請求項３５】
前記タイムスタンプに基づいて、前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントとしての少なくとも2つのトレースポイントの間での前記第1のトランザクションのレイテンシを決定するためのコードをさらに備える、請求項33に記載の非一時的コンピュータ可読記憶媒体。
【請求項３６】
前記第1のトレースタグ識別子に基づいて、前記処理システムの中での前記第1のトランザクションの消費デバイスの場所を決定するためのコードをさらに備える、請求項31に記載の非一時的コンピュータ可読記憶媒体。
【請求項３７】
前記第1のトレースタグ識別子に基づいて、前記第1のトランザクションのキャッシュ状態、再試行、およびキャッシュヒット/ミスレートのうちの1つまたは複数を決定するためのコードをさらに備え、前記第1のトランザクションがキャッシュアクセスを備える、請求項31に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
開示する態様は、処理システムの性能解析に関する。より詳細には、例示的な態様は、監視されるべきトランザクションを識別するためのパフォーマンスカウンタ、および識別されたトランザクションを監視するためのトレース論理を使用する、性能解析に関する。
【背景技術】
【０００２】
処理システムの性能をリアルタイムで監視することは、重要な設計目標である。たとえば、リアルタイム性能監視は、ボトルネックをあきらかにすることができ、処理システムの帯域幅およびリソースの利用への見識をもたらすことができる。性能監視のためのいくつかの技法は、ベンチマークを利用して、処理システムによって実行されるトランザクションの帯域幅、レイテンシなどのようなメトリックを比較する。指定された時間区間におけるトランザクションのレイテンシを測定するためにソフトウェアメカニズムが使用されてもよく、測定されたレイテンシは解析のためにログ記録されてもよい。平均レイテンシ、全体的な最小/最大レイテンシなどの、トランザクションについての情報を収集するために、プロセッサコア内でのシステムタイマーおよびカウンタの使用などのハードウェアメカニズムも使用されてもよい。デバッグするために使用されてもよいトレーシングメカニズム(たとえば、組込みトレースマクロセル(ETM:Embedded Trace Macrocell))は、トランザクションの実行フローに関する情報をリアルタイムで提供することができる。
【０００３】
しかしながら、上記のメカニズムは処理システムの全体的な性能に関する一般情報を提供するように探索するが、特定のトランザクションに関する性能情報を見分けることは困難である。たとえば、上述のソフトウェアメカニズムとハードウェアメカニズムとの組合せは、アプリケーションコードの広いセクションが非効率な場合があることを示すことができるが、特殊性がもっと大きく問題のあるトランザクションを特定することが困難である。一方、トレーシングメカニズムは、収集および解析することができる、処理システムについてのより詳細な情報を提供することができるが、この情報をリアルタイムで効果的に使用することは、時間の極めて小さいウィンドウ内で収集および処理されるべき法外に大量のデータを伴うことがある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
したがって、当技術分野において、特定のトランザクションに関するリアルタイムかつ詳細な性能メトリックを提供できるシステムおよび方法が必要である。
【課題を解決するための手段】
【０００５】
本発明の例示的な態様は、処理システムの選択されたノードに位置するトレースポイントの中に設けられたパフォーマンスカウンタに基づく、処理システムの性能を解析するためのシステムおよび方法を対象とする。監視されるべき第1のトランザクションは、そのトランザクションが第1のトレースポイントにおいてパフォーマンスカウンタによってしきい値回数よりも多く検出される場合、第1のトレースポイントにおいて監視されるべきトランザクションとして識別される。第1のトレースタグ識別子は、第1のトレースポイントにおいて第1のトランザクションに関連付けられる。第1のトランザクションは、1つまたは複数の他のトレースポイントにおいて第1のトレースタグ識別子に基づいて識別される。トレースポイントにおいて第1のトランザクションが識別されるタイムスタンプに基づいて、トレース情報、すなわち、第1のトランザクションの消費デバイスのレイテンシ、場所などの情報などが、様々なトレースポイントから取得される。
【０００６】
たとえば、例示的な態様は、処理システムの性能を解析する方法を対象とし、本方法は、処理システムの第1のトレースポイントにおいて監視されるべきトランザクションとして第1のトランザクションを識別するステップと、第1のトレースポイントにおいて第1のトレースタグ識別子を第1のトランザクションに関連付けるステップと、第1のトレースタグ識別子に基づいて処理システムの1つまたは複数の他のトレースポイントにおいて第1のトランザクションを識別するステップとを備える。
【０００７】
別の例示的な態様は、監視されるべきトランザクションとして第1のトランザクションを識別するように構成される第1のトレースポイントと、第1のトレースタグ識別子を第1のトランザクションに関連付けるように構成される、第1のトレースポイントに設けられたトレースタグ付け論理と、第1のトレースタグ識別子に基づいて第1のトランザクションを識別するように構成される、処理システムの1つまたは複数の他のトレースポイントとを備える処理システムを対象とする。
【０００８】
また別の例示的な態様は、処理システムの中の第1のトレースするための手段において監視されるべきトランザクションとして第1のトランザクションを識別するための手段と、第1のトレースするための手段において第1のトレースタグ識別子を第1のトランザクションに関連付けるための手段と、第1のトレースタグ識別子に基づいて処理システムの中の1つまたは複数の他のトレースするための手段において第1のトランザクションを識別するための手段とを備える装置を対象とする。
【０００９】
別の例示的な態様は、プロセッサによって実行されたとき、プロセッサに処理システムの性能を解析する動作を実行させるコードを備える、非一時的コンピュータ可読記憶媒体を対象とし、非一時的コンピュータ可読記憶媒体は、処理システムの第1のトレースポイントにおいて監視されるべきトランザクションとして第1のトランザクションを識別するためのコードと、第1のトレースポイントにおいて第1のトレースタグ識別子を第1のトランザクションに関連付けるためのコードと、第1のトレースタグ識別子に基づいて処理システムの1つまたは複数の他のトレースポイントにおいて第1のトランザクションを識別するためのコードとを備える。
【００１０】
添付図面は、本発明の態様の説明を助けるために提示され、態様の限定ではなく態様の例示のために提供されるにすぎない。
【図面の簡単な説明】
【００１１】
【図１】例示的な態様に従って構成される例示的な処理システムの概略図である。
【図２Ａ】トランザクションフロー、たとえば、本開示の態様によるトランザクションを示す図である。
【図２Ｂ】トランザクションフロー、たとえば、本開示の態様によるトランザクションを示す図である。
【図３】例示的な態様による性能解析の方法のためのフローチャートである。
【図４】本開示の態様が有利に採用されてもよいコンピューティングデバイスを示す図である。
【発明を実施するための形態】
【００１２】
本発明の態様が、本発明の特定の態様を対象とする以下の説明および関連する図面において開示される。本発明の範囲から逸脱することなく、代替の態様が考案されてもよい。追加として、本発明の関連する詳細を不明瞭にしないように、本発明のよく知られている要素は、詳細には説明しないかまたは省略される。
【００１３】
「例示的」という語は、本明細書では「例、事例、または例示としての働きをすること」を意味するために使用される。本明細書で「例示的」として説明する任意の態様は、必ずしも他の態様よりも好ましいまたは有利であると解釈されるべきではない。同様に、「本発明の態様」という用語は、本発明のすべての態様が、説明する特徴、利点、または動作モードを含むことを必要としない。
【００１４】
本明細書で使用する用語は、特定の態様のみを説明する目的のためのものであり、本発明の態様の限定であることを意図しない。本明細書で使用する単数形"a"、"an"、および"the"は、文脈が別段明確に示さない限り複数形も含むものとする。さらに、「備える(comprises)」、「備えること(comprising)」、「含む(includes)」、および/または「含むこと(including)」という用語が、本明細書で使用されるとき、述べられた特徴、整数、ステップ、動作、要素、および/または構成要素の存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除しないことが理解されよう。
【００１５】
さらに、多くの態様が、たとえば、コンピューティングデバイスの要素によって実行されるべき、アクションのシーケンスに関して説明される。本明細書で説明する様々なアクションが、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって、1つまたは複数のプロセッサにより実行されたプログラム命令によって、あるいは両方の組合せによって実行できることが認識されよう。追加として、本明細書で説明するアクションのこれらのシーケンスは、実行時に、関連するプロセッサに本明細書で説明する機能を実行させることになる、コンピュータ命令の対応するセットを記憶した、任意の形態のコンピュータ可読記憶媒体内で完全に具現化されると見なすことができる。したがって、本発明の様々な態様は、いくつかの異なる形態で具現化されてもよく、それらのすべてが、請求する主題の範囲内に入ることが企図されている。加えて、本明細書で説明する態様の各々に対して、任意のそのような態様の対応する形態が、たとえば、説明するアクションを実行する「ように構成される論理」として本明細書で説明されることがある。
【００１６】
本開示の例示的な態様では、トランザクションが処理システムを通って進行するときにトランザクションの性能を監視および解析するための能力が提供される。監視されるべき特定のトランザクションを(たとえば、トランザクションが、少なくとも指定された回数だけノードにおいて観測されることに基づいて)識別するために使用できるパフォーマンスカウンタが、処理システムの選択されたノードに設けられる。識別されたトランザクションは、トレースタグ識別子を用いてタグ付けすることができる。タグ付きトランザクションがノードを通過したら、タイムスタンプがタグ付きトランザクションに関連付けられる。このようにして、処理システムの様々なノードにおいてタグ付きトランザクションが出現した様々な時間が取得されることが可能であり、そのことは、タグ付きトランザクションのレイテンシおよび性能への見識をもたらす。
【００１７】
次に図1を参照しながら、例示的な態様に従って構成される処理システム100が説明される。図1は、処理システム100の概略図を示す。処理システム100は、たとえば、任意の専用または汎用のシステムオンチップ(SoC)であってもよい。処理システム100は、図示のように、1つまたは複数のコア102a〜nを備えてよい。コア102a〜nは、中央処理装置(CPU)、デジタル信号プロセッサ(DSP)、汎用プロセッサ(GPU)、入力/出力デバイス、インターフェースデバイスなどの、任意のエージェント、プロセッサ、またはコンピューティングデバイスであってよい。コア102a〜nのうちのいくつかは、キャッシュ104a〜mとして代表的に図示した、1つまたは複数のキャッシュおよび/または他のローカルメモリデバイスを有してもよい。コア102a〜n、および適用可能な場合、キャッシュ104a〜mは、システムバスまたはインターコネクト106を通じて互いにかつメインメモリ108に結合されてもよい。上記で説明した様々な構成要素の間の特定の構成および相互接続は、処理システム100の「システムファブリック」と呼ばれることがある。処理システム100の様々な構成要素の網羅的な詳細は本明細書で提供されないが、本開示と密接な関係がある重要な態様が、図示したようなシステムファブリックを用いて説明される。
【００１８】
より詳細には、異なるソースと宛先との間の様々なコマンドに応答してもよい数多くのトランザクションが、処理システム100のシステムファブリックを通って進行してもよい。これらのトランザクションのうちの特定のトランザクションを識別するとともにそれらの性能を監視することが望ましい場合がある。さらに、トランザクションの起点および宛先に関係するロケーション情報を決定することが望ましい場合がある。この目的で、1つまたは複数のパフォーマンスカウンタが、システムファブリック内の選択されたノードまたは入口点(および/または、出口点)に設けられる。パフォーマンスカウンタは、任意の特定の1つまたは複数のトランザクションに固有でなくてよい、全体的なレイテンシ、平均スループットなどの一般的なシステムメトリックを測定するために、いくつかの処理システムにおいてすでに利用可能な場合がある。したがって、ノードのうちのいくつかにおいて、追加のハードウェアを背負い込むことなく、先在するパフォーマンスカウンタが展開または再利用されることが可能である。特定のトランザクションの性能は、例示的な態様におけるパフォーマンスカウンタを使用してこれらのノードにおいて監視することができ、したがって、トランザクションがそこで監視されるノードは、本明細書ではトレースポイントとも呼ばれる。
【００１９】
引き続き図1を参照すると、例示的なトレースポイントA〜Dが特に識別され、それぞれ、参照番号110a〜dに関連付けられる。トレースポイントA〜D 110a〜dは、(たとえば、図2A〜図2Bを参照しながらさらに説明するハードウェアカウンタとして実装される)1つまたは複数のパフォーマンスカウンタを含むことができる。図1に示すように、トレースポイントA 110aは、コア102aとキャッシュ104aとの間に位置することができ、コア102aからキャッシュ104aに発行されるコマンド(たとえば、ロード/ストアコマンド)は、たとえば、トレースポイントA 110aを通過してもよい。トレースポイントB 110bは、キャッシュ104aとインターコネクト106との間に位置することができ、キャッシュ104aにおいてミスするコマンドは、たとえば、トレースポイントB 110bを通過してもよい。トレースポイントC 110cは、インターコネクト106とメインメモリ108との間に位置することができ、インターコネクト106からメインメモリ108に転送されるコマンドは、たとえば、トレースポイントC 110cを通過してもよい。トレースポイントD 110dも、トレースポイントC 110cに対する方向とは逆の方向で、たとえば、ネットワークまたはバス上でインターコネクト106とメインメモリ108との間に位置してもよく、その結果、メモリ108からインターコネクト106に戻されるトランザクション(たとえば、ロード要求に対応するデータ)は、トレースポイントD 110dを通過してもよい。例示的なトレースポイントA〜D 110a〜dを通過するときに特定のトランザクションを識別するとともにそれらを監視することが、次に図2Aを参照しながら説明される。
【００２０】
図2Aは、トレースポイントA〜D 110a〜dを通過するときの、特定のトランザクション200のフローについての概略図を示す。トレースポイントA 110aの分解図が図2Aに示される。残りのトレースポイントB〜D 110b〜dは同様に実装することができ、またはそれらの実装形態は、(いくつかのトレースポイントがパフォーマンスカウンタを実装してもよく、一方、いくつかのトレースポイントも同様に、性能監視のためでなくトレースするためだけに設計されてもよいことを念頭に置きながら)個々のトレースポイントがそのために設計される特定の目的に適合するように修正することができる。トレースポイントAにおいて、トランザクション200が検出されると信号検出203がアサートされる。トランザクション200は、トランザクション200の任意の属性(たとえば、アドレス、演算コード(オペコード)、モード、トランザクションタイプなど)に基づいて検出することができる。パフォーマンスカウンタ204はハードウェアカウンタを含むことができ、ハードウェアカウンタは、信号検出203がアサートされるたびに、すなわち、トレースポイントAにおいてトランザクション200が検出されるたびにインクリメントされて、カウント値205を与えることができる。カウント値205は、しきい値比較器206において、あらかじめ選択されたしきい値(図において明示的に識別されない)と比較される。しきい値は、どのトランザクションが監視されるべきであるのかを決定するために使用される任意の好適なメトリックに基づいてよい。トランザクション200がしきい値回数よりも多く観測される場合、すなわち、カウント値205がしきい値よりも大きい場合、しきい値比較器206はトリガ211をアサートする。トリガ211は、トレースタグ付け論理208をトリガするかまたはトレースタグ付け論理208にトランザクション200をタグ付けさせる、制御信号である。このようにしてトランザクション200をタグ付けすることによって、トランザクション200は、監視されるべきトランザクションとして識別される。
【００２１】
カウント値205がしきい値よりも大きいときにトリガ211をアサートすることに加えて、しきい値比較器206はリセット207もアサートする。リセット207は、パフォーマンスカウンタ204をリセットするために、より詳細には、カウント値205を0にリセットするために使用される、リセット信号である。トレースタグ付け論理208にトランザクションをタグ付けさせるためにトリガ211がアサートされるたびにカウント値205を0にリセットすることによって、上記のプロセスは繰り返されてもよく、カウント値205がリセットから開始してしきい値を超えるたびに、トランザクション200は周期的にタグ付けされてもよい。
【００２２】
上述のように、トリガ211がアサートされると、トレースタグ付け論理208は、トランザクション200がトレースポイントB〜D 110b〜dなどの1つまたは複数の他のトレースポイントを通過するときに(たとえば、図1の処理システム100において)監視されるべきトランザクションとしてトランザクション200を識別するために、トレースタグ識別子209をトランザクション200に追加する。タグ識別子209は、トランザクション200を識別するために使用されるタグ、すなわち、ビットのシーケンスを備えることができる。トランザクション200は、トランザクション200が複数のフェーズに分割されても、システムファブリックの残部を通って、たとえば、トレースポイントB〜D 110b〜dを通って流れるとき、タグ識別子209を搬送する。トレースポイントA〜D 110a〜dの各々はまた、その識別子に基づいてトランザクションを検出することができる。たとえば、トレースポイントB〜D 110b〜dは、トランザクション200が処理システム200を通って流れるとき、タグ識別子209に基づいて、トランザクション200が観測されたことを検出してもよい。トレースポイントにおいてトランザクション200が検出される時点が識別され、対応するタイムスタンプがその時点に関連付けられる。タイムスタンプは、トランザクションの識別子、たとえば、トランザクション200用のタグ識別子209と一緒に、トレースポイントA〜D 110a〜dの各々の中に記憶されてもよい。
【００２３】
一例では、トレースポイントA〜D 110a〜dの各々は、共通クロック、または処理システム100のすべてのトレースポイントにわたって同期したクロックで動作させられてよい。共通クロックまたは同期したクロックに基づいて、トランザクション200が観測される時点が決定されることが可能である。したがって、トレースポイントB〜D 110b〜dの各々において、トランザクション200が観測される時点に基づいてタイムスタンプが生成され、タイムスタンプはログ記録される。
【００２４】
組込みトレースマクロセル(ETM)などのトレーシングメカニズムが、たとえば、プロセッサ上で実行中のソフトウェアをデバッグするために当技術分野で知られている。トレーシングメカニズムは、ソフトウェアの実行フローについての情報をリアルタイムで取り込むことを伴ってよい。例示的な態様では、たとえば、そのようなトレーシングメカニズムによる使用のためのトレース情報は、処理システム100を通るトランザクションのフローに関連付けられたタイムスタンプから取得することができる。たとえば、トランザクション200のためのトレース情報は、様々なトレースポイントA〜D 110a〜dにおいてトランザクション200が観測されるタイムスタンプから取得することができる。このトレース情報は、当技術分野で知られているようなETMまたは外部のトレース解析器などのトレーシングメカニズムに提供することができる。さらに、トランザクションに関連するレイテンシなどの態様も、以下のセクションで説明するようにタイムスタンプから導出することができる。
【００２５】
タイムスタンプに基づいて、注目する任意の2つ以上のポイントの間で、トランザクション200に関するレイテンシが決定されることが可能である。例示的な態様では、システムファブリックにおいて利用可能なトレースポイント(たとえば、トレースポイントA〜D 110a〜d)のうちの少なくとも2つの間でのトランザクション200のレイテンシは、タイムスタンプに基づいて決定することができる。たとえば、トランザクション200がインターコネクト106からメモリ108に発行されたときに、トランザクション200がトレースポイントB 110bを通ったタイムスタンプ、およびトランザクション200(または、同様にタグ識別子209を用いてタグ付けされた、トランザクション200に対応するデータ)がメモリ108から戻されるタイムスタンプを使用すると、トランザクション200を処理するためのメモリ108のレイテンシが識別されることが可能である。同様にして、トランザクションに対する任意の他のエージェントとの間のレイテンシならびにファブリックレイテンシ(たとえば、上記の例におけるインターコネクト106とメモリ108との間でのバスのレイテンシ)が決定されることが可能である。
【００２６】
レイテンシに加えて、トランザクション200に対するエージェントからの応答に関係するトレース情報などの他のトレース情報(たとえば、当技術分野で知られているような、トランザクション200が再試行をもたらしたかどうか、ダーティ、排他的、複数のプロセッサの間で共有されるなどの、アクセスされるキャッシュラインのキャッシュ状態など)も、トレースポイントにおいて取得できることも了解されよう。さらに、様々なトレースポイントにおいてトランザクションを識別およびタグ付けすることはまた、(たとえば、コア102aからキャッシュ104aに発信するキャッシュ要求を備えるトランザクションに対してトレースポイントA 110aを通過するトランザクションの数、およびそれらのうちの、キャッシュ104aにおいてトレースポイントB 110bを通過しそこなうトランザクションの数を学習することによって)キャッシュアクセスを備えるキャッシュヒット/ミスレートなどのメトリックを導出するのを支援することができる。場合によっては、(たとえば、図2AにおけるトレースポイントA 110aを参照しながら図示および説明するように)トレースポイントにおけるタグ付けメカニズムを使用して、トランザクションが導かれるシステムファブリック上の場所に関する情報もまた識別することができる。たとえば、図1の処理システム100における複数のキャッシュ104a〜mに対して、トレースポイントA〜D 110a〜dは、上記で説明した例示的な態様に従ってトランザクションをタグ付けすることによって、処理システム100の中での消費デバイスまでのデータの近接度またはトランザクション200の消費デバイスの場所を識別するのを支援するように構成されてもよい(たとえば、キャッシュ104a〜mのうちのどれがコア102a〜nから要求されたデータを備えてよいのかが、様々なトレースポイントにおいて識別されたトランザクション200に基づいて識別することができる)。そのような近接度を決定することは、ソフトウェアまたはオペレーティングシステムが、対応する消費デバイスまたは要求デバイス(たとえば、コア102a〜n)に極めて近接して位置するように(たとえば、キャッシュ104a〜mの中の)データを編成するのを支援することができる。
【００２７】
複数のトランザクションを識別およびタグ付けするためにパフォーマンスカウンタが使用できるので、個々のトランザクションにとって専用の任期カウンタ(tenure counter)を設けることは回避することができ、したがって、注目する個々のトランザクション(たとえば、トレースポイントにおいていくつかの回数だけ観測されるトランザクション)を識別および監視するために低コストの解決策をもたらすことが了解されよう。たとえば、パフォーマンスカウンタ204から取得されたカウント値205に基づいて、指定された時間期間内にトランザクション200がトレースポイントA 110aを通って進行した回数が取得されることが可能である。同様に、タグ付きトランザクションが様々なトレースポイントを通過した回数および関連するタイムスタンプもまた取得することができる。様々なトレースポイントにおけるカウント値は、タグ付きトランザクションに対してトレースポイントによって提供されるタイムスタンプと一緒に、特定のトランザクションの帯域幅またはリソース消費をプロファイリングするために使用することができる。さらに、トレースポイントA〜D 110a〜dのうちの1つまたは複数は、トランザクション200のトレースタグ識別子209に基づいて、トランザクション200のキャッシュ状態、再試行、キャッシュヒット/ミスレートのうちの1つまたは複数を決定するように構成されてもよい。したがって、特定のトランザクションに対する再試行の数、ターゲットにされるアドレスロケーション、キャッシュ状態、サービス品質(QoS)などのメトリックは、トレースポイントA〜D 110a〜dから取得することができる。特定のトランザクションに対する所望の情報は、様々なトレースポイントの中からターゲットにされて収集できるので、(たとえば、従来のトレーシングメカニズムによってログ記録されるような)大量のデータを通じたフィルタ処理は、いくつかの態様では回避することができる。
【００２８】
たとえば、次に図2Bを参照すると、トランザクションに対するレイテンシを識別することに関する例示的な態様が図示される。図2Bは、中央処理装置(CPU)102x(たとえば、図1に示すコア102a〜nのうちの1つ)、シリアル化ポイント(POS:point-of-serialization)252、およびスヌープエージェント254を備える処理システム250(たとえば、処理システム100の一態様)を示す。当技術分野で知られているように、複数のコアが共通キャッシュまたは共通メモリなどの共通リソースを共有するとき(この図には示さず)、古くなったデータがコアによって誤って使用されないことを確実にするために、データコヒーレンシが追跡されてもよい。この目的で、1つまたは複数の他のコア102a〜nとともにリソースを共有してもよいCPU102xは、トランザクションをPOS252に送信することができ、他のコアまたは共有キャッシュをスヌープするように構成されることが可能である1つまたは複数のスヌープエージェント254にPOS252からトランザクションが提供されて、コヒーレンシ問題が存在するかどうかを判定することができる。トレースポイント(上記で説明したトレースポイントA〜D 110a〜dと類似)は、処理システム250のシステムファブリックの中の複数のポイントに設けられてもよく、特定のコマンドが、監視されるべきトランザクションとして識別されてもよい。
【００２９】
図2Bにおいて、トランザクションに関係する数多くのタイムスタンプが示される。これらのタイムスタンプは、トランザクションが観測される時点に基づいて、対応するトレースポイントによって生成されてもよく、トランザクションは、対応するタイムスタンプを使用してトレースポイントにおいてタグ付けされてもよい。たとえば、CPU102xからPOS252に発行されるコマンドは、時間t1(たとえば、時間=2ns)において、対応するトレースポイントによって提供される関連付けられたタグ識別子に基づいて識別されてもよく、コマンドは、時間t1に対応するタイムスタンプを使用してタグ付けされてもよい。時間t2(たとえば、時間=10ns)において、対応するスヌープ要求が、POS252からスヌープエージェント254に送信されてもよく、同様に、スヌープ要求は、時点t2に対応するタイムスタンプを使用してタグ付けされてもよい。時間t3(たとえば、時間=20ns)において、スヌープエージェント254はスヌープ応答を戻してもよく、スヌープ応答は、時間t3に対応するタイムスタンプを用いてタグ付けされてもよい。スヌープ応答に基づいて、時間t4(たとえば、時間=22ns)において、POS252はスヌープ動作の結果(時点t4に対応するタイムスタンプを用いてタグ付けされる)を送信してもよく、時間t5(たとえば、時間=24ns)において、POS252は、要求されたデータ(時点t5に対応するタイムスタンプを用いてタグ付けされる)をCPU102xに返送してもよい。時点t1〜t5に対応する様々なタイムスタンプを使用すると、特定のトランザクションに対して様々なエージェントの性能を決定することが可能である。たとえば、スヌープエージェント254の性能またはスヌープエージェント254のレイテンシは、時点t2、t3に対応するタイムスタンプに基づいて測定することができる(たとえば、レイテンシは、t3-t2=10nsである)。同様に、POS252のレイテンシは、結果が受信されたときとの関係を用いて時点t4およびt1に対応するタイムスタンプに基づいて(たとえば、t4-t1=20ns)、かつ/またはデータが受信されたときとの関係を用いて時点t5およびt1に対応するタイムスタンプに基づいて(たとえば、t5-t1=22ns)、観測することができる。このようにして、トランザクションは、様々なトレースポイントにおけるそのタグに基づいて識別することができ、様々なトレースポイントにおけるタイムスタンプは、レイテンシなどの情報を、またそれに対応してトランザクションの性能を決定するために使用することができる。
【００３０】
したがって、例示的な態様が、本明細書で開示するプロセス、機能、および/またはアルゴリズムを実行するための様々な方法を含むことが了解されよう。たとえば、図3は、処理システムの性能を解析する方法300を示す。
【００３１】
たとえば、ブロック302に示すように、方法300は、処理システムの第1のトレースポイントにおいて監視されるべきトランザクションとして第1のトランザクションを識別すること(たとえば、トレースポイントA 110aにおいて監視されるべきトランザクションとしてトランザクション200を識別すること)を備える。場合によっては、監視されるべきトランザクションとして第1のトランザクションを識別することは、(たとえば、パフォーマンスカウンタ204において第1のトランザクションの属性に基づいて第1のトランザクションを検出することによって、ここで属性は、第1のトランザクションのアドレス、演算コード、モード、またはタイプのうちの少なくとも1つを備えることができる)第1のトランザクションを検出すること、(たとえば、トレースポイントA 110aの中のパフォーマンスカウンタ204によって、トランザクション200が観測された回数をカウントすることによって)第1のトランザクションが第1のトレースポイントにおいて少なくともしきい値回数だけ検出されたと判定すること、および第1のトランザクションが検出された回数をしきい値と(たとえば、しきい値比較器206において)比較することに基づいてよい。
【００３２】
ブロック304は、第1のトレースタグ識別子(たとえば、タグ識別子209)を第1のトランザクションに関連付けることを備える。いくつかの態様では、方法300は、第1のトレースポイントにおいて第1のトランザクションが少なくともしきい値回数だけ検出されたときにパフォーマンスカウンタをリセットすること(たとえば、信号、リセット207を使用して)をさらに含んでよい。
【００３３】
ブロック306は、処理システムの1つまたは複数の他のトレースポイントにおいて第1のトランザクションを第1のトレースタグ識別子に基づいて識別すること(たとえば、トレースポイントB〜D 110b〜dにおいてタグ識別子209を使用してトランザクション200を検出すること)を備える。いくつかの態様では、方法300は、第1のトレースポイントおよび1つまたは複数の他のトレースポイントにおいて第1のトランザクションが識別されるタイムスタンプを決定すること(たとえば、タイムスタンプは、対応するトレースポイントにおいて第1のトランザクションが観測される時点に基づいて生成または決定されてもよい)と、第1のトランザクションに対するトレース情報をタイムスタンプから決定することとをさらに含んでよい。さらに、第1のトレースポイントおよび1つまたは複数の他のトレースポイントとしての、少なくとも2つのトレースポイントの間での第1のトランザクションのレイテンシも、タイムスタンプに基づいて(たとえば、図2Bを参照しながら説明したように、2つのタイムスタンプの間の差分に基づいて)決定することができる。
【００３４】
いくつかの例示的な態様では、第1のトレースポイント(たとえば、トレースポイントA 110a)は、処理システム100のシステムファブリックに結合されるエージェント(たとえば、コア102a)の入口点に位置する。方法300は、第1のトレースタグ識別子に基づいて処理システムの中での第1のトランザクションの消費デバイス(たとえば、コア102aまたはメインメモリ108)の場所を決定することをさらに含んでよい。例示的な態様はまた、第1のトレースタグ識別子に基づいて第1のトランザクションのキャッシュ状態、再試行、キャッシュヒット/ミスレートのうちの1つまたは複数を決定することを含むことができ、第1のトランザクションはキャッシュアクセスを備える。
【００３５】
例示的な態様が、本明細書で説明する機能を実行するための様々な手段を含むことも了解されよう。たとえば、本装置(たとえば、処理システム100)は、第1のトレースするための手段において監視されるべきトランザクションとして第1のトランザクションを識別するための手段(たとえば、パフォーマンスカウンタ204を備えるトレースポイントA 110a)と、第1のトレースするための手段において第1のトレースタグ識別子を第1のトランザクションに関連付けるための手段(たとえば、トレースタグ付け論理208)と、処理システムの中の1つまたは複数の他のトレースするための手段において第1のトランザクションを第1のトレースタグ識別子に基づいて識別するための手段(たとえば、そのタグ識別子209を使用してトランザクション200を検出または識別するためのトレースポイントB〜D 110b〜dの中の類似のパフォーマンスカウンタまたは他の手段)とを含むことができる。
【００３６】
本装置は、第1のトレースするための手段において第1のトランザクションを少なくともしきい値回数だけ検出するための手段(たとえば、しきい値比較器206)をさらに含むことができる。本装置はまた、第1のトレースするための手段および1つまたは複数の他のトレースするための手段において第1のトランザクションが識別されるタイムスタンプを決定するための手段(たとえば、様々なトレースポイントA〜D 110a〜dにおいて第1のトランザクションが識別される時点を提供するための共通クロックまたは同期したクロック、ここでタイムスタンプは、その時点に対応するように論理(図示せず)によって生成または決定される)を含むことができる。本装置はまた、第1のトランザクションに対するトレース情報をタイムスタンプから決定するための手段を含んでよい(たとえば、様々なトレースポイントA〜Dにおいてトランザクション200が識別されるタイムスタンプをログ記録するために記憶媒体が提供されることが可能であり、ここでログ記録されるタイムスタンプは、トレーシングメカニズムに提供されてもよい)。いくつかの態様では、本装置は、タイムスタンプに基づいて、第1のトレースするための手段および1つまたは複数の他のトレースするための手段としての少なくとも2つのトレースするための手段の間での第1のトランザクションのレイテンシを決定するための手段(たとえば、明示的には示されていない、対応する2つのトレースポイントにおいてトランザクション200が観測された2つのタイムスタンプの間の差分を決定するための論理)を含むことができる。
【００３７】
本開示の例示的な態様が利用されてもよい例示的な装置が、次に図4に関して説明される。図4は、コア102a〜nのうちの1つ、詳細には、たとえば、図1を参照しながら説明したコア102aとして構成されてもよいプロセッサ402を含む、コンピューティングデバイス400のブロック図を示す。それに対応して、図1に関して図示および説明したキャッシュ104a、インターコネクト106、および関連するトレースポイントA〜D 110a〜dもまた示される。図4のメモリ410は、図1のメインメモリ108と同様に構成されてもよい。図1に示す処理システム100の数多くの他の詳細が図4に適用可能であってよいが、これらの詳細は明快のために図4では省略されており、それらが図1および図2A〜図2Bを参照しながら説明したものと同様に構成されてもよいことが理解されよう。コンピューティングデバイス400は、例示的な態様における図3の方法300を実行するように構成されてもよい。
【００３８】
図4において、プロセッサ402は、(たとえば、プロセッサ402とメモリ410との間の他のインターコネクトも可能であってよいことを念頭に置きながら、キャッシュ104aおよびインターコネクト106を介して)メモリ410に通信可能に結合されるように示される。図4はまた、プロセッサ402およびディスプレイ428に結合されるディスプレイコントローラ426を示す。
【００３９】
いくつかの態様では、図4は、破線で示されたいくつかのオプションのブロックを含んでよい。たとえば、コンピューティングデバイス400は、随意に、プロセッサ402に結合されるコーダ/デコーダ(コーデック)434(たとえば、オーディオおよび/またはボイスコーデック)、コーデック434に結合されるスピーカ436およびマイクロフォン438、ならびにワイヤレスアンテナ442およびプロセッサ402に結合される(モデムを含んでよい)ワイヤレスコントローラ440を含んでよい。
【００４０】
上述のオプションのブロックのうちの1つまたは複数が存在する特定の態様では、プロセッサ402、ディスプレイコントローラ426、メモリ410、コーデック434、およびワイヤレスコントローラ440は、システムインパッケージデバイスまたはシステムオンチップデバイス422の中に含まれてもよい。入力デバイス430、電源444、ディスプレイ428、スピーカ436、マイクロフォン438、ワイヤレスアンテナ442、および電源444は、システムオンチップデバイス422の外部にあってもよく、インターフェースまたはコントローラなどの、システムオンチップデバイス422の構成要素に結合されてもよい。
【００４１】
図4は、概して、コンピューティングデバイスを示すが、プロセッサ402およびメモリ410がまた、セットトップボックス、音楽プレーヤ、サーバ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、固定位置データユニット、コンピュータ、ラップトップ、タブレット、通信デバイス、モバイルフォン、または他の類似のデバイスに統合されてもよいことに留意されたい。
【００４２】
当業者は、情報および信号が、様々な異なる技術および技法のいずれかを使用して表されてもよいことを了解されよう。たとえば、上記の説明全体にわたって言及されることがあるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表されてもよい。
【００４３】
さらに、当業者は、本明細書で開示する態様に関連して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装されてもよいことを了解されよう。ハードウェアとソフトウェアとのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、上記では概してそれらの機能に関して説明された。そのような機能が、ハードウェアとして実装されるのか、それともソフトウェアとして実装されるのかは、特定の適用例および全体的なシステムに課された設計制約によって決まる。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装してもよいが、そのような実装決定は、本発明の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【００４４】
本明細書で開示する態様に関して説明した方法、シーケンス、および/またはアルゴリズムは、直接ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、またはその2つの組合せで具現化されてもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体の中に存在してもよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取ることができ、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であってよい。
【００４５】
したがって、本発明の態様は、処理システムの中のトランザクションの性能解析のための方法を具現化するコンピュータ可読媒体を含むことができる。したがって、本発明は例示された例に限定されず、本明細書で説明した機能を実行するためのいかなる手段も本発明の態様に含まれる。
【００４６】
上記の開示は本発明の例示的な態様を示すが、添付の特許請求の範囲によって規定されるような本発明の範囲から逸脱することなく、本明細書において様々な変更および変形を加えることができることに留意されたい。本明細書で説明した本発明の態様による方法クレームの機能、ステップ、および/またはアクションは、任意の特定の順序で実行される必要はない。さらに、本発明の要素は、単数形で記載および特許請求されることがあるが、単数形への限定が明示的に述べられない限り、複数形が企図される。
【符号の説明】
【００４７】
100  処理システム
102  コア
104  キャッシュ
106  システムバスまたはインターコネクト
108  メインメモリ
110  トレースポイント
200  トランザクション
203  信号検出
204  パフォーマンスカウンタ
205  カウント値
206  しきい値比較器
207  リセット
208  トレースタグ付け論理
209  タグ識別子
211  トリガ
250  処理システム
252  シリアル化ポイント
254  スヌープエージェント
400  コンピューティングデバイス
402  プロセッサ
410  メモリ
422  システムオンチップデバイス
426  ディスプレイコントローラ
428  ディスプレイ
430  入力デバイス
434  コーデック
436  スピーカ
438  マイクロフォン
440  ワイヤレスコントローラ
442  ワイヤレスアンテナ
444  電源
【図１】
2019511784.tif 000003
【図２Ａ】
2019511784.tif 000004
【図２Ｂ】
2019511784.tif 000005
【図３】
2019511784.tif 000006
【図４】
2019511784.tif 000007
【手続補正書】
【提出日】平成30年10月2日(2018.10.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
処理システムの性能を解析する方法であって、
第1のトレースポイントにおいて少なくともしきい値回数だけ第1のトランザクションを検出したことに基づいて、前記処理システムの前記第1のトレースポイントにおいて監視されるべきトランザクションとして前記第1のトランザクションを識別するステップと、
前記第1のトレースポイントにおいて第1のトレースタグ識別子を前記第1のトランザクションに関連付けるステップと、
前記第1のトレースタグ識別子に基づいて前記処理システムの1つまたは複数の他のトレースポイントにおいて前記第1のトランザクションを識別するステップと、
前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントにおいて前記第1のトランザクションが識別されるタイムスタンプを決定するステップと、
前記タイムスタンプから前記第1のトランザクションに対するトレース情報を決定するステップと
を備える、方法。
【請求項２】
前記第1のトランザクションの属性に基づいて前記第1のトランザクションを検出するステップを備える、請求項1に記載の方法。
【請求項３】
前記属性が、前記第1のトランザクションのアドレス、演算コード、モード、またはタイプのうちの少なくとも1つを備える、請求項2に記載の方法。
【請求項４】
前記第1のトレースポイントにおいて少なくとも前記しきい値回数だけ前記第1のトランザクションを検出するステップが、前記第1のトレースポイントに設けられたパフォーマンスカウンタにおいて、前記第1のトレースポイントにおいて前記第1のトランザクションが検出された回数をカウントするステップと、前記第1のトランザクションが検出された前記回数をしきい値と比較するステップとを備える、請求項1に記載の方法。
【請求項５】
前記第1のトレースポイントにおいて前記第1のトランザクションが少なくとも前記しきい値回数だけ検出されたときに前記パフォーマンスカウンタをリセットするステップをさらに備える、請求項4に記載の方法。
【請求項６】
前記タイムスタンプに基づいて、前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントとしての少なくとも2つのトレースポイントの間での前記第1のトランザクションのレイテンシを決定するステップをさらに備える、請求項1に記載の方法。
【請求項７】
前記第1のトレースポイントが、前記処理システムのシステムファブリックに結合されたエージェントの入口点に位置する、請求項1に記載の方法。
【請求項８】
前記第1のトレースタグ識別子に基づいて、前記処理システムの中での前記第1のトランザクションの消費デバイスの場所を決定するステップをさらに備える、請求項1に記載の方法。
【請求項９】
前記第1のトレースタグ識別子に基づいて、前記第1のトランザクションのキャッシュ状態、再試行、およびキャッシュヒット/ミスレートのうちの1つまたは複数を決定するステップをさらに備え、前記第1のトランザクションがキャッシュアクセスを備える、請求項1に記載の方法。
【請求項１０】
処理システムであって、
第1のトレースポイントであって、
前記第1のトレースポイントにおいて第1のトランザクションが検出された回数をカウントするように構成されるパフォーマンスカウンタと、
前記第1のトレースポイントにおいて前記第1のトランザクションが検出された前記回数をしきい値と比較するように構成されるしきい値比較器であって、前記第1のトレースポイントは、前記第1のトレースポイントにおいて第1のトランザクションが少なくともしきい値回数だけ検出された場合、監視されるべきトランザクションとして前記第1のトランザクションを識別するように構成される、しきい値比較器と
を備える第1のトレースポイントと、
第1のトレースタグ識別子を前記第1のトランザクションに関連付けるように構成される、前記第1のトレースポイントに設けられたトレースタグ付け論理であって、前記しきい値比較器は、前記第1のトレースポイントにおいて前記第1のトランザクションが検出された前記回数が前記しきい値よりも多い場合、前記第1のトレースタグ識別子を前記第1のトランザクションに関連付けるために前記トレースタグ付け論理へのトリガを生成するように構成される、トレースタグ付け論理と、
前記第1のトレースタグ識別子に基づいて前記第1のトランザクションを識別するように構成される、前記処理システムの1つまたは複数の他のトレースポイントと
を備え、
前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントが、対応する前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントにおいて前記第1のトランザクションが識別されるタイムスタンプを決定し、かつ前記タイムスタンプから前記第1のトランザクションに対するトレース情報を決定するように構成される、
処理システム。
【請求項１１】
前記しきい値比較器は、前記第1のトレースポイントにおいて前記第1のトランザクションが検出された前記回数が前記しきい値よりも多い場合、前記パフォーマンスカウンタをリセットするためのリセット信号を生成するようにさらに構成される、請求項10に記載の処理システム。
【請求項１２】
前記パフォーマンスカウンタが、前記第1のトランザクションの属性に基づいて前記第1のトランザクションを検出するように構成され、前記属性が、前記第1のトランザクションのアドレス、演算コード、モード、またはタイプのうちの少なくとも1つを備える、請求項10に記載の処理システム。
【請求項１３】
前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントの少なくとも2つのトレースポイントが、前記タイムスタンプに基づいて前記少なくとも2つのトレースポイントの間での前記第1のトランザクションのレイテンシを決定するように構成される、請求項10に記載の処理システム。
【請求項１４】
請求項1から9のいずれか一項に記載の方法を実行するための手段を備える、装置。
【請求項１５】
プロセッサによって実行されたとき、前記プロセッサに、請求項1から9のいずれか一項に記載の方法を実行させるコードを備える、非一時的コンピュータ可読記憶媒体。
【手続補正書】
【提出日】平成30年11月26日(2018.11.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
処理システムの性能を解析する方法であって、
第1のトレースポイントにおいて少なくともしきい値回数だけ第1のトランザクションを検出したことに基づいて、前記処理システムの前記第1のトレースポイントにおいて監視されるべきトランザクションとして前記第1のトランザクションを識別するステップであって、前記第1のトレースポイントに設けられたパフォーマンスカウンタにおいて、前記第1のトレースポイントにおいて前記第1のトランザクションが検出された回数をカウントするステップと、前記第1のトランザクションが検出された前記回数をしきい値と比較するステップとを備える、ステップと、
前記第1のトレースポイントにおいて第1のトレースタグ識別子を前記第1のトランザクションに関連付けるステップと、
前記第1のトレースタグ識別子に基づいて前記処理システムの1つまたは複数の他のトレースポイントにおいて前記第1のトランザクションを識別するステップと、
前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントにおいて前記第1のトランザクションが識別されるタイムスタンプを決定するステップと、
前記タイムスタンプから前記第1のトランザクションに対するトレース情報を決定するステップと
を備える、方法。
【請求項２】
前記第1のトランザクションの属性に基づいて前記第1のトランザクションを検出するステップを備える、請求項1に記載の方法。
【請求項３】
前記属性が、前記第1のトランザクションのアドレス、演算コード、モード、またはタイプのうちの少なくとも1つを備える、請求項2に記載の方法。
【請求項４】
前記第1のトレースポイントにおいて前記第1のトランザクションが少なくとも前記しきい値回数だけ検出されたときに前記パフォーマンスカウンタをリセットするステップをさらに備える、請求項1に記載の方法。
【請求項５】
前記タイムスタンプに基づいて、前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントとしての少なくとも2つのトレースポイントの間での前記第1のトランザクションのレイテンシを決定するステップをさらに備える、請求項1に記載の方法。
【請求項６】
前記第1のトレースポイントが、前記処理システムのシステムファブリックに結合されるエージェントの入口点に位置する、請求項1に記載の方法。
【請求項７】
前記第1のトレースタグ識別子に基づいて、前記処理システムの中での前記第1のトランザクションの消費デバイスの場所を決定するステップをさらに備える、請求項1に記載の方法。
【請求項８】
前記第1のトレースタグ識別子に基づいて、前記第1のトランザクションのキャッシュ状態、再試行、およびキャッシュヒット/ミスレートのうちの1つまたは複数を決定するステップをさらに備え、前記第1のトランザクションがキャッシュアクセスを備える、請求項1に記載の方法。
【請求項９】
処理システムであって、
第1のトレースポイントであって、
前記第1のトレースポイントにおいて第1のトランザクションが検出された回数をカウントするように構成されるパフォーマンスカウンタと、
前記第1のトレースポイントにおいて前記第1のトランザクションが検出された前記回数をしきい値と比較するように構成されるしきい値比較器であって、前記第1のトレースポイントは、前記第1のトレースポイントにおいて前記第1のトランザクションが少なくともしきい値回数だけ検出された場合、監視されるべきトランザクションとして前記第1のトランザクションを識別するように構成される、しきい値比較器と
を備える第1のトレースポイントと、
第1のトレースタグ識別子を前記第1のトランザクションに関連付けるように構成される、前記第1のトレースポイントに設けられたトレースタグ付け論理であって、前記しきい値比較器は、前記第1のトレースポイントにおいて前記第1のトランザクションが検出された前記回数が前記しきい値よりも多い場合、前記第1のトレースタグ識別子を前記第1のトランザクションに関連付けるために前記トレースタグ付け論理へのトリガを生成するように構成される、トレースタグ付け論理と、
前記第1のトレースタグ識別子に基づいて前記第1のトランザクションを識別するように構成される、前記処理システムの1つまたは複数の他のトレースポイントと
を備え、
前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントが、対応する前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントにおいて前記第1のトランザクションが識別されるタイムスタンプを決定し、かつ前記タイムスタンプから前記第1のトランザクションに対するトレース情報を決定するように構成される、
処理システム。
【請求項１０】
前記しきい値比較器は、前記第1のトレースポイントにおいて前記第1のトランザクションが検出された前記回数が前記しきい値よりも多い場合、前記パフォーマンスカウンタをリセットするためのリセット信号を生成するようにさらに構成される、請求項9に記載の処理システム。
【請求項１１】
前記パフォーマンスカウンタが、前記第1のトランザクションの属性に基づいて前記第1のトランザクションを検出するように構成される、請求項9に記載の処理システム。
【請求項１２】
前記属性が、前記第1のトランザクションのアドレス、演算コード、モード、またはタイプのうちの少なくとも1つを備える、請求項11に記載の処理システム。
【請求項１３】
前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントの少なくとも2つのトレースポイントが、前記タイムスタンプに基づいて前記少なくとも2つのトレースポイントの間での前記第1のトランザクションのレイテンシを決定するように構成される、請求項9に記載の処理システム。
【請求項１４】
前記第1のトレースポイントが、前記処理システムのシステムファブリックに結合されるエージェントの入口点に位置する、請求項9に記載の処理システム。
【請求項１５】
前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントのうちの1つまたは複数が、前記第1のトレースタグ識別子に基づいて前記処理システムの中での前記第1のトランザクションの消費デバイスの場所を決定するように構成される、請求項9に記載の処理システム。
【請求項１６】
前記第1のトランザクションがキャッシュアクセスを備え、前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントのうちの1つまたは複数が、前記第1のトレースタグ識別子に基づいて前記第1のトランザクションのキャッシュ状態、再試行、およびキャッシュヒット/ミスレートのうちの1つまたは複数を決定するように構成される、請求項9に記載の処理システム。
【請求項１７】
セットトップボックス、音楽プレーヤ、サーバ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、固定位置データユニット、コンピュータ、ラップトップ、タブレット、通信デバイス、およびモバイルフォンからなるグループの中から選択されたデバイスに統合される、請求項13に記載の処理システム。
【請求項１８】
装置であって、
第1のトレースするための手段において少なくともしきい値回数だけ第1のトランザクションを検出するための手段に基づいて、処理システムの中の第1のトレースするための手段において監視されるべきトランザクションとして第1のトランザクションを識別するための手段であって、前記検出するための手段が、
前記第1のトレースするための手段に設けられた、前記第1のトレースするための手段において前記第1のトランザクションが検出された回数をカウントするための手段と、
前記第1のトランザクションが検出された前記回数をしきい値と比較するための手段と
を備える、手段と、
前記第1のトレースするための手段において第1のトレースタグ識別子を前記第1のトランザクションに関連付けるための手段と、
前記第1のトレースタグ識別子に基づいて前記処理システムの中の1つまたは複数の他のトレースするための手段において前記第1のトランザクションを識別するための手段と、
前記第1のトレースするための手段および前記1つまたは複数の他のトレースするための手段において前記第1のトランザクションが識別されるタイムスタンプを決定するための手段と、
前記タイムスタンプから前記第1のトランザクションに対するトレース情報を決定するための手段と
を備える、装置。
【請求項１９】
前記タイムスタンプに基づいて、前記第1のトレースするための手段および前記1つまたは複数の他のトレースするための手段としての少なくとも2つのトレースするための手段の間での前記第1のトランザクションのレイテンシを決定するための手段をさらに備える、請求項18に記載の装置。
【請求項２０】
プロセッサによって実行されたとき、前記プロセッサに処理システムの性能を解析する動作を実行させるコードを備える、非一時的コンピュータ可読記憶媒体であって、
第1のトレースポイントにおいて少なくともしきい値回数だけ第1のトランザクションを検出したことに基づいて、前記処理システムの第1のトレースポイントにおいて監視されるべきトランザクションとして第1のトランザクションを識別するためのコードであって、前記第1のトレースポイントにおいて前記第1のトランザクションが検出された回数をカウントするためのコードを備える、コードと、
前記第1のトランザクションが検出された前記回数をしきい値と比較するためのコードと、
前記第1のトレースポイントにおいて第1のトレースタグ識別子を前記第1のトランザクションに関連付けるためのコードと、
前記第1のトレースタグ識別子に基づいて前記処理システムの1つまたは複数の他のトレースポイントにおいて前記第1のトランザクションを識別するためのコードと、
前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントにおいて前記第1のトランザクションが識別されるタイムスタンプを決定するためのコードと、
前記タイムスタンプから前記第1のトランザクションに対するトレース情報を決定するためのコードと
を備える、非一時的コンピュータ可読記憶媒体。
【請求項２１】
前記タイムスタンプに基づいて、前記第1のトレースポイントおよび前記1つまたは複数の他のトレースポイントとしての少なくとも2つのトレースポイントの間での前記第1のトランザクションのレイテンシを決定するためのコードをさらに備える、請求項20に記載の非一時的コンピュータ可読記憶媒体。
【請求項２２】
前記第1のトレースタグ識別子に基づいて、前記処理システムの中での前記第1のトランザクションの消費デバイスの場所を決定するためのコードをさらに備える、請求項20に記載の非一時的コンピュータ可読記憶媒体。
【請求項２３】
前記第1のトレースタグ識別子に基づいて、前記第1のトランザクションのキャッシュ状態、再試行、およびキャッシュヒット/ミスレートのうちの1つまたは複数を決定するためのコードをさらに備え、前記第1のトランザクションがキャッシュアクセスを備える、請求項20に記載の非一時的コンピュータ可読記憶媒体。
【国際調査報告】
2019511784.tif 000008
2019511784.tif 000009
2019511784.tif 000010