(57)【要約】  幾つかの実施形態では、特定のプラットフォームハードウェア構成に関係なく、そのプラットフォームハードウェアがＰＰＭインターフェースに準拠している限り、ＰＰＭインターフェースに、１つ又は複数のメモリノードのＯＳメモリ電力状態管理を容易にする機能性を提供することができる。【選択図】図１
2015505388.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングプラットフォームであって、
ＰＰＭインターフェースのＯＳ  ＰＰＭコンポーネントを含むオペレーティングシステム（ＯＳ）の命令を有する第１のメモリストレージデバイスと、
ＰＰＭインターフェースのファームウェアＰＰＭコンポーネントを含むファームウェアブートプログラムの命令を有する第２のメモリストレージデバイスであって、前記ＯＳ及びファームウェアＰＰＭ命令は、実行されると、前記ＯＳとプラットフォームハードウェアとの間にＰＰＭインターフェースを確立する、第２のメモリストレージデバイスと、
物理メモリに結合されたメモリコントローラであって、前記物理メモリを前記ＯＳに提供するとともに、前記ＯＳが前記ＰＰＭインターフェースを介して前記物理メモリの１つ又は複数のノードの電力状態を制御することを可能にする、メモリコントローラと
を備える、コンピューティングプラットフォーム。
【請求項２】
前記物理メモリは揮発性メモリである、請求項１に記載のコンピューティングプラットフォーム。
【請求項３】
前記ＰＰＭインターフェースは、前記１つまたは複数のノードが不連続なメモリアドレス範囲を含むことを可能にする、請求項１又は２に記載のコンピューティングプラットフォーム。
【請求項４】
前記ＰＰＭインターフェースは、前記物理メモリが複数のメモリノードに分割されることを容易にする、請求項１に記載のコンピューティングプラットフォーム。
【請求項５】
前記ＰＰＭインターフェースは、前記ＯＳが、前記複数のメモリノードを種々の電力状態にすることを可能にする、請求項４に記載のコンピューティングプラットフォーム。
【請求項６】
前記種々の電力状態は、アクティブなＭＰ０状態、低アクティブなＭＰ１状態、及び更に低アクティブなＭＰ２状態を含む、請求項５に記載のコンピューティングプラットフォーム。
【請求項７】
前記ＰＰＭインターフェースは、ＭＰ１からＭＰ２に遷移するには、前記複数のメモリノードがＭＰ１からＭＰ０に遷移し、更にＭＰ２に遷移しなければならないことを定義する、請求項６に記載のコンピューティングプラットフォーム。
【請求項８】
メモリ電力ノードが２つ以上の不連続なメモリアドレス範囲を含む場合、前記ファームウェアＰＰＭコンポーネントは、前記メモリアドレス範囲のそれぞれについてメモリ電力ノード構造体を構築するが、前記メモリ電力ノード構造体に同一のメモリ電力ノードＩＤを指定する、請求項３に記載のコンピューティングプラットフォーム。
【請求項９】
メモリ電力ノードは、メモリ電力状態の内外に一単位として遷移することができる論理メモリ領域の表現である、請求項４に記載のコンピューティングプラットフォーム。
【請求項１０】
前記ＰＰＭインターフェースは、ＡＣＰＩ仕様に従ったものである、請求項１に記載のコンピューティングプラットフォーム。
【請求項１１】
前記ＰＰＭインターフェースは、メモリトポロジを前記ＯＳに記述するプラットフォームメモリトポロジテーブル（ＰＭＴＴ）を含む、請求項１０に記載のコンピューティングプラットフォーム。
【請求項１２】
前記物理メモリは、サーバープラットフォームにおける複数のメモリ構造体を含む、請求項１に記載のコンピューティングプラットフォーム。
【請求項１３】
装置であって、
ＡＣＰＩインターフェースのメモリ電力状態テーブル（ＭＰＳＴ）構造体を構築するＡＣＰＩコンポーネントを含むファームウェアを有するコンピュータープラットフォーム、
を備える、装置。
【請求項１４】
前記ＭＰＳＴ構造体は、電力状態値を有するテーブルを含む、請求項１３に記載の装置。
【請求項１５】
前記ＭＰＳＴ構造体は、前記コンピュータープラットフォームにおけるメモリのメモリ電力ノード構造体の定義を有するテーブルを含む、請求項１３又は１４に記載の装置。
【請求項１６】
前記ＭＰＳＴ構造体は、メモリ電力状態構造体定義を有するテーブルを含む、請求項１３〜１５のいずれか一項に記載の装置。
【請求項１７】
前記ＭＰＳＴ構造体は、共通のメモリアグリゲーターデバイス構造体を含む、請求項１３〜１６のいずれか一項に記載の装置。
【請求項１８】
前記コンピュータープラットフォームは、スマートフォン、タブレット、及びサーバーコンピューターのうちの１つであるコンピューティングデバイスである、請求項１３〜１７のいずれか一項に記載の装置。
【請求項１９】
装置であって、
ＰＰＭインターフェースを組み込むオペレーティングシステム（ＯＳ）を有するコンピューターと、
前記ＯＳに利用可能な物理メモリであって、前記ＯＳは、前記ＰＰＭインターフェースを介して前記物理メモリの電力状態を管理する、物理メモリと
を備える、装置。
【請求項２０】
前記ＰＰＭは、ＡＣＰＩ仕様に従ったものである、請求項１９に記載の装置。
【請求項２１】
前記物理メモリは、ノードが前記物理メモリの少なくとも１つのアドレス範囲を含むノード構造体を介して制御される、請求項２０に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概ね、プラットフォーム性能管理インターフェースに関する。具体的には、本発明は、コンピューティングプラットフォームにおける性能管理インターフェースを介してメモリ電力及び／又は性能管理サービスを提供することに関する。
【０００２】
本出願は、２０１１年１１月２２日に出願された米国仮特許出願第６１／５６３，０３０号に対する利益を主張し、この米国仮特許出願は、参照によって本明細書に組み込まれる。
【０００３】
本発明の実施形態が、限定ではなく例として添付図面の図に示されている。添付図面において、同様の参照符号は、類似の要素を参照する。
【図面の簡単な説明】
【０００４】
【図１】幾つかの実施形態による、ＰＰＭインターフェースを介して提供されるＭＰＳＴサポートを有するコンピューティングプラットフォームのブロック図である。
【図２】幾つかの実施形態による、プラットフォーム上に実装されたＭＰＳＴを有するＰＰＭインターフェースの抽象化された表現を示す図である。
【図３】幾つかの実施形態による、ＰＰＭインターフェースを介してＭＰＳＴサービスをプラットフォームＯＳに提供するための一般的なルーチンを示す図である。
【図４】幾つかの実施形態による、ＡＣＰＩインターフェース内のテーブル構造体へのルートポインタを示す図である。
【図５】幾つかの実施形態による、ＡＣＰＩインターフェースの記述テーブル構造体を示す図である。
【図６】幾つかの実施形態による、ＡＣＰＩ実装のＭＰＳＴテーブル構造体の組織的な概略である。
【図７】幾つかの実施形態による、ＡＣＰＩ実装のメモリ電力状態遷移を示す図である。
【図８】幾つかの実施形態によるＭＰＳＴテーブル構造体の概略テーブルである。
【図９】幾つかの実施形態による、ＭＰＳＴプラットフォーム通信チャネルによって用いられるＰＣＣコマンドコードを示すテーブルである。
【図１０Ａ】幾つかの実施形態による、ＭＰＳＴプラットフォーム通信チャネル共有メモリ領域を示すテーブルである。
【図１０Ｂ】幾つかの実施形態による、ＭＰＳＴプラットフォーム通信チャネル共有メモリ領域を示すテーブルである。
【図１１】幾つかの実施形態による、ＰＰＭ  ＭＰＳＴの電力状態値を有するテーブルである。
【図１２】幾つかの実施形態による、ＰＰＭ  ＭＰＳＴのコマンドステータステーブルである。
【図１３】幾つかの実施形態による、ＰＰＭ  ＭＰＳＴのメモリ電力ノード構造体の定義を有するテーブルである。
【図１４】幾つかの実施形態による、ＰＰＭ  ＭＰＳＴのフラグフォーマットを示すテーブルである。
【図１５】幾つかの実施形態による、ＰＰＭ  ＭＰＳＴのメモリ電力状態構造体定義のテーブルである。
【図１６】幾つかの実施形態による、ＰＰＭ  ＭＰＳＴのメモリ電力状態特性構造体を示すテーブルである。
【図１７】幾つかの実施形態による、図１６のメモリ電力状態特性構造体のフラグフォーマットを示すテーブルである。
【図１８】幾つかの実施形態によるプラットフォームメモリトポロジテーブル（ＰＭＴＴ）を示す図である。
【図１９】幾つかの実施形態による、共通のメモリアグリゲーターデバイス構造体を示すテーブルである。
【図２０】幾つかの実施形態によるソケット構造体を示すテーブルである。
【図２１】幾つかの実施形態による、プラットフォーム通信チャネル（ＰＣＣ）を介してＭＰＳＴコマンドを処理するためのルーチンの流れ図である。
【発明を実施するための形態】
【０００５】
図１は、幾つかの実施形態によるメモリ電力状態（ＭＰＳ）サービスを容易にする性能及び電力管理（ＰＰＭ）インターフェースを有するコンピューティングプラットフォーム１００の一部分の図である。このコンピューティングプラットフォームは、この図に一般的に示すように、様々な異なるコンピューティングプラットフォームタイプを表すように意図されている。様々な異なるコンピューティングプラットフォームタイプとしては、サーバー、デスクトップＰＣ、ネットブック、ウルトラブック、タブレット、スマートフォン等が挙げられるが、これらに限定されるものではない。簡単にするとともに理解を容易にするために、幾つかのプラットフォーム実施形態について、この開示に関係しない細部及び／又はコンポーネントは省略されている。
【０００６】
「ＰＰＭ」という用語は、本明細書において用いられるとき、性能及び電力の管理を意味し、プラットフォーム及びＯＳが、少なくとも関連する特徴に関して、ＰＰＭインターフェースに準拠する限り、オペレーティングシステムだけでなく、アプリケーションもそれらのオペレーティングシステムによって、プラットフォーム内のハードウェアコンポーネントを制御、監視、保守等することを可能にするための任意の好適なインターフェースを指す。ＰＰＭの一例は、アドバンスド・コンフィギュレーション・アンド・パワーインターフェース（ＡＣＰＩ）である。
【０００７】
メモリ電力状態管理サービスは、幾つかの実装では、未使用のメモリ又は十分使用されていないメモリの電力を節減するように、幾つかのメモリ電力状態のうちの１つにメモリの一部（例えば、ノード）をエントリ（入る）させる又はイグジット（出る）させることを指す。メモリは、通常、システムメモリ（例えば、ＤＲＡＭ）に対応するが、システムのメモリマップの一部であるキャッシュメモリ及び／又は不揮発性メモリも包含することができる。プラットフォーム及びＯＳが、少なくとも関係する部分においてＰＰＭインターフェースに準拠する限り、ＭＰＳ管理は、ＰＰＭインターフェースを介して容易にされ、それによって、プラットフォームのオペレーティングシステムは、種々のプラットフォーム上でメモリを管理することが可能になる。
【０００８】
図示したプラットフォームは、１つ若しくは複数のバス及び／又はポイントツーポイント相互接続を介して相互に結合された、ＣＰＵ１０２、知覚デバイス１１０（例えば、ジャイロ、スピーカー、カメラ等）、他のデバイス／インターフェース（例えば、キーパッド、ポインタデバイス、ＵＳＢポート、ＰＣＩポート、無線Ｉｆ等）１１６、及びグラフィックスプロセッサ（ＧＰＸ）１２２を備える。プラットフォームは、メモリコントローラ１０６を介して少なくともＣＰＵ１０２に結合されたメモリ１０８（例えば、ＤＲＡＭ）も備え、ＣＰＵ１０２に結合されたファームウェア１０４（例えば、フラッシュメモリ等の不揮発性メモリを用いて実装される）も備える。プラットフォームは、加えて、ディスプレイコントローラ１２４を介してＧＰＸ１２２及び／又はＣＰＵ１０２に結合されたディスプレイ１２６を備える。（単一のＣＰＵブロックが示されているが、プラットフォームは、１つ又は複数のＯＳスレッドを実行するとともに様々な異なるタスクを実行する複数のＣＰＵ及び／又は処理コアを備えることができることが理解されるべきである。しかしながら、簡単にするために、本明細書では、オペレーティングシステムを実行する単一のＣＰＵが示されている。）
【０００９】
プラットフォームは、記憶ドライブコントローラ１１２を介して少なくともＣＰＵ１０２に結合された記憶ドライブ１１４（例えば、ソリッドステートドライブ）を更に備える。この記憶ドライブは、データ、アプリケーション、及びＬｉｎｕｘ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）、Ｍａｃ  ＯＳ（商標）、Ａｎｄｒｏｉｄ等の１つ又は複数のオペレーティングシステム（ＯＳ）を記憶することができる。ファームウェア１０４は、ＢＩＯＳ、ＥＦＩ、又は他のブート／初期化ソフトウェアを含む。（ＢＩＯＳの役割は、時間とともに変化していることに留意されたい。例えば、幾つかのプラットフォームでは、ＢＩＯＳは、より複雑なＥＦＩ（エクステンシブルファームウェアインターフェース）に置き換わってきているが、ファームウェア用のＢＩＯＳは広範に使用され続けている。現在まで、ＥＦＩは、ＧＰＴをサポートするＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）バージョン、Ｌｉｎｕｘ（登録商標）カーネル２．６．１以降のもの、及びＭａｃ  ＯＳにおいてサポートされてきた。しかしながら、ＢＩＯＳとＥＦＩとの間の術語上の区別は、平均的なコンピューターユーザーによってなされることはまれであり、したがって、ＢＩＯＳは双方のシステムの包括的な用語にされている。しかしながら、簡単にするために、「ファームウェア」という用語は、一般的に、ＢＩＯＳ、ＥＦＩ、又は代替のブート／初期化コードを指すのに用いられる。）
【００１０】
共に、オペレーティングシステム及びファームウェアは、プラットフォームのＰＰＭインターフェース１４６を実装するソフトウェアコンポーネントを備える。図に抽象的に表されているように、プラットフォームがプリミティブな開始コードを実行した後に起動すると、ＣＰＵは、ブートソフトウェア（ファームウェア空間１４２）を取り出して実行し、特に、その時、ＰＰＭインターフェース１４６のデータ構造体を確立することができる。ファームウェア空間（例えば、ＢＩＯＳ、ＥＦＩ）が初期化されると、次に、ＯＳ空間１４４が、ＯＳがＣＰＵ内でブートするときに確立される。この時点において、ＯＳ内のＰＰＭモジュールは、確立されているＰＰＭインターフェース１４６を介してプラットフォームの様々な特性を識別することができる。
【００１１】
図２は、一方におけるＯＳの電力及び性能の機能性と、他方におけるプラットフォームハードウェアとの間をインターフェースするためのＰＰＭインターフェースを抽象的に示すブロック図である。（この図は、ＡＣＰＩ仕様から描かれていることに留意すべきである。このＡＣＰＩ仕様は、以後、本明細書において教示する原理のうちの幾つかを好都合に提示するための一例として主に用いられる。しかしながら、この図は、この開示に特有の概念に準拠するように抽象化及び変更されている。例えば、より一般的な用語「ＰＰＭ」が、幾つかの箇所では「ＡＣＰＩ」よりもむしろ用いられ、また、「ＰＰＭ」が、ＯＳ空間内の「ＯＳＰＭ」の代わりに用いられる。ＡＣＰＩは、ＰＰＭインターフェースの具体的な実装であることが理解されるべきである。）
【００１２】
本開示に関して、プラットフォームハードウェア２０２は、ＣＰＵ１０２、メモリコントローラ２６、及びメモリモジュール２０８とともに示されている。メモリコントローラは、特定の回路、論理ユニット、コントローラ、実行ソフトウェア等に対応することができる。示すように、メモリコントローラは、ＣＰＵ又はＳＯＣの一部とすることができ、及び／又は制御ハブチップ等の別個の周辺モジュールの一部とすることができる。メモリモジュール２０８は、物理メモリモジュール及び／又は論理メモリモジュールに対応する。メモリモジュールは、以下で論述するように、例えば、それらに関連付けられたメモリコントローラによって、メモリ電力状態の適用のためのメモリ電力ノードに更に分割することができる。幾つかの実施形態では、ＰＰＭインターフェースが、例えば、プラットフォームのブート中に作成されたとき、ＰＰＭデータ構造体（例えば、テーブル２２６）が、メモリモジュール２０８のメモリ電力状態管理を実装するための関係データ（ＭＰＳＴ構造体に関して以下で論述する）によってポピュレートされる。
【００１３】
ＣＰＵ１０２は、上記で論述したように、ファームウェア及びＯＳを実行し、それによって、ＰＰＭインターフェース１４６、ＯＳ空間１４４、及びアプリケーション空間２４０を確立する。このアプリケーション空間は、プラットフォーム上に実行されるアプリケーションのＡＰＩ２４２を含む。ＯＳ空間１４４は、ＰＰＭインターフェースドライバー２３２、デバイスドライバー２３４、ＯＳカーネル２３６、及びＰＰＭシステム２３８を含み、これによって、ＯＳからの性能及び電力管理が容易になる。図示した実施形態では、ＯＳ  ＰＰＭ機能部とＰＰＭハードウェア特徴との間で通信するプラットフォーム制御チャネル（ＰＣＣ）が、ＰＰＭインターフェースによって実装される。
【００１４】
ＰＰＭインターフェース１４６は、ＰＰＭレジスタ２２２、ＰＰＭファームウェアコンポーネント２２４、及びＰＰＭテーブル２２６を備える。レジスタ２２２は、特定のレジスタ、例えばＣＰＵ内に又はベースボードコントローラ等のコントローラの一部として、例えばハードウェアによる専用化されたＰＰＭレジスタに対応することもできるし、ソフトウェアによって作成された仮想レジスタに対応することもできる。これらのレジスタは、ＰＰＭテーブルによって（少なくともロケーションが）記述されたハードウェアインターフェースの制約された部分とすることもできる。例えば、ＡＣＰＩは、ＡＣＰＩ５．０仕様（ＡＣＰＩハードウェア仕様）のセクション４に記載されているように、ＡＣＰＩ互換ＯＳがプラットフォームハードウェアのコア電力管理及び性能特徴を制御するのに用いることができるハードウェアレジスタインターフェースを定義する。
【００１５】
ＰＰＭファームウェアコンポーネント２２４は、ＰＰＭ実装に対応するファームウェアの部分を備える。通常、それらは、スリープ、ウェイク、及び幾つかの再起動動作のためのインターフェースを実装するのに用いられる。この開示に関して、特にそれらは、メモリ電力状態（ＭＰ状態）サービスに用いられるものを含む、ＰＰＭデータ構造体及びテーブルを定義するためのコンポーネントも備えることができ、テーブル内のデータ及び／又はアドレスを維持及び／又は更新する１つ又は複数のルーチンも備えることができる。（ファームウェアコンポーネント２２４に対応するＡＣＰＩ特徴のうちの幾つかは、ＡＣＰＩ５．０仕様のセクション５．３「名前空間」に記載されていることに留意されたい。）
【００１６】
ＰＰＭテーブル２２６は、一般に、ハードウェアに対するインターフェースを記述する。幾つかの記述は、構築することができるものを制限する。例えば、幾つかの制御は、レジスタの固定ブロックに組み込むことができ、テーブルは、レジスタブロックのアドレスを指定する。ほとんどの記述は、ハードウェアを任意の方法で構築することを可能にし、ハードウェア機能を作成するのに必要とされる任意の動作シーケンスを記述することができる。（この開示の残りについては、ＡＣＰＩテーブルが、好適なＰＰＭテーブル構造体の例として、暗黙的又は明示的に説明され、及び／又は用いられる。ＡＣＰＩテーブルは、ＡＣＰＩ５．０仕様のセクション５．２に一般的に記載されている。）
【００１７】
「定義ブロック」を有するＡＣＰＩテーブルは、擬似コードタイプの言語を利用することができ、この言語の解釈は、ＯＳが実行することができる。すなわち、ＯＳＰＭ（ＰＰＭシステム２３８に対応する）は、擬似コード言語でエンコードされるとともに、「定義ブロック」を含むＡＣＰＩテーブルに記憶されたプロシージャを実行するインタープリターを備えて用いる。ＡＣＰＩ機械語（ＡＭＬ）として知られているこの擬似コード言語は、コンパクトでトークン化された抽象型の機械語である。
【００１８】
図３は、幾つかの実施形態による、ＯＳがメモリ電力状態管理を容易にするためのルーチン３０２を示している。３０４において、プラットフォームのブート中に、ＭＰＳＴデータ構造体が、特定のプラットフォーム、例えば、特定のハードウェア、メモリ及びメモリ構成、並びにオペレーティングシステムと関連付けられて作成される。すなわち、ＰＰＭインターフェースを用いることの利点は、プラットフォーム及びオペレーティングシステムがＰＰＭインターフェースに準拠する限り、統一的な又は既知のプラットフォーム構成を必要とすることなく、サービスをＯＳに利用可能にすることができるということである。様々なプラットフォームハードウェアコンポーネントによって提供される利用可能なＭＰＳＴ情報（メモリ電力ノード、特定のＰＣＣ情報、及びメモリ電力状態特性情報）を識別する定義テーブルを生成することができる。これは、例えば、ファームウェアのブートプロセス中にＰＰＭコンポーネントが行うことができる。幾つかのＡＣＰＩ実装では、ブートしているファームウェアは、専用化されたファームウェアメモリ空間、例えば、ファームウェアによって要求される空間であって、ＯＳへの変更には利用可能でなく、例えば、仮にあったとしても、読み出し専用に基づいてのみＯＳに利用可能になる空間において、ＭＰＳＴテーブル構造体を作成することができる。
【００１９】
３０６において、ＯＳは、プラットフォームＭＰＳＴ  ＰＰＭ機能を識別する。幾つかの実施形態では、これは、ＯＳがブートされて初期化されるときに行われる。ＰＰＭコンポーネント（例えば、ＡＣＰＩにおけるＯＳＰＭと呼ばれる図２のＯＳ  ＰＰＭシステム２３８）は、ファームウェアＰＰＭコンポーネントによって作成及び定義されたＭＰＳＴデータ構造体を識別する。
【００２０】
３０８において、プラットフォームは、ＭＰＳＴデータ構造体を維持／更新する。これは、通常、主にブートにおいて行われるが、場合によっては、幾つかの部分は、プラットフォームが動作している間に進行している場合がある。幾つかのＭＰＳＴ機能性は、上述のように、ハードウェアから提供することができ、メモリコントローラは、それらのクライアントメモリの関係するメモリ電力情報をＡＣＰＩ  ＭＰＳＴ構造体に提供する。例えば、メモリコントローラは、メモリブロック又は範囲を監視して、いずれが、例えば、融合した又は自律的なＭＰ状態遷移に用いられているのか、ビジーであるのか等を評価することができる。これらのメモリコントローラは、次に、適切なＭＰＳＴデータ構造体、例えば、ＭＰＳＴ構造体に関連付けられたＰＰＭテーブルを更新することができる。
【００２１】
コントローラがＭＰＳＴテーブルを更新することを可能にするのに、任意の好適な手法を用いることができる。例えば、コントローラは、ＡＣＰＩ実装においてＰＣＣチャネルを用いることができる。幾つかの実施形態では、メモリコントローラは、ファームウェアからＰＰＭコンポーネントにアクセスするシステム割り込みを発行することによってＰＰＭインターフェースにアクセスすることができる。例えば、ほとんどのｘ８６プラットフォームでは、ＳＭＩ（システム管理割り込み）を発行して、システムをシステム管理モード（ＳＭＭ）にすることができ、その結果、プラットフォームファームウェア内のＳＭＩハンドラルーチンがコールされる。ＳＭＩハンドラは、１つ又は複数のＯＳ  ＭＰＳＴコマンド（例えば、テーブル等のデータ構造体を含むＰＰＭコンポーネントにおいて定義される）を処理し、コントローラからのデータを用いてＭＰＳＴ構造体（例えば、テーブル）を更新し、及び／又は例えばファームウェア内の１つ若しくは複数のＰＰＭコンポーネントを起動して実行することができる。（「システム割り込み」は、本明細書において用いられるとき、ＣＰＵに所望の割込ハンドラ、通常はオペレーティングシステムの外部で実行されているルーチンを処理させる任意のタイプのプラットフォームアーキテクチャにおける任意の割り込みを指すことに留意されたい。）そのため、本開示によると、システム割り込みは、ＯＳのＭＰＳＴタスクにサービスを提供するためには、ＯＳ空間の外部のＰＰＭコンポーネントを直接又は間接に起動する割込ハンドラを起動するのに用いられる任意の割り込みであってもよい。常にそうとは限らないが通常は、ＣＰＵは、ＯＳの実行を一時停止し、割込ハンドラの実行に切り替わる。完了すると、割込ハンドラは、動作をＯＳに再び戻すために、それ自体の割り込み、例えば、ｘ８６プラットフォームにおけるＡＳＩ又はＳＣＩを発行することができる。ｘ８６プラットフォームにおけるＳＭＩハンドラ等の割込ハンドラは、好都合には、プラットフォームファームウェアの一部とすることができる。）
【００２２】
３１０において、ＯＳが、実行されるべきＭＰＳＴタスクを有する場合、例えば、ＯＳ電力管理モジュールが１つ又は複数のメモリ電力ノードを電力削減状態にしたい場合、３１２において、ＯＳ  ＰＰＭコンポーネントは、ＰＰＭインターフェースを介してＭＰＳＴサービス要求を実行する。幾つかの実施形態では、このコンポーネントは、適切なＭＰＳＴデータ構造体に定義されるような１つ又は複数の好適なコマンド及び／又はアドレスポインタを発行し、ＰＰＭインターフェースを介してコマンドを起動する。例えば、このコンポーネントは、テーブル内に定義された適切なロケーションにコマンド／アドレス情報を書き込んだ後に、システム割り込み（例えば、ＳＭＩ）を発行して、最終的には、割込ハンドラ（例えば、ＳＭＩハンドラ）を介してＰＰＭコンポーネントによってサービス提供することができる。他方、３１０において、ＯＳがＭＰＳＴサービスを必要としていない場合、このルーチンは、図示するように３０８に戻ってループする。
【００２３】
ハードウェアベンダーに、自身の実装を選ぶ際に柔軟性を与えるために、ＡＣＰＩは、テーブルを用いて、システム情報、特徴、及びそれらの特徴を制御するための方法を記述する。これらのテーブルは、デバイス、例えば、システムボード上のデバイス又は或る他のハードウェア標準を用いて検出若しくは電力管理することができないデバイスを列挙する。テーブルは、サポートされるスリープ電力状態等のシステム能力、システムにおいて利用可能な電源プレーン及びクロック源の記述、バッテリー、システムインジケーターライト等も列挙することができる。これによって、ＯＳＰＭ（ＡＣＰＩのＯＳ空間におけるＰＰＭシステム２３８）は、システム制御がどのように実装されるのかを知る必要なく、システムデバイスを制御することが可能になる。
【００２４】
図４は、幾つかの実施形態によるそのようなテーブルを実装するための一般的な構造体を示している。ルートシステム記述ポインタ（ＲＳＤＰ）構造体４０２は、システムのメモリアドレス空間に位置し、プラットフォームファームウェアがセットアップすることができる。この構造体は、データをＯＳＰＭに提供する他の記述テーブルを参照する拡張システム記述テーブル（ＸＳＤＴ）４０４のアドレスを含み、当該構造体に、ベースシステムの実装及び構成の知識を供給する。
【００２５】
システム記述テーブルは、同一のヘッダーから開始すべきである。システム記述テーブルの主な目的は、ＯＳＰＭについて、様々な業界標準の実装の詳細を定義することができる。そのような定義によって、これらの実装の様々な部分はハードウェア要件及び設計において柔軟になり、それでもなお、ＯＳＰＭがハードウェアを直接制御するのに必要とする知識をＯＳＰＭに提供することが可能になる。
【００２６】
ＯＳＰＭは、ＲＳＤＰ構造体内のポインタに追従することによって、そのルートシステム記述テーブルを突き止める。ＲＳＤＴは、シグネチャ「ＲＳＤＴ」から開始し、その後に、現在のシステム上で定義された他の標準に関する様々な情報を提供する他のシステム記述テーブルへの物理ポインタのアレイが続く。ＯＳＰＭは、既知のシグネチャの有無について各テーブルを検査する。シグネチャに基づいて、ＯＳＰＭは、次に、テーブル内の実装固有のデータを解釈することができる。
【００２７】
図５を参照して、拡張システム記述テーブル（ＸＳＤＴ）を更に説明する。このテーブルは、メモリ内の他のテーブルを指し示す。ポインタ４０２によって指し示される最初のテーブルであるＸＳＤＴは、固定ＡＣＰＩ記述テーブル（ＦＡＤＴ）を指し示す。このテーブル内のデータは、ハードウェアの固定ＡＣＰＩ特徴を記述する様々な固定長のエントリを含む。ＦＡＤＴテーブルは、様々なシステム特徴の情報及び記述を含む差別化システム記述テーブル（ＤＳＤＴ）を指す。これらのテーブル間の関係は、図５に示されている。
【００２８】
ＯＳがブート中に初期化されるとき、ＯＳＰＭは、ＲＳＤＰ構造体を見つける。ＯＳＰＭは、この構造体を突き止めると、ルートシステム記述テーブル又は拡張システム記述テーブルの物理アドレスを見る。ルートシステム記述テーブルは、シグネチャ「ＲＳＤＴ」から開始する一方、拡張システム記述テーブルは、シグネチャ「ＸＳＤＴ」から開始する。これらのテーブルは、システムについての様々な情報を提供する他のシステム記述テーブルへの１つ又は複数の物理ポインタを含む。図５に示すように、固定ＡＣＰＩ記述テーブル（ＦＡＤＴ）のルートシステム記述テーブルには、物理アドレスが常に存在すべきである。
【００２９】
ＯＳＰＭは、別のテーブルへの物理ポインタに従うとき、既知のシグネチャの有無について各テーブルを検査する。シグネチャに基づいて、ＯＳＰＭは、次に、記述テーブル内の実装固有のデータを解釈することができる。
【００３０】
ＦＡＤＴの目的は、構成及び電力管理に関係した様々な静的システム情報を定義することである。固定ＡＣＰＩ記述テーブルは、「ＦＡＣＰ」シグネチャから開始する。ＦＡＤＴは、プラットフォーム上のＡＣＰＩハードウェアレジスタの実装及び構成の詳細を記述する。
【００３１】
ＧＰＥ０＿ＢＬＫブロック及びＧＰＥ１＿ＢＬＫブロックは、制御メソッドの割り込み処理モデルの基礎を提供する。Ｐ＿ＢＬＫブロックは、プロセッサ特徴を制御するためのものである。ＡＣＰＩハードウェアレジスタの実装情報のほかに、ＦＡＤＴは、定義ブロックフォーマットでエンコードされている差別化システム記述テーブル（ＤＳＤＴ）として知られているデータ構造体への物理ポインタも含む。
【００３２】
定義ブロックは、プラットフォームのハードウェア実装の詳細についての情報を、プラットフォームのハードウェア構成を表す「ＡＣＰＩ名前空間」として知られている階層的な（木構造の）エンティティで配列されたデータオブジェクトの形態で含む。ＯＳＰＭによってロードされた定義ブロックは、プラットフォームを表す１つの名前空間を形成するように組み合わされる。データオブジェクトは、ＡＣＰＩ機械語、すなわち略してＡＭＬとして知られているフォーマットでエンコードされる。ＡＭＬでエンコードされたデータオブジェクトは、ＡＭＬインタープリターとして知られているＯＳＰＭエンティティによって「評価される」。それらの値は、静的な場合もあるし、動的な場合もある。ＡＭＬインタープリターの動的データオブジェクト評価能力は、結果を判断するように、アドレス空間へのアクセス（例えば、Ｉ／Ｏアクセス又はメモリアクセス）、計算、及び論理評価を含む、プログラム評価のためのサポートを含む。動的名前空間オブジェクトは、「制御メソッド」として知られている。ＯＳＰＭは、関連付けられたオブジェクトに追加するか又は関連付けられたオブジェクトを名前空間から除去して、定義ブロック全体を論理ユニットとして「ロード」又は「アンロード」する。ＤＳＤＴは、ブート時にＯＳＰＭによってロードされるべきであり、アンロードされるべきではない。ＤＳＤＴは、ＯＳＰＭが電力管理、熱管理、又はＡＣＰＩハードウェアレジスタによって記述された情報を越えるプラグアンドプレイ機能性を実行するのに用いることができる実装及び構成の情報を含む差別化定義ブロックという名称を有する定義ブロックを含む。
【００３３】
定義ブロックは、新しいシステム属性を定義することもできるし、場合によっては、前の定義に基いて構築することもできる。定義ブロックは、システムメモリアドレス空間からロードすることができる。定義ブロックの１つの使用法は、プラットフォームのバージョンの変更を記述及び配信することである。
【００３４】
定義ブロックによって、ハードウェアプラットフォーム実装のバリエーションを妥当な限度に留めながら、この幅広いバリエーションをＡＣＰＩ互換ＯＳに記述することが可能になる。定義ブロックによって、少数の明確に定義されたオブジェクト名を用いることによって単純なプラットフォーム実装を表すことが可能になる。
【００３５】
オペレータの中には、単純な機能を実行するものもあれば、複雑な機能を包含するものもある。定義ブロックの能力は、これらの動作を多数の方法で互いに接合して、ＯＳＰＭに機能性を提供することを可能にし得ることに由来する。提示されたオペレータは、多くの有用なハードウェア設計をＡＣＰＩで表すことを可能にするように意図され、全てのハードウェア設計を表すことを可能にするように意図されているのではない。
【００３６】
図６及び図８を参照すると、メモリ電力状態テーブル（ＭＰＳＴ）構造体が示されている。図６は、最上位レベルのＭＰＳＴテーブル（図８）から「開いている（ｆｏｌｄｉｎｇ  ｏｕｔ）」テーブル構造体を示している。この構造体（この図に示すように、複数の部分構造体（例えば、テーブル）を含み得る）は、この構成のメモリ電力ノードトポロジを定義する。この構成は、メモリ電力ノード及びメモリ電力状態特性を指定することを含む。各メモリ電力ノードは、アドレス範囲及びサポートされたメモリ電力状態を用いて指定される。メモリ電力状態は、通常、ハードウェア制御されたメモリ電力状態及びソフトウェア制御されたメモリ電力状態の双方を含む。所与のメモリ電力ノードが不連続なアドレス範囲をサポートするための複数のエントリが存在することができる。ＭＰＳＴテーブルは、ファームウェアで実装されるソフトウェア制御されたメモリ電力状態遷移をトリガーする、ＯＳＰＭとファームウェアとの間の通信メカニズムも定義する。（追加の情報については、ＡＣＰＩ５．０、具体的にはＡＣＰＩ５．０仕様のセクション５を参照されたい。）
【００３７】
ＭＰＳＴ  ＰＣＣサブチャネル識別子のフィールドにプラットフォームによって提供されるＭＰＳＴ  ＰＣＣサブチャネル識別子の値は、ＰＣＣ通信部分空間構造体のタイプフィールドにプログラムされるべきである。ＭＰＳＴテーブルは、この識別子によって、所与のプラットフォーム内のそのＰＣＣ部分空間を参照する。
【００３８】
図９は、ＭＰＳＴプラットフォーム通信チャネルによって用いられるＰＣＣコマンドコードを示すテーブルである。図１０Ａおよび図１０Ｂは、プラットフォーム通信チャネル共有メモリ領域を示すテーブルである。ＯＳＰＭは、ＰＣＣサブチャネル空間にレジスタ値を書き入れるとともにＰＣＣ実行コマンドを発行することによってＰＣＣレジスタに書き込むことができる。（図９参照）。他のコマンド値は予約されている。
【００３９】
次に、図７、図１１、及び図１２を参照して、メモリ電力状態特性を論述することにする。図７は、メモリ電力状態遷移を示す図である。図１１は、ノードが異なるメモリ電力状態（ＭＰ０〜ＭＰｎ）の電力状態値へ及び／又はその電力状態値から遷移することができる当該電力状態値を列挙したテーブルであり、図１２は、異なるメモリ電力状態のコマンドステータス情報を示すテーブルである。メモリ電力状態は、プラットフォームがＧ０ワークｍｇ状態にある間のメモリ電力ノードの状態（メモリアドレス範囲にマッピングされる）を表す。メモリ電力ノードは、ＭＰＳ０という名称を有するアクティブな状態又は電力管理状態ＭＰＳ１〜ＭＰＳｎのうちの１つになることができる。アクティブなメモリ電力状態（ＭＰＳ０）は、その状態におけるメモリ電力管理を妨げるものではないことに留意すべきである。これは、単に、ＭＰＳ０における任意のアクティブな状態のメモリ電力管理がＯＳ  ＰＭにトランスペアレントであることと、より重要なことには、メモリの占有及び活動を制限する観点から、ＯＳＰＭからの援助を必要としないということを示す。
【００４０】
ＭＰＳ１〜ＭＰＳｎの状態は、その状態からイグジット（ｅｘｉｔ）してＭＰＳ０になるためのゼロでないイグジットレイテンシ（ｅｘｉｔ  ｌａｔｅｎｃｙ）を特徴とする。これらの状態は、ＯＳＰＭが開始する明示的なエントリ及びイグジット、ＯＳＰＭが開始する明示的なエントリであるが自律的なイグジット、又は自律的なエントリ及びイグジットを必要とすることができる。３つの全ての場合において、これらの状態は、対応するメモリ電力ノードのメモリアドレス範囲を分離及び解放する明示的なＯＳＰＭ動作を必要とする。より積極的なメモリ電力状態への遷移（例えば、ＭＰＳ１からＭＰＳ２へ）には、アイドリングが続く際にエントリすることができるが、ＭＰＳ０を通る遷移（すなわち、ＭＰＳ１からＭＰＳ０へ、更にＭＰＳ２へ）が必要とされる。図７は、メモリ電力状態遷移を示す図である。
【００４１】
ＯＳＰＭがメモリ電力状態を要求した後、短期間の活動によって、メモリ電力ノードはＭＰＳ０状態に戻される可能性がある。プラットフォームが、その後のアイドル期間の際にメモリ電力状態に戻ることが可能である場合、プラットフォームは、前に要求されたメモリ電力状態を永続的なヒントとして取り扱うべきである。
【００４２】
メモリ電力ノードは、メモリ電力状態の内外に一単位として遷移することができる論理メモリ領域の表現である。この論理メモリ領域は、１つ又は複数のシステムメモリアドレス範囲から構成される。メモリ電力ノードは、メモリ電力ノードＩＤによって一意に識別される。
【００４３】
図１３に定義されているメモリ電力ノード構造体は、通常、単一のアドレス範囲のみを表すことができることに留意されたい。メモリ電力ノードが２つ以上のメモリアドレス範囲（すなわち、不連続な範囲）を含む場合、ファームウェアは、メモリアドレス範囲のそれぞれについてメモリ電力ノード構造体を構築すべきであるが、全ての構造体について同じメモリ電力ノードＩＤを指定すべきである。
【００４４】
メモリ電力ノードは階層的ではない。しかしながら、メモリ電力ノードによってカバーされる所与のメモリアドレス範囲は、そのノードのメモリアドレス範囲が別のメモリ電力ノードの範囲を含む場合、この別のノードがカバーすることができる。例えば、メモリ電力ノードＭＰＮ０は、メモリアドレス範囲１Ｇ〜２Ｇをカバーすることができ、メモリ電力ノードＭＰＮ１は、１Ｇ〜４Ｇをカバーする。ここで、ＭＰＮ１のメモリアドレス範囲は、ＭＰＮ０によってカバーされる範囲も内包する。
【００４５】
ＯＳＰＭは、当該ＯＳＰＭが所与の時点において電力管理することができる最大メモリアドレス範囲に対応するメモリ電力ノードを識別することが期待される。例えば、ＭＰＮ０が１Ｇ〜２Ｇをカバーし、ＭＰＮ１が１Ｇ〜４Ｇをカバーし、ＯＳＰＭが１Ｇ〜４Ｇを電力管理することができる場合、ＯＳＰＭは、ＭＰＮ１を選択すべきである。ＭＰＮ０が非アクティブなメモリ電力状態にある場合、ＯＳＰＭは、ＭＰＮ１を所望のメモリ電力状態にする前に、ＭＰＮ０をＭＰＳ０（アクティブな状態）に移さなければならない。
【００４６】
注記：（一般的な実装の注記、より大きなアドレス空間範囲に対応するメモリノードは、より高いメモリアグリゲーションに対応し（例えば、ＤｌＭＭによってカバーされるメモリ対メモリチャネルによってカバーされるメモリ）、したがって、通常、より高い電力節減機会を呈する。）
【００４７】
図１３及び図１４を参照すると、メモリ電力ノード情報を通信するために用いられるフィールドが示されている。（図１３は、メモリ電力ノード構造体の定義を示すテーブルであり、図１４は、メモリ電力ノード構造体のフラグフォーマットを示すテーブルである。）ＭＰＳＴテーブル内の各エントリは、定義された対応するメモリ電力ノード構造体を有するべきである。
【００４８】
図１５は、幾つかの実施形態による、ＭＰＳＴ構造体のメモリ電力状態構造体定義を示すテーブルである。この構造体は、アドレス範囲、実装される電力状態数、個々の電力状態についての情報、及びこのメモリ電力ノードを含む異なる物理コンポーネントの数を通信する。物理コンポーネント識別子は、メモリトポロジテーブルエントリに対して相互参照することができる。
【００４９】
図１６は、幾つかの実施形態による、ＭＰＳＴ構造体のメモリ電力状態特性構造体を示すテーブルである。このテーブルは、消費電力、イグジットレイテンシ、及びメモリ電力状態の特性を記述する。図１７は、図１６のメモリ電力状態特性構造体のフラグフォーマットを示すテーブルである。
【００５０】
（図１６のテーブルを参照すると、次のことに留意すべきである。すなわち「ＭＰＳ０状態における平均消費電力」は、ＭＰＳ０状態のミリワットによる電力を示す。「ＭＰＳ０に対する相対電力節減」は、ＭＰＳｘ状態における節減を、ＭＰＳ０状態に対する相対的な節減のパーセンテージとして示す。特定の電力状態のメモリ電力特性構造体に提供されたイグジットレイテンシは、その状態のエントリレイテンシを含む。イグジットレイテンシは、メモリ電力状態のエントリ及び／又はイグジットが自律的であるか又はＯＳＰＭからの明示的なトリガーを必要とするかにかかわらず、メモリ電力状態について提供されるべきである。）
【００５１】
ＯＳＰＭがメモリ電力ノードをメモリ電力状態の内外にアクティブに遷移させることを、全てのメモリ電力管理状態が必要としているとは限らない。プラットフォームは、エントリ遷移及びイグジット遷移の観点からハードウェアで十分にハンドリングされるメモリ電力状態を実装することができる。そのような十分に自律的な状態では、状態にエントリする決定は、対応するメモリ領域の利用に基づいてハードウェアが行うことができ、メモリ電力状態をイグジットする決定は、対応するメモリ領域を対象としたメモリアクセスに応答して開始することができる。
【００５２】
そのような自律的なメモリ電力状態をハンドリングする際のＯＳＰＭソフトウェアの役割は、ハードウェアが電力を効果的に節減することを可能にするために、可能であれば、そのようなメモリ領域の使用を明け渡すことである。ＯＳＰＭが開始した他の動作は、これらの自律的に電力管理される領域をサポートするのに必要とされない。しかしながら、これは、ＯＳＰＭがＭＰＳＴコマンドインターフェースを介して自律的なエントリメモリ電力状態への状態遷移を明示的に開始した場合には、エラーではない。プラットフォームは、コマンドを受理して、その状態に直ちにエントリすることができる。この場合、プラットフォームは、ＳＵＣＣＥＳＳ（０００００ｂ）ステータスを有するコマンド完了を返さなければならない。特定のプラットフォームが明示的なエントリをサポートしていない場合、このプラットフォームは、ＮＯＴ  ＳＵＰＰＯＲＴＥＤ（０００１０ｂ）ステータスを有するコマンド完了を返すべきである。
【００５３】
プラットフォームファームウェアは、アロケーション用にＯＳＰＭに利用不能であるプラットフォームファームウェア自体の使用に予約されたメモリの領域を有することができる。メモリの全て又は一部がファームウェアによって予約されたメモリノードは、ファームウェアが予約したメモリが使用中であるか否かをＯＳＰＭが知らないので、ＯＳＰＭにとっての問題を提起する場合がある。ファームウェアが予約したメモリが、メモリ電力ノードがメモリ電力状態にエントリすることができることに影響を与える場合、プラットフォームは、このメモリ電力ノードを電力管理することができないことを（電力管理フラグ（詳細は図１４参照）をクリアすることによって）ＯＳＰＭに示すべきである。これによって、ＯＳＰＭは、そのような範囲をそのメモリ電力最適化から無視することが可能になる。
【００５４】
メモリ電力状態テーブル構造体は、指定されたメモリ電力ノードのそれぞれについてアドレス範囲を記述する。ＯＳＰＭは、ＭＰＳＴテーブルに設けられたアドレス範囲情報を用い、ファームウェアによって作成されたＳＲＡＴエントリに基づいて所与のメモリ電力ノードのプロセッサ親和性を導出することができる。ＯＳＰＭは、メモリ電力ノードの近接ドメインとの関連付けを用いて、メモリアロケーション／解放及びメモリ管理コード内の種々のページリストの操作のためのＮＵＭＡノードトポロジを考慮に入れたメモリ融合を実装することができる（実装固有）。メモリ融合のためにＯＳＰＭにおいて実装することができるポリシーの一例は、ＯＳＰＭが、リモートメモリ電力ノードに向かう前にローカルメモリ電力ノードからメモリをアロケートすることを選ぶことができるということである。
【００５５】
ホットプラグ接続可能なメモリ領域を、ＡＣＰＩ名前空間におけるメモリデバイスオブジェクトを用いて説明する。これらのメモリデバイスオブジェクトのメモリアドレス範囲は、ＡＣＰＩ＿ＣＲＳメソッドを用いて定義することができる。メモリ電力状態テーブル（ＭＰＳＴ）構造体は、初期化中、ホットプラグステータス（オンライン又はオフライン）とは独立して全てのメモリオブジェクトについて作成される静的な構造体である。ＯＳＰＭは、ブート中にＭＰＳＴテーブルをポピュレートする。ホットプラグ接続可能フラグが、ＭＰＳＴテーブル内の所与のメモリ電力ノードについてセットされている場合、ＯＳＰＭは、メモリの物理的存在がＡＣＰＩ通知メカニズムを介して通信されるまで、このノードを用いない。
【００５６】
メモリデバイスオブジェクト（例えばＭＥＭＯ）とＭＰＳＴテーブル内の適切なメモリ電力ノードＩＤとの間の関連付けは、＿ＣＲＳメソッドを用いて指定されたアドレス範囲と、ＭＰＳＴテーブルエントリにおいて構成されたアドレス範囲とを比較することによって決定される。この関連付けは、ＡＣＰＩメモリホットプラグ実装の一部としてＯＳＰＭによって識別されるべきである。メモリデバイスが、メモリホットプラグ用の存在するＡＣＰＩドライバーの一部として「ホッドアド」されたとき、ＯＳＰＭは、＿ＣＲＳメソッドのデバイスオブジェクトをスキャンし、所与のメモリオブジェクトの関連するアドレス範囲を取得し、ＯＳＰＭは、＿ＣＲＳからのアドレス範囲に基づいて適切なメモリ電力ノードＩＤを決定し、そのＩＤを電力管理及びメモリ融合用に有効にする。同様に、メモリが「ホットリムーブ」されたとき、対応するメモリ電力ノードは無効にされる。
【００５７】
ＯＳ（非仮想化ＯＳ又はハイパーバイザー／ＶＭＭ）は、マイグレーション不可メモリをアロケートすることが必要な場合がある。ＯＳは、（可能な場合には）このメモリを、電力管理可能でないことを示すメモリ電力ノードに対応するメモリ範囲からアロケートすることが推奨される。これによって、ＯＳは、最適な電力節減のために電力管理可能なメモリ電力ノードを最適化することが可能になる。ＯＳは、（フラグによって示されるように）電力管理可能なメモリ電力ノードに属するメモリ範囲が、その範囲が電力管理された状態にエントリすることができることに影響を与えない方法でインターリーブされていると仮定することができる。例えば、そのようなメモリは、キャッシュラインインターリーブされていない。
【００５８】
図１８は、プラットフォームメモリトポロジテーブル（ＰＭＴＴ）を示している。このテーブルは、システムのメモリトポロジをＯＳＰＭに記述する。ここで、このメモリトポロジは、論理的又は物理的なものとすることができる。このトポロジは、最終レベルの物理コンポーネント（例えば、ＤｌＭＭ）に提供することができる。
【００５９】
図２１は、ＡＣＰＩ  ＰＣＣを介してＭＰＳＴコマンドを処理する処理フロー２１０２を示す図である。２１０４において、ＯＳＰＭは、ターゲットのＰＯＷＥＲ  ＮＯＤＥ  ＩＤ値を、電力管理されるメモリ電力ノードを指定する適切なＰＣＣサブチャネルのＭＥＭＯＲＹ＿ＰＯＷＥＲ＿ＮＯＤＥ＿ＩＤレジスタに書き込むべきである。２１０６において、ＯＳＰＭは、所望のＰＯＷＥＲ  ＳＴＡＴＥ  ＩＤ値を、事前に識別されたメモリ電力ノードに所望の電力状態を割り当てるＰＣＣサブチャネルのＰＯＷＥＲ  ＳＴＡＴＥ  ＩＤレジスタに書き込むべきである。
【００６０】
２１０８において、ＯＳＰＭは、ＳＥＴ（図１０Ａおよび図１０Ｂ参照）をＰＣＣサブチャネルのＭＥＭＯＲＹ＿ＰＯＷＥＲ＿ＣＯＭＭＡＮＤレジスタに書き込む。２１１０において、ＯＳＰＭは、ＥＸＥＣＵＴＥコマンド（図９参照）をＰＣＣサブチャネルのＰＣＣコマンドレジスタに書き込む。２１１２において、ＯＳＰＭは、ドアベル（Ｄｏｏｒｂｅｌｌ）レジスタに書き込むことによって「ドアベルを鳴らす」。
【００６１】
２１１４において、プラットフォームは、要求を完了し、コマンドが完了したことを示すＳＣＩ（システム制御割り込み）を生成すべきである。２１１６において、ＯＳＰＭは、次に、ＰＣＣサブチャネルのステータスレジスタを読み出し、コマンドが完了に成功したことを確認すべきである。
【００６２】
次に、ＯＳＰＭが所望のメモリ電力ノードのメモリ電力状態情報を得るための処理フローを説明する。ＯＳＰＭは、ターゲットのＰＯＷＥＲ  ＮＯＤＥ  ＩＤ値をＰＣＣサブチャネルのＭＥＭＯＲＹ  ＰＯＷＥＲ＿ＮＯＤＥ＿ＩＤレジスタに書き込む。次に、ＯＳＰＭは、ＧＥＴ（図１０Ａおよび図１０Ｂ参照）をＰＣＣサブチャネルのＭＥＭＯＲＹ＿ＰＯＷＥＲ＿ＣＯＭＭＡＮＤレジスタに書き込む。次に、ＯＳＰＭは、ＰＣＣ  ＥＸＥＣＵＴＥ（図９を参照されたい）をＰＣＣサブチャネルのＰＣＣコマンドレジスタに書き込む。次に、ＯＳＰＭは、ドアベルレジスタに書き込むことによってドアベルを鳴らす。プラットフォームは、次に、要求を完了し、コマンドが完了したことを示すＳＣＩを生成すべきである。ＯＳＰＭは、次に、ＰＣＣサブチャネルのステータスレジスタを読み出し、コマンドが完了に成功したことを確認すべきである。最後に、ＯＳＰＭは、ＰＣＣサブチャネルのＰＯＷＥＲ＿ＳＴＡＴＥ＿ＩＤレジスタからＰＯＷＥＲ  ＳＴＡＴＥを読み出すことができる。
【００６３】
本発明は、説明した実施形態に限定されるものではなく、添付の特許請求の範囲の趣旨及び範囲内における変更形態及び改変形態を用いて実施することができる。図面のうちの幾つかにおいて、信号導体線は線を用いて表されていることを理解されたい。幾つかは、より多くの成分信号パスを示すために太くされている場合があり、成分信号パスの番号を示すために数字ラベルを有する場合があり、及び／又は主な情報の流れる方向を示すために１つ又は複数の端部に矢印を有する場合がある。しかしながら、これは、限定するように解釈されるべきではない。むしろ、そのような追加された細部は、回路の理解をより容易にするために１つ又は複数の例示的な実施形態に関して用いることができる。追加の情報を有するか否かを問わず、表されるいずれの信号線も、複数の方向に進むことができる１つ又は複数の信号を実際に含むことができ、任意の好適なタイプの信号方式を用いて実装することができる。
【図１】
2015505388.tif 000003
【図２】
2015505388.tif 000004
【図３】
2015505388.tif 000005
【図４】
2015505388.tif 000006
【図５】
2015505388.tif 000007
【図６】
2015505388.tif 000008
【図７】
2015505388.tif 000009
【図８】
2015505388.tif 000010
【図９】
2015505388.tif 000011
【図１０Ａ】
2015505388.tif 000012
【図１０Ｂ】
2015505388.tif 000013
【図１１】
2015505388.tif 000014
【図１２】
2015505388.tif 000015
【図１３】
2015505388.tif 000016
【図１４】
2015505388.tif 000017
【図１５】
2015505388.tif 000018
【図１６】
2015505388.tif 000019
【図１７】
2015505388.tif 000020
【図１８】
2015505388.tif 000021
【図１９】
2015505388.tif 000022
【図２０】
2015505388.tif 000023
【図２１】
2015505388.tif 000024
【国際調査報告】
2015505388.tif 000025
2015505388.tif 000026