説明

マルチコアプロセッサ用の電力チャネルモニタ

マルチコアプロセッサ内での電力チャネル監視の技法を、全般的に説明する。電力管理システムを、マルチコアプロセッサ内の個々のコアに供給する電力チャネルを監視するように構成することができる。電力チャネルモニタは、各コアの電力消費の直接測定値を提供することができる。個々のコアの電力消費は、どのコアの使用が多いか、または少ないかを示すことができる。使用判定を、測定されるコアへまたはこれからのデータメッセージの送信を全く伴わずに行うことができる。各プロセッサコアによってサービスされる判定された使用負荷を使用して、そのコアに供給される電力および/またはクロック信号を調整することができる。

【発明の詳細な説明】
【背景技術】
【0001】
本明細書で別段示されない限り、このセクションで説明される材料は、本願の特許請求の範囲に対する従来技術ではなく、このセクションの包含によって従来技術と認められるものではない。
【0002】
マルチコアプロセッサは、一般に、個々のコア間の相互接続を有する複数のプロセッサコアで構成される。個々のコアを相互接続するいくつかのアーキテクチャは、隣接するコア間の通信を高い効率でサポートする。しかし、マルチコアプロセッサ内の非隣接コア間の通信は、中間コア間でメッセージを渡すことに起因する遅延をこうむる可能性がある。マルチコアプロセッサ内のコア数が増えるにつれて、コア間の通信の最適化が、ますます重要になる。これらの通信は、マルチコアプロセッサ内の異なるコアに対するレベル負荷を照会するメッセージを含む場合がある。
【0003】
動的電圧周波数制御(DVFS)は、プロセッサに関連する電圧および/またはクロック周波数が、熱生成および電力消費を管理するために調整される、電力管理技法である。動的電圧制御(dynamic voltage scaling)は、電力を節約するために、プロセッサに印加される電圧を下げることができる。これは、ラップトップコンピュータおよび他のタイプのバッテリ駆動モバイルデバイスで特に有用である可能性がある。動的電圧制御は、コンピュータ性能を高めるために、プロセッサに印加される電圧を上げることができる。動的周波数制御(dynamic frequency scaling)は、電力消費を低減するために、プロセッサのクロック周波数を下げ、あるいは停止することさえできる。
【0004】
DVFSをマルチコアプロセッサ内の個々のコアに適用しようと試みると、コアの個数が増えたとき複数の問題に遭遇する可能性がある。たとえば、計算負荷または各コアによって必要とされる電力に関する安定した最新の情報を、コアへのメッセージ照会を介して入手することは、スケールに応じてマルチコアプロセッサの性能を制限することになり得る(scale into a performance limitation for the multicore processor)。
【発明の概要】
【0005】
本開示の前述および他の特徴は、添付図面と共に次の説明および添付の特許請求の範囲からより十分に明らかになる。これらの図面が本開示による複数の実施形態のみを示し、したがってその範囲を限定すると考えられてはならないことを理解して、本開示を、添付図面の使用を介して追加の限定性および詳細を伴って説明する。
【図面の簡単な説明】
【0006】
【図1】本明細書で提示される少なくともいくつかの実施形態に従って構成された、電力チャネル(power channel)監視のために構成されたマルチコアプロセッサを示すブロック図である。
【図2】本明細書で提示される少なくともいくつかの実施形態に従って構成された、さまざまな電力分配アーキテクチャを有するマルチコアプロセッサを示す概略図である。
【図3】本明細書で提示される少なくともいくつかの実施形態に従って構成された、多重化電力モニタ(multiplexed power monitor)を有するマルチコアプロセッサを示す概略図である。
【図4】本明細書で提示される少なくともいくつかの実施形態に従って構成された、電流センサを使用する多重化電力モニタを有するマルチコアプロセッサを示す概略図である。
【図5】本明細書で提示される少なくともいくつかの実施形態に従って構成された、マルチコアプロセッサ内の電力チャネル監視のプロセスを示す流れ図である。
【図6】本明細書で提示される少なくともいくつかの実施形態に従って構成された、例示的なコンピューティングシステムを示すブロック図である。
【発明を実施するための形態】
【0007】
次の詳細な説明では、本明細書の一部を形成する添付図面を参照する。図面では、文脈により別段規定されない限り、同様の記号が、通常は同様の構成要素を識別する。発明を実施するための形態、図面、および特許請求の範囲で説明される例示的実施形態は、限定的であることを意図されたものではない。本明細書で提示される主題の趣旨または範囲から逸脱せずに、他の実施形態を利用することができ、他の変更を行うことができる。全般的に本明細書で説明され、図面に図示される本開示を、さまざまな異なる構成で配置し、置換し、組み合わせ、分離し、設計することができ、そのすべてが本明細書で明示的に企図されていることが、容易に理解されるであろう。
【0008】
本開示は、全般的に、とりわけマルチコアプロセッサでの電力チャネル監視に関連する方法、装置、およびシステムを対象とする。マルチコアプロセッサ内の個々のコアに供給する電力チャネルを監視するように構成され得る電力管理システムのための技法を説明する。このシステムは、各コアの電力消費の直接測定値を提供する電力モニタを含むことができる。個々のコアの電力消費は、どのコアの使用が多いか、または少ないかを示すことができる。使用判定を、測定されるコアへまたはこれからデータメッセージを送ることなく行うことができる。各プロセッサコアによってサービスされる判定された使用負荷を使用して、コアに供給される電力および/またはクロック信号を調整することができる。コア間のデータ通信を低減することは、特にコアの個数が増えたとき、システム動作を改善することができる。さらに、データ通信なしで使用を判定することは、動作カウントなどの従来の使用測定に関連するプロセッサ計算サイクルを低減することもできる。
【0009】
本明細書で提示される形での電力監視は、マルチコアプロセッサ内のプロセッサコアによって消費される電力を測定することができる。測定された電力および他の電力関連情報を、電力マネージャモジュールに供給することができる。電力マネージャモジュールを、測定された電力に基づいてプロセッサコアの1つまたは複数の動作パラメータを調整するように構成することができる。いくつかの例示的なシナリオでは、電力マネージャモジュールは、対応するプロセッサコアに供給される電流、電圧、電力、クロック信号、またはその任意の組合せを調整することができる。調整できる例示的なクロック信号特性は、クロック信号振幅、周波数、電圧、パルス幅、周期、またはデューティサイクルを含むことができる。また、電力マネージャモジュールを、電力消費および使用の情報をより高いレベルの電力管理動作に供給することによって、プロセッサコアのそれぞれの使用またはこれへのタスク割当を間接的に調整するように構成することができる。
【0010】
本明細書で提示される形での電力監視は、従来の温度監視より正確なプロセッサコア使用測定を提供することもできる。というのは、温度監視が、環境、隣接するコアの動作、またはプロセッサをサポートする集積回路内の他のブロックによって影響される可能性があるからである。電力監視を、動的電圧周波数制御(DVFS)と共に使用することができる。というのは、スケーリングされた電圧または周波数切替が、低減された監視電力消費として現れるからである。いくつかの実施形態によれば、電力監視は、あるプロセッサコアが無限ループまたはある他のエラー状態にロックされている時を識別するためのウォッチドッグモニタとして働くこともできる。これらの状態を、しばしば、影響されるプロセッサコアによる一貫して高い電力消費に関連付けることができる。
【0011】
図1は、本明細書で提示される1つまたは複数の実施形態による電力チャネル監視のために構成されたマルチコアプロセッサ120を示すブロック図である。マルチコアプロセッサ120は、複数のコア110A〜110Pを含むことができる。複数のコア110A〜110Pを、集合的にまたは一般に、コア110と呼ぶ場合がある。マルチコアプロセッサ120に関連する電源130(たとえば、電源回路、電源モジュールなど)を、コア110に電源チャネルを提供するように構成することができる。電源チャネルを、パワーレイルと呼ぶ場合もある。各コアまたはコアのグループの電力を、別々の電力チャネルによって供給することができる。
【0012】
マルチコアプロセッサに関連する電力モニタ150(たとえば、電力モニタ回路、電力モニタモジュールなど)を、電源130からコア110のそれぞれに供給される電力の量を判定するために、電力チャネルのそれぞれを監視するように構成することができる。マルチコアプロセッサ120に関連する電力マネージャ160(たとえば、電力マネージャ回路、電力マネージャモジュールなど)を、マルチコアプロセッサ120の電力管理および温度管理を提供するために電源130および電力モニタ150と共に協調して動作するように構成することができる。
【0013】
いくつかの実施形態によれば、電力マネージャ160を、電力モニタ150からの測定値に応答して電源130を制御するように構成することができる。いくつかの他の実施形態によれば、電力マネージャ160を、電力モニタ150からの測定値に応答してコア110のうちの1つまたは複数に供給されるクロック信号を制御するように構成することができる。いくつかの他の実施形態によれば、電力マネージャ160を、コア110またはマルチコアプロセッサ120もしくは関連するコンピューティングデバイスの他のコンポーネントに対するインターフェースを提供するように構成することができる。提供されるインターフェースを、電力モニタ150から入手される電力チャネル測定値など、電力マネージャ160に関連する状況情報を読み取るように適合させることができる。このインターフェースを、電力マネージャ160、電力モニタ150、および/または電源130にのうちの1つまたは複数に関連する構成、コントロール、または他の変数をセットするために、電力マネージャ160に書き込むように適合させることもできる。
【0014】
電力マネージャ160によって使用できる動的熱管理の一例を、クロックゲーティングと呼ぶことができる。グローバルクロックゲーティングを、マルチコアプロセッサ120のプロセッサ動作を停止させるためにクロック信号のすべてまたは実質的にすべてをオフにするように適合させることができる。ローカルクロックゲーティングを、コア110またはマルチコアプロセッサ120の他のブロックへの個々のクロック信号をオフにするように適合させることができる。クロックをゲートオフすることは、電力消費を一時的に下げることができ、温度過上昇状態があるときまたは温度過上昇状態が回避されているとき使用され得る。クロックがゲートオフされている間に、レジスタ、分岐プレディクタテーブル、およびローカルキャッシュなど、プロセッサ状態を維持することができる。したがって、クロックゲーティングは、オフスイッチではなく、マルチコアプロセッサ120内のプロセッサコア110のサスペンドモードまたはスリープモードとして働くことができる。
【0015】
コア110のうちの1つまたは複数を一時的に停止するためのクロック信号のゲーティングに加えて、電力マネージャ160を、コア110のうちの1つまたは複数に供給されるクロック周波数を調整する(たとえば、動作速度を下げるために周波数を下げ、または動作速度を上げるために周波数を上げる)ように構成することもできる。その代わりに、クロックを、デューティサイクルのオン状態中に一定速度で動作させ、デューティサイクルのオフ状態中にゲートオフすることができる。したがって、クロックデューティサイクルを、電力マネージャ160によって調整して、対応するコア110での電力消費を下げるためにクロックの周期的ゲーティングをもたらすことができる。クロック周波数およびデューティサイクルに加えて、信号振幅(シングルエンドまたは差動のいずれである)、電圧レベルまたは電流レベル、パルス幅、周期、その他など、クロック信号の追加の特性を調整することができる。マルチコアプロセッサ120内の個々のコア110のそれぞれに関連する電力消費を制御できるように、クロック信号に関連する1つまたは複数の特性の調整を、電力マネージャ160によって制御することができる。
【0016】
状況および制御インターフェースを提供することによって、電力マネージャ160を、より高いレベルの電力管理技法をサポートするように配置することもできる。たとえば、ポリシベースのスレッドマイグレーション技法を、マルチコアプロセッサ120の電力消費および熱特性を管理するためにコア110間でプロセスまたはスレッドを再配置するように構成することができる。これらのより高いレベルの電力管理技法を、DVFSなどの物理的手法と組み合わせることもできる。経験的テストにより、基本的な電圧および周波数の管理と一緒にスレッド再配置管理を使用する、2つのコア110を有するマルチコアプロセッサ120が、いくつかの例で、使用可能なリソースでの約250%の改善または電力消費の同等の削減をもたらすことができることを実証することができる。
【0017】
別のより高いレベルのまたはハイブリッドの電力管理手法によれば、コンパイラまたはランタイム環境を、プロセッサまたはコア110の電力管理条件に従ってコードをコンパイルしまたは実行するのに使用される最適化パラメータをセットするように構成することができる。コンパイラを、計算の必要に従ってプロセッサまたはコア110のDVFSセッティングを提案するように構成することもできる。
【0018】
本明細書で提示される電力チャネル監視技法を、プロセッサコア110だけではなく、マルチコアプロセッサ120内の任意の他のブロックまたは機能ユニットにも適用できることを理解されたい。たとえば、マルチコアプロセッサ120内のメモリ、キャッシュ、入出力デバイス、コントローラ、他のブロック、または他の機能ユニットを、本明細書で提示される電力チャネル監視技法によってサポートすることができる。さらに、これらの技法を、任意のブロック、コア、モジュール、回路、または、サブディビジョンが個々のもしくは部分的に分離された電源チャネルを有する可能性がある、任意の集積回路、チップ、システムオンチップ(SOC)、マルチチップアレイ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、他のプログラマブル論理、メモリ、コントローラなどの中の他のサブディビジョンに適用することができる。
【0019】
電力モニタ150および電力マネージャ160の機能を他のモジュール内で提供できることを理解されたい。たとえば、そのような機能性を、電源130または他の制御モジュール、管理モジュール、もしくはスーパーバイザモジュールに一体化することができる。同様に、電力モニタ150および電力マネージャ160の機能を、単一のモジュールに組み合わせることができる。
【0020】
ここで図2に移ると、概略図に、本明細書で提示される1つまたは複数の実施形態に従って配置されたさまざまな電力分配アーキテクチャを有するマルチコアプロセッサ120が示されている。電源130を、マルチコアプロセッサのコア110に電力を供給するように構成することができる。各コアまたはコアのグループの電力を、別々の電力チャネルによって供給することができる。たとえば、電力チャネル210Aは、電源130からプロセッサコア110Aに電力を供給することができ、電力チャネル210Bは、電源130からプロセッサコア110Bと110Cとの両方に電力を供給することができる。同様に、電力チャネル210Cは、電源130から3つのプロセッサコア110D、110E、および110Fに電力を供給することができる。いくつかの実施形態によれば、電力を、2つ以上の電力チャネルを用いて各コアまたはコアのグループに供給することができる。たとえば、電力チャネル210Dを、プロセッサコア110Gに5VDC(ボルト直流)で電力を供給するように構成することができ、第2の電力チャネルを、同じプロセッサコア110Gに3.3VDCで電力を供給するように構成することができる。電力供給電圧または電力供給電流のさまざまな他のレベルを、さまざまな実施形態に従ってサポートすることもできる。
【0021】
ここで図3に移ると、概略図に、本明細書で提示される1つまたは複数の実施形態に従って配置された多重化電力モニタを有するマルチコアプロセッサ120が示されている。電源130を、マルチコアプロセッサのコア110に電力を供給するように構成することができる。この例では、電力を、電力チャネル210Aを介してコア110Aに、電力チャネル210Bを介してコア110Bに、電力チャネル210Cを介してコア110Cに供給することができる。電力チャネル210A〜210Cを、集合的にまたは一般に電力チャネル210と呼ぶ場合がある。3つのコア110が、3つの電力チャネル210と一緒に図示されているが、任意の個数のコア110および電力チャネル210が、マルチコアプロセッサ内に存在できることを理解されたい。コア110および電力チャネル210の個数を、同じとすることができ、あるいは、複数のコア110に単一の電力チャネル210によって供給することができ、1つのコア110に複数の電力チャネル210によって供給することができるので、この個数を異なるものとすることができる。
【0022】
電力チャネル210のそれぞれを介して配送される電力を、電力モニタ150によって測定することができる。いくつかの実施形態によれば、アナログ−ディジタル変換器(ADC)230を、電力チャネル210のアナログ状態を測定し、測定されたアナログ状態に対応するディジタル情報を提供するように適合させることができる。一例では、ADC 230を、電力チャネル210の電圧を直接にまたは間接に測定するように構成することができる。別の例では、ADC 230を、図4に関してさらに詳細に説明されるように、電力チャネル210の電流を測定するように構成することができる。
【0023】
マルチプレクサ220を、複数の電力チャネル210のうちのどれが現在ADC 230によってサンプリングされているのかを選択するように構成することができる。マルチプレクサ220に関連する1つまたは複数の制御入力240を使用して、監視のための電流電力チャネル210を選択することができる。制御入力240を、電力モニタ150、電力マネージャ160、カウンタ、状態機械、またはマルチコアプロセッサ120の電力管理に関連する他の回路もしくはモジュールによって提供することができる。マルチプレクサ220および/またはADC 230を、諸実施形態に従って電力モニタ150に一体化できることを理解されたい。
【0024】
電力チャネル210に関連する電流および/または電圧を、電力モニタ150によって測定することができる。さまざまな実施形態によれば、電圧が実質的に固定され、電流がコア110の電力需要に従って変化する場合がある。その代わりに、電流が実質的に固定され、電圧がコア110の電力需要に従って変化する場合がある。電流または電圧のどちらが変化しているのかに応じて、電力モニタ150は、変化する電流および/または変化する電圧を測定することができる。実質的に固定された電流または電圧を、既知の値または指定された値とすることができる。電力を、電力は電圧を乗じられた電流と等しいという関係に従って計算することができる。たとえば、電力(ワット単位)を、電圧(ボルト単位)による電流(アンペア単位)の乗算によって判定することができる。電圧を、ポテンシャル、電位、電位差、または起電力と呼ぶ場合もある。電流を、電荷流の時間割合と見なすことができる。また、電力を、所与の時間期間内に仕事を行う能力と考えることができ、ここで、仕事を、場に逆らって電荷を移動するときなど、ある距離にわたって力を働かせることと見なすことができる。
【0025】
電力チャネル210の電流および/または電圧を、マルチコアプロセッサ120内の電源供給システムの実質的な変更を伴わずに電力モニタ150によって測定することができる。上で述べたように、コア110およびマルチコアプロセッサ120の他のブロックに供給される電力の直接測定は、どのデータバスにもメッセージ照会の負荷を与えずに、各コア110に関連する計算負荷または使用レベルに関する情報を提供することができる。
【0026】
電力モニタ150を用いてコア110の電力消費を測定することは、電力および熱の管理に関連する熱モデリング、熱負荷平衡化、負荷プラニング、および他のシステム管理機能に情報を与えることができる。いくつかの実施形態によれば、電力マネージャ160は、プロセッサコア110に関連する電力消費情報を使用して、関連するコア110の供給される電圧またはクロック周波数のセッティングを調整することができる。たとえば、特定のプロセッサコア110が、低減された量の電力を消費している場合に、電力マネージャ160は、そのコア110が、低減された計算負荷を扱っていると判定し、したがって、そのコア110に供給される電圧を下げるか、そのコア110に供給されるクロック周波数を低減することができる。
【0027】
図4では、概略図に、本明細書で提示される1つまたは複数の実施形態に従って配置された電流センサ310A〜310Cを使用する多重化電力モニタを有するマルチコアプロセッサ120が示されている。電流センサ310Aを、コア110Aに電力を供給する電力チャネル210Aとインラインに配置することができる。同様に、電流センサ310Bを、コア110Bに電力を供給する電力チャネル210Bとインラインに配置することができ、電流センサ310Cを、コア110Cに電力を供給する電力チャネル210Cとインラインに配置することができる。電流センサ310A〜310Cを、集合的にまたは一般に電流センサ310と呼ぶ場合がある。いくつかの実施形態によれば、電力モニタ150を、供給チャネル210に関連する電流を測定するように構成することができる。これらの電流測定を、電流センサ310を使用して実行することができる。測定された電流を表す信号を、電圧(下で述べるように)または電流とすることができ、ADC 230を使用してディジタル値または数値に変換することができる。
【0028】
例示的な電流センサ310は、電流が測定される供給チャネル210とインラインに配置された既知の負荷(または抵抗)にまたがるポテンシャルまたは電圧の低下を測定することを含むことができる。しかし、熱および電力損失の展望から、既知の負荷を介して供給電流全体を低下させることが、望ましくない場合がある。したがって、スケーリングされた電流ミラーを電流センサ310として使用することができ、ここで、電力チャネル210内の電流のスケーリングされたものを、測定のために電流ミラーによって提供することができる。代替案では、電流ミラー内のフィードバック電圧信号を直接に測定することができる。電流ミラーを、回路のある構成要素内の電流を調整することによって回路の別の構成要素を通って供給される電流をコピーするように設計された任意の回路とすることができる。
【0029】
ここで図5を参照し、マルチコアプロセッサ内のコア使用の電力チャネル監視について、追加の詳細を、本明細書で提示される実施形態に関して提供する。具体的に言うと、図5は、本明細書で提示される少なくともいくつかの実施形態に従って配置されたマルチコアプロセッサ内の電力チャネル監視のプロセス400を示す流れ図である。
【0030】
本明細書で説明される動作が、動作または製造する行為のシーケンスとして、コンピューティングシステム上で動作するコンピュータ実施される行為またはプログラムモジュールのシーケンスとして、あるいはコンピューティングシステム内の相互接続された機械論理回路または回路モジュールとして実施されることを理解されたい。実施態様は、さまざまな実施形態の性能および他の要件に依存する選択の問題である。本明細書で説明される論理動作のいくつかは、さまざまに、状態動作、機能、アクション、構造デバイス、またはモジュールと呼ばれる。これらの動作、機能、アクション、構造デバイス、および/またはモジュールを、ソフトウェアで、ファームウェアで、特殊目的ディジタル論理で、およびその任意の組合せで実施することができる。図面に示され本明細書で説明されるものより多数またはより少数の動作を実行できることをも理解されたい。これらの動作を、順次、並列に、または本明細書で説明されるものとは異なる順序で実行することもできる。
【0031】
プロセス400は、ブロック410、420、430、440、450、460、および/または470のうちの1つまたは複数によって示されるように、さまざまな動作、機能、またはアクションを含むことができる。プロセス400は、ブロック410(マルチコアプロセッサの各コアに供給する電力チャネルを監視する)で始まることができ、ここで、電力モニタ150を、プロセッサコア110に供給するそれぞれの電力チャネル210のそれぞれの電流および/または電圧を測定するように構成することができる。いくつかの例では、複数の電力チャネル210上の電流および/または電圧を、ADC 230と、電力チャネル210のうちのどれが電力モニタ150よる読取のためにADC 230によって現在サンプリングされているのかを選択するように適合された220用のマルチプレクサとを使用して測定することができる。ブロック410に、ブロック420が続くことができる。
【0032】
ブロック420(電力チャネルを介して各コアに配送される電力を測定する)では、電力モニタ150を、それぞれの電力チャネル210のそれぞれによってプロセッサコア110に供給される電力を判定するように構成することができる。ブロック410で測定された各それぞれの電力チャネル210の電流または電圧を使用して、各電力チャネル110に関連するコア110によって消費される電力を判定することができる。上で述べたように、測定された電流および/または電圧を使用して、電力は電圧を乗じられた電流と等しいという関係を使用して消費された電力を計算することができる。ブロック420に、ブロック430が続くことができる。
【0033】
ブロック430(測定された電力から各コアに関連する負荷を判定する)では、電力マネージャ160および/または電力モニタ150を、マルチコアプロセッサ120のコア110のそれぞれに関連する計算負荷を判定するように構成することができる。コア110によってサービスされる計算負荷を、ブロック420で判定される、コア110によって消費されている電力から判定することができる。コア110によって消費される電力は、主に、論理、ゲート、レジスタ、およびコア110に関連する他のメモリ内のスイッチングトランジスタによって使用される可能性がある。電力消費は、コア110内のこれらの要素のアクティビティに強く相関する可能性があり、したがって、コア110によってサービスされている負荷を判定するための代理として使用され得る。計算負荷の測定値を、各コア110に関連するアクティビティレベルと呼ぶ場合もある。ブロック430に、ブロック440が続くことができる。
【0034】
ブロック440(コアに関連する負荷に基づいてコアに供給される電力を調整する)では、電力マネージャ160を、電源130からマルチコアプロセッサ120内のコア110のそれぞれに供給される電力を調整するように構成することができる。コア110に配送される電力を、コア110に供給する電力チャネル210に電源130によって駆動される電圧および/または電流をスケーリングすることによって調整することができる。ブロック440に、ブロック450が続くことができる。
【0035】
ブロック450(コアに関連する負荷に基づいてコアへのクロック信号を調整する)では、電力マネージャ160を、マルチコアプロセッサ120内のコア110のそれぞれに供給されるそれぞれのクロックを調整するように構成することができる。コア110によって消費される電力を、コア110によって使用されるクロック信号のゲーティング、スケーリング、またはデューティサイクリングによって調整することができる。さらに、クロック信号を、その振幅(シングルエンドまたは差動のいずれであれ)、電圧レベルまたは電流レベル、周波数、電圧、パルス幅、または周期によって調整することができる。ブロック450に、ブロック460が続くことができる。
【0036】
ブロック460(マルチコアプロセッサに電力管理情報を提供する)では、電力マネージャ160を、電力管理に関連する情報をマルチコアプロセッサ120に提供するように構成することができる。この情報は、ブロック410で測定された各コア110に供給される電圧および/もしくは電流、ブロック420で判定された各コア110に供給される電力、ブロック430で判定された各ブロックでの負荷、またはマルチコアプロセッサ120の動作を制御し、測定し、もしくは管理するのに使用できる任意の他の電力管理情報を含むことができる。この情報を、可読データレジスタの形で電力マネージャ160によって供給することができる。このレジスタを読み取るインターフェースを、マルチコアプロセッサ120の内部とすることができ、あるいは、任意のデータバス、低ピンカウントバス、または電力マネージャ160への他のインターフェース上の入出力として供給することができる。ブロック460に、ブロック470が続くことができる。
【0037】
ブロック470(マルチコアプロセッサへの電力管理制御インターフェースを公開する(expose))では、電力マネージャ160を、マルチコアプロセッサ120上の電力管理に関連するパラメータを制御するインターフェースを提供するように構成することができる。パラメータは、各コア110に供給される電圧および/もしくは電流、ブロック430で判定された各コア110での測定された負荷に応答して行われる電力およびクロックの調整、またはマルチコアプロセッサ120の動作を制御し、測定し、もしくは管理するのに使用される任意の他の電力管理パラメータを指定することを含むことができる。インターフェースを、書込可能データレジスタの形で電力マネージャ160内で提供することができる。レジスタに書き込むインターフェースを、マルチコアプロセッサ120の内部とすることができ、あるいは、任意のデータバス、低ピンカウントバス、または電力マネージャ160への他のインターフェース上の入出力として供給することができる。ブロック470の後に、プロセス400は、繰り返す(たとえば、周期的に、連続的に、または必要に応じてオンデマンドで)か終了するかのいずれかを行うことができる。
【0038】
図6を参照すると、本明細書で説明されるさまざまな実施形態を実施する、例示的なコンピューティングシステムが示されている。このコンピューティングシステムは、マルチコアプロセッサに関する電力チャネル監視を実施する実施形態をサポートすることができる。たとえば、図6に示されたコンピューティングシステムは、電力チャネル監視をサポートするように構成されたマルチコアプロセッサ120を含むことができる。さまざまな実施形態は、コンピュータ、専用ハードウェア、または組込みコンピューティングシステムを含むことができる。
【0039】
このコンピューティングシステムは、コンピュータ10を含む。コンピュータ10は、マルチコアプロセッサ120、メモリ12、および1つまたは複数のドライブ13を含むことができる。ドライブ13およびそれに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール23、およびコンピュータ10用の他のデータのストレージを提供することができる。コンピュータ10は、従来のコンピュータシステム、組込み制御コンピュータ、ラップトップ機、サーバコンピュータ、モバイルデバイス、セットトップボックス、キオスク、車両情報システム、携帯電話機、カスタマイズされた機械、または他のハードウェアプラットフォームとして実施することができる。さまざまな実施形態に従って、マルチコアプロセッサ120を、汎用プロセッサ、プロセッサコア、マルチプロセッサ、マルチコア処理ユニット、グラフィックスプロセッサ、ディジタル信号処理(DSP)プロセッサ、特定用途向け集積回路(ASIC)内で実施されるカスタマイズされたコンピューティングデバイス、フィールドプログラマブルゲートアレイ(FPGA)内で実施されるカスタマイズされたコンピューティングデバイス、任意のタイプのプログラマブル論理内で実施されるカスタマイズされたコンピューティングデバイス、状態機械、再構成可能プロセッサ、任意の他の処理ユニット、またはその任意の組合せもしくは多数とすることができる。マルチコアプロセッサ120は、本明細書で議論される電力モニタ150および/または電力マネージャ160を特徴とすることができる。
【0040】
ドライブ13、他のストレージデバイス、またはそれに関連するコンピュータ可読記憶媒体は、オペレーティングシステム21、アプリケーションプログラム22、およびプログラムモジュール23を格納することができる。プログラムモジュール23は、本明細書で議論される電力監視および電力管理機能性を実施する電力管理ソフトウェア24を含むことができる。電力管理ソフトウェア24を、オペレーティングシステム21、アプリケーションプログラム22、ROM、またはコンピュータ10に実行可能命令を提供する任意の他の構成要素の一部とすることもできることを理解されたい。コンピュータ10は、ユーザがそれを介してコマンドおよびデータを入力できるユーザ入力デバイス15を含むことができる。入力デバイスは、電子ディジタイザ、マイクロホン、キーボード、ポインティングデバイス、またはその任意の組合せを含むことができる。ポインティングデバイスの例は、マウス、トラックボール、ライトペン、タッチスクリーン、またはタッチパッドを含むことができる。コンピュータ10への他の入力デバイスは、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナ、または類似物を含むことができる。入力デバイスを、システムバスに結合されたユーザ入力インターフェースを介してマルチコアプロセッサ120に接続することができる。入力デバイスを、パラレルポート、ゲームポート、またはuniversal serial bus(USB)などの他のインターフェースおよびバス構造によって接続することもできる。コンピュータ10などのコンピュータは、スピーカなどの他の周辺出力デバイスを含むこともでき、この他の周辺出力デバイスは、出力周辺インターフェース19または類似するインターフェースを介して接続され得る。
【0041】
コンピュータ10は、ネットワークインターフェース16に接続されたリモートコンピュータなどの1つまたは複数のコンピュータへの論理接続を使用してネットワーク化された環境で動作することができる。リモートコンピュータを、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードとすることができる。リモートコンピュータは、コンピュータ10に関して本明細書で説明した要素の多くまたはすべてを含むことができる。ネットワーキング環境は、ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、イントラネット、インターネット、またはその組合せを含むことができる。
【0042】
LANまたは無線LAN(WLAN)ネットワーキング環境で使用されるとき、コンピュータ10を、ネットワークインターフェース16またはネットワークアダプタを介してLANに接続することができる。WANネットワーキング環境で使用されるとき、コンピュータ10は、モデムまたはWANを介して通信を確立する他の機構を含むことができる。WANは、インターネット、図示のネットワーク18、さまざまな他のネットワーク、またはその任意の組合せを含むことができる。通信リンク、リング、メッシュ、バス、クラウド、またはコンピュータ間のネットワークを確立する他の機構を使用できることを理解されたい。
【0043】
コンピュータ10は、ドライブ13または他のストレージデバイスに関連する1つまたは複数の物理コンピュータ可読記憶媒体の1つまたは複数のインスタンスを含むことができる。システムバスは、マルチコアプロセッサ120がコンピュータ可読記憶媒体へ/からコードおよび/またはデータを読み取ることを可能にすることができる。媒体は、半導体、磁気材料、光学媒体、電気ストレージ、電気機械ストレージ、または任意の他のそのようなストレージ技術を含むがこれに限定されない任意の適切な技術を使用して実施されるストレージ要素の形の装置を表すことができる。媒体は、RAM、ROM、フラッシュ、または他のタイプの揮発性もしくは不揮発性のメモリ技術のいずれとして特徴を表されるものであれ、メモリ12に関連する構成要素を表すことができる。媒体は、ストレージドライブ13または他の形のどちらとして実施されるものであれ、二次ストレージを表すこともできる。ハードドライブ実施態様を、ソリッドステートとして特徴を表すことができ、あるいは、ハードドライブ実施態様は、磁気的に符号化された情報を格納する回転する媒体を含むことができる。
【0044】
記憶媒体は、1つまたは複数のプログラムモジュールを含むことができる。プログラムモジュール23は、マルチコアプロセッサ120にロードされ、実行されるとき、汎用コンピューティングシステムを、本明細書で開示される電力監視および電力管理技法のすべてまたは一部を容易にするためにカスタマイズされた特殊目的コンピューティングシステムに変換する、ソフトウェア命令を含むことができる。この説明全体を通じて詳細に説明されるように、プログラムモジュール23は、コンピュータ10がそれによって本明細書で議論される構成要素、論理フロー、および/またはデータ構造を使用して全体的なシステムまたは動作環境内で参加できるさまざまなツールまたは技法を提供することができる。
【0045】
いくつかの実施形態によれば、記憶媒体を、ドライブ13などの磁気技術または光学技術を使用して実施することができる。そのような実施形態では、プログラムモジュール23は、ソフトウェアが磁気媒体または光学媒体内で符号化されるとき、その媒体の物理的状態を変えることができる。これらの変更は、所与の磁気媒体内の特定の位置の磁気特性を変更することを含むことができる。これらの変更は、所与の光学媒体内の特定の位置の光学特性を変更するために、これらの位置の物理的特徴または特性を変更することを含むこともできる。物理媒体のさまざまな他の変更が、この説明の範囲および趣旨から逸脱せずに可能であることを理解されたい。
【0046】
本開示は、さまざまな態様の例示であることを意図された、本願で説明される特定の実施形態に関して限定されてはならない。当業者に明らかであるように、多数の修正形態および変形形態を、その趣旨および範囲から逸脱せずに作ることができる。本開示の範囲内の機能的に同等の方法および装置は、本明細書に列挙された方法および装置に加えて、前述の説明から当業者に明らかであろう。そのような修正形態および変形形態は、添付の特許請求の範囲に含まれることが意図されている。本開示は、添付の特許請求の範囲が権利を与えられる同等物の全範囲と一緒に、添付の特許請求の範囲の言葉によってのみ限定されなければならない。本開示が、特定の方法、構成要素、要素、装置、またはシステムに限定されず、これらの方法、構成要素、要素、装置、またはシステムが、もちろん変化し得ることを理解されたい。本明細書で使用される用語法が、特定の実施形態を説明するのみのためのものであって、限定的であることを意図されていないことをも理解されたい。
【0047】
本明細書における実質的にすべての複数形および/または単数形の用語の使用に対して、当業者は、状況および/または用途に適切なように、複数形から単数形に、および/または単数形から複数形に変換することができる。さまざまな単数形/複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。
【0048】
通常、本明細書において、特に添付の特許請求の範囲(たとえば、添付の特許請求の範囲の本体部)において使用される用語は、全体を通じて「オープンな(open)」用語として意図されていることが、当業者には理解されよう(たとえば、用語「含む(including)」は、「含むがそれに限定されない(including but not limited to)」と解釈されるべきであり、用語「有する(having)」は、「少なくとも有する(having at least)」と解釈されるべきであり、用語「含む(includes)」は、「含むがそれに限定されない(includes but is not limited to)」と解釈されるべきである、など)。
【0049】
導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。たとえば、理解の一助として、添付の特許請求の範囲は、導入句「少なくとも1つの(at least one)」および「1つまたは複数の(one or more)」を使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句「1つまたは複数の」または「少なくとも1つの」および「a」または「an」などの不定冠詞を含む場合であっても、不定冠詞「a」または「an」による請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に1つのそのような記載を含む発明実施形態に限定する、ということを示唆していると解釈されるべきではない(たとえば、「a」および/または「an」は、通常、「少なくとも1つの」または「1つまたは複数の」を意味すると解釈されるべきである)。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、通常、少なくとも記載された数を意味すると解釈されるべきであることが、当業者には理解されよう(たとえば、他の修飾語なしでの「2つの記載(two recitations)」の単なる記載は、通常、少なくとも2つの記載、または2つ以上の記載を意味する)。
【0050】
さらに、「A、BおよびC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている(たとえば、「A、B、およびCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない)。「A、B、またはC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている(たとえば、「A、B、またはCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない)。2つ以上の代替用語を提示する事実上いかなる離接する語および/または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方(one of the terms)、当該用語のいずれか(either of the terms)、または両方の用語(both terms)を含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。たとえば、句「AまたはB」は、「A」または「B」あるいは「AおよびB」の可能性を含むことが理解されよう。
【0051】
さらに、開示される特徴または態様が、マーカッシュグループに関して説明される場合に、当業者は、その開示が、これによってマーカッシュグループの任意の個々のメンバまたはメンバのサブグループに関しても説明されることを認めるであろう。
【0052】
当業者によって理解されるように、書かれた説明の提供に関してなど、すべてにおいて、本明細書で開示されるすべての範囲は、任意のすべての可能な副範囲およびその副範囲の組合せをも含む。すべてのリストされた範囲を、少なくとも等しい半分、3分の1、4分の1、5分の1、10分の1などに分割される同じ範囲を十分に記述し、可能にするものとして容易に認めることができる。非限定的な例として、本明細書で議論される各範囲を、下側3分の1、中央3分の1、および上側3分の1などに容易に分割することができる。やはり当業者によって理解されるように、「〜まで」、「少なくとも」、「〜より大きい」、「〜より小さい」などのすべての言語は、列挙された数を含み、上で議論したようにその後に副範囲に分割できる範囲に言及する。最後に、当業者によって理解されるように、範囲は、各個々の数を組む。したがって、たとえば、1〜3個の要素を有するグループは、1個、2個、または3個の要素を有するグループに言及する。同様に、1〜5個の要素を有するグループは、1個、2個、3個、4個、または5個の要素を有するグループに言及するなどである。
【0053】
さまざまな態様および例を本明細書で開示したが、他の態様および例は、当業者には明らかであろう。本明細書で開示されたさまざまな態様および例は、例示のためのものであって、限定的であることは意図されておらず、真の範囲および趣旨は、次の特許請求の範囲によって示される。

【特許請求の範囲】
【請求項1】
マルチコアプロセッサ内の電源チャネルを監視するように適合された集積回路であって、
複数のプロセッサコアと、
前記複数のプロセッサコアのそれぞれに電力を供給するように構成された複数の電力チャネルと、
前記複数のプロセッサコアのそれぞれに前記電力チャネルのそれぞれを介して供給される電力を測定するように構成された電力モニタと、
前記測定された電力に基づいて前記複数のプロセッサコアのうちの1つまたは複数の動作パラメータを調整するように構成された電力マネージャと
を含む集積回路。
【請求項2】
前記複数の電力チャネルのうちの1つは、前記複数のプロセッサコアのうちの2つ以上に電力を供給する、請求項1に記載の集積回路。
【請求項3】
前記複数の電力チャネルのうちの2つ以上は、前記複数のプロセッサコアのうちの同じ1つに電力を供給する、請求項1に記載の集積回路。
【請求項4】
前記動作パラメータは、前記複数のプロセッサコアのうちの前記1つまたは複数に提供されるクロック信号の1つまたは複数の特性を含む、請求項1に記載の集積回路。
【請求項5】
前記クロック信号の前記1つまたは複数の特性は、周波数、周期、パルス幅、デューティサイクル、信号振幅、電圧、および/または電流のうちの1つまたは複数を含む、請求項4に記載の集積回路。
【請求項6】
前記電力モニタモジュールは、前記複数の電力チャネルのうちの1つまたは複数に結合されたアナログ−ディジタル変換器(ADC)を含む、請求項1に記載の集積回路。
【請求項7】
前記電力モニタモジュールは、前記ADCによって測定される電力チャネルを選択するように構成されたマルチプレクサをさらに含む、請求項6に記載の集積回路。
【請求項8】
前記電力モニタモジュールは、前記複数の電力チャネルのうちの1つまたは複数に結合された、電圧センサのうちの1つもしくは複数および/または電流センサのうちの1つもしくは複数に結合される、請求項1に記載の集積回路。
【請求項9】
前記電力モニタモジュールは、前記複数の電力チャネルのうちの1つまたは複数と直列に結合された電流センサをさらに含み、前記電流センサは、前記電力チャネルのうちの対応する1つとインラインに配置された既知の負荷または電流ミラーのうちの1つまたは複数を含む、請求項1に記載の集積回路。
【請求項10】
複数のプロセッサコアを有するマルチコアプロセッサ内で電源チャネルを監視する方法であって、
前記マルチコアプロセッサ内の複数の電源チャネルを監視することであって、前記複数の電源チャネルのそれぞれは、前記マルチコアプロセッサ内の前記複数のプロセッサコアのうちの1つまたは複数に電力を提供する、監視することと、
前記複数の電源チャネルのそれぞれを監視することの結果に基づいて、各プロセッサコアに関連する電力使用を判定することと、
前記判定された電力使用に基づいて、前記複数のプロセッサコアのうちの1つまたは複数の動作パラメータを調整することと
を含む方法。
【請求項11】
監視することは、前記複数の電源チャネルのうちの1つまたは複数に関連する電圧レベルおよび/または前記複数の電源チャネルのうちの1つまたは複数に関連する電流レベルのうちの1つまたは複数を測定することを含む、請求項10に記載の方法。
【請求項12】
監視することは、アナログ−ディジタル変換器(ADC)を使用して複数の電源チャネルのうちの1つをサンプリングすることを含む、請求項10に記載の方法。
【請求項13】
サンプリングすることは、マルチプレクサを使用して前記複数の電源チャネルのうちの1つを選択することをさらに含む、請求項12に記載の方法。
【請求項14】
前記プロセッサコアのうちの1つまたは複数に関連するアクティビティレベルを、それぞれの前記プロセッサコアに関連する前記判定された電力使用に基づいて判定することをさらに含む、請求項10に記載の方法。
【請求項15】
前記プロセッサコアのうちの1つもしくは複数に供給される電力をそれぞれの前記プロセッサコアに関連する前記判定された電力使用に応答して調整すること、および/または前記プロセッサコアのうちの1つもしくは複数に供給されるクロック信号をそれぞれの前記プロセッサコアに関連する前記判定された電力使用に応答して調整することのうちの1つまたは複数をさらに含む、請求項10に記載の方法。
【請求項16】
前記判定された電力使用に関連する電力管理情報を前記マルチコアプロセッサに提供することをさらに含む、請求項10に記載の方法。
【請求項17】
前記プロセッサコアに関連する電力管理動作を構成するために前記マルチコアプロセッサに対するインターフェースを提供することをさらに含む、請求項10に記載の方法。
【請求項18】
電力供給監視のために適合された電源チャネルを含むマルチコアプロセッサであって、
複数のプロセッサコアと、
前記複数のプロセッサコアへの複数の電源チャネルを提供するように構成された電源であって、前記複数の電源チャネルのそれぞれは、前記複数のプロセッサコアのうちの1つまたは複数に関連する、電源と、
前記複数の電源チャネルのそれぞれを介して供給される電力を測定するように構成された電力モニタと、
前記複数の電源チャネルのそれぞれを介して供給される前記測定された電力に基づいて前記複数のプロセッサコアのうちの1つまたは複数に関連するアクティビティレベルを判定し、前記複数のプロセッサコアのうちの1つまたは複数に関連する前記判定されたアクティビティレベルに応答して前記複数の電源チャネルのうちの1つまたは複数に関連する電力レベルを調整するように構成された電力マネージャと
を含むマルチコアプロセッサ。
【請求項19】
前記電力モニタは、前記複数の電力チャネルのうちの1つまたは複数に結合されたアナログ−ディジタル変換器(ADC)を含む、請求項18に記載のマルチコアプロセッサ。
【請求項20】
前記電力モニタは、前記ADCによって測定される電力チャネルを選択するように構成されたマルチプレクサをさらに含む、請求項19に記載のマルチコアプロセッサ。
【請求項21】
前記電力モニタは、前記複数の電力チャネルのうちの1つまたは複数に結合された、電圧センサのうちの1つもしくは複数および/または電流センサのうちの1つもしくは複数を含む、請求項18に記載のマルチコアプロセッサ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公表番号】特表2013−508861(P2013−508861A)
【公表日】平成25年3月7日(2013.3.7)
【国際特許分類】
【出願番号】特願2012−535286(P2012−535286)
【出願日】平成22年10月19日(2010.10.19)
【国際出願番号】PCT/US2010/053110
【国際公開番号】WO2011/049895
【国際公開日】平成23年4月28日(2011.4.28)
【出願人】(509348786)エンパイア テクノロジー ディベロップメント エルエルシー (117)
【Fターム(参考)】