JP7449276B2 - 電源管理制御をサポートする電源管理アドバイザ - Google Patents

電源管理制御をサポートする電源管理アドバイザ Download PDF

Info

Publication number
JP7449276B2
JP7449276B2 JP2021510350A JP2021510350A JP7449276B2 JP 7449276 B2 JP7449276 B2 JP 7449276B2 JP 2021510350 A JP2021510350 A JP 2021510350A JP 2021510350 A JP2021510350 A JP 2021510350A JP 7449276 B2 JP7449276 B2 JP 7449276B2
Authority
JP
Japan
Prior art keywords
processing unit
power
state
power state
power management
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
JP2021510350A
Other languages
English (en)
Other versions
JP2021536607A (ja
Inventor
サドウスキー グレッグ
チェン イン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2021536607A publication Critical patent/JP2021536607A/ja
Priority to JP2024031113A priority Critical patent/JP2024063149A/ja
Application granted granted Critical
Publication of JP7449276B2 publication Critical patent/JP7449276B2/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/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
    • 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/3243Power saving in microcontroller unit
    • 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
    • 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/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • 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)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Power Sources (AREA)
  • Supply And Distribution Of Alternating Current (AREA)

Description

中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)及びアクセラレーテッドプロセッシングユニット(APU)等の処理ユニットは、異なる電源管理状態間を遷移することによって、パフォーマンスを向上させたり、省電力化させたりすることができる。例えば、処理ユニットは、処理ユニットが実行する命令がない場合にアイドリングすることによって省電力化することができる。処理ユニットが比較的長時間アイドル状態にある場合、処理ユニットに電流が供給されないように、処理ユニットに供給される電力がパワーゲーティングされ、これにより、待機電力及びリーク電力の消費を削減する。例えば、CPU内のプロセッサコアは、プロセッサコアが所定の時間間隔よりも長い間アイドル状態になっている場合にパワーゲーティングされ得る。ただし、処理ユニットの電源管理状態を変化させる電源管理技術は、状態変化によって節約されるリソースに比べて、大量のシステムリソースを消費する可能性がある。例えば、プロセッサコアをパワーゲーティングすることは、プロセッサコア内のキャッシュをフラッシュし、プロセッサコアの状態を定義する情報をセーブする必要があり、時間及び電力の両方を消費する。低電力状態(アイドル状態又はパワーゲーティング状態等)からアクティブ状態への遷移は、セーブされた状態情報をプロセッサコア内のレジスタにコピーして戻す必要がある場合等に、プロセッサコアをアクティブ状態に戻すためのパフォーマンスコストを必要とする。
一態様では、装置は、処理ユニットの状態履歴を表す状態情報のセットを記憶する複数のレジスタを含む。さらに、この装置は、状態情報のセットに基づいて信号を生成する電源管理アドバイザ(PMA)を含み、信号は、処理ユニットの電力状態遷移が目標結果を達成する確率を示す。一実施形態では、複数のレジスタのうち第1レジスタは、処理ユニットの現在の状態を表す状態情報の第1セットを記憶し、複数のレジスタのうち少なくとも1つの第2レジスタは、処理ユニットの少なくとも1つの前の状態を表す少なくとも1つの状態情報の第2セットを記憶する。この場合、状態情報の第1セットは、処理ユニットが新たな電力状態に遷移することに応じて少なくとも1つの第2レジスタにコピーされ、新たな電力状態に対応する状態情報の新たなセットは、処理ユニットが新たな電力状態に遷移することに応じて第1レジスタに記憶され得る。一実施形態では、状態情報のセットは、処理ユニットの電力状態、処理ユニットに実装されるパフォーマンスカウンタの値、処理ユニットでの実行のためにキューイングされる命令又はドローコールコマンドの特性、処理ユニットの電力状態遷移を開始するかどうかを決定する電源管理コントローラへの入力、電源管理コントローラによって行われる決定を示す情報、処理ユニット上で実行されるアプリケーションのタイプ、アプリケーションによって提供されるヒント、及び、PMAによって生成される信号、のうち少なくとも1つを含む。一実施形態では、PMAは、複数のレジスタ内の状態情報のセットを、状態情報のセットに対応する電力状態遷移の以前の結果と比較することによって、信号の値を生成する。この場合、目標結果は、電力状態遷移に起因するパフォーマンスコスト、又は、増加したエネルギー使用量のうち少なくとも1つを上回る、電力状態遷移に起因するパフォーマンスゲイン又は省電力化のうち少なくとも1つとすることができる。さらに、状態情報のセットに関連する以前の結果は、以前の電力状態遷移に起因するパフォーマンスゲイン又は省電力化が、以前の電力状態遷移に起因する、対応するパフォーマンスコスト又はエネルギー使用量の増加を上回ったかどうかを示すことができる。一実施形態では、PMAは、現在の電力状態から複数の利用可能な電力状態への処理ユニットの電力状態遷移が目標結果を達成する確率を生成するニューラルネットワークを含む。一実施形態では、信号は、処理ユニットの電力状態遷移を開始する電源管理コントローラに提供され、装置は、処理ユニットの電力状態遷移を開始するかどうかを決定するために、PMAによって提供される信号と、電源管理コントローラによって行われる電力状態遷移の決定と、に適用される重みを示すステートマシンをさらに含む。
別の態様では、電源管理コントローラは、電源管理アドバイザ(PMA)によって生成される信号を受信するように構成されたハードウェア回路を含み、PMAは、処理ユニットの現在の状態を表す状態情報の第1セットと、処理ユニットの少なくとも1つの以前の状態を表す少なくとも1つの状態情報の第2セットと、に基づいて信号を生成し、この信号は、処理ユニットの電力状態遷移が目標結果を達成する確率を示す。さらに、ハードウェア回路は、状態情報の第1セットのサブセットを表す信号及び入力に基づいて、処理ユニットの電力状態遷移を開始するように構成されている。一実施形態では、状態情報の第1セット及び第2セットは、処理ユニットの電力状態、処理ユニットに実装されるパフォーマンスカウンタの値、処理ユニットでの実行のためにキューイングされる命令又はドローコールコマンドの特性、電源管理コントローラへの入力、電源管理コントローラによって行われる決定を示す情報、処理ユニット上で実行されるアプリケーションのタイプ、アプリケーションによって提供されるヒント、及び、PMAによって生成される信号、のうち少なくとも1つを含む。ハードウェア回路は、これらの入力に基づいて、処理ユニットの電力状態遷移後の後続の電力状態の予測を生成することができる。一実施形態では、ハードウェア回路は、PMAによって提供される信号と、電源管理コントローラによって行われる予測と、に適用される重みを示す情報を受信するように構成されており、ハードウェア回路は、これらの重みを信号及び予測に適用して、処理ユニットの電力状態遷移を開始するかどうかを決定する。
さらに別の態様によれば、処理ユニットは、電源管理コントローラを含み、電源管理コントローラは、処理ユニットの現在の電力状態を表す入力に基づいて、及び、複数の利用可能な電力状態から、現在の電力状態からの処理ユニットの電力状態遷移後の後続の電力状態の予測を生成する。処理ユニットは、処理ユニットの状態履歴を表す状態情報のセットに基づいて信号を生成する電源管理アドバイザ(PMA)をさらに含み、この信号は、複数の利用可能な電力状態への処理ユニットの電力状態遷移が目標結果を達成する確率を示す。電源管理コントローラは、予測及び信号に基づいて、後続の電力状態を選択する。一実施形態では、処理ユニットは、複数のレジスタをさらに含み、複数のレジスタのうち第1レジスタは、処理ユニットの現在の状態を表す状態情報の第1セットを記憶し、複数のレジスタのうち少なくとも1つの第2レジスタは、処理ユニットの少なくとも1つの以前の状態を表す少なくとも1つの状態情報の第2セットを記憶し、PMAは、複数のレジスタから状態情報の第1セット及び少なくとも1の第2セットにアクセスする。一実施形態では、状態情報の第1セットは、処理ユニットが後続の電力状態に遷移することに応じて、少なくとも1つの第2レジスタにコピーされ、この後続の電力状態に対応する状態情報の新たなセットは、処理ユニットが後続の電力状態に遷移することに応じて第1レジスタに記憶される。一実施形態では、状態情報のセットは、処理ユニットの電力状態、処理ユニットに実装されるパフォーマンスカウンタの値、処理ユニットでの実行のためにキューイングされる命令又はドローコールコマンドの特性、電源管理コントローラへの入力、電源管理コントローラによって行われる決定を示す情報、処理ユニット上で実行されるアプリケーションのタイプ、アプリケーションによって提供されるヒント、及び、PMAによって生成される信号、のうち少なくとも1つを含む。一実施形態では、PMAは、現在の電力状態から複数の利用可能な電力状態への処理ユニットの電力状態遷移が目標結果を達成する確率を生成するニューラルネットワークを含み、処理ユニットは、ステートマシンをさらに含み、このステートマシンは、処理ユニットの電力状態遷移を開始するかどうかを決定するために、PMAによって提供される信号と、電源管理コントローラによって行われる電力状態遷移の決定と、に適用される重みを示す。
添付図面を参照することによって、本開示をより良好に理解することができ、その多くの特徴及び利点が当業者に明らかになる。異なる図面で同じ符号を使用することは、類似又は同一の要素を示す。
いくつかの実施形態による、処理システムのブロック図である。 いくつかの実施形態による、電源管理システムのブロック図である。 いくつかの実施形態による、電源管理アドバイザを含む回路のブロック図である。 いくつかの実施形態による、処理ユニットの状態シーケンスを示す状態図である。 いくつかの実施形態による、電源管理制御システムのブロック図である。 いくつかの実施形態による、適用される重みを決定するステートマシンのブロック図である。
処理ユニット内の電源管理コントローラは、処理ユニットの状態履歴に関係なく現在の状態に基づいて、処理ユニットの電力状態を変化させるかどうかを決定するリアクティブコントローラとして実装される。従来の電源管理コントローラは、GPUの計算ユニットでのアクティビティ、GPUで消費される電力の値、GPUによって引き出される電流の値、温度及び他の状態情報を監視して、コンポーネントに供給されるクロック周波数又は電圧を変更することによって電力状態を変化させるかどうかを決定する。例えば、マルコフ連鎖モデルを使用して電力状態遷移を予測することができ、このマルコフ連鎖モデルは、各イベントの確率が以前のイベントで達成された状態のみに依存する可能性のあるイベントのシーケンスを記述する確率モデルである。従来の電源管理コントローラは、いくつかの状況において、例えば、省電力化又はパフォーマンスゲインを生じることなく、パフォーマンスコスト又はエネルギー使用量の大幅な増加を招く電力状態遷移を引き起こすことによって、誤った決定を下す。
図1~図6は、処理ユニット内の従来のローカルな電源管理コントローラをサポートする電源管理アドバイザを開示する。電源管理アドバイザは、処理ユニットの現在の状態、及び、処理ユニットの1つ以上の以前の状態に基づいて、信号(本明細書では「アドバイス」と呼ばれる)を生成する。このアドバイスは、ローカル電源管理コントローラによって決定された電力状態遷移が目標結果(例えば、電力状態遷移に起因するパフォーマンスゲイン又は省電力化が電力状態遷移のコストを上回る等)を達成する確率を示す。いくつかの実施形態では、現在の状態及び以前の状態は、対応する電力状態、パフォーマンスカウンタの値、処理ユニットでの実行のためにキューイングされる命令又はドローコールコマンドの特性、ローカル電源管理コントローラへの入力、ローカル電源管理コントローラによって行われる決定、アプリケーションのタイプ、アプリケーションのヒント、及び、電源管理アドバイザで生成されるアドバイス、によって定義される。電源管理アドバイザは、処理ユニットの現在の状態及び以前の状態によって表される状態情報シーケンスを、電源管理コントローラによってトリガされる、対応する電力状態遷移の以前の結果と比較することによって、アドバイスの値を決定する。いくつかの実施形態では、以前の結果は、以前の電力状態遷移からのパフォーマンスゲイン又は省電力化が、対応するパフォーマンスコスト又はエネルギー使用量の増加を上回ったかどうかを示す。
電源管理アドバイザのいくつかの実施形態は、処理ユニットの現在の状態シーケンス及び以前の状態シーケンスに基づいて、利用可能な電力状態のうち何れが次の電力状態であるかを示す確率を生成するニューラルネットワークを実装する。この確率は、利用可能な各電力状態への処理ユニットの電力状態遷移が目標結果を達成する可能性(例えば、パフォーマンスゲイン又は省電力化が、対応するパフォーマンスコスト又はエネルギー使用量の増加を上回る等の可能性)を示す。以前の電力状態の変化の有効性を示す、シミュレーション、又は、オンザフライフィードバックによって生成されたトレーニングデータセットを使用して、ニューラルネットワークをトレーニングすることができる。電源管理アドバイザは、重みを示すステートマシンを実装することもできる。これらの重みは、電源管理アドバイザによって生成されたアドバイスと、ローカル電源管理コントローラによって行われる決定と、に適用される。ローカル電源管理コントローラのいくつかの実施形態は、重みを、アドバイス、及び、次の電力状態を決定するための決定に適用する。
図1は、いくつかの実施形態による、処理システム100のブロック図である。処理システム100は、メモリ105、又は、例えばダイナミックランダムアクセスメモリ(DRAM)等の非一時的なコンピュータ可読媒体を使用して実装される他のストレージコンポーネントを含むか、このメモリ又は他のストレージコンポーネントへのアクセスを有する。ただし、メモリ105は、スタティックランダムアクセスメモリ(SRAM)、不揮発性RAM等を含む他のタイプのメモリを使用して実装されてもよい。処理システム100は、メモリ105等のように、処理システム100内に実装されるエンティティ間の通信をサポートするためのバス110を含む。処理システム100のいくつかの実施形態は、分かり易くするために図1に示されていない他のバス、ブリッジ、スイッチ、ルータ等を含む。
処理システム100は、ディスプレイ120に提示される画像をレンダリングするように構成されたグラフィックスプロセッシングユニット(GPU)115を含む。例えば、GPU115は、オブジェクトをレンダリングして、ディスプレイ120に提供される画素値を生成することができ、ディスプレイ120は、画素値を使用して、レンダリングされたオブジェクトを表す画像を表示する。GPU115のいくつかの実施形態は、汎用コンピューティングにも使用することができる。図示した実施形態では、GPU115は、命令を同時又は並列に実行するように構成された複数の処理要素(明確にするために図1に示されていない)を実装する。図示した実施形態では、GPU115は、バス110を介してメモリ105と通信する。しかし、GPU115のいくつかの実施形態は、直接接続を介して、又は、他のバス、ブリッジ、スイッチ、ルータ等を介して、メモリ105と通信する。GPU115は、メモリ105に記憶された命令を実行することができ、GPU115は、実行した命令の結果等の情報をメモリ105に記憶することができる。例えば、メモリ105は、GPU115によって実行されたプログラムコードからの命令のコピー125を記憶することができる。
また、処理システム100は、中央処理装置(CPU)130を含み、中央処理装置(CPU)130は、バス110に接続され、バス110を介してGPU115及びメモリ105と通信する。CPU130は、メモリ105に記憶されたプログラムコード135等の命令を実行することができ、CPU130は、実行した命令の結果等の情報をメモリ105に記憶することができる。また、CPU130は、GPU115にドローコールを発行することによって、グラフィックス処理を開始することができる。
入力/出力(I/O)エンジン140は、ディスプレイ120、並びに、キーボード、マウス、プリンタ及び外部ディスク等の処理システム100の他の要素に関連する入出力動作を処理する。I/Oエンジン140は、I/Oエンジン140がメモリ105、GPU115又はCPU130と通信することができるように、バス110に結合されている。図示した実施形態では、I/Oエンジン140は、コンパクトディスク(CD)、デジタルビデオディスク(DVD)等の非一時的なコンピュータ可読媒体を使用して実装された外部ストレージコンポーネント145に記憶された情報を読み出すように構成されている。また、I/Oエンジン140は、GPU115又はCPU130による処理結果等の情報を、外部ストレージコンポーネント145に書き込むことができる。
GPU115のいくつかの実施形態は、CPU130に実装されたオペレーティングシステム(OS)によって提供されるポリシー等の電源管理ポリシーを実行する電源管理コントローラ(PMC)150を実装する。PMC150は、システム管理ユニットとも呼ばれる(又は、その一部として実装される)ことができる。PMC150のいくつかの実施形態は、OSによって設定されたポリシーに従って、GPU115内のエンティティによる消費電力又はGPU115内の異なる位置での温度等のようにPMC150に提供される情報を使用して、GPU115の熱及び電力条件を管理する。PMC150は、例えば、GPU115又はGPU115に実装された計算ユニットに供給される動作周波数又は動作電圧を変更する等によって、GPU115の電力状態を制御する。また、CPU130のいくつかの実施形態は、CPU130の電力状態を制御するための個別のPMC155を実装する。
PMC150は、GPU115の電源管理状態間の電力状態遷移を開始して、省電力化し、パフォーマンスを向上し、又は、他の目標結果を達成する。電源管理状態は、アクティブ状態、アイドル状態、パワーゲーティング状態、及び、異なる電力量を消費するいくつかの他の状態を含むことができる。例えば、GPU115の電力状態は、動作状態、停止(halt)状態、クロック停止状態、全ての内部クロックが停止したスリープ状態、低電圧のスリープ状態、及び、パワーダウン状態を含むことができる。いくつかの実施形態では、追加の電力状態も利用可能であり、クロック周波数、クロック中断及び供給電圧の異なる組み合わせによって定義される。
PMC150は、遷移のパフォーマンス又は電力コストを遷移のパフォーマンスゲイン又は省電力化と比較することによって、電源管理状態間の遷移を開始するかどうかを決定する。例えば、PMC150は、マルコフ連鎖モデルを適用して、GPU115の現在の状態に基づいて、電力状態間を遷移するかどうかを決定することができる。ただし、PMC150は、GPU115の現在の状態に関するローカル情報のみを使用して、電力状態遷移を開始するかどうかを決定する。PMC150は、状態履歴(例えば、GPU115の以前の状態に関する知識等)を利用して、電力状態遷移を開始しない。例えば、マルコフ連鎖モデルは、以前の電力状態遷移で達成された状態のみに基づいて、1つの電力状態から別の電力状態への遷移の確率を決定する。
電力状態遷移は、パフォーマンスの向上又は消費電力の削減等の目標結果を達成するために実行されるが、パフォーマンスの低下又は一時的な消費電力の増加等の対応するコストも生じる。例えば、低いクロック周波数状態から高いクロック周波数状態に遷移することによって、消費電力の増加というコストと引き換えにパフォーマンスを向上させることが期待される。例えば、GPU115をパワーダウンして省電力化することによって、GPU115の電源が再び投入された場合に、一部のキャッシュをリストアするだけでなく、GPU115が使用するキャッシュをフラッシュする必要もある。少なくとも部分的に、ローカル情報のみに基づいて電力状態遷移を開始するという要件に起因して、PMC150は、いくつかの状況において(例えば、大幅なパフォーマンスコストが生じる電力状態遷移をトリガすることによって、又は、対応する省電力化又はパフォーマンスゲインを生じさせることなくエネルギー消費量を増加させる電力状態遷移をトリガすることによって)、誤った決定を行う。
GPU115は、電源管理アドバイザ(PMA)160を含み、このPMA160は、目標結果を達成するために、電力状態遷移の確率を示す信号(本明細書では「アドバイス」と呼ばれる)を生成することによって、PMC150の動作をサポートする。PMA160は、GPU115に従属している。本明細書で使用される場合、「従属」という用語は、例えば、GPU115からの命令又はシグナリング等に応じて、PMA160がGPU115の制御下で動作することを示す。さらに、PMA160によって生成された信号は、GPU115に提供され、バス110等の中間デバイスを通過しない。図示した実施形態では、PMA160は、GPU115に統合されている。ただし、PMA160のいくつかの実施形態は、GPU115の外部に実装されており、ワイヤ、トレース又は他の接続を使用してGPU115と相互接続される。GPU115に従属するPMA160を実装することによって、PMA160とGPU115との間で交換される信号のレイテンシは、例えばバス110を介してGPU115とCPU130との間で交換される信号と比較して、大幅に短縮される。
PMA160は、GPU115の現在の状態、及び、GPU115の1つ以上の以前の状態についての状態情報に基づいて、アドバイスを生成する。いくつかの実施形態では、PMA160は、GPU115の状態履歴を表す現在の状態、及び、以前の状態に対応する電力状態情報のセットを記憶するために使用されるレジスタセットを含むか、そのレジスタセットへのアクセスを有する。このアドバイスはPMC150に提供され、PMC150は、このアドバイスを電力状態遷移の予測と共に使用して、電力状態遷移を開始するかどうかを決定し、開始する場合には、後続の電力状態を決定する。また、CPU130のいくつかの実施形態は、CPU130の状態履歴に基づいてアドバイスを生成することによってPMC155の動作をサポートするPMA165を実装する。PMA165は、CPU130に従属している。
PMA160又はPMA165のいくつかの実施形態は、本明細書で説明するように、人工ニューラルネットワークを使用して実装される。リカレントニューラルネットワーク(recurrent neural network)、残差ニューラルネットワーク(residual neural network)又は他のタイプの強化学習構造として実装することができる人工ニューラルネットワークは、対応するパラメータセットを使用して構成されたプログラムコード170として表される。したがって、人工ニューラルネットワークは、GPU115若しくはCPU130上、又は、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、プロセッシングインメモリ(PIM)等を含む他の処理ユニット上で実行することができる。人工ニューラルネットワークが、対応する既知のデータセットを使用してトレーニングすることができる既知関数を実装する場合、GPU115又はCPU130上で実行される人工ニューラルネットワークに既知のトレーニングデータセットの入力値を提供し、人工ニューラルネットワークの出力値と、既知のトレーニングデータセットのラベル付き出力値と、を比較することによって、人工ニューラルネットワークがトレーニングされる(すなわち、人工ニューラルネットワークを定義するパラメータの値が確立される)。比較に基づいて誤差値が決定され、人工ニューラルネットワークを定義するパラメータの値を変更するために逆伝播される。このプロセスは、パラメータの値が収束基準を満たすまで繰り返される。
いくつかの実施形態では、CPU130は、GPU115に関連するPMA160によってPMC150に提供されるアドバイスを補足する追加のソフトウェアアドバイザを実装する。例えば、CPU130は、電力状態遷移の予測の有効性を推定することができる追加のニューラルネットワークを実装することができる。CPU130の追加の処理能力によって、追加のアドバイザは、より長い状態履歴、より多くの状態情報、又は、これらの組み合わせを考慮して、予測された電力状態遷移が目標結果を達成する可能性が高いかどうかを決定する。追加のアドバイザは、処理システム100の外部(例えば、処理システム100と通信するクラウドシステム上等)に実装されてもよい。
図2は、いくつかの実施形態による、電源管理システム200のブロック図である。電源管理システム200は、図1に示すPMC150,155及びPMA160,165のいくつかの実施形態を実装するために使用される電源管理コントローラ205及び電源管理アドバイザ210を含む。
電源管理コントローラ205は、電源管理システム200を実装する処理ユニットの現在の電力状態に対応する「ローカル」情報に基づいて、後続の電力状態を表す信号215を生成するので、ローカル電源管理コントローラ205と呼ばれる。ローカル情報は、処理ユニット内の1つ以上の温度、処理ユニットによって消費される電力、処理ユニットによって引き出される電流、及び、他のアクティビティを示す情報を含む。ローカル情報は、入力220として提供される。電源管理コントローラ205は、処理ユニットの電力状態履歴に関連する以前の状態情報を考慮しない。例えば、電源管理コントローラ205は、マルコフ連鎖モデルを実装して、処理ユニットの現在の状態に基づいて信号215を決定することができる。
電源管理アドバイザ210は、処理ユニットの1つ以上の状態遷移が目標結果を達成する1つ以上の確率を示すアドバイス225を生成するので、グローバル電源管理アドバイザ210と呼ばれる。例えば、目標結果がパフォーマンスの向上であり、処理ユニットが複数の利用可能な電力状態を有する場合、アドバイス225は、利用可能な各電力状態への遷移が目標のパフォーマンス向上を達成する確率を示す。本明細書で説明するように、消費電力の削減等の他の目標結果や目標結果の組み合わせも使用することができる。電源管理アドバイザ210は、処理ユニットの状態及び処理ユニットの状態履歴を特徴付けるグローバル情報に基づいて、アドバイス225を生成する。したがって、電源管理アドバイザ210は、ローカル電源管理コントローラ205と同じ入力220と、処理ユニットの現在の状態を特徴付ける追加のグローバル状態情報及び処理ユニットの状態履歴を特徴付ける情報を含む追加の入力230と、を受信する。処理ユニットの現在の状態及び以前の状態を特徴付ける情報は、処理ユニットの電力状態、処理ユニットに実装されるパフォーマンスカウンタの値、処理ユニットで実行されるためにキューイングされる命令又はドローコールコマンドの特性、処理ユニットの電力状態遷移を開始するかどうかを決定する電源管理コントローラ205への入力220、信号215等のように電源管理コントローラによって行われる決定を示す情報、処理ユニット上で実行されるアプリケーションのタイプ、アプリケーションによって提供されるヒント、及び、処理ユニットの以前の状態について電源管理アドバイザ210によって生成される信号を含むが、これらに限定されない。
グローバル電源管理アドバイザ210によって生成されるアドバイス225は、追加の入力として電源管理コントローラ205に提供され、電源管理コントローラ205は、入力220と共にアドバイス225を使用して、処理ユニットの後続の電力状態を示す信号215を生成する。電源管理コントローラ205のいくつかの実施形態は、入力220に基づいて後続の電力状態の予測を生成する。次に、電源管理コントローラ205は、アドバイス225に基づいて、予測を受け入れるか拒否し、新たな予測を生成する。例えば、電源管理コントローラ205が、アイドル状態への遷移が省電力化するであろうと予測するが、アドバイス225が、現在の状態からアイドル状態への以前の遷移が正味の省電力化をもたらさなかったことを示す場合、電源管理コントローラ205は、予測を拒否し、処理ユニットを現在のアクティブ状態に維持することができる。別の例では、状態変化が目標結果を達成しない確率が少なくとも50%であることをアドバイス225が示す場合、電源管理コントローラ205は、予測を拒否する。電源管理アドバイザ210のいくつかの実施形態は、電源管理コントローラ205及びアドバイス225によって行われる予測に適用される重みを示すステートマシンを含む。これらの重みは、信号225を介して電源管理コントローラ205に伝達される。以下に説明するように、電源管理コントローラ205は、重みを使用して、処理ユニットの電力状態遷移を開始するかどうかを決定する。
図3は、いくつかの実施形態による、電源管理アドバイザ305を含む回路300のブロック図である。電源管理アドバイザ305は、図1に示すPMA160,165及び図2に示すグローバル電源管理アドバイザ210のいくつかの実施形態を実装するために使用される。電源管理アドバイザ305のいくつかの実施形態は、以下に説明するように、畳み込みニューラルネットワーク(CNN)等のニューラルネットワークを実装する。
回路300は、レジスタ310,311,312のセットを含み、これらは、本明細書では「レジスタ310~312」と総称される。レジスタ310~312の各々は、処理ユニットの対応する電力状態に関する状態情報を記憶する。レジスタ310は、処理ユニットの現在の電力状態に関する状態情報を記憶し、レジスタ311は、処理ユニットの以前の電力状態に関する状態情報を記憶し、レジスタ312は、レジスタ311に記憶された状態情報に対応する、以前の電力状態に先行する処理ユニットの別の以前の電力状態に関する状態情報を記憶する。レジスタ310~312に記憶された状態情報は、処理ユニットの現在の電力状態に関連するパフォーマンスカウンタの値と、対応するローカル電源管理コントローラへの入力と、電源管理コントローラによって選択される後続の電力状態を示す情報と、電源管理アドバイザ305によって生成されるアドバイスの値と、エネルギー、電力及びパフォーマンスに関連するアプリケーションヒント等と、を含む。3つのレジスタ310~312が図3に示されているが、回路300のいくつかの実施形態は、対応する処理ユニットについてより多い又はより少ない状態情報のセットを記憶するために使用される、より多い又はより少ないレジスタを含む。
レジスタ310~312に記憶されるパフォーマンスカウンタは、電源管理アドバイザ305に関連する処理ユニット内のハードウェアブロックに実装される。いくつかの実施形態では、比較的大量の電力を消費するブロックからのパフォーマンスカウンタの値は、レジスタ310~312に記憶される。例えば、レジスタ310~312は、シェーダアレイ、テクスチャキャッシュ階層、DRAM等からのパフォーマンスカウンタの値を記憶することができる。パフォーマンスカウンタは、電源管理アドバイザ305に入力される特徴として使用され、これらの値は、電源管理アドバイザ305に実装されるニューラルネットワークのトレーニングサンプルとして使用される。ニューラルネットワークの推論中に、又は、ニューラルネットワークの予測ステージ中に、パフォーマンスカウンタの現在の値は、ニューラルネットワークへの入力として使用される。パフォーマンスカウンタは、システムレベルの状態及びパフォーマンスを示す情報を提供する。例えば、処理ユニットの入力コマンドバッファ内のドローパケットを監視するパフォーマンスカウンタは、電力状態の決定に影響を与え得る。パフォーマンスカウンタが多くのドローパケットを示す場合、電力状態をより低い電力状態に変化させない方がよい。処理ユニットは、ドローパケットを処理するために、より高い電力状態にある必要がある。このパフォーマンスカウンタ情報は、ローカルパフォーマンス管理コントローラでは利用できない。
レジスタ310~312に記憶された状態情報は、更新信号314に応じて更新される。いくつかの実施形態では、更新信号314は、電力状態遷移に応じて、レジスタ310~312の更新をトリガする。レジスタ310~312を更新することは、情報を、レジスタ310~312から、次の以前の状態を表すレジスタにシフトすることを含む。例えば、レジスタ310内の状態情報がレジスタ311にシフトされ、レジスタ311内の状態情報がレジスタ312にシフトされ、レジスタ312内の状態情報が削除されるか別のレジスタ(図3に示されていない)にシフトされる。「新たな」現在の状態、すなわち、更新信号314をトリガした電力状態遷移に続く処理ユニットの状態に関する状態情報が、レジスタ310に記憶される。
レジスタ310~312内の状態情報は、入力ベクトル回路315に提供され、この入力ベクトル回路315は、提供された状態情報に基づいて入力ベクトル320を生成する。入力ベクトル320は、時間間隔のシーケンスでの処理ユニットの対応する電力状態のシーケンスからの状態情報を含むので、処理ユニットの状態履歴を表す。入力ベクトル回路315のいくつかの実施形態は、レジスタ310~312に記憶された状態情報の値を連結することによって入力ベクトル320を生成する。ただし、入力ベクトル回路315の他の実施形態は、レジスタ310~312に記憶された状態情報の様々な組み合わせを使用して、入力ベクトル320を生成する。入力ベクトル320は、電源管理アドバイザ305に提供される。
以前の状態遷移の計算された有効性を表す情報325は、トレーニングラベル回路330に提供され、このトレーニングラベル回路330は、以前の状態遷移が有効であったかどうかを示すラベル335を生成する。ラベル335のいくつかの実施形態は、以前の状態遷移が、パフォーマンスゲイン、エネルギー使用量の削減、これらの組み合わせ、又は、他の結果等の目標結果をもたらしたかどうかを示すラベルを含む。トレーニングラベル回路330は、ラベル335を電源管理アドバイザ305に提供し、電源管理アドバイザ305は、ラベル335を入力ベクトル320と共に使用して、異なる電力状態遷移が目標結果をもたらす確率を決定する。本明細書で説明するように、電源管理アドバイザ305のいくつかの実施形態は、強化学習構造のニューラルネットワークとして実装される。電源管理アドバイザ305に実装されるニューラルネットワークの例は、リカレントニューラルネットワーク又は残留ニューラルネットワークを含むが、これらに限定されない。ニューラルネットワークは、電力状態遷移のパターン、及び、それらのパターンが目標結果をもたらす確率を学習する。したがって、電源管理アドバイザ305は、入力320によって表される状態履歴を学習パターンと比較することによって、目標結果を達成する確率を表す信号340を生成することができる。ニューラルネットワークのトレーニングは、トレーニングデータセット、電源管理アドバイザ305によって生成される信号340のフィードバック、又は、これらの組み合わせを使用して実行される。
図4は、いくつかの実施形態による、処理ユニットの状態シーケンスを示す状態図400である。状態図400は、図1に示すGPU115又はCPU130のいくつかの実施形態の状態を表す。状態図400は、現在の状態401、以前の状態402、前の以前の状態403、さらに前の以前の状態404、及び、他の状態405,406を示し、これらは本明細書では「状態401~406」と総称される。状態図400は、以前の状態402から現在の状態401への遷移410等の状態間の遷移を示す。処理ユニットを現在の状態401に戻す遷移415等の遷移も図4に示されている。状態401~406は、本明細書で説明するように、パフォーマンスカウンタの値及び他の状態情報によって特徴付けられる。状態401~406は、クロック速度、電圧、周波数等の制御にも関連付けられている。したがって、遷移410等の遷移は、制御信号の変化の原因となり、クロック速度、電圧、周波数、他のパラメータ値、又は、これらの組み合わせを変化させることができる。いくつかの実施形態では、状態情報は、クロック速度ドメイン、周波数/電圧ドメイン、電力ドメイン等のような処理ユニットの複数のドメインを特徴付ける。
図1に示すPMC150,155又は図2に示すローカル電源管理コントローラ205等の電源管理コントローラは、ローカル情報を使用して、状態401~406間の遷移を予測する。例えば、電源管理コントローラは、マルコフ連鎖モデルを実装して、電力状態遷移の確率を予測することができる。マルコフ連鎖は、各イベントの確率が以前のイベントで達成された状態のみに依存する、可能なイベントシーケンスを記述する確率モデルである。これらのイベントは、チップのハードウェアブロック(図1に示すGPU115又はCPU130等)の状態、又は、電源管理コントローラに関連する他のエンティティの状態である。電源管理コントローラは、現在の状態401、及び、現在の状態401から後続の状態への遷移の確率のセットによって後続の状態を予測するように、マルコフ連鎖モデルを生成する。状態遷移の予測(例えば、確率)は、実行時に更新される。
図5は、いくつかの実施形態による、電源管理制御システム500のブロック図である。電源管理制御システム500は、図1に示す処理システム100のいくつかの実施形態に実装される。電源管理制御システム500は、ローカル電源管理コントローラ505と、ニューラルネットワーク510を使用して実装される電源管理アドバイザと、を含む。ローカル電源管理コントローラ505は、図1に示すPMC150,155及び図2に示すローカル電源管理コントローラ205のいくつかの実施形態を実装するために使用される。ニューラルネットワーク510は、図1に示すPMA160,165、図2に示すグローバル電源管理アドバイザ210、及び、図3に示すPMA305のいくつかの実施形態を実装するために使用される。電源管理制御システム500を実装する処理ユニットは、8つの利用可能な電力状態511,512,513,514,515,516,517,518を含み、これらは、本明細書では「電力状態511~518」と総称される。
電源管理コントローラ505は、現在の電力状態に関するローカル状態情報(図示した実施形態では電力状態511)に基づいて、電力状態511~518の間の状態遷移の確率を含む予測520を生成する。いくつかの実施形態では、電源管理コントローラ505は、現在の電力状態511から処理ユニットの利用可能な電力状態511~518へのマルコフ連鎖状態遷移確率(X[0..N-1])を使用して、予測520を生成する。Nの値は、一部のGPU実装に利用可能な8つの電力状態等の電力状態の数である。
ニューラルネットワーク510は、後続の状態への遷移の確率を表すアドバイス525を生成する。例えば、これらの確率は、次のように表される。
Figure 0007449276000001

式中、Nは電力状態の数であり、Sは、処理ユニットの現在の電力状態及び1つ以上の以前の電力状態における処理ユニットの状態を表し、Mは、パフォーマンスカウンタの現在及び以前の値によって示されるマシン状態を表し、Aは、アプリケーションのタイプ(例えば、グラフィックス又は計算)、1つ以上のコマンドバッファでのコマンドヒント(対応するドライバによって伝えられ得る)、命令キュー内のシェーダ命令等のような現在及び以前のアプリケーション情報を表す。したがって、ニューラルネットワーク510によって生成されるアドバイス525は、本明細書で説明するように、パフォーマンスカウンタ等の処理ユニットのグローバルパラメータと同様に、処理ユニットの状態履歴の関数である。
電力状態511~518間の遷移の全確率は、確率X(従来のマルコフ連鎖を用いて電源管理コントローラ505によって生成される)、及び、PNN(状態履歴に基づいてニューラルネットワーク510によって生成される)を組み合わせることによって形成される。ローカル及びグローバル情報を使用して電源管理コントローラ505によって生成される状態遷移の確率は、以下のように表される。
Figure 0007449276000002
いくつかの実施形態では、確率は、等しい重み(例えば、全確率が確率P及びPNNの平均に等しい)と組み合わされる。いくつかの実施形態では、電源管理システム500に実装されるステートマシンを使用して予測される重み等の異なる重みが、これらの確率P及びPNNに適用される。
図6は、いくつかの実施形態による、適用される重みを決定するステートマシン600のブロック図である。ステートマシン600は、図1に示すPMA160,165、図2に示すグローバル電源管理アドバイザ210、図3に示すPMA305、又は、図5に示すニューラルネットワーク510のいくつかの実施形態に実装される。ステートマシン600は、4つの状態601,602,603,604を含み、これらは、本明細書では「状態601~604」と総称される。状態601は、ローカル電源管理コントローラによって生成される予測に適用される値1を含む第1重み(例えば、マルコフ連鎖確率X[0..N-1])と、グローバル電源管理アドバイザによって生成されるアドバイスに適用される値0を含む第2重み(例えば、状態履歴に基づいてニューラルネットワーク510によって生成される確率PNN)と、に関連付けられる。状態602では、第1重みは、ローカル電源管理コントローラによって生成される予測に適用される値0.5を有し、第2重みは、グローバル電源管理アドバイザによって生成されるアドバイスに適用される値0.5を有する。状態603では、第1重みは値0を有し、第2重みは値1を有する。状態604では、第1重みは値0.5を有し、第2重みは値0.5を有する。
状態601~604間の遷移は、以前の状態遷移で目標結果が達成されたかどうかに基づいて決定される。例えば、パフォーマンスゲイン又は省電力化が、電力状態遷移のコストを上回る量だけ増加する場合に、目標結果が達成される。パフォーマンスゲイン又は省電力化が電力状態遷移のコストを上回らない場合には、目標結果が達成されない。遷移610によって示すように目標結果が達成される場合、ステートマシン600は、状態601に留まる。遷移611によって示すように目標結果が達成されていない場合、ステートマシン600は、状態601から状態602に遷移する。遷移612によって示すように目標結果が達成される場合、ステートマシン600は、状態602に留まる。遷移613によって示すように目標結果が達成されていない場合、ステートマシン600は、状態602から状態603に遷移する。遷移614によって示すように目標結果が達成される場合、ステートマシン600は、状態603に留まる。遷移615によって示すように目標結果が達成されていない場合、ステートマシン600は、状態603から状態604に遷移する。遷移616によって示すように目標結果が達成される場合、ステートマシン600は、状態604に留まる。遷移617によって示すように目標結果が達成されていない場合、ステートマシン600は、状態601から状態601に遷移する。
状態601~604によって定義される重みの値は、ローカル電源管理コントローラによって予測される確率Pと、グローバル電源管理アドバイザによって生成されるアドバイスでの確率PNNとを組み合わせるために使用される。いくつかの実施形態では、グローバル電源管理アドバイザは、アドバイスと共に(又は、その一部として)、ローカル電源管理コントローラに重みを提供する。ローカル電源管理コントローラは、重みを確率に適用することによって、電力状態遷移を開始するかどうかを決定する。異なる電力状態への遷移の全確率は、次の式で与えられる。
Figure 0007449276000003
ステートマシン600のいくつかの実施形態は、ローカル電源管理コントローラ及びグローバル電源管理アドバイザによって生成される確率に適用される重みの異なる組み合わせを表す、より多い又はより少ない状態を実装する。
いくつかの実施形態では、上記の装置及び技法は、図1~図6を参照して上述した電源管理システム等の1つ以上の集積回路(IC)デバイス(集積回路パッケージ又はマイクロチップとも呼ばれる)を含むシステムに実装される。これらのICデバイスの設計及び製造には、電子設計自動化(EDA)及びコンピュータ支援設計(CAD)ソフトウェアツールが使用される。これらの設計ツールは、通常、1つ以上のソフトウェアプログラムとして表される。1つ以上のソフトウェアプログラムは、回路を製造するための製造システムを設計又は適合するための処理の少なくとも一部を実行するように1つ以上のICデバイスの回路を表すコードで動作するようにコンピュータシステムを操作する、コンピュータシステムによって実行可能なコードを含む。このコードは、命令、データ、又は、命令及びデータの組み合わせを含むことができる。設計ツール又は製造ツールを表すソフトウェア命令は、通常、コンピューティングシステムがアクセス可能なコンピュータ可読記憶媒体に記憶される。同様に、ICデバイスの設計又は製造の1つ以上のフェーズを表すコードは、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体に記憶されてもよいし、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体からアクセスされてもよい。
コンピュータ可読記憶媒体は、命令及び/又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の非一時的な記憶媒体又は非一時的な記憶媒体の組み合わせを含む。かかる記憶媒体には、限定されないが、光媒体(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク)、磁気媒体(例えば、フロッピー(登録商標)ディスク、磁気テープ、磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)若しくはキャッシュ)、不揮発性メモリ(例えば、読取専用メモリ(ROM)若しくはフラッシュメモリ)、又は、微小電気機械システム(MEMS)ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体は、コンピュータシステムに内蔵されてもよいし(例えば、システムRAM又はROM)、コンピュータシステムに固定的に取り付けられてもよいし(例えば、磁気ハードドライブ)、コンピュータシステムに着脱可能に取り付けられてもよいし(例えば、光学ディスク又はユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)、有線又は無線のネットワークを介してコンピュータシステムに接続されてもよい(例えば、ネットワークアクセス可能なストレージ(NAS))。
いくつかの実施形態では、上記の技術のいくつかの態様は、ソフトウェアを実行する処理システムの1つ以上のプロセッサによって実装されてもよい。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶され、又は、非一時的なコンピュータ可読記憶媒体上で有形に具現化された実行可能命令の1つ以上のセットを含む。ソフトウェアは、1つ以上のプロセッサによって実行されると、上記の技術の1つ以上の態様を実行するように1つ以上のプロセッサを操作する命令及び特定のデータを含むことができる。非一時的なコンピュータ可読記憶媒体は、例えば、磁気若しくは光ディスク記憶デバイス、例えばフラッシュメモリ、キャッシュ、ランダムアクセスメモリ(RAM)等のソリッドステート記憶デバイス、又は、他の1つ以上の不揮発性メモリデバイス等を含むことができる。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈若しくは実行可能な他の命令フォーマットであってもよい。
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。

Claims (20)

  1. 処理ユニットの少なくとも1つの以前の状態遷移の少なくとも1つの結果を表す状態情報のセットをそれぞれ記憶する複数のレジスタと、
    前記少なくとも1つの結果に基づく値を含む信号を生成する電源管理アドバイザ(PMA)であって、前記は、前記処理ユニットの電力状態遷移の少なくとも1つの利点前記電力状態遷移の少なくとも1つのコストを上回る確率を示す、PMAと、
    前記信号に基づいて、前記処理ユニットの後続の電力状態遷移を選択するように構成された電源管理コントローラと、を備える、
    装置。
  2. 前記複数のレジスタのうち第1レジスタは、前記処理ユニットの現在の状態を表す状態情報の第1セットを記憶し、前記複数のレジスタのうち少なくとも1つの第2レジスタは、前記処理ユニットの少なくとも1つの以前の状態遷移の少なくとも1つの結果を表す少なくとも1つの状態情報の第2セットを記憶する、
    請求項1の装置。
  3. 前記状態情報の第1セットは、前記処理ユニットが新たな電力状態に遷移することに応じて前記少なくとも1つの第2レジスタにコピーされ、前記新たな電力状態に対応する新たな状態情報のセットは、前記処理ユニットが前記新たな電力状態に遷移することに応じて前記第1レジスタに記憶される、
    請求項2の装置。
  4. 前記状態情報のセットの各々は、前記処理ユニットの電力状態、前記処理ユニットに実装されるパフォーマンスカウンタの値、前記処理ユニットで実行されるためにキューイングされる命令又はドローコールコマンドの特性、前記処理ユニットの電力状態遷移を開始するかどうかを決定する電源管理コントローラへの入力、前記電源管理コントローラによって行われる決定を示す情報、前記処理ユニット上で実行されるアプリケーションのタイプ、前記アプリケーションによって提供されるヒント、及び、前記PMAによって生成される信号、のうち少なくとも1つを含む、
    請求項1の装置。
  5. 前記PMAは、前記複数のレジスタの各々の前記状態情報のセットを、前記複数のレジスタのうち1つ以上のレジスタの前記状態情報のセットに対応する少なくとも1つの以前の電力状態遷移の結果と比較することによって、前記信号の値を生成する、
    請求項1の装置。
  6. 前記電力状態遷移の少なくとも1つの利点は、前記電力状態遷移に起因するパフォーマンスゲイン又は省電力化のうち少なくとも1つであり、前記電力状態遷移の少なくとも1つのコストは、前記電力状態遷移に起因するパフォーマンスコスト又は増加したエネルギー使用量のうち少なくとも1つを含む
    請求項5の装置。
  7. 前記少なくとも1つの以前の状態遷移の少なくとも1つの結果は、以前の電力状態遷移に起因するパフォーマンスゲイン又は省電力化が、前記以前の電力状態遷移に起因する、対応するパフォーマンスコスト又はエネルギー使用量の増加を超えたかどうかを示す、
    請求項6の装置。
  8. 前記PMAは、前記処理ユニットの現在の電力状態から複数の利用可能な電力状態への電力状態遷移の少なくとも1つの利点が前記電力状態遷移の少なくとも1つのコストを上回る確率を生成するニューラルネットワークを備える、
    請求項の装置。
  9. 前記信号は、前記処理ユニットの電力状態遷移を開始する電源管理コントローラに提供される、
    請求項1の装置。
  10. 前記処理ユニットの電力状態遷移を開始するかどうかを決定するために、前記PMAによって提供される前記信号と、前記電源管理コントローラによって行われる電力状態遷移の決定と、に適用される重みを示すステートマシンをさらに備える、
    請求項9の装置。
  11. 電源管理アドバイザ(PMA)と、
    電源管理コントローラと、を備え、
    前記電源管理コントローラは、
    前記PMAによって生成された値を含む信号を受信するように構成されたハードウェア回路を備え、
    前記PMAは、処理ユニットの現在の状態を表す状態情報の第1セットと、前記処理ユニットの少なくとも1つの以前の電力状態遷移の少なくとも1つの結果を表す少なくとも1つの状態情報の第2セットと、に基づいて前記信号を生成し、
    前記は、前記処理ユニットの電力状態遷移の少なくとも1つの利点前記電力状態遷移によって発生する少なくとも1つのコストを上回る確率を示しており、
    前記ハードウェア回路は、前記信号に基づいて、前記処理ユニットの電力状態遷移を開始するように構成されている、
    システム
  12. 前記状態情報の第1セット及び前記状態情報の少なくとも1つの第2セットは、前記処理ユニットの電力状態、前記処理ユニットに実装されるパフォーマンスカウンタの値、前記処理ユニットで実行されるためにキューイングされる命令又はドローコールコマンドの特性、前記電源管理コントローラへの前記入力、前記電源管理コントローラによって行われる決定を示す情報、前記処理ユニット上で実行されるアプリケーションのタイプ、前記アプリケーションによって提供されるヒント、及び、前記PMAによって生成される信号、のうち少なくとも1つを含む、
    請求項11のシステム
  13. 前記ハードウェア回路は、前記状態情報の第1セットのサブセットを表す入力に基づいて、前記処理ユニットの前記電力状態遷移に続く後続の電力状態の予測を生成する、
    請求項11システム
  14. 前記ハードウェア回路は、前記PMAによって提供される前記信号と、前記電源管理コントローラによって行われる前記予測と、に適用される重みを示す情報を受信するように構成されており、前記ハードウェア回路は、前記重みを前記信号及び前記予測に適用して、前記処理ユニットの前記電力状態遷移を開始するかどうかを決定する、
    請求項13のシステム
  15. 処理ユニットであって、
    前記処理ユニットの現在の電力状態を表す入力と、複数の利用可能な電力状態と、に基づいて、前記現在の電力状態からの前記処理ユニットの電力状態遷移に続く後続の電力状態の予測を生成する電源管理コントローラと、
    前記処理ユニットの少なくとも1つの以前の電力状態遷移の少なくとも1つの結果を表す状態情報のセットに基づく値を含む信号を生成する電源管理アドバイザ(PMA)であって、前記は、前記複数の利用可能な電力状態への前記処理ユニットの前記電力状態遷移の少なくとも1つの利点前記電力状態遷移によって発生する少なくとも1つのコストを上回る確率を示す、PMAと、を備え、
    前記電源管理コントローラは、前記予測及び前記信号に基づいて前記後続の電力状態を選択する、
    処理ユニット。
  16. 複数のレジスタをさらに備え、
    前記複数のレジスタのうち第1レジスタは、前記処理ユニットの現在の状態を表す状態情報の第1セットを記憶し、前記複数のレジスタのうち少なくとも1つの第2レジスタは、前記処理ユニットの少なくとも1つの以前の電力状態遷移の少なくとも1つの結果を表す少なくとも1つの状態情報の第2セットを記憶し、
    前記PMAは、前記複数のレジスタから前記状態情報の第1セット及び前記少なくとも1つの状態情報の第2セットにアクセスする、
    請求項15の処理ユニット。
  17. 前記状態情報の第1セットは、前記処理ユニットが前記後続の電力状態に遷移することに応じて、前記少なくとも1つの第2レジスタにコピーされ、前記後続の電力状態に対応する新たな状態情報のセットは、前記処理ユニットが前記後続の電力状態に遷移することに応じて前記第1レジスタに記憶される、
    請求項16の処理ユニット。
  18. 前記状態情報のセットは、前記処理ユニットの電力状態、前記処理ユニットに実装されるパフォーマンスカウンタの値、前記処理ユニットで実行されるためにキューイングされる命令又はドローコールコマンドの特性、前記電源管理コントローラへの前記入力、前記電源管理コントローラによって行われる決定を示す情報、前記処理ユニット上で実行されるアプリケーションのタイプ、前記アプリケーションによって提供されるヒント、及び、前記PMAによって生成される信号、のうち少なくとも1つを含む、
    請求項15の処理ユニット。
  19. 前記PMAは、現在の電力状態から複数の利用可能な電力状態への前記処理ユニットの電力状態遷移の少なくとも1つの利点が前記電力状態遷移によって発生する少なくとも1つのコストを上回る確率を生成するニューラルネットワークを備える、
    請求項15の処理ユニット。
  20. 前記処理ユニットの前記電力状態遷移を開始するかどうかを決定するために、前記PMAによって提供される前記信号と、前記電源管理コントローラによって行われる電力状態遷移の決定と、に適用される重みを示すステートマシンをさらに備える、
    請求項19の処理ユニット。
JP2021510350A 2018-08-28 2019-06-25 電源管理制御をサポートする電源管理アドバイザ Active JP7449276B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2024031113A JP2024063149A (ja) 2018-08-28 2024-03-01 電源管理制御をサポートする電源管理アドバイザ

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/115,420 2018-08-28
US16/115,420 US11275430B2 (en) 2018-08-28 2018-08-28 Power management advisor to support power management control
PCT/US2019/038956 WO2020046455A1 (en) 2018-08-28 2019-06-25 A power management advisor to support power management control

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2024031113A Division JP2024063149A (ja) 2018-08-28 2024-03-01 電源管理制御をサポートする電源管理アドバイザ

Publications (2)

Publication Number Publication Date
JP2021536607A JP2021536607A (ja) 2021-12-27
JP7449276B2 true JP7449276B2 (ja) 2024-03-13

Family

ID=69641214

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2021510350A Active JP7449276B2 (ja) 2018-08-28 2019-06-25 電源管理制御をサポートする電源管理アドバイザ
JP2024031113A Pending JP2024063149A (ja) 2018-08-28 2024-03-01 電源管理制御をサポートする電源管理アドバイザ

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2024031113A Pending JP2024063149A (ja) 2018-08-28 2024-03-01 電源管理制御をサポートする電源管理アドバイザ

Country Status (6)

Country Link
US (2) US11275430B2 (ja)
EP (1) EP3844595A4 (ja)
JP (2) JP7449276B2 (ja)
KR (1) KR20210038678A (ja)
CN (1) CN112639674A (ja)
WO (1) WO2020046455A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5731266B2 (ja) * 2011-04-22 2015-06-10 株式会社カネカ ビニル系重合体の製造方法
US11579680B2 (en) * 2019-02-01 2023-02-14 Alibaba Group Holding Limited Methods and devices for power management based on synthetic machine learning benchmarks
US11150720B2 (en) * 2019-02-04 2021-10-19 Sateesh Kumar Addepalli Systems and methods for power management of hardware utilizing virtual multilane architecture
KR20220027840A (ko) * 2019-05-31 2022-03-08 킴벌리-클라크 월드와이드, 인크. 전력 관리 시스템
US11494237B2 (en) * 2019-06-26 2022-11-08 Microsoft Technology Licensing, Llc Managing workloads of a deep neural network processor
US11567555B2 (en) * 2019-08-30 2023-01-31 Intel Corporation Software assisted power management
US11917537B2 (en) * 2020-04-29 2024-02-27 Apple Inc. Power management in wireless modems
CN113238648B (zh) * 2021-05-11 2023-05-09 成都海光集成电路设计有限公司 一种功耗调整方法及其装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080177686A1 (en) 2007-01-22 2008-07-24 International Business Machines Corporation Apparatus And Method For Predicting A Metric Associated With A Computer System
US20080201591A1 (en) 2007-02-16 2008-08-21 Chunling Hu Method and apparatus for dynamic voltage and frequency scaling

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481733A (en) * 1994-06-15 1996-01-02 Panasonic Technologies, Inc. Method for managing the power distributed to a disk drive in a laptop computer
JP2008097098A (ja) * 2006-10-06 2008-04-24 Yamaha Corp 情報処理装置およびインターフェイス回路
US8762692B2 (en) 2007-09-27 2014-06-24 Intel Corporation Single instruction for specifying and saving a subset of registers, specifying a pointer to a work-monitoring function to be executed after waking, and entering a low-power mode
US8073605B2 (en) * 2008-08-13 2011-12-06 GM Global Technology Operations LLC Method of managing power flow in a vehicle
US8219834B2 (en) * 2009-08-12 2012-07-10 International Business Machines Corporation Predictive power gating with optional guard mechanism
US8887171B2 (en) 2009-12-28 2014-11-11 Intel Corporation Mechanisms to avoid inefficient core hopping and provide hardware assisted low-power state selection
US8751194B2 (en) * 2010-09-30 2014-06-10 Fitbit, Inc. Power consumption management of display in portable device based on prediction of user input
US8819461B2 (en) * 2011-12-22 2014-08-26 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including improved processor core deep power down exit latency by using register secondary uninterrupted power supply
US9152203B2 (en) 2012-05-31 2015-10-06 At&T Intellectual Property I, Lp Managing power consumption state of electronic devices responsive to predicting future demand
US20140181553A1 (en) * 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Idle Phase Prediction For Integrated Circuits
US9372526B2 (en) 2012-12-21 2016-06-21 Intel Corporation Managing a power state of a processor
US9442668B1 (en) * 2013-08-29 2016-09-13 Western Digital Technologies, Inc. Adaptive power management control with performance feedback
US9563724B2 (en) 2013-09-28 2017-02-07 International Business Machines Corporation Virtual power management multiprocessor system simulation
US9720487B2 (en) * 2014-01-10 2017-08-01 Advanced Micro Devices, Inc. Predicting power management state duration on a per-process basis and modifying cache size based on the predicted duration
US20160077575A1 (en) * 2014-09-17 2016-03-17 Advanced Micro Devices, Inc. Interface to expose interrupt times to hardware
US20160077871A1 (en) 2014-09-17 2016-03-17 Advanced Micro Devices, Inc. Predictive management of heterogeneous processing systems
US9811143B2 (en) 2014-12-23 2017-11-07 Intel Corporation Systems and methods for dynamic spatial power steering
US10331203B2 (en) * 2015-12-29 2019-06-25 Texas Instruments Incorporated Compute through power loss hardware approach for processing device having nonvolatile logic memory
US10761584B2 (en) * 2018-03-16 2020-09-01 Vigyanlabs Innovations Private Limited System and method to enable prediction-based power management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080177686A1 (en) 2007-01-22 2008-07-24 International Business Machines Corporation Apparatus And Method For Predicting A Metric Associated With A Computer System
US20080201591A1 (en) 2007-02-16 2008-08-21 Chunling Hu Method and apparatus for dynamic voltage and frequency scaling

Also Published As

Publication number Publication date
JP2021536607A (ja) 2021-12-27
WO2020046455A1 (en) 2020-03-05
CN112639674A (zh) 2021-04-09
US11275430B2 (en) 2022-03-15
EP3844595A4 (en) 2022-06-08
US20220187901A1 (en) 2022-06-16
EP3844595A1 (en) 2021-07-07
JP2024063149A (ja) 2024-05-10
US20200073469A1 (en) 2020-03-05
KR20210038678A (ko) 2021-04-07

Similar Documents

Publication Publication Date Title
JP7449276B2 (ja) 電源管理制御をサポートする電源管理アドバイザ
TWI525547B (zh) 用以避免無效率核心跳換及提供硬體輔助低功率狀態選擇之機構
US9720487B2 (en) Predicting power management state duration on a per-process basis and modifying cache size based on the predicted duration
US9442557B2 (en) Using a linear prediction to configure an idle state of an entity in a computing device
US20150186160A1 (en) Configuring processor policies based on predicted durations of active performance states
US9471130B2 (en) Configuring idle states for entities in a computing device based on predictions of durations of idle periods
US20160077575A1 (en) Interface to expose interrupt times to hardware
US8239700B2 (en) Systems and methods for power dissipation control in a semiconductor device
JP2016506576A (ja) 集積回路のアイドルフェーズ予測
CN110658900A (zh) 具有强化学习代理的热自学习
US9507410B2 (en) Decoupled selective implementation of entry and exit prediction for power gating processor components
US20160077871A1 (en) Predictive management of heterogeneous processing systems
Irani et al. An overview of the competitive and adversarial approaches to designing dynamic power management strategies
US11150899B2 (en) Selecting a precision level for executing a workload in an electronic device
US20100268917A1 (en) Systems and Methods for Ramped Power State Control in a Semiconductor Device
GB2545508A (en) Controlling operation of a GPU
US20100269074A1 (en) Predictive Power Management Semiconductor Design Tool and Methods for Using Such
US11543877B2 (en) Low power state selection based on idle duration history
WO2017103573A1 (en) Controlling scheduling of a gpu
US20190294355A1 (en) Information processing device, information processing method, estimation device, estimation method, and computer program product
US20190286971A1 (en) Reconfigurable prediction engine for general processor counting
KR102351200B1 (ko) 메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하는 장치 및 방법
US9760145B2 (en) Saving the architectural state of a computing device using sectors
JP6877381B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP7335253B2 (ja) スコアボードの保存及び復元

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220606

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230905

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20231205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240129

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240301

R150 Certificate of patent or registration of utility model

Ref document number: 7449276

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150