JP2017528851A - プロデューサ/コンシューマワークロードシリアライゼーションの検出に基づいたプロセッサ状態制御 - Google Patents

プロデューサ/コンシューマワークロードシリアライゼーションの検出に基づいたプロセッサ状態制御 Download PDF

Info

Publication number
JP2017528851A
JP2017528851A JP2017520874A JP2017520874A JP2017528851A JP 2017528851 A JP2017528851 A JP 2017528851A JP 2017520874 A JP2017520874 A JP 2017520874A JP 2017520874 A JP2017520874 A JP 2017520874A JP 2017528851 A JP2017528851 A JP 2017528851A
Authority
JP
Japan
Prior art keywords
clock frequency
processors
utilization
balance
ratio
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017520874A
Other languages
English (en)
Other versions
JP6297748B2 (ja
Inventor
セリーン,ガイ,エム.
ラジワン,ドロン
Original Assignee
インテル コーポレイション
インテル コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by インテル コーポレイション, インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2017528851A publication Critical patent/JP2017528851A/ja
Application granted granted Critical
Publication of JP6297748B2 publication Critical patent/JP6297748B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Debugging And Monitoring (AREA)

Abstract

概して、本開示は、複数のプロセッサにわたるプロデューサ/コンシューマワークロードシリアライゼーションの検出に基づいて、複数のプロセッサのプロセッサ状態(例えば、クロック周波数)を制御する、システム、デバイス、方法及びコンピュータ読み取り可能媒体を提供する。そのシステムは、複数のプロセッサの利用を測定するように構成された利用測定モジュールを含むことができる。そのシステムは、また、複数のプロセッサ上で実行する、プロデューサ/コンシューマ(P/C)ワークロードと非P/Cワークロードとのバランスを推定するように構成された関連性モジュールを含むことができる。システムは、さらに、推定されたバランス及び測定された利用に基づいて、クロック周波数調整を計算し、計算された調整に基づいて、複数のプロセッサのクロック周波数を更新するクロック周波数調整モジュールを含むことができる。

Description

本開示は、プロセッサ状態制御に関連し、より詳細には、複数のプロセッサにわたるプロデューサ/コンシューマワークロードシリアライゼーションの検出に基づいたプロセッサ状態制御に関連する。
コンピュータシステムプロセッサは、次第にプロセッサ状態制御能力を提供しており、それを通じて、プロセッサ電圧及びクロック周波数は変化されることができる。より高いクロック周波数であればより速いワークロード実行を可能にするが、増大する電力消費と熱発生がある。速度と電力使用量とは典型的にはトレードオフの関係となり、クロック周波数は、変化する条件及び要件に応じて、所望の結果を達成するように動的に調整されることができる。これは、一般的には、プロセッサ状態のデマンドベーススイッチング(DBS)と呼ばれる。
マルチプロセッサ又はマルチコアシステムにおいて、ワークロードは二つ以上のプロセッサに、例えば、スレッドとして分割される。いくつかのケースにおいては、スレッドは相対的に並列的なやり方で実行することができるが、他のケースにおいては、一つのスレッドは他のスレッドからの結果を待つ必要があり得る。後者のケースは、しばしば、プロデューサ/コンシューマ(P/C)ワークロードシリアライゼーションと呼ばれ、ここでは、消費スレッドは生産スレッドを待つため、プロセッサ利用が低下することになり得る。
典型的には、プロセッサワークロードは、P/C及び非P/Cワークロードの混合を含むことができる。プロセッサ利用がP/Cワークロードにより影響されるのか否か、そしてどの程度まで影響されるのかを知ることは、プロセッサ状態制御決定に行う際に有利となる。現存する解決手段では、プロセッサ状態制御システムには、スレッドがP/C指向性があるか否かを明確に知らせるため、ソフトウェアに依拠している。残念なことに、これは、概して、ソフトウェア及びこの分野における進歩が阻害されているソフトウェア開発に負担となっている。
クレームされた実施形態の特徴及び効果は、次に続く詳細な説明で明らかとなり、図面への参照においては、類似した符号は類似する部分を示す。
図1は、本開示と一致する、実施形態例のトップレベルシステム図を示す。 図2は、本開示と一致する、実施形態例のブロック図を示す。 図3は、本開示と一致する、実施形態例の動作のフローチャートを示す。 図4は、本開示と一致する、実施形態例の関連性曲線を示す。 図5は、本開示と一致する、他の実施形態例の動作のフローチャートを示す。 図6は、本開示と一致する、他の実施形態例のプラットフォームのシステム図を示す。
次に続く詳細な説明は、説明される実施形態に関連してなされるが、多くの代替、修正及びバリエーションは当業者に明らかとなるものである。
概して、本開示は複数のプロセッサにわたるプロデューサ/コンシューマ(P/C)の検出に基づいて、複数のプロセッサのプロセッサ状態、つまり、クロック周波数を制御する、システム、デバイス、方法及びコンピュータ読み取り可能媒体を提供する。P/Cワークロードの性質は、一つのスレッドの実行進行は、他のスレッドの実行進行にリンクされているということである。P/Cワークロードシリアライゼーションは、一つのプロセッサでのスレッドが他のプロセッサでの他のスレッドにより提供される結果を待つ、つまり、複数のスレッドのより並列的な実行を許容するよりも幾分か作業をシリアル化するときに、遅延が生じる状況を示す。P/Cワークロードシリアライゼーションは、待ちスレッドに関連づけられたアイドル時間により、プロセッサ利用(utilization)が下がる一つの原因となる。本システムは、複数のプロセッサ(又はコア)にわたって複数のスレッドで実行するP/Cワークロード及び非P/Cワークロードとのバランスを推定することができる。
バランス推定は、クロック周波数における試験的な変化(例えば、上げる又は下げる)を伴う、プロセッサ利用における変化を測定することによって達成されることができる。相対的に高いP/Cワークロードの混合であるケースにおいては、変更されたクロック周波数の期間中において相対的に変化しないままである傾向がある。相対的低いP/Cワークロードの混合であるケースにおいては、例えば、より高いクロック周波数の期間中において利用が減少する傾向がある。ゆえに、バランスはプロセッサ利用における測定された変化を追跡する又は、これとクロック周波数における試験的な変化とを関連づけることによって推定されることができる。クロック周波数調整モジュールは、関連性に基づいて、クロック周波数における所望の変化を計算するように構成されることができる。
図1は、本開示に一致する、実施形態例のトップレベルシステム図100を示す。システムは、多数のプロセッサ104、106等と、プロセッサ状態制御モジュール102と、プロデューサ/コンシューマワークロード推定モジュール108とを含むように示されている。いくつかの実施形態においては、プロセッサは、プロセッサコア又は、例えば、グラフィクスプロセッサ(GPU)等の他のタイプの処理ユニットであることができる。簡潔性のため二つのプロセッサしか示されていないが、任意の数の任意のタイプのプロセッサが採用され、本開示で説明されるように制御されることができる。本開示で説明される技術は、制御可能なクロック周波数を有する任意のデバイスコレクションに提供されることができる。システムは、デバイス又は任意のタイプの計算又は通信プラットフォームであることができるより大きなシステムの一部であることができ、定置されているかモバイルであるかによらず、例えば、スマートフォン、スマートタブレット、パーソナルデジタルアシスタント(PDA)、モバイルインターネットデバイス(MID)、コンバーチブルタブレット、ノートブック、ラップトップコンピュータ、ワークステーション、デスクトップコンピュータ又はウェアラブルデバイスを含む。
プロセッサ状態制御モジュール102は、プロセッサ104、106等のプロセッサ状態を調整するように構成されることができる。いくつかの実施形態においては、プロセッサ状態は、プロセッサ電圧仕様/要求(specification/request)及びクロック周波数仕様/要求のペアリング(paring)を含むことができる。より高いクロック周波数は、いくつかのタイプのワークロード(例えば、P/Cワークロード)に対してはより速いワークロード実行を可能にすることができるが、概して、望ましくない電力消費の上昇を招く。
プロデューサ/コンシューマワークロード推定モジュール108は、下記に詳細に説明されるように、複数のプロセッサ及びスレッドにわたるP/Cワークロード及び非P/Cワークロード実行の混合を推定するように構成されることができる。推定は、その後に、プロセッサ状態制御モジュール102によりプロセッサ104、106に適用されるクロック周波数調整(clock frequency adjustment)を計算するのに用いられることができる。
図2は、本開示に一致する、実施形態例のブロック図200を示す。プロデューサ/コンシューマワークロード推定モジュール108は、利用測定モジュール202と、周波数/利用関連性モジュール204と、周波数調整計算モジュール206と、クロック周波数追跡モジュール208と、を含むように示されている。
概して、プロセッサの要求が減少するときは、測定されるプロセッサ利用もまた減少する。これは、するべき作業が少なくなっており、プロセッサがアイドル状態より多くの時間を消費するためである。このような状況下では、クロック周波数を低くすれば、パフォーマンスへの影響がほとんどなく電力を節約できるという恩恵を得ることができる。しかし、測定された利用における低下は、ワークロードが異なるプロセッサでホストされたプロデューサ/コンシューマを高い比率で有するときの、シリアライズされた実行に関連づけられた待ち時間によって生じるかもしれない。しかし、この場合、クロック周波数を上げると、なされるのを待っている作業があり、より高いクロック周波数がそれらの待ち時間を低減することができるので、パフォーマンスを改善することができる。このため、P/Cワークロードの程度を推定することは、適切なクロック周波数を決定する際に有益である。
利用測定モジュール202は、プロセッサがアイドルでない時間のパーセンテージとして、各プロセッサの利用を測定するように構成されることができる。このため、例えば、30%の利用測定であれば、プロセッサは時間の30%は作業を行っており、時間の70%はアイドルのままでいるということを示す。いくつかの実施形態においては、測定は、好適な期間にわたる平均測定であることができる。最初の利用測定は、潜在的な周波数上昇が有益となり得る閾値を下回っているかどうかを判定するのに行われることができる。
周波数/利用関連性モジュール204は、トライアルの、又は試験的なクロック周波数変化と、結果として生じるプロセッサ利用における変化との関係を決定するように構成されることができる。代表的には、下記に説明されているように、試験的なクロック周波数変化は、上昇であるが、上昇又は下降のいずれか一方がこの目的のために用いられることができる。事実上、作業の相対的に大きいパーセンテージがP/Cである場合、測定された利用は、前述したシリアライゼーション効果により、100%を下回るものである。このタイプのワークロードを実行するコアのクロック周波数における上昇では、スレッドあたりの利用は実質的に変化しないままである。これは、実行速度が上げられたとしても、他のスレッドを待つのに消費される時間のパーセンテージはほぼ同じのままであるからである。しかし、クロック周波数の上昇に応じて、スレッド当たりの利用が下降する場合には、事実上、ワークの相対的小さいパーセンテージがP/Cであるということを示すことができる。言い換えると、非P/Cワークロードに対して、より高いクロック周波数で作業を行うのにより少ない時間しかかからないので、利用が下がる。
前述したように、いくつかの実施形態においては、試験的なクロック周波数変化は下降であることができる。この場合において、クロック周波数の下降に応じて、スレッド当たりの利用が上昇する場合には、これは、事実上、ワークの相対的に小さいパーセンテージがP/Cであるというこを示すことができる。言い換えると、非P/Cワークロードに対して、より低いクロック周波数で作業を行うのにより多い時間がかかるので、利用が上がる。
周波数/利用関連性モジュール204は、このため、P/Cワークロードと非P/Cワークロードとのバランスが推定されている期間、クロック周波数を上げることができる。プロセッサ利用は、トライアルのクロック上昇の前後で測定され、利用変化(utilization change)のクロック周波数上昇に対する比率が計算されることができる。そして、ワークロードバランス推定は、この比率又は関連性に基づくことができる。例えば、いくつかの実施形態においては、比率が閾値比率と比較されることができ、ワークロードバランスは、計算された比率が閾値比率より小さい場合、図4に示されるように、よりP/C指向性があると推定されることができる。
周波数調整計算モジュール206は、計算された比率に基づいて、適切なクロック周波数調整を決定するように構成されることができる。いくつかの実施形態においては、閾値比率を下回る計算された比率は、最大クロック周波数の選択をもたらすことができる。いくつかの実施形態においては、閾値比率を上回る計算された比率は、パフォーマンス対エネルギー効率プリファレンスに基づいたクロック周波数を下げる範囲にマップされることができる。マップ機能は、例えば、オペレーティングシステム又はファームウェアにより提供されることができる。
クロック周波数追跡モジュール208は、ある時間にわたるクロック周波数変化(clock frequency change)の履歴をモニタするように構成されることができる。例えば、利用の周期的な再チェック(例えば、ある時間間隔経過後に再測定する)が、プロセッサ利用が閾値を上回ったことを示し、変化履歴が、クロック周波数が以前に上げられていることを示す場合は、クロック周波数は下げられることができ、エネルギー効率性を上げる。
図3は、本開示と一致する、他の実施形態例の動作300のフローチャートを示す。動作は、複数のプロセッサにわたるプロデューサ/コンシューマワークロードシリアライゼーションの検出に基づいて、複数のプロセッサのクロック周波数を制御する方法を提供する。動作302では、複数のプロセッサ(又はコア)にわたる複数のスレッドの利用が測定され、利用閾値と比較される。動作304では、利用が閾値よりも大きく(又は等しく)、プロセッサのクロック周波数が以前に上げられている場合、動作306で、クロック周波数は所定の、又は調整可能な期間後に下げられる。
しかし、測定された利用が閾値よりも小さい場合、動作308で、利用は記録され、動作310で、複数のプロセッサのクロック周波数は上げれらて、複数のプロセッサにわたるP/Cワークロードシリアライゼーションの程度の推定を開始する。クロック周波数が上がったことに応じて、動作312で、測定されるのであるが、利用が変化(減少)する場合、ワークロードが相対的により少ないP/Cに傾いていると判定され、動作314において、クロック周波数は元に戻される(restored)。
あるいは、利用が相対的に変化しないままである場合、ワークロードは、相対的により大きいP/Cに傾いていると判定され、パフォーマンスはクロック周波数を上げることによる恩恵を受けることができている。動作316では、利用変化と周波数上昇との関連性が計算される。動作318では、クロック周波数調整が、計算された関連性に基づいて決定され、動作320で、クロック周波数は更新される。
図4は、本開示に一致する、実施形態例の関連性曲線400を示す。横軸404は、ワークロードバランスを表し、左側にある最大(実質的に100%)P/Cワークロード(及び関連づけられたシリアライゼーション)から、右側にある最小(実質的に0%)P/Cワークロードまでの幅がある。縦軸402は、パーセンテージ利用変化とパーセンテージクロック周波数変化との比率(又は、関連性)を表し、0(関連性なし)から1(十分に関連性あり(full correlation))までがある。図示された曲線は、例として提示されており、任意の形状に合わせることができ、経験的に決定されることができる。閾値406も示され、最大クロック周波数(左)と下げられたクロック周波数(右)との間の境界を示すことができる。
図5は、本開示に一致する、他の実施形態例の動作500のフローチャートを示す。動作は、複数のプロセッサにわたるプロデューサ/コンシューマワークロードシリアライゼーションの検出に基づいて、プロセッサのクロック周波数を制御する方法を提供する。動作510では、複数のプロセッサの利用が測定される。動作520では、複数のプロセッサ上で実行する、プロデューサ/コンシューマ(P/C)ワークロードと非P/Cワークロードとのバランスの推定がなされる。動作530では、推定されたバランス及び測定された利用に基づいて、クロック周波数調整が計算される。動作540では、複数のプロセッサのクロック周波数が計算された調整に基づいて更新される。
図6は、本開示に一致する、一実施形態例のシステム図600を示す。システム600は、例えば、スマートフォン、スマートタブレット、パーソナルデジタルアシスタント(PDA)、モバイルインターネットデバイス(MID)、コンバーチブルタブレット、ノートブック、ラップトップコンピュータその他の好適なデバイス等の、モバイルプラットフォーム610又はコンピューティングデバイスであることができる。しかし、本開示で説明されたシステムの実施形態は、モバイルプラットフォームに限定されず、いくつかの実施形態においては、システム600はワークステーション又はデスクトップコンピュータであることができる。デバイスは、概して、例えば、タッチスクリーン、液晶ディスプレイ(LCD)その他の好適なタイプのディスプレイ等のディスプレイ要素660を介してユーザに種々のインタフェースを提示することができる。
システム600は、任意の数のプロセッサ104、106等を含むように示されており、任意で、任意の数のGPU620又は他の専用タイプのプロセッサを含む。いくつかの実施形態においては、プロセッサ104、106及び620は、任意の数のプロセッサコアとして実装されることができる。プロセッサ(又はプロセッサコア)は、任意のタイプのプロセッサであることができ、例えば、マイクロプロセッサ、組み込みプロセッサ、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、フィールドプログラマブルゲートアレイ又はコードを実行するように構成された他のデバイス等である。プロセッサは、マルチスレッドコアであることができ、一コア当たり一つより大きい数のハードウェアスレッドコンテクスト(又は「論理プロセッサ」)を含むことができる。システム600は、また、プロセッサに結合されたメモリ630を含むように示されている。メモリは、当業者に既知の、又は利用可能な、(種々のメモリ階層の層及び/又はメモリキャッシュを含む)幅広いメモリのいずれかであることができる。プロセッサ及びメモリは、一つ以上のユーザアプリケーション、その他のソフトウェアアプリケーションを記憶、ホスト及び/又は実行するように構成されることができることが分かる。これらのアプリケーションは、非限定的に、例えば、任意のタイプの計算、通信、データ管理、データストレージ及び/又はユーザインタフェースタスクを含むことができる。いくつかの実施形態においては、これらのアプリケーションはモバイルプラットフォーム610の任意の他のコンポーネントを使用する、又はこれらと相互作用することができる。
システム600は、例えば、セルラー通信、ワイヤレスフィデリティ(WiFi(登録商標))、ブルートゥース(登録商標)、ニアフィールドコミュニケーション(NFC)等の無線通信能力を含むネットワークインタフェースモジュール640を含むように示されている。無線通信は、ブルートゥース、Wi−Fi及び携帯電話通信規格の過去、現在及び未来のバージョンを含む既存の又はこれから発展する通信規格に合う、又はこれらと互換性があることができる。
システム600は、また、プロセッサ104、106、620と、システム600の他の要素又はシステム600の外部にある他の要素(図示せず)との間にあるデータ通信を可能にする又は管理するように構成されることができる入出力(I/O)システム又はコントローラ650を含むように示されている。
システム600は、また、前述したように、プロセッサ状態制御モジュール102及びプロデューサ/コンシューマワークロード推定モジュール108を含むように示されている。
いくつかの実施形態においては、システム600の種々のコンポーネントは、システムオンチップ(SoC)アーキテクチャで組み合わされてよい。いくつかの実施形態においては、コンポーネントは、ハードウェアコンポーネント、ファームウェアコンポーネント、ソフトウェアコンポーネント又はハードウェア、ファームウェア若しくはソフトウェアの任意の好適な組み合わせであることができる。
本明細書で説明された方法の実施形態は、一つ以上のプロセッサにより実行されると、本方法を実行する命令が、個別に又は組み合わされて、記憶された一つ以上のストレージ媒体を含むシステム内で実装されることができる。ここで、プロセッサは、例えば、システムCPU(例えば、コアプロセッサ)及び/又はプログラマブル回路を含むことができる。ゆえに、本明細書で説明された方法に従う動作は、例えば、複数の異なる物理的位置にある処理構造等の複数の物理的デバイスにわたって分散してよいことを意図している。また、本発明の動作は、当業者に理解されるように、個別に又はサブコンビネーションで行われることができる。ゆえに、各フローチャートの全ての動作が行われる必要はなく、本開示は、そのような動作の全てのサブコンビネーションが、当業者に理解されるように、可能にされていることを明示的に意図している。
ストレージ媒体は、任意のタイプの有形の媒体、例えば、フロッピー(登録商標)ディスク、光学ディスク、コンパクトディスクリードオンリーメモリ(CD−ROM)、コンパクトディスクリライタブル(CD−RW)、デジタルバーサタイルディスク(DVD)、磁気光学ディスク等を含む任意のタイプのディスク、リードオンリーメモリ(ROM)、ダイナミックRAM、スタティックRAM等のランダムアクセスメモリ(RAM)、イレーサブルプログラマブルリードオンリーメモリ(EPROM)、エレクトリカリーイレーサブルプログラマブルリードオンリーメモリ(EEPROM)、フラッシュメモリ等の半導体デバイス、磁気若しくは光学カード、又は、電子命令を記憶するのに好適な任意のタイプの媒体を含むことができる。
本開示の任意の実施形態で用いられた「回路(Circuitry)」は、単独又は組み合わせで、ハードワイヤード回路、プログラマブル回路、ステートマシン回路及び又はプログラマブル回路により実行される命令を記憶するファームウェアを含むことができる。アプリケーションは、ホストプロセッサ又は他のプログラマブル回路等のプログラマブル回路上で実行されるコード又は命令として具現化されている。本開示の実施形態で用いられたモジュールは、回路として具現化されることができる。回路は、集積回路チップ等の集積回路として具現化されることができる。
ゆえに、本開示は、複数のプロセッサにわたるプロデューサ/コンシューマワークロードシリアライゼーションの検出に基づいて、プロセッサのプロセッサ状態(例えば、クロック周波数)を制御する、システム、デバイス、方法及びコンピュータ読み取り可能媒体を提供する。次の例は、さらなる実施形態に関連する。
例1によれば、複数のプロセッサのクロック周波数を制御するシステムが提供される。このシステムは、その複数のプロセッサの利用を測定する利用測定モジュールを含むことができる。この例のシステムは、また、複数のプロセッサ上で実行するプロデューサ/コンシューマ(P/C)ワークロードと非P/Cワークロードとのバランスを推定する関連性モジュールを含むことができる。この例のシステムは、さらに、推定されたそのバランス及び測定されたその利用に基づいて、クロック周波数調整を計算し、計算されたこの調整に基づいて、その複数のプロセッサのクロック周波数を更新するクロック周波数調整モジュールを含むことができる。
例2は、前述の例の要素を含むことができ、その関連性モジュールは、さらに、推定されたそのバランスに関連づけられた期間についてそのクロック周波数を変化させ、その期間中の利用変化を測定し、その利用変化のクロック周波数変化に対する比率に基づいて、そのバランスを推定するように構成される。
例3は、前述の例の要素を含むことができ、そのクロック周波数変化は、クロック周波数上昇である。
例4は、前述の例の要素を含むことができ、そのクロック周波数変化は、クロック周波数下降である。
例5は、前述の例の要素を含むことができ、その関連性モジュールは、さらに、その比率を閾値比率と比較し、その比率がこの閾値比率よりも小さい場合は、そのバランスをそのP/Cワークロードに関連づける。
例6は、前述の例の要素を含むことができ、推定されたそのバランスがP/Cワークロードに関連付けられており、測定されたその利用が利用閾値よりも小さい場合、そのクロック周波数調整はクロック周波数上昇である。
例7は、前述の例の要素を含むことができ、その利用測定モジュールは、さらに、ある時間間隔経過後にその複数のプロセッサの利用を再測定するように構成され、そのクロック周波数調整モジュールは、さらに、再測定されたその利用がその利用閾値よりも大きく、かつ、そのクロック周波数調整がクロック周波数上昇であった場合に、そのクロック周波数を小さくするように構成される。
例8は、前述の例の要素を含むことができ、そのクロック周波数の更新は、さらに、その複数のプロセッサの制御状態の電圧周波数ペアリングを調整することを含む。
例9は、前述の例の要素を含むことができ、その複数のプロセッサは、プロセッサコア及び/又はグラフィクスプロセッシングユニット(GPU)である。
例10は、前述の例の要素を含むことができ、このシステムは、スマートフォン、スマートタブレット、ノートブック又はラップトップコンピュータのいずれかに組み込まれている。
例11によれば、複数のプロセッサのクロック周波数を制御する方法が提供される。この方法は、その複数のプロセッサの利用を測定する工程を含むことができる。この例の方法は、また、複数のプロセッサ上で実行するプロデューサ/コンシューマ(P/C)ワークロードと非P/Cワークロードとのバランスを推定する工程を含むことができる。この例の方法は、さらに、推定されたそのバランス及び測定されたその利用に基づいて、クロック周波数調整を計算する工程を含むことができる。この例の方法は、さらに、計算されたこの調整に基づいて、その複数のプロセッサのクロック周波数を更新する工程を含むことができる。
例12は、前述の例の動作を含むことができ、そのバランスを推定する工程は、さらに、推定されたそのバランスに関連づけられた期間についてそのクロック周波数を変化させる工程と、その期間中の利用変化を測定する工程と、その利用変化のクロック周波数変化に対する比率に基づいて、そのバランスを推定する工程と、を含む。
例13は、前述の例の動作を含むことができ、そのクロック周波数変化は、クロック周波数上昇である。
例14は、前述の例の動作を含むことができ、そのクロック周波数変化は、クロック周波数下降である。
例15は、前述の例の動作を含むことができ、さらに、その比率を閾値比率と比較する工程と、その比率がこの閾値比率よりも小さい場合は、そのバランスをそのP/Cワークロードに関連づける工程と、を含む。
例16は、前述の例の動作を含むことができ、推定されたそのバランスがP/Cワークロードに関連付けられており、測定されたその利用が利用閾値よりも小さい場合、そのクロック周波数調整はクロック周波数上昇である。
例17は、前述の例の動作を含むことができ、さらに、ある時間間隔経過後にその複数のプロセッサの利用を再測定する工程と、再測定されたその利用がその利用閾値よりも大きく、かつ、そのクロック周波数調整がクロック周波数上昇であった場合に、そのクロック周波数を小さくする工程と、を含む。
例18は、前述の例の動作を含むことができ、そのクロック周波数を更新する工程は、さらに、その複数のプロセッサの制御状態の電圧周波数ペアリングを調整する工程を含む。
例19は、前述の例の動作を含むことができ、その複数のプロセッサは、プロセッサコア及び/又はグラフィクスプロセッシングユニット(GPU)である。
例20によれば、前述の例の要素を含むことができ、複数のプロセッサのクロック周波数を制御するシステムが提供される。このシステムは、その複数のプロセッサの利用を測定する手段を含むことができる。この例のシステムは、また、複数のプロセッサ上で実行するプロデューサ/コンシューマ(P/C)ワークロードと非P/Cワークロードとのバランスを推定する手段を含むことができる。この例のシステムは、さらに、推定されたそのバランス及び測定されたその利用に基づいて、クロック周波数調整を計算する手段を含むことができる。この例のシステムは、さらに、計算されたこの調整に基づいて、その複数のプロセッサのクロック周波数を更新する手段を含むことができる。
例21は、前述の例の要素を含むことができ、そのバランスを推定することは、さらに、推定されたそのバランスに関連づけられた期間についてそのクロック周波数を変化させる手段と、その期間中の利用変化を測定する手段と、その利用変化のクロック周波数変化に対する比率に基づいて、そのバランスを推定する手段と、を含む。
例22は、前述の例の要素を含むことができ、そのクロック周波数変化は、クロック周波数上昇である。
例23は、前述の例の要素を含むことができ、そのクロック周波数変化は、クロック周波数下降である。
例24は、前述の例の要素を含むことができ、さらに、その比率を閾値比率と比較する手段と、その比率がこの閾値比率よりも小さい場合は、そのバランスをそのP/Cワークロードに関連づける手段と、を含む。
例25は、前述の例の要素を含むことができ、推定されたそのバランスがP/Cワークロードに関連付けられており、測定されたその利用が利用閾値よりも小さい場合、そのクロック周波数調整はクロック周波数上昇である。
例26は、前述の例の要素を含むことができ、さらに、ある時間間隔経過後にその複数のプロセッサの利用を再測定する手段と、再測定されたその利用がその利用閾値よりも大きく、かつ、そのクロック周波数調整がクロック周波数上昇であった場合に、そのクロック周波数を小さくする手段と、を含む。
例27は、前述の例の要素を含むことができ、そのクロック周波数を更新することは、さらに、その複数のプロセッサの制御状態の電圧周波数ペアリングを調整する手段を含む。
例28は、前述の例の要素を含むことができ、その複数のプロセッサは、プロセッサコア及び/又はグラフィクスプロセッシングユニット(GPU)である。
他の例によれば、あるプロセッサにより実行されると、複数のプロセッサに上記の例のいずれかに記載された方法の動作を行わせる命令が記憶された、少なくとも一つのコンピュータ読み取り可能媒体が提供される。
他の例によれば、上記の例のいずれかに記載された方法を行う手段を含む装置が提供される。
本開示で使用された用語及び表現は、説明としての文言として用いられ、非限定的なものであり、そのような用語及び表現の使用において、示され、説明された特徴(又はその一部)の任意の均等物を排除することは意図しておらず、様々な修正がクレームの範囲内において可能であると認められる。従って、クレームは全ての均等物を含むことを意図している。様々な特徴、側面及び実施形態が本開示で説明されている。それらの特徴、側面及び実施形態は、バリエーション及び修正と同様に、互いに組み合わせられる余地があり、そのことは、当業者に理解されるものである。本開示は、このため、そのような組み合わせ、バリエーション及び修正を包含するものとみなされるべきである。

Claims (30)

  1. 複数のプロセッサのクロック周波数を制御するシステムであって、当該システムは、
    前記複数のプロセッサの利用を測定する利用測定モジュールと、
    複数のプロセッサ上で実行する、プロデューサ/コンシューマ(P/C)ワークロードと非P/Cワークロードとのバランスを推定する関連性モジュールと、
    推定された前記バランス及び測定された前記利用に基づいて、クロック周波数調整を計算し、計算された該クロック周波数調整に基づいて、前記複数のプロセッサのクロック周波数を更新するクロック周波数調整モジュールと、を含むシステム。
  2. 前記関連性モジュールは、さらに、
    推定された前記バランスに関連づけられた期間について前記クロック周波数を変化させ、
    前記期間中の利用変化を測定し、
    前記利用変化のクロック周波数変化に対する比率に基づいて、前記バランスを推定する、請求項1に記載のシステム。
  3. 前記関連性モジュールは、さらに、前記比率を閾値比率と比較し、前記比率が該閾値比率よりも小さい場合は、前記バランスを前記P/Cワークロードに関連づける、請求項2に記載のシステム。
  4. 推定された前記バランスがP/Cワークロードに関連付けられており、測定された前記利用が利用閾値よりも小さい場合、前記クロック周波数調整はクロック周波数上昇である、請求項1から3のいずれか一項に記載のシステム。
  5. 前記利用測定モジュールは、さらに、ある時間間隔経過後に前記複数のプロセッサの利用を再測定し、前記クロック周波数調整モジュールは、さらに、再測定された前記利用が前記利用閾値よりも大きく、かつ、前記クロック周波数調整がクロック周波数上昇であった場合に、前記クロック周波数を小さくする、請求項4に記載のシステム。
  6. 前記クロック周波数の更新は、さらに、前記複数のプロセッサの制御状態の電圧周波数ペアリングを調整することを含む、請求項1から5のいずれか一項に記載のシステム。
  7. 前記複数のプロセッサは、プロセッサコア及び/又はグラフィクスプロセッシングユニット(GPU)である、請求項1から6のいずれか一項に記載のシステム。
  8. 当該システムは、スマートフォン、スマートタブレット、ノートブック又はラップトップコンピュータのいずれかに組み込まれた、請求項1から7のいずれか一項に記載のシステム。
  9. 複数のプロセッサのクロック周波数を制御する方法であって、当該方法は、
    前記複数のプロセッサの利用を測定する工程と、
    複数のプロセッサ上で実行する、プロデューサ/コンシューマ(P/C)ワークロードと非P/Cワークロードとのバランスを推定する工程と、
    推定された前記バランス及び測定された前記利用に基づいて、クロック周波数調整を計算する工程と、
    計算された該クロック周波数調整に基づいて、前記複数のプロセッサのクロック周波数を更新する工程と、を含む方法。
  10. 前記バランスを推定する工程は、さらに、
    推定された前記バランスに関連づけられた期間について前記クロック周波数を変化させる工程と、
    前記期間中の利用変化を測定する工程と、
    前記利用変化のクロック周波数変化に対する比率に基づいて、前記バランスを推定する工程と、を含む、請求項9に記載の方法。
  11. さらに、前記比率を閾値比率と比較する工程と、前記比率が該閾値比率よりも小さい場合は、前記バランスを前記P/Cワークロードに関連づける工程と、を含む請求項10に記載の方法。
  12. 推定された前記バランスがP/Cワークロードに関連付けられており、測定された前記利用が利用閾値よりも小さい場合、前記クロック周波数調整はクロック周波数上昇である、請求項9から11のいずれか一項に記載の方法。
  13. さらに、ある時間間隔経過後に前記複数のプロセッサの利用を再測定する工程と、
    再測定された前記利用が前記利用閾値よりも大きく、かつ、前記クロック周波数調整がクロック周波数上昇であった場合に、前記クロック周波数を小さくする工程と、を含む請求項12に記載の方法。
  14. 前記クロック周波数を更新する工程は、さらに、前記複数のプロセッサの制御状態の電圧周波数ペアリングを調整する工程を含む、請求項9から13のいずれか一項に記載の方法。
  15. 前記複数のプロセッサは、プロセッサコア及び/又はグラフィクスプロセッシングユニット(GPU)である、請求項9から14のいずれか一項に記載の方法。
  16. あるプロセッサにより実行されると、複数のプロセッサのクロック周波数を制御する動作をもたらすプログラムであって、当該動作は、
    前記複数のプロセッサの利用を測定する工程と、
    複数のプロセッサ上で実行する、プロデューサ/コンシューマ(P/C)ワークロードと非P/Cワークロードとのバランスを推定する工程と、
    推定された前記バランス及び測定された前記利用に基づいて、クロック周波数調整を計算する工程と、
    計算された該クロック周波数調整に基づいて、前記複数のプロセッサのクロック周波数を更新する工程と、を含むプログラム。
  17. 前記バランスを推定する工程は、さらに、
    推定された前記バランスに関連づけられた期間について前記クロック周波数を変化させる工程と、
    前記期間中の利用変化を測定する工程と、
    前記利用変化のクロック周波数変化に対する比率に基づいて、前記バランスを推定する工程、の動作を含む、請求項16に記載のプログラム。
  18. さらに、前記比率を閾値比率と比較する工程と、前記比率が該閾値比率よりも小さい場合は、前記バランスを前記P/Cワークロードに関連づける工程と、を含む請求項17に記載のプログラム。
  19. 推定された前記バランスがP/Cワークロードに関連付けられており、測定された前記利用が利用閾値よりも小さい場合、前記クロック周波数調整はクロック周波数上昇である、請求項16から18のいずれか一項に記載のプログラム。
  20. さらに、ある時間間隔経過後に前記複数のプロセッサの利用を再測定する工程と、
    再測定された前記利用が前記利用閾値よりも大きく、かつ、前記クロック周波数調整がクロック周波数上昇であった場合に、前記クロック周波数を小さくする工程、の動作を含む請求項19に記載のプログラム。
  21. 前記クロック周波数を更新する工程は、さらに、前記複数のプロセッサの制御状態の電圧周波数ペアリングを調整する工程を含む、請求項16から20のいずれか一項に記載のプログラム。
  22. 前記複数のプロセッサは、プロセッサコア及び/又はグラフィクスプロセッシングユニット(GPU)である、請求項16から21のいずれか一項に記載のプログラム。
  23. 複数のプロセッサのクロック周波数を制御するシステムであって、当該システムは、
    前記複数のプロセッサの利用を測定する手段と、
    複数のプロセッサ上で実行するプロデューサ/コンシューマ(P/C)ワークロードと非P/Cワークロードとのバランスを推定する手段と、
    推定された前記バランス及び測定された前記利用に基づいて、クロック周波数調整を計算する手段と、
    計算された該クロック周波数調整に基づいて、前記複数のプロセッサのクロック周波数を更新する手段と、を含むシステム。
  24. 前記バランスを推定することは、さらに、
    推定された前記バランスに関連づけられた期間について前記クロック周波数を変化させる手段と、
    前記期間中の利用変化を測定する手段と、
    前記利用変化のクロック周波数変化に対する比率に基づいて、前記バランスを推定する手段と、を含む、請求項23に記載のシステム。
  25. さらに、前記比率を閾値比率と比較する手段と、前記比率が該閾値比率よりも小さい場合は、前記バランスを前記P/Cワークロードに関連づける手段と、を含む請求項24に記載のシステム。
  26. 推定された前記バランスがP/Cワークロードに関連付けられており、測定された前記利用が利用閾値よりも小さい場合、前記クロック周波数調整はクロック周波数上昇である、請求項23から25のいずれか一項に記載のシステム。
  27. さらに、ある時間間隔経過後に前記複数のプロセッサの利用を再測定する手段と、
    再測定された前記利用が前記利用閾値よりも大きく、かつ、前記クロック周波数調整がクロック周波数上昇であった場合に、前記クロック周波数を小さくする手段と、を含む請求項26に記載のシステム。
  28. 前記クロック周波数を更新することは、さらに、前記複数のプロセッサの制御状態の電圧周波数ペアリングを調整する手段を含む、請求項23から27のいずれか一項に記載のシステム。
  29. 前記複数のプロセッサは、プロセッサコア及び/又はグラフィクスプロセッシングユニット(GPU)である、請求項23から28のいずれか一項に記載のシステム。
  30. 請求項16から22のいずれか一項に記載のプログラムを記憶した、少なくとも一つのコンピュータ読み取り可能記憶媒体。
JP2017520874A 2014-07-09 2015-05-15 プロデューサ/コンシューマワークロードシリアライゼーションの検出に基づいたプロセッサ状態制御 Active JP6297748B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/326,529 2014-07-09
US14/326,529 US20160011623A1 (en) 2014-07-09 2014-07-09 Processor state control based on detection of producer/consumer workload serialization
PCT/US2015/030928 WO2016007219A1 (en) 2014-07-09 2015-05-15 Processor state control based on detection of producer/consumer workload serialization

Publications (2)

Publication Number Publication Date
JP2017528851A true JP2017528851A (ja) 2017-09-28
JP6297748B2 JP6297748B2 (ja) 2018-03-20

Family

ID=55064654

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017520874A Active JP6297748B2 (ja) 2014-07-09 2015-05-15 プロデューサ/コンシューマワークロードシリアライゼーションの検出に基づいたプロセッサ状態制御

Country Status (5)

Country Link
US (1) US20160011623A1 (ja)
JP (1) JP6297748B2 (ja)
CN (1) CN106462456B (ja)
SG (1) SG11201610303UA (ja)
WO (1) WO2016007219A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10296067B2 (en) * 2016-04-08 2019-05-21 Qualcomm Incorporated Enhanced dynamic clock and voltage scaling (DCVS) scheme
WO2018132902A1 (en) 2017-01-17 2018-07-26 Tutela Technologies Ltd. System and method for evaluating wireless device and/or wireless network performance
TWI668962B (zh) * 2018-10-02 2019-08-11 新唐科技股份有限公司 時脈調整裝置及其傳輸系統和方法
CN110941325B (zh) * 2019-10-17 2022-05-06 华为技术有限公司 处理器的调频方法及装置、计算设备
US20230205872A1 (en) * 2021-12-23 2023-06-29 Advanced Micro Devices, Inc. Method and apparatus to address row hammer attacks at a host processor

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120297232A1 (en) * 2011-05-16 2012-11-22 Bircher William L Adjusting the clock frequency of a processing unit in real-time based on a frequency sensitivity value
JP2014502389A (ja) * 2010-11-09 2014-01-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 計算作業負荷を変更することによる時間変動エネルギー源のエネルギー捕獲
US20140089699A1 (en) * 2012-09-27 2014-03-27 Advanced Micro Devices Power management system and method for a processor
WO2014070338A1 (en) * 2012-11-05 2014-05-08 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1151416C (zh) * 2000-12-18 2004-05-26 联想(北京)有限公司 根据cpu的利用率调节cpu频率的方法
US7971073B2 (en) * 2005-11-03 2011-06-28 Los Alamos National Security, Llc Adaptive real-time methodology for optimizing energy-efficient computing
US7437270B2 (en) * 2006-03-30 2008-10-14 Intel Corporation Performance state management
US8813080B2 (en) * 2007-06-28 2014-08-19 Intel Corporation System and method to optimize OS scheduling decisions for power savings based on temporal characteristics of the scheduled entity and system workload
KR101533572B1 (ko) * 2009-05-20 2015-07-03 삼성전자주식회사 전력 관리 방법
US8650423B2 (en) * 2011-10-12 2014-02-11 Qualcomm Incorporated Dynamic voltage and clock scaling control based on running average, variant and trend
CN103246340A (zh) * 2012-02-06 2013-08-14 索尼公司 动态调整中央处理单元的频率的装置和方法
US8984313B2 (en) * 2012-08-31 2015-03-17 Intel Corporation Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator
US9946319B2 (en) * 2012-11-20 2018-04-17 Advanced Micro Devices, Inc. Setting power-state limits based on performance coupling and thermal coupling between entities in a computing device
US10025361B2 (en) * 2014-06-05 2018-07-17 Advanced Micro Devices, Inc. Power management across heterogeneous processing units

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014502389A (ja) * 2010-11-09 2014-01-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 計算作業負荷を変更することによる時間変動エネルギー源のエネルギー捕獲
US20120297232A1 (en) * 2011-05-16 2012-11-22 Bircher William L Adjusting the clock frequency of a processing unit in real-time based on a frequency sensitivity value
US20140089699A1 (en) * 2012-09-27 2014-03-27 Advanced Micro Devices Power management system and method for a processor
WO2014070338A1 (en) * 2012-11-05 2014-05-08 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines

Also Published As

Publication number Publication date
CN106462456A (zh) 2017-02-22
SG11201610303UA (en) 2017-01-27
CN106462456B (zh) 2020-10-09
US20160011623A1 (en) 2016-01-14
WO2016007219A1 (en) 2016-01-14
JP6297748B2 (ja) 2018-03-20

Similar Documents

Publication Publication Date Title
KR102210355B1 (ko) 적응적 전력 제어 루프
JP6297748B2 (ja) プロデューサ/コンシューマワークロードシリアライゼーションの検出に基づいたプロセッサ状態制御
JP6005895B1 (ja) ワット当たりの最適パフォーマンスのためのインテリジェントマルチコア制御
AU2012379690B2 (en) Scheduling tasks among processor cores
JP5695766B2 (ja) マルチコアシステムエネルギー消費最適化
JP6249953B2 (ja) ヘテロジニアスマルチプロセッサシステムオンチップにおける熱駆動作業負荷スケジューリング
JP2018533112A (ja) コマンドストリームヒントを使用したgpu作業負荷の特徴づけおよび電力管理
US11157328B2 (en) Distributed processing QoS algorithm for system performance optimization under thermal constraints
US10255106B2 (en) Prediction-based power management strategy for GPU compute workloads
JP6162350B1 (ja) 性能を最大化し、チップ温度および電力を低減する好ましいコア順序付けのためのアルゴリズム
CN107924225B (zh) 用于动态地调整存储器状态转变定时器的***和方法
US9940905B2 (en) Clock rate adjustment for processing unit
US20210247831A1 (en) Application processor and system on chip
WO2014123587A1 (en) System and method for controlling central processing unit power with guaranteed transient deadlines
US10216526B2 (en) Controlling method for optimizing a processor and controlling system
TWI681289B (zh) 管理異構並行計算的方法、計算裝置及非臨時性處理器可讀取媒體
TWI662477B (zh) 以工作量可調性爲基礎的處理器效能狀態控制之技術
TW201727435A (zh) 具有多核心處理器的電子裝置以及多核心處理器的管理方法
US11953965B2 (en) Adaptive power management

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171003

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180104

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180123

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180221

R150 Certificate of patent or registration of utility model

Ref document number: 6297748

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250