(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-12
(54)【発明の名称】アドレス線形化を使用して保存回復レイテンシを低減するためのデバイス及び方法
(51)【国際特許分類】
G06F 12/00 20060101AFI20240905BHJP
G06F 12/06 20060101ALI20240905BHJP
G06F 1/3287 20190101ALI20240905BHJP
G06F 1/3228 20190101ALI20240905BHJP
G06F 1/3234 20190101ALI20240905BHJP
【FI】
G06F12/00 550E
G06F12/06 515J
G06F1/3287
G06F1/3228
G06F1/3234
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024516573
(86)(22)【出願日】2022-07-18
(85)【翻訳文提出日】2024-04-10
(86)【国際出願番号】 US2022037502
(87)【国際公開番号】W WO2023048799
(87)【国際公開日】2023-03-30
(32)【優先日】2021-09-23
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】ベンジャミン チェン
(72)【発明者】
【氏名】アレクサンダー ジェイ. ブラノーバー
(72)【発明者】
【氏名】クリストファー ティー. ウィーバー
(72)【発明者】
【氏名】インドラニ ポール
(72)【発明者】
【氏名】ミヒル シャイルシュバイ ドクター
(72)【発明者】
【氏名】ジョン ピー. ペトリー
(72)【発明者】
【氏名】ステファン ヴィー. コソノキー
(72)【発明者】
【氏名】トーマス ジェイ. ギブニー
(72)【発明者】
【氏名】ホセ ジー. クルツ
(72)【発明者】
【氏名】プラベッシュ グプタ
(72)【発明者】
【氏名】チンタン エス. パテル
【テーマコード(参考)】
5B011
5B160
【Fターム(参考)】
5B011DC02
5B011EA02
5B011EA08
5B011EA09
5B011EA10
5B011KK03
5B011MB07
5B160AA20
5B160AC08
5B160MM03
5B160MM04
(57)【要約】
デバイスの電力状態間で遷移するためのデバイス及び方法が提供される。プログラムは、デバイスの構成要素に割り当てられた構成レジスタに記憶されたデータを使用して実行される。第1の低減電力状態において、構成レジスタの第1の部分のデータは、線形アドレス空間の第1のセットを使用してメモリに保存される。第2の低減電力状態において、構成レジスタの第2の部分のデータは、線形アドレス空間の第2のセットを使用してメモリに保存され、構成レジスタの第3の部分のデータは、線形アドレス空間の第3のセットを使用してメモリに保存される。
【選択図】
図7
【特許請求の範囲】
【請求項1】
処理デバイスであって、
メモリと、
割り当てられた構成レジスタを有し、前記構成レジスタに記憶されたデータを使用してプログラムを実行するように構成された構成要素と、
電力管理コントローラと、を備え、
前記電力管理コントローラは、
第1の低減電力状態において、線形アドレス空間の第1のセットを使用して、前記構成レジスタの第1の部分のデータを前記メモリに保存することと、
第2の低減電力状態において、
線形アドレス空間の第2のセットを使用して、前記構成レジスタの第2の部分のデータを前記メモリに保存することと、
線形アドレス空間の第3のセットを使用して、前記構成レジスタの第3の部分のデータを前記メモリに保存することと、
を行うように構成されている、
処理デバイス。
【請求項2】
前記メモリは、ダイナミックランダムアクセスメモリ(DRAM)と、スタティックランダムアクセスメモリ(SRAM)と、を備え、
前記線形アドレス空間の第1のセットにマッピングされた前記構成レジスタの前記第1の部分の前記データは、DRAMに保存され、DRAMから前記構成レジスタの前記第1の部分に回復され、
前記線形アドレス空間の第2のセットにマッピングされた前記構成レジスタの前記第2の部分の前記データは、DRAMに保存され、DRAMから前記構成レジスタの前記第2の部分に回復され、
前記線形アドレス空間の第3のセットにマッピングされた前記構成レジスタの前記第3の部分のデータは、前記第1の低減電力状態及び前記第2の低減電力状態の間に電力が供給され続ける前記SRAMの部分に保存される、
請求項1の処理デバイス。
【請求項3】
前記線形アドレス空間の第3のセットにマッピングされ、前記SRAMの前記部分に保存された前記構成レジスタの前記第3の部分の前記データは、前記第1の部分及び前記第2の部分の前記データを前記DRAMに保存し、前記第1の部分及び前記第2の部分の前記データを前記DRAMから前記構成レジスタの前記第1の部分及び前記第2の部分に回復させるために使用される、
請求項2の処理デバイス。
【請求項4】
前記割り当てられた構成レジスタの前記第3の部分の前記データは、ルーティングテーブル、フロー制御、信頼性アクセス可能性保守性(RAS)構成及びアドレスマップのうち少なくとも1つに関連するデータを含む、
請求項1の処理デバイス。
【請求項5】
前記構成レジスタの前記第1の部分の前記データは、コンパイル時に、前記線形アドレス空間の第1のセットにマッピングされ、前記構成レジスタの前記第2の部分は、コンパイル時に、前記線形アドレス空間の第2のセットにマッピングされ、前記構成レジスタの前記第3の部分は、コンパイル時に、前記線形アドレス空間の第3のセットにマッピングされる、
請求項1の処理デバイス。
【請求項6】
前記処理デバイスは、ディスプレイを備え、
前記第1の低減電力状態は、より浅い低減電力状態であり、
前記より浅い低減電力状態は、
電力が、前記ディスプレイを制御するディスプレイコントローラを除いて、前記割り当てられた構成レジスタに供給されることと、
前記割り当てられた構成レジスタに供給される電力の量が、前記より浅い低減電力状態において前記割り当てられた構成レジスタに供給される電力の量未満であることと、
のうち何れかであり、
前記第2の低減電力状態は、前記割り当てられた構成レジスタに電力が供給されない、より深い低減電力状態である、
請求項1の処理デバイス。
【請求項7】
前記電力管理コントローラは、
前記処理デバイスの複数の構成要素とインターフェースし、前記処理デバイスの1つ以上の構成要素がアイドルであるかどうかの指標を受信するロジック回路を備える、
請求項1の処理デバイス。
【請求項8】
前記電力管理コントローラは、
前記構成レジスタの前記第1の部分、前記第2の部分及び前記第3の部分の前記データを、前記電力管理コントローラにローカルなメモリの一部に保存するように構成されている、
請求項7の処理デバイス。
【請求項9】
前記電力管理コントローラは、前記第1の低減電力状態及び前記第2の低減電力状態に移行するプロセスのために、
前記線形アドレス空間の第1のセットを使用して、前記構成レジスタの前記第1の部分の前記データを前記メモリに保存することによって、前記第1の低減電力状態に移行することと、
前記第1の低減電力状態に移行した後に、前記線形アドレス空間の第2のセットを使用して、前記構成レジスタの前記第2の部分の前記データを前記メモリに保存することと、
前記構成レジスタの前記第2の部分の前記データを前記メモリに保存した後に、前記線形アドレス空間の第3のセットを使用して、前記構成レジスタの前記第3の部分の前記データを保存することによって、前記第2の低減電力状態に移行することと、
を行うように構成されている、
請求項1の処理デバイス。
【請求項10】
デバイスの電力状態間で遷移する方法であって、
構成レジスタに記憶されたデータを使用して、プログラムを実行することと、
第1の低減電力状態において、線形アドレス空間の第1のセットを使用して、構成レジスタの第1の部分のデータをメモリに保存することと、
第2の低減電力状態において、
線形アドレス空間の第2のセットを使用して、前記構成レジスタの第2の部分のデータを前記メモリに保存することと、
線形アドレス空間の第3のセットを使用して、前記構成レジスタの第3の部分のデータを前記メモリに保存することと、を含み、
前記構成レジスタは、前記デバイスの構成要素に割り当てられる、
方法。
【請求項11】
前記線形アドレス空間の第1のセットにマッピングされた前記構成レジスタの前記第1の部分の前記データは、前記メモリのダイナミックランダムアクセスメモリ(DRAM)に保存され、DRAMから前記構成レジスタの前記第1の部分に回復され、
前記線形アドレス空間の第2のセットにマッピングされた前記構成レジスタの第2の部分の前記データは、DRAMに保存され、DRAMから前記構成レジスタの第2の部分に回復され、
前記構成レジスタの前記第3の部分の前記データは、前記第1の低減電力状態及び前記第2の低減電力状態の間に電力が供給され続けるスタティックランダムアクセスメモリ(SRAM)の一部に保存される、
請求項10の方法。
【請求項12】
前記線形アドレス空間の第3のセットにマッピングされ、前記SRAMの前記部分に保存された前記構成レジスタの前記第3の部分の前記データは、前記第1の部分及び前記第2の部分の前記データを前記DRAMに保存し、前記第1の部分及び前記第2の部分の前記データを前記DRAMから前記構成レジスタの前記第1の部分及び前記第2の部分に回復させるために使用される、
請求項11の方法。
【請求項13】
前記構成レジスタの前記第3の部分の前記データは、ルーティングテーブル、フロー制御、信頼性アクセス可能性保守性(RAS)構成及びアドレスマップのうち少なくとも1つに関連するデータを含む、
請求項10の方法。
【請求項14】
コンパイル時に、
前記構成レジスタの前記第1の部分を、前記線形アドレス空間の第1のセットにマッピングすることと、
前記構成レジスタの前記第2の部分を、前記線形アドレス空間の第2のセットにマッピングすることと、
前記構成レジスタの前記第3の部分を、前記線形アドレス空間の第3のセットにマッピングすることと、を含む、
請求項10の方法。
【請求項15】
前記第1の低減電力状態は、より浅い低減電力状態であり、
前記より浅い低減電力状態は、
電力が、ディスプレイを制御するディスプレイコントローラを除いて、前記構成レジスタに供給されることと、
前記構成レジスタに供給される電力の量が、前記より浅い低減電力状態において前記構成レジスタに供給される電力の量未満であることと、
のうち何れかであり、
前記第2の低減電力状態は、前記構成レジスタに電力が供給されない、より深い低減電力状態である、
請求項10の方法。
【請求項16】
前記構成要素がアイドルであるという指標を受信した場合に、前記第1の低減電力状態及び前記第2の低減電力状態のうち何れかに移行することと、
電力管理コントローラが、前記構成レジスタの前記データを、前記線形アドレス空間の第1のセット、前記線形アドレス空間の第2のセット、及び、前記線形アドレス空間の第3のセットに保存することと、を含む、
請求項10の方法。
【請求項17】
前記第1の低減電力状態及び前記第2の低減電力状態を終了させるプロセスのために、
前記線形アドレス空間の第3のセットを使用して、前記構成レジスタの前記第3の部分の前記データを回復させることと、
前記データを前記構成レジスタの前記第3の部分に回復させた後に、前記線形アドレス空間の第2のセットを使用して、前記構成レジスタの前記第2の部分の前記データを回復させることと、
によって前記第2の低減電力状態を終了させることと、
前記データを前記構成レジスタの前記第2の部分に回復させた後に、前記線形アドレス空間の第1のセットを使用して、前記データを前記構成レジスタの前記第1の部分に回復させることによって、前記第1の低減電力状態を終了させることと、を含む、
請求項10の方法。
【請求項18】
前記第1の低減電力状態及び前記第2の低減電力状態に移行するプロセスのために、
前記線形アドレス空間の第1のセットを使用して、前記構成レジスタの前記第1の部分の前記データを前記メモリに保存することによって、前記第1の低減電力状態に移行することと、
前記第1の低減電力状態に移行した後に、前記線形アドレス空間の第2のセットを使用して、前記構成レジスタの前記第2の部分の前記データを前記メモリに保存することと、
前記構成レジスタの前記第2の部分の前記データを前記メモリに保存した後に、前記線形アドレス空間の第3のセットを使用して、前記構成レジスタの前記第3の部分の前記データを保存することによって、前記第2の低減電力状態に移行することと、を含む、
請求項10の方法。
【請求項19】
デバイスの電力状態間の遷移の方法をコンピュータに実行させるための命令を含むコンピュータ可読記憶媒体であって、
前記命令は、
構成レジスタに記憶されたデータを使用して、プログラムを実行することと、
第1の低減電力状態において、線形アドレス空間の第1のセットを使用して、構成レジスタの第1の部分のデータをメモリに保存することと、
第2の低減電力状態において、
線形アドレス空間の第2のセットを使用して、前記構成レジスタの第2の部分のデータを前記メモリに保存することと、
線形アドレス空間の第3のセットを使用して、前記構成レジスタの第3の部分のデータを前記メモリに保存することと、を含み、
前記構成レジスタは、前記デバイスの構成要素に割り当てられる、
コンピュータ可読記憶媒体。
【請求項20】
前記線形アドレス空間の第1のセットにマッピングされた前記構成レジスタの前記第1の部分の前記データは、ダイナミックランダムアクセスメモリ(DRAM)に保存され、DRAMから前記構成レジスタの前記第1の部分に回復され、
前記線形アドレス空間の第2のセットにマッピングされた前記構成レジスタの前記第2の部分の前記データは、前記DRAMに保存され、前記DRAMから前記構成レジスタの前記第2の部分に回復され、
前記線形アドレス空間の第3のセットにマッピングされた前記構成レジスタの第3の部分の前記データは、前記第1の低減電力状態及び前記第2の低減電力状態の間に電力が供給され続けるスタティックランダムアクセスメモリ(SRAM)の一部に保存される、
請求項19のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、2021年9月23日に出願された米国特許出願第17/483,694号の利益を主張するものであり、その内容は、参照により本明細書に組み込まれる。
【背景技術】
【0002】
コンピューティングシステムは、単一チップ又はマルチチップモジュール上に多数の異なるタイプの構成要素を集積するようになってきている。デバイスの複雑性及び電力消費は、異なるタイプの構成要素の数と共に増加する。電力管理は、集積回路、特に、モバイルデバイス等のように、典型的にはバッテリ電力に依存するデバイス内に集積される回路の設計及び動作の重要な要因である。これらのデバイスの集積回路における電力消費を低減することは、バッテリの寿命を増加させ、及び、集積回路によって生じた熱を減少させることができる。
【0003】
添付の図面と共に例として与えられる以下の説明から、より詳細な理解を得ることができる。
【図面の簡単な説明】
【0004】
【
図1】本開示の1つ以上の特徴を実装することができる例示的なデバイスのブロック図である。
【
図2】本開示の1つ以上の特徴を実装するための電力管理コントローラを含む例示的な構成要素を示すブロック図である。
【
図3】
図2に示される電力管理コントローラを更に詳細に示すブロック図である。
【
図4】本開示の1つ以上の特徴を実装するための中間システム管理ユニットの構成要素を示すブロック図である。
【
図5】本開示の1つ以上の特徴を実装することができる例示的なデバイスの異なる電力ドメインを示すブロック図である。
【
図6】本開示の特徴による、線形アドレス指定を使用して、より深い(deeper)及びより浅い(shallower)低減電力状態を終了させる例示的な方法を示すフロー図である。
【
図7】割り当てられた構成レジスタを線形アドレス空間の第1、第2及び第3のセットにマッピングする例と、メモリと構成レジスタとの間のデータフローと、を示す図である。
【発明を実施するための形態】
【0005】
いくつかの従来のデバイスは、低減電力状態(すなわち、電力ゲーティング状態)に移行することによって、消費電力を低減し、この状態は、デバイス又はデバイスの1つ以上の構成要素が、別の動作モードよりも消費電力の少ないモードで動作している状態である。例えば、通常であれば現在の電力状態を保持するために使用される電力は、1つ以上の構成要素から除去され、電力ゲーティング状態になり、消費電力が少なくなる。低減電力状態は、例えば、構成要素に対する電力をオフにすること若しくは除去することによって、又は、代替的に、構成要素に供給される電源電圧を低減すること及び/若しくはクロック周波数を低減することによって移行される。
【0006】
構成レジスタ状態は、デバイスの構成要素に割り当てられた複数の構成レジスタに記憶された値を指し、構成要素を識別し、構成要素の様々な特徴を定義し、システムソフトウェアが構成要素とインターフェースし、及び/又は、構成要素の動作を制御することを許容する。低減電力状態に移行する前に、構成レジスタ状態(すなわち、構成レジスタ内のデータの値)が、メモリ(例えば、ダイナミックランダムアクセスメモリ(dynamic random-access memory、DRAM))に保存される。構成要素に割り当てられたレジスタには、ルーティングテーブル、アドレスマップ、構成データ、フロー制御クレジットを含むバッファ割り当て情報(例えば、第1の構成要素が初期化中にそのバッファカウントを第2の構成要素に通信し、第2の構成要素が、バッファが解放されるのを一時停止して待機することなく第1の構成要素に送信することができるパケットの数の指標を有する場合)、パフォーマンスレジスタ及びデバッグ関連レジスタ等の任意の数及びタイプのレジスタが含まれる。
【0007】
オペレーティングシステム、デバイスドライバ及び診断ソフトウェアは、通常、所定の構成要素の動作中に構成レジスタ状態にアクセスする。低減電力状態を終了すると、構成レジスタ状態が回復する。構成レジスタ状態を保存し、回復させることで、実行中に誤ったデータが記憶されることに起因する計算エラーの発生を防止する。
【0008】
システムが低減電力状態に移行するごとに構成レジスタ状態をメモリに保存することで、低減電力状態で費やされる合計時間を低減する遅延が引き起こされる。また、構成レジスタ状態をメモリに書き込むことで、電力使用ペナルティが生じる。
【0009】
更に、データが記憶される正しい順序でデータをメモリに保存することを含む構成レジスタ状態の保存は、非効率的に処理されることが多い。例えば、16個の割り当てられたレジスタのうち5個(すなわち、構成要素に割り当てられている)が使用されている場合、11個の未使用レジスタのためのデータを保存するために時間とリソースが浪費される。代替的に、インスタンスがアドレスブロックのために使用されており、異なる数のインスタンスが異なるタイプ(例えば、世代)のシステムオンチップ(system on chip、SOC)のために使用されている場合、追加の時間及びリソースが浪費される可能性がある。例えば、コヒーレントエージェントの3つのコピーが1つのSOCに使用され、コヒーレントエージェントの6つのコピーが別のSOCに使用される場合、6つのコピーが保存される。
【0010】
いくつかの従来のシステムは、線形アドレス指定を使用することによってこの非効率性を回避しようとし、線形アドレス指定は、別のアドレス空間内のレジスタのために第2のアドレスを追加することによって代替復号を生成する。次いで、第2のアドレスが第1のアドレス(すなわち、通常アドレス)と一致する場合に、レジスタがアクセスされる。すなわち、SOCのレジスタは、コンパイル中にレジスタを一緒にステッチする(stitching)ことによって線形化される。
【0011】
例えば、参照によりその全体が本明細書に組み込まれる米国特許第10,403,351号に記載されているように、低減電力状態を終了した後、構成要素に割り当てられた構成レジスタに行われた変更が追跡され、低減電力状態に移行すると、構成要素は、変更されたと判定された構成レジスタを書き込む。構成レジスタに対して行われた変更は、レジスタのアドレスを識別し、構成レジスタを線形アドレス空間内の連続アドレスにマッピングし(例えば、構成レジスタのレジスタアドレス又はレジスタ識別子をマッピングし)、次いで、線形アドレス空間内の連続アドレスにマッピングされた構成レジスタを追跡することによって追跡される。
【0012】
上述した例では、16個の割り当てられたレジスタのうち5個が使用されている場合、線形アドレス空間内の連続するアドレスは、アドレス0で開始しアドレス4で終了する第1のアドレスブロック(5個の使用レジスタの場合)と、アドレス5で開始しアドレス15で終了する第2のアドレスブロック(未使用レジスタの場合)と、を含むことができる。線形アドレス空間内のアドレスは、低減電力状態への移行時及び低電力状態の終了時に構成レジスタを記憶し、回復させるためにメモリにマッピングされる。
【0013】
一例では、構成要素のインスタンスごとに線形アドレスが生成される。例えば、4つのレジスタ及び2つのインスタンスが使用される場合、構成要素の線形アドレスは、4バイトのアドレス範囲(例えば、バイト0~バイト3)を含み、第1のインスタンスは、バイト0の開始アドレスを含み、第2のインスタンスは、バイト4の開始アドレスを含む。したがって、インスタンス化された構成要素は、バイト0で始まる線形アドレスに追加することができるその開始アドレスの値(例えば、ストラップ値)を各々が受信する場合、それ自体の他のインスタンスを認識しない。
【0014】
代替的に、複数のインスタンスが複数回使用される場合、アドレスの連続範囲が生成される(例えば、アドレス0からアドレス16まで)。次いで、構成レジスタの状態が保存されると、アドレス0からアドレス16までのデータが読み出され、回復のためにメモリからデータが読み出されて、0~16までのレジスタに書き込まれる。
【0015】
線形アドレス指定は、データを読み書きするためにバーストアクセスを使用することによって、保存及び回復に関連付けられる非効率性を回避する。例えば、線形アドレス指定は、レジスタアドレス間のギャップを防止するためにファームウェア又はプロセッサの使用を回避し、未使用データを保存することによって電力消費を低減する。加えて、線形アドレス指定の使用は、バーストアクセスが、プログラムを実行するために低減電力状態を終了させてアクティブ状態へより速く移行することを容易にするので、全体的性能を増加させる。
【0016】
しかしながら、これらの従来の線形アドレス指定技術は、異なる低減電力状態間で遷移する場合に、構成レジスタ状態を保存し、回復させるための単一の線形アドレスマップを実装する。しかしながら、これらの低減電力状態は、デバイスの異なる構成要素に供給される電力が変化する異なるレベルを含む。例えば、いくつかの低減電力状態(例えば、Z1~Z9電力状態等のより浅い低減電力状態)では、電力は、保存及び回復される構成レジスタ状態を有する1つ以上の構成要素に供給されるが、他のより深い低減電力状態(例えば、Z10電力状態)では、電力は、これらの構成要素の何れにも供給されない。すなわち、より浅い低減電力状態では、レジスタの一部(すなわち、電源オンされた構成要素に対応するレジスタ)が保存及び回復される一方で、レジスタの残りの部分は、保存及び回復されない。より深い低減電力状態では、より浅い状態で電源オンされる1つ以上の構成要素のためのレジスタは、これらの構成要素がより深い低減電力状態ではアクティブでないので、保存及び回復されない。
【0017】
本開示の特徴は、構成レジスタ内にハードコードされ、構成レジスタの異なる部分に割り当てられたレジスタアドレス(すなわち、仕様又は規格(例えば、PCI Express)に従って構成レジスタに割り当てられたレジスタアドレス又はレジスタ識別子)にマッピングされる線形アドレス空間の複数のセット(すなわち、連続アドレスの複数のセット)を使用して、構成要素に割り当てられた構成レジスタの異なる部分のデータを保存及び復元することによって、低減電力状態の異なるレベル間の効率的な遷移を提供する。すなわち、線形アドレス空間のセット及び割り当てられたレジスタアドレスは、両方ともレジスタ内でハードコードされる。次いで、レジスタの部分に対する線形アドレス空間のセットは、メモリ内の論理アドレス(すなわち、仮想アドレス)にマッピングされる。
【0018】
連続アドレスのセットへの割り当てられたレジスタアドレスのマッピングは、構成レジスタのデータが、プロセッサ(例えば、電力管理コントローラ)によってメモリに効率的に保存され、デバイスの動作中にプロセッサによってメモリから構成レジスタに対して回復されるように、コンパイル時に(すなわち、コンパイラによって)実行される。加えて、割り当てられたレジスタアドレスの連続するアドレスのセットへのマッピング(すなわち、割り当てられた構成レジスタのマッピング)は、追加の復号ハードウェアなしに(すなわち、単一のデコーダを使用して)実行される。線形アドレス空間の第1のセット(すなわち、連続アドレスの第1のセット)は、より浅い低減電力状態(例えば、Z1~Z7電力状態)のために使用される。線形アドレス空間の第2のセット及び線形アドレス空間の第3のセット(すなわち、連続アドレスの第2及び第3のセット)は、より深い低減電力状態(例えば、Z8~Z10又はより深い電力状態)のために使用される。
【0019】
構成要素に割り当てられた構成レジスタの第1及び第2の部分(すなわち、構成レジスタの第1及び第2の部分のアドレス又は識別子)は、DRAMに対応するアドレスにアクセスするために、それぞれ、線形アドレス空間の第1及び第2のセットにマッピングされる。すなわち、構成レジスタの第1及び第2の部分からのデータは、連続アドレスの第1及び第2のマッピングされたセットを使用して、DRAMの物理的場所に対応するメモリ内のアドレスに保存され、データは、連続アドレスの第1及び第2のマッピングされたセットを使用して、DRAMから構成レジスタの第1及び第2の部分に対して回復される。
【0020】
しかしながら、低減電力状態の各々の間、電力は、メモリ内のSRAMの一部に供給され続ける。したがって、構成要素に割り当てられた構成レジスタの第1及び第2の部分から電力が除去される低減電力状態に移行する前に、構成要素に割り当てられた構成レジスタの第3の部分からのデータは、線形アドレス空間の第3のセットにマッピングされ、SRAMの部分に対応するメモリアドレスに保存され、それによって、構成レジスタの各部分に対して電力が回復される場合に、線形アドレス空間の第3のセットにマッピングされた構成レジスタの第3の部分内のデータがプロセッサによって使用されて、DRAMから構成レジスタの第1及び第2の部分に対してデータを正確且つ確実に回復させる。
【0021】
例えば、第3のアドレスにマッピングされ、SRAMに保存された構成レジスタの部分からのデータは、電力管理コントローラに対して、どのようにDRAMにアクセスするか、構成レジスタの第1及び第2の部分のデータがDRAMに配置されている場合、どのようにDRAMとの間でデータをバッファリングするかを示し、DRAMに保存されたデータがレジスタに対して回復されているデータであるという確認を提供する。このデータは、例えば、ルーティングテーブル、アドレスマップ、フロー制御クレジット及び信頼性アクセス可能性保守性(reliability accessibility serviceability、RAS)構成のうち少なくとも1つに関連するデータを含む。すなわち、より深い低減電力状態の場合、構成レジスタの第3の部分内のデータは、構成レジスタの第1及び第2の部分からのデータを正確且つ確実に保存及び回復させるためにSRAMに保存されるが、構成レジスタの第1及び第2の部分内のデータはSRAMに保存されない。これにより、SRAMアクセスに関連付けられるコスト(例えば、面積及び電力消費)が低減される。
【0022】
割り当てられた構成レジスタ内のデータは、電力が除去される前に一度メモリに保存され、その後、電力がそのレジスタに対して回復されると回復される。すなわち、割り当てられた構成レジスタ内のデータがメモリに保存され、レジスタへの電力が低減電力状態に移行するために除去された後(例えば、アクティブ状態から低減電力状態への遷移、又は、より浅い低減電力状態からより深い低減電力状態への遷移)、レジスタへの電力がオフのままであるので、その構成レジスタのデータは、より深い低減電力状態に移行しても再保存されない。電力が構成レジスタに再供給される電力状態に再移行すると、データは、メモリ内のアドレス(すなわち場所)から構成レジスタに対して回復される。
【0023】
構成要素に割り当てられた1つ以上のレジスタは、低減電力状態に移行する前に電源オフされ得るが、低減電力状態に移行する場合、構成要素に割り当てられた1つ以上の他のレジスタに電力が供給され続ける。例えば、アクティブ電力状態から第1の低減電力状態に遷移する場合、構成要素に割り当てられた第1のレジスタに対する電力が除去され得る一方で、電力が第2のレジスタに供給され続ける。したがって、第1のレジスタからのデータは、第1のレジスタの線形アドレス空間内のマッピングされたアドレスを使用してメモリ内のアドレスに保存される。
【0024】
しかしながら、電力が第2のレジスタに供給され続けている間、第2のレジスタのデータはメモリに保存されない。第1の低減電力状態(例えば、より浅い低減電力状態)から第2の低減電力状態(例えば、より深い低減電力状態)に遷移する場合、構成要素に割り当てられた第2のレジスタに供給される電力が除去され得る。したがって、第2のレジスタからのデータは、第2のレジスタのマッピングされたアドレスを使用して、メモリ内の別のアドレスに保存される。電力が第1のレジスタに再供給される任意の電力状態に再移行する場合、線形アドレス空間にマッピングされた対応するアドレスを使用して、第1のレジスタのデータがメモリから第1のレジスタに対して回復され、電力が第2のレジスタに再供給される任意の電力状態に再移行する場合、線形アドレス空間にマッピングされた対応するアドレスを使用して、第2のレジスタのデータがメモリから第2のレジスタに対して回復される。
【0025】
メモリと、割り当てられた構成レジスタを有し、割り当てられた構成レジスタに記憶されたデータを使用してプログラムを実行するように構成された構成要素と、を備える処理デバイスが提供される。また、処理デバイスは、第1の低減電力状態について、構成レジスタの第1の部分のデータをメモリに保存し、線形アドレス空間の第1のセットを使用してメモリから割り当てられた構成レジスタの第1の部分に対してデータを回復させ、構成レジスタの第2の部分のデータを線形アドレス空間の第2のセットを使用してメモリに保存し、構成レジスタの第3の部分のデータを線形アドレス空間の第3のセットを使用してメモリに保存するように構成された電力管理コントローラを備える。
【0026】
デバイスの電力状態間で遷移する方法が提供される。本方法は、構成レジスタに記憶されたデータを使用してプログラムを実行することと、第1の低減電力状態について、線形アドレス空間の第1のセットを使用して構成レジスタの第1の部分のデータをメモリに保存することと、を含む。また、本方法は、第2の低減電力状態について、線形アドレス空間の第2のセットを使用して、構成レジスタの第2の部分のデータをメモリに保存することと、線形アドレス空間の第3のセットを使用して、構成レジスタの第3の部分のデータをメモリに保存することと、を含む。構成レジスタは、デバイスの構成要素に割り当てられる。
【0027】
線形アドレス指定の方法をコンピュータに実行させるための命令を含む非一時的なコンピュータ可読記憶媒体が提供される。命令は、構成レジスタに記憶されたデータを使用してプログラムを実行することと、第1の低減電力状態について、線形アドレス空間の第1のセットを使用して構成レジスタの第1の部分のデータをメモリに保存することと、を含む。また、命令は、第2の低減電力状態について、線形アドレス空間の第2のセットを使用して、構成レジスタの第2の部分のデータをメモリに保存することと、線形アドレス空間の第3のセットを使用して、構成レジスタの第3の部分のデータをメモリに保存することと、を含む。構成レジスタは、デバイスの構成要素に割り当てられる。
【0028】
図1は、本開示の1つ以上の特徴が実装され得る例示的なデバイス100のブロック図である。デバイス100は、例えば、コンピュータ、ゲームデバイス、ハンドヘルドデバイス、セットトップボックス、テレビ、携帯電話又はタブレットコンピュータを含むことができる。デバイス100は、プロセッサ102、メモリ104、ストレージ106、1つ以上の入力デバイス108、及び、1つ以上の出力デバイス110を含む。また、デバイス100は、オプションで、入力ドライバ112及び出力ドライバ114を含むことができる。デバイス100は、
図1に示されていない追加の構成要素を含むことができることを理解されたい。
【0029】
様々な代替形態では、プロセッサ102は、中央処理ユニット(central processing unit、CPU)、グラフィックス処理ユニット(graphics processing unit、GPU)、同じダイ上に位置するCPU及びGPU、各プロセッサコアがCPU若しくはGPUである可能性がある1つ以上のプロセッサコア、又は、デバイス100若しくはデバイス100の構成要素が通常動作モードよりも少ない電力を消費するモードで動作している場合の低減電力状態等のデバイス100の異なる電力状態を管理するために使用される電力管理コントローラ(power management controller、PMC)を含む。様々な代替例では、メモリ104は、プロセッサ102と同じダイ上に位置しているか、又は、プロセッサ102とは別に位置する。メモリ104は、揮発性又は不揮発性メモリ(例えば、ランダムアクセスメモリ(random access memory、RAM)、ダイナミックRAM(dynamic RAM、DRAM)、キャッシュ)を含む。
【0030】
ストレージ106は、固定又はリムーバブルストレージ(例えば、ハードディスクドライブ、ソリッドステートドライブ、光ディスク、フラッシュドライブ)を含む。入力デバイス108は、キーボード、キーパッド、タッチスクリーン、タッチパッド、検出器、マイクロフォン、加速度計、ジャイロスコープ、生体認証スキャナ、又は、ネットワーク接続(例えば、無線IEEE802シグナルの送信及び/又は受信のための無線ローカルエリアネットワークカード)を含むが、これらに限定されない。出力デバイス110は、ディスプレイ、スピーカ、プリンタ、触覚フィードバックデバイス、1つ以上の光、アンテナ、又は、ネットワーク接続(例えば、無線IEEE802シグナルの送信及び/又は受信のための無線ローカルエリアネットワークカード)を含むが、これらに限定されない。
【0031】
入力ドライバ112は、プロセッサ102及び入力デバイス108と通信し、プロセッサ102が入力デバイス108から入力を受信することを可能にする。出力ドライバ114は、プロセッサ102及び出力デバイス110と通信し、プロセッサ102が出力デバイス110に出力を送信することを可能にする。入力ドライバ112及び出力ドライバ114は、オプションの構成要素であること、並びに、デバイス100は、入力ドライバ112及び出力ドライバ114が存在しない場合に、同じ方式で動作することに留意されたい。
【0032】
図2は、本開示の1つ以上の特徴を実装するためのPMC260を含むデバイス200の例示的な構成要素を示すブロック図である。例示的なデバイス200の構成要素は、デバイスの知的財産(intellectual property、IP)構成要素(本明細書では「IP構成要素」と称される)間でデータを通信するための任意のタイプの通信ファブリック、バス及び/又は他の制御及びインターフェースロジックを表す、データファブリック205を含む。IP構成要素は、例えば、プログラム又はアプリケーションの様々な部分を実行するために使用されるコア、ハードウェアブロック、メモリセル及びロジックを含む。データファブリック205は、CPU210、GPU220、マルチメディア処理ユニット230、(
図3に示されるディスプレイコントローラ240を介した)ディスプレイ240、I/Oハブ250及びメモリコントローラ270等の様々なIP間でデータを通信するために使用される、データ経路、スイッチ、ルータ及び他のロジックを含む。データファブリック205は、共有バス構成、クロスバー構成及びブリッジを有する階層型バスを含む、バスベースとすることができる。また、データファブリック205は、パケットベースとすることができ、ブリッジ、クロスバー、ポイントツーポイント又は他の相互接続を有する階層とすることができる。
図2の矢印は、デバイスのIP構成要素間のデータフローを示す。
【0033】
また、
図2に示されるデバイス200の構成要素は、例えば、ユニバーサルシリアルバス(universal serial bus、USB)ポート、周辺構成要素相互接続エクスプレス(peripheral component interconnect express、PCIe)バス、NVMeコントローラ、汎用入力/出力(general-purpose input/output、GPIO)コントローラ及びセンサフュージョンI/O構成要素等の様々なI/O構成要素280を含む。
【0034】
図3に関して以下でより詳細に説明するように、PMC260は、ハードウェア及びファームウェアの組合せを含み、IP構成要素制御インターフェース及びレジスタバスインターフェース(IP構成要素間でデータを通信するために使用されるデータファブリックインターフェースとは異なる)を介してIP構成要素(例えば、CPU210、GPU220、マルチメディア処理ユニット230、ディスプレイ240、I/Oハブ250及びメモリコントローラ270)とインターフェースして、デバイスの異なる電力状態間の遷移(例えば、移行及び終了)を管理する。
【0035】
図3は、複数のIP構成要素308と通信するPMC260の構成要素を示すブロック図である。
図3に示されるように、PMC260は、PMCハードウェア(hardware、HW)ロジック302、IP保存/回復中間システム管理ユニット(middle system management unit、MSMU)304、及び、メインMSMU306を含む。PMC HWロジック302は、IP/PMCインターフェースプロトコルに従って、(
図5に示されるP1及びP2電力ドメイン内の)IP構成要素308とインターフェースするハードウェアブロック(すなわち、ロジック回路)である。例えば、PMC HWロジック302は、IP構成要素308のうち1つ以上がアイドルであるかアイドルでない(例えば、ウェイクイベント)かのアイドル状態指標を受信し、ハンドシェイクを実行する(例えば、1つ以上のIP構成要素308にフェンス要求を送信し、1つ以上のIP構成要素308からフェンス肯定応答を受信する)。
【0036】
図4は、
図3に示したMSMU304及び306の構成要素を示すブロック図である。
図4に示されるように、MSMU304及び306は、命令メモリ402、データメモリ404、レジスタ及びタイマ406、命令プロセッサ408、及び、MSMUバス410を含む。IP保存/回復MSMU304は、並列に動作して、対応するIP構成要素308のレジスタデータをそれらのデータメモリ404に保存し、レジスタデータをそれらのデータメモリ404から対応するIP構成要素308に回復させる。
【0037】
各MSMUプロセッサ408は、その命令メモリ402内のファームウェア命令を実行して、その対応するIP構成要素308のためのレジスタデータを保存及び回復させる。命令メモリ402は、レジスタ保存回復トラフィックを効率的に実装する(例えば、1つ以上のIP構成要素308がアクティブになる(すなわち、アイドルではない)時間と、デバイス200の1つ以上のIP構成要素308をアクティブ状態に回復させる時間と、の間のターゲットレイテンシ期間を満たす)ために使用されるファームウェア命令の限定されたセット(例えば、16個の命令)を含む。データメモリ404は、プログラムの一部を実行するために対応するIP構成要素308によって使用されるデータを記憶するために使用されるダイナミックランダムアクセスメモリ(dynamic random access memory、DRAM)及びスタティックランダムアクセスメモリ(static random access memory、SRAM)を含む。データは、デバイス200の電力状態を終了する場合にIP構成要素308に割り当てられた構成レジスタからデータメモリ404に保存され、デバイス200の電力状態に移行する場合に構成レジスタに回復される(例えば、リロードされる)。
【0038】
メインMSMU306は、PMCバス310を介してIP保存/回復MSMU304及びPMC HWロジック302と通信し、IP保存/回復MSMU304を管理し、IP保存/回復MSMU304とそれらの対応するIP構成要素308との間のレジスタ保存回復トラフィックの実装を編成するために使用されるファームウェア命令を含む。
【0039】
図5は、例示的なデバイス200の異なる電力ドメインを示すブロック図である。
図5に示されるように、第1の電力ドメイン(P1)内のIP構成要素は、CPU210と、GPU220と、例えばマルチメディア処理ユニット230、I/Oハブ250及びメモリコントローラ270等の他のIP構成要素502と、を含む。第2の電力ドメイン(P2)は、ディスプレイコントローラ240を含む。第3の電力ドメイン(P3)は、PMC260を含む。第4の電力ドメイン(P4)は、I/O構成要素280等のデバイス200の他の構成要素を含む。
【0040】
デバイス200の電力状態は、例えば、Z0(状態S0とも称される)からZ10までの11個の状態を含む。しかしながら、本開示の特徴は、任意の数の電力状態に対して実装することができる。S0/Z0電力状態中、電力が、ドメインの各々に提供される(例えば、各電力レールがオンである)。Z1~Z7状態中、IP構成要素の各々ではなく、1つ以上がアイドルである。Z8及びZ9電力状態中、CPU210、GPU220及びIP構成要素502は、アイドルである。Z8電力状態中に、P1電力ドメインに供給される電力(例えば、電圧)は、制限された機能性(例えば、ディスプレイスタッタ)のために低減される。Z9状態中、P1電力ドメインには電力が供給されない(すなわち、電力がオフである)。Z10状態中、電力は、P1及びP2電力ドメインに供給されない。
【0041】
本開示の特徴による線形アドレス指定を使用する例示的な方法を説明するために、
図6及び
図7を一緒に使用する。
図6は、電力状態間の遷移中に構成要素708(例えば、
図2に示すCPU210)に割り当てられた構成レジスタの部分に対してデータを回復させる線形アドレス指定を使用する例示的な方法600を示すフロー図である。
図7は、線形アドレス空間内にハードコードされた連続アドレスの第1、第2及び第3のセットへの割り当てられた構成レジスタ702のマッピング部分の例と、メモリと構成レジスタとの間のデータフローと、を示す図である。
【0042】
図7の例に示すように、構成要素708に割り当てられた15個の構成レジスタ702がある。構成要素708は、例えば、CPU210、GPU220、マルチメディア処理ユニット230、ディスプレイ240、I/Oハブ250及びメモリコントローラ270等のように、
図2に示される構成要素のうち何れかである。また、
図7は、DRAM710及びSRAM712を含む。DRAM710は、例えば、メインメモリの一部又はキャッシュメモリの一部である。SRAM712は、例えば、部分キャッシュメモリ又は別のタイプの高速メモリである。SRAM712は、上述したように、低減電力状態の各々を通して電力が供給され続けるメモリの一部を表す。
【0043】
各レジスタ702は、割り当てられたレジスタアドレス704を有し、これは、仕様又は規格に従って構成要素708に割り当てられ、対応するレジスタ702のために構成要素708においてハードコードされる。加えて、各レジスタ702には追加アドレス706が提供され、これも対応するレジスタ702の構成要素708においてハードコードされる。最初の5つの連続アドレス(1~5)は、構成要素708において、割り当てられたレジスタアドレス10、12、14、20、30と共にハードコードされ、レジスタR1~R5の第1の部分に対応する。第2のアドレスセットの次の5つの連続するアドレス(1~5)は、構成要素708において、割り当てられたレジスタアドレス40、50、60、35、11と共にハードコードされたアドレスであり、レジスタR6~R10の第2の部分に対応する。第3のアドレスセットの最後の5つの連続アドレス(1~5)は、構成要素708において、割り当てられたレジスタアドレス17、45、23、36、41と共にハードコードされた連続アドレスであり、レジスタR11~R20の第3の部分に対応する。
【0044】
各割り当てられたレジスタアドレス704は、コンパイル時に、対応する追加アドレス706にマッピングされる。マッピングは、
図7の実線矢印によって示されている。レジスタの第1の部分(すなわち、
図7に示される最初の5つのレジスタR1~R5に対応する部分)に割り当てられたレジスタアドレス704は、連続アドレス1~5の第1のセット(すなわち、線形アドレス空間の第1のアドレスセット)にマッピングされる。例えば、割り当てられたレジスタアドレス10は、第1のアドレスセットの線形アドレス1にマッピングされ、割り当てられたレジスタアドレス12は、第1のアドレスセットの線形アドレス2にマッピングされ、割り当てられたレジスタアドレス14は、第1のアドレスセットの線形アドレス3にマッピングされ、割り当てられたレジスタアドレス20は、第1のアドレスセットの線形アドレス4にマッピングされ、レジスタアドレス30は、第1のアドレスセットの線形アドレス5にマッピングされる。
【0045】
レジスタ702の第1及び第2の部分(すなわち、レジスタR1~R10)内のデータは、
図7の左側の2つの破線矢印によって示されるように、DRAM710に記憶され、DRAM710からレジスタ702の第1及び第2の部分に対して回復される。レジスタの第3の部分(すなわち、レジスタR11~R15)内のデータは、
図7の右側の破線矢印によって示されるように、SRAM712に記憶され、SRAM712からレジスタ702の第3の部分に対して回復される。第3のアドレスセットにマッピングされるレジスタの第3の部分からSRAM712に記憶されるデータは、プロセッサ(例えば、電力管理コントローラ)によって、レジスタの第1の2つの部分(すなわち、この例ではR1~R10)からDRAM710にデータを正確且つ確実に保存し、DRAM710から構成レジスタの第1及び第2の部分に対してデータを回復させるために使用されるデータである。
【0046】
第1のアドレスセット、第2のアドレスセット及び第3のアドレスセットの各アドレス706は識別子を含み、識別子は、アドレスが、第1のアドレスセット、第2のアドレスセット又は第3のアドレスセットの何れかの5つのアドレスの連続セットの一部であることを示す。
図7に示されるレジスタの総数及びレジスタの各部分におけるレジスタの数は、簡略化を目的として使用される単なる例である。本開示の特徴は、構成要素に割り当てられた任意の数のレジスタを使用して、且つ、構成要素に割り当てられたレジスタの一部分の一部として任意の数のレジスタを使用して実装することができる。
【0047】
図6に示される例示的な方法では、レジスタの第1の部分(すなわち、
図7のR1~R5)のデータは、第1のアドレスセットのマッピングされた連続アドレス1~5を使用してDRAM710に以前に保存され、レジスタの第2の部分(すなわち、
図7のR6~R10)のデータは、第2のアドレスセットのマッピングされた連続アドレス1~5を使用してDRAM710に以前に保存され、レジスタの第3の部分(すなわち、
図7のR11~R15)のデータは、第3のアドレスセットのマッピングされた連続アドレス1~5を使用してSRAM712に以前に保存されたと仮定する。加えて、割り当てられたアドレス704は、コンパイル時に、線形アドレス空間の第1、第2及び第3のアドレスセットの連続するアドレスに以前にマッピングされたと仮定する。
【0048】
ブロック602に示されるように、方法600は、より深い低減電力状態(例えば、Z10低減電力状態)を終了させるための指標(指示)を受信することを含む。例えば、PMC260のハードウェアロジック302は、構成要素708を含む1つ以上の構成要素(例えば、
図2のCPU210)がもはやアイドルではなく、デバイスが、IP構成要素308を含むP1電力ドメイン及びP2電力ドメインに電力が供給されないZ10低減電力状態を終了させるべきであるという指標を受信する。
【0049】
ブロック604に示されるように、方法600は、線形アドレス空間の第3のアドレスセットへのマッピングを使用して、構成レジスタの第3の部分(
図7のR11~R15)に対してデータを回復させることを含む。すなわち、データは、
図7の構成レジスタR11~R15の第3の部分の割り当てられたアドレス704の、線形アドレス空間の第3のアドレスセットの連続アドレス(1~5)へのマッピングを使用して、SRAM712から構成レジスタの第3の部分(
図7のR11~R15)に対して回復される。SRAM712の部分に保存される構成レジスタの第3の部分のデータは、構成レジスタ(
図7のR1~R10)の第1及び第2の部分からDRAM710にデータを正確且つ確実に保存し、SRAM712から構成レジスタの第1及び第2の部分に対してデータを回復させるために、プロセッサによって使用される。上述したように、構成レジスタの第1及び第2の部分内のデータは、SRAM712に保存されない。したがって、SRAM712アクセスに関連付けられるコスト(例えば、面積及び電力消費)が低減される。構成レジスタの第1及び第2の部分内のデータは、SRAM712に保存されない。
【0050】
ブロック606に示すように、方法600は、線形アドレス空間の第2のアドレスセットへのマッピングを使用して、構成レジスタの第2の部分(
図7のR6~R10)に対してデータを回復させることを含む。すなわち、データは、構成レジスタの第2の部分の割り当てられたアドレス704の、線形アドレス空間の第2のアドレスセットの連続アドレス(1~5)へのマッピングを使用して、DRAM710から構成レジスタの第2の部分に対して回復される。
【0051】
ブロック608に示されるように、方法600は、より深い低減電力状態(例えば、Z10低減電力状態)を終了させることを含む。例えば、デバイスは、より深い低減電力状態を終了させて、より浅い低減電力状態(例えば、Z1~Z9電力状態)に進む。
【0052】
決定ブロック610に示されるように、方法600は、より浅い電力低減状態を終了するための指標(指示)が受信されたかどうかを判定することを含む。より浅い低減電力状態が、P1電力ドメイン(
図5に示される)内のIP構成要素308に電力が供給されない(すなわち、電力がオフである)が、P2電力ドメイン内のディスプレイコントローラ240に電力が供給される状態(例えば、Z9電力状態)である場合、より浅い低減電力状態を終了する指標が受信される(はいの決定)。例えば、デバイスがZ9電力状態にある場合、PMC260のハードウェアロジック302は、追加の1つ以上の構成要素(例えば、1つ以上のIP構成要素308)がもはやアイドルではなく、デバイスがZ9電力状態を終了すべきであるという指標を受信する。
【0053】
ブロック612に示すように、方法600は、線形アドレス空間の第1のアドレスセットへのマッピングを使用して、構成レジスタの第1の部分(
図7のR1~R5)に対してデータを回復させることを含む。すなわち、データは、構成レジスタの第1の部分の割り当てられたアドレス704の線形アドレス空間内の第1のアドレスセットへのマッピングを使用して、DRAM710から構成レジスタの第1の部分に対して回復される。次いで、デバイスは、ブロック614において、より浅い低減電力状態を終了させる。
【0054】
代替的に、より浅い低減電力状態が、電力(例えば、電圧)がP1電力ドメインに供給されるが、電力が低減される状態(例えば、ディスプレイスタッタモード等の限られた機能性を有するZ8電力状態)である場合、より浅い低減電力状態を終了させるための指標は、PMC260によって受信されない(「いいえ」の決定)。したがって、ブロック616に示されるように、第1の線形アドレスにマッピングされた構成レジスタの第1の部分(例えば、
図7のR1~R5)の値は回復されず、代わりに、デバイスは、制限された機能性が完了するまで、より浅い低減電力状態のままである。次いで、デバイスは、より深い低減電力状態に戻り、ブロック602に再び進む。
【0055】
構成要素(例えば、構成要素708)の構成レジスタ状態を保存し、より浅い低減電力状態に移行し、より深い低減電力状態に移行するプロセスについては、
図6に示される方法のフローが逆に実行される。例えば、第1のアドレスセットにマッピングされた構成レジスタのデータが保存され、デバイスは、(例えば、アクティブ状態から)より浅い低減電力状態に移行する。次いで、より浅い低減電力状態に移行した後、より深い状態に進むことなく、より浅い低減電力状態を終了させるか、又は、第2及び第3の線形アドレスセットにマッピングされた構成レジスタのデータを保存して、より深い状態に進むかどうかに関する判定が行われる。例えば、1つ以上の構成要素がアクティブであるという指標が受信された場合に、デバイスは、より浅い状態を終了させて、アクティブ状態に戻る。1つ以上の構成要素がアクティブであるという指標が受信されない場合に、第2のアドレスセットにマッピングされた構成レジスタの第2の部分のデータが回復される。次いで、第3のアドレスセットにマッピングされた第3の部分構成レジスタのデータが回復され、デバイスはより深い低減電力状態に移行する。
【0056】
本開示の特徴は、追加のより深い低減電力状態のための追加の線形アドレス(すなわち、使用される第2及び第3のアドレスに加えてのアドレス)を含むことによって実装される可能性がある。例えば、デバイスが別のより深い低減電力状態(例えば、Z11低減電力状態)に移行するか又は終了させる場合、構成レジスタの一部(すなわち、全てではない)が線形アドレス空間の第4のアドレスにマッピングされる。
【0057】
図において示され及び/又は本明細書に説明される様々な機能ユニット(プロセッサ102、入力ドライバ112、入力デバイス108、出力デバイス110、出力ドライバ114、データファブリック205、CPU210、GPU220、メモリコントローラ270、及び、PMC260を含むが、これらに限定されない)は、汎用コンピュータ、プロセッサ若しくはプロセッサコアとして、又は、汎用コンピュータ、プロセッサ若しくはプロセッサコアによって実行可能な非一時的なコンピュータ可読記憶媒体若しくは別の記憶媒体に記憶されているプログラム、ソフトウェア若しくはファームウェアとして実装され得る。提供される方法は、汎用コンピュータ、プロセッサ又はプロセッサコアにおいて実施することができる。好適なプロセッサとしては、例として、汎用プロセッサ、専用プロセッサ、従来型プロセッサ、デジタルシグナルプロセッサ(digital signal processor、DSP)、複数のマイクロプロセッサ、DSPコアと関連する1つ以上のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array、FPGA)回路、任意の他のタイプの集積回路(integrated circuit、IC)、及び/又は、状態マシンが挙げられる。そのようなプロセッサは、処理されたハードウェア記述言語(hardware description language、HDL)命令及びネットリストを含む他の中間データ(コンピュータ可読媒体に記憶させることが可能な命令)の結果を使用して製造プロセスを構成することによって製造することができる。そのような処理の結果は、マスクワークとすることができ、このマスクワークをその後の半導体製造プロセスにおいて使用して、本開示の特徴を実装するプロセッサを製造する。
【0058】
本明細書に提供される方法又はフローチャートは、汎用コンピュータ又はプロセッサによる実行のために非一時的なコンピュータ可読記憶媒体に組み込まれるコンピュータプログラム、ソフトウェア又はファームウェアにおいて実施することができる。非一時的なコンピュータ可読記憶媒体の例としては、読み取り専用メモリ(read only memory、ROM)、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体メモリデバイス、内蔵ハードディスク及びリムーバブルディスク等の磁気媒体、磁気光学媒体、並びに、CD-ROMディスク及びデジタル多用途ディスク(digital versatile disk、DVD)等の光学媒体が挙げられる。
【国際調査報告】