(57)【要約】装置（１００）は、処理ユニット（１１５，１３０）の状態履歴を表す状態情報のセットを記憶する複数のレジスタ（３１０，３１１，３１２）を含む。また、この装置は、状態情報のセットに基づいて信号（２１５）を生成する電源管理アドバイザ（ＰＭＡ）（１６０）も含み、信号は、処理ユニットの電力状態遷移が目標結果を達成する確率を示す。場合によっては、信号は、ハードウェア回路を含む電源管理コントローラ（１５０，１５５）に提供され、ハードウェア回路は、この信号と、処理ユニットの現在の電力状態（４０１）に対応する状態情報のサブセットを表す電源管理コントローラへの入力と、に基づいて、処理ユニットの電力状態遷移を開始する。【選択図】図２
2021536607.tif 000002
【特許請求の範囲】
【請求項１】
処理ユニットの状態履歴を表す状態情報のセットを記憶する複数のレジスタと、
前記状態情報のセットに基づいて信号を生成する電源管理アドバイザ（ＰＭＡ）であって、前記信号は、前記処理ユニットの電力状態遷移が目標結果を達成する確率を示す、ＰＭＡと、を備える、
装置。
【請求項２】
前記複数のレジスタのうち第１レジスタは、前記処理ユニットの現在の状態を表す状態情報の第１セットを記憶し、前記複数のレジスタのうち少なくとも１つの第２レジスタは、前記処理ユニットの少なくとも１つの以前の状態を表す少なくとも１つの状態情報の第２セットを記憶する、
請求項１の装置。
【請求項３】
前記状態情報の第１セットは、前記処理ユニットが新たな電力状態に遷移することに応じて前記少なくとも１つの第２レジスタにコピーされ、前記新たな電力状態に対応する新たな状態情報のセットは、前記処理ユニットが前記新たな電力状態に遷移することに応じて前記第１レジスタに記憶される、
請求項２の装置。
【請求項４】
前記状態情報のセットは、前記処理ユニットの電力状態、前記処理ユニットに実装されるパフォーマンスカウンタの値、前記処理ユニットで実行されるためにキューイングされる命令又はドローコールコマンドの特性、前記処理ユニットの電力状態遷移を開始するかどうかを決定する電源管理コントローラへの入力、前記電源管理コントローラによって行われる決定を示す情報、前記処理ユニット上で実行されるアプリケーションのタイプ、前記アプリケーションによって提供されるヒント、及び、前記ＰＭＡによって生成される信号、のうち少なくとも１つを含む、
請求項１の装置。
【請求項５】
前記ＰＭＡは、前記複数のレジスタ内の前記状態情報のセットを、前記状態情報のセットに対応する電力状態遷移の以前の結果と比較することによって、前記信号の値を生成する、
請求項１の装置。
【請求項６】
前記目標結果は、前記電力状態遷移に起因するパフォーマンスコスト又は増加したエネルギー使用量のうち少なくとも１つを超える、前記電力状態遷移に起因するパフォーマンスゲイン又は省電力化のうち少なくとも１つである、
請求項５の装置。
【請求項７】
前記状態情報のセットに関連する前記以前の結果は、以前の電力状態遷移に起因するパフォーマンスゲイン又は省電力化が、前記以前の電力状態遷移に起因する、対応するパフォーマンスコスト又はエネルギー使用量の増加を超えたかどうかを示す、
請求項６の装置。
【請求項８】
前記ＰＭＡは、前記処理ユニットの現在の電力状態から複数の利用可能な電力状態への電力状態遷移が前記目標結果を達成する確率を生成するニューラルネットワークを備える、
請求項１〜７の何れかの装置。
【請求項９】
前記信号は、前記処理ユニットの電力状態遷移を開始する電源管理コントローラに提供される、
請求項１の装置。
【請求項１０】
前記処理ユニットの電力状態遷移を開始するかどうかを決定するために、前記ＰＭＡによって提供される前記信号と、前記電源管理コントローラによって行われる電力状態遷移の決定と、に適用される重みを示すステートマシンをさらに備える、
請求項９の装置。
【請求項１１】
電源管理アドバイザ（ＰＭＡ）によって生成された信号を受信するように構成されたハードウェア回路を備える電源管理コントローラであって、
前記ＰＭＡは、処理ユニットの現在の状態を表す状態情報の第１セットと、前記処理ユニットの少なくとも１つの以前の状態を表す少なくとも１つの状態情報の第２セットと、に基づいて前記信号を生成し、
前記信号は、前記処理ユニットの電力状態遷移が目標結果を達成する確率を示しており、
前記ハードウェア回路は、前記信号と、前記状態情報の第１セットのサブセットを表す入力と、に基づいて、前記処理ユニットの電力状態遷移を開始するように構成されている、
電源管理コントローラ。
【請求項１２】
前記状態情報の第１セット及び前記状態情報の第２セットは、前記処理ユニットの電力状態、前記処理ユニットに実装されるパフォーマンスカウンタの値、前記処理ユニットで実行されるためにキューイングされる命令又はドローコールコマンドの特性、前記電源管理コントローラへの前記入力、前記電源管理コントローラによって行われる決定を示す情報、前記処理ユニット上で実行されるアプリケーションのタイプ、前記アプリケーションによって提供されるヒント、及び、前記ＰＭＡによって生成される信号、のうち少なくとも１つを含む、
請求項１１の電源管理コントローラ。
【請求項１３】
前記ハードウェア回路は、前記入力に基づいて、前記処理ユニットの前記電力状態遷移に続く後続の電力状態の予測を生成する、
請求項１１又は１２の電源管理コントローラ。
【請求項１４】
前記ハードウェア回路は、前記ＰＭＡによって提供される前記信号と、前記電源管理コントローラによって行われる前記予測と、に適用される重みを示す情報を受信するように構成されており、前記ハードウェア回路は、前記重みを前記信号及び前記予測に適用して、前記処理ユニットの前記電力状態遷移を開始するかどうかを決定する、
請求項１３の電源管理コントローラ。
【請求項１５】
処理ユニットであって、
前記処理ユニットの現在の電力状態を表す入力と、複数の利用可能な電力状態と、に基づいて、前記現在の電力状態からの前記処理ユニットの電力状態遷移に続く後続の電力状態の予測を生成する電源管理コントローラと、
前記処理ユニットの状態履歴を表す状態情報のセットに基づいて信号を生成する電源管理アドバイザ（ＰＭＡ）であって、前記信号は、前記複数の利用可能な電力状態への前記処理ユニットの前記電力状態遷移が目標結果を達成する確率を示す、ＰＭＡと、を備え、
前記電源管理コントローラは、前記予測及び前記信号に基づいて前記後続の電力状態を選択する、
処理ユニット。
【請求項１６】
複数のレジスタをさらに備え、
前記複数のレジスタのうち第１レジスタは、前記処理ユニットの現在の状態を表す状態情報の第１セットを記憶し、前記複数のレジスタのうち少なくとも１つの第２レジスタは、前記処理ユニットの少なくとも１つの以前の状態を表す少なくとも１つの状態情報の第２セットを記憶し、
前記ＰＭＡは、前記複数のレジスタから前記状態情報の第１セット及び前記少なくとも１つの状態情報の第２セットにアクセスする、
請求項１５の処理ユニット。
【請求項１７】
前記状態情報の第１セットは、前記処理ユニットが前記後続の電力状態に遷移することに応じて、前記少なくとも１つの第２レジスタにコピーされ、前記後続の電力状態に対応する新たな状態情報のセットは、前記処理ユニットが前記後続の電力状態に遷移することに応じて前記第１レジスタに記憶される、
請求項１６の処理ユニット。
【請求項１８】
前記状態情報のセットは、前記処理ユニットの電力状態、前記処理ユニットに実装されるパフォーマンスカウンタの値、前記処理ユニットで実行されるためにキューイングされる命令又はドローコールコマンドの特性、前記電源管理コントローラへの前記入力、前記電源管理コントローラによって行われる決定を示す情報、前記処理ユニット上で実行されるアプリケーションのタイプ、前記アプリケーションによって提供されるヒント、及び、前記ＰＭＡによって生成される信号、のうち少なくとも１つを含む、
請求項１５の処理ユニット。
【請求項１９】
前記ＰＭＡは、現在の電力状態から複数の利用可能な電力状態への前記処理ユニットの電力状態遷移が前記目標結果を達成する確率を生成するニューラルネットワークを備える、
請求項１５〜１８の何れかの処理ユニット。
【請求項２０】
前記処理ユニットの前記電力状態遷移を開始するかどうかを決定するために、前記ＰＭＡによって提供される前記信号と、前記電源管理コントローラによって行われる電力状態遷移の決定と、に適用される重みを示すステートマシンをさらに備える、
請求項１９の処理ユニット。
【発明の詳細な説明】
【背景技術】
【０００１】
中央処理装置（ＣＰＵ）、グラフィックスプロセッシングユニット（ＧＰＵ）及びアクセラレーテッドプロセッシングユニット（ＡＰＵ）等の処理ユニットは、異なる電源管理状態間を遷移することによって、パフォーマンスを向上させたり、省電力化させたりすることができる。例えば、処理ユニットは、処理ユニットが実行する命令がない場合にアイドリングすることによって省電力化することができる。処理ユニットが比較的長時間アイドル状態にある場合、処理ユニットに電流が供給されないように、処理ユニットに供給される電力がパワーゲーティングされ、これにより、待機電力及びリーク電力の消費を削減する。例えば、ＣＰＵ内のプロセッサコアは、プロセッサコアが所定の時間間隔よりも長い間アイドル状態になっている場合にパワーゲーティングされ得る。ただし、処理ユニットの電源管理状態を変化させる電源管理技術は、状態変化によって節約されるリソースに比べて、大量のシステムリソースを消費する可能性がある。例えば、プロセッサコアをパワーゲーティングすることは、プロセッサコア内のキャッシュをフラッシュし、プロセッサコアの状態を定義する情報をセーブする必要があり、時間及び電力の両方を消費する。低電力状態（アイドル状態又はパワーゲーティング状態等）からアクティブ状態への遷移は、セーブされた状態情報をプロセッサコア内のレジスタにコピーして戻す必要がある場合等に、プロセッサコアをアクティブ状態に戻すためのパフォーマンスコストを必要とする。
【発明の概要】
【課題を解決するための手段】
【０００２】
一態様では、装置は、処理ユニットの状態履歴を表す状態情報のセットを記憶する複数のレジスタを含む。さらに、この装置は、状態情報のセットに基づいて信号を生成する電源管理アドバイザ（ＰＭＡ）を含み、信号は、処理ユニットの電力状態遷移が目標結果を達成する確率を示す。一実施形態では、複数のレジスタのうち第１レジスタは、処理ユニットの現在の状態を表す状態情報の第１セットを記憶し、複数のレジスタのうち少なくとも１つの第２レジスタは、処理ユニットの少なくとも１つの前の状態を表す少なくとも１つの状態情報の第２セットを記憶する。この場合、状態情報の第１セットは、処理ユニットが新たな電力状態に遷移することに応じて少なくとも１つの第２レジスタにコピーされ、新たな電力状態に対応する状態情報の新たなセットは、処理ユニットが新たな電力状態に遷移することに応じて第１レジスタに記憶され得る。一実施形態では、状態情報のセットは、処理ユニットの電力状態、処理ユニットに実装されるパフォーマンスカウンタの値、処理ユニットでの実行のためにキューイングされる命令又はドローコールコマンドの特性、処理ユニットの電力状態遷移を開始するかどうかを決定する電源管理コントローラへの入力、電源管理コントローラによって行われる決定を示す情報、処理ユニット上で実行されるアプリケーションのタイプ、アプリケーションによって提供されるヒント、及び、ＰＭＡによって生成される信号、のうち少なくとも１つを含む。一実施形態では、ＰＭＡは、複数のレジスタ内の状態情報のセットを、状態情報のセットに対応する電力状態遷移の以前の結果と比較することによって、信号の値を生成する。この場合、目標結果は、電力状態遷移に起因するパフォーマンスコスト、又は、増加したエネルギー使用量のうち少なくとも１つを上回る、電力状態遷移に起因するパフォーマンスゲイン又は省電力化のうち少なくとも１つとすることができる。さらに、状態情報のセットに関連する以前の結果は、以前の電力状態遷移に起因するパフォーマンスゲイン又は省電力化が、以前の電力状態遷移に起因する、対応するパフォーマンスコスト又はエネルギー使用量の増加を上回ったかどうかを示すことができる。一実施形態では、ＰＭＡは、現在の電力状態から複数の利用可能な電力状態への処理ユニットの電力状態遷移が目標結果を達成する確率を生成するニューラルネットワークを含む。一実施形態では、信号は、処理ユニットの電力状態遷移を開始する電源管理コントローラに提供され、装置は、処理ユニットの電力状態遷移を開始するかどうかを決定するために、ＰＭＡによって提供される信号と、電源管理コントローラによって行われる電力状態遷移の決定と、に適用される重みを示すステートマシンをさらに含む。
【０００３】
別の態様では、電源管理コントローラは、電源管理アドバイザ（ＰＭＡ）によって生成される信号を受信するように構成されたハードウェア回路を含み、ＰＭＡは、処理ユニットの現在の状態を表す状態情報の第１セットと、処理ユニットの少なくとも１つの以前の状態を表す少なくとも１つの状態情報の第２セットと、に基づいて信号を生成し、この信号は、処理ユニットの電力状態遷移が目標結果を達成する確率を示す。さらに、ハードウェア回路は、状態情報の第１セットのサブセットを表す信号及び入力に基づいて、処理ユニットの電力状態遷移を開始するように構成されている。一実施形態では、状態情報の第１セット及び第２セットは、処理ユニットの電力状態、処理ユニットに実装されるパフォーマンスカウンタの値、処理ユニットでの実行のためにキューイングされる命令又はドローコールコマンドの特性、電源管理コントローラへの入力、電源管理コントローラによって行われる決定を示す情報、処理ユニット上で実行されるアプリケーションのタイプ、アプリケーションによって提供されるヒント、及び、ＰＭＡによって生成される信号、のうち少なくとも１つを含む。ハードウェア回路は、これらの入力に基づいて、処理ユニットの電力状態遷移後の後続の電力状態の予測を生成することができる。一実施形態では、ハードウェア回路は、ＰＭＡによって提供される信号と、電源管理コントローラによって行われる予測と、に適用される重みを示す情報を受信するように構成されており、ハードウェア回路は、これらの重みを信号及び予測に適用して、処理ユニットの電力状態遷移を開始するかどうかを決定する。
【０００４】
さらに別の態様によれば、処理ユニットは、電源管理コントローラを含み、電源管理コントローラは、処理ユニットの現在の電力状態を表す入力に基づいて、及び、複数の利用可能な電力状態から、現在の電力状態からの処理ユニットの電力状態遷移後の後続の電力状態の予測を生成する。処理ユニットは、処理ユニットの状態履歴を表す状態情報のセットに基づいて信号を生成する電源管理アドバイザ（ＰＭＡ）をさらに含み、この信号は、複数の利用可能な電力状態への処理ユニットの電力状態遷移が目標結果を達成する確率を示す。電源管理コントローラは、予測及び信号に基づいて、後続の電力状態を選択する。一実施形態では、処理ユニットは、複数のレジスタをさらに含み、複数のレジスタのうち第１レジスタは、処理ユニットの現在の状態を表す状態情報の第１セットを記憶し、複数のレジスタのうち少なくとも１つの第２レジスタは、処理ユニットの少なくとも１つの以前の状態を表す少なくとも１つの状態情報の第２セットを記憶し、ＰＭＡは、複数のレジスタから状態情報の第１セット及び少なくとも１の第２セットにアクセスする。一実施形態では、状態情報の第１セットは、処理ユニットが後続の電力状態に遷移することに応じて、少なくとも１つの第２レジスタにコピーされ、この後続の電力状態に対応する状態情報の新たなセットは、処理ユニットが後続の電力状態に遷移することに応じて第１レジスタに記憶される。一実施形態では、状態情報のセットは、処理ユニットの電力状態、処理ユニットに実装されるパフォーマンスカウンタの値、処理ユニットでの実行のためにキューイングされる命令又はドローコールコマンドの特性、電源管理コントローラへの入力、電源管理コントローラによって行われる決定を示す情報、処理ユニット上で実行されるアプリケーションのタイプ、アプリケーションによって提供されるヒント、及び、ＰＭＡによって生成される信号、のうち少なくとも１つを含む。一実施形態では、ＰＭＡは、現在の電力状態から複数の利用可能な電力状態への処理ユニットの電力状態遷移が目標結果を達成する確率を生成するニューラルネットワークを含み、処理ユニットは、ステートマシンをさらに含み、このステートマシンは、処理ユニットの電力状態遷移を開始するかどうかを決定するために、ＰＭＡによって提供される信号と、電源管理コントローラによって行われる電力状態遷移の決定と、に適用される重みを示す。
【０００５】
添付図面を参照することによって、本開示をより良好に理解することができ、その多くの特徴及び利点が当業者に明らかになる。異なる図面で同じ符号を使用することは、類似又は同一の要素を示す。
【図面の簡単な説明】
【０００６】
【図１】いくつかの実施形態による、処理システムのブロック図である。
【図２】いくつかの実施形態による、電源管理システムのブロック図である。
【図３】いくつかの実施形態による、電源管理アドバイザを含む回路のブロック図である。
【図４】いくつかの実施形態による、処理ユニットの状態シーケンスを示す状態図である。
【図５】いくつかの実施形態による、電源管理制御システムのブロック図である。
【図６】いくつかの実施形態による、適用される重みを決定するステートマシンのブロック図である。
【発明を実施するための形態】
【０００７】
処理ユニット内の電源管理コントローラは、処理ユニットの状態履歴に関係なく現在の状態に基づいて、処理ユニットの電力状態を変化させるかどうかを決定するリアクティブコントローラとして実装される。従来の電源管理コントローラは、ＧＰＵの計算ユニットでのアクティビティ、ＧＰＵで消費される電力の値、ＧＰＵによって引き出される電流の値、温度及び他の状態情報を監視して、コンポーネントに供給されるクロック周波数又は電圧を変更することによって電力状態を変化させるかどうかを決定する。例えば、マルコフ連鎖モデルを使用して電力状態遷移を予測することができ、このマルコフ連鎖モデルは、各イベントの確率が以前のイベントで達成された状態のみに依存する可能性のあるイベントのシーケンスを記述する確率モデルである。従来の電源管理コントローラは、いくつかの状況において、例えば、省電力化又はパフォーマンスゲインを生じることなく、パフォーマンスコスト又はエネルギー使用量の大幅な増加を招く電力状態遷移を引き起こすことによって、誤った決定を下す。
【０００８】
図１〜図６は、処理ユニット内の従来のローカルな電源管理コントローラをサポートする電源管理アドバイザを開示する。電源管理アドバイザは、処理ユニットの現在の状態、及び、処理ユニットの１つ以上の以前の状態に基づいて、信号（本明細書では「アドバイス」と呼ばれる）を生成する。このアドバイスは、ローカル電源管理コントローラによって決定された電力状態遷移が目標結果（例えば、電力状態遷移に起因するパフォーマンスゲイン又は省電力化が電力状態遷移のコストを上回る等）を達成する確率を示す。いくつかの実施形態では、現在の状態及び以前の状態は、対応する電力状態、パフォーマンスカウンタの値、処理ユニットでの実行のためにキューイングされる命令又はドローコールコマンドの特性、ローカル電源管理コントローラへの入力、ローカル電源管理コントローラによって行われる決定、アプリケーションのタイプ、アプリケーションのヒント、及び、電源管理アドバイザで生成されるアドバイス、によって定義される。電源管理アドバイザは、処理ユニットの現在の状態及び以前の状態によって表される状態情報シーケンスを、電源管理コントローラによってトリガされる、対応する電力状態遷移の以前の結果と比較することによって、アドバイスの値を決定する。いくつかの実施形態では、以前の結果は、以前の電力状態遷移からのパフォーマンスゲイン又は省電力化が、対応するパフォーマンスコスト又はエネルギー使用量の増加を上回ったかどうかを示す。
【０００９】
電源管理アドバイザのいくつかの実施形態は、処理ユニットの現在の状態シーケンス及び以前の状態シーケンスに基づいて、利用可能な電力状態のうち何れが次の電力状態であるかを示す確率を生成するニューラルネットワークを実装する。この確率は、利用可能な各電力状態への処理ユニットの電力状態遷移が目標結果を達成する可能性（例えば、パフォーマンスゲイン又は省電力化が、対応するパフォーマンスコスト又はエネルギー使用量の増加を上回る等の可能性）を示す。以前の電力状態の変化の有効性を示す、シミュレーション、又は、オンザフライフィードバックによって生成されたトレーニングデータセットを使用して、ニューラルネットワークをトレーニングすることができる。電源管理アドバイザは、重みを示すステートマシンを実装することもできる。これらの重みは、電源管理アドバイザによって生成されたアドバイスと、ローカル電源管理コントローラによって行われる決定と、に適用される。ローカル電源管理コントローラのいくつかの実施形態は、重みを、アドバイス、及び、次の電力状態を決定するための決定に適用する。
【００１０】
図１は、いくつかの実施形態による、処理システム１００のブロック図である。処理システム１００は、メモリ１０５、又は、例えばダイナミックランダムアクセスメモリ（ＤＲＡＭ）等の非一時的なコンピュータ可読媒体を使用して実装される他のストレージコンポーネントを含むか、このメモリ又は他のストレージコンポーネントへのアクセスを有する。ただし、メモリ１０５は、スタティックランダムアクセスメモリ（ＳＲＡＭ）、不揮発性ＲＡＭ等を含む他のタイプのメモリを使用して実装されてもよい。処理システム１００は、メモリ１０５等のように、処理システム１００内に実装されるエンティティ間の通信をサポートするためのバス１１０を含む。処理システム１００のいくつかの実施形態は、分かり易くするために図１に示されていない他のバス、ブリッジ、スイッチ、ルータ等を含む。
【００１１】
処理システム１００は、ディスプレイ１２０に提示される画像をレンダリングするように構成されたグラフィックスプロセッシングユニット（ＧＰＵ）１１５を含む。例えば、ＧＰＵ１１５は、オブジェクトをレンダリングして、ディスプレイ１２０に提供される画素値を生成することができ、ディスプレイ１２０は、画素値を使用して、レンダリングされたオブジェクトを表す画像を表示する。ＧＰＵ１１５のいくつかの実施形態は、汎用コンピューティングにも使用することができる。図示した実施形態では、ＧＰＵ１１５は、命令を同時又は並列に実行するように構成された複数の処理要素（明確にするために図１に示されていない）を実装する。図示した実施形態では、ＧＰＵ１１５は、バス１１０を介してメモリ１０５と通信する。しかし、ＧＰＵ１１５のいくつかの実施形態は、直接接続を介して、又は、他のバス、ブリッジ、スイッチ、ルータ等を介して、メモリ１０５と通信する。ＧＰＵ１１５は、メモリ１０５に記憶された命令を実行することができ、ＧＰＵ１１５は、実行した命令の結果等の情報をメモリ１０５に記憶することができる。例えば、メモリ１０５は、ＧＰＵ１１５によって実行されたプログラムコードからの命令のコピー１２５を記憶することができる。
【００１２】
また、処理システム１００は、中央処理装置（ＣＰＵ）１３０を含み、中央処理装置（ＣＰＵ）１３０は、バス１１０に接続され、バス１１０を介してＧＰＵ１１５及びメモリ１０５と通信する。ＣＰＵ１３０は、メモリ１０５に記憶されたプログラムコード１３５等の命令を実行することができ、ＣＰＵ１３０は、実行した命令の結果等の情報をメモリ１０５に記憶することができる。また、ＣＰＵ１３０は、ＧＰＵ１１５にドローコールを発行することによって、グラフィックス処理を開始することができる。
【００１３】
入力／出力（Ｉ／Ｏ）エンジン１４０は、ディスプレイ１２０、並びに、キーボード、マウス、プリンタ及び外部ディスク等の処理システム１００の他の要素に関連する入出力動作を処理する。Ｉ／Ｏエンジン１４０は、Ｉ／Ｏエンジン１４０がメモリ１０５、ＧＰＵ１１５又はＣＰＵ１３０と通信することができるように、バス１１０に結合されている。図示した実施形態では、Ｉ／Ｏエンジン１４０は、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）等の非一時的なコンピュータ可読媒体を使用して実装された外部ストレージコンポーネント１４５に記憶された情報を読み出すように構成されている。また、Ｉ／Ｏエンジン１４０は、ＧＰＵ１１５又はＣＰＵ１３０による処理結果等の情報を、外部ストレージコンポーネント１４５に書き込むことができる。
【００１４】
ＧＰＵ１１５のいくつかの実施形態は、ＣＰＵ１３０に実装されたオペレーティングシステム（ＯＳ）によって提供されるポリシー等の電源管理ポリシーを実行する電源管理コントローラ（ＰＭＣ）１５０を実装する。ＰＭＣ１５０は、システム管理ユニットとも呼ばれる（又は、その一部として実装される）ことができる。ＰＭＣ１５０のいくつかの実施形態は、ＯＳによって設定されたポリシーに従って、ＧＰＵ１１５内のエンティティによる消費電力又はＧＰＵ１１５内の異なる位置での温度等のようにＰＭＣ１５０に提供される情報を使用して、ＧＰＵ１１５の熱及び電力条件を管理する。ＰＭＣ１５０は、例えば、ＧＰＵ１１５又はＧＰＵ１１５に実装された計算ユニットに供給される動作周波数又は動作電圧を変更する等によって、ＧＰＵ１１５の電力状態を制御する。また、ＣＰＵ１３０のいくつかの実施形態は、ＣＰＵ１３０の電力状態を制御するための個別のＰＭＣ１５５を実装する。
【００１５】
ＰＭＣ１５０は、ＧＰＵ１１５の電源管理状態間の電力状態遷移を開始して、省電力化し、パフォーマンスを向上し、又は、他の目標結果を達成する。電源管理状態は、アクティブ状態、アイドル状態、パワーゲーティング状態、及び、異なる電力量を消費するいくつかの他の状態を含むことができる。例えば、ＧＰＵ１１５の電力状態は、動作状態、停止（halt）状態、クロック停止状態、全ての内部クロックが停止したスリープ状態、低電圧のスリープ状態、及び、パワーダウン状態を含むことができる。いくつかの実施形態では、追加の電力状態も利用可能であり、クロック周波数、クロック中断及び供給電圧の異なる組み合わせによって定義される。
【００１６】
ＰＭＣ１５０は、遷移のパフォーマンス又は電力コストを遷移のパフォーマンスゲイン又は省電力化と比較することによって、電源管理状態間の遷移を開始するかどうかを決定する。例えば、ＰＭＣ１５０は、マルコフ連鎖モデルを適用して、ＧＰＵ１１５の現在の状態に基づいて、電力状態間を遷移するかどうかを決定することができる。ただし、ＰＭＣ１５０は、ＧＰＵ１１５の現在の状態に関するローカル情報のみを使用して、電力状態遷移を開始するかどうかを決定する。ＰＭＣ１５０は、状態履歴（例えば、ＧＰＵ１１５の以前の状態に関する知識等）を利用して、電力状態遷移を開始しない。例えば、マルコフ連鎖モデルは、以前の電力状態遷移で達成された状態のみに基づいて、１つの電力状態から別の電力状態への遷移の確率を決定する。
【００１７】
電力状態遷移は、パフォーマンスの向上又は消費電力の削減等の目標結果を達成するために実行されるが、パフォーマンスの低下又は一時的な消費電力の増加等の対応するコストも生じる。例えば、低いクロック周波数状態から高いクロック周波数状態に遷移することによって、消費電力の増加というコストと引き換えにパフォーマンスを向上させることが期待される。例えば、ＧＰＵ１１５をパワーダウンして省電力化することによって、ＧＰＵ１１５の電源が再び投入された場合に、一部のキャッシュをリストアするだけでなく、ＧＰＵ１１５が使用するキャッシュをフラッシュする必要もある。少なくとも部分的に、ローカル情報のみに基づいて電力状態遷移を開始するという要件に起因して、ＰＭＣ１５０は、いくつかの状況において（例えば、大幅なパフォーマンスコストが生じる電力状態遷移をトリガすることによって、又は、対応する省電力化又はパフォーマンスゲインを生じさせることなくエネルギー消費量を増加させる電力状態遷移をトリガすることによって）、誤った決定を行う。
【００１８】
ＧＰＵ１１５は、電源管理アドバイザ（ＰＭＡ）１６０を含み、このＰＭＡ１６０は、目標結果を達成するために、電力状態遷移の確率を示す信号（本明細書では「アドバイス」と呼ばれる）を生成することによって、ＰＭＣ１５０の動作をサポートする。ＰＭＡ１６０は、ＧＰＵ１１５に従属している。本明細書で使用される場合、「従属」という用語は、例えば、ＧＰＵ１１５からの命令又はシグナリング等に応じて、ＰＭＡ１６０がＧＰＵ１１５の制御下で動作することを示す。さらに、ＰＭＡ１６０によって生成された信号は、ＧＰＵ１１５に提供され、バス１１０等の中間デバイスを通過しない。図示した実施形態では、ＰＭＡ１６０は、ＧＰＵ１１５に統合されている。ただし、ＰＭＡ１６０のいくつかの実施形態は、ＧＰＵ１１５の外部に実装されており、ワイヤ、トレース又は他の接続を使用してＧＰＵ１１５と相互接続される。ＧＰＵ１１５に従属するＰＭＡ１６０を実装することによって、ＰＭＡ１６０とＧＰＵ１１５との間で交換される信号のレイテンシは、例えばバス１１０を介してＧＰＵ１１５とＣＰＵ１３０との間で交換される信号と比較して、大幅に短縮される。
【００１９】
ＰＭＡ１６０は、ＧＰＵ１１５の現在の状態、及び、ＧＰＵ１１５の１つ以上の以前の状態についての状態情報に基づいて、アドバイスを生成する。いくつかの実施形態では、ＰＭＡ１６０は、ＧＰＵ１１５の状態履歴を表す現在の状態、及び、以前の状態に対応する電力状態情報のセットを記憶するために使用されるレジスタセットを含むか、そのレジスタセットへのアクセスを有する。このアドバイスはＰＭＣ１５０に提供され、ＰＭＣ１５０は、このアドバイスを電力状態遷移の予測と共に使用して、電力状態遷移を開始するかどうかを決定し、開始する場合には、後続の電力状態を決定する。また、ＣＰＵ１３０のいくつかの実施形態は、ＣＰＵ１３０の状態履歴に基づいてアドバイスを生成することによってＰＭＣ１５５の動作をサポートするＰＭＡ１６５を実装する。ＰＭＡ１６５は、ＣＰＵ１３０に従属している。
【００２０】
ＰＭＡ１６０又はＰＭＡ１６５のいくつかの実施形態は、本明細書で説明するように、人工ニューラルネットワークを使用して実装される。リカレントニューラルネットワーク（recurrent neural network）、残差ニューラルネットワーク（residual neural network）又は他のタイプの強化学習構造として実装することができる人工ニューラルネットワークは、対応するパラメータセットを使用して構成されたプログラムコード１７０として表される。したがって、人工ニューラルネットワークは、ＧＰＵ１１５若しくはＣＰＵ１３０上、又は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、プロセッシングインメモリ（ＰＩＭ）等を含む他の処理ユニット上で実行することができる。人工ニューラルネットワークが、対応する既知のデータセットを使用してトレーニングすることができる既知関数を実装する場合、ＧＰＵ１１５又はＣＰＵ１３０上で実行される人工ニューラルネットワークに既知のトレーニングデータセットの入力値を提供し、人工ニューラルネットワークの出力値と、既知のトレーニングデータセットのラベル付き出力値と、を比較することによって、人工ニューラルネットワークがトレーニングされる（すなわち、人工ニューラルネットワークを定義するパラメータの値が確立される）。比較に基づいて誤差値が決定され、人工ニューラルネットワークを定義するパラメータの値を変更するために逆伝播される。このプロセスは、パラメータの値が収束基準を満たすまで繰り返される。
【００２１】
いくつかの実施形態では、ＣＰＵ１３０は、ＧＰＵ１１５に関連するＰＭＡ１６０によってＰＭＣ１５０に提供されるアドバイスを補足する追加のソフトウェアアドバイザを実装する。例えば、ＣＰＵ１３０は、電力状態遷移の予測の有効性を推定することができる追加のニューラルネットワークを実装することができる。ＣＰＵ１３０の追加の処理能力によって、追加のアドバイザは、より長い状態履歴、より多くの状態情報、又は、これらの組み合わせを考慮して、予測された電力状態遷移が目標結果を達成する可能性が高いかどうかを決定する。追加のアドバイザは、処理システム１００の外部（例えば、処理システム１００と通信するクラウドシステム上等）に実装されてもよい。
【００２２】
図２は、いくつかの実施形態による、電源管理システム２００のブロック図である。電源管理システム２００は、図１に示すＰＭＣ１５０，１５５及びＰＭＡ１６０，１６５のいくつかの実施形態を実装するために使用される電源管理コントローラ２０５及び電源管理アドバイザ２１０を含む。
【００２３】
電源管理コントローラ２０５は、電源管理システム２００を実装する処理ユニットの現在の電力状態に対応する「ローカル」情報に基づいて、後続の電力状態を表す信号２１５を生成するので、ローカル電源管理コントローラ２０５と呼ばれる。ローカル情報は、処理ユニット内の１つ以上の温度、処理ユニットによって消費される電力、処理ユニットによって引き出される電流、及び、他のアクティビティを示す情報を含む。ローカル情報は、入力２２０として提供される。電源管理コントローラ２０５は、処理ユニットの電力状態履歴に関連する以前の状態情報を考慮しない。例えば、電源管理コントローラ２０５は、マルコフ連鎖モデルを実装して、処理ユニットの現在の状態に基づいて信号２１５を決定することができる。
【００２４】
電源管理アドバイザ２１０は、処理ユニットの１つ以上の状態遷移が目標結果を達成する１つ以上の確率を示すアドバイス２２５を生成するので、グローバル電源管理アドバイザ２１０と呼ばれる。例えば、目標結果がパフォーマンスの向上であり、処理ユニットが複数の利用可能な電力状態を有する場合、アドバイス２２５は、利用可能な各電力状態への遷移が目標のパフォーマンス向上を達成する確率を示す。本明細書で説明するように、消費電力の削減等の他の目標結果や目標結果の組み合わせも使用することができる。電源管理アドバイザ２１０は、処理ユニットの状態及び処理ユニットの状態履歴を特徴付けるグローバル情報に基づいて、アドバイス２２５を生成する。したがって、電源管理アドバイザ２１０は、ローカル電源管理コントローラ２０５と同じ入力２２０と、処理ユニットの現在の状態を特徴付ける追加のグローバル状態情報及び処理ユニットの状態履歴を特徴付ける情報を含む追加の入力２３０と、を受信する。処理ユニットの現在の状態及び以前の状態を特徴付ける情報は、処理ユニットの電力状態、処理ユニットに実装されるパフォーマンスカウンタの値、処理ユニットで実行されるためにキューイングされる命令又はドローコールコマンドの特性、処理ユニットの電力状態遷移を開始するかどうかを決定する電源管理コントローラ２０５への入力２２０、信号２１５等のように電源管理コントローラによって行われる決定を示す情報、処理ユニット上で実行されるアプリケーションのタイプ、アプリケーションによって提供されるヒント、及び、処理ユニットの以前の状態について電源管理アドバイザ２１０によって生成される信号を含むが、これらに限定されない。
【００２５】
グローバル電源管理アドバイザ２１０によって生成されるアドバイス２２５は、追加の入力として電源管理コントローラ２０５に提供され、電源管理コントローラ２０５は、入力２２０と共にアドバイス２２５を使用して、処理ユニットの後続の電力状態を示す信号２１５を生成する。電源管理コントローラ２０５のいくつかの実施形態は、入力２２０に基づいて後続の電力状態の予測を生成する。次に、電源管理コントローラ２０５は、アドバイス２２５に基づいて、予測を受け入れるか拒否し、新たな予測を生成する。例えば、電源管理コントローラ２０５が、アイドル状態への遷移が省電力化するであろうと予測するが、アドバイス２２５が、現在の状態からアイドル状態への以前の遷移が正味の省電力化をもたらさなかったことを示す場合、電源管理コントローラ２０５は、予測を拒否し、処理ユニットを現在のアクティブ状態に維持することができる。別の例では、状態変化が目標結果を達成しない確率が少なくとも５０％であることをアドバイス２２５が示す場合、電源管理コントローラ２０５は、予測を拒否する。電源管理アドバイザ２１０のいくつかの実施形態は、電源管理コントローラ２０５及びアドバイス２２５によって行われる予測に適用される重みを示すステートマシンを含む。これらの重みは、信号２２５を介して電源管理コントローラ２０５に伝達される。以下に説明するように、電源管理コントローラ２０５は、重みを使用して、処理ユニットの電力状態遷移を開始するかどうかを決定する。
【００２６】
図３は、いくつかの実施形態による、電源管理アドバイザ３０５を含む回路３００のブロック図である。電源管理アドバイザ３０５は、図１に示すＰＭＡ１６０，１６５及び図２に示すグローバル電源管理アドバイザ２１０のいくつかの実施形態を実装するために使用される。電源管理アドバイザ３０５のいくつかの実施形態は、以下に説明するように、畳み込みニューラルネットワーク（ＣＮＮ）等のニューラルネットワークを実装する。
【００２７】
回路３００は、レジスタ３１０，３１１，３１２のセットを含み、これらは、本明細書では「レジスタ３１０〜３１２」と総称される。レジスタ３１０〜３１２の各々は、処理ユニットの対応する電力状態に関する状態情報を記憶する。レジスタ３１０は、処理ユニットの現在の電力状態に関する状態情報を記憶し、レジスタ３１１は、処理ユニットの以前の電力状態に関する状態情報を記憶し、レジスタ３１２は、レジスタ３１１に記憶された状態情報に対応する、以前の電力状態に先行する処理ユニットの別の以前の電力状態に関する状態情報を記憶する。レジスタ３１０〜３１２に記憶された状態情報は、処理ユニットの現在の電力状態に関連するパフォーマンスカウンタの値と、対応するローカル電源管理コントローラへの入力と、電源管理コントローラによって選択される後続の電力状態を示す情報と、電源管理アドバイザ３０５によって生成されるアドバイスの値と、エネルギー、電力及びパフォーマンスに関連するアプリケーションヒント等と、を含む。３つのレジスタ３１０〜３１２が図３に示されているが、回路３００のいくつかの実施形態は、対応する処理ユニットについてより多い又はより少ない状態情報のセットを記憶するために使用される、より多い又はより少ないレジスタを含む。
【００２８】
レジスタ３１０〜３１２に記憶されるパフォーマンスカウンタは、電源管理アドバイザ３０５に関連する処理ユニット内のハードウェアブロックに実装される。いくつかの実施形態では、比較的大量の電力を消費するブロックからのパフォーマンスカウンタの値は、レジスタ３１０〜３１２に記憶される。例えば、レジスタ３１０〜３１２は、シェーダアレイ、テクスチャキャッシュ階層、ＤＲＡＭ等からのパフォーマンスカウンタの値を記憶することができる。パフォーマンスカウンタは、電源管理アドバイザ３０５に入力される特徴として使用され、これらの値は、電源管理アドバイザ３０５に実装されるニューラルネットワークのトレーニングサンプルとして使用される。ニューラルネットワークの推論中に、又は、ニューラルネットワークの予測ステージ中に、パフォーマンスカウンタの現在の値は、ニューラルネットワークへの入力として使用される。パフォーマンスカウンタは、システムレベルの状態及びパフォーマンスを示す情報を提供する。例えば、処理ユニットの入力コマンドバッファ内のドローパケットを監視するパフォーマンスカウンタは、電力状態の決定に影響を与え得る。パフォーマンスカウンタが多くのドローパケットを示す場合、電力状態をより低い電力状態に変化させない方がよい。処理ユニットは、ドローパケットを処理するために、より高い電力状態にある必要がある。このパフォーマンスカウンタ情報は、ローカルパフォーマンス管理コントローラでは利用できない。
【００２９】
レジスタ３１０〜３１２に記憶された状態情報は、更新信号３１４に応じて更新される。いくつかの実施形態では、更新信号３１４は、電力状態遷移に応じて、レジスタ３１０〜３１２の更新をトリガする。レジスタ３１０〜３１２を更新することは、情報を、レジスタ３１０〜３１２から、次の以前の状態を表すレジスタにシフトすることを含む。例えば、レジスタ３１０内の状態情報がレジスタ３１１にシフトされ、レジスタ３１１内の状態情報がレジスタ３１２にシフトされ、レジスタ３１２内の状態情報が削除されるか別のレジスタ（図３に示されていない）にシフトされる。「新たな」現在の状態、すなわち、更新信号３１４をトリガした電力状態遷移に続く処理ユニットの状態に関する状態情報が、レジスタ３１０に記憶される。
【００３０】
レジスタ３１０〜３１２内の状態情報は、入力ベクトル回路３１５に提供され、この入力ベクトル回路３１５は、提供された状態情報に基づいて入力ベクトル３２０を生成する。入力ベクトル３２０は、時間間隔のシーケンスでの処理ユニットの対応する電力状態のシーケンスからの状態情報を含むので、処理ユニットの状態履歴を表す。入力ベクトル回路３１５のいくつかの実施形態は、レジスタ３１０〜３１２に記憶された状態情報の値を連結することによって入力ベクトル３２０を生成する。ただし、入力ベクトル回路３１５の他の実施形態は、レジスタ３１０〜３１２に記憶された状態情報の様々な組み合わせを使用して、入力ベクトル３２０を生成する。入力ベクトル３２０は、電源管理アドバイザ３０５に提供される。
【００３１】
以前の状態遷移の計算された有効性を表す情報３２５は、トレーニングラベル回路３３０に提供され、このトレーニングラベル回路３３０は、以前の状態遷移が有効であったかどうかを示すラベル３３５を生成する。ラベル３３５のいくつかの実施形態は、以前の状態遷移が、パフォーマンスゲイン、エネルギー使用量の削減、これらの組み合わせ、又は、他の結果等の目標結果をもたらしたかどうかを示すラベルを含む。トレーニングラベル回路３３０は、ラベル３３５を電源管理アドバイザ３０５に提供し、電源管理アドバイザ３０５は、ラベル３３５を入力ベクトル３２０と共に使用して、異なる電力状態遷移が目標結果をもたらす確率を決定する。本明細書で説明するように、電源管理アドバイザ３０５のいくつかの実施形態は、強化学習構造のニューラルネットワークとして実装される。電源管理アドバイザ３０５に実装されるニューラルネットワークの例は、リカレントニューラルネットワーク又は残留ニューラルネットワークを含むが、これらに限定されない。ニューラルネットワークは、電力状態遷移のパターン、及び、それらのパターンが目標結果をもたらす確率を学習する。したがって、電源管理アドバイザ３０５は、入力３２０によって表される状態履歴を学習パターンと比較することによって、目標結果を達成する確率を表す信号３４０を生成することができる。ニューラルネットワークのトレーニングは、トレーニングデータセット、電源管理アドバイザ３０５によって生成される信号３４０のフィードバック、又は、これらの組み合わせを使用して実行される。
【００３２】
図４は、いくつかの実施形態による、処理ユニットの状態シーケンスを示す状態図４００である。状態図４００は、図１に示すＧＰＵ１１５又はＣＰＵ１３０のいくつかの実施形態の状態を表す。状態図４００は、現在の状態４０１、以前の状態４０２、前の以前の状態４０３、さらに前の以前の状態４０４、及び、他の状態４０５，４０６を示し、これらは本明細書では「状態４０１〜４０６」と総称される。状態図４００は、以前の状態４０２から現在の状態４０１への遷移４１０等の状態間の遷移を示す。処理ユニットを現在の状態４０１に戻す遷移４１５等の遷移も図４に示されている。状態４０１〜４０６は、本明細書で説明するように、パフォーマンスカウンタの値及び他の状態情報によって特徴付けられる。状態４０１〜４０６は、クロック速度、電圧、周波数等の制御にも関連付けられている。したがって、遷移４１０等の遷移は、制御信号の変化の原因となり、クロック速度、電圧、周波数、他のパラメータ値、又は、これらの組み合わせを変化させることができる。いくつかの実施形態では、状態情報は、クロック速度ドメイン、周波数／電圧ドメイン、電力ドメイン等のような処理ユニットの複数のドメインを特徴付ける。
【００３３】
図１に示すＰＭＣ１５０，１５５又は図２に示すローカル電源管理コントローラ２０５等の電源管理コントローラは、ローカル情報を使用して、状態４０１〜４０６間の遷移を予測する。例えば、電源管理コントローラは、マルコフ連鎖モデルを実装して、電力状態遷移の確率を予測することができる。マルコフ連鎖は、各イベントの確率が以前のイベントで達成された状態のみに依存する、可能なイベントシーケンスを記述する確率モデルである。これらのイベントは、チップのハードウェアブロック（図１に示すＧＰＵ１１５又はＣＰＵ１３０等）の状態、又は、電源管理コントローラに関連する他のエンティティの状態である。電源管理コントローラは、現在の状態４０１、及び、現在の状態４０１から後続の状態への遷移の確率のセットによって後続の状態を予測するように、マルコフ連鎖モデルを生成する。状態遷移の予測（例えば、確率）は、実行時に更新される。
【００３４】
図５は、いくつかの実施形態による、電源管理制御システム５００のブロック図である。電源管理制御システム５００は、図１に示す処理システム１００のいくつかの実施形態に実装される。電源管理制御システム５００は、ローカル電源管理コントローラ５０５と、ニューラルネットワーク５１０を使用して実装される電源管理アドバイザと、を含む。ローカル電源管理コントローラ５０５は、図１に示すＰＭＣ１５０，１５５及び図２に示すローカル電源管理コントローラ２０５のいくつかの実施形態を実装するために使用される。ニューラルネットワーク５１０は、図１に示すＰＭＡ１６０，１６５、図２に示すグローバル電源管理アドバイザ２１０、及び、図３に示すＰＭＡ３０５のいくつかの実施形態を実装するために使用される。電源管理制御システム５００を実装する処理ユニットは、８つの利用可能な電力状態５１１，５１２，５１３，５１４，５１５，５１６，５１７，５１８を含み、これらは、本明細書では「電力状態５１１〜５１８」と総称される。
【００３５】
電源管理コントローラ５０５は、現在の電力状態に関するローカル状態情報（図示した実施形態では電力状態５１１）に基づいて、電力状態５１１〜５１８の間の状態遷移の確率を含む予測５２０を生成する。いくつかの実施形態では、電源管理コントローラ５０５は、現在の電力状態５１１から処理ユニットの利用可能な電力状態５１１〜５１８へのマルコフ連鎖状態遷移確率（Ｘ［０．．Ｎ−１］）を使用して、予測５２０を生成する。Ｎの値は、一部のＧＰＵ実装に利用可能な８つの電力状態等の電力状態の数である。
【００３６】
ニューラルネットワーク５１０は、後続の状態への遷移の確率を表すアドバイス５２５を生成する。例えば、これらの確率は、次のように表される。
【数１】
2021536607.tif 000003
式中、Ｎは電力状態の数であり、Ｓは、処理ユニットの現在の電力状態及び１つ以上の以前の電力状態における処理ユニットの状態を表し、Ｍは、パフォーマンスカウンタの現在及び以前の値によって示されるマシン状態を表し、Ａは、アプリケーションのタイプ（例えば、グラフィックス又は計算）、１つ以上のコマンドバッファでのコマンドヒント（対応するドライバによって伝えられ得る）、命令キュー内のシェーダ命令等のような現在及び以前のアプリケーション情報を表す。したがって、ニューラルネットワーク５１０によって生成されるアドバイス５２５は、本明細書で説明するように、パフォーマンスカウンタ等の処理ユニットのグローバルパラメータと同様に、処理ユニットの状態履歴の関数である。
【００３７】
電力状態５１１〜５１８間の遷移の全確率は、確率Ｘ（従来のマルコフ連鎖を用いて電源管理コントローラ５０５によって生成される）、及び、ＰＮＮ（状態履歴に基づいてニューラルネットワーク５１０によって生成される）を組み合わせることによって形成される。ローカル及びグローバル情報を使用して電源管理コントローラ５０５によって生成される状態遷移の確率は、以下のように表される。
【数２】
2021536607.tif 000004
【００３８】
いくつかの実施形態では、確率は、等しい重み（例えば、全確率が確率Ｐ及びＰＮＮの平均に等しい）と組み合わされる。いくつかの実施形態では、電源管理システム５００に実装されるステートマシンを使用して予測される重み等の異なる重みが、これらの確率Ｐ及びＰＮＮに適用される。
【００３９】
図６は、いくつかの実施形態による、適用される重みを決定するステートマシン６００のブロック図である。ステートマシン６００は、図１に示すＰＭＡ１６０，１６５、図２に示すグローバル電源管理アドバイザ２１０、図３に示すＰＭＡ３０５、又は、図５に示すニューラルネットワーク５１０のいくつかの実施形態に実装される。ステートマシン６００は、４つの状態６０１，６０２，６０３，６０４を含み、これらは、本明細書では「状態６０１〜６０４」と総称される。状態６０１は、ローカル電源管理コントローラによって生成される予測に適用される値１を含む第１重み（例えば、マルコフ連鎖確率Ｘ［０．．Ｎ−１］）と、グローバル電源管理アドバイザによって生成されるアドバイスに適用される値０を含む第２重み（例えば、状態履歴に基づいてニューラルネットワーク５１０によって生成される確率ＰＮＮ）と、に関連付けられる。状態６０２では、第１重みは、ローカル電源管理コントローラによって生成される予測に適用される値０．５を有し、第２重みは、グローバル電源管理アドバイザによって生成されるアドバイスに適用される値０．５を有する。状態６０３では、第１重みは値０を有し、第２重みは値１を有する。状態６０４では、第１重みは値０．５を有し、第２重みは値０．５を有する。
【００４０】
状態６０１〜６０４間の遷移は、以前の状態遷移で目標結果が達成されたかどうかに基づいて決定される。例えば、パフォーマンスゲイン又は省電力化が、電力状態遷移のコストを上回る量だけ増加する場合に、目標結果が達成される。パフォーマンスゲイン又は省電力化が電力状態遷移のコストを上回らない場合には、目標結果が達成されない。遷移６１０によって示すように目標結果が達成される場合、ステートマシン６００は、状態６０１に留まる。遷移６１１によって示すように目標結果が達成されていない場合、ステートマシン６００は、状態６０１から状態６０２に遷移する。遷移６１２によって示すように目標結果が達成される場合、ステートマシン６００は、状態６０２に留まる。遷移６１３によって示すように目標結果が達成されていない場合、ステートマシン６００は、状態６０２から状態６０３に遷移する。遷移６１４によって示すように目標結果が達成される場合、ステートマシン６００は、状態６０３に留まる。遷移６１５によって示すように目標結果が達成されていない場合、ステートマシン６００は、状態６０３から状態６０４に遷移する。遷移６１６によって示すように目標結果が達成される場合、ステートマシン６００は、状態６０４に留まる。遷移６１７によって示すように目標結果が達成されていない場合、ステートマシン６００は、状態６０１から状態６０１に遷移する。
【００４１】
状態６０１〜６０４によって定義される重みの値は、ローカル電源管理コントローラによって予測される確率Ｐと、グローバル電源管理アドバイザによって生成されるアドバイスでの確率ＰＮＮとを組み合わせるために使用される。いくつかの実施形態では、グローバル電源管理アドバイザは、アドバイスと共に（又は、その一部として）、ローカル電源管理コントローラに重みを提供する。ローカル電源管理コントローラは、重みを確率に適用することによって、電力状態遷移を開始するかどうかを決定する。異なる電力状態への遷移の全確率は、次の式で与えられる。
【数３】
2021536607.tif 000005
【００４２】
ステートマシン６００のいくつかの実施形態は、ローカル電源管理コントローラ及びグローバル電源管理アドバイザによって生成される確率に適用される重みの異なる組み合わせを表す、より多い又はより少ない状態を実装する。
【００４３】
いくつかの実施形態では、上記の装置及び技法は、図１〜図６を参照して上述した電源管理システム等の１つ以上の集積回路（ＩＣ）デバイス（集積回路パッケージ又はマイクロチップとも呼ばれる）を含むシステムに実装される。これらのＩＣデバイスの設計及び製造には、電子設計自動化（ＥＤＡ）及びコンピュータ支援設計（ＣＡＤ）ソフトウェアツールが使用される。これらの設計ツールは、通常、１つ以上のソフトウェアプログラムとして表される。１つ以上のソフトウェアプログラムは、回路を製造するための製造システムを設計又は適合するための処理の少なくとも一部を実行するように１つ以上のＩＣデバイスの回路を表すコードで動作するようにコンピュータシステムを操作する、コンピュータシステムによって実行可能なコードを含む。このコードは、命令、データ、又は、命令及びデータの組み合わせを含むことができる。設計ツール又は製造ツールを表すソフトウェア命令は、通常、コンピューティングシステムがアクセス可能なコンピュータ可読記憶媒体に記憶される。同様に、ＩＣデバイスの設計又は製造の１つ以上のフェーズを表すコードは、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体に記憶されてもよいし、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体からアクセスされてもよい。
【００４４】
コンピュータ可読記憶媒体は、命令及び／又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の非一時的な記憶媒体又は非一時的な記憶媒体の組み合わせを含む。かかる記憶媒体には、限定されないが、光媒体（例えば、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、ブルーレイ（登録商標）ディスク）、磁気媒体（例えば、フロッピー（登録商標）ディスク、磁気テープ、磁気ハードドライブ）、揮発性メモリ（例えば、ランダムアクセスメモリ（ＲＡＭ）若しくはキャッシュ）、不揮発性メモリ（例えば、読取専用メモリ（ＲＯＭ）若しくはフラッシュメモリ）、又は、微小電気機械システム（ＭＥＭＳ）ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体は、コンピュータシステムに内蔵されてもよいし（例えば、システムＲＡＭ又はＲＯＭ）、コンピュータシステムに固定的に取り付けられてもよいし（例えば、磁気ハードドライブ）、コンピュータシステムに着脱可能に取り付けられてもよいし（例えば、光学ディスク又はユニバーサルシリアルバス（ＵＳＢ）ベースのフラッシュメモリ）、有線又は無線のネットワークを介してコンピュータシステムに接続されてもよい（例えば、ネットワークアクセス可能なストレージ（ＮＡＳ））。
【００４５】
いくつかの実施形態では、上記の技術のいくつかの態様は、ソフトウェアを実行する処理システムの１つ以上のプロセッサによって実装されてもよい。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶され、又は、非一時的なコンピュータ可読記憶媒体上で有形に具現化された実行可能命令の１つ以上のセットを含む。ソフトウェアは、１つ以上のプロセッサによって実行されると、上記の技術の１つ以上の態様を実行するように１つ以上のプロセッサを操作する命令及び特定のデータを含むことができる。非一時的なコンピュータ可読記憶媒体は、例えば、磁気若しくは光ディスク記憶デバイス、例えばフラッシュメモリ、キャッシュ、ランダムアクセスメモリ（ＲＡＭ）等のソリッドステート記憶デバイス、又は、他の１つ以上の不揮発性メモリデバイス等を含むことができる。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、１つ以上のプロセッサによって解釈若しくは実行可能な他の命令フォーマットであってもよい。
【００４６】
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、１つ以上のさらなるアクティビティが実行される場合があり、１つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
【００４７】
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。
【図１】
2021536607.tif 000006
【図２】
2021536607.tif 000007
【図３】
2021536607.tif 000008
【図４】
2021536607.tif 000009
【図５】
2021536607.tif 000010
【図６】
2021536607.tif 000011
【国際調査報告】
2021536607.tif 000012
2021536607.tif 000013