(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-19
(54)【発明の名称】電力状態管理のための電力シーケンサ
(51)【国際特許分類】
G06F 11/30 20060101AFI20240711BHJP
G06F 1/3206 20190101ALI20240711BHJP
G06F 1/3228 20190101ALI20240711BHJP
G06F 1/3246 20190101ALI20240711BHJP
【FI】
G06F11/30 162
G06F11/30 140D
G06F1/3206
G06F1/3228
G06F1/3246
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024502182
(86)(22)【出願日】2021-07-16
(85)【翻訳文提出日】2024-03-04
(86)【国際出願番号】 US2021042077
(87)【国際公開番号】W WO2023287436
(87)【国際公開日】2023-01-19
(81)【指定国・地域】
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】カールソン,アレックス・ロバート
(72)【発明者】
【氏名】パテル,ロナク・スバス
(72)【発明者】
【氏名】テューイ,ウィリアム・ジェームス
(72)【発明者】
【氏名】ビジェイ・クマール,ビヌ
【テーマコード(参考)】
5B011
5B042
【Fターム(参考)】
5B011DB21
5B011DC01
5B011DC06
5B011EA09
5B011EA10
5B011KK00
5B011LL11
5B042GA13
5B042GC16
5B042JJ17
(57)【要約】
周辺コンピューティングシステムにおいてアプリケーションを取り扱うための方法、システム、および装置である。装置のうちの1つは、複数の電力ブロックにおいて配置された複数のデバイスを含み、複数のデバイスの各々のデバイスは、複数の電力ブロックのうちの1つに属する。装置のうちの1つは、複数のローカル電力マネジャをさらに含み、各々のローカル電力マネジャは、それぞれの電力ブロックにおける1つ以上のデバイスのための電力状態遷移を生じさせるためにそれぞれの電力ブロックのための命令シーケンスのそれぞれのセットを実行するようにプログラム可能である。
【特許請求の範囲】
【請求項1】
複数の電力ブロックにおいて配置された複数のデバイスを含み、
前記複数のデバイスの各々のデバイスは、前記複数の電力ブロックのうちの1つに属し、
複数のローカル電力マネジャをさらに含み、
各々のローカル電力マネジャは、それぞれの電力ブロックにおいて1つ以上のデバイスのための電力状態遷移を生じさせるために前記それぞれの電力ブロックのための命令シーケンスのそれぞれのセットを実行するようにプログラム可能である、コンピューティングデバイス。
【請求項2】
各々のローカル電力マネジャは、
イベント信号入力を受信し、トリガ信号を出力するように構成されたトリガロジックと、
トリガ信号と電力状態遷移との間のマッピングを記憶するように構成された電力状態表と、
電力状態遷移が前記トリガロジックによってトリガされたときにそれぞれの命令シーケンスを実行するように構成された1つ以上のハードウェアシーケンサと
を含む、請求項1に記載のコンピューティングデバイス。
【請求項3】
前記電力状態表、前記トリガロジック、および前記命令シーケンスは、前記コンピューティングデバイスが製造された後に修正可能である、請求項2に記載のコンピューティングデバイス。
【請求項4】
前記ハードウェアシーケンサは、ブレークポイントおよびデバッグのためのシングルステップ機能を含む、請求項2に記載のコンピューティングデバイス。
【請求項5】
前記命令シーケンスは、前記トリガロジックによって受信されるイベント信号入力の値を表す1つ以上のオペランドを有する命令を含み、前記イベント信号入力は、前記電力状態遷移を制御する、請求項2に記載のコンピューティングデバイス。
【請求項6】
各々のローカル電力マネジャは、条件命令を実行するように構成されているが、算術演算を行うためのハードウェアを欠く、請求項1に記載のコンピューティングデバイス。
【請求項7】
各々のローカル電力マネジャは、複数のそれぞれのデバイスの複数の電力状態表のための遷移シーケンスを実行するように構成されている、請求項1に記載のコンピューティングデバイス。
【請求項8】
コンピュータによって実行される方法であって、
ローカル電力マネジャによって得られるトリガ信号をモニタリングすることを含み、
コンピューティングデバイスにおける複数のデバイスは、複数の電力ブロックにおいて配置されており、前記複数のデバイスの各々のデバイスは、前記複数の電力ブロックのうちの1つに属し、複数のローカル電力マネジャの各々は、それぞれの電力ブロックのための命令シーケンスのそれぞれのセットを実行するようにプログラム可能であり、
前記方法は、
電力状態遷移のためのトリガ信号が受信されたかどうかを決定することと、
前記電力状態遷移のための前記トリガ信号が受信されたことを決定することに応答して、前記それぞれの電力ブロックにおける1つ以上のデバイスのための前記電力状態遷移のための命令シーケンスを実行することと、
をさらに含む、コンピュータによって実行される方法。
【請求項9】
各々のローカル電力マネジャは、
イベント信号入力を受信し、トリガ信号を出力するように構成されたトリガロジックと、
トリガ信号と電力状態遷移との間のマッピングを記憶するように構成された電力状態表と、
電力状態遷移が前記トリガロジックによってトリガされたときにそれぞれの命令シーケンスを実行するように構成された1つ以上のハードウェアシーケンサと
を含む、請求項8に記載のコンピュータによって実行される方法。
【請求項10】
前記電力状態表、前記トリガロジック、および前記命令シーケンスは、前記コンピューティングデバイスが製造された後に修正可能である、請求項9に記載のコンピュータによって実行される方法。
【請求項11】
前記ハードウェアシーケンサは、ブレークポイントおよびデバッグのためのシングルステップ機能を含む、請求項9に記載のコンピュータによって実行される方法。
【請求項12】
前記命令シーケンスは、前記トリガロジックによって受信されるイベント信号入力の値を表す1つ以上のオペランドを有する命令を含み、前記イベント信号入力は、前記電力状態遷移を制御する、請求項9に記載のコンピュータによって実行される方法。
【請求項13】
各々のローカル電力マネジャは、条件命令を実行するように構成されているが、算術演算を行うためのハードウェアを欠く、請求項8に記載のコンピュータによって実行される方法。
【請求項14】
各々のローカル電力マネジャは、複数のそれぞれのデバイスの複数の電力状態表のための遷移シーケンスを実行するように構成されている、請求項8に記載のコンピュータによって実行される方法。
【請求項15】
複数の電力ブロックに配置されたコンピューティングデバイスの1つ以上のローカル電力マネジャによって実行されたときに、前記1つ以上のローカル電力マネジャに、前記コンピューティングデバイスのそれぞれの電力ブロックにおける複数のデバイスのための電力状態遷移を生じさせる命令でエンコードされた1つ以上の非一時的ストレージ媒体であって、前記複数のデバイスの各々は、前記複数の電力ブロックのうちの1つに属する、1つ以上の非一時的ストレージ媒体。
【請求項16】
各々のローカル電力マネジャは、
イベント信号入力を受信し、トリガ信号を出力するように構成されたトリガロジックと、
トリガ信号と電力状態遷移との間のマッピングを記憶するように構成された電力状態表と、
電力状態遷移が前記トリガロジックによってトリガされたときにそれぞれの命令を実行するように構成された1つ以上のハードウェアシーケンサと
を含む、請求項15に記載の非一時的ストレージ媒体。
【請求項17】
前記電力状態表、前記トリガロジック、および前記命令は、前記コンピューティングデバイスが製造された後に修正可能である、請求項16に記載の非一時的ストレージ媒体。
【請求項18】
前記ハードウェアシーケンサは、ブレークポイントおよびデバッグのためのシングルステップ機能を含む、請求項16に記載の非一時的ストレージ媒体。
【請求項19】
前記命令は、前記トリガロジックによって受信されたイベント信号入力の値を表す1つ以上のオペランドを有する命令を含み、前記イベント信号入力は、前記電力状態遷移を制御する、請求項16に記載の非一時的ストレージ媒体。
【請求項20】
各々のローカル電力マネジャは、条件命令を実行するように構成されているが、算術演算を行うためのハードウェアを欠く、請求項15に記載の非一時的ストレージ媒体。
【発明の詳細な説明】
【背景技術】
【0001】
背景
本明細書は、集積回路デバイスを有するシステムに関する。
【0002】
システム・オン・チップ(SoC)は、中央処理装置(CPU)、メモリ、入力/出力ポート、セル無線、二次記憶装置などを含む、モバイルコンピューティングデバイスの異なる構成要素を集積した集積回路である。取外し可能または交換可能な構成要素をマザーボードが収容および接続する従来のマザーボード式PCアーキテクチャとは対照的に、SoCは、全てのこれらの構成要素を1つの集積回路に集積している。SoCは、一般的に、スマートフォン、タブレットコンピュータ、WiFiルータ、モノのインターネット(IoT)デバイスなどの、モバイルコンピューティング、エッジコンピューティング、および埋め込みシステムにおいて使用されている。
【0003】
SoCは、電力管理を必要とする複数のデバイスを含むことができる。電力管理は、より長い電池寿命を達成する、電力消耗を減じるなど、電力消費および利用を最適化するために各々のデバイスのための電力状態遷移を管理する。例えば、CPUがアイドル状態にあるとき、システムは、電力消費を減じるためにCPUの電力状態を低電力状態へ変更する(例えば、より低い電圧へ切り替える)ことができる。電力管理は、電力をオン/オフにすること、電圧または周波数を制御すること、非アクティブなときに低電力状態に切り替えることなどを含むことができる。
【0004】
SoCのための電力管理は、一般的に、ステートマシン(state machine)またはマイクロコントローラを使用することによって行われる。ステートマシンは、ハードウェアにおいて電力状態遷移を実施するハードウェアベースのソリューションである。ステートマシンベースのソリューションは、迅速な状態遷移を提供し、より小さなシリコン領域を占めるが、ステートマシンベースのソリューションは、チップが製造された後に変更を行うためおよび問題をデバッグするための能力を制限する。マイクロコントローラベースのソリューションは、汎用マイクロコントローラを使用し、ソフトウェアにおいて電力状態遷移を実施する。マイクロコントローラベースのソリューションは、修正およびデバッグのためのより優れた柔軟性を提供するが、マイクロコントローラベースのソリューションは、電力状態遷移により長い時間を要する。加えて、マイクロコントローラベースのソリューションは、デバッグ/トレースインフラストラクチャと共に大型の命令メモリおよび大型のデータメモリを備える一般的なマイクロコントローラを使用するので、このことは、しばしば、1つのSoCにおけるマイクロコントローラのインスタンスの数を制限し、SoCは、一般的に、SoCにおける全てのデバイスの電力状態を管理する1つのマイクロコントローラのみを有する。
【発明の概要】
【0005】
概要
本明細書は、電力状態管理のためのローカル電力マネジャを実施するための技術を説明する。各々のローカル電力マネジャは、1つの電力状態から次の電力状態へ遷移することが要求されるハードウェア遷移のシーケンスを生じさせる電力管理のために規定されたカスタム命令を実行するように構成されている。一般的なマイクロコントローラによって実行される命令に対して、カスタム命令は、サイズが小さく、特に電力管理タスクのために規定されている。ローカル電力マネジャは、受信されたトリガイベントに応答することができ、トリガイベントに応答して電力状態遷移を行うためにカスタム命令を実行することができる。
【0006】
本明細書に説明された主題は、以下の利点のうちの1つまたは複数を実現するために特定の実施形態において実施されることができる。電力管理のための専用の特別に設計された命令シーケンスを使用することによって、ローカル電力マネジャは、修正およびデバッグのための柔軟性も提供しながら、より迅速な状態遷移を提供する。即ち、ローカル電力マネジャは、ハードウェアベースのソリューションの性能/応答レイテンシならびにマイクロコントローラの柔軟性およびプログラム可能性を達成することができる。多数の機能性を含む一般的なコンピューティングデバイス(例えば、マイクロコントローラ)とは対照的に、ローカル電力マネジャは、命令の小さなセットを維持することができ、数学演算を含む必要はない。マイクロコントローラベースのソリューションとは異なり、ローカル電力マネジャは、デバッグのためのハードウェアレベル信号への直接アクセスを有することができる。1つのSoCは、チップ上の複数のデバイスまたはサブシステムの電力状態を独立して制御することができる複数のローカル電力マネジャを集積することができる。SoC内で各々のデバイスごと1つのローカル電力マネジャを有するのではなく、SoCは、同じサブシステムの論理的に一部である複数のデバイスの電力状態遷移を管理し、したがって、共通のリソースの共有ならびに電力消費およびシリコン内領域消費を減じることを可能にする、ローカル電力マネジャを含むことができる。したがって、ローカル電力マネジャは、ステートマシンベースのソリューションと同様の領域消費を有しながら、ステートマシンベースのソリューションの性能およびマイクロコントローラベースのソリューションの柔軟性を達成することができる。
【0007】
本明細書の主題の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明に示されている。主題のその他の特徴、態様、および利点は、説明、図面、および請求項から明らかになるであろう。
【図面の簡単な説明】
【0008】
【
図1】例示的なコンピューティングデバイスの図である。
【
図5】電力シーケンサを使用する電力管理のための例示的なプロセスのフローチャートである。
【発明を実施するための形態】
【0009】
様々な図面における同じ参照番号および指示は、同じ構成要素を示す。
詳細な説明
図1は、例示的なコンピューティングデバイス100の図である。コンピューティングデバイス100は、モバイルデバイス(例えば、スマートフォンまたはタブレット)に設置されたシステム・オン・チップ(SoC)デバイスであることができる。SoCは、1つのシリコン基板上もしくは例えば、シリコンインターポーザ、積層ダイ、または相互接続ブリッジを使用した、複数の相互接続されたダイ上にシステム各々の構成要素を含む集積回路である。
【0010】
コンピューティングデバイス100は、異なる状態下で異なる電力要求を有する複数のデバイスを含む。例えば、ユーザがモバイルデバイス上でカメラアプリを起動するとき、SoCは、SoCに集積された画像プロセッサの電源をオンにすることができる。カメラアプリが閉じられるとき、SoCは、画像プロセッサの電源を切ることができる。
【0011】
複数のデバイスの例は、1つ以上の中央処理装置(CPU)、1つ以上ののテンソル処理ユニット(TPU)、1つ以上のセンサ、1つ以上のディスプレイなどを含む。コンピューティングデバイス100は、複数のこのようなデバイス、例えば、10、50または100のデバイスを含むことができる。
図1におけるコンピューティングデバイス100は、説明のために簡略化されており、3つのデバイス、即ちデバイスA1(113)、デバイスA2(115)、およびデバイスB1(123)を含む。
【0012】
いかなるときにも、各々のデバイスは特定の電力状態にある。電力状態は、デバイスの電力消費のレベル(例えば、計算動作の範囲)を示す。電力状態の例は、アクティブ、高速動作(Run Fast)、低速動作(Run Slow)、ハイバネートなどを含むことができる。デバイスの電力状態は、電力消費を節約するために必要に応じて変化する。コンピューティングデバイス100は、各々のデバイスのための電力状態遷移を管理するために電力管理を行い、モバイルデバイスの電力消費を最適化する。
【0013】
コンピューティングデバイス100における複数のデバイスは、複数の電力ブロックにおいて配置されている。電力ブロックは、デバイスのグループを含み、デバイスのグループの電力管理は、相関させられることができ、例えば、デバイスのグループは、一緒にパワーアップまたはパワーダウンさせられることができる。同じ電力ブロックにおける複数のデバイスは、論理的に依存関係にあってもよく、同じサブシステムの一部に属することができる。例えば、コンピューティングデバイス100は、2つの電力ブロック、即ち電力ブロックA(110)および電力ブロックB(120)を含む。デバイスA1(113)およびデバイスA2(115)は電力ブロックA(110)に属し、デバイスB1(123)は電力ブロックB(120)に属する。
【0014】
コンピューティングデバイス100は、独立して動作する複数のローカル電力マネジャ(LPM)を含む。各々のローカル電力マネジャは、それぞれの電力ブロックのための命令シーケンスのそれぞれのセットを実行するようにプログラムされることができる。各々のローカル電力マネジャは、それぞれの電力ブロックにおける1つ以上のデバイスのための電力状態遷移を管理することができる。各々のローカル電力マネジャは、1つの電力状態から別の電力状態へ遷移するようにそれぞれの電力ブロックにおける各々のデバイスを制御することができる。
【0015】
例えば、コンピューティングデバイスは、電力ブロックA(110)のためのローカル電力マネジャ112および電力ブロックB(120)のためのローカル電力マネジャ122を含む。ローカル電力マネジャ112は、デバイスA1およびデバイスA2のための電力状態遷移を管理することができる。ローカル電力マネジャ122は、デバイスB1のための電力状態遷移を管理することができる。
【0016】
コンピューティングデバイス100における全てのデバイスを制御する1つのマイクロコントローラを有するのではなく、コンピューティングデバイス100は、各々が1つ以上のデバイスを独立して制御する複数のLPMを含む。マイクロコントローラベースのソリューションと比較して、電力シーケンサベースのソリューションは、チップにおける複数のデバイスの電力状態遷移を独立して制御するために複数のローカル電力マネジャを使用することによってレイテンシおよび遅延を減じることができる。
【0017】
各々のローカル電力マネジャは、複数の電力状態表に基づいて電力状態遷移を実行することができる。各々の電力状態表は、それぞれのデバイスのための可能な電力状態遷移を記憶している。各々の電力状態遷移は、電力状態を初期状態から次の状態へ変化させる。例えば、ローカル電力マネジャ112は、電力状態表A1(114)および電力状態表A2(116)を記憶することができる。電力状態表A1は、デバイスA1のための複数の電力状態遷移を記憶している。電力状態表A2は、デバイスA2のための複数の電力状態遷移を記憶している。ローカル電力マネジャ112は、デバイスA1(113)の電力状態遷移を行うために電力状態表A1(114)によって生じた遷移シーケンスを実行することができる。ローカル電力マネジャ112は、デバイスA2(113)の電力状態遷移を行うために電力状態表A2(114)によって生じた遷移シーケンスを実行することができる。
【0018】
同じLPMによって制御される複数の異なる電力状態表は、互いに相互作用することができ、依存関係を有することができる。例えば、同じLPM112によって制御されるデバイスA1およびデバイスA2の電力状態および/または電力状態遷移の中で同期化を行うことができる。別の例として、デバイスA1のための電力状態遷移は、デバイスA2の特定の電力状態遷移に依存することができる。
【0019】
ステートマシンベースのソリューションと比較して、ローカル電力マネジャは、コンピューティングデバイス100が製造された後、即ちポストシリコンで修正されることができる。例えば、デバイスA2(115)の電力管理がデバイスA1(113)の現在の電力状態に依存すると仮定する。チップが製造され、しばらく動作した後、デバイスA1(113)がもはや使用されていない場合、ローカル電力マネジャ112は、デバイスA2(115)の電力管理ロジックがもはやデバイスA1の電力状態に依存しないように再プログラムされることができる。ステートマシンベースの電力管理ソリューションの場合にチップ全体を再製造しなければならない代わりに、電力シーケンサベースのソリューションは、ポストシリコンでの修正のための柔軟性を提供することができる。
【0020】
別の例として、製造時間の間または後に電力管理命令においてエラーが見つかったとき、ローカル電力マネジャは、チップを再製造するのではなく命令からエラーを除去するように再プログラムされることができる。別の例として、チップが製造された後にエンジニアが電力管理において改良を開発する場合、エンジニアは、チップを再製造する必要なくローカル電力マネジャを再プログラムすることができる。製品規格における変更またはその他の最適化による新たな電力状態は、チップが製造された後に追加されることができる。例えば、チップが製造された後、新たな電力状態は、実験室における最適化実験を通じて識別されることができ、これらの新たな電力状態は、ローカル電力マネジャを再プログラムすることによって追加されることができる。
【0021】
図2は、例示的なローカル電力マネジャ(LPM)200の図である。ローカル電力マネジャ200は、コンピューティングデバイス100における1つ以上のデバイス、例えば、SoCにおけるデバイスのための電力状態遷移を制御するための設定可能な電力マネジャである。ローカル電力マネジャ200は、トリガロジック204、1つ以上の電力状態表208、および1つ以上の電力シーケンサ212を含む。トリガロジック204は、入力および出力トリガ信号206としてイベント信号202を受信するように構成されている。1つ以上の電力状態表208は、トリガ信号206と電力状態遷移との間のマッピングを記憶するように構成されている。1つ以上の電力シーケンサ212は、電力状態遷移がトリガ信号206によってトリガされたときにそれぞれの命令シーケンスを実行するように構成されている。
【0022】
ローカル電力マネジャ200は、イベント信号202を入力として受け取り、トリガロジック204を使用して1つ以上のトリガ信号206を生成する。イベント信号は、電力状態遷移をトリガするために論理的に組み合わされることができる1つ以上の入力信号を含むことができる。イベント信号202は、複数のイベントのための複数のイベント信号を含むことができる。イベント信号202のイベントは、電力状態遷移をトリガする外部イベントまたはソフトウェアイベントを含むことができる。外部イベントの例は、汎用入力/出力(GPIO)からの入力、システムタイマ、他のLPMからのリクエスト、インタラプト、電力遷移に関するコアロジック(例えば、アクティビティがない場合に電力消費を減じる)、コンピューティングデバイス100の1つ以上のセンサから得られるデータなどを含む。論理値を含むイベント信号は、オン状態またはオフ状態にあることができる。幾つかの実施において、各々のイベント信号は、制御および状態レジスタ(CSR)を介して有効化または無効化されることができる。幾つかの実施において、イベント信号は、イベント信号が一般的であるときにアクティブハイであると仮定することができ、LPMによって受信されるイベント信号がアクティブローである場合、CSRを介してアクティブハイに反転されることができる。
【0023】
トリガロジック204は、複数のイベント信号202においてロジックオペレーションのシーケンスを実行しかつ1つ以上のトリガ信号206を生成するために相互接続された演算子、例えば、AND演算子、OR演算子などのシーケンスを含むことができる。幾つかの実施において、演算子のシーケンスの最後の演算子は、トリガ信号206を決定する「ANDまたはOR選択」の演算子を含むことができる。例えば、1つ以上のイベントが、より高い電力状態をリクエストする場合、OR選択を使用することによって、より高い電力状態のためのトリガ信号を生成することが望ましい。別の例として、イベントのいずれもより高い電力状態をリクエストしない場合、AND選択を使用することによって、より低い電力状態のためのトリガ信号を生成することが望ましい。
【0024】
トリガロジック204は、電力状態表208に規定されたトリガ信号の数に応じて、柔軟な数のトリガ信号206を生成するように構成されることができる。例えば、N個のイベントのためのイベント信号202は、M個のトリガ信号206を生成するために使用されることができる。
【0025】
LPM200は、LPM200によって制御される複数のデバイスのための電力状態遷移を規定する1つ以上の電力状態表208を含む。各々の電力状態表208は、トリガ信号206と電力状態遷移との間のマッピングを記憶するように構成されている。各々の電力状態表208は、可能な電力状態と、LPMによって管理されるデバイスのための現在の状態214から次の状態への電力状態遷移とを規定する。現在の電力状態214は、GPIO216入力から電力シーケンサ212によって得ることができる。
【0026】
例えば、
図1に示されているように、電力状態表A1(114)は、デバイスA1(113)のための電力状態および電力状態遷移を規定する。電力状態表208は、トリガ信号206および現在の電力状態214を入力として受け取り、シーケンスアドレス210を出力として生成する。シーケンスアドレス210は、受信されたトリガ信号206に対応する電力状態遷移を実行するために電力シーケンサ212によって使用されることができる命令シーケンスのアドレスである。
【0027】
図3は、例示的な電力状態遷移
図300の図である。デバイス(例えば、
図1におけるデバイスA1)は、4つの電力状態、即ちPS0(高速動作)、PS1(低速動作)、PS2(オートClkゲート)、およびPS3(オート電力ゲート)を有する。電力状態PS0およびPS1は、異なる周波数において動作するアクティブ状態である。電力状態PS2およびPS3は、低電力状態である。即ち、PS0は、最も高い電力状態であり、PS3は、最も低い電力状態である。トリガロジック204を介して外部イベントを使用して起動されることができる8つの異なるトリガT0~T8が存在する。例えば、トリガT0は、所定の長さのアイドル条件に応答して生成されることができ、トリガT0は、アクティブ電力状態(PS0)から低電力状態(PS2)への電力状態遷移を生成するために使用されることができる。幾つかの実施において、トリガにより、デバイスが異なる電力状態へ変化するまたは同じ電力状態にとどまることができる。
【0028】
表1は、電力状態表208の例を示す。電力状態表208は、表形式で電力状態遷移図を表す。例えば、表1における電力状態表は、
図3に示された電力状態遷移図を表す。電力状態表は、複数の行を含み、各々の行は、現在の電力状態に対応する。例えば、表1における電力状態表は、4つの可能な現在の電力状態、即ちPS0、PS1、PS2、およびPS3を含む。電力状態表は、現在の電力状態から次の電力状態への電力状態遷移をトリガすることができる複数のトリガも含む。電力状態表は、各々電力状態のための所定の数のトリガを規定することができる。例えば、表1における電力状態表は、各々の電力状態のための4つのトリガの最大を許容する。デバイスが現在、状態PS0にある場合、T0のトリガ信号に応答して、デバイスの電力状態はPS0からPS2へ遷移し、T1のトリガ信号に応答して、デバイスの電力状態はPS0からPS1へ遷移する。
【0029】
【0030】
再び
図2を参照すると、LPM200は、同じサブシステムの論理的に一部である複数のデバイスの電力状態を制御するために1つ以上の電力状態表を含むことができる。例えば、
図2におけるLPM200は、2つのデバイスの電力状態を制御するように構成されることができる2つの電力状態表を含む。複数のデバイスの電力状態管理をグループ化することは、LPMに関連する電力消費および領域消費を減じることができる。複数のLPMを有するのではなく、1つのLPMは、同じ命令メモリを共有する、同じデータメモリを共有する等、共通のリソースをより良く組み合わせることができる。
【0031】
LPM200は、1つ以上の電力シーケンサ212を含む。1つ以上の電力シーケンサ212は、電力状態遷移がトリガロジック204によってトリガされたときにそれぞれの命令シーケンスを実行するように構成されている。各々の電力シーケンサは、それぞれのデバイスのための電力状態遷移を規定するそれぞれの電力状態表208に対応する。LPMにおいて複数の電力状態表208が存在する場合、電力シーケンサ212の数は、電力状態表208の数と同じである。例えば、LPM200は、2つの電力シーケンサ212および2つの電力状態表208を含み、各々の電力シーケンサは、それぞれの電力状態表に対応する。
【0032】
電力シーケンサ212は、複数の命令シーケンスを規定し、各々の命令シーケンスは、電力状態管理のために規定されたカスタム命令を含む。即ち、各々の命令シーケンスは、1つの電力状態から次の電力状態への電力状態遷移を行うために実行されることができるコンピュータプログラムである。命令シーケンスにおける命令は、出力をトグリングする、所定のタイムアウト期間を有する入力値を待つ、命令を分岐するなどの、幾つかのカテゴリを含むことができる。幾つかの実施において、命令シーケンスは、ハンドシェイク、プロトコル、および制御などの複数のアクションを行うためにGPIOを駆動および試験することができる。
【0033】
GPIO216出力は、電力状態遷移のためのシーケンスアドレス210に規定された命令シーケンスを含む。各々の電力シーケンサ212は、それぞれのGPIO216を介してそれぞれのデバイスを制御する。例えば、
図2におけるLPM200は、2つの電力シーケンサ212および2つのGPIO216を含み、各々の電力シーケンサは、自己のGPIOを有することができる。
【0034】
幾つかの実施において、命令は、シングルステップデバッグ、ブレークポイントデバッグなどの、電力状態遷移をデバッグするための機能を含むことができる。低レベル信号が利用可能ではないステートマシンベースのソリューションと比較して、電力シーケンサベースのソリューションでは、電力状態遷移プロセスにおける信号は、曝されることができ、ソフトウェアプログラムによってアクセス可能であることができる。低レベル信号へのアクセスを有さないマイクロコントローラベースのソリューションとは異なり、ローカル電力マネジャは、デバッグのためのハードウェアレベル信号への直接アクセスを有することができる。例えば、信号の現在の状態は、デバッグのために取得および使用されることができる。幾つかの実施において、これらの信号を試験および使用するアプリケーションプログラミングインターフェース(API)を規定することができる。ハードウェア設計者は、デバッグを行うためにAPIを使用することができる。幾つかの実施において、同じAPIが、コンピューティングデバイス100における複数のLPMのために規定されることができる。ハードウェア設計者は、異なるLPMからの信号に基づいてデバッグを行うために同じAPIを使用することができる。
【0035】
幾つかの実施において、LPMは、条件命令を実行するように構成されることができ、LPMは、ハードウェアを使用することなく算術演算を行うことができる。例えば、LPMは、GPIO入力およびGPIO出力を操作することによってデータの動きを制御することができ、リアルタイム応答を達成しかつレイテンシを減じることができる。別の例として、LPMは、加法演算などの数学演算を行うハードウェアを欠く場合がある。このように、LPMにおける命令セットは、小さなサイズを有することができ、改善された性能を生じる。
【0036】
LPM200は、トリガロジック204、電力状態表208、および設計時点に規定された命令シーケンスと共に事前設定されることができる。幾つかの実施において、LPM200のこれらの構成要素は、CSRにおいて実施されることができる。例えば、トリガロジック204は、CSR218において実施されることができ、電力状態表208は、CSR220において実施されることができ、電力シーケンサは、CSR224において実施されたデータメモリおよびCSR222において実施された命令メモリを含むことができる。
【0037】
電力状態の数および電力状態表の数が増大するほど、コンピューティングデバイス100の電力状態管理はより複雑になる可能性がある。したがって、トリガロジック、電力状態表、および命令シーケンスは、必要に応じて更新または修正される必要がある。トリガロジック204、電力状態表208、および電力シーケンサ212(例えば、命令シーケンス)のうちの1つまたは複数は、更新がポストシリコンで(即ち、コンピューティングデバイス100が製造された後)要求される場合に、必要に応じて修正されることができる。トリガロジック、電力状態表、および命令シーケンスは、独立して再プログラムされることができる。
【0038】
幾つかの実施において、LPMは、ツールチェーンを使用して事前設定または修正されることができる。ツールチェーンは、電力管理、例えば、トリガロジック、電力状態、および電力状態の間の遷移などのための変数およびオペレーションを規定するためにアプリケーションプログラミングインターフェース(API)を提供する。ツールチェーンのAPIは、自然言語要素を使用する高水準プログラミング言語(例えば、python(登録商標)、Java(登録商標)、C#など)と類似のソフトウェアインターフェースを提供する。低水準プログラミング言語におけるプログラミング(例えば、2進値およびレジスタのロケーションを操作することを含むアセンブラレベルプログラミング)の代わりに、ハードウェア設計者は、LPMを便利に設計し、ツールチェーンに規定されたAPIを使用してLPMに対する更新を生成することができる。例えば、LPMは、待機時間を増大する、オペレーションのシーケンスの順序を変更する、ステップのシーケンスにおいてステップをスキップするなどのために、APIを使用して更新され得る。ツールチェーンは、ソフトウェアプログラムを、新たな命令シーケンスを表す2進値に変換することができる。当該2進値は、アップロードされ、LPMが新たな命令シーケンスを動作させることができるようにチップ内に設定されることができる。
【0039】
幾つかの実施において、これらの構成要素に対する更新は、LPMツールチェーンを使用するCSRプログラミングを介して行うことができる。CSRに対するポストシリコン更新は、LPMツールチェーン入力を更新し、CSRのための新たな値を生成するためにツールチェーンを動作させることによって実施されることができる。CSRのための新たな値は、CSRに書き込まれるソフトウェアにおける新たな値を組み込むことによって、CSRに書き込まれることができる。
【0040】
図4は、例示的な電力シーケンサ400の図である。電力シーケンサ400は、シーケンスアドレス418およびGPIO入力402を入力として受け取り、GPIO出力406を生成する。電力シーケンサ400は、命令メモリ412に記憶された命令424およびデータメモリ410に記憶されたデータに基づいてGPIO出力406を生成する。幾つかの実施において、電力シーケンサ400は、出力としてアイドルまたはブレーク408を生成することができる。全ての入力および出力は、登録され、クロック404に関して同期的である。
【0041】
電力シーケンサ400は、シーケンスアドレス418を使用してデータメモリ410にアクセスすることによってデータ422を得ることができる。電力シーケンサ400は、シーケンスアドレス418を使用して命令メモリ412にアクセスすることによって命令424を得ることができる。データメモリ410および命令メモリ412の両方は、データおよび命令へのアドレスからゼロサイクルレイテンシを有することができ、したがって、電力シーケンサ400は、迅速な電力状態遷移を達成することができる。電力シーケンサは、命令メモリ412をインデックスすることから得られる命令424をデコードし、電力状態遷移を行うために、デコードされた命令を実行する。
【0042】
例えば、電力シーケンサ400は、
図3に示されているようにトリガ信号T1に応答してPS0(高速動作)からPS1(低速動作)への電力状態遷移のための命令424のセットを得ることができる。命令424の例は、以下を含むことができる。
q-ch
wait_or()
if accept
wait()
halt(PS1)
else if deny
wait()
halt(PS0).
幾つかの実施において、LPMが複数の電力シーケンサを含む場合、電力シーケンサは、データメモリ410および命令メモリ412などの共通のリソースを共有することができる。これは、LPMによって必要とされる領域消費を減じることを助ける、即ち、LPMは、より小さなシリコン領域を占める。例えば、
図4に示された2つの電力シーケンサ400は、同じデータメモリ410および同じ命令メモリ412を共有することができる。これは、2つ以上のデバイスが同じ電力状態を共有するが、独立して動作する場合に有用であることができる。例えば、2つのCPUは、同じ電力状態を共有することができ、2つのCPUは、独立して動作することができる。2つのCPUは各々自己の電力シーケンサを有することができ、2つの電力シーケンサは、同じデータメモリおよび同じ命令メモリを共有することができる。
【0043】
アクティブに動作していない場合、電力シーケンサ400は、アイドル状態にあることができ、命令424を実行することを開始するための開始パルス416を待つ。電力シーケンサ400が開始パルス416を受信すると、電力シーケンサ400は、シーケンスアドレス418を受け取り、命令424を実行することを開始することができる。幾つかの実施において、電力シーケンサがHALT命令を受信すると、電力シーケンサは、アイドル状態になり、命令を実行することを停止する。
【0044】
ローカル電力マネジャは、所定の数の一般的入力および一般的出力、即ちGPIO入力402およびGPIO出力406を規定することができる。すなわち、LPMは、64の一般的入力および64の一般的出力を規定することができる。
【0045】
幾つかの実施において、LPMが複数の電力シーケンサを含む場合、電力シーケンサは、それぞれの命令を独立して実行することができる。各々の電力シーケンサは、自己の専用のGPIO入力402およびGPIO出力406を有することができる。例えば、1つのLPM内に複数の電力シーケンサが存在する場合、64よりも多い一般的入力および64よりも多い一般的出力が存在することになる。
【0046】
命令424は、電力状態管理のために特に設計されたコンピュータプログラムを含むことができる。LPMは、所定の数の命令、例えば、合計で20の命令を規定することができる。命令424は、電力を休止させる、電力をオンにする、電力をオフにする、電力をクランプする、1つ以上の出力をトグリングする(例えば、GPIOをトグリングする)、1つ以上の入力を待つ(例えば、クロックコントローラからの確認を待つ)、および入力に基づくアクションを取るなど、デバイスの電力状態を制御するための様々なオペレーションを行うように特に設計されることができる。幾つかの実施において、命令424は、入力の値および失敗またはエラー条件が満たされた場合にタイムアウトする能力に応じて分岐アクションを取るように設計されることができる。
【0047】
幾つかの実施において、命令424は、長さが可変であることができる。幾つかの命令は、メジャーなオペコードに基づいて、例えば、オペランドのサイズに基づいてエンコードされることができるのに対し、幾つかの命令は、マイナーなオペコードに基づいて、例えば、命令の実際のサイズに基づいてエンコードされることができる。例えば、単純な命令は、16ビットのサイズに基づいてエンコードされることができるのに対し、より複雑な命令は、32ビットのサイズであることができる。幾つかの実施において、命令424は、トリガロジック204によって受信されるイベント信号202の値を表す1つ以上のオペランドを含むことができる。イベント信号202は、システムとインターフェースする入力および出力信号を含むことができ、システムの電力状態遷移を制御することができる。例えば、イベント入力信号は、命令シーケンスの実行をトリガすることができる。命令シーケンスは、電力状態遷移を制御するために様々なプロトコルを実施するために入力または出力信号のセットにおいて動作することができる。
【0048】
幾つかの実施において、命令424は、電力状態遷移をデバッグするためのデバッグ機能を提供することができる。例えば、命令424は、ブレークポイントを加えるおよびシングルステップデバッグを行うなどの機能を提供することができる。
【0049】
LPM200は、プログラマブルであり、アドバンスド周辺バス(APB:Advanced Peripheral Bus)ポート420を通じてソフトウェアプログラムに接続することによってポストシリコンで更新されることができる。ソフトウェアプログラムは、LPMツールチェーンにおいて規定されたAPIを使用して生成されることができる。ソフトウェアプログラムは、ABPポート420を通じてLPMにおけるCSRにアクセスすることができる。例えば、ソフトウェアプログラムは、ABPポート420を通じて、トリガロジック204のためのCSR218、電力状態表208のためのCSR220、データメモリ224のためのCSR、および命令メモリ222のためのCSRにアクセスすることができ、これらのCSRに記憶されたデータは、ソフトウェアプログラムによって更新または修正されることができる。
【0050】
図5は、電力シーケンサを使用する電力管理のための例示的なプロセスのフローチャートである。便宜上、プロセスは、コンピューティングデバイス100における1つ以上のローカル電力マネジャを含むシステムによって行われるものとして説明される。システムは、1つ以上のデバイス、1つ以上の電力状態表、トリガロジック、1つ以上の電力シーケンサ、またはこれらのいずれかの組合せを含む、
図1を参照して説明された構成要素を含むことができる。
【0051】
システムは、ローカル電力マネジャによって得られたトリガ信号をモニタする(510)。システムは、所定のインターバルでトリガ信号をモニタすることができる。例えば、システムは、5ミリ秒ごとにLPMによって受信されるイベント信号をチェックするメインループに入ることができる。システムは、1つ以上のイベント信号202を受信することができ、システムは、LPM200においてトリガロジック204を使用して1つ以上のトリガ信号206を生成することができる。
【0052】
システムは、トリガ信号が、システムにおけるデバイスのための電力状態遷移のためのトリガ信号であるかどうかを決定する(520)。システムは、デバイスの電力状態表208およびデバイスの現在の電力状態214に基づいてトリガ信号が電力状態遷移のためのトリガ信号であるかどうかを決定することができる。幾つかの実施において、システムは、コンピューティングデバイス100における複数のデバイスのための電力状態遷移ニーズをモニタすることができる。システムは、各々のデバイスのそれぞれの電力状態表208および各々のデバイスのそれぞれの現在の電力状態214に基づいてトリガ信号が各々のデバイスのための電力状態遷移をトリガするかどうかを決定することができる。例えば、表1における電力状態表に基づいて、デバイスの現在の電力状態がPS0である場合、システムは、トリガ信号T1が、PS0(高速動作)からPS1(低速動作)への電力状態遷移のためのトリガ信号であることを決定することができる。
【0053】
トリガ信号が電力状態遷移のためのトリガ信号ではないことをシステムが決定すると、システムは、ローカル電力マネジャによって得られる将来のトリガ信号をモニタし続ける(510)。
【0054】
トリガ信号が電力状態遷移のためのトリガ信号であることをシステムが決定すると、システムは、電力状態遷移のための命令シーケンスを実行する(530)。システムは、電力状態表208に基づいて命令シーケンスのシーケンスアドレス210を生成することができる。システムは、シーケンスアドレス210を使用して命令メモリ412をインデックスすることによって命令シーケンスのための命令424を決定するために電力シーケンサを使用することができる。電力シーケンサは、命令424に基づいてGPIO出力406を生成することができ、GPIO出力406は、デバイスの電力状態遷移を行うために使用されることができる。幾つかの実施において、システムは、それぞれの電力シーケンサ、およびコンピューティングデバイス100内の複数のデバイスの各々のためのそれぞれの電力状態表を含むことができる。システムは、複数のデバイスの各々のためのそれぞれのGPIO出力を生成することができる。
【0055】
主題の実施形態および本明細書に説明された動作およびオペレーションは、デジタル電子回路、有形的に具体化されたコンピュータソフトウェアまたはファームウェア、本明細書に開示された構造およびそれらの構造的均等物を含むコンピュータハードウェア、またはそれらのうちの1つまたは複数の組合せにおいて実施されることができる。本明細書に説明された主題の実施形態は、1つ以上のコンピュータプログラムとして、即ち、データ処理装置による実行のためまたはデータ処理装置のオペレーションを制御するために有形的な非一次的ストレージ媒体においてエンコードされたコンピュータプログラム命令の1つ以上のモジュールとして実施されることができる。代替的にまたは追加的に、プログラム命令は、人工的に生成された伝播される信号、例えば、データ処理装置による実行のために適切なレシーバ装置への伝送のために情報をエンコードするために生成される、機械生成された電気的、光学的または電磁気的信号においてエンコードされることができる。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムまたはシリアルアクセスメモリデバイス、またはそれらのうちの1つ以上の組合せ、またはそれらの一部であることができる。コンピュータストレージ媒体は、伝播された信号ではない。
【0056】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、エンジン、スクリプトまたはコードと呼ばれてもよいまたはそのようなものとして説明されてもよいコンピュータプログラムは、コンパイラ型言語またはインタープリタ型言語、もしくは宣言型言語または手続き型言語を含む、あらゆる形式のプログラミング言語において書かれることができる。コンピュータプログラムは、スタンドアロンプログラムもしくはモジュール、構成要素、エンジン、サブルーチン、またはコンピューティング環境における実行に適したその他のユニットを含むあらゆる形式で展開されることができ、この環境は、1つ以上のロケーションにおいてデータ通信ネットワークによって相互接続された1つ以上のコンピュータを含んでよい。
【0057】
コンピュータプログラムは、ファイルシステムにおけるファイルに対応する場合があるが、その必要はない。コンピュータプログラムは、その他のプログラムまたはデータを保持するファイルの一部、例えば、マークアップ言語ドキュメントに記憶された1つ以上のスクリプト、問題となるプログラムに専用の1つのファイル、または複数の調整されたファイル、例えば、1つ以上のモジュール、サブプログラムまたはコードの部分を記憶するファイルに記憶されることができる。
【0058】
ユーザとの相互作用を提供するために、本明細書において説明された主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、例えば、LCD(液晶ディスプレイ)モニタ、およびそれによってユーザがコンピュータに入力を提供することができる入力デバイス、例えば、キーボード、およびポインティングデバイス、例えば、マウス、トラックボールまたはタッチパッドを有するコンピュータにおいて実施されることができる、またはこのようなコンピュータと通信するように構成されることができる。ユーザとの相互作用を提供するためにその他の種類のデバイスを使用することもできる。例えば、ユーザに提供されるフィードバックは、あらゆる形式の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバックまたは触覚フィードバックであることができる。ユーザからの入力は、音響、音声または触覚入力を含むあらゆる形式で受信されることができる。加えて、コンピュータは、ユーザによって使用されるデバイスへドキュメントを送信するおよびこのようなデバイスからドキュメントを受信することによって、例えば、ウェブブラウザから受信されたリクエストに応答してユーザのデバイス上のウェブブラウザへウェブページを送信することによって、またはユーザデバイス、例えば、スマートフォンまたは電子タブレット上で動作するアプリと相互作用することによって、ユーザと相互作用することができる。また、コンピュータは、パーソナルデバイス、例えば、メッセージングアプリケーションを動作させるスマートフォンへテキストメッセージまたはその他の形式のメッセージを送信し、かつ逆にユーザから応答メッセージを受信することによって、ユーザと相互作用することができる。
【0059】
本明細書において説明された主題の実施形態は、例えば、データサーバとしてのバックエンド構成要素を含む、またはミドルウェア構成要素、例えば、アプリケーションサーバを含む、またはフロントエンド構成要素、例えば、グラフィカルユーザインターフェース、ウェブブラウザまたはそれを通じてユーザが本明細書に説明された主題の実施と相互作用することができるアプリを有するクライアントデバイスを含む、または1つ以上のバックエンド、ミドルウェアまたはフロントエンド構成要素のあらゆる組合せを含む、コンピューティングシステムにおいて実施されることができる。システムの構成要素は、デジタルデータ通信のあらゆる形式または媒体、例えば、通信ネットワークによって相互接続されることができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、例えば、インターネットを含む。
【0060】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般的に互いに遠隔であり、典型的には通信ネットワークを通じて相互作用する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で動作しかつ互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。幾つかの実施形態において、サーバは、例えば、データを表示しかつクライアントとして動作するデバイスと相互作用するユーザからのユーザ入力を受信する目的で、ユーザデバイスへデータ、例えば、HTMLページを送信する。ユーザデバイスにおいて生成されたデータ、例えば、ユーザ相互作用の結果は、デバイスからサーバにおいて受信されることができる。
【0061】
上記で説明された実施形態に加え、以下の実施形態も革新的である。
実施形態1は、複数の電力ブロックにおいて配置された複数のデバイスを含み、複数のデバイスの各々のデバイスは、複数の電力ブロックのうちの1つに属し、
複数のローカル電力マネジャをさらに含み、各々のローカル電力マネジャは、それぞれの電力ブロックにおいて1つ以上のデバイスのための電力状態遷移を生じさせるためにそれぞれの電力ブロックのための命令シーケンスのそれぞれのセットを実行するようにプログラム可能である、コンピューティングデバイスである。
【0062】
実施形態2は、実施形態1のコンピューティングデバイスであって、各々のローカル電力マネジャは、
イベント信号入力を受信し、トリガ信号を出力するように構成されたトリガロジックと、
トリガ信号と電力状態遷移との間のマッピングを記憶するように構成された電力状態表と、
電力状態遷移がトリガロジックによってトリガされたときにそれぞれの命令シーケンスを実行するように構成された1つ以上のハードウェアシーケンサと
を含む。
【0063】
実施形態3は、実施形態2のコンピューティングデバイスであって、電力状態表、トリガロジック、および命令シーケンスは、コンピューティングデバイスが製造された後に修正可能である。
【0064】
実施形態4は、実施形態2のコンピューティングデバイスであって、ハードウェアシーケンサは、ブレークポイントおよびデバッグのためのシングルステップ機能を含む。
【0065】
実施形態5は、実施形態2のコンピューティングデバイスであって、命令シーケンスは、トリガロジックによって受信されるイベント信号入力の値を表す1つ以上のオペランドを有する命令を含み、イベント信号入力は、電力状態遷移を制御する。
【0066】
実施形態6は、実施形態1のコンピューティングデバイスであって、各々のローカル電力マネジャは、条件命令を実行するように構成されているが、算術演算を行うためのハードウェアを欠く。
【0067】
実施形態7は、実施形態1のコンピューティングデバイスであって、各々のローカル電力マネジャは、複数のそれぞれのデバイスの複数の電力状態表のための遷移シーケンスを実行するように構成されている。
【0068】
実施形態8は、コンピュータによって実行される方法であって、
ローカル電力マネジャによって得られるトリガ信号をモニタリングすることを含み、コンピューティングデバイスにおける複数のデバイスは、複数の電力ブロックにおいて配置されており、複数のデバイスの各々のデバイスは、複数の電力ブロックのうちの1つに属し、複数のローカル電力マネジャの各々は、それぞれの電力ブロックのための命令シーケンスのそれぞれのセットを実行するようにプログラム可能であり、
上記方法は、
電力状態遷移のためのトリガ信号が受信されたかどうかを決定することと、
電力状態遷移のためのトリガ信号が受信されたことを決定することに応答して、それぞれの電力ブロックにおける1つ以上のデバイスのための電力状態遷移のための命令シーケンスを実行することと、
をさらに含む。
【0069】
実施形態9は、実施形態8のコンピュータによって実行される方法であって、各々のローカル電力マネジャは、
イベント信号入力を受信し、トリガ信号を出力するように構成されたトリガロジックと、
トリガ信号と電力状態遷移との間のマッピングを記憶するように構成された電力状態表と、
電力状態遷移がトリガロジックによってトリガされたときにそれぞれの命令シーケンスを実行するように構成された1つ以上のハードウェアシーケンサと
を含む。
【0070】
実施形態10は、実施形態9のコンピュータによって実行される方法であって、電力状態表、トリガロジック、および命令シーケンスは、コンピューティングデバイスが製造された後に修正可能である。
【0071】
実施形態11は、実施形態9のコンピュータによって実行される方法であって、ハードウェアシーケンサは、ブレークポイントおよびデバッグのためのシングルステップ機能を含む。
【0072】
実施形態12は、実施形態9のコンピュータによって実行される方法であって、命令シーケンスは、トリガロジックによって受信されるイベント信号入力の値を表す1つ以上のオペランドを有する命令を含み、イベント信号入力は、前記電力状態遷移を制御する。
【0073】
実施形態13は、実施形態8のコンピュータによって実行される方法であって、各々のローカル電力マネジャは、条件命令を実行するように構成されているが、算術演算を行うためのハードウェアを欠く。
【0074】
実施形態14は、実施形態8のコンピュータによって実行される方法であって、各々のローカル電力マネジャは、複数のそれぞれのデバイスの複数の電力状態表のための遷移シーケンスを実行するように構成されている。
【0075】
実施形態15は、複数の電力ブロックに配置されたコンピューティングデバイスの1つ以上のローカル電力マネジャによって実行されたときに、1つ以上のローカル電力マネジャに、コンピューティングデバイスのそれぞれの電力ブロックにおける複数のデバイスのための電力状態遷移を生じさせる命令でエンコードされた1つ以上の非一時的ストレージ媒体であって、複数のデバイスの各々は、複数の電力ブロックのうちの1つに属する。
【0076】
実施形態16は、実施形態15の非一時的ストレージ媒体であって、各々のローカル電力マネジャは、
イベント信号入力を受信し、トリガ信号を出力するように構成されたトリガロジックと、
トリガ信号と電力状態遷移との間のマッピングを記憶するように構成された電力状態表と、
電力状態遷移がトリガロジックによってトリガされたときにそれぞれの命令を実行するように構成された1つ以上のハードウェアシーケンサと
を含む。
【0077】
実施形態17は、実施形態16の非一時的ストレージ媒体であって、電力状態表、トリガロジック、および命令は、コンピューティングデバイスが製造された後に修正可能である。
【0078】
実施形態18は、実施形態16の非一時的ストレージ媒体であって、ハードウェアシーケンサは、ブレークポイントおよびデバッグのためのシングルステップ機能を含む。
【0079】
実施形態19は、実施形態16の非一時的ストレージ媒体であって、命令は、トリガロジックによって受信されたイベント信号入力の値を表す1つ以上のオペランドを有する命令を含み、イベント信号入力は、電力状態遷移を制御する。
【0080】
実施形態20は、実施形態15の非一時的ストレージ媒体であって、各々のローカル電力マネジャは、条件命令を実行するように構成されているが、算術演算を行うためのハードウェアを欠く。
【0081】
本明細書は、多くの特定の実施詳細を含むが、これらは、あらゆる発明の範囲または請求されているものまたは請求され得るものの範囲に対する限定として解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に特定であり得る特徴の説明として解釈されるべきである。別々の実施形態の文脈において本明細書で説明されているある特徴は、1つの実施形態において組み合わせて実施することもできる。反対に、1つの実施形態の文脈において説明されている様々な特徴は、複数の実施形態において別々にまたはあらゆる適切なサブコンビネーションにおいて実施することもできる。さらに、特徴は、ある組合せにおいて動作するものとして上記で説明されている場合があり、さらにそのようなものとして最初に請求されている場合があるが、請求された組合せからの1つまたは複数の特徴は、幾つかの場合において、その組合せから削除されることができ、請求項は、サブコンビネーションまたはサブコンビネーションのバリエーションに向けられる場合がある。
【0082】
同様に、オペレーションは、特定の順序で図示されかつ請求項に列挙されているが、これは、所望の結果を達成するために、このようなオペレーションが示された特定の順序でまたは順次に行われること、または全ての示されたオペレーションが行われることを要求するものとして理解されるべきではない。ある状況において、マルチタスクおよび並列処理が有利な場合がある。さらに、上記で説明されている実施形態における様々なシステムモジュールおよび構成要素の分離は、全ての実施形態におけるこのような分離を要求するものとして理解されるべきではなく、説明されているプログラム構成要素およびシステムが一般的に1つのソフトウェア製品に統合されるまたは複数のソフトウェア製品にパッケージされることができると理解されるべきである。
【0083】
主題の特定の実施形態が説明されている。その他の実施形態は以下の請求項の範囲にある。例えば、請求項において列挙される動作は、異なる順序で行われることができ、依然として望ましい結果を達成することができる。一例として、添付の図面に示されたプロセスは、所望の結果を達成するために、必ずしも示された特定の順序または順次を要求しない。幾つかの場合、マルチタスクおよび並列処理が有利である場合がある。
【手続補正書】
【提出日】2024-04-12
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
複数の電力ブロックにおいて配置された複数のデバイスを含み、
前記複数のデバイスの各々のデバイスは、前記複数の電力ブロックのうちの1つに属し、
複数のローカル電力マネジャをさらに含み、
各々のローカル電力マネジャは、それぞれの電力ブロックにおいて1つ以上のデバイスのための電力状態遷移を生じさせるために前記それぞれの電力ブロックのための命令シーケンスのそれぞれのセットを実行するようにプログラム可能である、コンピューティングデバイス。
【請求項2】
各々のローカル電力マネジャは、
イベント信号入力を受信し、トリガ信号を出力するように構成されたトリガロジックと、
トリガ信号と電力状態遷移との間のマッピングを記憶するように構成された電力状態表と、
電力状態遷移が前記トリガロジックによってトリガされたときにそれぞれの命令シーケンスを実行するように構成された1つ以上のハードウェアシーケンサと
を含む、請求項1に記載のコンピューティングデバイス。
【請求項3】
前記電力状態表、前記トリガロジック、および前記命令シーケンスは、前記コンピューティングデバイスが製造された後に修正可能である、請求項2に記載のコンピューティングデバイス。
【請求項4】
前記ハードウェアシーケンサは、ブレークポイントおよびデバッグのためのシングルステップ機能を含む、請求項2に記載のコンピューティングデバイス。
【請求項5】
前記命令シーケンスは、前記トリガロジックによって受信されるイベント信号入力の値を表す1つ以上のオペランドを有する命令を含み、前記イベント信号入力は、前記電力状態遷移を制御する、請求項2に記載のコンピューティングデバイス。
【請求項6】
各々のローカル電力マネジャは、条件命令を実行するように構成されているが、算術演算を行うためのハードウェアを欠く、請求項1に記載のコンピューティングデバイス。
【請求項7】
各々のローカル電力マネジャは、複数のそれぞれのデバイスの複数の電力状態表のための遷移シーケンスを実行するように構成されている、請求項1に記載のコンピューティングデバイス。
【請求項8】
コンピュータによって実行される方法であって、
複数のローカル電力マネジャ
のうちの1つによって得られるトリガ信号をモニタリングすることを含み、
コンピューティングデバイスにおける複数のデバイスは、複数の電力ブロックにおいて配置されており、前記複数のデバイスの各々のデバイスは、前記複数の電力ブロックのうちの1つに属し、
前記複数のローカル電力マネジャの各々は、それぞれの電力ブロックのための命令シーケンスのそれぞれのセットを実行するようにプログラム可能であり、
前記方法は、
電力状態遷移のためのトリガ信号が受信されたかどうかを決定することと、
前記電力状態遷移のための前記トリガ信号が受信されたことを決定することに応答して、前記それぞれの電力ブロックにおける1つ以上のデバイスのための前記電力状態遷移のための命令シーケンスを実行することと、
をさらに含む、コンピュータによって実行される方法。
【請求項9】
各々のローカル電力マネジャは、
イベント信号入力を受信し、トリガ信号を出力するように構成されたトリガロジックと、
トリガ信号と電力状態遷移との間のマッピングを記憶するように構成された電力状態表と、
電力状態遷移が前記トリガロジックによってトリガされたときにそれぞれの命令シーケンスを実行するように構成された1つ以上のハードウェアシーケンサと
を含む、請求項8に記載のコンピュータによって実行される方法。
【請求項10】
前記電力状態表、前記トリガロジック、および前記命令シーケンスは、前記コンピューティングデバイスが製造された後に修正可能である、請求項9に記載のコンピュータによって実行される方法。
【請求項11】
前記ハードウェアシーケンサは、ブレークポイントおよびデバッグのためのシングルステップ機能を含む、請求項9に記載のコンピュータによって実行される方法。
【請求項12】
前記命令シーケンスは、前記トリガロジックによって受信されるイベント信号入力の値を表す1つ以上のオペランドを有する命令を含み、前記イベント信号入力は、前記電力状態遷移を制御する、請求項9に記載のコンピュータによって実行される方法。
【請求項13】
各々のローカル電力マネジャは、条件命令を実行するように構成されているが、算術演算を行うためのハードウェアを欠く、請求項8に記載のコンピュータによって実行される方法。
【請求項14】
各々のローカル電力マネジャは、複数のそれぞれのデバイスの複数の電力状態表のための遷移シーケンスを実行するように構成されている、請求項8に記載のコンピュータによって実行される方法。
【請求項15】
複数の電力ブロックに配置されたコンピューティングデバイスの1つ以上の
プロセッサに
請求項8~14のいずれか1項に記載の方法を実行させるための、プログラム。
【国際調査報告】