(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5697284
(24)【登録日】2015年2月20日
(45)【発行日】2015年4月8日
(54)【発明の名称】コンピュータプラットフォームのシステム電力状態を遷移させる方法、装置およびシステム
(51)【国際特許分類】
G06F 1/32 20060101AFI20150319BHJP
【FI】
G06F1/00 332B
【請求項の数】24
【全頁数】15
(21)【出願番号】特願2013-546191(P2013-546191)
(86)(22)【出願日】2011年12月8日
(65)【公表番号】特表2014-501987(P2014-501987A)
(43)【公表日】2014年1月23日
(86)【国際出願番号】US2011063907
(87)【国際公開番号】WO2012087593
(87)【国際公開日】20120628
【審査請求日】2013年6月20日
(31)【優先権主張番号】3083/DEL/2010
(32)【優先日】2010年12月23日
(33)【優先権主張国】IN
(73)【特許権者】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】ムラリダ、ラジーヴ ディ.
(72)【発明者】
【氏名】シシャドリ、ハリナラヤナン
(72)【発明者】
【氏名】フレミング、ブルース エル.
(72)【発明者】
【氏名】ルドラムニ、ヴィシュウェシュ エム.
【審査官】
田川 泰宏
(56)【参考文献】
【文献】
特開2003−131766(JP,A)
【文献】
特開平11−085335(JP,A)
【文献】
特表2009−505306(JP,A)
【文献】
特開平09−128106(JP,A)
【文献】
特表2007−511808(JP,A)
【文献】
特表2008−511915(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 1/26,32
(57)【特許請求の範囲】
【請求項1】
コンピュータプラットフォームによって実行される方法であって、
前記コンピュータプラットフォームのプロセッサで実行されるオペレーティングシステム(OS)を使用して、
前記プロセッサのプロセッサアイドル状態を検出する段階と、
前記プロセッサアイドル状態が検出されたことに応じて、前記プロセッサのプロセッサアイドル電力状態への遷移を特定する段階、および、前記プロセッサの前記遷移を示すメッセージを送信する段階と、
前記コンピュータプラットフォームの前記プロセッサ以外のデバイスのアイドル状態を示す情報を供給する段階と、
前記プロセッサの前記遷移を示す前記メッセージおよび前記デバイスの前記アイドル状態を示す前記情報の両方に応じて、
前記コンピュータプラットフォームのシステムアイドル電力状態への遷移を特定する段階とを備え、
前記コンピュータプラットフォームの紐付けロジックが、前記コンピュータプラットフォームの前記システムアイドル電力状態への前記遷移を特定し、
前記紐付けロジックは、パフォーマンスパラメータを示す情報を受信し、
前記コンピュータプラットフォームの前記システムアイドル電力状態への前記遷移を特定する段階は、前記パフォーマンスパラメータを示す前記情報を受信したことに応じて行われる方法。
【請求項2】
前記OSのプロセッサガバナが、前記プロセッサアイドル状態を検出する段階を実行する請求項1に記載の方法。
【請求項3】
システムガバナが、前記プラットフォームの前記プロセッサ以外の前記デバイスの前記アイドル状態を示す情報を供給する段階を実行する請求項1または2に記載の方法。
【請求項4】
前記パフォーマンスパラメータは、予測されるアイドル期間およびサービス品質のうちの1以上を含む請求項1から3の何れか一項に記載の方法。
【請求項5】
前記コンピュータプラットフォームの前記システムアイドル電力状態への前記遷移を特定する段階は、
複数のシステムアイドル電力状態から選択を行う段階を含む請求項1から4の何れか一項に記載の方法。
【請求項6】
1以上のプロセッサによって実行されると、前記1以上のプロセッサに、
オペレーティングシステム(OS)を使用して、
前記プロセッサのプロセッサアイドル状態を検出する段階と、
前記プロセッサアイドル状態が検出されたことに応じて、前記プロセッサのプロセッサアイドル電力状態への遷移を特定する段階、および、前記プロセッサの前記遷移を示すメッセージを送信する段階と、
コンピュータプラットフォームの前記プロセッサ以外のデバイスのアイドル状態を示す情報を供給する段階と、
前記プロセッサの前記遷移を示す前記メッセージおよび前記デバイスの前記アイドル状態を示す前記情報の両方に応じて、
前記コンピュータプラットフォームのシステムアイドル電力状態への遷移を特定する段階とを実行させ、
前記コンピュータプラットフォームの紐付けロジックが、前記コンピュータプラットフォームの前記システムアイドル電力状態への前記遷移を特定し、
前記紐付けロジックは、パフォーマンスパラメータを示す情報を受信し、
前記コンピュータプラットフォームの前記システムアイドル電力状態への前記遷移を特定することは、前記パフォーマンスパラメータを示す前記情報を受信したことに応じて行われるプログラム。
【請求項7】
前記OSのプロセッサガバナが、前記プロセッサアイドル状態を検出する段階を実行する請求項6に記載のプログラム。
【請求項8】
システムガバナが、前記プラットフォームの前記プロセッサ以外の前記デバイスの前記アイドル状態を示す情報を供給する段階を実行する請求項6または7に記載のプログラム。
【請求項9】
前記パフォーマンスパラメータは、予測されるアイドル期間およびサービス品質のうちの1以上を含む請求項6から8の何れか一項に記載のプログラム。
【請求項10】
前記サービス品質は、レイテンシ許容値を含む請求項9に記載のプログラム。
【請求項11】
前記コンピュータプラットフォームの前記システムアイドル電力状態への前記遷移を特定する段階は、
複数のシステムアイドル電力状態から選択を行う段階を含む請求項6から10の何れか一項に記載のプログラム。
【請求項12】
前記複数のシステムアイドル電力状態から選択を行う段階は、
第1システムアイドル電力状態に関連付けられた1以上のメトリックスに基づいて、前記第1システムアイドル電力状態へと遷移する好機を示す情報を検出する段階を含む請求項11に記載のプログラム。
【請求項13】
前記1以上のメトリックスは、レイテンシおよび遷移コストを含む請求項12に記載のプログラム。
【請求項14】
前記複数のシステムアイドル電力状態から選択を行う段階は、さらに、
前記第1システムアイドル電力状態へと遷移する好機を示す前記情報を検出したことに応じて、
前記第1システムアイドル電力状態への遷移が、前記コンピュータプラットフォームの共有リソースの必要とされる利用を妨げるかを特定する段階を含む請求項12または13に記載のプログラム。
【請求項15】
プロセッサのプロセッサアイドル状態を検出し、前記プロセッサアイドル状態が検出されたことに応じて、前記プロセッサのプロセッサアイドル電力状態への遷移を特定し、前記プロセッサの前記遷移を示すメッセージを送信する第1ロジックと、
コンピュータプラットフォームの前記プロセッサ以外のデバイスのアイドル状態を検出し、前記デバイスの検出された前記アイドル状態を示す情報を供給する第2ロジックと、
前記プロセッサの前記遷移を示す前記メッセージおよび前記デバイスの前記アイドル状態を示す前記情報の両方に応じて、前記コンピュータプラットフォームのシステムアイドル電力状態への遷移を特定する第3ロジックとを備え、
前記第2ロジックは、システムガバナを含み、
前記システムガバナは、パフォーマンスパラメータを示す情報を受信し、
前記コンピュータプラットフォームの前記システムアイドル電力状態への前記遷移を特定することは、前記パフォーマンスパラメータを示す前記情報を受信したことに応じて行われる装置。
【請求項16】
前記第1ロジックは、前記プロセッサで実行されるオペレーティングシステム(OS)のプロセッサガバナを含む請求項15に記載の装置。
【請求項17】
前記システムガバナが、電力管理ユニットに存在する請求項15または16に記載の装置。
【請求項18】
前記パフォーマンスパラメータは、予測されるアイドル期間およびサービス品質のうちの1以上を含む請求項15から17の何れか一項に記載の装置。
【請求項19】
前記サービス品質は、レイテンシ許容値を含む請求項18に記載の装置。
【請求項20】
前記第3ロジックが、前記システムアイドル電力状態への前記コンピュータプラットフォームの前記遷移を特定することは、前記第3ロジックが、複数のシステムアイドル電力状態から選択を行うことを含む請求項15から19の何れか一項に記載の装置。
【請求項21】
プロセッサのプロセッサアイドル状態を検出し、前記プロセッサアイドル状態が検出されたことに応じて、前記プロセッサのプロセッサアイドル電力状態への遷移を特定し、前記プロセッサの前記遷移を示すメッセージを送信する第1ロジックと、
コンピュータプラットフォームの前記プロセッサ以外のデバイスのアイドル状態を検出し、前記デバイスの検出された前記アイドル状態を示す情報を供給する第2ロジックと、
前記プロセッサの前記遷移を示す前記メッセージおよび前記デバイスの前記アイドル状態を示す前記情報の両方に応じて、前記コンピュータプラットフォームのシステムアイドル電力状態への遷移を特定する第3ロジックとを備え、
前記第2ロジックは、システムガバナを含み、
前記システムガバナは、パフォーマンスパラメータを示す情報を受信し、
前記コンピュータプラットフォームの前記システムアイドル電力状態への前記遷移を特定することは、前記パフォーマンスパラメータを示す前記情報を受信したことに応じて行われるシステム。
【請求項22】
前記第1ロジックは、前記プロセッサで実行されるオペレーティングシステム(OS)のプロセッサガバナを含む請求項21に記載のシステム。
【請求項23】
前記システムガバナは、電力管理ユニットに存在する請求項21または22に記載のシステム。
【請求項24】
前記第3ロジックが、前記システムアイドル電力状態への前記コンピュータプラットフォームの前記遷移を特定することは、前記第3ロジックが、複数のシステムアイドル電力状態から選択を行うことを含む請求項21から23の何れか一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
実施形態は概して、コンピュータプラットフォームのデバイスの電源管理に関する。より詳細には、実施形態は、プラットフォームにおける一のプロセッサ電力状態遷移を、プラットフォームの他の電力状態遷移と紐付けする方法を提供する。
【背景技術】
【0002】
既存のコンピュータプラットフォーム、オペレーティングシステム(OS)は、例えば、アドバンスド・コンフィグレーション・アンド・パワー・インターフェイス(ACPI)のような特定のプロセッサに固有の様々な電力管理技術をサポートしている。例えば、現在のOS電力管理(OSPM)メカニズムは、プラットフォームプロセッサコアを、C6電力ステートのようなプロセッサ固有のアイドルプロセッサ電力状態へと遷移させることができる。
【0003】
自立的デバイス電力管理の導入により、このようなコンピュータプラットフォームが、対応するプラットフォームデバイスに対するデバイス固有の電力状態間の遷移を独立して管理する様々な種類のデバイスのドライバに依存するようになってきている。
【0004】
しかしながら、今まで、プラットフォームのプロセッサが特定のプロセッサ固有の電力状態に遷移することは、プラットフォームのその他の種類のデバイスの対応するデバイス固有の電力状態への遷移することとは、無関係に行われていた。例えば、既存のOS電力管理(OSPM)メカニズムは、同じプラットフォーム上のプロセッサ電力状態遷移と別の電力状態遷移との関連付けを容易に行えるようにしておらず、別の電力状態とは、例えば、プロセッサでない類のプラットフォームデバイスのような、別の電力状態の遷移である。
【0005】
このように電力管理の判断を別々に行い、更に、対応する別のプラットフォーム状態遷移を行うことにより、例えば、プロセッサ固有の電力状態遷移と別の(プロセッサ以外の)デバイス電力状態遷移とに関して、既存のコンピュータプラットフォーム電力技術は、コンピュータプラットフォーム全体としての視点からより効率的な電力状態を得る可能性を考えていない。
【0006】
以下、本発明の様々な実施形態を、添付の図面を参照して例示し、本発明は添付の図面によって限定されない。
【図面の簡単な説明】
【0007】
【
図1】一実施形態に係る電力管理を実装するシステムの選択された一部の要素を例示したブロック図である。
【
図2】一実施形態に係るシステム電力状態遷移を実行するためのシステムオンチップの選択された一部の要素を例示したブロック図である。
【
図3】一実施形態に係る、プロセッサ電力状態遷移と別の電力状態遷移とを紐付けるプラットフォームの一部の選択された要素を例示したブロック図である。
【
図4】一実施形態に係る、プラットフォームのシステム電力状態遷移を特定する方法の選択された一部の要素を示したブロック図である。
【発明を実施するための形態】
【0008】
実施形態は、プラットフォームのプロセッサのプロセッサ固有の電力状態遷移と、同じプラットフォーム上の1以上の別のデバイスの電力状態遷移とを紐付けする様々な技術を提供する。電力状態遷移を紐付けすることにより、より効率的なプラットフォーム全体の電力状態を認識および実装する機会を提供できる。
【0009】
一実施形態では、プラットフォームの電力管理機能は、例えば、プラットフォームのプロセッサで実行されるOSのプロセッサガバナ(governor)によって提供される。プロセッサガバナは、OSを実行するプロセッサガバナのアイドル状態を検出してもよい、および、応答してもよい。例えば、現在プロセッサがアイドル状態となっているまたはアイドル状態になることが予想されることが示されると、プロセッサガバナは、例えば、C6(または低電力ステート)へのプロセッサの遷移を開始してもよい。プロセッサのアイドル状態が示されたことに対するプロセッサガバナの応答として、プロセッサ固有の電力状態遷移がその一部であるプラットフォーム全体のシステム電力状態遷移の開始が含まれてもよい。
【0010】
これに限定するわけではなく、例示として、プロセッサガバナは、プラットフォームのシステムガバナに、プロセッサがプロセッサアイドル電力状態に入ったことを通知してもよい。システムガバナは、例えば、プロセッサ以外のプラットフォームの1以上のデバイスに固有の電力状態情報を特定する機能を含んでもよい。これに替えてまたは加えて、システムガバナは、例えば、特定されたデバイス固有の電力状態情報に基づいて、デバイス固有の電力状態遷移を実装する1以上のデバイスドライバまたは同様なロジックを含んでもよい、または、このようなデバイスドライバもしくはロジックにアクセスしてもよい。
【0011】
一実施形態では、プラットフォームは、プロセッサのプロセッサ固有電力状態への遷移と、1以上の別のプラットフォームデバイスが対応するデバイス固有の電力状態への遷移とを紐付けする紐付けロジックを含む。例えば、紐付けロジックは、複数のプラットフォームデバイスの対応するデバイス電力状態の遷移を含むプラットフォーム全体のシステム電力状遷移が利用可能であると特定された場合に、このような紐付けを実行してもよい。
【0012】
図1には、特定の実施形態に係るコンピュータシステム100の選択された要素が示されている。システム100は、プラットフォーム105の1以上の構成要素に電力を様々に供給する電源155を有するプラットフォーム105を備える。様々な実施形態の範囲はこの点に関して限定されないが、プラットフォーム105は、パーソナルコンピュータ(PC)、パーソナルデジタルアシスタント(PDA)、インターネット機器、携帯電話、ラップトップコンピュータ、タブレットデバイス、モバイルユニット、無線通信デバイスおよび/または電力管理を実装するためのメカニズムを含むその他のコンピュータデバイスを含んでもよい。
【0013】
図示した実施形態によれば、プラットフォーム105は、例えば、メモリ125およびシステムインターコネクト135のような1以上のその他の構成要素と直接または間接的に接続されるプロセッシングユニット110を含んでもよい。メモリ125は、ダイナミックアクセスメモリ(DRAM)、不揮発性メモリ等を含んでもよい。一例では、メモリ125は、プロセッシングユニット110によって実行されてもよいソフトウェアプログラムを格納してもよい。これに加えてまたは替えて、プロセッシングユニット110は、例えば、メモリ125または別の記憶デバイスに格納された基本入出力システム(BIOS)命令120にアクセス可能であってもよい。
【0014】
プロセッシングユニット110は、1以上のアドレスおよび/またはデータバスを介して、プラットフォーム105の構成要素に様々に接続されていてもよい。このようなバスに加えて、またはバス以外の接続を使用して、プロセッシングユニット110を接続してもよい。例えば、異なる実施形態では、1以上の専用データおよび/または制御ライン、クロスバー等を使用して、プロセッシングユニット110をメモリ125またはその他のデバイスに接続してもよい。
【0015】
上記したように、プロセッシングユニット110は、図示しないオペレーティングシステム(OS)を実行する1以上のコア115を含んでもよい。様々な実施形態では、OSの実行は、電源155によって分配される電力の管理を様々に提供するべく、例えば、アドバンスド・コンフィグレーション・アンド・パワー・インターフェイス(ACPI)および/またはオペレーティングシステム電力管理(OSPM)コードのような、1以上の機能を実装してもよい。加えて、プロセッシングユニット110は、例えば、スタティックランダムアクセスメモリ(SRAM)等のキャッシュメモリ(図示せず)、または、内部に構築された様々な種類のメモリを含んでもよい。
【0016】
インターコネクト135は、データおよび/または制御メッセージの交換を行えるように、プラットフォーム105の様々な構成要素を互いに接続してもよい。限定することを意図せず、一例として、インターコネクト135は、イーサーネット(登録商標)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、ペリフェラルコンポーネントインターコネクト(PCI)インターフェース等のうちの1以上を含んでもよい。これに加えてまたは替えて、インターコネクト135は、接続される様々な構成要素を制御する回路を表してもよい。例えば、インターコネクト135は、I/O制御ハブ、プラットフォーム制御ハブ、メモリ制御ハブ等のうちの1以上を含んでもよい。
【0017】
特定の実施形態の様々な特徴を例示するべく、図示するインターコネクト135は、プロセッサユニット110を、プラットフォーム105において情報を受信するべく入力デバイス130に接続し、プラットフォーム105から情報を送信するべく出力デバイス140に接続し、プラットフォーム105においてデータを格納するべく記憶デバイス145に接続する。限定することを意図せず、一例として、入力デバイス130および出力デバイス140のうちの一方または両方は、キーボード、キーパッド、マウス、タッチパッド、タッチスクリーン、ディスプレイ、生体認証機能を有するデバイス等のうちの1以上を含んでもよい。記憶デバイス145は、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、コンパクトディスク(CD)ドライブ、デジタル多用途ディスク(DVD)ドライブ、および/または、その他のコンピュータ媒体入出力(I/O)デバイスのうちの1以上を含んでもよい。一実施形態では、入力デバイス130、出力デバイス140および記憶デバイス145のうちの1以上が、プラットフォーム105の外側に存在しプラットフォーム150と接続されてもよく、例えば、プラットフォーム105の周辺の様々なデバイスとして存在してもよい。
【0018】
様々な実施形態では、プラットフォーム105の、更なるまたは別の様々なデバイス、回路ブロック等をプロセッシングユニット110に接続してもよい。また、プラットフォーム105の特定のアーキテクチャ、例えば、プロセッシングユニット110に対して、プラットフォーム105のデバイス、回路ブロック等の相対的な構成は、特定の実施形態に限定されない。
【0019】
図示の実施形態では、システム100は、ネットワーク160へ接続することにより、別のデバイスとデータをやり取りしてもよい。例えば、プラットフォーム105は、ネットワーク160とネットワークトラフィックを交換するネットワークインターフェースデバイス150を含んでもよい。ネットワーク接続は、イーサーネット(登録商標)接続、デジタル加入者線(DSL)、電話回線、同軸ケーブル等の任意の種類のネットワーク接続を含んでもよい。ネットワーク160は、インターネット、電話回線、ケーブル回線等であってもよく、また、IEEE802.11関連規格の1以上を含むIEEE規格802.11、1999に準拠する無線ネットワーク、無線メトロポリタンエリアネットワーク(MAN)のためのIEEE802.16規格に準拠する無線ネットワーク等であってもよい。
【0020】
一実施形態例では、プロセッシングユニット110、例えば、プロセッシングユニット110のプロセッシングコア115は、異なる時間に2つ以上のプロセッサ電力状態で動作してもよい。プラットフォーム105は、プロセッサコア115のプロセッサ電力状態間遷移をサポートする、開始するまたは実装するハードウェアおよび/またはソフトウェア手段を提供してもよい。
【0021】
図2には、一実施形態に係る、コンピュータプラットフォームのシステム電力状態の遷移を実装するためのシステムオンチップ(SoC)200の選択された一部の要素が示されている。SoC200は、例えば、プロセッサ電力状態遷移を1以上の別のプラットフォームデバイスの別の電力状態遷移と紐付けする電力管理メカニズムに関係するプラットフォーム105の一連のデバイスの全てまたは一部を含んでもよい。
【0022】
SoC200は、少なくとも1つのプロセッサコア210を有するCPU205のような1以上のプロセッサを含んでもよい。別の実施形態では、CPU205は、プラットフォームの1以上のSoCの外側に存在してもよく、例えば、別個のシングルコアCPU ICチップまたはマルチコアCPU ICチップ内に存在してもよい。プロセッサコア210は、SoC200の外側または内部に位置する構成要素を含む1以上のその他のプラットフォームデバイスに様々に接続されてもよい。
【0023】
SoC200は、CPU205、SoC200の1以上のその他のコンポーネントデバイス、および/または、SoC200に接続された1以上のその他のプラットフォームデバイス(図示せず)に電力管理を提供してもよい。例えば、プロセッサコア210は、OS電力管理(OSPM)機能を提供するOSを実行してもよい。これに替えてまたは加えて、SoC200は、SoC200に接続されたプラットフォームデバイス(図示せず)および/またはSoC200のデバイスの電力特性を監視および/または制御するべく、データおよび/または制御メッセージを様々に検出、判断または供給する電力管理ユニット(PMU)220を含んでもよい。例えば、PMU225は、コア210および/または1以上のプラットフォームデバイスの電力管理のためのPMU状態情報225を受信、生成またはアクセスしてもよい。一実施形態では、プロセッサコア210の電力管理は、SoC200の1以上の別のデバイスの電力管理と紐付けされてもよく、および/または、プロセッサコア210と関連して様々に動作するSoC200の外側に存在する1以上のプラットフォームデバイスの電力管理と紐付けされてもよい。
【0024】
このような電力管理を、プラットフォームデバイスの様々な組み合わせに拡張してもよい。これに限定することを意図せず一例として、SoC200は、グラフィックスデータのレンダリング、計算またはその他の処理を実行する回路またはその他のロジックを有するグラフィックモジュール240を含んでもよい。これに替えてまたは加えて、SoC200は、例えば、プラットフォーム間でやり取りされるビデオデータを処理するビデオエンコードモジュール245および/またはビデオデコードモジュール255を含んでもよい。これに替えてまたは加えて、SoC200は、例えば、SoC200のディスプレイポート265を介して、ビデオ情報をディスプレイに供給するインターフェース、ドライバまたはその他の回路/ロジックを有するディスプレイモジュール250を含んでもよい。さらに、SoC200は、これに替えてまたは加えて、SoC200が存在するプラットフォームのデータ記憶デバイスへのアクセスを管理する回路またはその他のロジックを含むメモリコントローラ215を含んでもよい。
【0025】
これに替えてまたは加えて、SoC200は、クロック、電力、データ、制御またはその他の信号を送受信する1以上の手段を含んでもよい。これに限定することを意図せず一例として、SoC200は、様々なコンポーネントデバイスへと1以上のクロック信号を受信、処理および/または分配するSoC200のための位相ロックループ(PLL)モジュール230を含んでもよい。SoC200は、回路を低電力状態から遷移させるウェイクアップイベントを示す入力信号を検出するための回路またはロジックを有するウェイクアップモジュール235を含んでもよい。これに替えてまたは加えて、様々な実施形態では、SoC200は、クラウドデータ管理インターフェース(cDMI)260、ダブルデータレート(DDR)I/Oインターフェース270、ディスプレイポート265、および/または、SoC200が、クロック、電力、データ、制御またはその他の信号を送受信するための更なるまたは別の手段の組み合わせを含んでもよい。
【0026】
様々な実施形態において、プロセッサコア210に接続されたSoC200の構成要素の一部または全ては、プラットフォームの1以上のSoCとは別に存在してもよい。また、ここで示されたSoC200に接続された別の構成要素の組み合わせおよび/または構成は一例に過ぎず、別の実施形態では、SoC200は、プロセッサコア210に接続された1以上の更なるまたは別の構成要素の様々な組み合わせを含んでもよい。
【0027】
図3には、一実施形態に係る、システム電力状態間を移動させるプラットフォーム300の選択された要素が示されている。プラットフォーム300は、例えば、プラットフォーム105の機能の全てまたは一部を含んでもよい。一実施形態では、
図3に示すデバイスの全てまたは一部は、例えば、SoC200のような1つのSoCに存在してもよい。
【0028】
プラットフォーム300は、例えば、プロセッサ315およびメモリ320を使用して実行を行なうOS305を備えてもよい。OS305は、例えば、プロセッサ315の電力状態を支配するべく動作するOS命令の一連の実行である、プロセッサガバナ310を含んでもよい。一実施形態では、プロセッサガバナ310は、プロセッサ315の1以上のプロセッサアイドル状態を評価、特定または検出してもよい。これに限定することを意図せず一例として、プロセッサガバナ310は、リナックス(登録商標)OSのCPUIDLEガバナルーチンのような機能を少なくとも実装してもよい。これに替えてまたは加えて、プロセッサガバナ310は、例えば、2010年4月5日にリリースされたアドバンスド・コンフィグレーション・アンド・パワー・インターフェイス(ACPI)リビジョン4.0aのようなACPI規格に従って、プロセッサのアイドル状態を検出および応答するその他のOS電力管理(OSPM)技術を使用してもよい。
【0029】
これに限定することを意図せず一例として、プロセッサガバナ315は、現在のプロセッサのアイドル状態のレベル(および/またはタイプ)、プロセッサアイドル状態の変化率、将来予測されるプロセッサのアイドル状態、将来予測されるプロセッサアイドル状態の変化率等を計算、その通知を受信または検出するべく、実行を行ってもよい。プロセッサのアイドル状態の検出は、プロセッサの対応するロード状態を検出することを含むことは明らかである。
【0030】
例えば、OS305は、OS305が実行する次のオペレーション、スレッド等を管理するスケジューラ(図示せず)を含んでもよい、または、このようなスケジューラにアクセスしてもよい。プロセッサガバナ310は、OS305のスケジューラが、準備されたオペレーションまたはスレッドが実行にスケジュールされていない状態が存在するまたはこのような状態が予測されると判断したことを検出してもよい。
【0031】
現在のまたは将来予測されるプロセッサのアイドル状態の検出に基づいて、プロセッサガバナ310はこのアイドル状態が、プロセッサ315を、例えば、C6(または低いプロセッサ電力状態)のようなプロセッサアイドル電力状態のような特定のプロセッサ固有電力状態に遷移させる好機であると判断してもよい。このような好機が発見されると、プロセッサガバナ310は、OSのCステートドライバに信号で通知することにより、または、例えば現在のACPIメカニズムに従ってプロセッサをアイドル状態にする様々な技術により、このような電力状態遷移を開始させてもよい。
【0032】
一実施形態では、プロセッサ315のアイドル状態が検出されたことへの応答は、プロセッサガバナ310がシステム電力状態遷移を開始することを含んでもよく、システム電力状態遷移には、プロセッサ315のプロセッサ電力状態遷移が一要素として含まれる。
【0033】
これに限定することを意図せず一例として、プロセッサガバナ310の機能を実行すると、プロセッサ315が、例えば、C6またはその他のプロセッサアイドル電力状態のような特定のプロセッサ電力状態に入ったことを示すメッセージ325をプロセッサ315に生成させてもよい。
【0034】
メッセージ325は、例えば、プラットフォーム300のシステムガバナ330内の紐付けロジック355によって受信されてもよく、システムガバナ330は、プロセッサ315以外のプラットフォーム300の1以上のデバイスのデバイス固有電力管理を実装するハードウェアおよび/またはソフトウェア手段を含む。これに限定することを意図せず一例として、システムガバナ330は、別のプラットフォームデバイス340a、…、340nのうちの1つ以上と接続されて、または、プラットフォーム状態情報にアクセス可能であって、プラットフォームデバイス340a、…、340nのうちの1以上が、アイドルスタンバイシステム電力状態に十分な活動休止レベルにある、または、活動休止レベルに入ることが予測されるかを判断してもよい。システムガバナ330は、例えば、スクリーンセイバタイムアウト、ネットワークスタック非活動状態、現在の実行アプリケーションの下で実行されているサブプロセスの非活動状態の通知、または、個々のデバイスについてのプラットフォーム非活動状態を示す様々な更なるまたは別の情報を取得してもよい。様々な実施形態において、紐付けロジック355は、システムガバナ300の外側の電力管理手段に存在してもよい。
【0035】
一実施形態において、システムガバナ330は、OS305で実行される機能であtる。これに替えてまたは加えて、システムガバナ330は、例えば、PMU220のような電力管理ユニットのような、別のプラットフォーム電力管理ロジックによって、OS305の外側で実装されてもよい。システムマネージャ330が、プロセッサ固有の電力管理機能またはOS305のその他の電力管理機能に密接に接続されてもよい。例えば、システムマネージャ330は、OS305と直接電力管理通信を行うための専用チャネルおよび/またはプロトコルを含む、または、アクセスを有してもよい。一実施形態において、システムガバナ330は、様々なタイミングでどのようなシステム電力状態にプラットフォーム300が入るかを判断するのに使用されるプラットフォーム300のためのメトリックについての可視性を有する。さらに、システムガバナ330は、複数の異なるシステムアイドル状態をサポートする粒度レベルを実装する電力管理機能を有してもよい。
【0036】
メッセージ325およびプラットフォーム300の別の1以上のプラットフォームデバイスに関してシステムガバナ330が検出したその他の状態情報に基づいて、紐付けロジック330は、プロセッサ315がプロセッサアイドル電力状態に入ることが、更なるデバイス固有の電力状態遷移の好機であるか特定してもよく、例えば、プラットフォーム300全体の統合システム電力状態遷移の実装をサポートしてもよい。上記のようなシステム電力状態遷移が特定されると、紐付けロジック330は、システムガバナ330に含まれるメカニズム(図示せず)またはシステムガバナ330にアクセス可能なメカニズム、例えば、1以上のデバイスドライバ、クロックゲーティングロジック、パワーゲーティングロジック、PMU等に指示して、システム電力状態遷移を実装させてもよい。この指示には例えば、システムガバナ330が制御信号345を送信して、電源335から1以上のプラットフォームデバイス340a、…、340nへの、電圧、電流またはその他の信号の供給350を、レベル/周波数等を調整して、制御してもよい。
【0037】
図4には、一実施形態に係る、コンピュータプラットフォームの電力状態遷移を特定する方法400の選択された要素が示されている。方法400は、例えば、プラットフォーム300によって実行されてもよい。より詳細には、方法400は、OS305、システムガバナ330および紐付けロジック355(システムガバナ330に含まれてもよい、または、外側に設けられていてもよい)のような対応する機能を提示するプラットフォームエンティティによって実行されてもよい。
【0038】
方法400において、OSのプロセッサガバナは、段階410において、OSを実行するプロセッサのアイドル状態を検出してもよい。プロセッサアイドル状態を検出したことに応じて、段階420において、プロセッサガバナは、プロセッサのプロセッサアイドル電力状態を特定してもよい。さらに、プロセッサアイドル状態の検出は、プロセッサガバナが、プロセッサがプロセッサアイドル電力状態へと遷移したと判断したことを示すメッセージを送信させることを含んでもよい。
【0039】
プロセッサガバナの上記のオペレーションに関連して、方法400は、段階430において、システムガバナが、プロセッサ以外のプラットフォームデバイスのアイドル状態を検出することを含んでもよい。様々な実施形態はこれに限定されず、段階430での検出が、オペレーション410、420に関連して発生してもよい。段階440において、紐付けロジックは、検出されたデバイスのアイドル状態を示す情報、および、プロセッサがプロセッサアイドル電力状態へと遷移したと判断されたことを示すメッセージを受信してもよい。
【0040】
プロセッサがプロセッサアイドル電力状態へと遷移したと断されたことを示すメッセージおよびデバイスのアイドル状態を示す情報に基づいて、方法400は、段階450において、プラットフォームのシステム電力状態遷移を特定してもよい。
【0041】
一実施形態において、システム電力状態遷移を特定することは、複数のアイドルスタンバイシステム電力状態のうちの1つから、遷移するべき望ましいシステム電力状態を選択することを含んでもよい。本明細書で使用されている、アイドルスタンバイシステム電力状態とは、プラットフォームデバイスそれぞれに対する同時電力状態の組み合わせを指し、組み合わせは、例えば、プラットフォームCPUの特定のプロセッサコアのようなプラットフォームプロセッサに固有のアイドル電力状態を含む。
【0042】
以下の表1は、一実施形態に係る、2つのアイドルスタンバイシステム電力状態それぞれに対するコンポーネントデバイスの電力状態のリストが示されている。
【0043】
様々なアイドルスタンバイシステム電力状態に対するコンポーネント電力状態
【表1】
【0044】
様々な実施形態では、更なるまたは表とは異なるアイドルスタンバイシステム電力状態が実装されてもよいことは明らかである。
【0045】
段階450における特定は、複数のアイドルスタンバイシステム電力状態の候補のそれぞぞれが、1以上の対応する性能利点および/または決定と関連付けられている条件に基づいてもよい。例えば、特定のアイドルスタンバイシステム電力状態を実装すると、特定の省電力が得られるが、同時に、特定の電力状態に入ることをおよび/またはその電力から回復するのに遅延(レイテンシ)が発生する。
【0046】
一実施形態において、段階450における特定では、電力状態遷移のレイテンシが大きくない、または、性能制限を破ることのないような、最も大きな省電力効果が得られるシステム電力状態を探索してもよい。これに限定することを意図せず一例として、紐付けロジックは、例えば、プロセッサガバナまたはシステムガバナから、プロセッサまたはその他のプラットフォームデバイスについて予測されるアイドル状態の存在期間を特定してもよい。予測されるアイドル状態の存在期間とは、例えば、特定のプラットフォームデバイスが扱う次のオペレーションの準備ができると予測されるまでの期間を指す。一実施形態において、予測されるアイドル状態の存在期間は、許容できないアイドルスタンバイシステム電力状態を排除するべく、電力状態エントリ(またはリカバリ)レイテンシと比較されてもよい、または、このレイテンシに基づいて予測されるアイドル状態の存在期間を評価してもよい。
【0047】
段階450の特定することを実装する別レベルのポリシーとして、残りの、許容されるアイドルスタンバイシステム電力状態が、プラットフォームリソースへの必要なアクセスを妨げることなく、遷移可能かを判断することを含んでもよい。例えば、特定のシステム電力状態への遷移が、ある共有されたプラットフォームリソース(例えば、特定の電圧レール、PLL等)の管理に影響を与える場合には、紐付けロジックは、このようなリソースを供給するプラットフォームデバイスが、共有されたリソースアクセスへの影響が許容されるような適切な電力状態にあるのを確実にしてもよい。共有プラットフォームリソースへのアクセスに対する制限として受けいれられないものの1つとして、1以上の更なるシステム電力状態を除外してもよい。
【0048】
段階450の特定することを実装する別のレベルのポリシーとして、残りの可能性のあるシステム電力状態が、デバイス固有のサービス品質(QoS)要件を破ることがないか判断することを含んでもよい。受けいれられないと特定されなかったシステム電力状態が残っている場合には、紐付けロジックは、例えば、比較して最も省電力降下の大きなシステム電力状態を選択することにより、そのシステム電力状態への遷移を特定してもよい。
【0049】
コンピュータプラットフォーム電力管理のための技術およびアーキテクチャについて説明された。上記の説明では、本発明の特徴を十分に理解できるよう説明することを目的として、数多くの詳細事項が述べられている。しかしながら、これらの特定の詳細事項がなくとも、特定の実施形態を実施可能であるということは、当業者にとって明らかである。また、開示の特徴を不明確にしない目的から、構造およびデバイスはブロック図で示されている。
【0050】
本明細書において、本発明の「一実施形態」または「ある実施形態」とは、実施形態に関連する特定の特徴、構造および特性が、少なくとも本発明の実施形態の一つに含まれていることを意味する。したがって、本明細書中の様々な箇所で使用されている「一実施形態において」という表現は、必ずしも同一の実施形態を示していない。
【0051】
上記の詳細な説明の一部は、コンピュータメモリ内のデータビットまたは2値デジタル信号に対するオペレーションの記号表記およびアルゴリズムの形式で表される。これらのアルゴリズム的描写および表現は、データ処理技術を扱う当業者によって使用される手法であり、これによって、別の当業者に仕事の内容を伝達する場合がある。本明細書に示されたアルゴリズムは、概して、所望の結果に導く作用またはオペレーションの首尾一貫したシーケンスと考えられ、その段階には、物理量の物理的操作が含まれる。必ずしも常にではないが、通常、これらの量は、電子信号または磁気信号の形態を有しており、保存、変換、合成、比較およびその他の操作が可能である。主に共通の用法として、これらの信号を、時に簡便のため、ビット、値、要素、シンボル、文字、言葉、数字等として称している。
【0052】
しかしながら、これら全ての言葉および同様な言葉は、適切な物理量と結びつけられており、これらの物理量に適用された単なる便利な標号ではない。特に明記されない限り、以下の説明で明らかになるように、明細書中で使用されている言葉、例えば、「Processing(処理)」、「computing(演算)」、「calculating(計算)」、「determining(判断)」等の言葉は、コンピュータシステム、または物理量で表されるデータを操作および/または変換する同様な電子演算装置のオペレーションおよび/またはプロセスを指す。例えば、コンピュータシステムのレジスタおよび/またはメモリ内の電子的量を、コンピュータシステム内のメモリ、レジスタまたはその他の情報記憶層装置内、または、送信デバイス内の同様な物理量で表される別のデータへと変換するオペレーションを指す。
【0053】
特定の実施形態は、明細書に記載されたオペレーションを実行する装置に関する。この装置は、必要な目的のために特に構築されてもよく、または、コンピュータに格納されるコンピュータプログラムによって選択的に駆動されるまたは再設定される汎用コンピュータを含んでもよい。このようなコンピュータプログラムは、コンピュータ可読記憶媒体に格納されてもよく、記憶媒体としては、特にこれに限定されないが、フロッピー(登録商標)ディスク、光ディスク、CD−ROM、磁気光学ディスク、リードオンリーメモリ(ROM)、ダイナミックランダムアクセスメモリ(DRAM)およびスタティックランダムアクセスメモリ(SRAM)のようなランダムアクセスメモリ(RAM)、消去可能−プログラム可能リードオンリーメモリ(EPROM)、電気的消去可能−プログラム可能リードオンリーメモリ(EEPROM)、または、電気的命令を格納するのに適したその他の種類の媒体が含まれ、これら媒体はそれぞれ、コンピュータシステムバスに接続される。
【0054】
本明細書に示されたアルゴリズムおよびディスプレイは、特定のコンピュータまたはその他の装置に本質的に関連しているのではない。本明細書に記載された技術に従って、プログラムを使用して様々な汎用システムを使用してもよい、または、必要とされる方法の段階を実行するのに専用の装置を構築するのが便利な場合もある。これら様々なシステムに必要とされる構造は、本明細書の記載から明らかであろう。また、特定の実施形態は、特定のプログラミング言語を参照して説明されたものではない。上記に示した実施形態を実装する技術として、様々なプログラミング言語を使用できることは明らかである。
【0055】
上記に加えて、特許請求の範囲内において、開示された実施形態および実装形態に様々な改良が可能であることは明らかである。したがって、本明細書に示される図面および例は一例に過ぎず、本発明を限定するものではない。本発明の範囲は、添付の特許請求の範囲によってのみ限定される。