説明

マルチコアプロセッサにおける電力管理調整

【課題】マルチコアプロセッサにおける電力管理動作を調整するのに好適な技術を提供する。
【解決手段】各コアが対応する独立リソース設定を有し、第1コアと第2コアとを含む複数のコアにより共有される共有リソースに対して互いに異なる動作要求をする複数のコアと、複数の整合しない動作要求と、電力セービングポリシーと高パフォーマンスポリシーとの何れが重要である方に基づき共有リソースの設定を調整する調整ロジックとを有するプロセッサであって、調整ロジックは、電力状態遷移テーブルに基づき第1動作要求を第1目標値に、第2動作要求を第2目標値に変換し、第1目標値と第2目標値とを比較することによって第1動作要求と第2動作要求とを比較し、第2目標値が第1目標値より大きい場合、第2目標値を共有リソース設定として選択することによって、複数の整合しない動作要求に基づき前記共有リソース設定を調整する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の1以上の実施例は、一般に電力管理に関する。より詳細には、特定の実施例は、マルチコアプロセッサにおける電力管理動作の調整に関する。
【背景技術】
【0002】
より多くのトランジスタとより高い周波数を備えた先進的なプロセッサに対するトレンドが増大し続けるに従って、コンピュータ設計者及び製造者は、しばしば対応する電力消費の増大に直面する。さらに、より高速かつ小型のコンポーネントを提供する製造技術は、同時に漏れ電力の増大をもたらしうる。特にモバイル計算環境では、電力消費の増大はオーバーヒートを発生させる可能性があり、パフォーマンスに悪影響を与え、バッテリ寿命を大きく低減させる可能性がある。
【0003】
いくつかの現在のモバイル計算システムは、プロセッサベース電力管理スキームを実現することにより、バッテリ寿命の低減に対する懸念に取り組んでいる。例えば、より一般的なアプローチの1つは、高いパフォーマンスが必要とされない、又は所望されないときには、プロセッサのクロック周波数とコア電圧を低下させることによって、動的にプロセッサの電力消費を低下させるというものである。電力管理はまた、プロセッサがチップセット、メモリサブシステム、入出力(I/O)デバイスなどの他のコンポーネントと通信するのに利用するバスの周波数を招請することによって向上させることが可能である。他のアプローチは、電力を節約するため、プロセッサに対するクロックをスイッチオン・オフ又は「ゲート」オン・オフ(すなわち、クロックの「スロットル」)することである。プロセッサベース電力管理のさらなる具体例は、内部アレイ、実行ユニットなどのプロセッサのアーキテクチャコンポーネントをスロットルすることである。いくつかの技術は、電力消費をさらに低下させるため、上記アプローチの各種組み合わせを利用している。これらの電力管理スキームはある状況下においては許容であるものであるが、いくつかの問題が残っている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
1つの問題は、各プロセッサ上に複数のコアを備えるシステムの複数のプロセッサを含むことが可能なより複雑なプロセッサアーキテクチャに対する近年のトレンドに関するものである。このような場合、電力関連リソース及び関連するコントロールのいくつかは、プロセッサコア間で共有される一方、他のリソース及びコントロールは、所与のコアに専用とされるかもしれない。専用のリソース及びコントロールは、他のコアのリソース及びコントロールと独立したものである一方、共有されたリソース及びコントロールは、各コアの状態に依存する。しかしながら、従来の電力管理スキームは、これらのケースにおいては良好には機能しないかもしれない。なぜなら、それらはシングルプロセッサ環境に対して構成されているためである。
【0005】
例えば、そのようなスキームの1つは、オペレーティングシステム(OS)レベルでの各種電力状態の間のプロセッサの遷移を制御する。将来的なOSの実現形態は、コア単位ベースにより電力を管理することが可能となるかもしれないが、OSがコア間で調整を行うことが可能となるか否かは明らかではない。さらに、OSの実現形態がコア単位の電力管理を実現したとしても、依然として効率性の問題が残る。特に、OSは、利用可能なパフォーマンス/電力制御機構のすべてを認識していないかもしれず、それらの間のトレードオフをバランスさせることができないかもしれない。さらに、このような複雑なアーキテクチャを調整するためソフトウェアに依存することは、OSのオーバヘッドを増大させ、ソフトウェア計算複雑さに増大させる可能性がある。マルチコアプロセッサのソフトウェアベースの電力管理は、相互依存する各コアにおいて行われる可能性がある迅速な状態変化のため、タイミングの観点から実現することが困難であるかもしれない。
【0006】
本発明の課題は、上記課題に鑑み、マルチコアプロセッサにおける電力管理動作を調整するのに好適な技術を提供することである。
【課題を解決するための手段】
【0007】
上記課題を解決するため、本発明の一特徴は、各コアが対応する独立リソース設定を有し、第1コアと第2コアとを含む複数のコアにより共有される共有リソースに対して、互いに異なる対応する第1動作要求と第2動作要求とを含む複数の対応する整合しない動作要求を提供する複数のコアと、前記複数のコアに接続され、前記複数の整合しない動作要求と、電力セービングポリシーと高パフォーマンスポリシーとの何れが制御するのに最も重要であるものとして特定されているかとに基づき、前記複数のコアにより共有される共有リソースに対する共有リソース設定を調整する調整ロジックとを有するプロセッサであって、前記調整ロジックは、電力状態遷移テーブルに基づき前記第1動作要求を第1目標値に変換し、前記電力状態遷移テーブルに基づき前記第2動作要求を第2目標値に変換し、前記第1目標値と前記第2目標値とを比較することによって前記第1動作要求と前記第2動作要求とを比較し、前記第2目標値が前記第1目標値より大きい場合、前記第2目標値を前記共有リソース設定として選択することによって、前記複数の整合しない動作要求に基づき前記共有リソース設定を調整するプロセッサに関する。
【発明の効果】
【0008】
本発明によると、マルチコアプロセッサにおける電力管理動作を調整するのに好適な技術を提供することができる。
【図面の簡単な説明】
【0009】
【図1】図1は、本発明の一実施例によるプロセッサの一例のブロック図である。
【図2】図2は、本発明の一実施例による電力管理アーキテクチャの一例を示す図である。
【図3】図3は、本発明の一実施例によるパフォーマンス状態遷移テーブルの一例を示す図である。
【図4】図4は、本発明の一実施例によるシステムの一例を示すブロック図である。
【図5】図5は、本発明の一実施例による電力管理方法の一例のフローチャートである。
【図6】図6は、本発明の一実施例による独立リソース設定により共有リソース設定を調整する処理の一例のフローチャートである。
【図7】図7は、本発明の一実施例による共有リソース設定を選択する処理の一例のフローチャートである。
【図8】図8は、本発明の一実施例によるリソース設定を調整する処理の一例のフローチャートである。
【発明を実施するための形態】
【0010】
図1は、第1コア12と、第2コア14と、第1コア12及び第2コア14に動作可能に接続されるハードウェア調整ロジック16とを有するプロセッサ10を示す。ここでは、「第1」及び「第2」という用語は、説明の簡単化のためだけに利用される。さらに、ここではデュアルコアコンフィギュレーションが図示されているが、プロセッサ10のコアの個数は、本発明の実施例の趣旨及び範囲から逸脱することなく、容易に増やすことが可能である。図示されたコア12と14のそれぞれは、論理プロセッサとして十分機能的なものであり、従来の実行ユニット、レベル1(L1)キャッシュなどを有する。従って、図示されたデュアルコアコンフィギュレーションは、従来のシングルコアプロセッサに対して大きなパフォーマンスの向上をもたらす。
【0011】
プロセッサ10は、電力の大きな低下を可能にするいくつかの機能/リソースを有する。例えば、プロセッサ10は、高いパフォーマンスが必要とされない、又は所望されないときには、プロセッサクロック周波数及び電源電圧(コア電圧など)を低下させることが可能な機能を有するかもしれない。他の電力節約機能は、バス(図示せず)のクロック周波数を調整するものであるかもしれない。さらなる他の機能は、クロックをスロットル(又は「ゲート」)オン・オフすることが可能であり、これにより、電力消費を低下させることが可能である。クロックスロットル処理は、プロセッサ10の各部分に又はパッケージレベルにおいて実行することが可能である。さらなる他の電力節約機能は、電力を低下及び/又は温度を低下させるため、コア12及び14のアーキテクチャコンポーネントをスロットル処理することに関するものであるかもしれない。
【0012】
上記機能のそれぞれは電力管理の観点から特に効果的であるが、それらのいくつかは、コア12及び14により共有されるリソースを利用し、他のものは、コア12及び14により独立に制御されるリソースに関するものである。図示されたプロセッサ10は、一般には双方のシナリオを動的にサポートすることが可能なアーキテクチャを有し、従来の電力管理スキームに対していくつかの効果を提供する。
【0013】
例えば、図示されたプロセッサ10は、コア12及び14の両者により共有される電源電圧設定及びプロセッサクロック周波数設定を有するが、独立したクロックスロットル設定は、どの頻度によりクロックが第1コア12のみに印加されるか制御するものであるかもしれない。従って、クロック周波数及び電源電圧設定は、共有リソース設定22としてみなすことができ、独立したクロックスロットル設定は、独立したリソース設定24としてみなすことができる。同様に、第2コア14はまた、独立したリソース設定26により表される独立したクロックスロットル設定を有するかもしれない。
【0014】
独立したクロックスロットル処理に加えて、コア12及び14は、それらの内部アーキテクチャの各種機能ブロックを独立にスロットル処理ことが可能であるかもしれない。例えば、独立したリソース設定24と26は、内部アレイ、リオーダバッファ(ROB)、リザベーションステーション(RS)テーブル、パラレルユニット、実行ユニットなどのアーキテクチャコンポーネントのスロットル処理を行うことができる。
【0015】
図示された実施例では、第1コア12が第1動作要求18を提供し、第2コア14が第2動作要求を提供する。調整ロジック16は、動作要求18及び20と共有リソース設定22を調整することができる。以下においてより詳細に説明されるように、動作要求18及び20は、電力ポリシーやパフォーマンスポリシーなどのポリシーに従って生成することが可能であり、コア12及び14のそれぞれの上で実行されるオペレーティングシステム(OS)のプロダクトであるかもしれない。例えば、第1コア12は、20%だけ電力消費を低減させることが可能なユーザ/ソフトウェア選択可能な電力目標を有するかもしれない。この場合、第1動作要求18は、8%の電力レベルを示す電力要求とすることができる。あるいは、第2コア12は、第2動作要求20が100%の電力レベルを示すように、フルパワーを要求する動作モードにあるかもしれない。具体的な数値は、単なる例示として利用される。
【0016】
動作要求18と20はまた、以下でより詳細に説明されるように、パフォーマンスレベルやパフォーマンス状態遷移テーブルへのインデックスなどのパフォーマンス要求を特定することができる。ハードウェア調整ロジック16がパフォーマンス又は電力ポリシーに基づき機能することを可能にすることによって、プロセッサ10は、他のものについてはおそらく妥協しながら、ソフトウェアが制御するのに現在最も重要なファクタとなるものに集中することができる。複数の機能と共通のポリシー(パフォーマンス又は電力)にわたって調整するとき、パフォーマンス/電力ポリシーが有用となりうるが、他のアプローチもまた利用可能である。例えば、実際のリソース設定を動作要求に組み込むことはまた、許容可能なアプローチであるかもしれない。
【0017】
すでに説明したように、調整ロジック16は、第1動作要求18と第2動作要求20に従って、共有リソース設定22を選択することが可能である。この結果は、動作要求18及び20を充足するかもしれない、又はしないかもしれない動作状態である。例えば、第1動作要求18が共有リソース設定22により充足されない場合、第1コア12は、第1動作要求18が充足されることを可能にする第1独立リソース設定24に対する変更/調整された値を選択する。あるいは、第2動作要求20が共有リソース設定22により充足されない場合、第2コア14は、第2動作要求20が充足されることを可能にする第2独立リソースに対して変更/調整された値を選択する。従って、調整ロジック16は、実際に実現される調整された状態を反映する各動作要求18及び20と共有リソース設定22との間の相違に基づき、結果としての独立リソース設定24及び26を決定するかもしれない。簡単に言えば、独立リソース設定24及び26は、1以上のコア12と14によって調整可能な共有リソース設定22に係る電力/パフォーマンス不足を補償することが可能である。
【0018】
従って、一致又は整合しない(mismatched)動作要求の上記例では、調整ロジック16は、第2コア14がより高い電力レベルを要求しているという事実を考慮し、この要求を充足するため、調整された共有リソース設定22を選択するであろう。従って、共有リソース設定22は、両方のコア12と14に対して100%の電力の動作状態をもたらし、第1コア12は依然として8%の動作要求18を有することとなるであろう。第1コア12はまだ第1動作要求18を充足していないため、第1コア12は、第1動作要求18が充足されることを可能にする第1の独立リソース設定24に対する相関/調整された値を選択する。例えば、第1コア12は、所望される20%の電力低下を実現するため、それの独立クロックスロットル設定を増やすかもしれない。従って、共有リソース設定22を独立リソース設定24及び26により調整することによって、調整ロジック16は、マルチコア環境における電力を効率的に管理することが可能である。
【0019】
調整ロジック16は、第1動作要求18を第1目標値に変換し、第2動作要求20を第2目標値に変換することによって共有リソース設定22を選択することが可能である。当該目標値は、共有リソース設定22の潜在的な数値を表す。調整ロジック16は、その後、第1目標値と第2目標値を比較し、より高いものを共有リソース設定22として選択するかもしれない。また、調整ロジック16は単に動作要求18及び20を比較し、より高いものを選択することも可能であるということに留意すべきである。従って、調整ロジック16は、共有リソース設定22の目標値及び/又は動作要求に対する「最大値検出装置」として機能することが可能である。
【0020】
あるいは、調整ロジック16は、「双方のリクエストの最小値」の調整ポリシーが適切である場合、より小さな値を選択するようにしてもよい。このような状況は、共有クロックスロットル処理の場合、又はOSがコントロールにおいて“Force_Min”フラグを設定することを決定する場合に生じる可能性がある。ここで、“Force_Min”フラグは、双方のコアの各スロットル処理リクエストの最小のものが選択されたものであることを保証するMINIMUM動作ポイントポリシーを実行する必要があることを調整ロジック16に通知することが可能となる。簡単化のため、ここで説明される具体例のいくつかは、最大値としての調整ポリシーを表す。しかしながら、本発明の実施例に係る効果はまた最小ポリシーに適用可能であるということに留意すべきである。
【0021】
第2コア14が以降において、より低い目標値に対応する変更された動作要求を提供する場合、調整ロジック16は、この変更された動作要求に基づき共有リソース設定22を調整することが可能である。このような場合、第1コア12は、調整された共有リソース設定に基づき、独立リソース設定24を調整することが可能である。一致しない動作要求の上述した例では、第1コア12は、それの独立クロックスロットル設定を低減するかもしれない(それはもはや不要となるため)。調整ロジックをハードウェアにより実現することによって、迅速な状態変化に対応するため高速なOSレスポンス時間が、システムに要求されることがなくなる。独立リソース設定24及び26が共有リソース設定22より効率的であると知られている場合、上述した処理は、独立リソース設定24と26がまず選択されるように、独立リソース設定24と26を補償する共有リソース設定22と逆転されてもよい。
【0022】
図2及び3は、上述した変換をそれぞれ実現するのに利用可能なハードウェア調整ロジックとパフォーマンス状態遷移テーブル34を実現するのに利用可能な電力管理アーキテクチャ58を示す。アーキテクチャ58とテーブル34は、電力を管理するのに大変有用となる可能性があるが、他のアプローチもまた利用可能である。図示された例では、各プロセッサコアに対するフォースミニマム(force minimum)特性、パフォーマンスインデックス、パフォーマンスレベル及び/又は電力レベルなどの動作要求特性を規定するパフォーマンス状態(P状態)起動コマンド60が、パフォーマンス状態遷移テーブル34にアクセスするのに利用される。1つの起動コマンド60しか示されていないが、複数の起動コマンドが同時にテーブル34に適用可能である。
【0023】
図示された例では、動作要求は、合成された最適状態絶対電力(Abs−Pwr)42や電力パーセンテージ(Pwr%)44などの電力要求として規定することが可能である。動作要求はまた、パフォーマンスインデックス(Pindex)50や合成された最適状態絶対パフォーマンス(Perf)52などのパフォーマンス要求として規定することが可能である。相対的に複雑なハードウェア調整をサポートするため、共有リソース設定が各種機能において統合され、実際の動作要求が「グローバル」レベルに指定されてもよいということが理解できる。従って、図示された例では、起動コマンド60は、合成された最適状態を表す動作要求を含む。
【0024】
上述されたように、リソース設定の目標値は、Speedstep(登録商標)機能(Shared Feature)が、クロック周波数設定(Frequency)36とコア電圧設定(Vcc)38として示される共有リソース設定に対する制御を提供する機能によって特定することができる。他方、TM1機能(Independent Feature)は、独立クロックスロットル設定(Throttle%)40として示される独立リソース設定に対する制御を提供するかもしれない。動作要求及び目標値が調整ロジックにより受け付けされると、それらは、適切なグローバル設定の選択のため互いに比較することができる。
【0025】
他の例では、第1コアが88%のパフォーマンスレベルをリクエストする場合、調整ロジックは、テーブルの合成された最適状態部分へのインデックスするため、88%のパフォーマンス「動作要求」を利用することが可能である。1300MHz/1.008Vの目標周波数/電圧値が、テーブルから抽出され、第1共有リソースコントロールブロック64に送信するためコントロールバス62(62a〜62e)に配置することができる。従って、図示された第1共有リソースコントロールブロック64は、テーブル34に示される共有機能に対応する。第1コアリクエストと同時に、第2コアは、100%のパフォーマンスレベルにおいて動作するためのリクエストなどの動作要求を提供するかもしれない。従って、調整ロジックは、100%のパフォーマンスを利用して、テーブルの合成された最適状態部分にインデックスし、テーブルから1700MHz/1.233Vの目標周波数/電圧値を抽出し、それをコントロールバス66に配備することが可能である。
【0026】
図示されたシステムが「最大検出」モードである場合(すなわち、Force_Minが設定されていない)、第1共有リソースコントロールブロック64は、これら2つの動作要求を比較し、適切なグローバル設定が100%のパフォーマンスであると判断する。従って、1700MHz/1.233Vの目標周波数/電圧値が、共有リソース設定68として選択されるかもしれない。図示された例では、共有リソース設定68が、クロックソース及び/又は電圧ソースに印加され、共有リソースに共有リソース設定68により規定される適切な周波数及び/又はコア電圧において動作するよう指示する。第1共有リソースコントロールブロック64はまた、実際の動作状態計算72を生成する状態計算ロジック84に動作状態信号70を送信する。動作状態信号70は、共有リソース設定68から生じるパフォーマンス及び/又は電力状態を特定する。従って、本例では、動作状態信号70が100%のパフォーマンスレベルを特定することとなる。
【0027】
さらに、第1共有リソースコントロールブロック64は、共有リソース設定68に基づき、訂正された動作要求及び/又は目標値を生成し、訂正された目標値をコントロールバス62bに配備することができる。ここで、訂正された目標値は、第2共有リソースコントロールブロック76が次の共有リソースに対する共有リソース設定80を決定することを可能にする。訂正された値は、選択された動作レベルに対応し、テーブル34などのテーブルから抽出することができる(1つの共有機能しかテーブルには図示されていないが)。図示された例では、共有リソース設定80は、周波数設定とすることができる。第2共有リソースコントロールブロック76はまた、コントロールバス78から他の1以上のプロセッサコアの目標値及び/又は動作要求を収集し、当該セットにおける最大値を決定する。この最大値は、クロックが適切な共有リソース設定により動作するよう指示する共有リソース設定80を表す。動作状態信号82はまた、状態計算ロジック84に送信される。さらなるリソースコントロールブロックが必要な場合、訂正された動作要求及び/又は目標値が生成され、コントロールバス62cに配備される。
【0028】
共有リソース設定がすべて完了すると、電力管理アーキテクチャ58は、独立リソースコントロールブロック86を利用して独立リソース設定88を生成するため設けられ、独立リソース設定88は、当該プロセッサコアがコントロールバス62dを介し訂正された動作要求に反映されるさらなる電力の節約を実現することを可能にする。訂正された動作要求は、共有リソースコントロールブロックの最後から取得することができる。88%のパフォーマンスレベルを必要とする第1コアの上記例では、独立リソースコントロールブロック86は、88%のパフォーマンスを提供する0.125の独立クロックスロットルの独立リソース設定を選択するかもしれない。図示されたP12のグローバル設定はまた、0.125の独立クロックスロットルと合成される場合、全体として57%のパフォーマンスを提供する共有電圧/周波数設定を通じて67%のパフォーマンスの低下を含む。しかしながら、ここで説明されるアプローチは、共有リソースがすでに選択及び固定されているときには、独立リソース設定を利用することによりパフォーマンス数を補償する。独立リソースコントロールブロック86はまた、実際の動作状態計算72を生成するのに利用するため、動作状態信号92を生成することが可能である。独立リソース設定88が、訂正された動作要求を完全には充足することができない場合、他の訂正された動作要求が、コントロールバス62eを介し次の独立リソースコントロールブロック(図示せず)に送信可能である。
【0029】
次に図4を参照するに、共有周波数設定22a’によるクロックソース30と、共有周波数設定22c’によるバス11と、共有電圧設定22b’による電圧ソース32と、マルチコアプロセッサ10’とを有するシステム28の一例が示される。システム28は、電力消費及びオーバーヒートが特に問題となる、ノートブックパーソナルコンピュータ(PC)、携帯情報端末(PDA)、無線「スマート」フォンなどモバイル計算システムの一部とすることが可能である。図示されたプロセッサ10’は、第1コア12’と、第2コア14’と、ハードウェア調整ロジック16’とを有する。第1コア12’は第1動作要求(図示せず)を提供し、第2コア14’は第2動作要求(図示せず)を提供する。調整ロジック16’は、これらの動作要求及び第1コア12’と第2コア14’のそれぞれの独立リソース設定24’と26’により共有周波数設定22’(22a’〜22c’)を調整する。
【0030】
図5は、何れか利用可能なハードウェア及び/又はソフトウェアプログラミング技術を利用してマルチコアプロセッサにより実現することが可能である。例えば、方法96の1以上の部分が、固定された機能ハードウェア、特定用途向け集積回路(ASIC)、マシーン可読媒体に格納されるマイクロコード命令セット又は上記の何れかの組み合わせにより実現することが可能である。特に、図示された方法96は、処理ブロック98において第1プロセッサコアから第1動作要求を提供する。第2動作要求は、ブロック100において第2プロセッサコアから提供される。ブロック102は、これら動作要求により共有リソース設定を調整する。共有リソース設定は、第1及び第2動作要求に基づき独立リソース設定によりすでに調整されている。独立リソース設定は、第1又は第2プロセッサコアに専用のものとすることが可能である。
【0031】
次に図6を参照するに、共有リソース設定を調整するための1つのアプローチが、ブロック102’においてより詳細に示される。特に、ブロック104は、第1及び第2動作要求に従って、共有リソース設定を選択する。ブロック106は、動作要求が充足されることを可能にする独立リソース設定に対する調整された値を選択する。
【0032】
図7は、ブロック104’における共有リソース設定を選択する1つのアプローチをより詳細に示す。図示された例では、第1動作要求は、ブロック108において第1目標値に変換され、第2動作要求は、ブロック110において第2目標値に変換される。上述されたように、ブロック108及び110における変換は、電力状態遷移テーブルを利用することにより実現することができる。ブロック112は、第1動作要求と第2動作要求を比較する。あるいは、目標値自体を比較することが可能である。ブロック114において、第2動作要求が第1動作要求より大きいと判断されると、ブロック116は、共有リソース設定として第2目標値を選択する。そうでない場合、第1目標値は、ブロック118において共有リソース設定として選択される。ブロック120は、必要に応じて、残りの共有リソースに対して共有リソース設定選択処理を繰り返す。共有リソース設定から得られる訂正された動作要求が、ブロック122においてコアに通知される。
【0033】
次に図8を参照するに、共有リソース設定及び独立リソース設定を更新する処理124が示される。図示された例では、第2プロセッサコアは、以前には第1プロセッサコアより高いレベルを要求していた。従って、第1プロセッサコアは、共有リソース設定を補償するため、独立リソース設定を利用している。ブロック126は、第2プロセッサコアから変更された動作要求を提供する。共有リソース設定は、ブロック128において変更された動作要求に基づき調整される。ブロック130は、調整された共有リソース設定に基づき、第1プロセッサコアの独立リソース設定を調整する。
【0034】
以上より、ここに記載された実施例は、マルチコアプロセッサにおける電力管理についていくつかの特有の効果を提供する。例えば、ハードウェア調整ロジックにおける電力管理の調整は、ソフトウェアオーバヘッドと計算の問題を軽減する。さらに、ハードウェア調整は、比較的迅速であり、OSにより調整される電力管理に係るレスポンス時間の問題を軽減する。さらに、パフォーマンス又は電力ポリシーに基づく電力管理によって、プロセッサは、おそらくその他のものに妥協しながら、ソフトウェアが制御する現在最も重要なファクタとなるものに集中することができる。
【0035】
当業者は、上記記載から本発明の実施例の広範な技術が各種形態により実現可能であることを理解することが可能である。従って、本発明の実施例がそれの特定の具体例に関して説明されたが、当該図面、明細書及び以下の請求項を参照することにより、他の改良が当業者に想到すると考えられるため、本発明の実施例の真の範囲はこれに限定されるべきではない。
【符号の説明】
【0036】
10 プロセッサ
12,14 コア
16 調整ロジック

【特許請求の範囲】
【請求項1】
各コアが対応する独立リソース設定を有し、第1コアと第2コアとを含む複数のコアにより共有される共有リソースに対して、互いに異なる対応する第1動作要求と第2動作要求とを含む複数の対応する整合しない動作要求を提供する複数のコアと、
前記複数のコアに接続され、前記複数の整合しない動作要求と、電力セービングポリシーと高パフォーマンスポリシーとの何れが制御するのに最も重要であるものとして特定されているかとに基づき、前記複数のコアにより共有される共有リソースに対する共有リソース設定を調整する調整ロジックと、
を有するプロセッサであって、
前記調整ロジックは、
電力状態遷移テーブルに基づき前記第1動作要求を第1目標値に変換し、
前記電力状態遷移テーブルに基づき前記第2動作要求を第2目標値に変換し、
前記第1目標値と前記第2目標値とを比較することによって前記第1動作要求と前記第2動作要求とを比較し、
前記第2目標値が前記第1目標値より大きい場合、前記第2目標値を前記共有リソース設定として選択する、
ことによって、前記複数の整合しない動作要求に基づき前記共有リソース設定を調整するプロセッサ。
【請求項2】
前記共有リソース設定は、前記複数のコアにより共有されるバス周波数設定と電圧設定とを有し、
前記独立リソース設定は、独立クロックスロットル設定とアーキテクチャスロットル設定とを有する、請求項1記載のプロセッサ。
【請求項3】
前記第1コアは、前記第1動作要求が充足されることを可能にする前記第1コアの対応する独立リソース設定に対する調整値を選択する、
請求項2記載のプロセッサ。
【請求項4】
前記調整ロジックは、前記共有リソース設定から得られる訂正された動作要求を前記第1コアに通知するよう動作可能であり、
前記第1コアは、前記訂正された動作要求に基づき前記調整値を選択する、請求項3記載のプロセッサ。
【請求項5】
前記第2コアは、より小さな第2目標値に対応する変更された動作要求を提供し、
前記調整ロジックは、前記変更された動作要求に基づき前記共有リソース設定を調整し、
前記第1コアは、前記調整された共有リソース設定に基づき、前記第1コアの独立リソース設定を調整し、
前記共有リソース設定は、前記複数のコアにより共有されるバス周波数設定と電圧設定とを有し、
前記独立リソース設定は、独立クロックスロットル設定とアーキテクチャスロットル設定とを有する、
請求項1記載のプロセッサ。
【請求項6】
前記独立リソース設定は、独立クロックスロットル設定とアーキテクチャスロットル設定とを含むセットから選択される設定を有する、請求項1記載のプロセッサ。
【請求項7】
前記共有リソース設定は、電圧設定と周波数設定とを含むセットから選択される設定を有する、請求項1記載のプロセッサ。
【請求項8】
前記複数の動作要求は、複数の電力要求を有する、請求項1記載のプロセッサ。
【請求項9】
前記複数の動作要求は、複数のパフォーマンス要求を有する、請求項1記載のプロセッサ。
【請求項10】
各コアが対応する独立リソース設定を有し、第1コアと第2コアとを含む複数のコアにより共有される共有リソースに対して、互いに異なる対応する第1動作要求と第2動作要求とを含む複数の対応する整合しない動作要求を提供するステップと、
前記複数の整合しない動作要求と、電力セービングポリシーと高パフォーマンスポリシーとの何れが制御するのに最も重要であるものとして特定されているかとに基づき、前記複数のコアにより共有される共有リソースの共有リソース設定を調整するステップと、
を有する方法であって、
前記共有リソース設定を調整するステップは、
電力状態遷移テーブルに基づき前記第1動作要求を第1目標値に変換し、
前記電力状態遷移テーブルに基づき前記第2動作要求を第2目標値に変換し、
前記第1目標値と前記第2目標値とを比較することによって前記第1動作要求と前記第2動作要求とを比較し、
前記第2目標値が前記第1目標値より大きい場合、前記第2目標値を前記共有リソース設定として選択する、
ことを有する方法。
【請求項11】
前記共有リソース設定は、前記複数のコアにより共有されるバス周波数設定と電圧設定とを有し、
前記独立リソース設定は、独立クロックスロットル設定とアーキテクチャスロットル設定とを有する、請求項10記載の方法。
【請求項12】
前記共有リソース設定から得られる訂正された動作要求を前記第1コアに通知するステップと、
前記訂正された動作要求に基づき前記調整値を選択するステップと、
をさらに有する、請求項10記載の方法。
【請求項13】
前記独立リソース設定により前記共有リソース設定を調整するステップは、独立クロックスロットル設定とアーキテクチャスロットル設定とを含むセットから選択される設定により前記共有リソース設定を調整する、請求項11記載の方法。
【請求項14】
前記調整するステップは、電圧設定と周波数設定とを含むセットから選択される設定により調整する、請求項10記載の方法。
【請求項15】
共有周波数設定を有するクロックソースと、
前記クロックソースに接続される請求項1乃至9何れか一項記載のプロセッサと、
を有する計算システム。
【請求項16】
第1プロセッサコアから第1動作要求を通知するステップと、
第2プロセッサコアから第2動作要求を通知するステップと、
前記第1動作要求を第1目標値に変換するステップと、
前記第2動作要求を第2目標値に変換するステップと、
前記第1動作要求と前記第2動作要求とを比較するステップと、
前記第2動作要求が前記第1動作要求より大きい場合、前記第2目標値を共有リソース設定として選択するステップと、
前記第1動作要求が充足されることを可能にする独立リソース設定に対して調整値を選択するステップと、
前記第2プロセッサコアから変更された動作要求を通知するステップと、
前記変更された動作要求に基づき前記共有リソース設定を調整するステップと、
前記調整された共有リソース設定に基づき前記独立リソース設定を調整するステップと、
を有する方法。
【請求項17】
前記共有リソース設定は、電圧設定と周波数設定とを含むセットから選択される設定を含む、請求項16記載の方法。
【請求項18】
前記独立リソース設定は、独立クロックスロットル設定とアーキテクチャスロットル設定とを含むセットから選択される設定を含む、請求項16記載の方法。
【請求項19】
前記第1動作要求と前記第2動作要求とは、合成された最適状態絶対電力、電力パーセンテージ、パフォーマンスインデックス及び/又は合成された最適状態絶対パフォーマンスの少なくも1つである、請求項16記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−69115(P2012−69115A)
【公開日】平成24年4月5日(2012.4.5)
【国際特許分類】
【出願番号】特願2011−202792(P2011−202792)
【出願日】平成23年9月16日(2011.9.16)
【分割の表示】特願2007−522581(P2007−522581)の分割
【原出願日】平成17年7月15日(2005.7.15)
【出願人】(593096712)インテル コーポレイション (931)
【Fターム(参考)】