IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドの特許一覧

特開2024-63149電源管理制御をサポートする電源管理アドバイザ
<>
  • 特開-電源管理制御をサポートする電源管理アドバイザ 図1
  • 特開-電源管理制御をサポートする電源管理アドバイザ 図2
  • 特開-電源管理制御をサポートする電源管理アドバイザ 図3
  • 特開-電源管理制御をサポートする電源管理アドバイザ 図4
  • 特開-電源管理制御をサポートする電源管理アドバイザ 図5
  • 特開-電源管理制御をサポートする電源管理アドバイザ 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024063149
(43)【公開日】2024-05-10
(54)【発明の名称】電源管理制御をサポートする電源管理アドバイザ
(51)【国際特許分類】
   G06F 1/3206 20190101AFI20240501BHJP
   G06F 1/3246 20190101ALI20240501BHJP
【FI】
G06F1/3206
G06F1/3246
【審査請求】有
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2024031113
(22)【出願日】2024-03-01
(62)【分割の表示】P 2021510350の分割
【原出願日】2019-06-25
(31)【優先権主張番号】16/115,420
(32)【優先日】2018-08-28
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【弁理士】
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【弁理士】
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【弁理士】
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】グレッグ サドウスキー
(72)【発明者】
【氏名】イン チェン
(57)【要約】      (修正有)
【課題】電源管理制御をサポートする電力管理アドバイザ回路及び電力管理コントローラ回路を備える装置、方法及び処理ユニットを提供する。
【解決手段】装置100は、処理ユニット(GPU115、CPU130)の状態履歴を表す状態情報のセットを記憶する複数のレジスタを含む。また、GPUは、状態情報のセットに基づいて信号を生成する電源管理アドバイザ(PMA)160も含み、信号は、処理ユニットの電力状態遷移が目標結果を達成する確率を示す。場合によっては、信号は、ハードウェア回路を含む電源管理コントローラ(PMC150、PMC155)に提供され、ハードウェア回路は、この信号と、処理ユニットの現在の電力状態に対応する状態情報のサブセットを表す電源管理コントローラへの入力と、に基づいて、処理ユニットの電力状態遷移を開始する。
【選択図】図1
【特許請求の範囲】
【請求項1】
処理ユニットの少なくとも1つの以前の状態遷移の少なくとも1つの結果に基づいて、前記処理ユニットの電力状態遷移に起因するパフォーマンスゲイン又は省電力化が前記電力状態遷移の少なくとも1つのコストを上回る確率を示す指標を提供する電力管理アドバイザ回路(PMAC)と、
前記確率に基づいて、前記処理ユニットの後続の電力状態遷移を選択するように構成された電力管理コントローラ回路と、を備える、
装置。
【請求項2】
前記処理ユニットの少なくとも1つの以前の状態遷移の少なくとも1つの結果を表す状態情報のセットを記憶する複数のレジスタを備え、
前記複数のレジスタのうち第1レジスタは、前記処理ユニットの現在の状態を表す状態情報の第1セットを記憶し、前記複数のレジスタのうち少なくとも1つの第2レジスタは、前記処理ユニットの少なくとも1つの以前の状態遷移の少なくとも1つの結果を表す少なくとも1つの状態情報の第2セットを記憶する、
請求項1の装置。
【請求項3】
前記状態情報の第1セットは、前記処理ユニットが新たな電力状態に遷移することに応じて前記少なくとも1つの第2レジスタにコピーされ、前記新たな電力状態に対応する新たな状態情報のセットは、前記処理ユニットが前記新たな電力状態に遷移することに応じて前記第1レジスタに記憶される、
請求項2の装置。
【請求項4】
前記状態情報のセットは、前記処理ユニットの電力状態、前記処理ユニットに実装されるパフォーマンスカウンタの値、前記処理ユニットで実行されるためにキューイングされる命令又はドローコールコマンドの特性、前記処理ユニットの電力状態遷移を開始するかどうかを決定する前記電源管理コントローラ回路への入力、前記電源管理コントローラ回路によって行われる決定を示す情報、前記処理ユニット上で実行されるアプリケーションのタイプ、前記アプリケーションによって提供されるヒント、及び、前記PMACによって生成される信号、のうち少なくとも1つを含む、
請求項2の装置。
【請求項5】
前記PMACは、前記複数のレジスタ内の前記状態情報のセットを、前記処理ユニットの少なくとも1つの以前の状態遷移の少なくとも1つの結果と比較することによって、前記指標を生成する、
請求項2の装置。
【請求項6】
前記電力状態遷移の少なくとも1つのコストは、前記電力状態遷移に起因するパフォーマンスコスト又は増加したエネルギー使用量のうち少なくとも1つを含む、
請求項5の装置。
【請求項7】
前記少なくとも1つの以前の状態遷移の少なくとも1つの結果は、以前の電力状態遷移に起因するパフォーマンスゲイン又は省電力化が、前記以前の電力状態遷移に起因する、対応するパフォーマンスコスト又はエネルギー使用量の増加を上回るかどうかを示す、
請求項6の装置。
【請求項8】
前記PMACは、前記処理ユニットの現在の電力状態から複数の利用可能な電力状態への電力状態遷移に起因するパフォーマンスコスト又は省電力化が前記電力状態遷移の少なくとも1つのコストを上回る確率を生成するニューラルネットワークを備える、
請求項1の装置。
【請求項9】
前記処理ユニットの電力状態遷移を開始するかどうかを決定するために、前記PMACによって提供される前記指標と、前記電源管理コントローラ回路によって行われる電力状態遷移の決定と、に適用される重みを示すステートマシンを備える、
請求項1の装置。
【請求項10】
前記PMACは、前記少なくとも1つの以前の状態遷移と、前記少なくとも1つの以前の状態遷移が、前記少なくとも1つの以前の状態遷移に起因するパフォーマンスゲインが少なくとも1つの以前の状態遷移のパフォーマンスコストを上回ることと、前記少なくとも1つの以前の状態遷移に起因する省電力化が少なくとも1つの以前の状態遷移に起因するエネルギー使用量の増加を上回ることと、のうち少なくとも1つをもたらすか否かを示す少なくとも1つの以前の結果と、に基づいて、前記指標を生成するように構成されている、
請求項1の装置。
【請求項11】
電力管理アドバイザ回路(PMAC)において、処理ユニットの現在の状態を表す状態情報の第1セットと、前記処理ユニットの少なくとも1つの以前の電力状態遷移の少なくとも1つの以前の結果を表す少なくとも1つの状態情報の第2セットと、に基づいて、電力管理コントローラ回路にアドバイスを提供することであって、前記アドバイスは、前記処理ユニットの電力状態遷移に起因するパフォーマンスゲイン又は省電力化が前記電力状態遷移の少なくとも1つのコストを上回る確率を示す、ことと、
前記電力管理コントローラ回路において、前記アドバイスに基づいて、前記処理ユニットの後続の電力状態遷移を選択することと、を含む、
方法。
【請求項12】
前記状態情報の第1セット及び前記少なくとも1つの状態情報の第2セットは、前記処理ユニットの電力状態、前記処理ユニットに実装されるパフォーマンスカウンタの値、前記処理ユニットで実行されるためにキューイングされる命令又はドローコールコマンドの特性、前記電源管理コントローラ回路への入力、前記電源管理コントローラ回路によって行われる決定を示す情報、前記処理ユニット上で実行されるアプリケーションのタイプ、前記アプリケーションによって提供されるヒント、及び、前記PMACによって生成される信号、のうち少なくとも1つを含む、
請求項11の方法。
【請求項13】
前記状態情報の第1セットのサブセットを表す入力に基づいて、前記処理ユニットの電力状態遷移に続く後続の電力状態の予測を生成することを含む、
請求項11の方法。
【請求項14】
前記アドバイス及び前記予測に適用される重みを示す情報を受信することと、
前記重みを前記アドバイス及び前記予測に適用して、前記処理ユニットの電力状態遷移を開始するか否かを決定することと、を含む、
請求項13の方法。
【請求項15】
処理ユニットであって、
前記処理ユニットの現在の電力状態を表す入力に基づいて、且つ、複数の利用可能な電力状態から、前記処理ユニットの現在の電力状態からの電力状態遷移に続く後続の電力状態の予測を生成する電力管理コントローラ回路と、
前記処理ユニットの少なくとも1つの以前の電力状態遷移の少なくとも1つの結果を表す状態情報のセットに基づいてアドバイスを生成する電力管理アドバイザ回路(PMAC)であって、前記アドバイスは、前記複数の利用可能な電力状態への前記処理ユニットの電力状態遷移に起因するパフォーマンスゲイン又は省電力化が前記電力状態遷移に起因する少なくとも1つのコストを上回る確率を示す、電力管理アドバイザ回路(PMAC)と、を備え、
前記電力管理コントローラ回路は、前記予測及び前記アドバイスに基づいて、前記後続の電力状態を選択する、
処理ユニット。
【請求項16】
複数のレジスタであって、前記複数のレジスタのうち第1レジスタは、前記処理ユニットの現在の状態を表す状態情報の第1セットを記憶し、前記複数のレジスタのうち少なくとも1つの第2レジスタは、前記処理ユニットの少なくとも1つの以前の電力状態遷移の少なくとも1つの結果を表す少なくとも1つの状態情報の第2セットを記憶する、複数のレジスタを備え、
前記PMACは、前記複数のレジスタの前記状態情報の第1セット及び前記少なくとも1つの状態情報の第2セットにアクセスする、
請求項15の処理ユニット。
【請求項17】
前記状態情報の第1セットは、前記処理ユニットが前記後続の電力状態に遷移することに応じて前記少なくとも1つの第2レジスタにコピーされ、前記後続の電力状態に対応する新たな状態情報のセットは、前記処理ユニットが前記後続の電力状態に遷移することに応じて前記第1レジスタに記憶される、
請求項16の処理ユニット。
【請求項18】
前記状態情報のセットは、前記処理ユニットの電力状態、前記処理ユニットに実装されるパフォーマンスカウンタの値、前記処理ユニットで実行されるためにキューイングされる命令又はドローコールコマンドの特性、前記電源管理コントローラ回路への入力、前記電源管理コントローラ回路によって行われる決定を示す情報、前記処理ユニット上で実行されるアプリケーションのタイプ、前記アプリケーションによって提供されるヒント、及び、前記PMACによって生成される信号、のうち少なくとも1つを含む、
請求項15の処理ユニット。
【請求項19】
前記PMACは、前記処理ユニットの現在の電力状態から複数の利用可能な電力状態への電力状態遷移に起因するパフォーマンスコスト又は省電力化が前記電力状態遷移に起因する少なくとも1つのコストを上回る確率を生成するニューラルネットワークを備える、
請求項15の処理ユニット。
【請求項20】
前記処理ユニットの電力状態遷移を開始するかどうかを決定するために、前記PMACによって提供される前記アドバイスと、前記電源管理コントローラ回路によって行われる電力状態遷移の決定と、に適用される重みを示すステートマシンを備える、
請求項19の処理ユニット。
【発明の詳細な説明】
【背景技術】
【0001】
中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)及びアクセラレーテッドプロセッシングユニット(APU)等の処理ユニットは、異なる電源管理状態間を遷移することによって、パフォーマンスを向上させたり、省電力化させたりすることができる。例えば、処理ユニットは、処理ユニットが実行する命令がない場合にアイドリングすることによって省電力化することができる。処理ユニットが比較的長時間アイドル状態にある場合、処理ユニットに電流が供給されないように、処理ユニットに供給される電力がパワーゲーティングされ、これにより、待機電力及びリーク電力の消費を削減する。例えば、CPU内のプロセッサコアは、プロセッサコアが所定の時間間隔よりも長い間アイドル状態になっている場合にパワーゲーティングされ得る。ただし、処理ユニットの電源管理状態を変化させる電源管理技術は、状態変化によって節約されるリソースに比べて、大量のシステムリソースを消費する可能性がある。例えば、プロセッサコアをパワーゲーティングすることは、プロセッサコア内のキャッシュをフラッシュし、プロセッサコアの状態を定義する情報をセーブする必要があり、時間及び電力の両方を消費する。低電力状態(アイドル状態又はパワーゲーティング状態等)からアクティブ状態への遷移は、セーブされた状態情報をプロセッサコア内のレジスタにコピーして戻す必要がある場合等に、プロセッサコアをアクティブ状態に戻すためのパフォーマンスコストを必要とする。
【発明の概要】
【課題を解決するための手段】
【0002】
一態様では、装置は、処理ユニットの状態履歴を表す状態情報のセットを記憶する複数のレジスタを含む。さらに、この装置は、状態情報のセットに基づいて信号を生成する電源管理アドバイザ(PMA)を含み、信号は、処理ユニットの電力状態遷移が目標結果を達成する確率を示す。一実施形態では、複数のレジスタのうち第1レジスタは、処理ユニットの現在の状態を表す状態情報の第1セットを記憶し、複数のレジスタのうち少なくとも1つの第2レジスタは、処理ユニットの少なくとも1つの前の状態を表す少なくとも1つの状態情報の第2セットを記憶する。この場合、状態情報の第1セットは、処理ユニットが新たな電力状態に遷移することに応じて少なくとも1つの第2レジスタにコピーされ、新たな電力状態に対応する状態情報の新たなセットは、処理ユニットが新たな電力状態に遷移することに応じて第1レジスタに記憶され得る。一実施形態では、状態情報のセットは、処理ユニットの電力状態、処理ユニットに実装されるパフォーマンスカウンタの値、処理ユニットでの実行のためにキューイングされる命令又はドローコールコマンドの特性、処理ユニットの電力状態遷移を開始するかどうかを決定する電源管理コントローラへの入力、電源管理コントローラによって行われる決定を示す情報、処理ユニット上で実行されるアプリケーションのタイプ、アプリケーションによって提供されるヒント、及び、PMAによって生成される信号、のうち少なくとも1つを含む。一実施形態では、PMAは、複数のレジスタ内の状態情報のセットを、状態情報のセットに対応する電力状態遷移の以前の結果と比較することによって、信号の値を生成する。この場合、目標結果は、電力状態遷移に起因するパフォーマンスコスト、又は、増加したエネルギー使用量のうち少なくとも1つを上回る、電力状態遷移に起因するパフォーマンスゲイン又は省電力化のうち少なくとも1つとすることができる。さらに、状態情報のセットに関連する以前の結果は、以前の電力状態遷移に起因するパフォーマンスゲイン又は省電力化が、以前の電力状態遷移に起因する、対応するパフォーマンスコスト又はエネルギー使用量の増加を上回ったかどうかを示すことができる。一実施形態では、PMAは、現在の電力状態から複数の利用可能な電力状態への処理ユニットの電力状態遷移が目標結果を達成する確率を生成するニューラルネットワークを含む。一実施形態では、信号は、処理ユニットの電力状態遷移を開始する電源管理コントローラに提供され、装置は、処理ユニットの電力状態遷移を開始するかどうかを決定するために、PMAによって提供される信号と、電源管理コントローラによって行われる電力状態遷移の決定と、に適用される重みを示すステートマシンをさらに含む。
【0003】
別の態様では、電源管理コントローラは、電源管理アドバイザ(PMA)によって生成される信号を受信するように構成されたハードウェア回路を含み、PMAは、処理ユニットの現在の状態を表す状態情報の第1セットと、処理ユニットの少なくとも1つの以前の状態を表す少なくとも1つの状態情報の第2セットと、に基づいて信号を生成し、この信号は、処理ユニットの電力状態遷移が目標結果を達成する確率を示す。さらに、ハードウェア回路は、状態情報の第1セットのサブセットを表す信号及び入力に基づいて、処理ユニットの電力状態遷移を開始するように構成されている。一実施形態では、状態情報の第1セット及び第2セットは、処理ユニットの電力状態、処理ユニットに実装されるパフォーマンスカウンタの値、処理ユニットでの実行のためにキューイングされる命令又はドローコールコマンドの特性、電源管理コントローラへの入力、電源管理コントローラによって行われる決定を示す情報、処理ユニット上で実行されるアプリケーションのタイプ、アプリケーションによって提供されるヒント、及び、PMAによって生成される信号、のうち少なくとも1つを含む。ハードウェア回路は、これらの入力に基づいて、処理ユニットの電力状態遷移後の後続の電力状態の予測を生成することができる。一実施形態では、ハードウェア回路は、PMAによって提供される信号と、電源管理コントローラによって行われる予測と、に適用される重みを示す情報を受信するように構成されており、ハードウェア回路は、これらの重みを信号及び予測に適用して、処理ユニットの電力状態遷移を開始するかどうかを決定する。
【0004】
さらに別の態様によれば、処理ユニットは、電源管理コントローラを含み、電源管理コントローラは、処理ユニットの現在の電力状態を表す入力に基づいて、及び、複数の利用可能な電力状態から、現在の電力状態からの処理ユニットの電力状態遷移後の後続の電力状態の予測を生成する。処理ユニットは、処理ユニットの状態履歴を表す状態情報のセットに基づいて信号を生成する電源管理アドバイザ(PMA)をさらに含み、この信号は、複数の利用可能な電力状態への処理ユニットの電力状態遷移が目標結果を達成する確率を示す。電源管理コントローラは、予測及び信号に基づいて、後続の電力状態を選択する。一実施形態では、処理ユニットは、複数のレジスタをさらに含み、複数のレジスタのうち第1レジスタは、処理ユニットの現在の状態を表す状態情報の第1セットを記憶し、複数のレジスタのうち少なくとも1つの第2レジスタは、処理ユニットの少なくとも1つの以前の状態を表す少なくとも1つの状態情報の第2セットを記憶し、PMAは、複数のレジスタから状態情報の第1セット及び少なくとも1の第2セットにアクセスする。一実施形態では、状態情報の第1セットは、処理ユニットが後続の電力状態に遷移することに応じて、少なくとも1つの第2レジスタにコピーされ、この後続の電力状態に対応する状態情報の新たなセットは、処理ユニットが後続の電力状態に遷移することに応じて第1レジスタに記憶される。一実施形態では、状態情報のセットは、処理ユニットの電力状態、処理ユニットに実装されるパフォーマンスカウンタの値、処理ユニットでの実行のためにキューイングされる命令又はドローコールコマンドの特性、電源管理コントローラへの入力、電源管理コントローラによって行われる決定を示す情報、処理ユニット上で実行されるアプリケーションのタイプ、アプリケーションによって提供されるヒント、及び、PMAによって生成される信号、のうち少なくとも1つを含む。一実施形態では、PMAは、現在の電力状態から複数の利用可能な電力状態への処理ユニットの電力状態遷移が目標結果を達成する確率を生成するニューラルネットワークを含み、処理ユニットは、ステートマシンをさらに含み、このステートマシンは、処理ユニットの電力状態遷移を開始するかどうかを決定するために、PMAによって提供される信号と、電源管理コントローラによって行われる電力状態遷移の決定と、に適用される重みを示す。
【0005】
添付図面を参照することによって、本開示をより良好に理解することができ、その多くの特徴及び利点が当業者に明らかになる。異なる図面で同じ符号を使用することは、類似又は同一の要素を示す。
【図面の簡単な説明】
【0006】
図1】いくつかの実施形態による、処理システムのブロック図である。
図2】いくつかの実施形態による、電源管理システムのブロック図である。
図3】いくつかの実施形態による、電源管理アドバイザを含む回路のブロック図である。
図4】いくつかの実施形態による、処理ユニットの状態シーケンスを示す状態図である。
図5】いくつかの実施形態による、電源管理制御システムのブロック図である。
図6】いくつかの実施形態による、適用される重みを決定するステートマシンのブロック図である。
【発明を実施するための形態】
【0007】
処理ユニット内の電源管理コントローラは、処理ユニットの状態履歴に関係なく現在の状態に基づいて、処理ユニットの電力状態を変化させるかどうかを決定するリアクティブコントローラとして実装される。従来の電源管理コントローラは、GPUの計算ユニットでのアクティビティ、GPUで消費される電力の値、GPUによって引き出される電流の値、温度及び他の状態情報を監視して、コンポーネントに供給されるクロック周波数又は電圧を変更することによって電力状態を変化させるかどうかを決定する。例えば、マルコフ連鎖モデルを使用して電力状態遷移を予測することができ、このマルコフ連鎖モデルは、各イベントの確率が以前のイベントで達成された状態のみに依存する可能性のあるイベントのシーケンスを記述する確率モデルである。従来の電源管理コントローラは、いくつかの状況において、例えば、省電力化又はパフォーマンスゲインを生じることなく、パフォーマンスコスト又はエネルギー使用量の大幅な増加を招く電力状態遷移を引き起こすことによって、誤った決定を下す。
【0008】
図1図6は、処理ユニット内の従来のローカルな電源管理コントローラをサポートする電源管理アドバイザを開示する。電源管理アドバイザは、処理ユニットの現在の状態、及び、処理ユニットの1つ以上の以前の状態に基づいて、信号(本明細書では「アドバイス」と呼ばれる)を生成する。このアドバイスは、ローカル電源管理コントローラによって決定された電力状態遷移が目標結果(例えば、電力状態遷移に起因するパフォーマンスゲイン又は省電力化が電力状態遷移のコストを上回る等)を達成する確率を示す。いくつかの実施形態では、現在の状態及び以前の状態は、対応する電力状態、パフォーマンスカウンタの値、処理ユニットでの実行のためにキューイングされる命令又はドローコールコマンドの特性、ローカル電源管理コントローラへの入力、ローカル電源管理コントローラによって行われる決定、アプリケーションのタイプ、アプリケーションのヒント、及び、電源管理アドバイザで生成されるアドバイス、によって定義される。電源管理アドバイザは、処理ユニットの現在の状態及び以前の状態によって表される状態情報シーケンスを、電源管理コントローラによってトリガされる、対応する電力状態遷移の以前の結果と比較することによって、アドバイスの値を決定する。いくつかの実施形態では、以前の結果は、以前の電力状態遷移からのパフォーマンスゲイン又は省電力化が、対応するパフォーマンスコスト又はエネルギー使用量の増加を上回ったかどうかを示す。
【0009】
電源管理アドバイザのいくつかの実施形態は、処理ユニットの現在の状態シーケンス及び以前の状態シーケンスに基づいて、利用可能な電力状態のうち何れが次の電力状態であるかを示す確率を生成するニューラルネットワークを実装する。この確率は、利用可能な各電力状態への処理ユニットの電力状態遷移が目標結果を達成する可能性(例えば、パフォーマンスゲイン又は省電力化が、対応するパフォーマンスコスト又はエネルギー使用量の増加を上回る等の可能性)を示す。以前の電力状態の変化の有効性を示す、シミュレーション、又は、オンザフライフィードバックによって生成されたトレーニングデータセットを使用して、ニューラルネットワークをトレーニングすることができる。電源管理アドバイザは、重みを示すステートマシンを実装することもできる。これらの重みは、電源管理アドバイザによって生成されたアドバイスと、ローカル電源管理コントローラによって行われる決定と、に適用される。ローカル電源管理コントローラのいくつかの実施形態は、重みを、アドバイス、及び、次の電力状態を決定するための決定に適用する。
【0010】
図1は、いくつかの実施形態による、処理システム100のブロック図である。処理システム100は、メモリ105、又は、例えばダイナミックランダムアクセスメモリ(DRAM)等の非一時的なコンピュータ可読媒体を使用して実装される他のストレージコンポーネントを含むか、このメモリ又は他のストレージコンポーネントへのアクセスを有する。ただし、メモリ105は、スタティックランダムアクセスメモリ(SRAM)、不揮発性RAM等を含む他のタイプのメモリを使用して実装されてもよい。処理システム100は、メモリ105等のように、処理システム100内に実装されるエンティティ間の通信をサポートするためのバス110を含む。処理システム100のいくつかの実施形態は、分かり易くするために図1に示されていない他のバス、ブリッジ、スイッチ、ルータ等を含む。
【0011】
処理システム100は、ディスプレイ120に提示される画像をレンダリングするように構成されたグラフィックスプロセッシングユニット(GPU)115を含む。例えば、GPU115は、オブジェクトをレンダリングして、ディスプレイ120に提供される画素値を生成することができ、ディスプレイ120は、画素値を使用して、レンダリングされたオブジェクトを表す画像を表示する。GPU115のいくつかの実施形態は、汎用コンピューティングにも使用することができる。図示した実施形態では、GPU115は、命令を同時又は並列に実行するように構成された複数の処理要素(明確にするために図1に示されていない)を実装する。図示した実施形態では、GPU115は、バス110を介してメモリ105と通信する。しかし、GPU115のいくつかの実施形態は、直接接続を介して、又は、他のバス、ブリッジ、スイッチ、ルータ等を介して、メモリ105と通信する。GPU115は、メモリ105に記憶された命令を実行することができ、GPU115は、実行した命令の結果等の情報をメモリ105に記憶することができる。例えば、メモリ105は、GPU115によって実行されたプログラムコードからの命令のコピー125を記憶することができる。
【0012】
また、処理システム100は、中央処理装置(CPU)130を含み、中央処理装置(CPU)130は、バス110に接続され、バス110を介してGPU115及びメモリ105と通信する。CPU130は、メモリ105に記憶されたプログラムコード135等の命令を実行することができ、CPU130は、実行した命令の結果等の情報をメモリ105に記憶することができる。また、CPU130は、GPU115にドローコールを発行することによって、グラフィックス処理を開始することができる。
【0013】
入力/出力(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に書き込むことができる。
【0014】
GPU115のいくつかの実施形態は、CPU130に実装されたオペレーティングシステム(OS)によって提供されるポリシー等の電源管理ポリシーを実行する電源管理コントローラ(PMC)150を実装する。PMC150は、システム管理ユニットとも呼ばれる(又は、その一部として実装される)ことができる。PMC150のいくつかの実施形態は、OSによって設定されたポリシーに従って、GPU115内のエンティティによる消費電力又はGPU115内の異なる位置での温度等のようにPMC150に提供される情報を使用して、GPU115の熱及び電力条件を管理する。PMC150は、例えば、GPU115又はGPU115に実装された計算ユニットに供給される動作周波数又は動作電圧を変更する等によって、GPU115の電力状態を制御する。また、CPU130のいくつかの実施形態は、CPU130の電力状態を制御するための個別のPMC155を実装する。
【0015】
PMC150は、GPU115の電源管理状態間の電力状態遷移を開始して、省電力化し、パフォーマンスを向上し、又は、他の目標結果を達成する。電源管理状態は、アクティブ状態、アイドル状態、パワーゲーティング状態、及び、異なる電力量を消費するいくつかの他の状態を含むことができる。例えば、GPU115の電力状態は、動作状態、停止(halt)状態、クロック停止状態、全ての内部クロックが停止したスリープ状態、低電圧のスリープ状態、及び、パワーダウン状態を含むことができる。いくつかの実施形態では、追加の電力状態も利用可能であり、クロック周波数、クロック中断及び供給電圧の異なる組み合わせによって定義される。
【0016】
PMC150は、遷移のパフォーマンス又は電力コストを遷移のパフォーマンスゲイン又は省電力化と比較することによって、電源管理状態間の遷移を開始するかどうかを決定する。例えば、PMC150は、マルコフ連鎖モデルを適用して、GPU115の現在の状態に基づいて、電力状態間を遷移するかどうかを決定することができる。ただし、PMC150は、GPU115の現在の状態に関するローカル情報のみを使用して、電力状態遷移を開始するかどうかを決定する。PMC150は、状態履歴(例えば、GPU115の以前の状態に関する知識等)を利用して、電力状態遷移を開始しない。例えば、マルコフ連鎖モデルは、以前の電力状態遷移で達成された状態のみに基づいて、1つの電力状態から別の電力状態への遷移の確率を決定する。
【0017】
電力状態遷移は、パフォーマンスの向上又は消費電力の削減等の目標結果を達成するために実行されるが、パフォーマンスの低下又は一時的な消費電力の増加等の対応するコストも生じる。例えば、低いクロック周波数状態から高いクロック周波数状態に遷移することによって、消費電力の増加というコストと引き換えにパフォーマンスを向上させることが期待される。例えば、GPU115をパワーダウンして省電力化することによって、GPU115の電源が再び投入された場合に、一部のキャッシュをリストアするだけでなく、GPU115が使用するキャッシュをフラッシュする必要もある。少なくとも部分的に、ローカル情報のみに基づいて電力状態遷移を開始するという要件に起因して、PMC150は、いくつかの状況において(例えば、大幅なパフォーマンスコストが生じる電力状態遷移をトリガすることによって、又は、対応する省電力化又はパフォーマンスゲインを生じさせることなくエネルギー消費量を増加させる電力状態遷移をトリガすることによって)、誤った決定を行う。
【0018】
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との間で交換される信号と比較して、大幅に短縮される。
【0019】
PMA160は、GPU115の現在の状態、及び、GPU115の1つ以上の以前の状態についての状態情報に基づいて、アドバイスを生成する。いくつかの実施形態では、PMA160は、GPU115の状態履歴を表す現在の状態、及び、以前の状態に対応する電力状態情報のセットを記憶するために使用されるレジスタセットを含むか、そのレジスタセットへのアクセスを有する。このアドバイスはPMC150に提供され、PMC150は、このアドバイスを電力状態遷移の予測と共に使用して、電力状態遷移を開始するかどうかを決定し、開始する場合には、後続の電力状態を決定する。また、CPU130のいくつかの実施形態は、CPU130の状態履歴に基づいてアドバイスを生成することによってPMC155の動作をサポートするPMA165を実装する。PMA165は、CPU130に従属している。
【0020】
PMA160又はPMA165のいくつかの実施形態は、本明細書で説明するように、人工ニューラルネットワークを使用して実装される。リカレントニューラルネットワーク(recurrent neural network)、残差ニューラルネットワーク(residual neural network)又は他のタイプの強化学習構造として実装することができる人工ニューラルネットワークは、対応するパラメータセットを使用して構成されたプログラムコード170として表される。したがって、人工ニューラルネットワークは、GPU115若しくはCPU130上、又は、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、プロセッシングインメモリ(PIM)等を含む他の処理ユニット上で実行することができる。人工ニューラルネットワークが、対応する既知のデータセットを使用してトレーニングすることができる既知関数を実装する場合、GPU115又はCPU130上で実行される人工ニューラルネットワークに既知のトレーニングデータセットの入力値を提供し、人工ニューラルネットワークの出力値と、既知のトレーニングデータセットのラベル付き出力値と、を比較することによって、人工ニューラルネットワークがトレーニングされる(すなわち、人工ニューラルネットワークを定義するパラメータの値が確立される)。比較に基づいて誤差値が決定され、人工ニューラルネットワークを定義するパラメータの値を変更するために逆伝播される。このプロセスは、パラメータの値が収束基準を満たすまで繰り返される。
【0021】
いくつかの実施形態では、CPU130は、GPU115に関連するPMA160によってPMC150に提供されるアドバイスを補足する追加のソフトウェアアドバイザを実装する。例えば、CPU130は、電力状態遷移の予測の有効性を推定することができる追加のニューラルネットワークを実装することができる。CPU130の追加の処理能力によって、追加のアドバイザは、より長い状態履歴、より多くの状態情報、又は、これらの組み合わせを考慮して、予測された電力状態遷移が目標結果を達成する可能性が高いかどうかを決定する。追加のアドバイザは、処理システム100の外部(例えば、処理システム100と通信するクラウドシステム上等)に実装されてもよい。
【0022】
図2は、いくつかの実施形態による、電源管理システム200のブロック図である。電源管理システム200は、図1に示すPMC150,155及びPMA160,165のいくつかの実施形態を実装するために使用される電源管理コントローラ205及び電源管理アドバイザ210を含む。
【0023】
電源管理コントローラ205は、電源管理システム200を実装する処理ユニットの現在の電力状態に対応する「ローカル」情報に基づいて、後続の電力状態を表す信号215を生成するので、ローカル電源管理コントローラ205と呼ばれる。ローカル情報は、処理ユニット内の1つ以上の温度、処理ユニットによって消費される電力、処理ユニットによって引き出される電流、及び、他のアクティビティを示す情報を含む。ローカル情報は、入力220として提供される。電源管理コントローラ205は、処理ユニットの電力状態履歴に関連する以前の状態情報を考慮しない。例えば、電源管理コントローラ205は、マルコフ連鎖モデルを実装して、処理ユニットの現在の状態に基づいて信号215を決定することができる。
【0024】
電源管理アドバイザ210は、処理ユニットの1つ以上の状態遷移が目標結果を達成する1つ以上の確率を示すアドバイス225を生成するので、グローバル電源管理アドバイザ210と呼ばれる。例えば、目標結果がパフォーマンスの向上であり、処理ユニットが複数の利用可能な電力状態を有する場合、アドバイス225は、利用可能な各電力状態への遷移が目標のパフォーマンス向上を達成する確率を示す。本明細書で説明するように、消費電力の削減等の他の目標結果や目標結果の組み合わせも使用することができる。電源管理アドバイザ210は、処理ユニットの状態及び処理ユニットの状態履歴を特徴付けるグローバル情報に基づいて、アドバイス225を生成する。したがって、電源管理アドバイザ210は、ローカル電源管理コントローラ205と同じ入力220と、処理ユニットの現在の状態を特徴付ける追加のグローバル状態情報及び処理ユニットの状態履歴を特徴付ける情報を含む追加の入力230と、を受信する。処理ユニットの現在の状態及び以前の状態を特徴付ける情報は、処理ユニットの電力状態、処理ユニットに実装されるパフォーマンスカウンタの値、処理ユニットで実行されるためにキューイングされる命令又はドローコールコマンドの特性、処理ユニットの電力状態遷移を開始するかどうかを決定する電源管理コントローラ205への入力220、信号215等のように電源管理コントローラによって行われる決定を示す情報、処理ユニット上で実行されるアプリケーションのタイプ、アプリケーションによって提供されるヒント、及び、処理ユニットの以前の状態について電源管理アドバイザ210によって生成される信号を含むが、これらに限定されない。
【0025】
グローバル電源管理アドバイザ210によって生成されるアドバイス225は、追加の入力として電源管理コントローラ205に提供され、電源管理コントローラ205は、入力220と共にアドバイス225を使用して、処理ユニットの後続の電力状態を示す信号215を生成する。電源管理コントローラ205のいくつかの実施形態は、入力220に基づいて後続の電力状態の予測を生成する。次に、電源管理コントローラ205は、アドバイス225に基づいて、予測を受け入れるか拒否し、新たな予測を生成する。例えば、電源管理コントローラ205が、アイドル状態への遷移が省電力化するであろうと予測するが、アドバイス225が、現在の状態からアイドル状態への以前の遷移が正味の省電力化をもたらさなかったことを示す場合、電源管理コントローラ205は、予測を拒否し、処理ユニットを現在のアクティブ状態に維持することができる。別の例では、状態変化が目標結果を達成しない確率が少なくとも50%であることをアドバイス225が示す場合、電源管理コントローラ205は、予測を拒否する。電源管理アドバイザ210のいくつかの実施形態は、電源管理コントローラ205及びアドバイス225によって行われる予測に適用される重みを示すステートマシンを含む。これらの重みは、信号225を介して電源管理コントローラ205に伝達される。以下に説明するように、電源管理コントローラ205は、重みを使用して、処理ユニットの電力状態遷移を開始するかどうかを決定する。
【0026】
図3は、いくつかの実施形態による、電源管理アドバイザ305を含む回路300のブロック図である。電源管理アドバイザ305は、図1に示すPMA160,165及び図2に示すグローバル電源管理アドバイザ210のいくつかの実施形態を実装するために使用される。電源管理アドバイザ305のいくつかの実施形態は、以下に説明するように、畳み込みニューラルネットワーク(CNN)等のニューラルネットワークを実装する。
【0027】
回路300は、レジスタ310,311,312のセットを含み、これらは、本明細書では「レジスタ310~312」と総称される。レジスタ310~312の各々は、処理ユニットの対応する電力状態に関する状態情報を記憶する。レジスタ310は、処理ユニットの現在の電力状態に関する状態情報を記憶し、レジスタ311は、処理ユニットの以前の電力状態に関する状態情報を記憶し、レジスタ312は、レジスタ311に記憶された状態情報に対応する、以前の電力状態に先行する処理ユニットの別の以前の電力状態に関する状態情報を記憶する。レジスタ310~312に記憶された状態情報は、処理ユニットの現在の電力状態に関連するパフォーマンスカウンタの値と、対応するローカル電源管理コントローラへの入力と、電源管理コントローラによって選択される後続の電力状態を示す情報と、電源管理アドバイザ305によって生成されるアドバイスの値と、エネルギー、電力及びパフォーマンスに関連するアプリケーションヒント等と、を含む。3つのレジスタ310~312が図3に示されているが、回路300のいくつかの実施形態は、対応する処理ユニットについてより多い又はより少ない状態情報のセットを記憶するために使用される、より多い又はより少ないレジスタを含む。
【0028】
レジスタ310~312に記憶されるパフォーマンスカウンタは、電源管理アドバイザ305に関連する処理ユニット内のハードウェアブロックに実装される。いくつかの実施形態では、比較的大量の電力を消費するブロックからのパフォーマンスカウンタの値は、レジスタ310~312に記憶される。例えば、レジスタ310~312は、シェーダアレイ、テクスチャキャッシュ階層、DRAM等からのパフォーマンスカウンタの値を記憶することができる。パフォーマンスカウンタは、電源管理アドバイザ305に入力される特徴として使用され、これらの値は、電源管理アドバイザ305に実装されるニューラルネットワークのトレーニングサンプルとして使用される。ニューラルネットワークの推論中に、又は、ニューラルネットワークの予測ステージ中に、パフォーマンスカウンタの現在の値は、ニューラルネットワークへの入力として使用される。パフォーマンスカウンタは、システムレベルの状態及びパフォーマンスを示す情報を提供する。例えば、処理ユニットの入力コマンドバッファ内のドローパケットを監視するパフォーマンスカウンタは、電力状態の決定に影響を与え得る。パフォーマンスカウンタが多くのドローパケットを示す場合、電力状態をより低い電力状態に変化させない方がよい。処理ユニットは、ドローパケットを処理するために、より高い電力状態にある必要がある。このパフォーマンスカウンタ情報は、ローカルパフォーマンス管理コントローラでは利用できない。
【0029】
レジスタ310~312に記憶された状態情報は、更新信号314に応じて更新される。いくつかの実施形態では、更新信号314は、電力状態遷移に応じて、レジスタ310~312の更新をトリガする。レジスタ310~312を更新することは、情報を、レジスタ310~312から、次の以前の状態を表すレジスタにシフトすることを含む。例えば、レジスタ310内の状態情報がレジスタ311にシフトされ、レジスタ311内の状態情報がレジスタ312にシフトされ、レジスタ312内の状態情報が削除されるか別のレジスタ(図3に示されていない)にシフトされる。「新たな」現在の状態、すなわち、更新信号314をトリガした電力状態遷移に続く処理ユニットの状態に関する状態情報が、レジスタ310に記憶される。
【0030】
レジスタ310~312内の状態情報は、入力ベクトル回路315に提供され、この入力ベクトル回路315は、提供された状態情報に基づいて入力ベクトル320を生成する。入力ベクトル320は、時間間隔のシーケンスでの処理ユニットの対応する電力状態のシーケンスからの状態情報を含むので、処理ユニットの状態履歴を表す。入力ベクトル回路315のいくつかの実施形態は、レジスタ310~312に記憶された状態情報の値を連結することによって入力ベクトル320を生成する。ただし、入力ベクトル回路315の他の実施形態は、レジスタ310~312に記憶された状態情報の様々な組み合わせを使用して、入力ベクトル320を生成する。入力ベクトル320は、電源管理アドバイザ305に提供される。
【0031】
以前の状態遷移の計算された有効性を表す情報325は、トレーニングラベル回路330に提供され、このトレーニングラベル回路330は、以前の状態遷移が有効であったかどうかを示すラベル335を生成する。ラベル335のいくつかの実施形態は、以前の状態遷移が、パフォーマンスゲイン、エネルギー使用量の削減、これらの組み合わせ、又は、他の結果等の目標結果をもたらしたかどうかを示すラベルを含む。トレーニングラベル回路330は、ラベル335を電源管理アドバイザ305に提供し、電源管理アドバイザ305は、ラベル335を入力ベクトル320と共に使用して、異なる電力状態遷移が目標結果をもたらす確率を決定する。本明細書で説明するように、電源管理アドバイザ305のいくつかの実施形態は、強化学習構造のニューラルネットワークとして実装される。電源管理アドバイザ305に実装されるニューラルネットワークの例は、リカレントニューラルネットワーク又は残留ニューラルネットワークを含むが、これらに限定されない。ニューラルネットワークは、電力状態遷移のパターン、及び、それらのパターンが目標結果をもたらす確率を学習する。したがって、電源管理アドバイザ305は、入力320によって表される状態履歴を学習パターンと比較することによって、目標結果を達成する確率を表す信号340を生成することができる。ニューラルネットワークのトレーニングは、トレーニングデータセット、電源管理アドバイザ305によって生成される信号340のフィードバック、又は、これらの組み合わせを使用して実行される。
【0032】
図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等の遷移は、制御信号の変化の原因となり、クロック速度、電圧、周波数、他のパラメータ値、又は、これらの組み合わせを変化させることができる。いくつかの実施形態では、状態情報は、クロック速度ドメイン、周波数/電圧ドメイン、電力ドメイン等のような処理ユニットの複数のドメインを特徴付ける。
【0033】
図1に示すPMC150,155又は図2に示すローカル電源管理コントローラ205等の電源管理コントローラは、ローカル情報を使用して、状態401~406間の遷移を予測する。例えば、電源管理コントローラは、マルコフ連鎖モデルを実装して、電力状態遷移の確率を予測することができる。マルコフ連鎖は、各イベントの確率が以前のイベントで達成された状態のみに依存する、可能なイベントシーケンスを記述する確率モデルである。これらのイベントは、チップのハードウェアブロック(図1に示すGPU115又はCPU130等)の状態、又は、電源管理コントローラに関連する他のエンティティの状態である。電源管理コントローラは、現在の状態401、及び、現在の状態401から後続の状態への遷移の確率のセットによって後続の状態を予測するように、マルコフ連鎖モデルを生成する。状態遷移の予測(例えば、確率)は、実行時に更新される。
【0034】
図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」と総称される。
【0035】
電源管理コントローラ505は、現在の電力状態に関するローカル状態情報(図示した実施形態では電力状態511)に基づいて、電力状態511~518の間の状態遷移の確率を含む予測520を生成する。いくつかの実施形態では、電源管理コントローラ505は、現在の電力状態511から処理ユニットの利用可能な電力状態511~518へのマルコフ連鎖状態遷移確率(X[0..N-1])を使用して、予測520を生成する。Nの値は、一部のGPU実装に利用可能な8つの電力状態等の電力状態の数である。
【0036】
ニューラルネットワーク510は、後続の状態への遷移の確率を表すアドバイス525を生成する。例えば、これらの確率は、次のように表される。
【数1】

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