(57)【特許請求の範囲】
【請求項１】
マルチ・スレッド・プロセッサの負荷を判定する方法であって、
少なくとも１つの予め定められた期間中、前記マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドにおいて、少なくとも１つのアイドル・タスクを実行することと、前記アイドル・タスクは、前記少なくとも１つのスレッドにおいて、他の何れのタスクも実行されていない場合に、ループおよび実行するように構成されている、
前記少なくとも１つの予め定められた期間において、前記少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行を判定することと、
前記少なくとも１カウントであるループ実行数に基づいて、少なくとも、前記マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドの負荷を判定することと、
測定された前記負荷に基づいて、前記マルチ・スレッド・プロセッサのためのパフォーマンス・プロファイルを決定することと、
予め定められたサンプリング期間においてすべてのスレッドをアイドルにしているマルチ・スレッド・プロセッサのマルチ・スレッド・プロセッサ・サイクル数を判定することと、
前記予め定められたサンプリング期間中に生じるマルチ・スレッド・プロセッサ・サイクルの合計数を判定することと、
前記すべてのスレッドをアイドルにしているマルチ・スレッド・プロセッサの、前記判定されたマルチ・スレッド・プロセッサ・サイクル数の、前記マルチ・スレッド・プロセッサ・サイクルの、前記判定された合計数に対する比に基づいて、前記マルチ・スレッド・プロセッサのパフォーマンス・プロファイルを導出することと
を備える方法。
【請求項２】
前記マルチ・スレッド・プロセッサのうちの１または複数のスレッドのおのおのについて、前記パフォーマンス・プロファイルを表示すること、をさらに備える請求項１に記載の方法。
【請求項３】
前記少なくとも１つの予め定められた期間において、少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行を判定することはさらに、
複数の予め定められた期間において、各予め定められた期間中、１または複数のスレッドにおいておのおの実行されているアイドル・タスクに関する各カウントのためのエントリを含むアイドル・タスク・カウントのアレイを形成することを備える、請求項１に記載の方法。
【請求項４】
前記マルチ・スレッド・プロセッサを、前記１または複数のスレッドにおいてタスクが実行されないアイドル動作に強制することと、
少なくとも１つのスレッドにおいて、前記少なくとも１つのアイドル・タスクを実行することと、
前記マルチ・スレッド・プロセッサがアイドル動作に強制されている場合、少なくとも１つの予め定められた期間において、前記少なくとも１つのスレッドにおけるアイドル・タスクの実行に関する最大カウント値を判定することと、
をさらに備える請求項１に記載の方法。
【請求項５】
前記少なくとも１つの予め定められた期間における、前記少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行数の、前記最大カウント値に対する比を計算することによって、前記マルチ・スレッド・プロセッサのパフォーマンス・プロファイルを決定すること、をさらに備える請求項４に記載の方法。
【請求項６】
前記マルチ・スレッド・プロセッサのうちの１または複数のスレッドのすべてについて、前記パフォーマンス・プロファイルを表示すること、をさらに備える請求項１に記載の方法。
【請求項７】
マルチ・スレッド・プロセッサの負荷を判定する装置であって、
少なくとも１つの予め定められた期間中、前記マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドにおいて、少なくとも１つのアイドル・タスクを実行し、前記アイドル・タスクは、前記少なくとも１つのスレッドにおいて、他の何れのタスクも実行されていない場合に、ループおよび実行するように構成されている、
前記少なくとも１つの予め定められた期間において、少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行を判定し、
少なくとも１カウントのループ実行数に基づいて、少なくとも、前記マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドの負荷を判定し、
測定された前記負荷に基づいて、前記マルチ・スレッド・プロセッサのためのパフォーマンス・プロファイルを決定し、
予め定められたサンプリング期間においてすべてのスレッドをアイドルにしているマルチ・スレッド・プロセッサの、マルチ・スレッド・プロセッサ・サイクル数を判定し、
前記予め定められたサンプリング期間中に生じるマルチ・スレッド・プロセッサ・サイクルの合計数を判定し、
前記すべてのスレッドをアイドルにしているマルチ・スレッド・プロセッサの、前記判定されたマルチ・スレッド・プロセッサ・サイクル数の、前記マルチ・スレッド・プロセッサ・サイクルの、前記判定された合計数に対する比に基づいて、前記マルチ・スレッド・プロセッサのパフォーマンス・プロファイルを導出する、
ように構成された少なくとも１つのプロセッサを備える装置。
【請求項８】
前記少なくとも１つのプロセッサはさらに、前記マルチ・スレッド・プロセッサのうちの１または複数のスレッドのおのおのについて、前記パフォーマンス・プロファイルを表示するように構成された、請求項７に記載の装置。
【請求項９】
前記少なくとも１つのプロセッサはさらに、複数の予め定められた期間において、各予め定められた期間中、１または複数のスレッドにおいておのおの実行されているアイドル・タスクに関する各カウントのためのエントリを含むアイドル・タスク・カウントのアレイを形成することによって、前記少なくとも１つの予め定められた期間において、少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行を判定するように構成された、請求項７に記載の装置。
【請求項１０】
前記少なくとも１つのプロセッサはさらに、
前記マルチ・スレッド・プロセッサを、前記１または複数のスレッドにおいてタスクが実行されないアイドル動作に強制し、
少なくとも１つのスレッドにおいて、前記少なくとも１つのアイドル・タスクを実行し、
前記マルチ・スレッド・プロセッサがアイドル動作に強制されている場合、少なくとも１つの予め定められた期間において、前記少なくとも１つのスレッドにおけるアイドル・タスクの実行に関する最大カウント値を判定する
ように構成された、請求項７に記載の装置。
【請求項１１】
前記少なくとも１つのプロセッサはさらに、前記少なくとも１つの予め定められた期間における、前記少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行数の、前記最大カウント値に対する比を計算することによって、前記マルチ・スレッド・プロセッサのパフォーマンス・プロファイルを決定する、ように構成された請求項１０に記載の装置。
【請求項１２】
前記少なくとも１つのプロセッサはさらに、前記マルチ・スレッド・プロセッサのうちの１または複数のスレッドのすべてについて、前記パフォーマンス・プロファイルを表示するように構成された、請求項１１に記載の装置。
【請求項１３】
マルチ・スレッド・プロセッサの負荷を判定する装置であって、
少なくとも１つの予め定められた期間中、マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドにおいて、少なくとも１つのアイドル・タスクを実行する手段と、前記アイドル・タスクは、前記少なくとも１つのスレッドにおいて、他の何れのタスクも実行されていない場合に、ループおよび実行するように構成されている、
前記少なくとも１つの予め定められた期間において、前記少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行を判定する手段と、
前記少なくとも１カウントであるループ実行数に基づいて、少なくとも、前記マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドの負荷を判定する手段と、
前記少なくとも１つの予め定められた期間において、前記少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行数の、最大カウント値に対する比を計算することによって、前記マルチ・スレッド・プロセッサのパフォーマンス・プロファイルを決定する手段と、
予め定められたサンプリング期間においてすべてのスレッドをアイドルにしているマルチ・スレッド・プロセッサの、マルチ・スレッド・プロセッサ・サイクル数を判定する手段と、
前記予め定められたサンプリング期間中に生じるマルチ・スレッド・プロセッサ・サイクルの合計数を判定する手段と、
前記すべてのスレッドをアイドルにしているマルチ・スレッド・プロセッサの、前記判定されたマルチ・スレッド・プロセッサ・サイクル数の、前記マルチ・スレッド・プロセッサ・サイクルの、前記判定された合計数に対する比に基づいて、前記マルチ・スレッド・プロセッサのパフォーマンス・プロファイルを導出する手段と
を備える装置。
【請求項１４】
測定された前記負荷に基づいて、前記マルチ・スレッド・プロセッサのためのパフォーマンス・プロファイルを決定する手段、をさらに備える請求項１３に記載の装置。
【請求項１５】
前記マルチ・スレッド・プロセッサのうちの１または複数のスレッドのおのおのについて、前記パフォーマンス・プロファイルを表示する手段、をさらに備える請求項１４に記載の装置。
【請求項１６】
前記少なくとも１つの予め定められた期間において、前記少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行を判定する手段はさらに、
複数の予め定められた期間において、各予め定められた期間中、１または複数のスレッドにおいておのおの実行されているアイドル・タスクに関する各カウントのためのエントリを含むアイドル・タスク・カウントのアレイを形成する手段をさらに備える、
請求項１３に記載の装置。
【請求項１７】
前記マルチ・スレッド・プロセッサを、前記１または複数のスレッドにおいてタスクが実行されないアイドル動作に強制する手段と、
少なくとも１つのスレッドにおいて、前記少なくとも１つのアイドル・タスクを実行する手段と、
前記マルチ・スレッド・プロセッサがアイドル動作に強制されている場合、少なくとも１つの予め定められた期間において、前記少なくとも１つのスレッドにおけるアイドル・タスクの実行に関する最大カウント値を判定する手段と、
をさらに備える請求項１３に記載の装置。
【請求項１８】
前記マルチ・スレッド・プロセッサのうちの１または複数のスレッドのすべてについて、前記パフォーマンス・プロファイルを表示する手段、をさらに備える請求項１３に記載の装置。
【請求項１９】
コンピュータ読取可能な記録媒体であって、
コンピュータに対して、マルチ・スレッド・プロセッサのパフォーマンス・プロファイルを生成させるためのコードを記録し、前記コードは、
コンピュータに対して、少なくとも１つの予め定められた期間中、前記マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドにおいて、少なくとも１つのアイドル・タスクを実行させるためのコードと、前記アイドル・タスクは、前記少なくとも１つのスレッドにおいて、他の何れのタスクも実行されていない場合に、ループおよび実行するように構成されている、
コンピュータに対して、前記少なくとも１つの予め定められた期間において、前記少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行を判定させるためのコードと、
コンピュータに対して、前記少なくとも１カウントのループ実行数に基づいて、前記マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドの負荷を判定させるためのコードと、
コンピュータに対して、前記少なくとも１つの予め定められた期間における、前記少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行数の、最大カウント値に対する比を計算させることによって、前記マルチ・スレッド・プロセッサのパフォーマンス・プロファイルを決定させるためのコードと、
コンピュータに対して、予め定められたサンプリング期間においてすべてのスレッドをアイドルにしているマルチ・スレッド・プロセッサの、マルチ・スレッド・プロセッサ・サイクル数を判定させるためのコードと、
コンピュータに対して、前記予め定められたサンプリング期間中に生じるマルチ・スレッド・プロセッサ・サイクルの合計数を判定させるためのコードと、
コンピュータに対して、前記すべてのスレッドをアイドルにしているマルチ・スレッド・プロセッサの、前記判定されたマルチ・スレッド・プロセッサ・サイクル数の、前記マルチ・スレッド・プロセッサ・サイクルの、前記判定された合計数に対する比に基づいて、前記マルチ・スレッド・プロセッサのパフォーマンス・プロファイルを導出させるためのコードと、
を備えるコンピュータ読取可能な記録媒体。
【請求項２０】
コンピュータに対して、測定された前記負荷に基づいて、前記マルチ・スレッド・プロセッサのためのパフォーマンス・プロファイルを決定させるためのコードをさらに記録した、請求項１９に記載のコンピュータ読取可能な記録媒体。
【請求項２１】
コンピュータに対して、前記マルチ・スレッド・プロセッサのうちの１または複数のスレッドのおのおのについて、前記パフォーマンス・プロファイルを表示させるためのコードをさらに記録した、請求項２０に記載のコンピュータ読取可能な記録媒体。
【請求項２２】
前記コンピュータに対して、少なくとも１つの予め定められた期間において、前記少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行を判定させるためのコードはさらに、
コンピュータに対して、複数の予め定められた期間において、各予め定められた期間中、１または複数のスレッドにおいておのおの実行されているアイドル・タスクに関する各カウントのためのエントリを含むアイドル・タスク・カウントのアレイを形成させるためのコードを記録した、請求項１９に記載のコンピュータ読取可能な記録媒体。
【請求項２３】
コンピュータに対して、前記マルチ・スレッド・プロセッサを、前記１または複数のスレッドにおいてタスクが実行されないアイドル動作に強制させるためのコードと、
コンピュータに対して、少なくとも１つのスレッドにおいて、前記少なくとも１つのアイドル・タスクを実行させるためのコードと、
前記マルチ・スレッド・プロセッサがアイドル動作に強制されている場合、コンピュータに対して、少なくとも１つの予め定められた期間において、前記少なくとも１つのスレッドにおけるアイドル・タスクの実行に関する最大カウント値を判定させるためのコードと、
をさらに記憶した、請求項１９に記載のコンピュータ読取可能な記録媒体。
【請求項２４】
コンピュータに対して、前記マルチ・スレッド・プロセッサのうちの１または複数のスレッドのすべてについて、前記パフォーマンス・プロファイルを表示させるためのコードをさらに記憶した、請求項１９に記載のコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【優先権の主張】
【０００１】
本特許出願は、本明細書において参照によって明確に組み込まれ、本願の譲受人に譲渡された２００９年１１月１９日出願の「マルチ・スレッド・プロセッサのパフォーマンス・プロファイルのための方法および装置」（METHODS AND APPARATUS FOR PERFORMANCE PROFILING OF A MULTI-THREAD PROCESSOR）と題された仮出願番号６１／２６２，７０４の優先権を主張する。
【技術分野】
【０００２】
本開示は、一般に、マルチ・スレッド・プロセッサのパフォーマンスを測定するための方法および装置に関し、さらに詳しくは、例えば、スレッド毎ベースで、かつ、さまざまな用途およびデータ・レートについて、無線デバイスのようなデバイスにおけるマルチ・スレッド・プロセッサの負荷測定およびパフォーマンス・プロファイリングのための方法および装置に関する。
【背景技術】
【０００３】
例えば無線デバイスのようなデバイスでは、無線通信が実行されているプロセッサのパフォーマンスのプロファイリングが重要である。プロセッサ・パフォーマンスのプロファイリングおよび測定は、設計最適化のための見識を提供するのみならず、設計デバックのための便利なツールをも提供する。このようなプロファイリングの結果は、一例において、例えば無線デバイスのように、プロセッサを利用するデバイスにおけるリソース管理のために使用されうる。プロファイリングがリアル・タイム方式で実行される場合、このようなリソース管理は動的かつ柔軟でありうる。一例は、パフォーマンス・プロファイリングに基づいて測定される、通信フロー制御ベースのプロセッサ負荷である。
【０００４】
無線技術が発展すると、多くの洗練されたモバイル機能や高いデータ・レートが、無線デバイスまたはハンドヘルド・デバイスで実現されることが望まれる。これにしたがって、無線デバイスのプロセッサ技術も発展する。例えばＧＳＭ（登録商標）／ＧＰＲＳのような２Ｇセルラ技術の場合、一般的なプロセッサは、単一スレッド・アーキテクチャに基づく一方、例えばＨＳＰＡ＋／ＬＴＥ／ＥＶ−ＤＯのような３Ｇ／４Ｇセルラ技術の場合、プロセッサは、マルチ・スレッド・ベースになるように発展してきた。
【０００５】
しかしながら、当該技術分野において利用可能などのスキームまたは装置も、さまざまな用途ケースおよびデータ・レートの下で、マルチ・スレッド・プロセッサＣＰＵの負荷を測定しない。さらに、例えば無線デバイスのようなデバイスにおいて、パケット・データ・セッションが進行中である場合、マルチ・スレッド・プロセッサＣＰＵの使用量を、各スレッド毎に調べるために利用可能な既知のツールも計器も存在しない。さらに、無線デバイスにおいて、パケット・データ・セッションが進行中である場合、マルチ・スレッド・プロセッサ“ａｌｌ−ｗａｉｔ”（すなわち、すべてのプロセッサ・スレッドがアイドルである）状態をプローブするために利用可能な既知のツールも計器も存在しない。したがって、マルチ・スレッド・プロセッサの負荷を判定し、判定された負荷を用いて、プロセッサのパフォーマンスをプロファイルするためのニーズがある。
【発明の概要】
【０００６】
態様では、マルチ・スレッド・プロセッサの負荷を判定する方法が開示される。この方法は、少なくとも１つの予め定められた期間中、マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドにおいて、少なくとも１つのアイドル・タスクを実行することを含む。このアイドル・タスクは、少なくとも１つのスレッドにおいて、他の何れのタスクも実行されていない場合に、ループおよび実行するように構成されている。少なくとも１つの予め定められた期間において、少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行が判定される。最後に、この方法は、少なくとも１カウントであるループ実行数に基づいて、少なくとも、マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドの負荷を判定することを含む。
【０００７】
別の態様では、マルチ・スレッド・プロセッサの負荷を判定する装置が開示される。この装置は、少なくとも１つの予め定められた期間中、マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドにおいて、少なくとも１つのアイドル・タスクを実行するように構成された少なくとも１つのプロセッサを含む。ここでは、このアイドル・タスクは、少なくとも１つのスレッドにおいて、他の何れのタスクも実行されていない場合に、ループおよび実行するように構成されている。このプロセッサはまた、少なくとも１つの予め定められた期間において、少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行を判定するように構成される。最後に、このプロセッサは、少なくとも１カウントのループ実行数に基づいて、少なくとも、マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドの負荷を判定するように構成される。
【０００８】
さらに別の態様によれば、マルチ・スレッド・プロセッサの負荷を判定する装置が開示される。この装置は、少なくとも１つの予め定められた期間中、マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドにおいて、少なくとも１つのアイドル・タスクを実行する手段を含む。ここで、このアイドル・タスクは、少なくとも１つのスレッドにおいて、他の何れのタスクも実行されていない場合に、ループおよび実行するように構成されている。少なくとも１つの予め定められた期間において、少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行を判定する手段がさらに含まれる。さらに、この装置は、少なくとも１つのカウントからなるループ実行数に基づいて、少なくとも、マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドの負荷を判定する手段をも含む。
【０００９】
さらにもう１つの態様によれば、コンピュータ読取可能な媒体を備えるコンピュータ・プログラム製品が開示される。この媒体は、コンピュータに対して、マルチ・スレッド・プロセッサのパフォーマンス・プロファイルを生成させるためのコードを備える。ここで、このコードは、コンピュータに対して、少なくとも１つの予め定められた期間中、マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドにおいて、少なくとも１つのアイドル・タスクを実行させるためのコードを含む。このアイドル・タスクは、少なくとも１つのスレッドにおいて、他の何れのタスクも実行されていない場合に、ループおよび実行するように構成されている。さらに、コンピュータに対して、少なくとも１つの予め定められた期間において、少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行を判定させるためのコードと、コンピュータに対して、少なくとも１カウントのループ実行数に基づいて、マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドの負荷を判定させるためのコードとが含まれる。
【図面の簡単な説明】
【００１０】
【図１】図１は、多元接続無線通信システムの例を例示する。
【図２】図２は、ここで開示された方法および装置を適用または利用しうる典型的な通信システムのブロック図である。
【図３】図３は、マルチ・スレッド・プロセッサ・プロファイリング構成のブロック図を例示する。
【図４】図４は、マルチ・スレッド・プロセッサの負荷を判定するための装置動作を例示するブロック図である。
【図５】図５は、マルチ・スレッド・プロセッサの複数のスレッド上で動作するアイドル・タスクのカウントを累積するためのスリープ・ベクトルのアレイを例示する。
【図６】図６は、本開示の態様にしたがって、マルチ・スレッド・プロセッサ・プロファイリングを有効にする方法である。
【図７】図７は、本開示の態様にしたがって、別のマルチ・スレッド・プロセッサ・プロファイリングを有効にする別の方法である。
【図８】図８は、マルチ・スレッド・プロセッサのプロファイルを決定するための別の典型的な装置のブロック図を例示する。
【発明を実施するための形態】
【００１１】
本開示は、例えば高速パケット・アクセス（ＨＳＰＡ）技術、イボルブドＨＳＰＡ（ＨＳＰＡ＋）技術、ロング・ターム・イボリューション（ＬＴＥ）技術、およびＥＶ−ＤＯ技術のような、３Ｇ／４Ｇ技術のためのデバイスで使用されるような、マルチ・スレッド・プロセッサＣＰＵのパフォーマンスの測定および／またはプロファイリングをする方法および装置に注目する。さらに、ここで開示される方法および装置は、マルチ・スレッドＣＰＵ使用量または動作の設計または最適化において使用するためにリアル・タイムで表示されうるリアル・タイム・プロファイリングおよび／または測定を行う。
【００１２】
本明細書に記載された装置および方法は、マルチ・スレッド・プロセッサを利用するさまざまなデバイスに適用可能である。特定の態様では、本装置および方法は、無線デバイスにおけるプロセッサ動作の最適化を支援するために、マルチ・スレッド・プロセッサを利用する無線デバイスに適用されうる。このようなデバイスが実施しうる典型的な無線通信技術は、符号分割多元接続（ＣＤＭＡ）、時分割多元接続（ＴＤＭＡ）ネットワーク、周波数分割多元接続（ＦＤＭＡ）、直交ＦＤＭＡ（ＯＦＤＭＡ）、シングル・キャリアＦＤＭＡ（ＳＣ−ＦＤＭＡ）、高速パケット接続（ＨＳＰＡおよびＨＳＰＡ＋）技術、ロング・ターム・イボリューション（ＬＴＥ）、ＥＶ−ＤＯ技術等を含みうる。ＣＤＭＡネットワークは、例えば、ユニバーサル地上ラジオ・アクセス（ＵＴＲＡ）、ｃｄｍａ２０００等のようなラジオ技術を実現しうる。ＵＴＲＡは、広帯域ＣＤＭＡ（Ｗ−ＣＤＭＡ）および低チップ・レート（ＬＣＲ）を含む。ｃｄｍａ２０００は、ＩＳ−２０００規格、ＩＳ−９５規格、およびＩＳ−８５６規格をカバーする。ＴＤＭＡネットワークは、例えばグローバル移動体通信システム（ＧＳＭ（登録商標））のようなラジオ技術を実現しうる。ＯＦＤＭＡネットワークは、例えば、ウルトラ・モバイル帯域幅（ＵＭＢ）、イボルブドＵＴＲＡ（Ｅ−ＵＴＲＡ）、ＩＥＥＥ  ８０２．１１、ＩＥＥＥ  ８０２．１６（ＷｉＭａｘ）、ＩＥＥＥ  ８０２．２０、フラッシュ−ＯＦＤＭ等のようなラジオ技術を実現することができる。ＵＴＲＡ、Ｅ−ＵＴＲＡ、およびＧＳＭは、ユニバーサル・モバイル・テレコミュニケーション・システム（ＵＭＴＳ）の一部である。ロング・ターム・イボリューション（ＬＴＥ）は、Ｅ−ＵＴＲＡを使用するＵＭＴＳの最新のリリースである。ＵＴＲＡ、Ｅ−ＵＴＲＡ、ＧＳＭ、ＵＭＴＳ、およびＬＴＥは、「第３世代パートナシップ計画」（３ＧＰＰ）と命名された組織からの文書に記載されている。ｃｄｍａ２０００は、「第３世代パートナシップ計画２」（３ＧＰＰ２）と命名された組織からの文書に記載されている。これらさまざまなラジオ技術および規格は、当該技術分野において知られている。
【００１３】
さらに、本明細書で使用される用語「プロセッサ」は、限定される訳ではないが、ＣＰＵ、ＡＳＩＣ、デジタル信号プロセッサ（ＤＳＰ）、または、命令群を実行することが可能なその他任意のタイプのプロセッサを含みうる。さらに、本開示は主にマルチ・スレッド・プロセッサに関連しているが、本装置および方法は、処理を並列につまり同時に実行している任意のプロセッサに、あるいは、潜在的にマルチ・タスクにさえも適合しうることが当業者に明らかとなるであろう。さらに、本開示は、無線システムで使用されるプロセッサのコンテキストで説明されているが、当業者であれば、本方法および装置は、アプリケーションまたは用途に関わらず、任意のマルチ・スレッド・プロセッサに適用されうることを認識するであろう。
【００１４】
図１に示すように、本方法および装置が適用される多元接続無線通信システムの例が示される。アクセス・ポイント１００（ＡＰ）は、１つは１０４および１０６を含み、別の１つは１０８および１１０を含み、さらに別の１つは１１２および１１４を含む複数のアンテナ・グループを含む。図１では、おのおののアンテナ・グループについて２本のアンテナしか示されていない。しかしながら、おのおののアンテナ・グループについて、それより多いまたはそれより少ないアンテナが利用されうる。アクセス端末１１６（ＡＴ）（またはモバイル・デバイスまたはユーザ機器（ＵＥ））は、アンテナ１１２、１１４と通信しており、アンテナ１１２、１１４は、ダウンリンク（ＤＬ）すなわち順方向リンク１２０でアクセス端末１１６へ情報を送信し、アップリンク（ＵＬ）すなわち逆方向リンク１１８でアクセス端末１１６から情報を受信する。アクセス端末１２２は、アンテナ１０６、１０８と通信しており、アンテナ１０６、１０８は、順方向リンク１２６でアクセス端末１２２へ情報を送信し、逆方向リンク１２４でアクセス端末１２２から情報を受信する。ＦＤＤシステムでは、通信リンク１１８、１２０、１２４、１２６は、通信のために異なる周波数を使用することができる。例えば、ＤＬ１２０は、ＵＥ１１８によって使用されるものとは異なる周波数を使用しうる。ＴＤＤシステムでは、ＵＬ信号とＤＬ信号とが時間多重化されて、単一の周波数が、ＵＬ１１８とＤＬ１２０との両方のために使用される。
【００１５】
通信するように設計された領域および／またはアンテナのおのおののグループは、しばしば、アクセス・ポイントのセクタと称される。態様では、アンテナ・グループは各々、アクセス・ポイント１００によってカバーされた領域のセクタ内のアクセス端末に通信するように設計される。
【００１６】
アクセス・ポイントは、端末と通信するために使用される固定局であり、アクセス・ポイント、ノードＢ、あるいはその他幾つかの専門用語でも称されうる。アクセス端末はまた、アクセス端末、ユーザ機器（ＵＥ）、無線通信デバイス、端末、アクセス端末、あるいはその他いくつかの専門用語で称されうる。
【００１７】
図２は、空間ダイバーシティ多重化を提供するＭＩＭＯシステム２００における（アクセス・ポイントとしても知られている）送信機システム２１０および（アクセス端末としても知られている）受信機システム２５０の例を示すブロック図である。送信機システム２１０では、多くのデータ・ストリーム用のトラフィック・データが、データ・ソース２１２から送信（ＴＸ）データ・プロセッサ２１４に提供される。
【００１８】
態様では、データ・ストリームはおのおのの、それぞれの送信アンテナを介して送信される。ＴＸデータ・プロセッサ２１４は、おのおののデータ・ストリームのトラフィック・データをフォーマットし、このデータ・ストリームのために選択された特定の符号化スキームに基づいて符号化し、インタリーブして、符号化されたデータを提供する。
【００１９】
おのおののデータ・ストリームの符号化されたデータは、ＯＦＤＭ技術を用いてパイロット・データと多重化されうる。パイロット・データは一般に、既知の手法で処理される既知のデータ・パターンであり、チャネル応答を推定するために受信機システムにおいて使用されうる。おのおののデータ・ストリームについて多重化されたパイロットおよび符号化されたデータは、データ・ストリームのために選択された特定の変調スキーム（例えば、ＢＰＳＫ、ＱＰＳＫ、Ｍ−ＰＳＫ、あるいはＭ−ＱＡＭ等）に基づいて変調（例えば、シンボル・マップ）され、変調シンボルが提供される。おのおののデータ・ストリームのデータ・レート、符号化、および変調は、プロセッサ２３０によって実行される命令群によって決定されうる。
【００２０】
すべてのデータ・ストリームの変調シンボルは、（例えば、ＯＦＤＭのために）変調シンボルをさらに処理するＴＸ  ＭＩＭＯプロセッサ２２０に提供される。ＴＸ  ＭＩＭＯプロセッサ２２０はその後、ＮＴ個の変調シンボル・ストリームを、ＮＴ個の送信機（ＴＭＴＲ）２２２ａ乃至２２２ｔへ提供する。ある態様では、ＴＸ  ＭＩＭＯプロセッサ２２０は、データ・ストリームのシンボル、および、このシンボルが送信されるアンテナへ、ビームフォーミング重みを適用する。
【００２１】
おのおのの送信機２２２は、１または複数のアナログ信号を提供するために、それぞれのシンボル・ストリームを受信して処理し、さらには、ＭＩＭＯチャネルを介した送信に適切な変調信号を提供するために、このアナログ信号を調整（例えば、増幅、フィルタ、およびアップコンバート）する。送信機２２２ａ乃至２２２ｔからのＮＴ個の変調信号は、その後、ＮＴ個のアンテナ２２４ａ乃至２２４ｔからそれぞれ送信される。
【００２２】
受信機システム２５０では、送信された変調信号がＮＲ個のアンテナ２５２ａ乃至２５２ｒによって受信され、おのおののアンテナ２５２からの受信信号が、それぞれの受信機（ＲＣＶＲ）２５４ａ乃至２５４ｒへ提供される。おのおのの受信機２５４は、受信したそれぞれの信号を調整（例えば、フィルタ、増幅、およびダウンコンバート）し、この調整された信号をデジタル化してサンプルを提供し、さらにこのサンプルを処理して、対応する「受信された」シンボル・ストリームを提供する。
【００２３】
ＲＸデータ・プロセッサ２６０は、ＮＲ個の受信機２５４からＮＲ個のシンボル・ストリームを受信し、受信されたこれらシンボル・ストリームを、特定の受信機処理技術に基づいて処理して、ＮＴ個の「検出された」シンボル・ストリームを提供する。ＲＸデータ・プロセッサ２６０は、その後、検出されたおのおののシンボル・ストリームを復調し、デインタリーブし、復号して、このデータ・ストリームのためのトラフィック・データを復元する。ＲＸデータ・プロセッサ２６０による処理は、送信機システム２１０におけるＴＸ  ＭＩＭＯプロセッサ２２０およびＴＸデータ・プロセッサ２１４によって実行されるものと相補的である。
【００２４】
逆方向リンク・メッセージすなわちＵＬメッセージは、通信リンクおよび／または受信されたデータ・ストリームに関するさまざまなタイプの情報を備えうる。逆方向リンク・メッセージは、多くのデータ・ストリームのトラフィック・データをデータ・ソース２３６から受け取るＴＸデータ・プロセッサ２３８によって処理され、変調器２８０によって変調され、送信機２５４ａ乃至２５４ｒによって調整され、基地局２１０へ送り戻される。
【００２５】
送信機システム２１０では、受信機システム２５０からの変調された信号が、アンテナ２２４によって受信され、受信機２２２によって調整され、復調器２４０によって復調され、ＲＸデータ・プロセッサ２４２によって処理されることにより、受信機システム２５０によって送信された逆方向リンク・メッセージすなわちＵＬメッセージが抽出される。さらに、プロセッサ２３０は、ビームフォーミング重みを決定するためにどのプリコーディング行列を使用するかを決定し、この抽出されたメッセージを処理する。
【００２６】
本開示は、例えば、無線デバイス２１０、２５０におけるプロセッサ２３０、２７０のようなプロセッサをプロファイリングする装置および方法を提供するが、これは、無線デバイスであろうとなかろうと、任意の数のさまざまな装置における何れのマルチ・スレッド・プロセッサにも適用されうることが注目される。
【００２７】
実装の一例として、図３は、マルチ・スレッド・プロセッサ・プロファイリング構成のブロック図を例示する。例示されたように、統合されて、または、チップセット（例えば、移動局モデム（登録商標））として構成されうるか、または、一体デバイスとしてより広く考慮されうるデバイス３００は、マルチ・スレッド・プロセッサであるプロセッサ３０２を含みうる。プロセッサ３０２とともにメモリ３０４が存在する。メモリ３０４は、プロセッサ３０２のパッケージングに統合されうるか、または、分離されうる（あるいは、デバイス３００からさえも分離されうる）。さらに、デバイス３００の内部（または、外部）には、例えば、後に詳しく述べるような、プロセッサ３０２のすべてのスレッドがアイドルであるＣＰＵサイクルを判定すること、のような追加のプロファイルまたはパフォーマンス・データを提供するための、他のロジック３０６が含まれうる。あるいは、ロジック３０６によって実行される機能は、プロセッサ３０２によって実行されうる。さらに、リアル・タイム・プロファイリング・データを表示するディスプレイ・インタフェース３０８が含まれうる。
【００２８】
図４は、マルチ・スレッド・プロセッサの負荷を判定するための装置動作を例示するブロック図である。この例示はシステム４００を示す。これは、単なる一例であるが、例えば無線デバイスのようなデバイスにおいて動作可能なマルチ・スレッド処理システムを示す。このシステム４００は、根底にあるオペレーティング・システム（ＯＳ）４０２に基づいて、マルチ・スレッドを含む動作を実行する。オペレーティング・システムおよび付随するソフトウェアは、マルチ・スレッド処理システムにおけるスレッドのうちの１または複数においてアイドル・タスクを実行するように構成されうる。アイドル・タスクは、他の何れのタスクもスレッド内で実行されていない場合に実行されるように構成され、無限ループまたはその他いくつかの反復動作でありうる。態様では、アイドル・タスクは、単に、反復がカウントされうるループ動作をのみを実行するループである。
【００２９】
態様では、システム４００は、スレッドのうちの１または複数のそれぞれにおいて動作するアイドル・タスクのループのカウントを格納するために使用される、レジスタ４０４または等価のデバイス（または、ソフトウェアまたはファームウェアの場合における機能）を含みうる。レジスタ４０４は、レジスタ４０４内のカウント・ストレージのうちの１つを示す参照番号４０６によって例示されるように、おのおののスレッドのための、個別のカウント・ストレージを含む。レジスタ４０４は、予め定められた期間（例えば、Ｔミリ秒（ｍｓ））において、Ｎ個のスレッド（Ｔ１乃至ＴＮ）のうちのおのおので動作する各アイドル・タスクのカウントを格納する。態様では、レジスタ４０４は、Ｎ個の独立したスレッドのおのおののために実行されたアイドル・タスクのループ・カウントを含む。おのおのがアイドル・タスク実行のループ・カウントを有するＮ個の要素を備え、ベクトル４０８によって数字的に示されているベクトルが、予め定められた期間（Ｔミリ秒）の各持続時間について形成される。ユーザへ表示するためにカウント・データを照合し処理するために、通信カップリング４１０を介して、例えばコンピュータおよびメモリ４１２のような処理デバイスへベクトルが出力される。
【００３０】
Ｎ個のスレッド・ベクトルのおのおののための、Ｎ個のアイドル・タスク・カウントである［Ｔ１，Ｔ２，Ｔ３，・・・ＴＮ］からなるベクトル４０８は、Ｔミリ秒のサンプリング期間の数からなるベクトル・アレイが形成されるように、Ｔミリ秒毎に出力される。したがって、Ｔミリ秒の予め定められた期間毎に、ベクトルの数が１ずつ増える。スリープ・ベクトルの最大数は、予め定められた数Ｍである。Ｍ＊Ｔミリ秒後、すべてのアイドル・タスク・カウント・ベクトルが、Ｍ＊Ｎのサイズを持つアレイを形成する。このアレイは、Ｍ＊Ｔミリ秒後に更新される。
【００３１】
図５は、マルチ・スレッド・プロセッサのうちの複数のスレッドで動作するアイドル・タスクのためのカウントを蓄積するためのアイドル・タスク・カウント・ベクトルの典型的なアレイ５００を例示する。例えば、スレッドの数Ｎ＝６であり、予め定められたサンプリング期間Ｔ＝１０ミリ秒であり、サンプリング期間の合計数Ｍ＝１０２４である場合、図示するように、スリーピング・アレイは、１０２４＊６（すなわち、Ｍ＊Ｎ）のアレイ５００のように見える。図５の例は単なる例示であり、Ｍ、Ｎ、およびＴの値は、所望の任意の数に設定されうることが注目される。
【００３２】
図６は、マルチ・スレッド・プロセッサ（例えば、プロセッサ３０２）のパフォーマンスをプロファイルするために利用されうるマルチ・スレッド・プロセッサ・プロファイリングのための方法６００を例示する。方法６００はまず、ブロック６０２に示すように、少なくとも１つの予め定められた期間中、マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドにおいて、少なくとも１つのアイドル・タスクを実行することを含む。このアイドル・タスクは、少なくとも１つのスレッドにおいて他の何れのタスクも実行されていない場合に、ループおよび実行するように構成されている。特定の態様では、ブロック６０２の処理は、マルチ・スレッド・プロセッサ（例えば、３０２）のうちの独立した各スレッドにおいて、それぞれのスレッドがアイドルである（すなわち、他のどの機能またはタスクもこのスレッドで実行されない）場合には常に、アイドル・タスクをループすることを実施することを含みうる。
【００３３】
方法６００はさらに、ブロック６０４に示すように、少なくとも１つの予め定められた期間において、少なくとも１つのアイドル・タスクのループ実行のうちの、少なくとも１カウントのループ実行を判定することを含む。前述したように、カウントすることは、レジスタ４０４または類似のユニットまたは機能によって有効とされうる。さらなる態様では、ブロック６０２においてアイドル・タスクを実行すること、および、カウントすることを実行することの処理は、前述したように、Ｍ＊Ｎベクトル・アレイを形成するために、Ｍ回の予め定められた期間、実行される。したがって、ブロック６０２、６０４は、Ｍ＊Ｎアレイを取得するために、Ｍ回の予め定められた期間におけるＭ個のスレッドについて、複数のＮ個のベクトルのためのループ実行のアイドル・タスク実行およびカウントすることを含む。
【００３４】
当業者によって、ブロック６０２、６０４の処理は、図６において時間的にシーケンシャルに例示されており、これら処理は、各アイドル・タスク・ループの実行後、予め定められた期間が終了するまで、レジスタがカウントを進める場合に同時に、または、反復して実行されうることもまた認識されるであろう。この期間が終了した後、レジスタは、Ｍ回の期間のカウント・アレイが導出されるまで、予め定められた次の期間等におけるアイドル・タスクのループをカウントするために、ゼロにリセットされる。
【００３５】
例えば、少なくとも１つの予め定められた期間後のように、ブロック６０４の処理が完了した後、ブロック６０６によって例示されるように、カウントに基づいて、マルチ・スレッド・プロセッサのうちの１または複数の独立したスレッドの負荷を判定するために、ループ・カウント（単数または複数）が使用されうる。例において、アイドル・タスク・ループのカウントは、特定のスレッドがどれくらいの頻度でアイドルになるかのタイミングを与える。なぜなら、アイドル・タスクは、スレッド内で他の何れのタスクも実行されていない場合にのみ動作するように構成されているからである。したがって、所与のスレッドについて、所与の予め定められた期間における最大のスリープ・カウントが知られている場合、この期間の負荷は、通常のプロセッサ動作中のアイドル・タスク・ループの、ベースライン最大スリープ・カウントに対する比に基づいて決定されうる。複数の予め定められた期間（例えば、前述したようにＭ回の期間）におけるこの負荷は、マルチ・スレッド・プロセッサ内の１または複数のスレッドにどれくらい負荷がかかっているのかを知るために、パフォーマンス・プロファイルのうちの少なくとも１つの態様を導出するために使用されうる。
【００３６】
（図６には明示的に例示されていないが）ブロック６０６における負荷をどのようにして判定するかの１つの特定の例では、マルチ・スレッド・プロセッサのうちの１または複数のスレッドが、アイドル動作にあることが強制されうる。アイドル・タスクは、その後、少なくとも予め定められた期間、カウントされたアイドル・タスクのループ実行回数、マルチ・スレッド・プロセッサのおのおののスレッドで動作しうる。別の特定の例では、アイドル・タスクは、前述したＭ＊Ｎアレイを満たすための十分なカウントを得るために、合計してＭ回の予め定められた期間の間動作する。プロセッサ（または、マルチ・スレッド・プロセッサとは別のプロセッサ）は、その後、アイドル・タスクのみが動作するＭ回の期間中、Ｍ＊Ｎアレイにログされた最大アイドル・タスク・カウント（本明細書では、最大スリープ・スカラ値または“ＭＡＸ＿ＳＬＥＥＰ＿ＳＣＡＬＥＲ”と称される）を発見しうる。実際、この値は、所与の任意のスレッドの１００％ＣＰＵアイドル状態またはスリープを表す。
【００３７】
その後、Ｎ個のベクトルのおのおのにおける各スレッドのカウント値が、ＭＡＸ＿ＳＬＥＥＰ＿ＳＣＡＬＥＲ値によって除され、アイドル・タスクまたはスリープ・プロファイルが導出される。これは、特定のスレッドの負荷を表す、最大アイドル・タスク状態に対するアイドル・タスクのパーセンテージである。あるいは、Ｍ＊Ｎアレイが決定された場合、Ｍ回の期間における特定のスレッドの合計カウントが総和され、ＭＡＸ＿ＳＬＥＥＰ＿ＳＣＡＬＥＲによって除される。これは、特定のスレッドの負荷を取得するために、Ｍが乗じられる。何れの場合であれ、判定された負荷は、その後、ブロック６０８における処理によって示されるように、パーセンテージの単位で、または、その他任意の適切な数（例えば、単にＭＡＸ＿ＳＬＥＥＰ＿ＳＣＡＬＥＲによって除されたスリープ・カウントまたはアイドル・タスクのフラクション）で表示されうる。マルチ・スレッド・プロセッサでは、各アイドル・タスクまたはスリープ・プロファイルが、スレッド毎に表示されうる。
【００３８】
方法６００におけるすべての処理を実行した後、方法６００は、時間におけるプロファイリング・データの生成を続けるために連続的に反復するであろうことが注目される。一例において、予め定められた期間は、Ｍ回からなる合計の期間数が２５に等しい場合、１０ミリ秒でありうる。したがって、スリープ・プロファイルを決定するために使用されるデータの累積は、２５０ミリ秒毎に実行され（すなわち、ブロック６０２乃至６０６）、表示され（ブロック６０８）、その後も、２５０ミリ秒毎に反復され表示される。
【００３９】
図７は、マルチ・スレッド・プロセッサのための別のパフォーマンス・プロファイルを決定する別の典型的な方法７００を例示する。図示するように、方法７００は、ブロック７０２に示すように、予め定められたサンプリング期間（例えば、Ｙミリ秒）においてすべてのスレッドをアイドルにしているマルチ・スレッド・プロセッサの、マルチ・スレッド・プロセッサ・サイクル数を判定することを含む。プロセッサ・サイクルという用語は、処理ユニットのＣＰＵサイクルを示すことが注目される。さらに、どのサイクルがすべてのスレッドをアイドルにしているのかの判定は、図３に示すように、例えば、すべてのスレッドがアイドルである場合にインジケーションが出力されるロジック３０６のようなロジックによって実施されうる。態様では、この判定は、スレッドがタスクを実行していない場合に、スレッド・クロックがアイドルであるマルチ・スレッド・プロセッサの特性に依存しうることが注目される。したがって、このロジックは、すべてのスレッド・クロックがアイドルである場合、すべてのスレッドがアイドルであることを示すロジック状態を出力するように構成されうる。一例では、ブロック７０２の処理は、本明細書で“Ａｌｌ＿Ｗａｉｔ＿Ｃｙｃｌｅ”として称される、「すべてのスレッドが待機している（アイドルである）」マルチ・スレッド・プロセッサ・サイクルの回数を取得することを含む。
【００４０】
さらに、方法７００は、ブロック７０４に示すように、予め定められたサンプリング期間（例えば、Ｙミリ秒）中に生じるマルチ・スレッド・プロセッサ・サイクルの合計数を判定することを含む。態様では、サンプリング期間中に生じるサイクルの合計数は、“Ｔｏｔａｌ＿Ｃｙｃｌｅ”と称されうる。
【００４１】
さらに、方法７００は、ブロック７０６に示されるように、すべてのスレッドをアイドルにしているプロセッサの、判定されたマルチ・スレッド・プロセッサ・サイクル数の、マルチ・スレッド・プロセッサの、判定された合計数に対する比に基づいて、マルチ・スレッド・プロセッサのパフォーマンス・プロファイルを導出することを含む。本明細書で“ａｌｌ−ｗａｉｔ  ｒａｔｉｏ”または“ａｌｌ−ｗａｉｔ  ｐｅｒｃｅｎｔａｇｅ”と称されるこの比は、商Ａｌｌ＿Ｗａｉｔ＿Ｃｙｃｌｅ／Ｔｏｔａｌ＿Ｃｙｃｌｅで導出される。
【００４２】
方法６００と同様に、方法７００もまた、ａｌｌ−ｗａｉｔ  ｐｅｒｃｅｎｔａｇｅ情報を表示させるさらなる処理を含む。態様では、各スレッドがどれくらい利用されているかを示す負荷プロファイルを判定することによってのみならず、すべてのスレッドがどれだけの頻度でアイドルであるか待機しているかに関するプロファイルを判定することによって、マルチ・スレッド・プロセッサのより完全なパフォーマンス・プロファイル・レコード・データ・セットを取得するために、方法６００、７００がともに有用であることが注目される。さらに、開示された装置および方法は、Ｙミリ秒毎にプロファイリング・レコード・データ・セットを生成して、（例えば、プロセッサ（３０２）によって実施される機能である）ディスプレイ機能へ発行し、ディスプレイ・インタフェース（例えば、３０８）によってプロファイル情報を表示する。プロファイリング・レコード・データ・セットは、（例えば図４に示すような）アイドル・カウント・アレイと、上述したＭＡＸ＿ＳＬＥＥＰ＿ＳＣＡＬＥＲとから構成されうる。プロファイリング・レコード・データ・セットはまた、サンプリング期間Ｙミリ秒の間、ａｌｌ−ｗａｉｔ  ｐｅｒｃｅｎｔａｇｅを含む。態様では、予め定められたサンプリング期間Ｙミリ秒は、カウント・アレイ内のＭ個の予め定められた期間の合計に等しくなりうることが注目される。生成されうるプロファイリング・レコード・データ・セットの例として、以下に示すテーブル１は、Ｙ＝２５０ミリ秒、予め定められた各期間が１０ミリ秒に等しいＮ＝６（６スレッド）、およびＭ＝２５（すなわち、２５×１０ミリ秒＝２５０ミリ秒からなる合計アレイ時間）を有する少なくとも３つのアイテムを持つ特定の例を与える。  
【表１】
0005612117.tif 000002
【００４３】
図示されるように、含まれている３つのアイテムは、Ｍ＝２５の予め定められた期間のサンプリングを合計した２０５ミリ秒のＭＡＸ＿ＳＬＥＥＰ＿ＳＣＡＬＥＲと、１０ミリ秒長さの予め定められた期間が乗じられたＭ＝２５のＭ＊Ｎアレイの生のカウント・データ（すなわち、２５０ミリ秒の合計期間）と、２５０ミリ秒からなる同じ期間中のＡｌｌ−ｗａｉｔｓパーセンテージとである。この例では、上述した表示機能は、パーセンテージの単位（％）でアイドル・カウントを導出しうる。すなわち、個々のスリープ・カウントを、ＭＡＸ＿ＳＬＥＥＰ＿ＳＣＡＬＥＲを用いて除し、スレッド毎のスリープ・プロファイリングを表示する。それにも関わらず、代案では、このパーセンテージ計算は、監視中のマルチ・スレッド・プロセッサによって実行され、データ・セット内の別のフィールドとして送信されうる。
【００４４】
図８は、マルチ・スレッド・プロセッサのプロファイルを決定するための別の典型的な装置８００のブロック図を例示する。装置８００は、マルチ・スレッド・プロセッサのパフォーマンス・プロファイルを導出するように動作する方法６００、７００に関連して上述した機能のようなさまざまな機能を有効にするためのさまざまなモジュールまたは手段を含む。この装置８００の手段またはモジュールは、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組み合わせを用いて実現されうる。さらに、監視中のマルチ・スレッド・プロセッサ、別のプロセッサ、パーソナル・コンピュータ、専用デバイス、またはこれら任意の組み合わせは、この装置８００のさまざまなモジュールまたは手段を実現しうる。さらに、１つの態様では、装置８００は、無線通信デバイス内に少なくとも部分的に実現されうる。
【００４５】
装置８００は、少なくとも１つの予め定められた期間中に、マルチ・スレッド・プロセッサ（例えば、プロセッサ３０２）のうちの少なくとも１つにおいて少なくとも１つのアイドル・タスクを実行するための手段８０２を含む。ここで、アイドル・タスクは、その他何れのタスクも少なくとも１つのスレッドにおいて動作していない場合にループおよび実行するように構成されている。１つの例では、手段８０２は、プロセッサ３０２、および、特に、プロセッサのＯＳ動作（例えばＯＳ４０２）によって実現されうる。装置８００はさらに、通信手段、または図８において、単に手段間の通信またはさまざまな機能間の情報の引き渡しを示すカップリング８０４として示される通信カップリング・デバイスを含む。
【００４６】
装置はさらに、少なくとも１つの予め定められた期間において、少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行を判定するための手段８０６を含む。一例では、手段８０６はまた、例えばレジスタ（例えば、前述したレジスタ４０４）のようなアイドル・タスクのループのカウントをインクリメントして格納する手段と連携したマルチ・スレッド・プロセッサ（例えば、３０２）によって有効とされうる。手段８０６によって累積されたカウント情報は、少なくとも１カウントであるループ実行回数に基づいて、少なくとも、マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドの負荷を判定する手段８０８に通知されうる。手段８０８は、マルチ・スレッド・プロセッサ、別のプロセッサ、パーソナル・コンピュータ、または、マルチ・スレッド・プロセッサを含むデバイスの外側にある他のコンピュータ内に実装されうることが注目される。例えば、手段８０６からの生のカウント・データは、テーブル１におけるデータ・セットのようなデータ・セットの一部となりうる。このデータ・セットは、負荷を判定するために外部デバイスへ送られる。
【００４７】
さらに、装置８００は、パフォーマンス・プロファイル（単数または複数）を表示するための手段８１０を含みうる。あるいは、装置８１０は、パフォーマンス・プロファイル・データ・セットを、装置８００の外部のディスプレイ（図示せず）に送信するための手段として構成されうる。さらに、装置８００は、代替案として、とりわけ、プロセッサ（例えば、マルチ・スレッド・プロセッサまたはプロセッサ８１２）によって実行可能なコードを格納するとともに、パフォーマンス・プロファイル・データを格納するメモリ８１４およびプロセッサ８１２を含みうる。最後に、装置８００は、前述したＡｌｌ＿Ｗａｉｔ＿Ｃｙｃｌｅである、マルチ・スレッド・プロセッサがアイドルまたは待機中であるＣＰＵサイクル数のようなデータを判定するように構成された追加のハードウェアまたはロジック８１６を含みうる。
【００４８】
当業者であれば、上記開示された装置および方法は、追加の機器またはソフトウェアを必要とすることなく、プロセッサ・パフォーマンス・プロファリングの動的かつリアル・タイムによる方式を与えることを認識するであろう。さらに、ここで開示されたプロファイリングは、パフォーマンス低下を引き起こさない。なぜなら、このプロファイリングは、一部、「アイドル」タスクで実行されるからである。本装置および方法は、デバッグや、電力最適化を含むシステム最適化のために役立ちうる。さらに、この方法および装置は、テスト・ツールとしてＣＰＵを用いて、システムの設計および開発のために利用されうる。あるいは、ＣＰＵおよび／または付随するシステムの進行中の「オン・ザ・フライ」最適化を可能にするプロファイリングを実行するために、例えば、無線デバイスにおいて使用されるＣＰＵを用いて実現されうる。
【００４９】
特定の態様では、本開示された方法および装置は、このようなデバイスにのみ限定されていないが、無線デバイスのためのプロセッサ・パフォーマンスを測定およびプロファイルするために、動的かつリアル・タイムでの方式で提供する。開示された方法および装置は、「アイドル」なタスクの設計および実装、“ａｌｌ−ｗａｉｔ  ｐｅｒｃｅｎｔａｇｅ”の設計、最大スリープまたはアイドル・カウント・スケーラを導出すること、プロファイリング・レコード・データ・セットを収集および発行すること、さらには、リアル・タイム方式での任意またはすべてのプロファイリング情報を表示することを含みうる。要約すると、ここで開示された装置および方法は、例えば無線デバイスで進行中であるパケット・データ・セッションのような特定のタスクが実行されている場合、さまざまな用途ケースおよびデータ・レートの下におけるマルチ・スレッド・プロセッサＣＰＵ負荷を測定するため、各スレッド毎のマルチ・スレッド・プロセッサＣＰＵ使用量を調べるため、そして、マルチ・スレッド・プロセッサ“ａｌｌ−ｗａｉｔ”（すなわち、すべてのプロセッサ・スレッドがアイドルである）状態を調べるための、革新的な方式を提供する。提供されたこれらすべての機能は、無線標準化ツールまたは追加のいかなるツールも必要としないことが注目される。
【００５０】
本明細書において「典型的な」という用語は、「例、事例あるいは例示として役立つ」ことを意味するために使用されることが注目される。本明細書で“典型的である”と記載されたあらゆる実施形態は、他の実施形態によりも好適であるとか有利であるとか解釈される必要は必ずしもない。
【００５１】
開示された処理におけるステップの具体的な順序または階層は、単なる典型的なアプローチの例であることが理解される。設計選択に基づいて、これら処理におけるステップの具体的な順序または階層は、本開示のスコープ内であることを保ちながら、再構成されうることが理解される。方法請求項は、さまざまなステップの要素を、サンプル順で示しており、示された具体的な順序または階層に限定されないことが意味される。
【００５２】
当業者であれば、情報および信号は、さまざまな異なる技術および技法のうちの何れかを用いて表されることを理解するだろう。例えば、上記説明を通じて参照されうるデータ、命令群、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場または磁性粒子、光学場または光学粒子、あるいはこれらの任意の組み合わせによって表現されうる。
【００５３】
当業者であればさらに、本明細書で開示された実施形態に関連して記載された例示的なさまざまな論理ブロック、モジュール、回路、およびアルゴリズム・ステップは、電子的なハードウェア、コンピュータ・ソフトウェア、あるいはこれら両方の組み合わせとして実現されることを認識するであろう。ハードウェアとソフトウェアとの相互置換性を明確に説明するために、さまざまな例示的な構成要素、ブロック、モジュール、回路、およびステップが、これらの機能の観点から一般的に記載された。これら機能がハードウェアとしてまたはソフトウェアとして実現されるかは、特定のアプリケーションおよびシステム全体に課せられている設計制約に依存する。当業者であれば、各特定のアプリケーションに応じて変化する方法で上述した機能を実現することができる。しかしながら、この適用判断は、本開示の範囲からの逸脱をもたらすものと解釈されるべきではない。
【００５４】
本明細書で開示された実施形態に関連して記述されたさまざまな例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）あるいはその他のプログラマブル論理デバイス、ディスクリート・ゲートあるいはトランジスタ・ロジック、ディスクリート・ハードウェア構成要素、または上述された機能を実現するために設計された上記何れかの組み合わせを用いて実現または実施されうる。汎用プロセッサは、マイクロ・プロセッサでありうるが、代わりに、従来技術によるプロセッサ、コントローラ、マイクロコントローラ、あるいは順序回路を用いることも可能である。プロセッサは、例えばＤＳＰとマイクロ・プロセッサとの組み合わせ、複数のマイクロ・プロセッサ、ＤＳＰコアと連携する１または複数のマイクロ・プロセッサ、またはその他任意のこのような構成であるコンピューティング・デバイスの組み合わせとして実現されうる。
【００５５】
本明細書で開示された実施形態に関して記述された方法またはアルゴリズムのステップは、ハードウェアにおいて直接的に、プロセッサによって実行されるソフトウェア・モジュールによって、あるいはこれら２つの組み合わせによって具体化されうる。ソフトウェア・モジュールは、ＲＡＭメモリ、フラッシュ・メモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハード・ディスク、リムーバブル・ディスク、ＣＤ−ＲＯＭ、あるいは当該技術分野で知られているその他の型式の記憶媒体に収納されうる。典型的な記憶媒体は、この記憶媒体から情報を読み取ったり、この記憶媒体に情報を書き込むことができるプロセッサのようなプロセッサに接続される。あるいは、この記憶媒体は、プロセッサに統合されうる。このプロセッサと記憶媒体とは、ＡＳＩＣ内に存在しうる。ＡＳＩＣは、ユーザ端末内に存在しうる。あるいは、プロセッサおよび記憶媒体は、ユーザ端末内のディスクリート部品として存在しうる。
【００５６】
開示された実施形態の前述した記載は、いかなる当業者であっても、本発明を製造または使用できるように提供される。これら実施形態に対するさまざまな変形例もまた、当業者には明らかであって、本明細書で定義された一般的な原理は、本発明の主旨または範囲から逸脱することなく他の例にも適用されうる。このように、本発明は、本明細書で示された実施形態に限定されことは意図されておらず、本明細書に記載された原理および新規な特徴に一致した最も広い範囲に相当するものとされる。
［Ｃ１］
マルチ・スレッド・プロセッサの負荷を判定する方法であって、
少なくとも１つの予め定められた期間中、前記マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドにおいて、少なくとも１つのアイドル・タスクを実行することと、前記アイドル・タスクは、前記少なくとも１つのスレッドにおいて、他の何れのタスクも実行されていない場合に、ループおよび実行するように構成されている、
前記少なくとも１つの予め定められた期間において、前記少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行を判定することと、
前記少なくとも１カウントであるループ実行数に基づいて、少なくとも、前記マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドの負荷を判定することと、
を備える方法。
［Ｃ２］
測定された前記負荷に基づいて、前記マルチ・スレッド・プロセッサのためのパフォーマンス・プロファイルを決定すること、をさらに備えるＣ１に記載の方法。
［Ｃ３］
前記マルチ・スレッド・プロセッサのうちの１または複数のスレッドのおのおのについて、前記パフォーマンス・プロファイルを表示すること、をさらに備えるＣ２に記載の方法。
［Ｃ４］
前記少なくとも１つの予め定められた期間において、少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行を判定することはさらに、
複数の予め定められた期間において、各予め定められた期間中、１または複数のスレッドにおいておのおの実行されているアイドル・タスクに関する各カウントのためのエントリを含むアイドル・タスク・カウントのアレイを形成することを備える、Ｃ１に記載の方法。
［Ｃ５］
前記マルチ・スレッド・プロセッサを、前記１または複数のスレッドにおいてタスクが実行されないアイドル動作に強制することと、
少なくとも１つのスレッドにおいて、前記少なくとも１つのアイドル・タスクを実行することと、
前記マルチ・スレッド・プロセッサがアイドル動作に強制されている場合、少なくとも１つの予め定められた期間において、前記少なくとも１つのスレッドにおけるアイドル・タスクの実行に関する最大カウント値を判定することと、
をさらに備えるＣ１に記載の方法。
［Ｃ６］
前記少なくとも１つの予め定められた期間における、前記少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行数の、前記最大カウント値に対する比を計算することによって、前記マルチ・スレッド・プロセッサのパフォーマンス・プロファイルを決定すること、をさらに備えるＣ５に記載の方法。
［Ｃ７］
予め定められたサンプリング期間においてすべてのスレッドをアイドルにしているマルチ・スレッド・プロセッサの、マルチ・スレッド・プロセッサ・サイクル数を判定することと、
前記予め定められたサンプリング期間中に生じるマルチ・スレッド・プロセッサ・サイクルの合計数を判定することと、
前記すべてのスレッドをアイドルにしているマルチ・スレッド・プロセッサの、予め定められたマルチ・スレッド・プロセッサ・サイクル数の、前記マルチ・スレッド・プロセッサ・サイクルの、予め定められた合計数に対する比に基づいて、前記マルチ・スレッド・プロセッサのパフォーマンス・プロファイルを導出することと、
をさらに備えるＣ１に記載の方法。
［Ｃ８］
前記マルチ・スレッド・プロセッサのうちの１または複数のスレッドのすべてについて、前記パフォーマンス・プロファイルを表示すること、をさらに備えるＣ７に記載の方法。
［Ｃ９］
マルチ・スレッド・プロセッサの負荷を判定する装置であって、
少なくとも１つの予め定められた期間中、前記マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドにおいて、少なくとも１つのアイドルなタスクを実行し、前記アイドル・タスクは、前記少なくとも１つのスレッドにおいて、他の何れのタスクも実行されていない場合に、ループおよび実行するように構成されている、
前記少なくとも１つの予め定められた期間において、少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行を判定し、
少なくとも１カウントのループ実行数に基づいて、少なくとも、前記マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドの負荷を判定する、
ように構成された少なくとも１つのプロセッサを備える、装置。
［Ｃ１０］
前記少なくとも１つのプロセッサはさらに、測定された前記負荷に基づいて、前記マルチ・スレッド・プロセッサのためのパフォーマンス・プロファイルを決定するように構成された、Ｃ９に記載の装置。
［Ｃ１１］
前記少なくとも１つのプロセッサはさらに、前記マルチ・スレッド・プロセッサのうちの１または複数のスレッドのおのおのについて、前記パフォーマンス・プロファイルを表示するように構成された、Ｃ１０に記載の装置。
［Ｃ１２］
前記少なくとも１つのプロセッサはさらに、複数の予め定められた期間において、各予め定められた期間中、１または複数のスレッドにおいておのおの実行されているアイドル・タスクに関する各カウントのためのエントリを含むアイドル・タスク・カウントのアレイを形成することによって、前記少なくとも１つの予め定められた期間において、少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行を判定するように構成された、Ｃ９に記載の装置。
［Ｃ１３］
前記少なくとも１つのプロセッサはさらに、
前記マルチ・スレッド・プロセッサを、前記１または複数のスレッドにおいてタスクが実行されないアイドル動作に強制し、
少なくとも１つのスレッドにおいて、前記少なくとも１つのアイドル・タスクを実行し、
前記マルチ・スレッド・プロセッサがアイドル動作に強制されている場合、少なくとも１つの予め定められた期間において、前記少なくとも１つのスレッドにおけるアイドル・タスクの実行に関する最大カウント値を判定する
ように構成された、Ｃ９に記載の装置。
［Ｃ１４］
前記少なくとも１つのプロセッサはさらに、前記少なくとも１つの予め定められた期間における、前記少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行数の、前記最大カウント値に対する比を計算することによって、前記マルチ・スレッド・プロセッサのパフォーマンス・プロファイルを決定する、ように構成されたＣ１３に記載の装置。
［Ｃ１５］
前記少なくとも１つのプロセッサはさらに、
予め定められたサンプリング期間においてすべてのスレッドをアイドルにしているマルチ・スレッド・プロセッサの、マルチ・スレッド・プロセッサ・サイクル数を判定し、
前記予め定められたサンプリング期間中に生じるマルチ・スレッド・プロセッサ・サイクルの合計数を判定し、
前記すべてのスレッドをアイドルにしているマルチ・スレッド・プロセッサの、予め定められたマルチ・スレッド・プロセッサ・サイクル数の、前記マルチ・スレッド・プロセッサ・サイクルの、予め定められた合計数に対する比に基づいて、前記マルチ・スレッド・プロセッサのパフォーマンス・プロファイルを導出する
ように構成された、Ｃ９に記載の装置。
［Ｃ１６］
前記少なくとも１つのプロセッサはさらに、前記マルチ・スレッド・プロセッサのうちの１または複数のスレッドのすべてについて、前記パフォーマンス・プロファイルを表示するように構成された、Ｃ１５に記載の装置。
［Ｃ１７］
マルチ・スレッド・プロセッサの負荷を判定する装置であって、
少なくとも１つの予め定められた期間中、マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドにおいて、少なくとも１つのアイドル・タスクを実行する手段と、前記アイドル・タスクは、前記少なくとも１つのスレッドにおいて、他の何れのタスクも実行されていない場合に、ループおよび実行するように構成されている、
前記少なくとも１つの予め定められた期間において、前記少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行を判定する手段と、
前記少なくとも１カウントであるループ実行数に基づいて、少なくとも、前記マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドの負荷を判定する手段と、
を備える装置。
［Ｃ１８］
測定された前記負荷に基づいて、前記マルチ・スレッド・プロセッサのためのパフォーマンス・プロファイルを決定する手段、をさらに備えるＣ１７に記載の装置。
［Ｃ１９］
前記マルチ・スレッド・プロセッサのうちの１または複数のスレッドのおのおのについて、前記パフォーマンス・プロファイルを表示する手段、をさらに備えるＣ１８に記載の装置。
［Ｃ２０］
前記少なくとも１つの予め定められた期間において、前記少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行を判定する手段はさらに、
複数の予め定められた期間において、各予め定められた期間中、１または複数のスレッドにおいておのおの実行されているアイドル・タスクに関する各カウントのためのエントリを含むアイドル・タスク・カウントのアレイを形成する手段を備える、
Ｃ１７に記載の装置。
［Ｃ２１］
前記マルチ・スレッド・プロセッサを、前記１または複数のスレッドにおいてタスクが実行されないアイドル動作に強制する手段と、
少なくとも１つのスレッドにおいて、前記少なくとも１つのアイドル・タスクを実行する手段と、
前記マルチ・スレッド・プロセッサがアイドル動作に強制されている場合、少なくとも１つの予め定められた期間において、前記少なくとも１つのスレッドにおけるアイドル・タスクの実行に関する最大カウント値を判定する手段と、
をさらに備えるＣ１７に記載の装置。
［Ｃ２２］
前記少なくとも１つの予め定められた期間において、前記少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行数の、前記最大カウント値に対する比を計算することによって、前記マルチ・スレッド・プロセッサのパフォーマンス・プロファイルを決定する手段、をさらに備えるＣ２１に記載の装置。
［Ｃ２３］
予め定められたサンプリング期間においてすべてのスレッドをアイドルにしているマルチ・スレッド・プロセッサの、マルチ・スレッド・プロセッサ・サイクル数を判定する手段と、
前記予め定められたサンプリング期間中に生じるマルチ・スレッド・プロセッサ・サイクルの合計数を判定する手段と、
前記すべてのスレッドをアイドルにしているマルチ・スレッド・プロセッサの、予め定められたマルチ・スレッド・プロセッサ・サイクル数の、前記マルチ・スレッド・プロセッサ・サイクルの、予め定められた合計数に対する比に基づいて、前記マルチ・スレッド・プロセッサのパフォーマンス・プロファイルを導出する手段と、
をさらに備えるＣ１７に記載の装置。
［Ｃ２４］
前記マルチ・スレッド・プロセッサのうちの１または複数のスレッドのすべてについて、前記パフォーマンス・プロファイルを表示する手段、をさらに備えるＣ２３に記載の装置。
［Ｃ２５］
コンピュータ・プログラム製品であって、
コンピュータに対して、マルチ・スレッド・プロセッサのパフォーマンス・プロファイルを生成させるためのコードを備えるコンピュータ読取可能な媒体を備え、前記コードは、
コンピュータに対して、少なくとも１つの予め定められた期間中、前記マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドにおいて、少なくとも１つのアイドル・タスクを実行させるためのコードと、前記アイドル・タスクは、前記少なくとも１つのスレッドにおいて、他の何れのタスクも実行されていない場合に、ループおよび実行するように構成されている、
コンピュータに対して、前記少なくとも１つの予め定められた期間において、前記少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行を判定させるためのコードと、
コンピュータに対して、前記少なくとも１カウントのループ実行数に基づいて、前記マルチ・スレッド・プロセッサのうちの少なくとも１つのスレッドの負荷を判定させるためのコードと、
を備えるコンピュータ・プログラム製品。
［Ｃ２６］
コンピュータに対して、測定された前記負荷に基づいて、前記マルチ・スレッド・プロセッサのためのパフォーマンス・プロファイルを決定させるためのコードをさらに備える、Ｃ２５に記載のコンピュータ・プログラム製品。
［Ｃ２７］
コンピュータに対して、前記マルチ・スレッド・プロセッサのうちの１または複数のスレッドのおのおのについて、前記パフォーマンス・プロファイルを表示させるためのコードをさらに備える、Ｃ２６に記載のコンピュータ・プログラム製品。
［Ｃ２８］
前記コンピュータに対して、少なくとも１つの予め定められた期間において、前記少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行を判定させるためのコードはさらに、
コンピュータに対して、複数の予め定められた期間において、各予め定められた期間中、１または複数のスレッドにおいておのおの実行されているアイドル・タスクに関する各カウントのためのエントリを含むアイドル・タスク・カウントのアレイを形成させるためのコードを備える、Ｃ２５に記載のコンピュータ・プログラム製品。
［Ｃ２９］
コンピュータに対して、前記マルチ・スレッド・プロセッサを、前記１または複数のスレッドにおいてタスクが実行されないアイドル動作に強制させるためのコードと、
コンピュータに対して、少なくとも１つのスレッドにおいて、前記少なくとも１つのアイドル・タスクを実行させるためのコードと、
前記マルチ・スレッド・プロセッサがアイドル動作に強制されている場合、コンピュータに対して、少なくとも１つの予め定められた期間において、前記少なくとも１つのスレッドにおけるアイドル・タスクの実行に関する最大カウント値を判定させるためのコードと、
をさらに備える、Ｃ２５に記載のコンピュータ・プログラム製品。
［Ｃ３０］
コンピュータに対して、前記少なくとも１つの予め定められた期間における、前記少なくとも１つのアイドル・タスクの、少なくとも１カウントのループ実行数の、前記最大カウント値に対する比を計算させることによって、前記マルチ・スレッド・プロセッサのパフォーマンス・プロファイルを決定させるためのコードをさらに備える、Ｃ２９に記載のコンピュータ・プログラム製品。
［Ｃ３１］
コンピュータに対して、予め定められたサンプリング期間においてすべてのスレッドをアイドルにしているマルチ・スレッド・プロセッサの、マルチ・スレッド・プロセッサ・サイクル数を判定させるためのコードと、
コンピュータに対して、前記予め定められたサンプリング期間中に生じるマルチ・スレッド・プロセッサ・サイクルの合計数を判定させるためのコードと、
コンピュータに対して、前記すべてのスレッドをアイドルにしているマルチ・スレッド・プロセッサの、予め定められたマルチ・スレッド・プロセッサ・サイクル数の、前記マルチ・スレッド・プロセッサ・サイクルの、予め定められた合計数に対する比に基づいて、前記マルチ・スレッド・プロセッサのパフォーマンス・プロファイルを導出させるためのコードと、
をさらに備えるＣ２５に記載のコンピュータ・プログラム製品。
［Ｃ３２］
コンピュータに対して、前記マルチ・スレッド・プロセッサのうちの１または複数のスレッドのすべてについて、前記パフォーマンス・プロファイルを表示させるためのコードをさらに備える、Ｃ３１に記載のコンピュータ・プログラム製品。
【図１】
0005612117.tif 000003
【図２】
0005612117.tif 000004
【図３】
0005612117.tif 000005
【図４】
0005612117.tif 000006
【図５】
0005612117.tif 000007
【図６】
0005612117.tif 000008
【図７】
0005612117.tif 000009
【図８】
0005612117.tif 000010