(57)【要約】  マルチコアプロセッサ内での電力チャネル監視の技法を、全般的に説明する。電力管理システムを、マルチコアプロセッサ内の個々のコアに供給する電力チャネルを監視するように構成することができる。電力チャネルモニタは、各コアの電力消費の直接測定値を提供することができる。個々のコアの電力消費は、どのコアの使用が多いか、または少ないかを示すことができる。使用判定を、測定されるコアへまたはこれからのデータメッセージの送信を全く伴わずに行うことができる。各プロセッサコアによってサービスされる判定された使用負荷を使用して、そのコアに供給される電力および／またはクロック信号を調整することができる。
2013508861.tif 000002
【特許請求の範囲】
【請求項１】
マルチコアプロセッサ内の電源チャネルを監視するように適合された集積回路であって、
複数のプロセッサコアと、
前記複数のプロセッサコアのそれぞれに電力を供給するように構成された複数の電力チャネルと、
前記複数のプロセッサコアのそれぞれに前記電力チャネルのそれぞれを介して供給される電力を測定するように構成された電力モニタと、
前記測定された電力に基づいて前記複数のプロセッサコアのうちの１つまたは複数の動作パラメータを調整するように構成された電力マネージャと
を含む集積回路。
【請求項２】
前記複数の電力チャネルのうちの１つは、前記複数のプロセッサコアのうちの２つ以上に電力を供給する、請求項１に記載の集積回路。
【請求項３】
前記複数の電力チャネルのうちの２つ以上は、前記複数のプロセッサコアのうちの同じ１つに電力を供給する、請求項１に記載の集積回路。
【請求項４】
前記動作パラメータは、前記複数のプロセッサコアのうちの前記１つまたは複数に提供されるクロック信号の１つまたは複数の特性を含む、請求項１に記載の集積回路。
【請求項５】
前記クロック信号の前記１つまたは複数の特性は、周波数、周期、パルス幅、デューティサイクル、信号振幅、電圧、および／または電流のうちの１つまたは複数を含む、請求項４に記載の集積回路。
【請求項６】
前記電力モニタモジュールは、前記複数の電力チャネルのうちの１つまたは複数に結合されたアナログ−ディジタル変換器（ＡＤＣ）を含む、請求項１に記載の集積回路。
【請求項７】
前記電力モニタモジュールは、前記ＡＤＣによって測定される電力チャネルを選択するように構成されたマルチプレクサをさらに含む、請求項６に記載の集積回路。
【請求項８】
前記電力モニタモジュールは、前記複数の電力チャネルのうちの１つまたは複数に結合された、電圧センサのうちの１つもしくは複数および／または電流センサのうちの１つもしくは複数に結合される、請求項１に記載の集積回路。
【請求項９】
前記電力モニタモジュールは、前記複数の電力チャネルのうちの１つまたは複数と直列に結合された電流センサをさらに含み、前記電流センサは、前記電力チャネルのうちの対応する１つとインラインに配置された既知の負荷または電流ミラーのうちの１つまたは複数を含む、請求項１に記載の集積回路。
【請求項１０】
複数のプロセッサコアを有するマルチコアプロセッサ内で電源チャネルを監視する方法であって、
前記マルチコアプロセッサ内の複数の電源チャネルを監視することであって、前記複数の電源チャネルのそれぞれは、前記マルチコアプロセッサ内の前記複数のプロセッサコアのうちの１つまたは複数に電力を提供する、監視することと、
前記複数の電源チャネルのそれぞれを監視することの結果に基づいて、各プロセッサコアに関連する電力使用を判定することと、
前記判定された電力使用に基づいて、前記複数のプロセッサコアのうちの１つまたは複数の動作パラメータを調整することと
を含む方法。
【請求項１１】
監視することは、前記複数の電源チャネルのうちの１つまたは複数に関連する電圧レベルおよび／または前記複数の電源チャネルのうちの１つまたは複数に関連する電流レベルのうちの１つまたは複数を測定することを含む、請求項１０に記載の方法。
【請求項１２】
監視することは、アナログ−ディジタル変換器（ＡＤＣ）を使用して複数の電源チャネルのうちの１つをサンプリングすることを含む、請求項１０に記載の方法。
【請求項１３】
サンプリングすることは、マルチプレクサを使用して前記複数の電源チャネルのうちの１つを選択することをさらに含む、請求項１２に記載の方法。
【請求項１４】
前記プロセッサコアのうちの１つまたは複数に関連するアクティビティレベルを、それぞれの前記プロセッサコアに関連する前記判定された電力使用に基づいて判定することをさらに含む、請求項１０に記載の方法。
【請求項１５】
前記プロセッサコアのうちの１つもしくは複数に供給される電力をそれぞれの前記プロセッサコアに関連する前記判定された電力使用に応答して調整すること、および／または前記プロセッサコアのうちの１つもしくは複数に供給されるクロック信号をそれぞれの前記プロセッサコアに関連する前記判定された電力使用に応答して調整することのうちの１つまたは複数をさらに含む、請求項１０に記載の方法。
【請求項１６】
前記判定された電力使用に関連する電力管理情報を前記マルチコアプロセッサに提供することをさらに含む、請求項１０に記載の方法。
【請求項１７】
前記プロセッサコアに関連する電力管理動作を構成するために前記マルチコアプロセッサに対するインターフェースを提供することをさらに含む、請求項１０に記載の方法。
【請求項１８】
電力供給監視のために適合された電源チャネルを含むマルチコアプロセッサであって、
複数のプロセッサコアと、
前記複数のプロセッサコアへの複数の電源チャネルを提供するように構成された電源であって、前記複数の電源チャネルのそれぞれは、前記複数のプロセッサコアのうちの１つまたは複数に関連する、電源と、
前記複数の電源チャネルのそれぞれを介して供給される電力を測定するように構成された電力モニタと、
前記複数の電源チャネルのそれぞれを介して供給される前記測定された電力に基づいて前記複数のプロセッサコアのうちの１つまたは複数に関連するアクティビティレベルを判定し、前記複数のプロセッサコアのうちの１つまたは複数に関連する前記判定されたアクティビティレベルに応答して前記複数の電源チャネルのうちの１つまたは複数に関連する電力レベルを調整するように構成された電力マネージャと
を含むマルチコアプロセッサ。
【請求項１９】
前記電力モニタは、前記複数の電力チャネルのうちの１つまたは複数に結合されたアナログ−ディジタル変換器（ＡＤＣ）を含む、請求項１８に記載のマルチコアプロセッサ。
【請求項２０】
前記電力モニタは、前記ＡＤＣによって測定される電力チャネルを選択するように構成されたマルチプレクサをさらに含む、請求項１９に記載のマルチコアプロセッサ。
【請求項２１】
前記電力モニタは、前記複数の電力チャネルのうちの１つまたは複数に結合された、電圧センサのうちの１つもしくは複数および／または電流センサのうちの１つもしくは複数を含む、請求項１８に記載のマルチコアプロセッサ。
【発明の詳細な説明】
【背景技術】
【０００１】
本明細書で別段示されない限り、このセクションで説明される材料は、本願の特許請求の範囲に対する従来技術ではなく、このセクションの包含によって従来技術と認められるものではない。
【０００２】
マルチコアプロセッサは、一般に、個々のコア間の相互接続を有する複数のプロセッサコアで構成される。個々のコアを相互接続するいくつかのアーキテクチャは、隣接するコア間の通信を高い効率でサポートする。しかし、マルチコアプロセッサ内の非隣接コア間の通信は、中間コア間でメッセージを渡すことに起因する遅延をこうむる可能性がある。マルチコアプロセッサ内のコア数が増えるにつれて、コア間の通信の最適化が、ますます重要になる。これらの通信は、マルチコアプロセッサ内の異なるコアに対するレベル負荷を照会するメッセージを含む場合がある。
【０００３】
動的電圧周波数制御（ＤＶＦＳ）は、プロセッサに関連する電圧および／またはクロック周波数が、熱生成および電力消費を管理するために調整される、電力管理技法である。動的電圧制御（ｄｙｎａｍｉｃ  ｖｏｌｔａｇｅ  ｓｃａｌｉｎｇ）は、電力を節約するために、プロセッサに印加される電圧を下げることができる。これは、ラップトップコンピュータおよび他のタイプのバッテリ駆動モバイルデバイスで特に有用である可能性がある。動的電圧制御は、コンピュータ性能を高めるために、プロセッサに印加される電圧を上げることができる。動的周波数制御（ｄｙｎａｍｉｃ  ｆｒｅｑｕｅｎｃｙ  ｓｃａｌｉｎｇ）は、電力消費を低減するために、プロセッサのクロック周波数を下げ、あるいは停止することさえできる。
【０００４】
ＤＶＦＳをマルチコアプロセッサ内の個々のコアに適用しようと試みると、コアの個数が増えたとき複数の問題に遭遇する可能性がある。たとえば、計算負荷または各コアによって必要とされる電力に関する安定した最新の情報を、コアへのメッセージ照会を介して入手することは、スケールに応じてマルチコアプロセッサの性能を制限することになり得る（scale into a performance limitation for the multicore processor）。
【発明の概要】
【０００５】
本開示の前述および他の特徴は、添付図面と共に次の説明および添付の特許請求の範囲からより十分に明らかになる。これらの図面が本開示による複数の実施形態のみを示し、したがってその範囲を限定すると考えられてはならないことを理解して、本開示を、添付図面の使用を介して追加の限定性および詳細を伴って説明する。
【図面の簡単な説明】
【０００６】
【図１】本明細書で提示される少なくともいくつかの実施形態に従って構成された、電力チャネル（ｐｏｗｅｒ  ｃｈａｎｎｅｌ）監視のために構成されたマルチコアプロセッサを示すブロック図である。
【図２】本明細書で提示される少なくともいくつかの実施形態に従って構成された、さまざまな電力分配アーキテクチャを有するマルチコアプロセッサを示す概略図である。
【図３】本明細書で提示される少なくともいくつかの実施形態に従って構成された、多重化電力モニタ（ｍｕｌｔｉｐｌｅｘｅｄ  ｐｏｗｅｒ  ｍｏｎｉｔｏｒ）を有するマルチコアプロセッサを示す概略図である。
【図４】本明細書で提示される少なくともいくつかの実施形態に従って構成された、電流センサを使用する多重化電力モニタを有するマルチコアプロセッサを示す概略図である。
【図５】本明細書で提示される少なくともいくつかの実施形態に従って構成された、マルチコアプロセッサ内の電力チャネル監視のプロセスを示す流れ図である。
【図６】本明細書で提示される少なくともいくつかの実施形態に従って構成された、例示的なコンピューティングシステムを示すブロック図である。
【発明を実施するための形態】
【０００７】
次の詳細な説明では、本明細書の一部を形成する添付図面を参照する。図面では、文脈により別段規定されない限り、同様の記号が、通常は同様の構成要素を識別する。発明を実施するための形態、図面、および特許請求の範囲で説明される例示的実施形態は、限定的であることを意図されたものではない。本明細書で提示される主題の趣旨または範囲から逸脱せずに、他の実施形態を利用することができ、他の変更を行うことができる。全般的に本明細書で説明され、図面に図示される本開示を、さまざまな異なる構成で配置し、置換し、組み合わせ、分離し、設計することができ、そのすべてが本明細書で明示的に企図されていることが、容易に理解されるであろう。
【０００８】
本開示は、全般的に、とりわけマルチコアプロセッサでの電力チャネル監視に関連する方法、装置、およびシステムを対象とする。マルチコアプロセッサ内の個々のコアに供給する電力チャネルを監視するように構成され得る電力管理システムのための技法を説明する。このシステムは、各コアの電力消費の直接測定値を提供する電力モニタを含むことができる。個々のコアの電力消費は、どのコアの使用が多いか、または少ないかを示すことができる。使用判定を、測定されるコアへまたはこれからデータメッセージを送ることなく行うことができる。各プロセッサコアによってサービスされる判定された使用負荷を使用して、コアに供給される電力および／またはクロック信号を調整することができる。コア間のデータ通信を低減することは、特にコアの個数が増えたとき、システム動作を改善することができる。さらに、データ通信なしで使用を判定することは、動作カウントなどの従来の使用測定に関連するプロセッサ計算サイクルを低減することもできる。
【０００９】
本明細書で提示される形での電力監視は、マルチコアプロセッサ内のプロセッサコアによって消費される電力を測定することができる。測定された電力および他の電力関連情報を、電力マネージャモジュールに供給することができる。電力マネージャモジュールを、測定された電力に基づいてプロセッサコアの１つまたは複数の動作パラメータを調整するように構成することができる。いくつかの例示的なシナリオでは、電力マネージャモジュールは、対応するプロセッサコアに供給される電流、電圧、電力、クロック信号、またはその任意の組合せを調整することができる。調整できる例示的なクロック信号特性は、クロック信号振幅、周波数、電圧、パルス幅、周期、またはデューティサイクルを含むことができる。また、電力マネージャモジュールを、電力消費および使用の情報をより高いレベルの電力管理動作に供給することによって、プロセッサコアのそれぞれの使用またはこれへのタスク割当を間接的に調整するように構成することができる。
【００１０】
本明細書で提示される形での電力監視は、従来の温度監視より正確なプロセッサコア使用測定を提供することもできる。というのは、温度監視が、環境、隣接するコアの動作、またはプロセッサをサポートする集積回路内の他のブロックによって影響される可能性があるからである。電力監視を、動的電圧周波数制御（ＤＶＦＳ）と共に使用することができる。というのは、スケーリングされた電圧または周波数切替が、低減された監視電力消費として現れるからである。いくつかの実施形態によれば、電力監視は、あるプロセッサコアが無限ループまたはある他のエラー状態にロックされている時を識別するためのウォッチドッグモニタとして働くこともできる。これらの状態を、しばしば、影響されるプロセッサコアによる一貫して高い電力消費に関連付けることができる。
【００１１】
図１は、本明細書で提示される１つまたは複数の実施形態による電力チャネル監視のために構成されたマルチコアプロセッサ１２０を示すブロック図である。マルチコアプロセッサ１２０は、複数のコア１１０Ａ〜１１０Ｐを含むことができる。複数のコア１１０Ａ〜１１０Ｐを、集合的にまたは一般に、コア１１０と呼ぶ場合がある。マルチコアプロセッサ１２０に関連する電源１３０（たとえば、電源回路、電源モジュールなど）を、コア１１０に電源チャネルを提供するように構成することができる。電源チャネルを、パワーレイルと呼ぶ場合もある。各コアまたはコアのグループの電力を、別々の電力チャネルによって供給することができる。
【００１２】
マルチコアプロセッサに関連する電力モニタ１５０（たとえば、電力モニタ回路、電力モニタモジュールなど）を、電源１３０からコア１１０のそれぞれに供給される電力の量を判定するために、電力チャネルのそれぞれを監視するように構成することができる。マルチコアプロセッサ１２０に関連する電力マネージャ１６０（たとえば、電力マネージャ回路、電力マネージャモジュールなど）を、マルチコアプロセッサ１２０の電力管理および温度管理を提供するために電源１３０および電力モニタ１５０と共に協調して動作するように構成することができる。
【００１３】
いくつかの実施形態によれば、電力マネージャ１６０を、電力モニタ１５０からの測定値に応答して電源１３０を制御するように構成することができる。いくつかの他の実施形態によれば、電力マネージャ１６０を、電力モニタ１５０からの測定値に応答してコア１１０のうちの１つまたは複数に供給されるクロック信号を制御するように構成することができる。いくつかの他の実施形態によれば、電力マネージャ１６０を、コア１１０またはマルチコアプロセッサ１２０もしくは関連するコンピューティングデバイスの他のコンポーネントに対するインターフェースを提供するように構成することができる。提供されるインターフェースを、電力モニタ１５０から入手される電力チャネル測定値など、電力マネージャ１６０に関連する状況情報を読み取るように適合させることができる。このインターフェースを、電力マネージャ１６０、電力モニタ１５０、および／または電源１３０にのうちの１つまたは複数に関連する構成、コントロール、または他の変数をセットするために、電力マネージャ１６０に書き込むように適合させることもできる。
【００１４】
電力マネージャ１６０によって使用できる動的熱管理の一例を、クロックゲーティングと呼ぶことができる。グローバルクロックゲーティングを、マルチコアプロセッサ１２０のプロセッサ動作を停止させるためにクロック信号のすべてまたは実質的にすべてをオフにするように適合させることができる。ローカルクロックゲーティングを、コア１１０またはマルチコアプロセッサ１２０の他のブロックへの個々のクロック信号をオフにするように適合させることができる。クロックをゲートオフすることは、電力消費を一時的に下げることができ、温度過上昇状態があるときまたは温度過上昇状態が回避されているとき使用され得る。クロックがゲートオフされている間に、レジスタ、分岐プレディクタテーブル、およびローカルキャッシュなど、プロセッサ状態を維持することができる。したがって、クロックゲーティングは、オフスイッチではなく、マルチコアプロセッサ１２０内のプロセッサコア１１０のサスペンドモードまたはスリープモードとして働くことができる。
【００１５】
コア１１０のうちの１つまたは複数を一時的に停止するためのクロック信号のゲーティングに加えて、電力マネージャ１６０を、コア１１０のうちの１つまたは複数に供給されるクロック周波数を調整する（たとえば、動作速度を下げるために周波数を下げ、または動作速度を上げるために周波数を上げる）ように構成することもできる。その代わりに、クロックを、デューティサイクルのオン状態中に一定速度で動作させ、デューティサイクルのオフ状態中にゲートオフすることができる。したがって、クロックデューティサイクルを、電力マネージャ１６０によって調整して、対応するコア１１０での電力消費を下げるためにクロックの周期的ゲーティングをもたらすことができる。クロック周波数およびデューティサイクルに加えて、信号振幅（シングルエンドまたは差動のいずれである）、電圧レベルまたは電流レベル、パルス幅、周期、その他など、クロック信号の追加の特性を調整することができる。マルチコアプロセッサ１２０内の個々のコア１１０のそれぞれに関連する電力消費を制御できるように、クロック信号に関連する１つまたは複数の特性の調整を、電力マネージャ１６０によって制御することができる。
【００１６】
状況および制御インターフェースを提供することによって、電力マネージャ１６０を、より高いレベルの電力管理技法をサポートするように配置することもできる。たとえば、ポリシベースのスレッドマイグレーション技法を、マルチコアプロセッサ１２０の電力消費および熱特性を管理するためにコア１１０間でプロセスまたはスレッドを再配置するように構成することができる。これらのより高いレベルの電力管理技法を、ＤＶＦＳなどの物理的手法と組み合わせることもできる。経験的テストにより、基本的な電圧および周波数の管理と一緒にスレッド再配置管理を使用する、２つのコア１１０を有するマルチコアプロセッサ１２０が、いくつかの例で、使用可能なリソースでの約２５０％の改善または電力消費の同等の削減をもたらすことができることを実証することができる。
【００１７】
別のより高いレベルのまたはハイブリッドの電力管理手法によれば、コンパイラまたはランタイム環境を、プロセッサまたはコア１１０の電力管理条件に従ってコードをコンパイルしまたは実行するのに使用される最適化パラメータをセットするように構成することができる。コンパイラを、計算の必要に従ってプロセッサまたはコア１１０のＤＶＦＳセッティングを提案するように構成することもできる。
【００１８】
本明細書で提示される電力チャネル監視技法を、プロセッサコア１１０だけではなく、マルチコアプロセッサ１２０内の任意の他のブロックまたは機能ユニットにも適用できることを理解されたい。たとえば、マルチコアプロセッサ１２０内のメモリ、キャッシュ、入出力デバイス、コントローラ、他のブロック、または他の機能ユニットを、本明細書で提示される電力チャネル監視技法によってサポートすることができる。さらに、これらの技法を、任意のブロック、コア、モジュール、回路、または、サブディビジョンが個々のもしくは部分的に分離された電源チャネルを有する可能性がある、任意の集積回路、チップ、システムオンチップ（ＳＯＣ）、マルチチップアレイ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、他のプログラマブル論理、メモリ、コントローラなどの中の他のサブディビジョンに適用することができる。
【００１９】
電力モニタ１５０および電力マネージャ１６０の機能を他のモジュール内で提供できることを理解されたい。たとえば、そのような機能性を、電源１３０または他の制御モジュール、管理モジュール、もしくはスーパーバイザモジュールに一体化することができる。同様に、電力モニタ１５０および電力マネージャ１６０の機能を、単一のモジュールに組み合わせることができる。
【００２０】
ここで図２に移ると、概略図に、本明細書で提示される１つまたは複数の実施形態に従って配置されたさまざまな電力分配アーキテクチャを有するマルチコアプロセッサ１２０が示されている。電源１３０を、マルチコアプロセッサのコア１１０に電力を供給するように構成することができる。各コアまたはコアのグループの電力を、別々の電力チャネルによって供給することができる。たとえば、電力チャネル２１０Ａは、電源１３０からプロセッサコア１１０Ａに電力を供給することができ、電力チャネル２１０Ｂは、電源１３０からプロセッサコア１１０Ｂと１１０Ｃとの両方に電力を供給することができる。同様に、電力チャネル２１０Ｃは、電源１３０から３つのプロセッサコア１１０Ｄ、１１０Ｅ、および１１０Ｆに電力を供給することができる。いくつかの実施形態によれば、電力を、２つ以上の電力チャネルを用いて各コアまたはコアのグループに供給することができる。たとえば、電力チャネル２１０Ｄを、プロセッサコア１１０Ｇに５ＶＤＣ（ボルト直流）で電力を供給するように構成することができ、第２の電力チャネルを、同じプロセッサコア１１０Ｇに３．３ＶＤＣで電力を供給するように構成することができる。電力供給電圧または電力供給電流のさまざまな他のレベルを、さまざまな実施形態に従ってサポートすることもできる。
【００２１】
ここで図３に移ると、概略図に、本明細書で提示される１つまたは複数の実施形態に従って配置された多重化電力モニタを有するマルチコアプロセッサ１２０が示されている。電源１３０を、マルチコアプロセッサのコア１１０に電力を供給するように構成することができる。この例では、電力を、電力チャネル２１０Ａを介してコア１１０Ａに、電力チャネル２１０Ｂを介してコア１１０Ｂに、電力チャネル２１０Ｃを介してコア１１０Ｃに供給することができる。電力チャネル２１０Ａ〜２１０Ｃを、集合的にまたは一般に電力チャネル２１０と呼ぶ場合がある。３つのコア１１０が、３つの電力チャネル２１０と一緒に図示されているが、任意の個数のコア１１０および電力チャネル２１０が、マルチコアプロセッサ内に存在できることを理解されたい。コア１１０および電力チャネル２１０の個数を、同じとすることができ、あるいは、複数のコア１１０に単一の電力チャネル２１０によって供給することができ、１つのコア１１０に複数の電力チャネル２１０によって供給することができるので、この個数を異なるものとすることができる。
【００２２】
電力チャネル２１０のそれぞれを介して配送される電力を、電力モニタ１５０によって測定することができる。いくつかの実施形態によれば、アナログ−ディジタル変換器（ＡＤＣ）２３０を、電力チャネル２１０のアナログ状態を測定し、測定されたアナログ状態に対応するディジタル情報を提供するように適合させることができる。一例では、ＡＤＣ  ２３０を、電力チャネル２１０の電圧を直接にまたは間接に測定するように構成することができる。別の例では、ＡＤＣ  ２３０を、図４に関してさらに詳細に説明されるように、電力チャネル２１０の電流を測定するように構成することができる。
【００２３】
マルチプレクサ２２０を、複数の電力チャネル２１０のうちのどれが現在ＡＤＣ  ２３０によってサンプリングされているのかを選択するように構成することができる。マルチプレクサ２２０に関連する１つまたは複数の制御入力２４０を使用して、監視のための電流電力チャネル２１０を選択することができる。制御入力２４０を、電力モニタ１５０、電力マネージャ１６０、カウンタ、状態機械、またはマルチコアプロセッサ１２０の電力管理に関連する他の回路もしくはモジュールによって提供することができる。マルチプレクサ２２０および／またはＡＤＣ  ２３０を、諸実施形態に従って電力モニタ１５０に一体化できることを理解されたい。
【００２４】
電力チャネル２１０に関連する電流および／または電圧を、電力モニタ１５０によって測定することができる。さまざまな実施形態によれば、電圧が実質的に固定され、電流がコア１１０の電力需要に従って変化する場合がある。その代わりに、電流が実質的に固定され、電圧がコア１１０の電力需要に従って変化する場合がある。電流または電圧のどちらが変化しているのかに応じて、電力モニタ１５０は、変化する電流および／または変化する電圧を測定することができる。実質的に固定された電流または電圧を、既知の値または指定された値とすることができる。電力を、電力は電圧を乗じられた電流と等しいという関係に従って計算することができる。たとえば、電力（ワット単位）を、電圧（ボルト単位）による電流（アンペア単位）の乗算によって判定することができる。電圧を、ポテンシャル、電位、電位差、または起電力と呼ぶ場合もある。電流を、電荷流の時間割合と見なすことができる。また、電力を、所与の時間期間内に仕事を行う能力と考えることができ、ここで、仕事を、場に逆らって電荷を移動するときなど、ある距離にわたって力を働かせることと見なすことができる。
【００２５】
電力チャネル２１０の電流および／または電圧を、マルチコアプロセッサ１２０内の電源供給システムの実質的な変更を伴わずに電力モニタ１５０によって測定することができる。上で述べたように、コア１１０およびマルチコアプロセッサ１２０の他のブロックに供給される電力の直接測定は、どのデータバスにもメッセージ照会の負荷を与えずに、各コア１１０に関連する計算負荷または使用レベルに関する情報を提供することができる。
【００２６】
電力モニタ１５０を用いてコア１１０の電力消費を測定することは、電力および熱の管理に関連する熱モデリング、熱負荷平衡化、負荷プラニング、および他のシステム管理機能に情報を与えることができる。いくつかの実施形態によれば、電力マネージャ１６０は、プロセッサコア１１０に関連する電力消費情報を使用して、関連するコア１１０の供給される電圧またはクロック周波数のセッティングを調整することができる。たとえば、特定のプロセッサコア１１０が、低減された量の電力を消費している場合に、電力マネージャ１６０は、そのコア１１０が、低減された計算負荷を扱っていると判定し、したがって、そのコア１１０に供給される電圧を下げるか、そのコア１１０に供給されるクロック周波数を低減することができる。
【００２７】
図４では、概略図に、本明細書で提示される１つまたは複数の実施形態に従って配置された電流センサ３１０Ａ〜３１０Ｃを使用する多重化電力モニタを有するマルチコアプロセッサ１２０が示されている。電流センサ３１０Ａを、コア１１０Ａに電力を供給する電力チャネル２１０Ａとインラインに配置することができる。同様に、電流センサ３１０Ｂを、コア１１０Ｂに電力を供給する電力チャネル２１０Ｂとインラインに配置することができ、電流センサ３１０Ｃを、コア１１０Ｃに電力を供給する電力チャネル２１０Ｃとインラインに配置することができる。電流センサ３１０Ａ〜３１０Ｃを、集合的にまたは一般に電流センサ３１０と呼ぶ場合がある。いくつかの実施形態によれば、電力モニタ１５０を、供給チャネル２１０に関連する電流を測定するように構成することができる。これらの電流測定を、電流センサ３１０を使用して実行することができる。測定された電流を表す信号を、電圧（下で述べるように）または電流とすることができ、ＡＤＣ  ２３０を使用してディジタル値または数値に変換することができる。
【００２８】
例示的な電流センサ３１０は、電流が測定される供給チャネル２１０とインラインに配置された既知の負荷（または抵抗）にまたがるポテンシャルまたは電圧の低下を測定することを含むことができる。しかし、熱および電力損失の展望から、既知の負荷を介して供給電流全体を低下させることが、望ましくない場合がある。したがって、スケーリングされた電流ミラーを電流センサ３１０として使用することができ、ここで、電力チャネル２１０内の電流のスケーリングされたものを、測定のために電流ミラーによって提供することができる。代替案では、電流ミラー内のフィードバック電圧信号を直接に測定することができる。電流ミラーを、回路のある構成要素内の電流を調整することによって回路の別の構成要素を通って供給される電流をコピーするように設計された任意の回路とすることができる。
【００２９】
ここで図５を参照し、マルチコアプロセッサ内のコア使用の電力チャネル監視について、追加の詳細を、本明細書で提示される実施形態に関して提供する。具体的に言うと、図５は、本明細書で提示される少なくともいくつかの実施形態に従って配置されたマルチコアプロセッサ内の電力チャネル監視のプロセス４００を示す流れ図である。
【００３０】
本明細書で説明される動作が、動作または製造する行為のシーケンスとして、コンピューティングシステム上で動作するコンピュータ実施される行為またはプログラムモジュールのシーケンスとして、あるいはコンピューティングシステム内の相互接続された機械論理回路または回路モジュールとして実施されることを理解されたい。実施態様は、さまざまな実施形態の性能および他の要件に依存する選択の問題である。本明細書で説明される論理動作のいくつかは、さまざまに、状態動作、機能、アクション、構造デバイス、またはモジュールと呼ばれる。これらの動作、機能、アクション、構造デバイス、および／またはモジュールを、ソフトウェアで、ファームウェアで、特殊目的ディジタル論理で、およびその任意の組合せで実施することができる。図面に示され本明細書で説明されるものより多数またはより少数の動作を実行できることをも理解されたい。これらの動作を、順次、並列に、または本明細書で説明されるものとは異なる順序で実行することもできる。
【００３１】
プロセス４００は、ブロック４１０、４２０、４３０、４４０、４５０、４６０、および／または４７０のうちの１つまたは複数によって示されるように、さまざまな動作、機能、またはアクションを含むことができる。プロセス４００は、ブロック４１０（マルチコアプロセッサの各コアに供給する電力チャネルを監視する）で始まることができ、ここで、電力モニタ１５０を、プロセッサコア１１０に供給するそれぞれの電力チャネル２１０のそれぞれの電流および／または電圧を測定するように構成することができる。いくつかの例では、複数の電力チャネル２１０上の電流および／または電圧を、ＡＤＣ  ２３０と、電力チャネル２１０のうちのどれが電力モニタ１５０よる読取のためにＡＤＣ  ２３０によって現在サンプリングされているのかを選択するように適合された２２０用のマルチプレクサとを使用して測定することができる。ブロック４１０に、ブロック４２０が続くことができる。
【００３２】
ブロック４２０（電力チャネルを介して各コアに配送される電力を測定する）では、電力モニタ１５０を、それぞれの電力チャネル２１０のそれぞれによってプロセッサコア１１０に供給される電力を判定するように構成することができる。ブロック４１０で測定された各それぞれの電力チャネル２１０の電流または電圧を使用して、各電力チャネル１１０に関連するコア１１０によって消費される電力を判定することができる。上で述べたように、測定された電流および／または電圧を使用して、電力は電圧を乗じられた電流と等しいという関係を使用して消費された電力を計算することができる。ブロック４２０に、ブロック４３０が続くことができる。
【００３３】
ブロック４３０（測定された電力から各コアに関連する負荷を判定する）では、電力マネージャ１６０および／または電力モニタ１５０を、マルチコアプロセッサ１２０のコア１１０のそれぞれに関連する計算負荷を判定するように構成することができる。コア１１０によってサービスされる計算負荷を、ブロック４２０で判定される、コア１１０によって消費されている電力から判定することができる。コア１１０によって消費される電力は、主に、論理、ゲート、レジスタ、およびコア１１０に関連する他のメモリ内のスイッチングトランジスタによって使用される可能性がある。電力消費は、コア１１０内のこれらの要素のアクティビティに強く相関する可能性があり、したがって、コア１１０によってサービスされている負荷を判定するための代理として使用され得る。計算負荷の測定値を、各コア１１０に関連するアクティビティレベルと呼ぶ場合もある。ブロック４３０に、ブロック４４０が続くことができる。
【００３４】
ブロック４４０（コアに関連する負荷に基づいてコアに供給される電力を調整する）では、電力マネージャ１６０を、電源１３０からマルチコアプロセッサ１２０内のコア１１０のそれぞれに供給される電力を調整するように構成することができる。コア１１０に配送される電力を、コア１１０に供給する電力チャネル２１０に電源１３０によって駆動される電圧および／または電流をスケーリングすることによって調整することができる。ブロック４４０に、ブロック４５０が続くことができる。
【００３５】
ブロック４５０（コアに関連する負荷に基づいてコアへのクロック信号を調整する）では、電力マネージャ１６０を、マルチコアプロセッサ１２０内のコア１１０のそれぞれに供給されるそれぞれのクロックを調整するように構成することができる。コア１１０によって消費される電力を、コア１１０によって使用されるクロック信号のゲーティング、スケーリング、またはデューティサイクリングによって調整することができる。さらに、クロック信号を、その振幅（シングルエンドまたは差動のいずれであれ）、電圧レベルまたは電流レベル、周波数、電圧、パルス幅、または周期によって調整することができる。ブロック４５０に、ブロック４６０が続くことができる。
【００３６】
ブロック４６０（マルチコアプロセッサに電力管理情報を提供する）では、電力マネージャ１６０を、電力管理に関連する情報をマルチコアプロセッサ１２０に提供するように構成することができる。この情報は、ブロック４１０で測定された各コア１１０に供給される電圧および／もしくは電流、ブロック４２０で判定された各コア１１０に供給される電力、ブロック４３０で判定された各ブロックでの負荷、またはマルチコアプロセッサ１２０の動作を制御し、測定し、もしくは管理するのに使用できる任意の他の電力管理情報を含むことができる。この情報を、可読データレジスタの形で電力マネージャ１６０によって供給することができる。このレジスタを読み取るインターフェースを、マルチコアプロセッサ１２０の内部とすることができ、あるいは、任意のデータバス、低ピンカウントバス、または電力マネージャ１６０への他のインターフェース上の入出力として供給することができる。ブロック４６０に、ブロック４７０が続くことができる。
【００３７】
ブロック４７０（マルチコアプロセッサへの電力管理制御インターフェースを公開する（expose））では、電力マネージャ１６０を、マルチコアプロセッサ１２０上の電力管理に関連するパラメータを制御するインターフェースを提供するように構成することができる。パラメータは、各コア１１０に供給される電圧および／もしくは電流、ブロック４３０で判定された各コア１１０での測定された負荷に応答して行われる電力およびクロックの調整、またはマルチコアプロセッサ１２０の動作を制御し、測定し、もしくは管理するのに使用される任意の他の電力管理パラメータを指定することを含むことができる。インターフェースを、書込可能データレジスタの形で電力マネージャ１６０内で提供することができる。レジスタに書き込むインターフェースを、マルチコアプロセッサ１２０の内部とすることができ、あるいは、任意のデータバス、低ピンカウントバス、または電力マネージャ１６０への他のインターフェース上の入出力として供給することができる。ブロック４７０の後に、プロセス４００は、繰り返す（たとえば、周期的に、連続的に、または必要に応じてオンデマンドで）か終了するかのいずれかを行うことができる。
【００３８】
図６を参照すると、本明細書で説明されるさまざまな実施形態を実施する、例示的なコンピューティングシステムが示されている。このコンピューティングシステムは、マルチコアプロセッサに関する電力チャネル監視を実施する実施形態をサポートすることができる。たとえば、図６に示されたコンピューティングシステムは、電力チャネル監視をサポートするように構成されたマルチコアプロセッサ１２０を含むことができる。さまざまな実施形態は、コンピュータ、専用ハードウェア、または組込みコンピューティングシステムを含むことができる。
【００３９】
このコンピューティングシステムは、コンピュータ１０を含む。コンピュータ１０は、マルチコアプロセッサ１２０、メモリ１２、および１つまたは複数のドライブ１３を含むことができる。ドライブ１３およびそれに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール２３、およびコンピュータ１０用の他のデータのストレージを提供することができる。コンピュータ１０は、従来のコンピュータシステム、組込み制御コンピュータ、ラップトップ機、サーバコンピュータ、モバイルデバイス、セットトップボックス、キオスク、車両情報システム、携帯電話機、カスタマイズされた機械、または他のハードウェアプラットフォームとして実施することができる。さまざまな実施形態に従って、マルチコアプロセッサ１２０を、汎用プロセッサ、プロセッサコア、マルチプロセッサ、マルチコア処理ユニット、グラフィックスプロセッサ、ディジタル信号処理（ＤＳＰ）プロセッサ、特定用途向け集積回路（ＡＳＩＣ）内で実施されるカスタマイズされたコンピューティングデバイス、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）内で実施されるカスタマイズされたコンピューティングデバイス、任意のタイプのプログラマブル論理内で実施されるカスタマイズされたコンピューティングデバイス、状態機械、再構成可能プロセッサ、任意の他の処理ユニット、またはその任意の組合せもしくは多数とすることができる。マルチコアプロセッサ１２０は、本明細書で議論される電力モニタ１５０および／または電力マネージャ１６０を特徴とすることができる。
【００４０】
ドライブ１３、他のストレージデバイス、またはそれに関連するコンピュータ可読記憶媒体は、オペレーティングシステム２１、アプリケーションプログラム２２、およびプログラムモジュール２３を格納することができる。プログラムモジュール２３は、本明細書で議論される電力監視および電力管理機能性を実施する電力管理ソフトウェア２４を含むことができる。電力管理ソフトウェア２４を、オペレーティングシステム２１、アプリケーションプログラム２２、ＲＯＭ、またはコンピュータ１０に実行可能命令を提供する任意の他の構成要素の一部とすることもできることを理解されたい。コンピュータ１０は、ユーザがそれを介してコマンドおよびデータを入力できるユーザ入力デバイス１５を含むことができる。入力デバイスは、電子ディジタイザ、マイクロホン、キーボード、ポインティングデバイス、またはその任意の組合せを含むことができる。ポインティングデバイスの例は、マウス、トラックボール、ライトペン、タッチスクリーン、またはタッチパッドを含むことができる。コンピュータ１０への他の入力デバイスは、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナ、または類似物を含むことができる。入力デバイスを、システムバスに結合されたユーザ入力インターフェースを介してマルチコアプロセッサ１２０に接続することができる。入力デバイスを、パラレルポート、ゲームポート、またはｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ（ＵＳＢ）などの他のインターフェースおよびバス構造によって接続することもできる。コンピュータ１０などのコンピュータは、スピーカなどの他の周辺出力デバイスを含むこともでき、この他の周辺出力デバイスは、出力周辺インターフェース１９または類似するインターフェースを介して接続され得る。
【００４１】
コンピュータ１０は、ネットワークインターフェース１６に接続されたリモートコンピュータなどの１つまたは複数のコンピュータへの論理接続を使用してネットワーク化された環境で動作することができる。リモートコンピュータを、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の一般的なネットワークノードとすることができる。リモートコンピュータは、コンピュータ１０に関して本明細書で説明した要素の多くまたはすべてを含むことができる。ネットワーキング環境は、ネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、イントラネット、インターネット、またはその組合せを含むことができる。
【００４２】
ＬＡＮまたは無線ＬＡＮ（ＷＬＡＮ）ネットワーキング環境で使用されるとき、コンピュータ１０を、ネットワークインターフェース１６またはネットワークアダプタを介してＬＡＮに接続することができる。ＷＡＮネットワーキング環境で使用されるとき、コンピュータ１０は、モデムまたはＷＡＮを介して通信を確立する他の機構を含むことができる。ＷＡＮは、インターネット、図示のネットワーク１８、さまざまな他のネットワーク、またはその任意の組合せを含むことができる。通信リンク、リング、メッシュ、バス、クラウド、またはコンピュータ間のネットワークを確立する他の機構を使用できることを理解されたい。
【００４３】
コンピュータ１０は、ドライブ１３または他のストレージデバイスに関連する１つまたは複数の物理コンピュータ可読記憶媒体の１つまたは複数のインスタンスを含むことができる。システムバスは、マルチコアプロセッサ１２０がコンピュータ可読記憶媒体へ／からコードおよび／またはデータを読み取ることを可能にすることができる。媒体は、半導体、磁気材料、光学媒体、電気ストレージ、電気機械ストレージ、または任意の他のそのようなストレージ技術を含むがこれに限定されない任意の適切な技術を使用して実施されるストレージ要素の形の装置を表すことができる。媒体は、ＲＡＭ、ＲＯＭ、フラッシュ、または他のタイプの揮発性もしくは不揮発性のメモリ技術のいずれとして特徴を表されるものであれ、メモリ１２に関連する構成要素を表すことができる。媒体は、ストレージドライブ１３または他の形のどちらとして実施されるものであれ、二次ストレージを表すこともできる。ハードドライブ実施態様を、ソリッドステートとして特徴を表すことができ、あるいは、ハードドライブ実施態様は、磁気的に符号化された情報を格納する回転する媒体を含むことができる。
【００４４】
記憶媒体は、１つまたは複数のプログラムモジュールを含むことができる。プログラムモジュール２３は、マルチコアプロセッサ１２０にロードされ、実行されるとき、汎用コンピューティングシステムを、本明細書で開示される電力監視および電力管理技法のすべてまたは一部を容易にするためにカスタマイズされた特殊目的コンピューティングシステムに変換する、ソフトウェア命令を含むことができる。この説明全体を通じて詳細に説明されるように、プログラムモジュール２３は、コンピュータ１０がそれによって本明細書で議論される構成要素、論理フロー、および／またはデータ構造を使用して全体的なシステムまたは動作環境内で参加できるさまざまなツールまたは技法を提供することができる。
【００４５】
いくつかの実施形態によれば、記憶媒体を、ドライブ１３などの磁気技術または光学技術を使用して実施することができる。そのような実施形態では、プログラムモジュール２３は、ソフトウェアが磁気媒体または光学媒体内で符号化されるとき、その媒体の物理的状態を変えることができる。これらの変更は、所与の磁気媒体内の特定の位置の磁気特性を変更することを含むことができる。これらの変更は、所与の光学媒体内の特定の位置の光学特性を変更するために、これらの位置の物理的特徴または特性を変更することを含むこともできる。物理媒体のさまざまな他の変更が、この説明の範囲および趣旨から逸脱せずに可能であることを理解されたい。
【００４６】
本開示は、さまざまな態様の例示であることを意図された、本願で説明される特定の実施形態に関して限定されてはならない。当業者に明らかであるように、多数の修正形態および変形形態を、その趣旨および範囲から逸脱せずに作ることができる。本開示の範囲内の機能的に同等の方法および装置は、本明細書に列挙された方法および装置に加えて、前述の説明から当業者に明らかであろう。そのような修正形態および変形形態は、添付の特許請求の範囲に含まれることが意図されている。本開示は、添付の特許請求の範囲が権利を与えられる同等物の全範囲と一緒に、添付の特許請求の範囲の言葉によってのみ限定されなければならない。本開示が、特定の方法、構成要素、要素、装置、またはシステムに限定されず、これらの方法、構成要素、要素、装置、またはシステムが、もちろん変化し得ることを理解されたい。本明細書で使用される用語法が、特定の実施形態を説明するのみのためのものであって、限定的であることを意図されていないことをも理解されたい。
【００４７】
本明細書における実質的にすべての複数形および／または単数形の用語の使用に対して、当業者は、状況および／または用途に適切なように、複数形から単数形に、および／または単数形から複数形に変換することができる。さまざまな単数形／複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。
【００４８】
通常、本明細書において、特に添付の特許請求の範囲（たとえば、添付の特許請求の範囲の本体部）において使用される用語は、全体を通じて「オープンな（ｏｐｅｎ）」用語として意図されていることが、当業者には理解されよう（たとえば、用語「含む（ｉｎｃｌｕｄｉｎｇ）」は、「含むがそれに限定されない（ｉｎｃｌｕｄｉｎｇ  ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」と解釈されるべきであり、用語「有する（ｈａｖｉｎｇ）」は、「少なくとも有する（ｈａｖｉｎｇ  ａｔ  ｌｅａｓｔ）」と解釈されるべきであり、用語「含む（ｉｎｃｌｕｄｅｓ）」は、「含むがそれに限定されない（ｉｎｃｌｕｄｅｓ  ｂｕｔ  ｉｓ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」と解釈されるべきである、など）。
【００４９】
導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。たとえば、理解の一助として、添付の特許請求の範囲は、導入句「少なくとも１つの（ａｔ  ｌｅａｓｔ  ｏｎｅ）」および「１つまたは複数の（ｏｎｅ  ｏｒ  ｍｏｒｅ）」を使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句「１つまたは複数の」または「少なくとも１つの」および「ａ」または「ａｎ」などの不定冠詞を含む場合であっても、不定冠詞「ａ」または「ａｎ」による請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に１つのそのような記載を含む発明実施形態に限定する、ということを示唆していると解釈されるべきではない（たとえば、「ａ」および／または「ａｎ」は、通常、「少なくとも１つの」または「１つまたは複数の」を意味すると解釈されるべきである）。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、通常、少なくとも記載された数を意味すると解釈されるべきであることが、当業者には理解されよう（たとえば、他の修飾語なしでの「２つの記載（ｔｗｏ  ｒｅｃｉｔａｔｉｏｎｓ）」の単なる記載は、通常、少なくとも２つの記載、または２つ以上の記載を意味する）。
【００５０】
さらに、「Ａ、ＢおよびＣ、などの少なくとも１つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている（たとえば、「Ａ、Ｂ、およびＣの少なくとも１つを有するシステム」は、Ａのみ、Ｂのみ、Ｃのみ、ＡおよびＢを共に、ＡおよびＣを共に、ＢおよびＣを共に、ならびに／またはＡ、Ｂ、およびＣを共に、などを有するシステムを含むが、それに限定されない）。「Ａ、Ｂ、またはＣ、などの少なくとも１つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている（たとえば、「Ａ、Ｂ、またはＣの少なくとも１つを有するシステム」は、Ａのみ、Ｂのみ、Ｃのみ、ＡおよびＢを共に、ＡおよびＣを共に、ＢおよびＣを共に、ならびに／またはＡ、Ｂ、およびＣを共に、などを有するシステムを含むが、それに限定されない）。２つ以上の代替用語を提示する事実上いかなる離接する語および／または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方（ｏｎｅ  ｏｆ  ｔｈｅ  ｔｅｒｍｓ）、当該用語のいずれか（ｅｉｔｈｅｒ  ｏｆ  ｔｈｅ  ｔｅｒｍｓ）、または両方の用語（ｂｏｔｈ  ｔｅｒｍｓ）を含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。たとえば、句「ＡまたはＢ」は、「Ａ」または「Ｂ」あるいは「ＡおよびＢ」の可能性を含むことが理解されよう。
【００５１】
さらに、開示される特徴または態様が、マーカッシュグループに関して説明される場合に、当業者は、その開示が、これによってマーカッシュグループの任意の個々のメンバまたはメンバのサブグループに関しても説明されることを認めるであろう。
【００５２】
当業者によって理解されるように、書かれた説明の提供に関してなど、すべてにおいて、本明細書で開示されるすべての範囲は、任意のすべての可能な副範囲およびその副範囲の組合せをも含む。すべてのリストされた範囲を、少なくとも等しい半分、３分の１、４分の１、５分の１、１０分の１などに分割される同じ範囲を十分に記述し、可能にするものとして容易に認めることができる。非限定的な例として、本明細書で議論される各範囲を、下側３分の１、中央３分の１、および上側３分の１などに容易に分割することができる。やはり当業者によって理解されるように、「〜まで」、「少なくとも」、「〜より大きい」、「〜より小さい」などのすべての言語は、列挙された数を含み、上で議論したようにその後に副範囲に分割できる範囲に言及する。最後に、当業者によって理解されるように、範囲は、各個々の数を組む。したがって、たとえば、１〜３個の要素を有するグループは、１個、２個、または３個の要素を有するグループに言及する。同様に、１〜５個の要素を有するグループは、１個、２個、３個、４個、または５個の要素を有するグループに言及するなどである。
【００５３】
さまざまな態様および例を本明細書で開示したが、他の態様および例は、当業者には明らかであろう。本明細書で開示されたさまざまな態様および例は、例示のためのものであって、限定的であることは意図されておらず、真の範囲および趣旨は、次の特許請求の範囲によって示される。
【図１】
2013508861.tif 000003
【図２】
2013508861.tif 000004
【図３】
2013508861.tif 000005
【図４】
2013508861.tif 000006
【図５】
2013508861.tif 000007
【図６】
2013508861.tif 000008
【手続補正書】
【提出日】平成24年6月12日(2012.6.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マルチコアプロセッサ内の電源チャネルを監視するように適合された集積回路であって、
複数のプロセッサコアと、
前記複数のプロセッサコアのそれぞれに電力を供給するように構成された複数の電力チャネルと、
前記電力チャネルのそれぞれを介して供給される前記電力のアナログベースのセンシングを介して、前記複数のプロセッサコアのそれぞれに前記電力チャネルのそれぞれを介して供給される電力を測定するように構成された電力モニタと、
前記測定された電力に基づいて前記複数のプロセッサコアのうちの１つまたは複数の動作パラメータを調整するように構成された電力マネージャとを含み、前記電力モニタおよび前記電力マネージャは、前記複数のプロセッサコアの外部にある、集積回路。
【請求項２】
前記複数の電力チャネルのうちの１つは、前記複数のプロセッサコアのうちの２つ以上に電力を供給する、請求項１に記載の集積回路。
【請求項３】
前記複数の電力チャネルのうちの２つ以上は、前記複数のプロセッサコアのうちの同じ１つに電力を供給する、請求項１に記載の集積回路。
【請求項４】
前記動作パラメータは、前記複数のプロセッサコアのうちの前記１つまたは複数に提供されるクロック信号の１つまたは複数の特性を含む、請求項１に記載の集積回路。
【請求項５】
前記クロック信号の前記１つまたは複数の特性は、周波数、周期、パルス幅、デューティサイクル、信号振幅、電圧、および／または電流のうちの１つまたは複数を含む、請求項４に記載の集積回路。
【請求項６】
前記電力モニタは、前記複数の電力チャネルのうちの１つまたは複数に結合されたアナログ−ディジタル変換器（ＡＤＣ）を含み、前記ＡＤＣは、前記電力チャネルのうちの少なくとも１つのアナログ状態の測定値を受け取り、前記アナログ状態を、前記電力チャネルのうちの前記少なくとも１つを介して供給される前記電力に関するディジタル情報に変換するように構成される、請求項１に記載の集積回路。
【請求項７】
前記電力モニタは、前記ＡＤＣによって測定される電力チャネルを選択するように構成されたマルチプレクサをさらに含む、請求項６に記載の集積回路。
【請求項８】
前記電力モニタは、前記複数の電力チャネルのうちの１つまたは複数にインラインに配置された、電圧センサのうちの１つもしくは複数および／または電流センサのうちの１つもしくは複数に結合され、前記電圧センサおよび／または前記電流センサは、前記複数のチャネルのうちの前記１つまたは複数に関するアナログ状態を前記電力モニタに提供するように構成される、請求項１に記載の集積回路。
【請求項９】
前記電力モニタは、前記複数の電力チャネルのうちの１つまたは複数と直列に結合された電流センサをさらに含み、前記電流センサは、前記電力チャネルのうちの対応する１つとインラインに配置された既知の負荷または電流ミラーのうちの１つまたは複数を含み、前記電流センサは、前記既知の負荷にまたがるポテンシャルの低下を測定し、ポテンシャルの前記測定された低下を前記電力モニタに提供するように構成される、請求項１に記載の集積回路。
【請求項１０】
複数のプロセッサコアを有するマルチコアプロセッサ内で電源チャネルを監視する方法であって、
前記マルチコアプロセッサ内の複数の電源チャネルによって提供される電力を、前記複数の電力チャネルを介して供給される前記電力のアナログベースのセンシングを介して測定することであって、前記複数の電源チャネルのそれぞれは、前記マルチコアプロセッサ内の前記複数のプロセッサコアのうちの１つまたは複数に電力を提供する、測定することと、
前記複数の電源チャネルのそれぞれを監視することの結果に基づいて、各プロセッサコアに関連する電力使用を判定することと、
前記判定された電力使用に基づいて、前記複数のプロセッサコアのうちの１つまたは複数の動作パラメータを調整することとを含み、前記測定すること、前記判定すること、および前記調整することは、前記複数のプロセッサコアの外部で実行される、方法。
【請求項１１】
前記電力を測定することは、前記複数の電源チャネルのうちの１つまたは複数に関連する電圧レベルおよび／または前記複数の電源チャネルのうちの１つまたは複数に関連する電流レベルのうちの１つまたは複数を測定することを含む、請求項１０に記載の方法。
【請求項１２】
前記電力を測定することは、アナログ−ディジタル変換器（ＡＤＣ）を使用して複数の電源チャネルのうちの１つをサンプリングすることを含む、請求項１０に記載の方法。
【請求項１３】
サンプリングすることは、
マルチプレクサを使用して前記複数の電源チャネルのうちの１つを選択することと、
前記マルチプレクサを使用して選択された前記複数の電源チャネルのうちの前記１つによって提供される前記電力のアナログ状態を測定することと
をさらに含む、請求項１２に記載の方法。
【請求項１４】
前記プロセッサコアのうちの１つまたは複数に関連するアクティビティレベルを、それぞれの前記プロセッサコアに関連する前記判定された電力使用に基づいて判定することをさらに含む、請求項１０に記載の方法。
【請求項１５】
前記プロセッサコアのうちの１つもしくは複数に供給される電力をそれぞれの前記プロセッサコアに関連する前記判定された電力使用に応答して調整すること、および／または前記プロセッサコアのうちの１つもしくは複数に供給されるクロック信号をそれぞれの前記プロセッサコアに関連する前記判定された電力使用に応答して調整することのうちの１つまたは複数をさらに含む、請求項１０に記載の方法。
【請求項１６】
前記判定された電力使用に関連する電力管理情報を前記マルチコアプロセッサに提供することをさらに含む、請求項１０に記載の方法。
【請求項１７】
前記プロセッサコアに関連する電力管理動作を構成するために前記マルチコアプロセッサに対するインターフェースを提供することをさらに含む、請求項１０に記載の方法。
【請求項１８】
電力供給監視のために適合された電源チャネルを含むマルチコアプロセッサであって、
複数のプロセッサコアと、
前記複数のプロセッサコアへの複数の電源チャネルを提供するように構成された電源であって、前記複数の電源チャネルのそれぞれは、前記複数のプロセッサコアのうちの１つまたは複数に関連する、電源と、
前記複数の電源チャネルのそれぞれを介して供給される電力を、前記複数の電源チャネルのそれぞれを介して供給される電力のアナログベースのセンシングを介して測定するように構成された電力モニタと、
前記複数の電源チャネルのそれぞれを介して供給される前記測定された電力に基づいて前記複数のプロセッサコアのうちの１つまたは複数に関連するアクティビティレベルを判定し、前記複数のプロセッサコアのうちの１つまたは複数に関連する前記判定されたアクティビティレベルに応答して前記複数の電源チャネルのうちの１つまたは複数に関連する電力レベルを調整するように構成された電力マネージャとを含み、前記電力モニタおよび前記電力マネージャは、前記複数のプロセッサコアの外部にある、マルチコアプロセッサ。
【請求項１９】
前記電力モニタは、前記複数の電力チャネルのうちの１つまたは複数に結合されたアナログ−ディジタル変換器（ＡＤＣ）を含む、請求項１８に記載のマルチコアプロセッサ。
【請求項２０】
前記電力モニタは、前記ＡＤＣによって測定される電力チャネルを選択するように構成されたマルチプレクサをさらに含む、請求項１９に記載のマルチコアプロセッサ。
【請求項２１】
前記電力モニタは、前記複数の電力チャネルのうちの１つまたは複数に結合された、電圧センサのうちの１つもしくは複数および／または電流センサのうちの１つもしくは複数を含む、請求項１８に記載のマルチコアプロセッサ。
【請求項２２】
前記アナログベースのセンシングは、前記複数のプロセッサコアと前記電力マネージャとの間の前記電力のディジタル通信を用いずに実行される、請求項１に記載の集積回路。
【国際調査報告】
2013508861.tif 000009
2013508861.tif 000010