JP6412162B2 - グラフィックスフレーム処理において電力消費を低減させるためのcpu/gpu dcvs相互最適化 - Google Patents

グラフィックスフレーム処理において電力消費を低減させるためのcpu/gpu dcvs相互最適化 Download PDF

Info

Publication number
JP6412162B2
JP6412162B2 JP2016564202A JP2016564202A JP6412162B2 JP 6412162 B2 JP6412162 B2 JP 6412162B2 JP 2016564202 A JP2016564202 A JP 2016564202A JP 2016564202 A JP2016564202 A JP 2016564202A JP 6412162 B2 JP6412162 B2 JP 6412162B2
Authority
JP
Japan
Prior art keywords
cpu
gpu
dcvs
workload
data
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.)
Active
Application number
JP2016564202A
Other languages
English (en)
Other versions
JP2017515230A5 (ja
JP2017515230A (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 JP2017515230A publication Critical patent/JP2017515230A/ja
Publication of JP2017515230A5 publication Critical patent/JP2017515230A5/ja
Application granted granted Critical
Publication of JP6412162B2 publication Critical patent/JP6412162B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • 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
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • 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
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2330/00Aspects of power supply; Aspects of display protection and defect management
    • G09G2330/02Details of power systems and of start or stop of display operation
    • G09G2330/021Power management, e.g. power saving
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/06Use of more than one graphics processor to process data before displaying to one or more screens
    • 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 Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)

Description

本発明は、グラフィックスフレーム処理において電力消費を低減させるためのCPU/GPU DCVS相互最適化に関する。
ポータブルコンピューティングデバイス(たとえば、セルラー電話、スマートフォン、タブレットコンピュータ、携帯情報端末(PDA)、および携帯ゲーム機)は、まずます拡大する数々の機能およびサービスを提供し続け、ユーザに、情報、リソース、および通信へのかつてないレベルのアクセスを与えている。これらのサービス拡張とペースを合わせるために、そのようなデバイスは、より強力、より複雑になっている。ポータブルコンピューティングデバイスは現在、一般的にシステムオンチップ(SoC:system-on-chip)および/または単一の基板に組み込まれた複数のマイクロプロセッサコア(たとえば、中央処理装置(CPU)、グラフィックス処理装置(GPU)など)を含み、ユーザが複雑な、電力多消費の(power intensive)ソフトウェアアプリケーションを実行することを可能にする。しかしながら、性能および機能の要求の増大により、バッテリ寿命および電力消費を管理するための重要な設計および運用上の課題がもたらされる。
マルチプロセッサデバイスの電力消費を管理するための既存の方法は、動的クロックおよび電圧スケーリング(DCVS:dynamic clock and voltage scaling)技法を含むことができる。DCVSは、所望の性能および/または電力効率特性を生じるために、プロセッサ、ハードウェアデバイスなどに適用される周波数および/または電圧を選択的に調整することを含む。従来のDCVSソリューションは、いくつかの性能問題を示し、マルチコアプロセッサシステムの各コアについて周波数/電圧を正しくスケーリングする効果的なDCVS方法を実施することが、重要および困難な設計基準である。たとえば、マルチプロセッサシステム(たとえば、CPUと、GPUとを備えるシステム)のためのDCVS技法は、各プロセッサが別個のDCVSモジュール/プロセスを含む、および/または他のプロセッサから独立したプロセッサ周波数/電圧を調整することを必要とする。さらに、グラフィックスフレーム処理を実行するとき、別個のCPUおよび/またはGPU DCVSアルゴリズムは、電力効率最適化を考慮せずにフレーム処理デッドラインによって提示される制約内で性能を最適化するように設計される。
したがって、当技術分野では、マルチプロセッサシステムにおいて電力効率のためにDCVSを最適化するための改善されたシステムおよび方法が依然として必要とされている。
グラフィックスフレーム処理における電力消費を最小にするシステム、方法、およびコンピュータプログラムを開示する。1つのそのような方法は、中央処理装置(CPU)およびグラフィックス処理装置(GPU)によって協働的に実行されるグラフィックスフレーム処理を開始するステップと、CPUアクティビティデータおよびGPUアクティビティデータを受信するステップと、GPUおよびCPUのために利用可能な動的クロックおよび電圧/周波数スケーリング(DCVS)レベルのセットを決定するステップと、CPUおよびGPUアクティビティデータに基づいて、利用可能なDCVSレベルのセットから、グラフィックスフレーム処理中にCPUとGPUの合わせた電力消費を最小にする、GPU DCVSレベルとCPU DCVSレベルの最適な組合せを選択するステップとを含む。
別の実施形態は、グラフィックスフレーム処理における電力消費を最小にするためのシステムを備える。1つのそのようなシステムは、中央処理装置(CPU)と、グラフィックス処理装置(GPU)と、GPUおよびCPUと通信している動的クロック電圧およびスケーリング(DCVS)コントローラとを含んだシステムオンチップ(SoC)を備える。CPU/GPU DCVS相互最適化モジュールは、CPUおよびGPUアクティビティデータに基づいて、DCVSコントローラのためのGPU DCVSレベルとCPU DCVSレベルの最適な組合せを決定するように構成される。GPU DCVSレベルとCPU DCVSレベルの最適な組合せは、グラフィックスフレーム処理中のCPUとGPUの合わせた電力消費を最小にするように選択される。
図の中では、別段に示されない限り、様々な図の全体を通して、同様の参照番号は同様の部分を指す。「102A」または「102B」などの文字指定を伴う参照番号について、文字指定は、同じ図に存在する2つの同様の部分または要素を区別する場合がある。ある参照番号が、すべての図にその同じ参照番号を有するすべての部分を包含することが意図されている場合、参照番号に対する文字指定が省略される場合がある。
グラフィックスフレーム処理において、中央処理装置(CPU)およびグラフィックス処理装置(GPU)動的クロックおよび電圧/周波数スケーリング(DCVS)を相互最適化するためのシステムの一実施形態のブロック図である。 検出されたグラフィックスワークロードタイプによりDCVS相互最適化アルゴリズムを選択するための、図1のシステムで実施される方法の一実施形態のフローチャートである。 図1のシステムにおけるCPU/GPU DCVS相互最適化モジュールに対する例示的なデータ入力および出力を示すブロック図である。 グラフィックスフレーム処理中の電力消費を最小にするためにCPUおよびGPU DCVSを相互最適化するための、図1のシステムで実施される方法の一実施形態を示すフローチャートである。 CPU/GPUシリアルグラフィックスワークロードのためのCPU/GPU DCVS相互最適化方法の一実施形態を示すタイミング図である。 CPU/GPUシリアルグラフィックスワークロードのためのCPU/GPU DCVS相互最適化方法の一実施形態を示すタイミング図である。 CPU/GPUシリアルグラフィックスワークロードのためのCPU/GPU DCVS相互最適化方法の一実施形態を示すタイミング図である。 第1のCPU/GPU温度におけるグラフィックスフレーム処理中の合わせた電力消費が最小となるようにGPUおよびCPU DCVSレベルを相互最適化するための例示的なCPU/GPU周波数空間を示すデータ表である。 第2のCPU/GPU温度についての図6のデータ表を示す図である。 第3のCPU/GPU温度についての図6のデータ表を示す図である。 勾配降下探索方法を実施するCPU/GPU DCVS相互最適化アルゴリズムの一実施形態を示す図である。 CPU/GPU並列グラフィックスワークロードのためにCPUおよびGPU DCVSレベルを相互最適化するための、図1のシステムで実施される方法の一実施形態を示すフローチャートである。 CPU/GPU並列グラフィックスワークロードのためのCPU/GPU DCVS相互最適化方法の一実施形態を示すタイミング図である。 CPU/GPU並列グラフィックスワークロードのためのCPU/GPU DCVS相互最適化方法の一実施形態を示すタイミング図である。 図1のシステムを備える携帯コンピュータデバイスの一実施形態のブロック図である。
本明細書で使用する「例示的(exemplary)」という言葉は、「例、実例、または図として機能する」ことを意味する。「例示的」と本明細書で説明する態様は、他の態様より好ましい、または有利であるものとして必ずしも解釈されない。
この説明では、「アプリケーション」という用語はまた、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能なコンテンツを有するファイルを含むこともできる。加えて、本明細書において参照される「アプリケーション」は、開くことが必要な場合があるドキュメント、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能ではないファイルを含む場合もある。
「コンテンツ」という用語はまた、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能コンテンツを有するファイルを含む場合もある。加えて、本明細書において参照される「コンテンツ」は、開かれることが必要な場合があるドキュメント、またはアクセスされる必要がある他のデータファイルなどの、実際には実行可能ではないファイルを含む場合もある。
この説明で使用されるとき、「構成要素」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかである、コンピュータ関連エンティティを指すものとする。たとえば、構成要素は、限定はしないが、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータであってよい。例として、コンピューティングデバイス上で実行されているアプリケーションと、コンピューティングデバイスの両方は、構成要素であってよい。1つまたは複数の構成要素は、プロセス内および/または実行スレッド内に存在してよく、構成要素は1つのコンピュータ上に局在化されてよく、かつ/または2つ以上のコンピュータ間で分散されてもよい。加えて、これらの構成要素は、その上に記憶された様々なデータ構造を有する様々なコンピュータ可読媒体から実行されてよい。構成要素は、1つまたは複数のデータパケット(たとえば、ローカルシステム、分散システムの中の別の構成要素と対話する、および/または、信号によってインターネットなどのネットワークにわたって他のシステムと対話する、1つの構成要素からのデータ)を有する信号などに従って、ローカルプロセスおよび/またはリモートプロセスによって通信してよい。
この説明において、「通信デバイス」、「ワイヤレスデバイス」、「ワイヤレス電話」、「ワイヤレス通信デバイス」、および「ワイヤレスハンドセット」という用語は、互換的に使用される。第3世代(「3G」)ワイヤレス技術および第4世代(「4G」)の出現により、利用可能な帯域幅が拡大されたので、より多様なワイヤレス機能を備える、より多くのポータブルコンピューティングデバイスが利用可能になっている。したがって、ポータブルコンピューティングデバイスは、セルラー電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、またはワイヤレス接続もしくはワイヤレスリンクを有するハンドヘルドコンピュータを含んでよい。
図1は、グラフィックスフレーム処理中の中央処理装置(CPU)106およびグラフィックス処理装置(GPU)104の動的クロックおよび電圧/周波数スケーリング(DCVS)レベルを相互最適化するための(「CPU/GPU DCVS相互最適化」と呼ばれる)システム100を示す。グラフィックスフレーム処理は、CPU106およびGPU104がフレーム処理を協働的に実行する任意のワークロードを含むことができる。たとえば、グラフィックスフレーム処理は、CPU/GPUシリアルワークロードおよび/またはCPU/GPU並列ワークロードを含むことができる。当技術分野において知られているように、CPU/GPUシリアルワークロードは、各グラフィックスフレームに対してのCPU106およびGPU104による連続処理を含む。各フレームに対して、CPU106は処理を開始し、出力をGPU104へ提供し、GPU104は追加の処理を実行する。GPU104は、たとえば、モバイルディスプレイプロセッサを介して、生じた出力をディスプレイ110に転送する。
CPU/GPU並列ワークロードが、CPU106およびGPU104による並列処理を含むことは、当業者には諒解されよう。CPU106は、フレーム(n)に対しての処理を開始し、生じた出力を、メモリ126のフレームバッファ128に記憶する。次の期間中に、GPU104は、フレームバッファ128に記憶された出力を検索し、フレーム(n)に対しての追加の処理を実行し、一方CPU106は、フレーム(n+1)を処理し、対応する出力をフレームバッファ128に記憶する。プロセスは、各後続のフレームに対して繰り返す。このプロセスは、単一フレームの遅れを生じるが、このプロセスは、CPU/GPU並列処理による性能利点をもたらす。
CPU/GPU DCVS相互最適化という用語は、GPU104とCPU106の合わせた電力消費が最小にされるように、GPU104とCPU106の両方に対してDCVSレベルを共同で最適化することを指すことを諒解されたい。言い換えれば、システム100は、DCVSコントローラ112に対してGPU DCVSレベルとCPU DCVSレベルの最適な組合せを決定し、DCVSコントローラ112は、グラフィックフレーム処理中の最も低いCPUおよびGPU総電力消費をもたらす。
システム100は、パーソナルコンピュータと、ワークステーションと、サーバと、セルラー電話、携帯情報端末(PDA)、携帯ゲーム機、パームトップコンピュータ、またはタブレットコンピュータなどのポータブルコンピューティングデバイス(PCD)とを含む、任意のマルチプロセッサコンピューティングデバイスにおいて実現することができる。一実施形態では、図1に示すシステム構成要素の1つまたは複数は、メモリシステム(たとえば、ダイナミックランダムアクセスメモリ(DRAM))または他のタイプのメモリに結合されたシステムオンチップ(SoC)に組み込まれてもよい。図1に示すように、システム100は、1つまたは複数の処理デバイス、ユニット、またはコア(たとえば、CPU106、GPU104)を備える。システム100は、たとえば、デジタル信号プロセッサ、モバイルディスプレイプロセッサ、ビデオエンコーダなど、任意の他の汎用または特定用途のハードウェアデバイスをさらに備えてよい。
CPU106、GPU104、および任意の他のハードウェアデバイス108は、それぞれのハードウェアドライバ114に接続することができる。当技術分野で知られているように、ハードウェアドライバ114は、それぞれのハードウェアデバイスにソフトウェアインターフェースを提供し、オペレーティングシステムおよび他のコンピュータプログラムが使用されているハードウェアの正確な詳細を知る必要なしにハードウェア機能にアクセスできるようにする。ハードウェアドライバ114は、DCVSコントローラ112に電気的に結合される。DCVSコントローラ112は、CPU106、GPU104、およびハードウェアデバイス108に提供される周波数および/または電圧を制御することによって、システムDCVS技法を実施するように構成される。DCVSコントローラ112は、たとえば、1つまたは複数のクロック116、電力管理集積回路(PMIC)118などへのインターフェースを介してデバイスが動作する周波数および/または電圧を調整することができる。
上述のように、グラフィックスフレーム処理中に、DCVSコントローラ112は、最も低いCPUおよびGPU総電力消費をもたらすようにGPU104とCPU106の両方に対してDCVSレベルを共同で最適化するために、CPU/GPU DCVS相互最適化モジュール102とインターフェースすることができる。図1の実施形態では、以下でより詳細に説明するように、CPU/GPU DCVS相互最適化モジュール102は、グラフィックスワークロードタイプ検出モジュール120を備え、グラフィックスワークロードタイプ検出モジュール120は、グラフィックス負荷がCPU/GPUシリアルワークロードを備えるか、またはCPU/GPU並列ワークロードを備えるかを決定するように構成される。グラフィックスワークロードがシリアル化される場合、CPU/GPU DCVS相互最適化はモジュール122によって実行される。グラフィックスワークロードが並列化される場合、CPU/GPU DCVS相互最適化はモジュール124によって実行される。
図2は、検出されたグラフィックスワークロードタイプにより様々なCPU/GPU DCVS相互最適化アルゴリズムを制御するための、図1のシステムで実施される方法200の一実施形態のフローチャートである。ブロック202において、システム100は、グラフィックスフレーム処理を開始することができる。ブロック204において、グラフィックスワークロードタイプ検出モジュール120は、グラフィックスフレーム処理と関連付けられたワークロードタイプを検出する。一実施形態では、ワークロードタイプ検出は、GPUドライバによって実行されてよい。検出されたワークロードタイプは、CPU/GPUシリアルワークロードまたはCPU/GPU並列ワークロードを含むことができる。ワークロードタイプは、様々な方式で検出されてよい。一実施形態では、GPUドライバは、フレームバッファオブジェクト(FBO)が作成されたかどうかを決定することができる。FBOが作成される場合、システム100は、グラフィックスワークロードタイプはCPU/GPUシリアルであると決定することができる。FBOが作成されない場合、システムは、グラフィックスワークロードタイプはCPU/GPU並列であると決定することができる。
別の検出方法は、プロファイルフレーム処理を調べることを含むことができる。フレーム(n+1)に対しての処理は、フレーム(n)処理が完了した後でようやく始まると決定される場合、システム100は、グラフィックスワークロードタイプはCPU/GPUシリアルであると決定することができる。これは、たとえば、フレーム(n+1)の開始時間がフレーム(n)処理の終了時間にほぼ等しい場合、想定されてよい。しかしながら、フレーム(n+1)に対しての処理が、フレーム(n)処理の状態にかかわらず始まり得る場合、システム100は、グラフィックスワークロードタイプはCPU/GPU並列であると決定することができる。これは、たとえば、フレーム(n+1)の開始時間がフレーム(n)処理の終了時間の前に発生する場合、想定されてよい。
ワークロードタイプは、グラフィックス性能ベンチマークに基づいて決定されてもよい。たとえば、ベンチマークまたは性能および/もしくは使用シナリオのいくつかのタイプは、CPU/GPUシリアルワークロードと関連付けられるべきであり、他のものは、CPU/GPU並列ワークロードと関連付けられるべきであることを、データ表が指定することができる。
ワークロードタイプ検出方法にかかわらず、モジュール120は、どのCPU/GPU DCVS相互最適化アルゴリズムが適用されるべきであるかを制御する(決定ブロック206)。シリアルワークロードについては、CPU/GPUシリアルDCVS相互最適化アルゴリズムのセットのうちの1つが適用されてよい(ブロック208)。並列ワークロードについては、CPU/GPU並列DCVS相互最適化アルゴリズムのセットのうちの1つが適用されてよい(ブロック210)。
図3は、グラフィックスフレーム処理中のCPU106とGPU104の合わせた電力消費を最小にするためにGPUおよびCPU DCVSレベルを共同で最適化するための、CPU/GPU DCVS相互最適化モジュール102によって使用される例示的なデータ入力を示すブロック図である。以下でより詳細に説明するように、様々なタイプのデータは、フレームデッドラインを確認しながら、合わせたCPUおよびGPU電力消費が最も低くなるように、最適動作点(すなわち、GPUおよびCPU DCVSレベル)を決定するために使用される。一実施形態では、CPU/GPU DCVS相互最適化モジュール102は、式1〜式4中の条件によって制約される最適動作点を決定するように構成されてよい。
CPUアクティブ時間+GPUアクティブ<フレーム期間=1/1秒あたりのフレーム数(FPS) 式1
CPU Fmin<CPU周波数<CPU Fmax、 式2
ただし、Fminは最小CPU周波数であり、
Fmaxは最大CPU周波数である
GPU Fmin<GPU周波数<GPU Fmax、 式3
ただし、Fminは最小GPU周波数であり、
Fmaxは最大GPU周波数である
最小総平均SoC電力消費=CPU電力+GPU電力+その他 式4
図3を参照すると、CPU/GPU DCVS相互最適化モジュール102は、CPU106およびGPU104からの(すなわち、それぞれCPUアクティビティデータおよびGPUアクティビティデータと呼ばれる)様々なタイプのアクティビティデータを取得することができる。アクティビティデータは、CPUアクティビティプロファイラ302およびGPUアクティビティプロファイラ304から受信することができる。当技術分野で知られているように、アクティビティプロファイラ302および304は、たとえば、それぞれのCPUおよびGPUドライバ、カウンタ、レジスタ、他のハードウェアなどから関連データを取得することができる。アクティビティデータは、CPUおよび/またはGPUアクティビティに関係する、以下のまたは他のタイプのデータのうちのいずれかを含んでよい:ワークロード、アクティブ時間、アイドル時間、待機時間など。CPU/GPU DCVS相互最適化モジュール102は、CPU106およびGPU104と関連付けられる可能な低電力モード(CPU低電力モード306およびGPU低電力モード308)を決定することができる。低電力モードは、それぞれのDCVSレベルまたは動作周波数などのリストまたは表を備えることができる。CPU低電力モードは、次の機能、特徴、または変数、すなわちクロックゲーティングモード、低電圧での保持、パワーゲーティングなどのうちのいずれかを含むことができることを諒解されたい。GPU低電力モードは、たとえば、空間ピーク時間ピーク(SPTP)電力低下(power collapse)、GFX電力低下などを含むことができる。
図3にさらに示すように、CPU/GPU DCVS相互最適化は、CPU温度センサ312およびGPU温度センサ310からの温度データ、ならびにCPUおよびGPUと関連付けられる静止状態供給電流(IDDQ)リークデータ(IDDQリークデータ314およびIDDQリークデータ316)を組み込むこともできる。合わせたCPUおよびGPU電力消費を最小にするための最適CPU/GPU動作点は、図3に示すデータの1つまたは複数に基づいて決定することができることは、当業者には諒解されよう。CPU/GPU DCVS相互最適化モジュール102は、最適CPU/GPU動作点をDCVSコントローラ112に提供し、DCVSコントローラ112は、たとえば、クロック116および/またはPMIC118(図1)を介してCPU106およびGPU104を調整する。
図4は、グラフィックスフレーム処理中の電力消費を最小にするためにCPUおよびGPU DCVSを相互最適化するための、システム100で実施される方法400の一実施形態を示すフローチャートである。ブロック402において、GPUおよびCPUアクティビティデータが、たとえば、CPUアクティビティプロファイラ302およびGPUアクティビティプロファイラ304から受信される。CPU/GPU DCVS相互最適化モジュール102は、CPU106およびGPU104のための可能な低電力モード(ブロック404)、および/またはそれぞれのDCVSレベル、動作周波数など(ブロック406)を、または上述の他の場合のように、決定することができる。ブロック408において、CPU/GPU DCVS相互最適化モジュール102は、CPU106およびGPU104のための温度データおよび/またはIDDQリークデータを受信することができる。ブロック402、404、406、および408において受信および/または決定されたデータのうちの1つまたは複数に基づいて、CPU/GPU DCVS相互最適化モジュール102は、グラフィックスワークロードタイプに従って適切な相互最適化アルゴリズムを選択し、グラフィックスフレーム処理中のCPU106とGPU104の合わせた電力消費を最小にするCPU DCVSレベルとGPU DCVSレベルの最適な組合せを決定する(ブロック410)。ブロック412において、最適動作点(たとえば、DCVS設定)がDCVSコントローラ112に送信され、DCVSコントローラ112は、フレームデッドライン(ブロック414)内でグラフィックスワークロードを処理するための、CPU106およびGPU104の周波数および/または電圧への調整を制御する。
図5a〜図5cは、CPU/GPUシリアルグラフィックスワークロードのためのCPU/GPU DCVS相互最適化方法の一実施形態を示すための一連のタイミング図である。図5aおよび図5bは、CPU DCVSおよびGPU DCVSを別個に最適化することによってCPU/GPU総電力消費を最小にするための従来の方法を示す。図5aは、最も低いCPU周波数と、最も低いGPU周波数とを備える第1のシナリオを示す。
図5aに示すように、CPU周波数は800MHzであり、GPU周波数は579MHzである。シリアルワークロードは、ワークロードと関連付けられる最初の3つのフレーム(すなわち、それぞれフレーム500、502、および504として識別されるフレームn、フレーム(n+1)、およびフレーム(n+2))について示されている。参照番号506a1、506a2、および506a3がそれぞれ、それぞれのフレーム500、502、および504におけるCPU処理を示し、参照番号508a1、508a2、および508a3が、GPU処理を示す。図5aに示すように、フレーム500において、GPU処理508a1は、CPU処理506a1の後に行われる。GPU処理508a1が完了するとき、出力はディスプレイ110に提供される。フレーム502において、GPU処理508a2は、CPU処理506a2の後に行われる。GPU処理508a2が完了するとき、出力はディスプレイ110に提供される。フレーム504において、GPU処理508a3は、CPU処理506a3の後に行われる。GPU処理508a3が完了するとき、出力はディスプレイ110に提供される。図5aのシナリオ1についての模擬電力消費データは、総電力消費=CPU(559mW)+GPU(1205mW)=1764mWであることを明示する。
図5bは、最も高いCPU周波数と、最も高いGPU周波数とを備える第2のシナリオを示す。図5bに示すように、CPU周波数は2200MHzであり、GPU周波数は625MHzである。やはり、シリアルワークロードは、最初の3つのフレーム500、502、504について示されている。参照番号506b1、506b2、および506b3がそれぞれ、それぞれのフレーム500、502、および504におけるCPU処理を示し、参照番号508b1、508b2、および508b3が、GPU処理を示す。図5bのシナリオ2についての模擬電力消費データは、総電力消費=CPU(783mW)+GPU(1206mW)=1988mWであることを明示する。図5aとの比較によって、それぞれのブロックの幅は、処理時間の量に比例していることを諒解されたい。(最も低い周波数で処理される)図5a中のブロックと比較すると、図5b中のブロックは、周波数がより高いために、使用する処理時間はより少ない。模擬データは、シナリオ1(図5a)がシナリオ2(図5b)よりも電力消費の最適化に優れていることを示している。
図5cは、システム100の例示的な実装形態におけるシリアルワークロードの同じ3つのフレーム500、502、505を示す。この第3のシナリオでは、CPU周波数およびGPU周波数は、上述のように、共同で最適化される。図5cは、上述のように相互最適化手法が、図5a(すなわち、CPUとGPUの両方の最も低い周波数)および図5b(すなわち、CPUとGPUの両方の最も高い周波数)に示す従来の手法よりも低い総電力消費をもたらすことを示す。図5cの例では、総電力消費は最小にされ、CPU周波数は1000MHzであり、GPU周波数は475MHzである。図5cのシナリオ3についての模擬電力消費データは、総電力消費=CPU(554mW)+GPU(1204mW)=1757mWであることを明示する。シナリオ3(図5c)におけるこの相互最適化手法は、シナリオ1および2(図5aおよび図5b)における従来の方法に比べて最も低い電力消費となる。
図6〜図8は、例示的なシリアルワークロードにおけるGPUおよびCPU DCVSレベルの様々な組合せについて、推定GPUおよびCPU電力消費を示すデータ表を含む。データ表は、合わせたCPU/GPU電力消費が例示的なCPU/GPU周波数空間において非線形の、凸の関係であることを示すことを諒解されたい。各データ表は、周波数およびアクティビティ時間の様々な組合せに従って、推定平均CPUおよびGPU電力を示す。図6は、CPU106およびGPU104の温度が約摂氏55度である第1の例を示す。図7は、CPU106およびGPU104の温度が約摂氏85度である第2の例を示す。図8は、CPU106の温度が約摂氏55度であり、GPU104の温度が約摂氏80度である第3の例を示す。
図6〜図8の各々において、GPU組合せは、各表の左の3列に記載され、CPU組合せは、各表の上部の3行に記載されている。グレーアウトしたセルは、様々な組合せに従って、推定総CPUおよびGPU電力を示す。各表中のブラックアウトしたセルは、合わせたCPUおよびGPU電力消費を最小にするためのCPU/GPU周波数空間における最適動作点を識別する。図6〜図8は、最適動作点がCPUおよびGPU温度変化に応じて変わることを示し、このために図3および図4の方法は、CPUおよびGPUの最適動作点を決定するためにIDDQ(リーク)および温度情報を利用する。
CPU/GPU DCVS相互最適化モジュール102は、任意の望ましい周波数空間内で、上述の入力データのいずれかに基づいて、それぞれのCPUおよびGPU電力を推定するように構成されてよいことを諒解されたい。さらに、様々な最適化アルゴリズムが用いられてよい。図9は、勾配降下探索方法の例示的な実装形態を示す。CPU動作周波数(DVCS)レベルは、垂直方向の破線906によってx軸902に沿って表される。GPU動作周波数(DVCS)レベルは、水平方向の破線908によってy軸904に沿って表される。線908と線906の交点は、CPUおよびGPU DCVSレベルを相互最適化するための利用可能な動作点を定義する。
図9の例では、(黒丸として図示した)動作点910は、CPU106およびGPU104の現在の動作点を表す。最適化アルゴリズムは、より低い電力の動作点があるかどうかを決定するために、隣接したDCVS動作点の電力消費を推定するように構成されてよい。(Xで図示した)動作点912はより低い総電力消費を生じるが、フレームデッドラインを満たさず、そのために考慮に入れられないことが決定されてよい。三角形の境界を示した領域は、フレーム処理デッドラインを満たすCPU/GPU DVCSレベルの組合せを表す。(白丸で図示した)動作点914は、より低い総電力消費を生じ、フレームデッドラインを満たすと決定されてよい。しかしながら、(グレーアウトした丸で図示した)動作点916が、フレームデッドラインを満たすだけでなく、すべての隣接した動作点のうち最も低い総合計CPU/GPU電力消費を生じるので、最適な新しい動作点として識別されてよい。たとえば、分枝限定木探索または任意の他の望ましい方法など、他の最適化方法が実施されてもよいことは、当業者には諒解されよう。
図10は、CPU/GPU並列グラフィックスワークロードのためにCPUおよびGPU DCVSレベルを相互最適化するための、図1のシステムで実施される方法1000の一実施形態を示すフローチャートである。ブロック1002において、CPU/GPU DCVS相互最適化モジュール102は、上述の方法で並列ワークロードを検出する。ブロック1004において、CPU DCVSレベルとGPU DCVSレベルの最適な組合せは、並列ワークロードについてCPU106とGPU104の合わせた電力消費を最小にする入力データ(図3)のいずれかに基づいて決定されてよい。システム100は、共通ハードウェアリソース(ハードウェアデバイス118-図1)のアイドル時間を増やすための適切なDCVSレベルまたは他の動作条件を決定してもよい。図11bに示すように、並列化されたCPU/GPUワークロードと共通ハードウェアリソースのための処理は、ディスプレイ110のディスプレイドライバからの垂直同期(Vsync)信号1109に従って同期されてよい。図11aは、並列ワークロードではなくシリアルワークロードに対して垂直同期が用いられる比較例を示す。(図11bに示すように)相互最適化されたCPU/GPU並列ワークロードで垂直同期を含むことによって、共通ハードウェアリソースのアイドル時間は著しく増え、相互最適化されたCPU/GPU DCVSレベルで共通ハードウェアリソースのはるかに効率的な利用をもたらす可能性があることを諒解されたい。
図11aおよび図11bを参照すると、フレーム1102、1104、1106、および1108中のCPU処理が、参照番号1110a、1110b、1110c、および1110dによって表されている。図11a中のGPU処理(シリアルワークロード)は、参照番号1112a、1112b、1112c、および1112dによって表されている。図11b中のGPU処理(並列ワークロード)は、参照番号1112a、1112b、および1112cによって表され、並列ワークロードに固有の1フレームの遅れを説明している。フレーム1102、1104、1106、および1108中の共通ハードウェアリソースのための処理は、それぞれ参照番号1114a、1114b、1114c、および1114dによって表されている。図11bは、垂直同期をCPU/GPU並列ワークロードと組み合わせることによって、共通ハードウェアリソースのアイドル時間が増える可能性があることを示す(図11b中では図11a中よりも狭い処理ブロックによって示されている)。
上述のように、システム100は任意の望ましいコンピューティングシステムに組み込むことができる。図12は、例示的なポータブルコンピューティングデバイス(PCD)1200に組み込まれたシステム100を示す。システム100のいくつかの構成要素(たとえば、CPU/GPU DCVS相互最適化モジュール102、CPU106、GPU104)はSoC322(図12)に含まれてよいが、他の構成要素(たとえば、メモリ126、ディスプレイ110)はSoC322に結合された外部構成要素であってよいことが容易に諒解されよう。SoC322は、マルチコアCPU1202を含むことができる。マルチコアCPU1202は、第0のコア1210、第1のコア1212、および第Nのコア1214を含むことができる。コアのうちの1つは、GPU104を備え、他のコアのうちの1つまたは複数は、CPU106を備える場合がある。
ディスプレイコントローラ328およびタッチスクリーンコントローラ330は、CPU1202に結合することができる。一方、オンチップシステム322の外部にあるタッチスクリーンディスプレイ1206は、ディスプレイコントローラ328およびタッチスクリーンコントローラ330に結合することができる。
図12は、ビデオエンコーダ334(たとえば位相反転線(PAL)エンコーダ、順次式カラーメモリ(SECAM)エンコーダ、または全米テレビジョン方式委員会(NTSC)エンコーダ)が、マルチコアCPU1202に結合されることをさらに示す。さらに、ビデオ増幅器336がビデオエンコーダ334とタッチスクリーンディスプレイ1206とに結合される。また、ビデオポート338がビデオ増幅器336に結合される。図12に示されるように、ユニバーサルシリアルバス(USB)コントローラ340は、マルチコアCPU1202に結合される。また、USBポート342はUSBコントローラ340に結合される。メモリ104および加入者識別モジュール(SIM)カード346も、マルチコアCPU 1202に結合される場合がある。メモリ104は、SoC322に存在するか、またはSoC322に結合される場合がある。メモリ104は、DRAMメモリシステムを備えることができる。
さらに、図12に示されるように、デジタルカメラ348がマルチコアCPU1202に結合される場合がある。例示的な態様において、デジタルカメラ348は、電荷結合デバイス(CCD)カメラまたは相補型金属酸化物半導体(CMOS)カメラである。
図12にさらに示されるように、ステレオオーディオコーダ-デコーダ(コーデック)350が、マルチコアCPU1202に結合されてよい。さらに、オーディオ増幅器352が、ステレオオーディオコーデック350に結合される場合がある。例示的な態様では、第1のステレオスピーカ354と第2のステレオスピーカ356とがオーディオ増幅器352に結合される。図12は、マイクロフォン増幅器358もステレオオーディオコーデック350に結合される場合があることを示す。加えて、マイクロフォン360が、マイクロフォン増幅器358に結合されてよい。特定の態様では、周波数変調(FM)無線チューナ362をステレオオーディオコーデック350に結合することができる。また、FMアンテナ364が、FM無線チューナ362に結合される。さらに、ステレオヘッドフォン366が、ステレオオーディオコーデック350に結合されてよい。
図12は、無線周波数(RF)トランシーバ368がマルチコアCPU1202に結合される場合があることをさらに示す。RFスイッチ370が、RFトランシーバ368およびRFアンテナ372に結合される場合がある。キーパッド204が、マルチコアCPU1202に結合される場合がある。また、マイクロフォンを備えたモノヘッドセット376が、マルチコアCPU1202に結合される場合がある。さらに、バイブレータデバイス378がマルチコアCPU1202に結合される場合がある。
図12はまた、電源380がSoC322に結合される場合があることを示す。特定の態様では、電源380は、電力を必要とするPCD1200の様々な構成要素に電力を供給する直流(DC)電源である。さらに、特定の態様では、電源は、充電式DCバッテリ、または交流(AC)電源に接続されたAC/DC変換器から得られるDC電源である。
図12は、PCD1200が、データネットワーク(たとえばローカルエリアネットワーク、パーソナルエリアネットワーク、または任意の他のネットワーク)にアクセスするために使用される場合があるネットワークカード388も含む場合があることをさらに示す。ネットワークカード388は、ブルートゥース(登録商標)ネットワークカード、WiFiネットワークカード、パーソナルエリアネットワーク(PAN)カード、パーソナルエリアネットワーク超低電力技術(PeANUT)ネットワークカード、テレビジョン/ケーブル/衛星チューナ、または当技術分野でよく知られている任意の他のネットワークカードとすることができる。さらに、ネットワークカード388は、チップに組み込まれることがある(すなわち、ネットワークカード388は、チップ内のフルソリューションとすることができ、別個のネットワークカード388でなくてもよい)。
図12に示されるように、タッチスクリーンディスプレイ1206、ビデオポート338、USBポート342、カメラ348、第1のステレオスピーカ354、第2のステレオスピーカ356、マイクロフォン360、FMアンテナ364、ステレオヘッドフォン366、RFスイッチ370、RFアンテナ372、キーパッド374、モノヘッドセット376、バイブレータ378、および電源380は、SoC322の外部にあってもよい。
本明細書において説明される方法ステップのうちの1つまたは複数は、上記のモジュールなどのコンピュータプログラム命令としてメモリに記憶される場合があることを理解されたい。これらの命令は、本明細書において説明された方法を実行するために、対応するモジュールと組み合わせてまたは協働して、任意の適切なプロセッサによって実行される場合がある。
本明細書において説明されているプロセスまたはプロセスフローにおける特定のステップは、当然、本発明を説明したように機能させるために他のステップに先行している。しかしながら、そのような順序またはシーケンスが本発明の機能を変えない場合、本発明は、説明されているステップの順序に限定されない。すなわち、本発明の範囲および趣旨から逸脱することなく、いくつかのステップは、他のステップの前に実行される場合があるか、後に実行される場合があるか、または他のステップと並行して(実質的に同時に)実行される場合があることを認識されたい。場合によっては、本発明から逸脱することなく、いくつかのステップは、省略される場合があるか、または実行されない場合がある。さらに、「後に」、「次いで」、「次に」などの言葉は、ステップの順序を限定することを意図していない。これらの言葉は単に、例示的な方法の説明を通して読者を導くために使用される。
さらに、プログラミングに関する当業者は、たとえば、本明細書におけるフローチャートおよび関連する説明に基づいて、難なく、開示した発明を実装するコンピュータコードを書くことができるか、または実装するのに適したハードウェアおよび/もしくは回路を特定することができる。
したがって、プログラムコード命令または詳細なハードウェアデバイスの特定のセットの開示は、本発明をどのように製作および使用するのかを十分に理解するために必要であるとは見なされない。特許請求されるコンピュータ実施プロセスの発明性のある機能は、上記の説明において、かつ様々なプロセスフローを示す場合がある図面とともに、より詳細に説明される。
1つまたは複数の例示的な態様では、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装することができる。ソフトウェアにおいて実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶される場合があるか、またはコンピュータ可読媒体上に送信される場合がある。コンピュータ可読媒体は、コンピュータ記憶媒体と、コンピュータプログラムの1つの場所から別の場所への転送を容易にする任意の媒体を含む通信媒体との両方を含む。記憶媒体は、コンピュータによってアクセスされる場合がある任意の利用可能な媒体であってもよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、NANDフラッシュ、NORフラッシュ、M-RAM、P-RAM、R-RAM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または命令もしくはデータ構造の形態で所望のプログラムコードを搬送もしくは記憶するために使用され、コンピュータによってアクセスされてよい任意の他の媒体を備えてよい。
また、どのような接続も厳密にはコンピュータ可読媒体と呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(「DSL」)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
ディスク(disk)およびディスク(disc)は、本明細書において使用されるときに、コンパクトディスク(disc)(「CD」)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(「DVD」)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、一方、ディスク(disc)は、レーザを用いてデータを光学的に再生する。上記のものの組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
本発明の趣旨および範囲から逸脱することなく、本発明が関係する代替的な実施形態が、当業者には明らかになるであろう。したがって、選択された態様が図示され詳細に説明されてきたが、以下の特許請求の範囲によって規定されるように、本発明の趣旨および範囲から逸脱することなく、態様において種々の置換および改変が行われる場合があることは理解されよう。
100 システム
102 CPU/GPU DCVS相互最適化モジュール
104 GPU
106 CPU
108 HWデバイス
110 ディスプレイ
112 DCVSコントローラ
114 ハードウェアドライバ
116 クロック
118 PMIC
120 グラフィックスワークロードタイプ検出モジュール
122 CPU/GPUシリアルワークロード相互最適化モジュール
124 CPU/GPU並列ワークロード相互最適化モジュール
126 メモリ
128 フレームバッファ
302 CPUアクティビティプロファイラ
304 GPUアクティビティプロファイラ
306 CPU低電力モード
308 GPU低電力モード
310 GPU温度センサ
312 CPU温度センサ
314 静止状態供給電流(IDDQ)リークデータ
316 IDDQリークデータ
322 SoC
328 ディスプレイコントローラ
330 タッチスクリーンコントローラ
334 ビデオエンコーダ
336 ビデオ増幅器
338 ビデオポート
340 ユニバーサルシリアルバス(USB)コントローラ
342 USBポート
346 加入者識別モジュール(SIM)カード
348 デジタルカメラ
350 ステレオ/オーディオコーデック
352 オーディオ増幅器
354 ステレオスピーカ
356 ステレオスピーカ
358 マイクロフォン増幅器
360 マイクロフォン
362 FMチューナ
364 FMアンテナ
366 ステレオヘッドフォン
368 無線周波数(RF)トランシーバ
370 RFスイッチ
372 RFアンテナ
374 キーパッド
376 モノヘッドセット/マイク
378 バイブレータ
380 電源
388 ネットワークカード
1200 携帯コンピューティングデバイス(PCD)
1202 マルチコアCPU
1206 ディスプレイ/タッチスクリーン
1210 第0コア
1212 第1のコア
1214 第Nのコア

Claims (13)

  1. グラフィックスフレーム処理における電力消費を最小にするための方法であって、
    中央処理装置(CPU)およびグラフィックス処理装置(GPU)によって協働的に実行されるグラフィックスフレーム処理を開始するステップと、
    前記グラフィックスフレーム処理と関連付けられるワークロードタイプを検出するステップであって、前記ワークロードタイプが、CPU/GPUシリアルワークロードまたはCPU/GPU並列ワークロードを含む、ステップと、
    グラフィックスワークロードタイプに従って適切な相互最適化アルゴリズムを選択するステップであって、シリアルワークロードのために、CPU/GPUシリアル動的クロックおよび電圧/周波数スケーリング(DCVS)相互最適化アルゴリズムのセットのうちの1つが適用され、並列ワークロードのために、CPU/GPU並列DCVS相互最適化アルゴリズムのセットのうちの1つが適用される、ステップと、
    CPUアクティビティデータおよびGPUアクティビティデータを受信するステップと、
    記GPUおよび前記CPUのために利用可能なDCVSレベルのセットを決定するステップと、
    前記CPUおよびGPUアクティビティデータに基づいて、前記グラフィックスフレーム処理中の前記CPUと前記GPUの合わせた電力消費を最小にする、GPU DCVSレベルとCPU DCVSレベルの最適な組合せを、前記利用可能なDCVSレベルのセットから選択するステップとを含
    方法。
  2. 前記CPUアクティビティデータおよび前記GPUアクティビティデータが、前記CPUおよび前記GPUと関連付けられたそれぞれのアクティビティプロファイラから受信される、請求項1に記載の方法。
  3. 前記CPUおよび前記GPUアクティビティデータが、プロセッサワークロード、アクティブ時間、アイドル時間、および待機時間のうちの1つまたは複数を指定するデータを含む、請求項1に記載の方法。
  4. 少なくとも1つのCPU温度センサおよび少なくとも1つのGPU温度センサのうちの1つまたは複数から温度データを受信するステップと、
    前記GPUおよび前記CPUのうちの1つまたは複数と関連付けられる静止状態供給電流リーク(IDDQ)データを受信するステップと
    をさらに含み、
    前記GPU DCVSレベルと前記CPU DCVSレベルの前記最適な組合せが、前記CPUおよびGPUアクティビティデータ、ならびに前記温度データおよび前記IDDQデータのうちの1つまたは複数に基づいて選択される、請求項1に記載の方法。
  5. 前記グラフィックスフレーム処理が、CPU/GPUシリアルワークロードを含前記GPU DCVSレベルと前記CPU DCVSレベルの前記最適な組合せが、フレームデッドラインを満たしながら、前記CPU/GPUシリアルワークロード中の前記CPUと前記GPUの前記合わせた電力消費を最小にするCPU/GPU周波数空間における動作点を含む、請求項1に記載の方法。
  6. 前記グラフィックスフレーム処理が、CPU/GPU並列ワークロードを含み、
    前記並列ワークロードのための前記CPUおよび前記GPUの前記合わせた電力消費を最小にするCPU DCVSレベルとGPU DCVSレベルの前記決定された最適な組合せが、さらに共通ハードウェアリソースの処理のためのアイドル時間を増やし、
    前記方法は、ディスプレイドライバからの垂直同期信号に従って、前記CPU/GPU並列ワークロードおよび前記共通ハードウェアリソースを同期するステップをさらに含む、
    請求項1に記載の方法。
  7. グラフィックスフレーム処理における電力消費を最小にするためのシステムであって、
    中央処理装置(CPU)およびグラフィックス処理装置(GPU)によって協働的に実行されるグラフィックスフレーム処理を開始するための手段と、
    前記グラフィックスフレーム処理と関連付けられるワークロードタイプを検出するための手段であって、前記ワークロードタイプが、CPU/GPUシリアルワークロードまたはCPU/GPU並列ワークロードを含む、手段と、
    グラフィックスワークロードタイプに従って適切な相互最適化アルゴリズムを選択するための手段であって、シリアルワークロードのために、CPU/GPUシリアル動的クロックおよび電圧/周波数スケーリング(DCVS)相互最適化アルゴリズムのセットのうちの1つが適用され、並列ワークロードのために、CPU/GPU並列DCVS相互最適化アルゴリズムのセットのうちの1つが適用される、手段と、
    CPUアクティビティデータおよびGPUアクティビティデータを受信するための手段と、
    記GPUおよび前記CPUのために利用可能なDCVSのセットを決定するための手段と、
    前記CPUおよびGPUアクティビティデータに基づいて、前記グラフィックスフレーム処理中の前記CPUと前記GPUの合わせた電力消費を最小にする、GPU DCVSレベルとCPU DCVSレベルの最適な組合せを、前記利用可能なDCVSレベルのセットから選択するための手段とを含、システム。
  8. 前記CPUアクティビティデータおよび前記GPUアクティビティデータが、前記CPUおよび前記GPUと関連付けられたそれぞれのアクティビティプロファイラから受信される、請求項7に記載のシステム。
  9. 前記CPUおよびGPUアクティビティデータが、プロセッサワークロード、アクティブ時間、アイドル時間、および待機時間のうちの1つまたは複数を指定するデータを含む、請求項7に記載のシステム。
  10. 少なくとも1つのCPU温度センサおよび少なくとも1つのGPU温度センサのうちの1つまたは複数から温度データを受信するための手段と、
    前記GPUおよび前記CPUのうちの1つまたは複数と関連付けられる静止状態供給電流リーク(IDDQ)データを受信するための手段と
    をさらに含み、
    前記GPU DCVSレベルと前記CPU DCVSレベルの前記最適な組合せが、前記CPUおよびGPUアクティビティデータ、ならびに前記温度データおよび前記IDDQデータのうちの1つまたは複数に基づいて選択される、請求項7に記載のシステム。
  11. 前記グラフィックスフレーム処理が、CPU/GPUシリアルワークロードを含前記GPU DCVSレベルと前記CPU DCVSレベルの前記最適な組合せが、フレームデッドラインを満たしながら、前記CPU/GPUシリアルワークロード中の前記CPUと前記GPUの前記合わせた電力消費を最小にするCPU/GPU周波数空間における動作点を含む、請求項7に記載のシステム。
  12. 前記グラフィックスフレーム処理が、CPU/GPU並列ワークロードを含み、
    前記並列ワークロードのための前記CPUおよび前記GPUの前記合わせた電力消費を最小にするCPU DCVSレベルとGPU DCVSレベルの前記決定された最適な組合せが、さらに共通ハードウェアリソースの処理のためのアイドル時間を増やし、
    前記システムは、ディスプレイドライバからの垂直同期信号に従って、前記CPU/GPU並列ワークロードおよび前記共通ハードウェアリソースを同期するステップをさらに含む、請求項7に記載のシステム。
  13. 実行時に、コンピュータに請求項1〜6のいずれか一項に記載の方法を実行させる命令を含むコンピュータプログラム
JP2016564202A 2014-04-30 2015-04-29 グラフィックスフレーム処理において電力消費を低減させるためのcpu/gpu dcvs相互最適化 Active JP6412162B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/266,685 US9378536B2 (en) 2014-04-30 2014-04-30 CPU/GPU DCVS co-optimization for reducing power consumption in graphics frame processing
US14/266,685 2014-04-30
PCT/US2015/028098 WO2015168189A1 (en) 2014-04-30 2015-04-29 Cpu/gpu dcvs co-optimization for reducing power consumption in graphics frame processing

Publications (3)

Publication Number Publication Date
JP2017515230A JP2017515230A (ja) 2017-06-08
JP2017515230A5 JP2017515230A5 (ja) 2018-05-24
JP6412162B2 true JP6412162B2 (ja) 2018-10-24

Family

ID=53177364

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016564202A Active JP6412162B2 (ja) 2014-04-30 2015-04-29 グラフィックスフレーム処理において電力消費を低減させるためのcpu/gpu dcvs相互最適化

Country Status (7)

Country Link
US (1) US9378536B2 (ja)
EP (1) EP3137965B1 (ja)
JP (1) JP6412162B2 (ja)
KR (1) KR102380576B1 (ja)
CN (1) CN106258011B (ja)
BR (1) BR112016025031B1 (ja)
WO (1) WO2015168189A1 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2786224B1 (en) * 2011-11-30 2020-05-06 Intel Corporation Reducing power for 3d workloads
US9530174B2 (en) * 2014-05-30 2016-12-27 Apple Inc. Selective GPU throttling
US20160077565A1 (en) * 2014-09-17 2016-03-17 Advanced Micro Devices, Inc. Frequency configuration of asynchronous timing domains under power constraints
KR102325453B1 (ko) * 2014-12-04 2021-11-11 삼성전자주식회사 반도체 장치의 동작 방법
US9910475B2 (en) * 2014-12-23 2018-03-06 Intel Corporation Processor core power event tracing
US20170045925A1 (en) * 2015-07-24 2017-02-16 Power It Perfect, Inc. Systems and methods of controlling a power supply signal delivered to an electronic device
US10445850B2 (en) * 2015-08-26 2019-10-15 Intel Corporation Technologies for offloading network packet processing to a GPU
KR102375925B1 (ko) * 2015-08-31 2022-03-17 삼성전자주식회사 Cpu의 작동 방법과 상기 cpu를 포함하는 시스템의 작동 방법
KR102452154B1 (ko) * 2015-10-27 2022-10-07 삼성전자주식회사 영상 처리 장치 및 이를 포함하는 표시 시스템
US10108564B2 (en) * 2016-03-28 2018-10-23 Qualcomm Incorporated Active and stall cycle based dynamic scaling of processor frequency and bus bandwidth
US10296067B2 (en) * 2016-04-08 2019-05-21 Qualcomm Incorporated Enhanced dynamic clock and voltage scaling (DCVS) scheme
CN107610039A (zh) * 2016-07-12 2018-01-19 联发科技股份有限公司 图像处理方法及图像处理装置
US10776895B2 (en) * 2017-02-10 2020-09-15 Apple Inc. GPU power and performance management
US10290289B2 (en) * 2017-04-01 2019-05-14 Intel Corporation Adaptive multibit bus for energy optimization
US10319065B2 (en) 2017-04-13 2019-06-11 Microsoft Technology Licensing, Llc Intra-frame real-time frequency control
CN107465929B (zh) * 2017-07-21 2019-02-01 山东大学 基于hevc的dvfs控制方法、***、处理器及存储设备
US10699369B2 (en) * 2017-12-27 2020-06-30 Intel Corporation Intelligent memory DVFS scheme exploiting graphics inter-frame level correlation
CN111902790B (zh) * 2018-08-30 2022-05-31 华为技术有限公司 一种调频方法、装置及计算机可读存储介质
WO2020102929A1 (en) * 2018-11-19 2020-05-28 Alibaba Group Holding Limited Unified power management
US11423035B2 (en) 2019-02-04 2022-08-23 Pearson Education, Inc. Scoring system for digital assessment quality with harmonic averaging
US11854433B2 (en) * 2019-02-04 2023-12-26 Pearson Education, Inc. Systems and methods for item response modelling of digital assessments
US11181969B2 (en) * 2019-04-02 2021-11-23 Dell Products, Lp Method and system for graphics processor unit busy state detection
CN110308784A (zh) * 2019-04-30 2019-10-08 东莞恒创智能科技有限公司 基于Nvidia TX2的CPU、GPU联合调频节能优化方法
US11100698B2 (en) * 2019-06-28 2021-08-24 Ati Technologies Ulc Real-time GPU rendering with performance guaranteed power management
CN110365962B (zh) * 2019-07-17 2021-08-17 Oppo广东移动通信有限公司 色域转换处理方法、装置以及电子设备
US11093019B2 (en) 2019-07-29 2021-08-17 Microsoft Technology Licensing, Llc Integrated circuit power domains segregated among power supply phases
US11698812B2 (en) * 2019-08-29 2023-07-11 Intel Corporation System, apparatus and method for providing hardware state feedback to an operating system in a heterogeneous processor
US11409341B2 (en) 2019-10-01 2022-08-09 Intel Corporation Repeating graphics render pattern detection
CN112925592A (zh) 2019-12-05 2021-06-08 超威半导体公司 渲染主页面的内核软件驱动的颜色重新映射
US11194377B2 (en) * 2020-01-21 2021-12-07 Dell Products L.P. System and method for optimizing hardware resources for optimal workload performance
KR20210101663A (ko) 2020-02-10 2021-08-19 삼성전자주식회사 프레임의 생성에 소요된 시간 및 최대 허용 시간에 기반하여 프로세싱 유닛을 제어하는 전자 장치 및 전자 장치의 동작 방법
US11467621B2 (en) * 2020-02-28 2022-10-11 Qualcomm Incorporated Computer processing unit intra-frame clock and voltage scaling based on graphics application awareness
US20220044350A1 (en) * 2020-08-07 2022-02-10 Advanced Micro Devices, Inc. Graphics processing unit with selective two-level binning
CN112306689B (zh) * 2020-11-02 2021-05-11 时代云英(深圳)科技有限公司 一种边缘计算***及方法
CN114510139B (zh) * 2020-11-16 2024-06-04 深圳市万普拉斯科技有限公司 一种调频方法、装置及电子设备
CN113138655B (zh) * 2021-04-02 2023-11-28 Oppo广东移动通信有限公司 处理器频率的调整方法、装置、电子设备及存储介质
CN117730294A (zh) * 2021-04-26 2024-03-19 索尼半导体解决方案公司 用于图像传感器应用的动态电压和频率缩放
US20210326191A1 (en) * 2021-06-25 2021-10-21 Intel Corporation Methods and apparatus to align media workloads

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3266110B2 (ja) * 1998-08-14 2002-03-18 日本電気株式会社 ビデオコントローラ及びその消費電力制御回路
US6924781B1 (en) * 1998-09-11 2005-08-02 Visible Tech-Knowledgy, Inc. Smart electronic label employing electronic ink
JP4549652B2 (ja) * 2003-10-27 2010-09-22 パナソニック株式会社 プロセッサシステム
JP4476876B2 (ja) * 2005-06-10 2010-06-09 三菱電機株式会社 並列計算装置
US7529948B2 (en) 2005-08-25 2009-05-05 Apple Inc. Methods and apparatuses for dynamic power estimation
US8566607B2 (en) * 2005-08-26 2013-10-22 International Business Machines Corporation Cryptography methods and apparatus used with a processor
US8284205B2 (en) * 2007-10-24 2012-10-09 Apple Inc. Methods and apparatuses for load balancing between multiple processing units
US7949889B2 (en) * 2008-01-07 2011-05-24 Apple Inc. Forced idle of a data processing system
US8199158B2 (en) * 2008-06-11 2012-06-12 Intel Corporation Performance allocation method and apparatus
US8671413B2 (en) * 2010-01-11 2014-03-11 Qualcomm Incorporated System and method of dynamic clock and voltage scaling for workload based power management of a wireless mobile device
US9086883B2 (en) 2011-06-10 2015-07-21 Qualcomm Incorporated System and apparatus for consolidated dynamic frequency/voltage control
JP5794010B2 (ja) * 2011-07-19 2015-10-14 富士通株式会社 情報処理装置、制御プログラムおよび制御方法
US9442773B2 (en) * 2011-11-21 2016-09-13 Qualcomm Incorporated Thermally driven workload scheduling in a heterogeneous multi-processor system on a chip
US8924758B2 (en) 2011-12-13 2014-12-30 Advanced Micro Devices, Inc. Method for SOC performance and power optimization
US9129394B2 (en) * 2012-12-14 2015-09-08 Microsoft Technology Licensing, Llc CPU-GPU parallelization
US9477568B2 (en) * 2013-09-27 2016-10-25 International Business Machines Corporation Managing interconnect electromigration effects

Also Published As

Publication number Publication date
KR102380576B1 (ko) 2022-03-29
WO2015168189A1 (en) 2015-11-05
EP3137965B1 (en) 2019-02-20
US9378536B2 (en) 2016-06-28
CN106258011B (zh) 2019-07-12
US20150317762A1 (en) 2015-11-05
BR112016025031A2 (pt) 2017-08-15
CN106258011A (zh) 2016-12-28
KR20160147964A (ko) 2016-12-23
BR112016025031B1 (pt) 2022-09-20
EP3137965A1 (en) 2017-03-08
JP2017515230A (ja) 2017-06-08

Similar Documents

Publication Publication Date Title
JP6412162B2 (ja) グラフィックスフレーム処理において電力消費を低減させるためのcpu/gpu dcvs相互最適化
US9626295B2 (en) Systems and methods for scheduling tasks in a heterogeneous processor cluster architecture using cache demand monitoring
KR101799253B1 (ko) 다중 클러스터 이종 프로세서 아키텍처에서 동적 캐시 확장을 제공하기 위한 시스템 및 방법
CN107924225B (zh) 用于动态地调整存储器状态转变定时器的***和方法
JP2013513896A (ja) マルチコア中央処理装置内の複数のコアクロックを非同期で、独立に制御するためのシステムおよび方法
US10064141B2 (en) Core frequency/count decision-based thermal mitigation optimization for a multi-core integrated circuit
US9292356B2 (en) Thread processing on an asymmetric multi-core processor
CN104239153A (zh) 多核cpu负载均衡的方法和装置
US20150199134A1 (en) System and method for resolving dram page conflicts based on memory access patterns
US20170068297A1 (en) Apparatus and method for controlling multi-core of electronic device
US20170212581A1 (en) Systems and methods for providing power efficiency via memory latency control
US9507641B1 (en) System and method for dynamic granularity control of parallelized work in a portable computing device (PCD)
US8539132B2 (en) Method and system for dynamically managing a bus of a portable computing device
US11934248B2 (en) Performance and power tuning user interface
KR102623137B1 (ko) 컴퓨팅 디바이스에서 동적 버퍼 사이징을 위한 시스템 및 방법
KR20170049195A (ko) 전자 기기의 입출력 버스 주파수 설정 방법
US20170366518A1 (en) System and method for accelerating cryptography operations on a portable computing device

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180409

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180409

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180731

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: 20180903

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180927

R150 Certificate of patent or registration of utility model

Ref document number: 6412162

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