特許第6155507号(P6155507)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ インテル・コーポレーションの特許一覧

特許6155507メモリ管理を有するコンピューティングプラットフォームインターフェース
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6155507
(24)【登録日】2017年6月16日
(45)【発行日】2017年7月5日
(54)【発明の名称】メモリ管理を有するコンピューティングプラットフォームインターフェース
(51)【国際特許分類】
   G06F 12/00 20060101AFI20170626BHJP
   G06F 1/28 20060101ALI20170626BHJP
【FI】
   G06F12/00 550E
   G06F1/28 Z
【請求項の数】19
【全頁数】21
(21)【出願番号】特願2014-542592(P2014-542592)
(86)(22)【出願日】2012年11月21日
(65)【公表番号】特表2015-505388(P2015-505388A)
(43)【公表日】2015年2月19日
(86)【国際出願番号】US2012066326
(87)【国際公開番号】WO2013078363
(87)【国際公開日】20130530
【審査請求日】2014年7月2日
【審判番号】不服2016-2186(P2016-2186/J1)
【審判請求日】2016年2月12日
(31)【優先権主張番号】61/563,030
(32)【優先日】2011年11月22日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】クマール、モハン
(72)【発明者】
【氏名】ジャヤクマール、サラシー
(72)【発明者】
【氏名】チャンワニ、ニーラム
【合議体】
【審判長】 高木 進
【審判官】 辻本 泰隆
【審判官】 須田 勝巳
(56)【参考文献】
【文献】 特表2009−505306(JP,A)
【文献】 特開2012−37977(JP,A)
【文献】 特開2007−272573(JP,A)
【文献】 特開2008−192061(JP,A)
【文献】 Hewlett−Packard Corporationほか、Advanced Configuration and Power Interface Specification、2010年4月5日、Revision 4.0a、全頁
(58)【調査した分野】(Int.Cl.,DB名)
G06F12/00-12/06
G06F1/26-1/32
(57)【特許請求の範囲】
【請求項1】
コンピューティングプラットフォームであって、
PPM(Performance and Power Management)インターフェースのOS PPMコンポーネントを含むオペレーティングシステム(OS)の命令を有する第1のメモリストレージデバイスと、
PPMインターフェースのファームウェアPPMコンポーネントを含むファームウェアブートプログラムの命令を有する第2のメモリストレージデバイスであって、前記OS及びファームウェアPPM命令は、実行されると、前記OSとプラットフォームハードウェアとの間にPPMインターフェースを確立する、第2のメモリストレージデバイスと、
物理メモリに結合されたメモリコントローラであって、前記物理メモリを前記OSに提供するとともに、前記OSが前記PPMインターフェースを介して前記物理メモリの1つ又は複数のノードの電力状態を制御することを可能にする、メモリコントローラと
を備え、
前記OS PPMコンポーネントは、メモリ電力状態管理を実装するための複数のメモリ電力状態テーブル(MPST)データ構造体を識別し、
前記MPSTデータ構造体は、前記OSによる書込に利用可能でないファームウェア専用メモリ空間に格納され、
前記PPMインターフェースは、PPMレジスタと、ファームウェアPPMコンポーネントと、前記MPSTデータ構造体を含むPPMテーブルを有して、前記1つまたは複数のノードが不連続なメモリアドレス範囲を含むことを可能にし、
メモリ電力ノードが2つ以上の不連続なメモリアドレス範囲を含む場合、前記ファームウェアPPMコンポーネントは、前記メモリアドレス範囲のそれぞれについてメモリ電力ノード構造体を構築するが、前記メモリ電力ノードに含まれる前記メモリ電力ノード構造体に同一のメモリ電力ノードIDを指定し、
前記メモリ電力ノードは、メモリ電力状態の内外に一単位として遷移することができる論理メモリ領域の表現であり、
プラットフォーム制御チャネル(PCC)が前記OSおよびハードウェア機能との間で通信すべく前記PPMインターフェースによって実装される、コンピューティングプラットフォーム。
【請求項2】
前記物理メモリは揮発性メモリである、請求項1に記載のコンピューティングプラットフォーム。
【請求項3】
前記PPMインターフェースは、前記1つまたは複数のノードが不連続なメモリアドレス範囲を含むことを可能にする、請求項1又は2に記載のコンピューティングプラットフォーム。
【請求項4】
前記PPMインターフェースは、前記物理メモリが複数のメモリノードに分割されることを容易にする、請求項1から3の何れか1項に記載のコンピューティングプラットフォーム。
【請求項5】
前記PPMインターフェースは、前記OSが、前記複数のメモリノードを種々の電力状態にすることを可能にする、請求項4に記載のコンピューティングプラットフォーム。
【請求項6】
前記種々の電力状態は、アクティブなMP0状態、低アクティブなMP1状態、及び更に低アクティブなMP2状態を含む、請求項5に記載のコンピューティングプラットフォーム。
【請求項7】
前記PPMインターフェースは、MP1状態からMP2状態に遷移するには、前記複数のメモリノードがMP1状態からMP0状態に遷移し、更にMP2状態に遷移しなければならないことを定義する、請求項6に記載のコンピューティングプラットフォーム。
【請求項8】
前記PPMインターフェースは、ACPI仕様に従ったものである、請求項1に記載のコンピューティングプラットフォーム。
【請求項9】
前記PPMインターフェースは、メモリトポロジを前記OSに記述するプラットフォームメモリトポロジテーブル(PMTT)を含む、請求項に記載のコンピューティングプラットフォーム。
【請求項10】
前記物理メモリは、サーバープラットフォームにおける複数のメモリ構造体を含む、請求項1に記載のコンピューティングプラットフォーム。
【請求項11】
装置であって、
ACPIインターフェースのメモリ電力状態テーブル(MPST)データ構造体を構築するACPIコンポーネントを含むファームウェアを有するコンピュータープラットフォーム、
を備え、
前記MPSTデータ構造体は、オペレーティングシステム(OS)による書込に利用可能でないファームウェア専用メモリ空間に格納され、前記OSは、前記ACPIインターフェースを介して物理メモリの1つ又は複数のノードの電力状態を制御し、
前記ACPIインターフェースは、PPM(Performance and Power Management)レジスタと、ファームウェアPPMコンポーネントと、前記MPSTデータ構造体を含むPPMテーブルを有して、前記1つまたは複数のノードが不連続なメモリアドレス範囲を含むことを可能にし
メモリ電力ノードが2つ以上の不連続なメモリアドレス範囲を含む場合、前記ファームウェアPPMコンポーネントは、前記メモリアドレス範囲のそれぞれについてメモリ電力ノード構造体を構築するが、前記メモリ電力ノードに含まれる前記メモリ電力ノード構造体に同一のメモリ電力ノードIDを指定し、
前記メモリ電力ノードは、メモリ電力状態の内外に一単位として遷移することができる論理メモリ領域の表現であり、
プラットフォーム制御チャネル(PCC)が前記OSおよびハードウェア機能との間で通信すべく前記ACPIインターフェースによって実装される、装置。
【請求項12】
前記MPST構造体は、電力状態値を有するテーブルを含む、請求項1に記載の装置。
【請求項13】
前記MPST構造体は、前記コンピュータープラットフォームにおけるメモリのメモリ電力ノード構造体の定義を有するテーブルを含む、請求項1又は1に記載の装置。
【請求項14】
前記MPST構造体は、メモリ電力状態構造体定義を有するテーブルを含む、請求項1〜1のいずれか一項に記載の装置。
【請求項15】
前記MPST構造体は、共通のメモリアグリゲーターデバイス構造体を含む、請求項1〜1のいずれか一項に記載の装置。
【請求項16】
前記コンピュータープラットフォームは、スマートフォン、タブレット、及びサーバーコンピューターのうちの1つであるコンピューティングデバイスである、請求項1〜1のいずれか一項に記載の装置。
【請求項17】
装置であって、
PPM(Performance and Power Management)インターフェースを組み込むオペレーティングシステム(OS)を有するコンピューターと、
前記OSに利用可能な物理メモリであって、前記OSは、前記PPMインターフェースを介して前記物理メモリの電力状態を管理する、物理メモリと
を備え、
前記PPMインターフェースは、メモリ電力状態管理を実装するための複数のメモリ電力状態テーブル(MPST)データ構造体を識別するOS PPMコンポーネントを有し、
前記MPSTデータ構造体は、前記OSによる書込に利用可能でないファームウェア専用メモリ空間に格納され、
前記OSは、前記PPMインターフェースを介して前記物理メモリの1つ又は複数のノードの電力状態を制御し、
前記PPMインターフェースは、PPMレジスタと、ファームウェアPPMコンポーネントと、前記MPSTデータ構造体を含むPPMテーブルを有して、前記1つまたは複数のノードが不連続なメモリアドレス範囲を含むことを可能にし
メモリ電力ノードが2つ以上の不連続なメモリアドレス範囲を含む場合、前記ファームウェアPPMコンポーネントは、前記メモリアドレス範囲のそれぞれについてメモリ電力ノード構造体を構築するが、前記メモリ電力ノードに含まれる前記メモリ電力ノード構造体に同一のメモリ電力ノードIDを指定し、
前記メモリ電力ノードは、メモリ電力状態の内外に一単位として遷移することができる論理メモリ領域の表現であり、
プラットフォーム制御チャネル(PCC)が前記OSおよびハードウェア機能との間で通信すべく前記PPMインターフェースによって実装される、装置。
【請求項18】
前記PPMは、ACPI仕様に従ったものである、請求項1に記載の装置。
【請求項19】
前記物理メモリは、ノードが前記物理メモリの少なくとも1つのアドレス範囲を含むノード構造体を介して制御される、請求項18に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概ね、プラットフォーム性能管理インターフェースに関する。具体的には、本発明は、コンピューティングプラットフォームにおける性能管理インターフェースを介してメモリ電力及び/又は性能管理サービスを提供することに関する。
【0002】
本出願は、2011年11月22日に出願された米国仮特許出願第61/563,030号に対する利益を主張し、この米国仮特許出願は、参照によって本明細書に組み込まれる。
【0003】
本発明の実施形態が、限定ではなく例として添付図面の図に示されている。添付図面において、同様の参照符号は、類似の要素を参照する。
【図面の簡単な説明】
【0004】
図1】幾つかの実施形態による、PPMインターフェースを介して提供されるMPSTサポートを有するコンピューティングプラットフォームのブロック図である。
図2】幾つかの実施形態による、プラットフォーム上に実装されたMPSTを有するPPMインターフェースの抽象化された表現を示す図である。
図3】幾つかの実施形態による、PPMインターフェースを介してMPSTサービスをプラットフォームOSに提供するための一般的なルーチンを示す図である。
図4】幾つかの実施形態による、ACPIインターフェース内のテーブル構造体へのルートポインタを示す図である。
図5】幾つかの実施形態による、ACPIインターフェースの記述テーブル構造体を示す図である。
図6】幾つかの実施形態による、ACPI実装のMPSTテーブル構造体の組織的な概略である。
図7】幾つかの実施形態による、ACPI実装のメモリ電力状態遷移を示す図である。
図8】幾つかの実施形態によるMPSTテーブル構造体の概略テーブルである。
図9】幾つかの実施形態による、MPSTプラットフォーム通信チャネルによって用いられるPCCコマンドコードを示すテーブルである。
図10A】幾つかの実施形態による、MPSTプラットフォーム通信チャネル共有メモリ領域を示すテーブルである。
図10B】幾つかの実施形態による、MPSTプラットフォーム通信チャネル共有メモリ領域を示すテーブルである。
図11】幾つかの実施形態による、PPM MPSTの電力状態値を有するテーブルである。
図12】幾つかの実施形態による、PPM MPSTのコマンドステータステーブルである。
図13】幾つかの実施形態による、PPM MPSTのメモリ電力ノード構造体の定義を有するテーブルである。
図14】幾つかの実施形態による、PPM MPSTのフラグフォーマットを示すテーブルである。
図15】幾つかの実施形態による、PPM MPSTのメモリ電力状態構造体定義のテーブルである。
図16】幾つかの実施形態による、PPM MPSTのメモリ電力状態特性構造体を示すテーブルである。
図17】幾つかの実施形態による、図16のメモリ電力状態特性構造体のフラグフォーマットを示すテーブルである。
図18】幾つかの実施形態によるプラットフォームメモリトポロジテーブル(PMTT)を示す図である。
図19】幾つかの実施形態による、共通のメモリアグリゲーターデバイス構造体を示すテーブルである。
図20】幾つかの実施形態によるソケット構造体を示すテーブルである。
図21】幾つかの実施形態による、プラットフォーム通信チャネル(PCC)を介してMPSTコマンドを処理するためのルーチンの流れ図である。
【発明を実施するための形態】
【0005】
図1は、幾つかの実施形態によるメモリ電力状態(MPS)サービスを容易にする性能及び電力管理(PPM)インターフェースを有するコンピューティングプラットフォーム100の一部分の図である。このコンピューティングプラットフォームは、この図に一般的に示すように、様々な異なるコンピューティングプラットフォームタイプを表すように意図されている。様々な異なるコンピューティングプラットフォームタイプとしては、サーバー、デスクトップPC、ネットブック、ウルトラブック、タブレット、スマートフォン等が挙げられるが、これらに限定されるものではない。簡単にするとともに理解を容易にするために、幾つかのプラットフォーム実施形態について、この開示に関係しない細部及び/又はコンポーネントは省略されている。
【0006】
「PPM」という用語は、本明細書において用いられるとき、性能及び電力の管理を意味し、プラットフォーム及びOSが、少なくとも関連する特徴に関して、PPMインターフェースに準拠する限り、オペレーティングシステムだけでなく、アプリケーションもそれらのオペレーティングシステムによって、プラットフォーム内のハードウェアコンポーネントを制御、監視、保守等することを可能にするための任意の好適なインターフェースを指す。PPMの一例は、アドバンスド・コンフィギュレーション・アンド・パワーインターフェース(ACPI)である。
【0007】
メモリ電力状態管理サービスは、幾つかの実装では、未使用のメモリ又は十分使用されていないメモリの電力を節減するように、幾つかのメモリ電力状態のうちの1つにメモリの一部(例えば、ノード)をエントリ(入る)させる又はイグジット(出る)させることを指す。メモリは、通常、システムメモリ(例えば、DRAM)に対応するが、システムのメモリマップの一部であるキャッシュメモリ及び/又は不揮発性メモリも包含することができる。プラットフォーム及びOSが、少なくとも関係する部分においてPPMインターフェースに準拠する限り、MPS管理は、PPMインターフェースを介して容易にされ、それによって、プラットフォームのオペレーティングシステムは、種々のプラットフォーム上でメモリを管理することが可能になる。
【0008】
図示したプラットフォームは、1つ若しくは複数のバス及び/又はポイントツーポイント相互接続を介して相互に結合された、CPU102、知覚デバイス110(例えば、ジャイロ、スピーカー、カメラ等)、他のデバイス/インターフェース(例えば、キーパッド、ポインタデバイス、USBポート、PCIポート、無線If等)116、及びグラフィックスプロセッサ(GPX)122を備える。プラットフォームは、メモリコントローラ106を介して少なくともCPU102に結合されたメモリ108(例えば、DRAM)も備え、CPU102に結合されたファームウェア104(例えば、フラッシュメモリ等の不揮発性メモリを用いて実装される)も備える。プラットフォームは、加えて、ディスプレイコントローラ124を介してGPX122及び/又はCPU102に結合されたディスプレイ126を備える。(単一のCPUブロックが示されているが、プラットフォームは、1つ又は複数のOSスレッドを実行するとともに様々な異なるタスクを実行する複数のCPU及び/又は処理コアを備えることができることが理解されるべきである。しかしながら、簡単にするために、本明細書では、オペレーティングシステムを実行する単一のCPUが示されている。)
【0009】
プラットフォームは、記憶ドライブコントローラ112を介して少なくともCPU102に結合された記憶ドライブ114(例えば、ソリッドステートドライブ)を更に備える。この記憶ドライブは、データ、アプリケーション、及びLinux(登録商標)、Windows(登録商標)、Mac OS(商標)、Android等の1つ又は複数のオペレーティングシステム(OS)を記憶することができる。ファームウェア104は、BIOS、EFI、又は他のブート/初期化ソフトウェアを含む。(BIOSの役割は、時間とともに変化していることに留意されたい。例えば、幾つかのプラットフォームでは、BIOSは、より複雑なEFI(エクステンシブルファームウェアインターフェース)に置き換わってきているが、ファームウェア用のBIOSは広範に使用され続けている。現在まで、EFIは、GPTをサポートするMicrosoft Windows(登録商標)バージョン、Linux(登録商標)カーネル2.6.1以降のもの、及びMac OSにおいてサポートされてきた。しかしながら、BIOSとEFIとの間の術語上の区別は、平均的なコンピューターユーザーによってなされることはまれであり、したがって、BIOSは双方のシステムの包括的な用語にされている。しかしながら、簡単にするために、「ファームウェア」という用語は、一般的に、BIOS、EFI、又は代替のブート/初期化コードを指すのに用いられる。)
【0010】
共に、オペレーティングシステム及びファームウェアは、プラットフォームのPPMインターフェース146を実装するソフトウェアコンポーネントを備える。図に抽象的に表されているように、プラットフォームがプリミティブな開始コードを実行した後に起動すると、CPUは、ブートソフトウェア(ファームウェア空間142)を取り出して実行し、特に、その時、PPMインターフェース146のデータ構造体を確立することができる。ファームウェア空間(例えば、BIOS、EFI)が初期化されると、次に、OS空間144が、OSがCPU内でブートするときに確立される。この時点において、OS内のPPMモジュールは、確立されているPPMインターフェース146を介してプラットフォームの様々な特性を識別することができる。
【0011】
図2は、一方におけるOSの電力及び性能の機能性と、他方におけるプラットフォームハードウェアとの間をインターフェースするためのPPMインターフェースを抽象的に示すブロック図である。(この図は、ACPI仕様から描かれていることに留意すべきである。このACPI仕様は、以後、本明細書において教示する原理のうちの幾つかを好都合に提示するための一例として主に用いられる。しかしながら、この図は、この開示に特有の概念に準拠するように抽象化及び変更されている。例えば、より一般的な用語「PPM」が、幾つかの箇所では「ACPI」よりもむしろ用いられ、また、「PPM」が、OS空間内の「OSPM」の代わりに用いられる。ACPIは、PPMインターフェースの具体的な実装であることが理解されるべきである。)
【0012】
本開示に関して、プラットフォームハードウェア202は、CPU102、メモリコントローラ26、及びメモリモジュール208とともに示されている。メモリコントローラは、特定の回路、論理ユニット、コントローラ、実行ソフトウェア等に対応することができる。示すように、メモリコントローラは、CPU又はSOCの一部とすることができ、及び/又は制御ハブチップ等の別個の周辺モジュールの一部とすることができる。メモリモジュール208は、物理メモリモジュール及び/又は論理メモリモジュールに対応する。メモリモジュールは、以下で論述するように、例えば、それらに関連付けられたメモリコントローラによって、メモリ電力状態の適用のためのメモリ電力ノードに更に分割することができる。幾つかの実施形態では、PPMインターフェースが、例えば、プラットフォームのブート中に作成されたとき、PPMデータ構造体(例えば、テーブル226)が、メモリモジュール208のメモリ電力状態管理を実装するための関係データ(MPST構造体に関して以下で論述する)によってポピュレートされる。
【0013】
CPU102は、上記で論述したように、ファームウェア及びOSを実行し、それによって、PPMインターフェース146、OS空間144、及びアプリケーション空間240を確立する。このアプリケーション空間は、プラットフォーム上に実行されるアプリケーションのAPI242を含む。OS空間144は、PPMインターフェースドライバー232、デバイスドライバー234、OSカーネル236、及びPPMシステム238を含み、これによって、OSからの性能及び電力管理が容易になる。図示した実施形態では、OS PPM機能部とPPMハードウェア機能との間で通信するプラットフォーム制御チャネル(PCC)が、PPMインターフェースによって実装される。
【0014】
PPMインターフェース146は、PPMレジスタ222、PPMファームウェアコンポーネント224、及びPPMテーブル226を備える。レジスタ222は、特定のレジスタ、例えばCPU内に又はベースボードコントローラ等のコントローラの一部として、例えばハードウェアによる専用化されたPPMレジスタに対応することもできるし、ソフトウェアによって作成された仮想レジスタに対応することもできる。これらのレジスタは、PPMテーブルによって(少なくともロケーションが)記述されたハードウェアインターフェースの制約された部分とすることもできる。例えば、ACPIは、ACPI5.0仕様(ACPIハードウェア仕様)のセクション4に記載されているように、ACPI互換OSがプラットフォームハードウェアのコア電力管理及び性能特徴を制御するのに用いることができるハードウェアレジスタインターフェースを定義する。
【0015】
PPMファームウェアコンポーネント224は、PPM実装に対応するファームウェアの部分を備える。通常、それらは、スリープ、ウェイク、及び幾つかの再起動動作のためのインターフェースを実装するのに用いられる。この開示に関して、特にそれらは、メモリ電力状態(MP状態)サービスに用いられるものを含む、PPMデータ構造体及びテーブルを定義するためのコンポーネントも備えることができ、テーブル内のデータ及び/又はアドレスを維持及び/又は更新する1つ又は複数のルーチンも備えることができる。(ファームウェアコンポーネント224に対応するACPI特徴のうちの幾つかは、ACPI5.0仕様のセクション5.3「名前空間」に記載されていることに留意されたい。)
【0016】
PPMテーブル226は、一般に、ハードウェアに対するインターフェースを記述する。幾つかの記述は、構築することができるものを制限する。例えば、幾つかの制御は、レジスタの固定ブロックに組み込むことができ、テーブルは、レジスタブロックのアドレスを指定する。ほとんどの記述は、ハードウェアを任意の方法で構築することを可能にし、ハードウェア機能を作成するのに必要とされる任意の動作シーケンスを記述することができる。(この開示の残りについては、ACPIテーブルが、好適なPPMテーブル構造体の例として、暗黙的又は明示的に説明され、及び/又は用いられる。ACPIテーブルは、ACPI5.0仕様のセクション5.2に一般的に記載されている。)
【0017】
「定義ブロック」を有するACPIテーブルは、擬似コードタイプの言語を利用することができ、この言語の解釈は、OSが実行することができる。すなわち、OSPM(PPMシステム238に対応する)は、擬似コード言語でエンコードされるとともに、「定義ブロック」を含むACPIテーブルに記憶されたプロシージャを実行するインタープリターを備えて用いる。ACPI機械語(AML)として知られているこの擬似コード言語は、コンパクトでトークン化された抽象型の機械語である。
【0018】
図3は、幾つかの実施形態による、OSがメモリ電力状態管理を容易にするためのルーチン302を示している。304において、プラットフォームのブート中に、MPSTデータ構造体が、特定のプラットフォーム、例えば、特定のハードウェア、メモリ及びメモリ構成、並びにオペレーティングシステムと関連付けられて作成される。すなわち、PPMインターフェースを用いることの利点は、プラットフォーム及びオペレーティングシステムがPPMインターフェースに準拠する限り、統一的な又は既知のプラットフォーム構成を必要とすることなく、サービスをOSに利用可能にすることができるということである。様々なプラットフォームハードウェアコンポーネントによって提供される利用可能なMPST情報(メモリ電力ノード、特定のPCC情報、及びメモリ電力状態特性情報)を識別する定義テーブルを生成することができる。これは、例えば、ファームウェアのブートプロセス中にPPMコンポーネントが行うことができる。幾つかのACPI実装では、ブートしているファームウェアは、専用化されたファームウェアメモリ空間、例えば、ファームウェアによって要求される空間であって、OSへの変更には利用可能でなく、例えば、仮にあったとしても、読み出し専用に基づいてのみOSに利用可能になる空間において、MPSTテーブル構造体を作成することができる。
【0019】
306において、OSは、プラットフォームMPST PPM機能を識別する。幾つかの実施形態では、これは、OSがブートされて初期化されるときに行われる。PPMコンポーネント(例えば、ACPIにおけるOSPMと呼ばれる図2のOS PPMシステム238)は、ファームウェアPPMコンポーネントによって作成及び定義されたMPSTデータ構造体を識別する。
【0020】
308において、プラットフォームは、MPSTデータ構造体を維持/更新する。これは、通常、主にブートにおいて行われるが、場合によっては、幾つかの部分は、プラットフォームが動作している間に進行している場合がある。幾つかのMPST機能性は、上述のように、ハードウェアから提供することができ、メモリコントローラは、それらのクライアントメモリの関係するメモリ電力情報をACPI MPST構造体に提供する。例えば、メモリコントローラは、メモリブロック又は範囲を監視して、いずれが、例えば、融合した又は自律的なMP状態遷移に用いられているのか、ビジーであるのか等を評価することができる。これらのメモリコントローラは、次に、適切なMPSTデータ構造体、例えば、MPST構造体に関連付けられたPPMテーブルを更新することができる。
【0021】
コントローラがMPSTテーブルを更新することを可能にするのに、任意の好適な手法を用いることができる。例えば、コントローラは、ACPI実装においてPCCチャネルを用いることができる。幾つかの実施形態では、メモリコントローラは、ファームウェアからPPMコンポーネントにアクセスするシステム割り込みを発行することによってPPMインターフェースにアクセスすることができる。例えば、ほとんどのx86プラットフォームでは、SMI(システム管理割り込み)を発行して、システムをシステム管理モード(SMM)にすることができ、その結果、プラットフォームファームウェア内のSMIハンドラルーチンがコールされる。SMIハンドラは、1つ又は複数のOS MPSTコマンド(例えば、テーブル等のデータ構造体を含むPPMコンポーネントにおいて定義される)を処理し、コントローラからのデータを用いてMPST構造体(例えば、テーブル)を更新し、及び/又は例えばファームウェア内の1つ若しくは複数のPPMコンポーネントを起動して実行することができる。(「システム割り込み」は、本明細書において用いられるとき、CPUに所望の割込ハンドラ、通常はオペレーティングシステムの外部で実行されているルーチンを処理させる任意のタイプのプラットフォームアーキテクチャにおける任意の割り込みを指すことに留意されたい。)そのため、本開示によると、システム割り込みは、OSのMPSTタスクにサービスを提供するためには、OS空間の外部のPPMコンポーネントを直接又は間接に起動する割込ハンドラを起動するのに用いられる任意の割り込みであってもよい。常にそうとは限らないが通常は、CPUは、OSの実行を一時停止し、割込ハンドラの実行に切り替わる。完了すると、割込ハンドラは、動作をOSに再び戻すために、それ自体の割り込み、例えば、x86プラットフォームにおけるASI又はSCIを発行することができる。x86プラットフォームにおけるSMIハンドラ等の割込ハンドラは、好都合には、プラットフォームファームウェアの一部とすることができる。)
【0022】
310において、OSが、実行されるべきMPSTタスクを有する場合、例えば、OS電力管理モジュールが1つ又は複数のメモリ電力ノードを電力削減状態にしたい場合、312において、OS PPMコンポーネントは、PPMインターフェースを介してMPSTサービス要求を実行する。幾つかの実施形態では、このコンポーネントは、適切なMPSTデータ構造体に定義されるような1つ又は複数の好適なコマンド及び/又はアドレスポインタを発行し、PPMインターフェースを介してコマンドを起動する。例えば、このコンポーネントは、テーブル内に定義された適切なロケーションにコマンド/アドレス情報を書き込んだ後に、システム割り込み(例えば、SMI)を発行して、最終的には、割込ハンドラ(例えば、SMIハンドラ)を介してPPMコンポーネントによってサービス提供することができる。他方、310において、OSがMPSTサービスを必要としていない場合、このルーチンは、図示するように308に戻ってループする。
【0023】
ハードウェアベンダーに、自身の実装を選ぶ際に柔軟性を与えるために、ACPIは、テーブルを用いて、システム情報、特徴、及びそれらの特徴を制御するための方法を記述する。これらのテーブルは、デバイス、例えば、システムボード上のデバイス又は或る他のハードウェア標準を用いて検出若しくは電力管理することができないデバイスを列挙する。テーブルは、サポートされるスリープ電力状態等のシステム能力、システムにおいて利用可能な電源プレーン及びクロック源の記述、バッテリー、システムインジケーターライト等も列挙することができる。これによって、OSPM(ACPIのOS空間におけるPPMシステム238)は、システム制御がどのように実装されるのかを知る必要なく、システムデバイスを制御することが可能になる。
【0024】
図4は、幾つかの実施形態によるそのようなテーブルを実装するための一般的な構造体を示している。ルートシステム記述ポインタ(RSDP)構造体402は、システムのメモリアドレス空間に位置し、プラットフォームファームウェアがセットアップすることができる。この構造体は、データをOSPMに提供する他の記述テーブルを参照する拡張システム記述テーブル(XSDT)404のアドレスを含み、当該構造体に、ベースシステムの実装及び構成の知識を供給する。
【0025】
システム記述テーブルは、同一のヘッダーから開始すべきである。システム記述テーブルの主な目的は、OSPMについて、様々な業界標準の実装の詳細を定義することができる。そのような定義によって、これらの実装の様々な部分はハードウェア要件及び設計において柔軟になり、それでもなお、OSPMがハードウェアを直接制御するのに必要とする知識をOSPMに提供することが可能になる。
【0026】
OSPMは、RSDP構造体内のポインタに追従することによって、そのルートシステム記述テーブルを突き止める。RSDTは、シグネチャ「RSDT」から開始し、その後に、現在のシステム上で定義された他の標準に関する様々な情報を提供する他のシステム記述テーブルへの物理ポインタのアレイが続く。OSPMは、既知のシグネチャの有無について各テーブルを検査する。シグネチャに基づいて、OSPMは、次に、テーブル内の実装固有のデータを解釈することができる。
【0027】
図5を参照して、拡張システム記述テーブル(XSDT)を更に説明する。このテーブルは、メモリ内の他のテーブルを指し示す。ポインタ402によって指し示される最初のテーブルであるXSDTは、固定ACPI記述テーブル(FADT)を指し示す。このテーブル内のデータは、ハードウェアの固定ACPI特徴を記述する様々な固定長のエントリを含む。FADTテーブルは、様々なシステム特徴の情報及び記述を含む差別化システム記述テーブル(DSDT)を指す。これらのテーブル間の関係は、図5に示されている。
【0028】
OSがブート中に初期化されるとき、OSPMは、RSDP構造体を見つける。OSPMは、この構造体を突き止めると、ルートシステム記述テーブル又は拡張システム記述テーブルの物理アドレスを見る。ルートシステム記述テーブルは、シグネチャ「RSDT」から開始する一方、拡張システム記述テーブルは、シグネチャ「XSDT」から開始する。これらのテーブルは、システムについての様々な情報を提供する他のシステム記述テーブルへの1つ又は複数の物理ポインタを含む。図5に示すように、固定ACPI記述テーブル(FADT)のルートシステム記述テーブルには、物理アドレスが常に存在すべきである。
【0029】
OSPMは、別のテーブルへの物理ポインタに従うとき、既知のシグネチャの有無について各テーブルを検査する。シグネチャに基づいて、OSPMは、次に、記述テーブル内の実装固有のデータを解釈することができる。
【0030】
FADTの目的は、構成及び電力管理に関係した様々な静的システム情報を定義することである。固定ACPI記述テーブルは、「FACP」シグネチャから開始する。FADTは、プラットフォーム上のACPIハードウェアレジスタの実装及び構成の詳細を記述する。
【0031】
GPE0_BLKブロック及びGPE1_BLKブロックは、制御メソッドの割り込み処理モデルの基礎を提供する。P_BLKブロックは、プロセッサ特徴を制御するためのものである。ACPIハードウェアレジスタの実装情報のほかに、FADTは、定義ブロックフォーマットでエンコードされている差別化システム記述テーブル(DSDT)として知られているデータ構造体への物理ポインタも含む。
【0032】
定義ブロックは、プラットフォームのハードウェア実装の詳細についての情報を、プラットフォームのハードウェア構成を表す「ACPI名前空間」として知られている階層的な(木構造の)エンティティで配列されたデータオブジェクトの形態で含む。OSPMによってロードされた定義ブロックは、プラットフォームを表す1つの名前空間を形成するように組み合わされる。データオブジェクトは、ACPI機械語、すなわち略してAMLとして知られているフォーマットでエンコードされる。AMLでエンコードされたデータオブジェクトは、AMLインタープリターとして知られているOSPMエンティティによって「評価される」。それらの値は、静的な場合もあるし、動的な場合もある。AMLインタープリターの動的データオブジェクト評価能力は、結果を判断するように、アドレス空間へのアクセス(例えば、I/Oアクセス又はメモリアクセス)、計算、及び論理評価を含む、プログラム評価のためのサポートを含む。動的名前空間オブジェクトは、「制御メソッド」として知られている。OSPMは、関連付けられたオブジェクトに追加するか又は関連付けられたオブジェクトを名前空間から除去して、定義ブロック全体を論理ユニットとして「ロード」又は「アンロード」する。DSDTは、ブート時にOSPMによってロードされるべきであり、アンロードされるべきではない。DSDTは、OSPMが電力管理、熱管理、又はACPIハードウェアレジスタによって記述された情報を越えるプラグアンドプレイ機能性を実行するのに用いることができる実装及び構成の情報を含む差別化定義ブロックという名称を有する定義ブロックを含む。
【0033】
定義ブロックは、新しいシステム属性を定義することもできるし、場合によっては、前の定義に基いて構築することもできる。定義ブロックは、システムメモリアドレス空間からロードすることができる。定義ブロックの1つの使用法は、プラットフォームのバージョンの変更を記述及び配信することである。
【0034】
定義ブロックによって、ハードウェアプラットフォーム実装のバリエーションを妥当な限度に留めながら、この幅広いバリエーションをACPI互換OSに記述することが可能になる。定義ブロックによって、少数の明確に定義されたオブジェクト名を用いることによって単純なプラットフォーム実装を表すことが可能になる。
【0035】
オペレータの中には、単純な機能を実行するものもあれば、複雑な機能を包含するものもある。定義ブロックの能力は、これらの動作を多数の方法で互いに接合して、OSPMに機能性を提供することを可能にし得ることに由来する。提示されたオペレータは、多くの有用なハードウェア設計をACPIで表すことを可能にするように意図され、全てのハードウェア設計を表すことを可能にするように意図されているのではない。
【0036】
図6及び図8を参照すると、メモリ電力状態テーブル(MPST)構造体が示されている。図6は、最上位レベルのMPSTテーブル(図8)から「開いている(folding out)」テーブル構造体を示している。この構造体(この図に示すように、複数の部分構造体(例えば、テーブル)を含み得る)は、この構成のメモリ電力ノードトポロジを定義する。この構成は、メモリ電力ノード及びメモリ電力状態特性を指定することを含む。各メモリ電力ノードは、アドレス範囲及びサポートされたメモリ電力状態を用いて指定される。メモリ電力状態は、通常、ハードウェア制御されたメモリ電力状態及びソフトウェア制御されたメモリ電力状態の双方を含む。所与のメモリ電力ノードが不連続なアドレス範囲をサポートするための複数のエントリが存在することができる。MPSTテーブルは、ファームウェアで実装されるソフトウェア制御されたメモリ電力状態遷移をトリガーする、OSPMとファームウェアとの間の通信メカニズムも定義する。(追加の情報については、ACPI5.0、具体的にはACPI5.0仕様のセクション5を参照されたい。)
【0037】
MPST PCCサブチャネル識別子のフィールドにプラットフォームによって提供されるMPST PCCサブチャネル識別子の値は、PCC通信部分空間構造体のタイプフィールドにプログラムされるべきである。MPSTテーブルは、この識別子によって、所与のプラットフォーム内のそのPCC部分空間を参照する。
【0038】
図9は、MPSTプラットフォーム通信チャネルによって用いられるPCCコマンドコードを示すテーブルである。図10Aおよび図10Bは、プラットフォーム通信チャネル共有メモリ領域を示すテーブルである。OSPMは、PCCサブチャネル空間にレジスタ値を書き入れるとともにPCC実行コマンドを発行することによってPCCレジスタに書き込むことができる。(図9参照)。他のコマンド値は予約されている。
【0039】
次に、図7図11、及び図12を参照して、メモリ電力状態特性を論述することにする。図7は、メモリ電力状態遷移を示す図である。図11は、ノードが異なるメモリ電力状態(MP0〜MPn)の電力状態値へ及び/又はその電力状態値から遷移することができる当該電力状態値を列挙したテーブルであり、図12は、異なるメモリ電力状態のコマンドステータス情報を示すテーブルである。メモリ電力状態は、プラットフォームがG0ワークmg状態にある間のメモリ電力ノードの状態(メモリアドレス範囲にマッピングされる)を表す。メモリ電力ノードは、MPS0という名称を有するアクティブな状態又は電力管理状態MPS1〜MPSnのうちの1つになることができる。アクティブなメモリ電力状態(MPS0)は、その状態におけるメモリ電力管理を妨げるものではないことに留意すべきである。これは、単に、MPS0における任意のアクティブな状態のメモリ電力管理がOS PMにトランスペアレントであることと、より重要なことには、メモリの占有及び活動を制限する観点から、OSPMからの援助を必要としないということを示す。
【0040】
MPS1〜MPSnの状態は、その状態からイグジット(exit)してMPS0になるためのゼロでないイグジットレイテンシ(exit latency)を特徴とする。これらの状態は、OSPMが開始する明示的なエントリ及びイグジット、OSPMが開始する明示的なエントリであるが自律的なイグジット、又は自律的なエントリ及びイグジットを必要とすることができる。3つの全ての場合において、これらの状態は、対応するメモリ電力ノードのメモリアドレス範囲を分離及び解放する明示的なOSPM動作を必要とする。より積極的なメモリ電力状態への遷移(例えば、MPS1からMPS2へ)には、アイドリングが続く際にエントリすることができるが、MPS0を通る遷移(すなわち、MPS1からMPS0へ、更にMPS2へ)が必要とされる。図7は、メモリ電力状態遷移を示す図である。
【0041】
OSPMがメモリ電力状態を要求した後、短期間の活動によって、メモリ電力ノードはMPS0状態に戻される可能性がある。プラットフォームが、その後のアイドル期間の際にメモリ電力状態に戻ることが可能である場合、プラットフォームは、前に要求されたメモリ電力状態を永続的なヒントとして取り扱うべきである。
【0042】
メモリ電力ノードは、メモリ電力状態の内外に一単位として遷移することができる論理メモリ領域の表現である。この論理メモリ領域は、1つ又は複数のシステムメモリアドレス範囲から構成される。メモリ電力ノードは、メモリ電力ノードIDによって一意に識別される。
【0043】
図13に定義されているメモリ電力ノード構造体は、通常、単一のアドレス範囲のみを表すことができることに留意されたい。メモリ電力ノードが2つ以上のメモリアドレス範囲(すなわち、不連続な範囲)を含む場合、ファームウェアは、メモリアドレス範囲のそれぞれについてメモリ電力ノード構造体を構築すべきであるが、全ての構造体について同じメモリ電力ノードIDを指定すべきである。
【0044】
メモリ電力ノードは階層的ではない。しかしながら、メモリ電力ノードによってカバーされる所与のメモリアドレス範囲は、そのノードのメモリアドレス範囲が別のメモリ電力ノードの範囲を含む場合、この別のノードがカバーすることができる。例えば、メモリ電力ノードMPN0は、メモリアドレス範囲1G〜2Gをカバーすることができ、メモリ電力ノードMPN1は、1G〜4Gをカバーする。ここで、MPN1のメモリアドレス範囲は、MPN0によってカバーされる範囲も内包する。
【0045】
OSPMは、当該OSPMが所与の時点において電力管理することができる最大メモリアドレス範囲に対応するメモリ電力ノードを識別することが期待される。例えば、MPN0が1G〜2Gをカバーし、MPN1が1G〜4Gをカバーし、OSPMが1G〜4Gを電力管理することができる場合、OSPMは、MPN1を選択すべきである。MPN0が非アクティブなメモリ電力状態にある場合、OSPMは、MPN1を所望のメモリ電力状態にする前に、MPN0をMPS0(アクティブな状態)に移さなければならない。
【0046】
注記:(一般的な実装の注記、より大きなアドレス空間範囲に対応するメモリノードは、より高いメモリアグリゲーションに対応し(例えば、DlMMによってカバーされるメモリ対メモリチャネルによってカバーされるメモリ)、したがって、通常、より高い電力節減機会を呈する。)
【0047】
図13及び図14を参照すると、メモリ電力ノード情報を通信するために用いられるフィールドが示されている。(図13は、メモリ電力ノード構造体の定義を示すテーブルであり、図14は、メモリ電力ノード構造体のフラグフォーマットを示すテーブルである。)MPSTテーブル内の各エントリは、定義された対応するメモリ電力ノード構造体を有するべきである。
【0048】
図15は、幾つかの実施形態による、MPST構造体のメモリ電力状態構造体定義を示すテーブルである。この構造体は、アドレス範囲、実装される電力状態数、個々の電力状態についての情報、及びこのメモリ電力ノードを含む異なる物理コンポーネントの数を通信する。物理コンポーネント識別子は、メモリトポロジテーブルエントリに対して相互参照することができる。
【0049】
図16は、幾つかの実施形態による、MPST構造体のメモリ電力状態特性構造体を示すテーブルである。このテーブルは、消費電力、イグジットレイテンシ、及びメモリ電力状態の特性を記述する。図17は、図16のメモリ電力状態特性構造体のフラグフォーマットを示すテーブルである。
【0050】
図16のテーブルを参照すると、次のことに留意すべきである。すなわち「MPS0状態における平均消費電力」は、MPS0状態のミリワットによる電力を示す。「MPS0に対する相対電力節減」は、MPSx状態における節減を、MPS0状態に対する相対的な節減のパーセンテージとして示す。特定の電力状態のメモリ電力特性構造体に提供されたイグジットレイテンシは、その状態のエントリレイテンシを含む。イグジットレイテンシは、メモリ電力状態のエントリ及び/又はイグジットが自律的であるか又はOSPMからの明示的なトリガーを必要とするかにかかわらず、メモリ電力状態について提供されるべきである。)
【0051】
OSPMがメモリ電力ノードをメモリ電力状態の内外にアクティブに遷移させることを、全てのメモリ電力管理状態が必要としているとは限らない。プラットフォームは、エントリ遷移及びイグジット遷移の観点からハードウェアで十分にハンドリングされるメモリ電力状態を実装することができる。そのような十分に自律的な状態では、状態にエントリする決定は、対応するメモリ領域の利用に基づいてハードウェアが行うことができ、メモリ電力状態をイグジットする決定は、対応するメモリ領域を対象としたメモリアクセスに応答して開始することができる。
【0052】
そのような自律的なメモリ電力状態をハンドリングする際のOSPMソフトウェアの役割は、ハードウェアが電力を効果的に節減することを可能にするために、可能であれば、そのようなメモリ領域の使用を明け渡すことである。OSPMが開始した他の動作は、これらの自律的に電力管理される領域をサポートするのに必要とされない。しかしながら、これは、OSPMがMPSTコマンドインターフェースを介して自律的なエントリメモリ電力状態への状態遷移を明示的に開始した場合には、エラーではない。プラットフォームは、コマンドを受理して、その状態に直ちにエントリすることができる。この場合、プラットフォームは、SUCCESS(00000b)ステータスを有するコマンド完了を返さなければならない。特定のプラットフォームが明示的なエントリをサポートしていない場合、このプラットフォームは、NOT SUPPORTED(00010b)ステータスを有するコマンド完了を返すべきである。
【0053】
プラットフォームファームウェアは、アロケーション用にOSPMに利用不能であるプラットフォームファームウェア自体の使用に予約されたメモリの領域を有することができる。メモリの全て又は一部がファームウェアによって予約されたメモリノードは、ファームウェアが予約したメモリが使用中であるか否かをOSPMが知らないので、OSPMにとっての問題を提起する場合がある。ファームウェアが予約したメモリが、メモリ電力ノードがメモリ電力状態にエントリすることができることに影響を与える場合、プラットフォームは、このメモリ電力ノードを電力管理することができないことを(電力管理フラグ(詳細は図14参照)をクリアすることによって)OSPMに示すべきである。これによって、OSPMは、そのような範囲をそのメモリ電力最適化から無視することが可能になる。
【0054】
メモリ電力状態テーブル構造体は、指定されたメモリ電力ノードのそれぞれについてアドレス範囲を記述する。OSPMは、MPSTテーブルに設けられたアドレス範囲情報を用い、ファームウェアによって作成されたSRATエントリに基づいて所与のメモリ電力ノードのプロセッサ親和性を導出することができる。OSPMは、メモリ電力ノードの近接ドメインとの関連付けを用いて、メモリアロケーション/解放及びメモリ管理コード内の種々のページリストの操作のためのNUMAノードトポロジを考慮に入れたメモリ融合を実装することができる(実装固有)。メモリ融合のためにOSPMにおいて実装することができるポリシーの一例は、OSPMが、リモートメモリ電力ノードに向かう前にローカルメモリ電力ノードからメモリをアロケートすることを選ぶことができるということである。
【0055】
ホットプラグ接続可能なメモリ領域を、ACPI名前空間におけるメモリデバイスオブジェクトを用いて説明する。これらのメモリデバイスオブジェクトのメモリアドレス範囲は、ACPI_CRSメソッドを用いて定義することができる。メモリ電力状態テーブル(MPST)構造体は、初期化中、ホットプラグステータス(オンライン又はオフライン)とは独立して全てのメモリオブジェクトについて作成される静的な構造体である。OSPMは、ブート中にMPSTテーブルをポピュレートする。ホットプラグ接続可能フラグが、MPSTテーブル内の所与のメモリ電力ノードについてセットされている場合、OSPMは、メモリの物理的存在がACPI通知メカニズムを介して通信されるまで、このノードを用いない。
【0056】
メモリデバイスオブジェクト(例えばMEMO)とMPSTテーブル内の適切なメモリ電力ノードIDとの間の関連付けは、_CRSメソッドを用いて指定されたアドレス範囲と、MPSTテーブルエントリにおいて構成されたアドレス範囲とを比較することによって決定される。この関連付けは、ACPIメモリホットプラグ実装の一部としてOSPMによって識別されるべきである。メモリデバイスが、メモリホットプラグ用の存在するACPIドライバーの一部として「ホッドアド」されたとき、OSPMは、_CRSメソッドのデバイスオブジェクトをスキャンし、所与のメモリオブジェクトの関連するアドレス範囲を取得し、OSPMは、_CRSからのアドレス範囲に基づいて適切なメモリ電力ノードIDを決定し、そのIDを電力管理及びメモリ融合用に有効にする。同様に、メモリが「ホットリムーブ」されたとき、対応するメモリ電力ノードは無効にされる。
【0057】
OS(非仮想化OS又はハイパーバイザー/VMM)は、マイグレーション不可メモリをアロケートすることが必要な場合がある。OSは、(可能な場合には)このメモリを、電力管理可能でないことを示すメモリ電力ノードに対応するメモリ範囲からアロケートすることが推奨される。これによって、OSは、最適な電力節減のために電力管理可能なメモリ電力ノードを最適化することが可能になる。OSは、(フラグによって示されるように)電力管理可能なメモリ電力ノードに属するメモリ範囲が、その範囲が電力管理された状態にエントリすることができることに影響を与えない方法でインターリーブされていると仮定することができる。例えば、そのようなメモリは、キャッシュラインインターリーブされていない。
【0058】
図18は、プラットフォームメモリトポロジテーブル(PMTT)を示している。このテーブルは、システムのメモリトポロジをOSPMに記述する。ここで、このメモリトポロジは、論理的又は物理的なものとすることができる。このトポロジは、最終レベルの物理コンポーネント(例えば、DlMM)に提供することができる。
【0059】
図21は、ACPI PCCを介してMPSTコマンドを処理する処理フロー2102を示す図である。2104において、OSPMは、ターゲットのPOWER NODE ID値を、電力管理されるメモリ電力ノードを指定する適切なPCCサブチャネルのMEMORY_POWER_NODE_IDレジスタに書き込むべきである。2106において、OSPMは、所望のPOWER STATE ID値を、事前に識別されたメモリ電力ノードに所望の電力状態を割り当てるPCCサブチャネルのPOWER STATE IDレジスタに書き込むべきである。
【0060】
2108において、OSPMは、SET(図10Aおよび図10B参照)をPCCサブチャネルのMEMORY_POWER_COMMANDレジスタに書き込む。2110において、OSPMは、EXECUTEコマンド(図9参照)をPCCサブチャネルのPCCコマンドレジスタに書き込む。2112において、OSPMは、ドアベル(Doorbell)レジスタに書き込むことによって「ドアベルを鳴らす」。
【0061】
2114において、プラットフォームは、要求を完了し、コマンドが完了したことを示すSCI(システム制御割り込み)を生成すべきである。2116において、OSPMは、次に、PCCサブチャネルのステータスレジスタを読み出し、コマンドが完了に成功したことを確認すべきである。
【0062】
次に、OSPMが所望のメモリ電力ノードのメモリ電力状態情報を得るための処理フローを説明する。OSPMは、ターゲットのPOWER NODE ID値をPCCサブチャネルのMEMORY POWER_NODE_IDレジスタに書き込む。次に、OSPMは、GET(図10Aおよび図10B参照)をPCCサブチャネルのMEMORY_POWER_COMMANDレジスタに書き込む。次に、OSPMは、PCC EXECUTE(図9を参照されたい)をPCCサブチャネルのPCCコマンドレジスタに書き込む。次に、OSPMは、ドアベルレジスタに書き込むことによってドアベルを鳴らす。プラットフォームは、次に、要求を完了し、コマンドが完了したことを示すSCIを生成すべきである。OSPMは、次に、PCCサブチャネルのステータスレジスタを読み出し、コマンドが完了に成功したことを確認すべきである。最後に、OSPMは、PCCサブチャネルのPOWER_STATE_IDレジスタからPOWER STATEを読み出すことができる。
【0063】
本発明は、説明した実施形態に限定されるものではなく、添付の特許請求の範囲の趣旨及び範囲内における変更形態及び改変形態を用いて実施することができる。図面のうちの幾つかにおいて、信号導体線は線を用いて表されていることを理解されたい。幾つかは、より多くの成分信号パスを示すために太くされている場合があり、成分信号パスの番号を示すために数字ラベルを有する場合があり、及び/又は主な情報の流れる方向を示すために1つ又は複数の端部に矢印を有する場合がある。しかしながら、これは、限定するように解釈されるべきではない。むしろ、そのような追加された細部は、回路の理解をより容易にするために1つ又は複数の例示的な実施形態に関して用いることができる。追加の情報を有するか否かを問わず、表されるいずれの信号線も、複数の方向に進むことができる1つ又は複数の信号を実際に含むことができ、任意の好適なタイプの信号方式を用いて実装することができる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10A
図10B
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21