(57)【要約】      （修正有）【課題】プロセッサ（例えば、ＣＰＵ）効率を識別し、性能を動的に調節する手法を提供する。【解決手段】装置は、カウンタ１０８、効率判定モジュール１１０、及び管理モジュール１１２を含む。カウンタ１０８は、デバイスからの応答を待っているプロセッサ構成部分（例えば、プロセッサ・コア１０２）に関係するイベント生起の数を求め、効率判定モジュール１１０は、イベント生起の数に基づいて効率メトリックを判定する。管理モジュール１１２は、効率メトリックに応じて、対応するプロセッサ構成部分の１つ又は複数の動作特性を確立する。【選択図】図１
2009277228.tif 000002
【特許請求の範囲】
【請求項１】
装置であって、
イベント生起の数を求めるためのカウンタであって、前記イベント生起それぞれは、プロセッサ構成部分がデバイスからの応答を待っていることに関係するカウンタと、
前記イベント生起の数に基づいて効率メトリックを求めるための効率判定モジュールと、
前記プロセッサ構成部分の１つ又は複数の動作特性を確立するための管理モジュールであって、前記動作特性が前記効率メトリックに対応する管理モジュールとを備える装置。
【請求項２】
請求項１記載の装置であって、前記１つ又は複数の動作特性は周波数及び電圧レベルを含む装置。
【請求項３】
請求項１記載の装置であって、前記１つ又は複数の動作特性はＰ状態を含む装置。
【請求項４】
請求項１記載の装置であって、前記イベント生起の数は特定の時間間隔内に生起する装置。
【請求項５】
請求項１記載の装置であって、時間間隔を測定するためのタイマを備え、前記管理モジュールは、前記時間間隔内に、前記プロセッサ構成部分について確立されたいくつかの動作特性を制限する装置。
【請求項６】
請求項１記載の装置であって、ユーザ・インタフェース情報を受信するためのユーザ選好インタフェースを更に備え、前記管理モジュールは、前記効率メトリック及びユーザ選好情報に応じて、前記プロセッサ構成部分について前記１つ又は複数の動作特性を確立する装置。
【請求項７】
請求項１記載の装置であって、前記イベント生起は１つ又は複数の外部メモリ通信若しくは入出力通信を含む装置。
【請求項８】
請求項１記載の装置であって、前記動作特性は、２つ以上のモジュール間で連係される装置。
【請求項９】
請求項１記載の装置であって、現在の動作温度を示す信号を前記管理モジュールに供給するための温度センサを備え、前記管理モジュールは、前記信号に基づいて、利用可能なヘッドルームを判定し、前記効率メトリック及び前記利用可能なヘッドルームに基づいて前記１つ又は複数の動作特性を確立する装置。
【請求項１０】
請求項１記載の装置であって、前記管理モジュールは、
前記効率メトリックが前記プロセッサ構成部分の増加した効率を示す場合に前記プロセッサ構成部分の増加した動作周波数を確立し、
前記効率メトリックが前記プロセッサ構成部分の減少した効率を示す場合に前記プロセッサ構成部分の減少した動作周波数を確立する装置。
【請求項１１】
方法であって、
プロセッサ構成部分の効率メトリックを求める工程と、
前記プロセッサ構成部分の１つ又は複数の動作特性を選択する工程であって、前記１つ又は複数の動作特性が前記効率メトリックに対応する工程とを含む方法。
【請求項１２】
請求項１１記載の方法であって、前記１つ又は複数の動作特性を選択する工程はＰ状態を選択する工程を含む方法。
【請求項１３】
請求項１１記載の方法であって、
前記プロセッサ構成部分が装置からの応答を待つイベント生起の数を求める工程を含み、
前記効率メトリックは、前記イベント生起の数に基づく方法。
【請求項１４】
請求項１１記載の方法であって、前記１つ又は複数の動作特性を選択する工程は、
前記効率メトリックが前記プロセッサ構成部分の増加した効率を示す場合に前記プロセッサ構成部分の増加した動作周波数を選択する工程と、
前記効率メトリックが前記プロセッサ構成部分の減少した効率を示す場合に前記プロセッサ構成部分の減少した動作周波数を選択する工程とを含む方法。
【請求項１５】
請求項１１記載の方法であって、前記イベント生起は１つ又は複数の外部メモリ通信若しくは入出力通信を含む方法。
【請求項１６】
請求項１１記載の方法であって、前記効率メトリックはアプリケーションのアプリケーション履歴に基づく方法。
【請求項１７】
装置であって、
２つ以上のプロセッサ・コアと、
前記２つ以上のプロセッサ・コア毎の動作効率に基づいて前記２つ以上のプロセッサ・コア毎の動作特性を求めるための制御モジュールとを備える装置。
【請求項１８】
請求項１７記載の装置であって、前記求められた動作特性は、前記２つ以上のプロセッサ・コア毎に動作周波数又はクロックのトグルを含む装置。
【請求項１９】
請求項１７記載の装置であって、前記制御モジュールは、対応する処理コアが、装置からの応答を待っているというイベント生起の数に基づいて前記動作効率それぞれを求める装置。
【請求項２０】
請求項１７記載の装置であって、前記２つ以上のプロセッサ・コア及び前記制御モジュールは中央処理装置（ＣＰＵ）に含まれる装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にプロセッサに関し、特に動作特性の効率ベースの判定に関する。
【背景技術】
【０００２】
プロセッサのエネルギ及び電力の消費の削減は、多くの場合に一層重要になってきている。例えば、前述の電力及びエネルギの削減は、消費者にとっての全体コストを削減することが可能である。更に、前述の電力及びエネルギの削減により、モバイル製品のバッテリ寿命が増加し得る。
【０００３】
プロセッサは、種々のアクティブ・モード状態に応じて動作し得る。前述の状態はそれぞれ、特定のレベルの性能（例えば、速度）を備え得る。しかし、前述の状態の場合、電力消費はプロセッサ性能とともに増加する。更に、プロセッサはスリープ・モードで動作し得る。このモードでは、１つ又は複数の構成部分の電源をオフにして電力消費を節減することができる。
【０００４】
プロセッサ性能は多くの場合、メモリや入出力（ＩＯ）デバイスなどの外部装置や構成部分によって制限される。例えば、プロセッサは、外部装置を待っている場合、スリープ・モードに入るか、又はアクティブ状態に留まり得る。特に、期待遅延が長い場合（ハード・ディスク・ドライブからの応答を待っている場合など）、プロセッサはスリープ・モードに入り得る。しかし、期待遅延が短い場合、プロセッサは通常、応答を待っている間、アクティブ・モードに留まる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
多くの動作シナリオでは、前述の待ち時間の大半は短いとみなされる。したがって、動作中、プロセッサがその待ち時間の大半をアクティブ・モードで費やすことが一般的である。前述の時間中、プロセッサは通常、電力が非効率的な方法で実行する。
【課題を解決するための手段】
【０００６】
種々の実施例は、プロセッサ性能を動的に調節することができる手法を提供する。例えば、前述の手法は、プロセッサ効率を識別することができ、プロセッサの性能（例えば、その速度）を調節することができる。前述の調節には、プロセッサの動作状態（例えば、そのＰ状態）を変えることが関係し得る。例えば、プロセッサがメモリ制約下にあるか、又は、別の装置（グラフィック・カードなど）が待っていることを検出すると、手法により、より低速で実行するようにプロセッサの動作が調節され得る。その結果、エネルギが節減される。対照的に、前述の制限によってプロセッサがもうメモリ制約下にないことを検出すると、プロセッサは、より高い周波数で動作することにより、向上した性能（より速い動作）をもたらすために、節減されたエネルギを再投資することができる。プロセッサ動作に対する前述の調節は種々の手法を伴い得る。例示的な手法には、電圧変動有り、又は電圧変動なしでプロセッサの動作周波数を変更し、かつ／又はプロセッサのクロック信号をオン及びオフに切り換えることが含まれる。
【０００７】
実施例では、前述の手法はプロセッサ内で実現することができる。しかし、更なる実施例では、実現形態は、外部ソフトウェア及び／又は外部ハードウェアを伴い得る。
【０００８】
実施例は、１つ又は複数の構成要素を含み得る。構成要素は、特定の動作を行うよう構成された何れの構造も含み得る。各構成要素は、設計パラメータ又は性能制約の特定の組についての必要に応じて、ハードウェア、ソフトウェア、又はそれらの何れかの構成として実現することができる。実施例は、例として特定の構成における特定の構成要素によって説明され得るが、別の実施例における構成要素の他の組合せを含み得る。
【図面の簡単な説明】
【０００９】
【図１】第１の装置の一実施例を示す図である。
【図２】第２の装置の一実施例を示す図である。
【図３】例示的なロジック・フローの一実施例を示す図である。
【図４】性能グラフの一実施例を示す図である。
【図５】例示的なシステムの一実施例を示す図である。
【発明を実施するための形態】
【００１０】
「ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ」又は「ａｎ  ｅｍｂｏｄｉｍｅｎｔ」への言及は何れも、本願の実施例に関して説明した特定の構成、構造又は特性が少なくとも一実施例に含まれていることを意味している。本明細書中の種々の箇所に「ｉｎ  ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ」及び「ｉｎ  ａｎ  ｅｍｂｏｄｉｍｅｎｔ」が記載されていることは、必ずしも、全てが同じ実施例を表している訳でない。
【実施例】
【００１１】
図１は、効率の判定に基づいて動作を調節することができる例示的な装置１００を示す。装置１００は、種々の構成要素を含み得る。例えば、図１は、装置１００が、プロセッサ・コア１０２と、制御装置１０４と、外部インタフェース１０６とを含み得る。更に、装置１００は温度センサ１１６を含み得る。装置１００の構成要素はプロセッサ内で実現することができる。例示的なプロセッサは、（限定列挙でないが）中央処理装置（ＣＰＵ）、グラフィックス・プロセッサ及びディジタル信号プロセッサ（ＤＳＰ）を含む。
【００１２】
プロセッサ・コア１０２は、特定の入力の組に対して特定の出力を生成する動作を行う。前述の入力は、命令セットに関連付けられた命令であり得る。実施例では、プロセッサ・コア１０２は、複数のロジック・ゲートで実現することができ、汎用機能について設計することができる。
【００１３】
プロセッサ・コア１０２は種々のアクティブ・モード状態で動作することができる。例えば、装置１００は別々の性能状態（「Ｐ状態」とも呼ばれる）で動作し得る。前述のＰ状態はそれぞれ、対応する動作周波数及び電圧レベルを有する。特に、より高い電圧及び周波数を有するＰ状態は、より高い性能（例えば、より高い速度）をもたらす。しかし、上述の通り、性能における前述の増加は、より大きな電力消費を必要とする。
【００１４】
外部インタフェース１０６は、１つ又は複数の相互接続により、種々の外部装置とやりとりし得る。前述の装置は、（限定列挙でないが）メモリ（例えば、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ））、グラフィックス・チップ、Ｉ／Ｏデバイス、及び／又はディスク・ドライブを含み得る。例示的な相互接続は、１つ若しくは複数のバス・インタフェース及び／又は１つ若しくは複数のポイントツーポイント・インタフェースを含む。しかし、実施例は前述の例に限定されない。よって、外部インタフェース１０６は、情報の前述のやりとりを容易にするための制御ロジック及び電子装置（例えば、送受信器）を含み得る。
【００１５】
外部インタフェース１０６はユーザ選好インタフェース１２８を含み得る。ユーザ選好インタフェース１２８は、種々のグラフィック・ユーザ・インタフェース（ＧＵＩ）構成要素を使用して、ユーザ又は操作者に向けて情報を表示するためにインタフェースとして動作し得る。ユーザ選好インタフェース１２８は、ユーザからの情報（例えば、ユーザ・コマンド、ユーザ選好等など）を受信するよう動作することもできる。特に、ユーザ選好インタフェース１２８は、装置１００の他の構成要素の中でもとりわけ、効率判定モジュール１１０、管理モジュール１１２及びポリシー・モジュール１１４の選好情報及び制御指令を受信することができる。
【００１６】
実施例では、プロセッサ・コア１０２は、特定の動作に関するデータを生成することができる。このデータは１つ又は複数のカウンタによって蓄積することができる。例えば、図１は、特定のイベントの生起を集計するイベント・カウンタ１０８を有するプロセッサ・コア１０２を示す。前述のイベントは、プロセッサ・コア１０２が外部装置からの応答を待つというイベントを含み得る。前述のイベントの例には、外部装置との通信（外部メモリとの通信、Ｉ／Ｏ通信、グラフィックス・プロセッサ／カードとの通信、及び／又はハード・ドライブとの通信など）を含む。しかし、実施例は前述の例に限定されない。
【００１７】
例えば、カウンタ１０８は、１つ又は複数の特定のタイプのメモリ・アクセスを集計することができる。前述のアクセスの例には、（限定列挙でないが）長持続時間アクセス、投機的でないアクセス、及び／又は他の命令の実行を阻止するアクセスが含まれる。
【００１８】
イベント・カウンタ１０８は、前述のイベントの生起を識別するための制御ロジックを含む。この制御ロジックは、ハードウェア、ソフトウェア、及び／又はファームウェアの何れの組合せにおいても実現することができる。イベント識別は、対応するインタフェース（例えば、バス）信号及び／又はコマンドの存在に基づいて生起し得る。更に、イベント識別は、外部装置アクセスに関連付けられたソフトウェア命令の実行により、かつ、データを待っている処理中のループの存在によって生じ得る。しかし、実施例は前述の例に限定されない。
【００１９】
特に、イベント・カウンタ１０８は、先行する（例えば、直前の）時間間隔において生じた前述のイベントの集計を生成することができる。よって、イベント・カウンタ１０８は、スライド式時間ウィンドウ内で生じるイベント・タリーを蓄積する。種々の時間間隔持続時間を用いることができる。例示的な持続時間は１ミリ秒である。図１に示すように、このタリーは、カウント１２０としての制御装置１０４に供給される。実施例では、カウント１２０は、並列（例えば、１６ビット）信号線を介して制御装置１０４に供給することができる。しかし、他の手法を代替的に用いることができる。
【００２０】
制御装置１０４は、プロセッサ・コア１０２の性能特性を確立する。前述の確立された性能特性はプロセッサ・コア１０２の評価された動作効率に基づく。図１に示すように、制御装置１０４は効率判定モジュール１１０、管理モジュール１１２及びタイマ１１８を含む。
【００２１】
効率判定モジュール１１０は、その性能に基づいてプロセッサ・コア１０２の動作効率を判定する。例えば、効率判定モジュール１１０は、効率メトリック１２２をカウント１２０から判定することができる。
【００２２】
前述の通り、カウント１２０は、時間間隔にわたって（例えば、スライド式時間ウィンドウ内で）生起したいくつかのイベントを示す。前述のイベントは、プロセッサ・コア１０２が外部装置からの応答を待つイベントを含み得る。よって、カウント１２０は、より大きい場合に、より低い効率を示し、より小さい場合に、より高い効率を示す。よって、効率判定モジュール１１０は、カウント１２０に反比例するような効率メトリック１２２を求めることができる。
【００２３】
効率メトリック１２２をカウント１２０から得ることに加えて、又は効率メトリック１２２をカウント１２０から得ることの代わりに、効率判定モジュール１１０は、種々の他の手法を使用して効率メトリック１２２を求めることができる。例えば、一実施例では、効率判定モジュール１１０は、試行錯誤手法を使用して効率メトリック１２２を求めることができる。例えば、所望の測定出力が達成されるまで、一定範囲の値を、効率メトリック１２２について実現することができる。測定出力は、電力消費レート、平均プロセッサ利用度、アプリケーション応答時間等であり得る。例えば、一実施例では、アプリケーション履歴を生成するためにプロセッサ・コア１０２（又は別のプロセッサ・コア）によって先行して実行されたアプリケーションの種々の特性を監視し、記録することにより、効率メトリック１２２を求めることができる。効率判定モジュール１１０は、アプリケーション履歴及び予測アルゴリズムを使用して、アプリケーションがプロセッサ・コア１０２によって実際に実行される際に使用するための効率メトリック１２２の値を予測することができる。他の手法及びプロセッサ・コア・ヒューリスティックスを使用して効率メトリック１２２を生成することができ、実施例はこの点に限定されるものでない。管理モジュール１１２は、プロセッサ・コア１０２の動作特性を確立する。これは、プロセッサ・コア１０２の動作周波数及び／又は電圧の確立を含み得る。プロセッサ・コア１０２の前述の動作特性は効率メトリック１２２に基づいて確立することができる。よって、図１は、効率判定モジュール１１０から効率メトリック１２２を受信する管理モジュール１１２を示す。
【００２４】
効率メトリック１２２を受信すると、管理モジュール１１２は、対応する動作特性を選択することができる。この選択に基づいて、管理モジュール１１２は指令１２４をプロセッサ・コア１０２に送出することがでる。この指令は、選択された特性に応じて動作する旨をプロセッサ・コア１０２に指示する。上述の通り、前述の動作特性は特定の動作周波数及び／又は電圧（例えば、特定のＰ状態）を含み得る。あるいは、又は更に、前述の特性は、プロセッサ・コア１０２のクロック・トグル設定を含み得る。
【００２５】
プロセッサ・コア１０２の動作特性の前述の選択は、効率メトリック１２２の範囲を特定の動作特性にマッピングする手法に応じ得る。上述の通り、前述の特性は、動作周波数及び／又は電圧（例えば、Ｐ状態）を含み得る。あるいは、又は更に、前述の特性は、プロセッサ・コア１０２のクロック・トグル設定を含み得る。
【００２６】
効率メトリック１２２及び動作特性の範囲間の前述のマッピングはポリシー・モジュール１１４によって提供することができる。図１に示すように、ポリシー・モジュール１１４は管理モジュール１１２に含めることができる。実施例では、ポリシー・モジュール１１４は、前述の対応関係を含む記憶媒体（例えば、メモリ）を含み得る。しかし、他の実現手法を用いることができる。
【００２７】
動作特性の割り当てには、ある程度のコストが伴い得る。例えば、動作周波数及び電圧を変更する工程は、ＰＬＬをロッキングし、電圧を変更することを伴う。これには、ある程度の時間がかかり得る。動作特性を頻繁に変更すると、差し引き、利得ではなく損失が生じる。タイマ１１８を使用して、秒毎の所定の遷移数以下に動作特性変動を制限することが可能である。
【００２８】
前述の通り、装置１００の外部インタフェース１０６はユーザ選好インタフェース１２８を含み得る。ユーザ選好インタフェース１２８は、ユーザ又は操作者がアルゴリズムの選好を追加することを可能にする。前述のポリシーの例には、エネルギ節減の増加、性能の向上等を含み得る。
【００２９】
前述の通り、装置１００は温度センサ１１６を含み得る。このセンサは、装置１００の現在の動作温度を求める。温度センサ１１６は種々のやり方で実現することができる。例えば、温度センサ１１６は、サーミスタベースの回路を含み得る。
【００３０】
図１に示すように、温度センサ１１６は、現在の動作温度を示す信号１２５を管理モジュール１１２に供給することができる。この信号に基づいて、管理モジュール１１２は、最大温度を超えさせることなく、装置１００が扱い得る更なる電力消費の量を求めることができる。この更なる電力消費は、「ヘッドルーム」として表される。
【００３１】
管理モジュール１１２は、この更なるヘッドルームを種々のやり方で求めることができる。例示的な実現形態では、管理モジュール１１２は、特定の温度値（又は値の範囲）に対する、予め記憶されたヘッドルーム値を含むルックアップ・テーブルを含み得る。更なる例示的な実現形態では、管理モジュール１１２はヘッドルームをリアルタイムで算出することができる。
【００３２】
このヘッドルームに基づいて、管理モジュール１１２は、動作特性の限度（最大動作周波数及び／又は電圧（例えば、Ｐ状態）など）並びにクロック・トグル限度を求めることができる。よって、指令１２４の前述の特性を求めるために、ポリシー・モジュール１１４は、求められたヘッドルームを超えさせることがないような効率メトリック１２２から求められた動作特性を修正することができる。
【００３３】
図２は、効率の判定に基づいて動作を調節することができる更なる装置２００を示す。装置２００は、種々の構成要素を含み得る。例えば、図２は、装置２００が、複数のプロセッサ・コア２０２ａ−ｂと、制御装置２０４と、外部インタフェース２０６とを含み得る。更に、装置１００は温度センサ２１６を含み得る。装置２００の構成要素はプロセッサ（例えば、ＣＰＵ、グラフィックス・プロセッサ、ＤＳＰ等）内で実現することができる。しかし、実施例は前述の実現形態に限定されない。
【００３４】
プロセッサ・コア２０２ａ−ｂはそれぞれ、特定の入力の組に対して特定の出力を生成する動作を行う。前述の入力は、命令セットに関連付けられた命令であり得る。実施例では、プロセッサ・コア２０２ａ−ｂはそれぞれ、複数のロジック・ゲートで実現することができ、汎用機能について設計することができる。更に、プロセッサ・コア２０２ａ−ｂはそれぞれ、種々のアクティブ・モード状態で（例えば、別々のＰ状態で）動作することができる。
【００３５】
外部インタフェース２０６は、１つ又は複数の相互接続（バス・インタフェース及び／又はポイントツーポイント・インタフェース）を介して種々の装置と情報をやりとりすることができる。上述の通り、前述の装置は、（限定列挙でないが）メモリ（例えば、ＤＲＡＭ）、グラフィックス・チップ、Ｉ／Ｏデバイス、及び／又はディスク・ドライブを含み得る。外部インタフェース２０６は、図１を参照して上述したように、外部インタフェース１０６の方法で実現することができる。
【００３６】
実施例では、プロセッサ・コア２０２ａ−ｂはそれぞれ、特定の動作に関するデータを生成することができる。このデータは１つ又は複数のカウンタによって蓄積することができる。例えば、図２は、イベント・カウンタ２０８ａを含むプロセッサ・コア２０２ａ、及びイベント・カウンタ２０８ｂを含むプロセッサ・コア２０２ｂを含む。イベント・カウンタ２０８ａは、プロセッサ・コア２０２ａ内の特定のイベントの生起を集計する。同様に、イベント・カウンタ２０８ｂは、プロセッサ・コア２０２ｂ内の特定のイベントの生起を集計する。
【００３７】
図１を参照して上述したように、前述のイベントは、対応するプロセッサ・コア２０２が、外部装置からの応答を待っているというイベントを含み得る。前述のイベントの例には、外部装置との通信（外部メモリとの通信、Ｉ／Ｏ通信、グラフィックス・プロセッサ／カードとの通信、及び／又はハード・ドライブとの通信など）を含む。しかし、実施例は前述の例に限定されない。
【００３８】
例えば、カウンタ２０８ａ−ｂはそれぞれ、１つ又は複数の特定のタイプのメモリ・アクセスを集計することができる。前述のアクセスの例には、（限定列挙でないが）長持続時間アクセス、投機的でないアクセス、及び／又は他の命令の実行を阻止するアクセスが含まれる。
【００３９】
イベント・カウンタ２０８ａ−ｂはそれぞれ、前述のイベントの生起を識別するための制御ロジックを含み得る。この制御ロジックは、ハードウェア、ソフトウェア、及び／又はファームウェアの何れの組合せにおいても実現することができる。イベント識別は、対応するインタフェース（例えば、バス）信号及び／又はコマンドの存在に基づいて生じ得る。更に、イベント識別は、外部装置アクセスに関連付けられたソフトウェア命令の実行により、かつ、データを待っている処理中のループの存在によって生じ得る。しかし、実施例は前述の例に限定されない。
【００４０】
よって、イベント・カウンタ２０８ａ−ｂはそれぞれ、先行する（例えば、直前の）時間間隔において生じた前述のイベントのタリーを生成することができる。種々の時間間隔持続時間を用いることができる。例示的な持続時間は１ミリ秒である。図２に示すように、イベント・カウンタ２０８ａはそのタリーを制御装置２０４にカウント２２０ａとして供給し、イベント・カウンタ２０８ｂはそのタリーを制御装置２０４にカウント２２０ｂとして供給する。実施例では、カウント２２０ａ−ｂはそれぞれ、並列（例えば、１６ビット）信号線を介して制御装置２０４に供給することができる。しかし、他の手法を代替的に使用することができる。
【００４１】
制御装置２０４は、プロセッサ・コア２０２ａ−ｂ毎の性能特性を、それらの評価動作効率に基づいて確立する。図２に示すように、制御装置１０４は、効率判定モジュール２１０ａ−ｂ、及び管理モジュール２１２を含む。
【００４２】
効率判定モジュール２１０ａ−ｂはそれぞれ、対応するプロセッサ・コアの動作効率を求める。特に、効率判定モジュ―ル２１０ａはプロセッサ・コア２０２ａの動作効率を求め、効率判定モジュール２１０ｂはプロセッサ・コア２０２ｂの動作効率を求める。前述の効率はそれぞれ、対応するプロセッサ・コアの性能に基づいて求めることができる。
【００４３】
例えば、効率判定モジュール２１０ａは、効率メトリック２２２ａをカウント２２０ａから求めることができ、効率判定モジュール２１０ｂは、効率メトリック２２２ｂをカウント２２０ｂから求めることができる。よって、図１を参照して上述したように、効率判定モジュール２１０ａ−ｂは、カウント２２０ａ及び２２０ｂそれぞれに反比例するように効率メトリック２２２ａ及び２２２ｂを求めることができる。
【００４４】
管理モジュール２１２はプロセッサ・コア２０２ａ−ｂの動作特性を確立する。これは、プロセッサ・コア２０２ａ−ｂの動作周波数及び／又は電圧（例えば、Ｐ状態）の確立を含み得る。あるいは、又は更に、前述の特性は、プロセッサ・コア１０２のクロック・トグル設定を含み得る。プロセッサ・コア２０２ａ−ｂの前述の動作特性は、効率メトリック２２２ａ−ｂに基づいて確立することができる。よって、図２は、管理モジュール２１２が、効率メトリック２２２ａ−ｂを効率判定モジュール２１０ａ−ｂから受信することを示している。
【００４５】
前述の効率メトリックを受信すると、管理モジュール２１２は、プロセッサ２０２ａ−２０２ｂ毎に対応する動作特性を選択することができる。例えば、管理モジュール２１２は、指令２２４ａをプロセッサ・コア２０２ａ、指令２２４ｂ及びプロセッサ・コア２０２ｂに送出することができる。前述の指令は、それぞれ毎に選択された動作特性によって動作するようプロセッサ・コア２０２ａ−ｂに指示する。
【００４６】
図１を参照して上述したように、プロセッサ・コア２０２ａ−ｂの動作特性の選択は、効率メトリック２２２ａ−ｂの範囲を特定の動作特性にマッピングする手法に応じ得る。このマッピングはポリシー・モジュール２１４によって提供することができる。図２に示すように、ポリシー・モジュール２１４は管理モジュール２１２に含まれ得る。更に、ポリシー・モジュール２１４は、図１を参照して上述したように、ポリシー・モジュール１１４のやり方で実現することができる。
【００４７】
あるいは、又は更に、管理モジュール２１２は、プロセッサ・コア２０２ａ及び２０２ｂの動作特性の連係を実行することができる。連係の例は、コア２０２ａ及び２０２ｂへの単一の周波数及び電圧を選択することであり得る。更に、管理モジュール２１２は種々のバジェット割り当てを行うことができる。前述のバジェット割り当て手法は、対応する効率メトリック２２２ａ及び２２ｂに基づいてプロセッサ・コア２０２ａ及び２０２ｂそれぞれに動作状態を比例的に割り当てる手法を含み得る。しかし、他の手法を用いることができる。よって、実施例は効果的には、別々の構成部分間で電力容量を均衡させることができる。
【００４８】
前述の通り、装置２００は温度センサ２１６を含み得る。このセンサは、装置２００の現在の動作温度を求める。温度センサ２１６は種々のやり方で実現することができる。例えば、温度センサ２１６は、サーミスタベースの回路を含み得る。
【００４９】
図２に示すように、温度センサ２１６は、現在の動作温度を示す信号２２５を管理モジュール２１２に供給することができる。この信号に基づいて、管理モジュール２１２は、最大温度を超えさせることなく、装置２００が扱い得る更なる電力消費の量を求めることができる。この更なる電力消費は、「ヘッドルーム」として表される。
【００５０】
管理モジュール２１２は、この更なるヘッドルームを種々のやり方で求めることができる。例示的な実現形態では、管理モジュール２１２は、特定の温度値（又は値の範囲）に対する、予め記憶されたヘッドルーム値を含むルックアップ・テーブルを含み得る。
【００５１】
このヘッドルームに基づいて、管理モジュール２１２は、動作特性の限度（最大動作周波数及び／又は電圧（例えば、Ｐ状態）など）を求めることができる。あるいは、又は更に、クロック・トグル限度をプロセッサ・コア２０２ａ−ｂについて求めることができる。よって、指令２２４ａ−ｂの前述の特性を求めるために、ポリシー・モジュール２１４は、求められたヘッドルームを超えさせられないように効率メトリック２２２ａ−ｂから求められる動作特性を修正することができる。
【００５２】
一般の動作では、図１及び図２の実施例は、外部の制約による非効率的なプロセッサ動作（例えば、外部装置を待っている状態）の生起を識別する。よって、前述の生起が識別されると、より低い電力消費（及びより少ない性能）をもたらす動作特性を選択することができる。前述の特性は、アクティブ・モード状態（より低いＰ状態）を含み得る。あるいは又は更に、前述の特性は、コア１０２及び／又はコア２０２ａ−ｂのクロック・トグリング特性を含み得る。より少ない性能容量を供給するが、選択された特性は実際の性能を損なうものでない。これは、更なる性能容量が前述の時点において必要でないからである。
【００５３】
逆に、前述の非効率的動作の生起が減少した場合、より高い電力消費（及びより大きな性能）をもたらす動作特性を選択することができる。前述の特性は、アクティブ・モード状態（例えば、より高いＰ状態）を含み得る。あるいは又は更に、前述の特性はコア１０２及び／又はコア２０２ａ−２０２ｂのクロック・トグル特性を含み得る。よって、前述の手法により、電力消費を効果的に節減することができる。
【００５４】
更に、実施例は、利用可能なヘッドルームを求めることができる。前述の判定は温度センサからのものであり得る。よって、動作パラメータは、効率に基づいて選択することができ、利用可能なヘッドルームを超えないものとする。
【００５５】
図１及び図２の構成は、ハードウェア、ソフトウェア及び／又はファームウェアの何れの組合せでも実現することができる。更に、図１及び図２は、単一のイベント・カウンタをそれぞれが有するプロセッサ・コアを示しているが、プロセッサ・コアは複数のイベント・カウンタを含み得る。前述の実現形態では、複数のカウンタは、各種イベントの生起を集計することができる。よって、実施例は、複数のカウントに基づいて効率メトリックを求めることができる。
【００５６】
実施例は、添付図面及び対応する例を参照して更に説明し得る。添付図面の一部はロジック・フローを含み得る。本明細書及び特許請求の範囲記載の前述の図面は特定のロジック・フローを含み得るが、特定のロジック・フローは、本明細書記載の一般的な機能をどのようにして実現することが可能であるかの例を記載しているに過ぎない。更に、特定のロジック・フローは、別途明記しない限り、必ずしも、提示された順序で実行されなくてよい。更に、特定のロジック・フローは、ハードウェア構成要素、プロセッサによって実行されるソフトウェア構成要素、又はそれらの何れかの組合せによって実現することができる。実施例はこの点に限定されるものでない。
【００５７】
図３は、効率に基づいた動作特性の判定を伴う例示的なロジック・フロー３００の図である。この図は特定の手順を示しているが、他の手順を使用することができる。更に、表した動作は、種々の並列及び／又は連続した組合せで行うことができる。
【００５８】
図３に示すように、ロジック・フロー３００は、１つ又は複数のプロセッサ構成部分（例えば、１つ又は複数のプロセッサ・コア）に関するイベント・データが生成されるブロック３０２を含む。例えば、これは、プロセッサ構成部分毎に、プロセッサ構成部分が装置からの応答を待っているというイベント生起の数を求めることを伴い得る。
【００５９】
ブロック３０４では、処理構成部分の効率メトリックがイベント・データから求められる。図１を参照すれば、これは、効率判定モジュール１１０による効率メトリック１２２の生成を伴い得る。更に、図２の点では、これは、効率判定モジュール２１０ａ及び２１０ｂそれぞれによる効率メトリック２２２ａ及び２２２ｂの生成を伴い得る。
【００６０】
ブロック３０６で、効率メトリックに基づいて、動作特性がプロセッサ構成部分毎に選択される。図１及び図２を参照すれば、前述の特性は、１つ又は複数のプロセッサ構成部分毎の動作周波数及び／又は電圧（例えば、Ｐ状態）を含み得る。あるいは、又は更に、前述の特性は、１つ又は複数のプロセッサ構成部分毎のクロック・トグル設定を含み得る。前述の選択から、１つ又は複数のプロセッサ構成部分は、ブロック３０８で、動作特性を使用するよう指示され得る。
【００６１】
図４は、動作周波数の関数としての性能（例えば、速度）のプロットを含むグラフ４００である。前述のプロットは、限定でなく、例証の目的で示している。例えば、プロセッサ性能が、その動作周波数（及び、よって、その電力消費）の増加とともに向上するという理想的な性能プロファイルを示すプロット４０２を含む。同様に、プロット４０４は、動作周波数が増加するとプロセッサ性能におけるかなりの向上が生じるプロファイルを示す。
【００６２】
対照的に、プロット４０６は、外部装置によって制約を受けるプロセッサの性能プロファイルを示す。本明細書及び特許請求の範囲に記載されたように、これは、外部装置からの応答をプロセッサが待っている状態が関係するかなりの数の生起を伴い得る。よって、プロット４０６の場合、周波数の増加による性能の向上は（あっても）最小になる。よって、この性能プロファイルの場合、一般に、周波数を増加させることは望ましいものでない。これは、性能におけるわずかな向上を達成するために、更なる電力消費をかなり必要とするからである。
【００６３】
図５は例示的なシステムの実施例を示す図である。特に、図５は、種々の構成要素を含み得るシステム５００を示す図である。例えば、図５は、システム５００が、プロセッサ５０２と、チップセット５０４と、入出力（Ｉ／Ｏ）装置５０６と、ランダム・アクセス・メモリ（ＲＡＭ）（ダイナミックＲＡＭ（ＤＲＡＭ）など）５０８と、リード・オンリー・メモリ（ＲＯＭ）５１０とを含み得る。前述の構成要素は、ハードウェア、ソフトウェア、ファームウェア、又は何れかの組み合わせで実現することができる。しかし、実施例は前述の例に限定されない。
【００６４】
図５に示すように、Ｉ／Ｏ装置５０６、ＲＡＭ５０８及びＲＯＭ５１０はチップセット５０４を介してプロセッサ５０２に結合される。チップセット５０４は、バス５１２により、プロセッサ５０２に結合することができる。よって、バス５１２は複数の線を含み得る。
【００６５】
プロセッサ５０２は、１つ又は複数のコアを含む中央処理装置であり得る。よって、プロセッサ５０２は、種々の動作状態（１つ又は複数のアクティブ・モードＰ状態など）に入り得る。よって、プロセッサ５０２は、図１乃至図３を参照して上述した構成を含み得る。例えば、プロセッサ５０２は、装置１００の構成要素、及び／又は装置２００の構成要素を含み得る。
【００６６】
したがって、実施例では、プロセッサ５０４の動作特性（例えば、Ｐ状態）は、外部装置からの応答を待っているというイベントに基づいて確立することができる。前述の外部装置の例には、（限定列挙でないが）チップセット５０４、Ｉ／Ｏ装置５０６、ＲＡＭ５０８及びＲＯＭ５１０が含まれる。
【００６７】
数多くの特定の詳細を本明細書及び特許請求の範囲において記載して、本願の実施例が詳細に理解されるようにしている。しかし、前述の具体的な詳細なしで本願の実施例を実施することができることは当業者に明らかになるであろう。一方、周知の動作、構成部分及び回路は、本発明を分かりにくくすることのないように詳細には説明していない。本明細書及び特許請求の範囲記載の特定の構造的な詳細及び機能的な詳細は、代表的なものであり得、本願の実施例の範囲を必ずしも限定するものでない。
【００６８】
種々の実施例は、ハードウェア構成要素、ソフトウェア構成要素、又はそれらの組合せを使用して実現することができる。ハードウェア構成要素の例には、プロセッサ、マイクロプロセッサ、回路、回路エレメント（例えば、トランジスタ、抵抗器、コンデンサ、インダクタ等）、集積回路、特殊用途向集積回路（ＡＳＩＣ）、プログラム可能なロジック・デバイス、ディジタル信号プロセッサ（ＤＳＰ）、フィールド・プログラム可能なゲート・アレイ（ＦＤＰＡ）、ロジック・ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等があげられる。ソフトウェアの例は、ソフトウェア・コンポーネント、プログラム、アプリケーション、コンピュータ・プログラム、アプリケーション・プログラム、システム・プログラム、マシン・プログラム、オペレーティング・システム・ソフトウェア、ミドルウェア、ファームウェア、ソフトウェア・モジュール、ルーチン、サブルーチン、関数、手法、手順、ソフトウェア・インタフェース、アプリケーション・プログラム・インタフェース（ＡＰＩ）、命令セット、計算コード、コンピュータ・コード、コード・セグメント、コンピュータ・コード・セグメント、ワード、値、シンボル、又はそれらの何れかの組合せを含み得る。実施例がハードウェア構成要素及び／又はソフトウェア構成要素を使用して実現されるか否かの判定は、何れかの数の要因（所望の計算速度、電力レベル、耐熱性、処理サイクル・バジェット、入力データ・レート、出力データ・レート、メモリ・リソース、データ・バス速度や他の設計上若しくは性能上の制約）に応じて変わり得る。
【００６９】
特定の実施例は、「ｃｏｕｐｌｅｄ」及び「ｃｏｎｎｅｃｔｅｄ」の語、並びにそれらの派生形を使用して説明することができる。前述の語は、互いに同義語であることを意図していない。例えば、２つ以上の構成要素が互いに物理的又は電気的に直接接触している旨を示す「ｃｏｎｎｅｃｔｅｄ」及び／又は「ｃｏｕｐｌｅｄ」を使用して説明することができる。しかし、「ｃｏｕｐｌｅｄ」は、２つ以上の構成要素が互いに直接接触していないが、なお、互いに協働又は相互作用することも意味し得る。
【００７０】
特定の実施例は例えば、マシンによって実行されると、本願の実施例による方法及び／又は動作をマシンに行わせ得る命令又は命令セットを記憶することができるマシン読み取り可能な媒体又は製品を使用して実現することができる。前述のマシンは、例えば、適切な処理プラットフォーム、計算プラットフォーム、計算装置、処理装置、計算システム、処理システム、コンピュータ、プロセッサ等を含み得、ハードウェア及び／又はソフトウェアの何れかの適切な組合せを使用して実現することができる。マシン読み取り可能な媒体又は製品は、例えば、何れかの適切なタイプのメモリ装置、メモリ・デバイス、メモリ製品、メモリ媒体、記憶装置、記憶製品、記憶媒体、及び／又は記憶装置、例えば、メモリ、取り外し可能な媒体若しくは取り外し可能でない媒体、消去可能な媒体若しくは消去可能でない媒体、書込可能な媒体若しくは書換可能な媒体、ディジタル媒体若しくはアナログ媒体、ハード・ディスク、フロッピー（登録商標）・ディスク、コンパクト・ディスク・リード・オンリー・メモリ（ＣＤ−ＲＯＭ）、記録可能なコンパクト・ディスク（ＣＤ−Ｒ）、書換可能なコンパクト・ディスク（ＣＤ−ＲＷ）、光ディスク、磁気媒体、光磁気媒体、取り外し可能なメモリ・カード若しくはディスク、各種ディジタル多用途ディスク（ＤＶＤ）、テープ、カセット等を含み得る。命令は、何れかの適切な高位、低位、オブジェクト指向、ビジュアル、コンパイル済みの、及び／又は解釈されたプログラミング言語を使用して実現される何れかの適切なタイプのコード（ソース・コード、コンパイル済みコード、解釈されたコード、実行可能なコード、静的コード、動的コード、暗号化コード等など）を含み得る。
【００７１】
主題が、構造上の構成及び／又は方法論的動作に特有の言語で説明されているが、特許請求の範囲記載の主題が上述の特定の構成又は動作に必ずしも限定されないものとする。むしろ、上述の特定の構成及び動作は、特許請求の範囲を実現する形態例として記載している。
【符号の説明】
【００７２】
１００  装置
１０８  イベント・カウンタ
１１０  効率判定モジュール
１１２  管理モジュール
【図１】
2009277228.tif 000003
【図２】
2009277228.tif 000004
【図３】
2009277228.tif 000005
【図４】
2009277228.tif 000006
【図５】
2009277228.tif 000007