(57)【特許請求の範囲】
【請求項１】
コンピュータプラットフォームによって実行される方法であって、
前記コンピュータプラットフォームのプロセッサで実行されるオペレーティングシステム（ＯＳ）を使用して、
前記プロセッサのプロセッサアイドル状態を検出する段階と、
前記プロセッサアイドル状態が検出されたことに応じて、前記プロセッサのプロセッサアイドル電力状態への遷移を特定する段階、および、前記プロセッサの前記遷移を示すメッセージを送信する段階と、
前記コンピュータプラットフォームの前記プロセッサ以外のデバイスのアイドル状態を示す情報を供給する段階と、
前記プロセッサの前記遷移を示す前記メッセージおよび前記デバイスの前記アイドル状態を示す前記情報の両方に応じて、
前記コンピュータプラットフォームのシステムアイドル電力状態への遷移を特定する段階とを備え、
前記コンピュータプラットフォームの紐付けロジックが、前記コンピュータプラットフォームの前記システムアイドル電力状態への前記遷移を特定し、
前記紐付けロジックは、パフォーマンスパラメータを示す情報を受信し、
前記コンピュータプラットフォームの前記システムアイドル電力状態への前記遷移を特定する段階は、前記パフォーマンスパラメータを示す前記情報を受信したことに応じて行われる方法。
【請求項２】
前記ＯＳのプロセッサガバナが、前記プロセッサアイドル状態を検出する段階を実行する請求項１に記載の方法。
【請求項３】
システムガバナが、前記プラットフォームの前記プロセッサ以外の前記デバイスの前記アイドル状態を示す情報を供給する段階を実行する請求項１または２に記載の方法。
【請求項４】
前記パフォーマンスパラメータは、予測されるアイドル期間およびサービス品質のうちの１以上を含む請求項１から３の何れか一項に記載の方法。
【請求項５】
前記コンピュータプラットフォームの前記システムアイドル電力状態への前記遷移を特定する段階は、
複数のシステムアイドル電力状態から選択を行う段階を含む請求項１から４の何れか一項に記載の方法。
【請求項６】
１以上のプロセッサによって実行されると、前記１以上のプロセッサに、
オペレーティングシステム（ＯＳ）を使用して、
前記プロセッサのプロセッサアイドル状態を検出する段階と、
前記プロセッサアイドル状態が検出されたことに応じて、前記プロセッサのプロセッサアイドル電力状態への遷移を特定する段階、および、前記プロセッサの前記遷移を示すメッセージを送信する段階と、
コンピュータプラットフォームの前記プロセッサ以外のデバイスのアイドル状態を示す情報を供給する段階と、
前記プロセッサの前記遷移を示す前記メッセージおよび前記デバイスの前記アイドル状態を示す前記情報の両方に応じて、
前記コンピュータプラットフォームのシステムアイドル電力状態への遷移を特定する段階とを実行させ、
前記コンピュータプラットフォームの紐付けロジックが、前記コンピュータプラットフォームの前記システムアイドル電力状態への前記遷移を特定し、
前記紐付けロジックは、パフォーマンスパラメータを示す情報を受信し、
前記コンピュータプラットフォームの前記システムアイドル電力状態への前記遷移を特定することは、前記パフォーマンスパラメータを示す前記情報を受信したことに応じて行われるプログラム。
【請求項７】
前記ＯＳのプロセッサガバナが、前記プロセッサアイドル状態を検出する段階を実行する請求項６に記載のプログラム。
【請求項８】
システムガバナが、前記プラットフォームの前記プロセッサ以外の前記デバイスの前記アイドル状態を示す情報を供給する段階を実行する請求項６または７に記載のプログラム。
【請求項９】
前記パフォーマンスパラメータは、予測されるアイドル期間およびサービス品質のうちの１以上を含む請求項６から８の何れか一項に記載のプログラム。
【請求項１０】
前記サービス品質は、レイテンシ許容値を含む請求項９に記載のプログラム。
【請求項１１】
前記コンピュータプラットフォームの前記システムアイドル電力状態への前記遷移を特定する段階は、
複数のシステムアイドル電力状態から選択を行う段階を含む請求項６から１０の何れか一項に記載のプログラム。
【請求項１２】
前記複数のシステムアイドル電力状態から選択を行う段階は、
第１システムアイドル電力状態に関連付けられた１以上のメトリックスに基づいて、前記第１システムアイドル電力状態へと遷移する好機を示す情報を検出する段階を含む請求項１１に記載のプログラム。
【請求項１３】
前記１以上のメトリックスは、レイテンシおよび遷移コストを含む請求項１２に記載のプログラム。
【請求項１４】
前記複数のシステムアイドル電力状態から選択を行う段階は、さらに、
前記第１システムアイドル電力状態へと遷移する好機を示す前記情報を検出したことに応じて、
前記第１システムアイドル電力状態への遷移が、前記コンピュータプラットフォームの共有リソースの必要とされる利用を妨げるかを特定する段階を含む請求項１２または１３に記載のプログラム。
【請求項１５】
プロセッサのプロセッサアイドル状態を検出し、前記プロセッサアイドル状態が検出されたことに応じて、前記プロセッサのプロセッサアイドル電力状態への遷移を特定し、前記プロセッサの前記遷移を示すメッセージを送信する第１ロジックと、
コンピュータプラットフォームの前記プロセッサ以外のデバイスのアイドル状態を検出し、前記デバイスの検出された前記アイドル状態を示す情報を供給する第２ロジックと、
前記プロセッサの前記遷移を示す前記メッセージおよび前記デバイスの前記アイドル状態を示す前記情報の両方に応じて、前記コンピュータプラットフォームのシステムアイドル電力状態への遷移を特定する第３ロジックとを備え、
前記第２ロジックは、システムガバナを含み、
前記システムガバナは、パフォーマンスパラメータを示す情報を受信し、
前記コンピュータプラットフォームの前記システムアイドル電力状態への前記遷移を特定することは、前記パフォーマンスパラメータを示す前記情報を受信したことに応じて行われる装置。
【請求項１６】
前記第１ロジックは、前記プロセッサで実行されるオペレーティングシステム（ＯＳ）のプロセッサガバナを含む請求項１５に記載の装置。
【請求項１７】
前記システムガバナが、電力管理ユニットに存在する請求項１５または１６に記載の装置。
【請求項１８】
前記パフォーマンスパラメータは、予測されるアイドル期間およびサービス品質のうちの１以上を含む請求項１５から１７の何れか一項に記載の装置。
【請求項１９】
前記サービス品質は、レイテンシ許容値を含む請求項１８に記載の装置。
【請求項２０】
前記第３ロジックが、前記システムアイドル電力状態への前記コンピュータプラットフォームの前記遷移を特定することは、前記第３ロジックが、複数のシステムアイドル電力状態から選択を行うことを含む請求項１５から１９の何れか一項に記載の装置。
【請求項２１】
プロセッサのプロセッサアイドル状態を検出し、前記プロセッサアイドル状態が検出されたことに応じて、前記プロセッサのプロセッサアイドル電力状態への遷移を特定し、前記プロセッサの前記遷移を示すメッセージを送信する第１ロジックと、
コンピュータプラットフォームの前記プロセッサ以外のデバイスのアイドル状態を検出し、前記デバイスの検出された前記アイドル状態を示す情報を供給する第２ロジックと、
前記プロセッサの前記遷移を示す前記メッセージおよび前記デバイスの前記アイドル状態を示す前記情報の両方に応じて、前記コンピュータプラットフォームのシステムアイドル電力状態への遷移を特定する第３ロジックとを備え、
前記第２ロジックは、システムガバナを含み、
前記システムガバナは、パフォーマンスパラメータを示す情報を受信し、
前記コンピュータプラットフォームの前記システムアイドル電力状態への前記遷移を特定することは、前記パフォーマンスパラメータを示す前記情報を受信したことに応じて行われるシステム。
【請求項２２】
前記第１ロジックは、前記プロセッサで実行されるオペレーティングシステム（ＯＳ）のプロセッサガバナを含む請求項２１に記載のシステム。
【請求項２３】
前記システムガバナは、電力管理ユニットに存在する請求項２１または２２に記載のシステム。
【請求項２４】
前記第３ロジックが、前記システムアイドル電力状態への前記コンピュータプラットフォームの前記遷移を特定することは、前記第３ロジックが、複数のシステムアイドル電力状態から選択を行うことを含む請求項２１から２３の何れか一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は概して、コンピュータプラットフォームのデバイスの電源管理に関する。より詳細には、実施形態は、プラットフォームにおける一のプロセッサ電力状態遷移を、プラットフォームの他の電力状態遷移と紐付けする方法を提供する。
【背景技術】
【０００２】
既存のコンピュータプラットフォーム、オペレーティングシステム（ＯＳ）は、例えば、アドバンスド・コンフィグレーション・アンド・パワー・インターフェイス（ＡＣＰＩ）のような特定のプロセッサに固有の様々な電力管理技術をサポートしている。例えば、現在のＯＳ電力管理（ＯＳＰＭ）メカニズムは、プラットフォームプロセッサコアを、Ｃ６電力ステートのようなプロセッサ固有のアイドルプロセッサ電力状態へと遷移させることができる。
【０００３】
自立的デバイス電力管理の導入により、このようなコンピュータプラットフォームが、対応するプラットフォームデバイスに対するデバイス固有の電力状態間の遷移を独立して管理する様々な種類のデバイスのドライバに依存するようになってきている。
【０００４】
しかしながら、今まで、プラットフォームのプロセッサが特定のプロセッサ固有の電力状態に遷移することは、プラットフォームのその他の種類のデバイスの対応するデバイス固有の電力状態への遷移することとは、無関係に行われていた。例えば、既存のＯＳ電力管理（ＯＳＰＭ）メカニズムは、同じプラットフォーム上のプロセッサ電力状態遷移と別の電力状態遷移との関連付けを容易に行えるようにしておらず、別の電力状態とは、例えば、プロセッサでない類のプラットフォームデバイスのような、別の電力状態の遷移である。
【０００５】
このように電力管理の判断を別々に行い、更に、対応する別のプラットフォーム状態遷移を行うことにより、例えば、プロセッサ固有の電力状態遷移と別の（プロセッサ以外の）デバイス電力状態遷移とに関して、既存のコンピュータプラットフォーム電力技術は、コンピュータプラットフォーム全体としての視点からより効率的な電力状態を得る可能性を考えていない。
【０００６】
以下、本発明の様々な実施形態を、添付の図面を参照して例示し、本発明は添付の図面によって限定されない。
【図面の簡単な説明】
【０００７】
【図１】一実施形態に係る電力管理を実装するシステムの選択された一部の要素を例示したブロック図である。
【図２】一実施形態に係るシステム電力状態遷移を実行するためのシステムオンチップの選択された一部の要素を例示したブロック図である。
【図３】一実施形態に係る、プロセッサ電力状態遷移と別の電力状態遷移とを紐付けるプラットフォームの一部の選択された要素を例示したブロック図である。
【図４】一実施形態に係る、プラットフォームのシステム電力状態遷移を特定する方法の選択された一部の要素を示したブロック図である。
【発明を実施するための形態】
【０００８】
実施形態は、プラットフォームのプロセッサのプロセッサ固有の電力状態遷移と、同じプラットフォーム上の１以上の別のデバイスの電力状態遷移とを紐付けする様々な技術を提供する。電力状態遷移を紐付けすることにより、より効率的なプラットフォーム全体の電力状態を認識および実装する機会を提供できる。
【０００９】
一実施形態では、プラットフォームの電力管理機能は、例えば、プラットフォームのプロセッサで実行されるＯＳのプロセッサガバナ（governor）によって提供される。プロセッサガバナは、ＯＳを実行するプロセッサガバナのアイドル状態を検出してもよい、および、応答してもよい。例えば、現在プロセッサがアイドル状態となっているまたはアイドル状態になることが予想されることが示されると、プロセッサガバナは、例えば、Ｃ６（または低電力ステート）へのプロセッサの遷移を開始してもよい。プロセッサのアイドル状態が示されたことに対するプロセッサガバナの応答として、プロセッサ固有の電力状態遷移がその一部であるプラットフォーム全体のシステム電力状態遷移の開始が含まれてもよい。
【００１０】
これに限定するわけではなく、例示として、プロセッサガバナは、プラットフォームのシステムガバナに、プロセッサがプロセッサアイドル電力状態に入ったことを通知してもよい。システムガバナは、例えば、プロセッサ以外のプラットフォームの１以上のデバイスに固有の電力状態情報を特定する機能を含んでもよい。これに替えてまたは加えて、システムガバナは、例えば、特定されたデバイス固有の電力状態情報に基づいて、デバイス固有の電力状態遷移を実装する１以上のデバイスドライバまたは同様なロジックを含んでもよい、または、このようなデバイスドライバもしくはロジックにアクセスしてもよい。
【００１１】
一実施形態では、プラットフォームは、プロセッサのプロセッサ固有電力状態への遷移と、１以上の別のプラットフォームデバイスが対応するデバイス固有の電力状態への遷移とを紐付けする紐付けロジックを含む。例えば、紐付けロジックは、複数のプラットフォームデバイスの対応するデバイス電力状態の遷移を含むプラットフォーム全体のシステム電力状遷移が利用可能であると特定された場合に、このような紐付けを実行してもよい。
【００１２】
図１には、特定の実施形態に係るコンピュータシステム１００の選択された要素が示されている。システム１００は、プラットフォーム１０５の１以上の構成要素に電力を様々に供給する電源１５５を有するプラットフォーム１０５を備える。様々な実施形態の範囲はこの点に関して限定されないが、プラットフォーム１０５は、パーソナルコンピュータ（ＰＣ）、パーソナルデジタルアシスタント（ＰＤＡ）、インターネット機器、携帯電話、ラップトップコンピュータ、タブレットデバイス、モバイルユニット、無線通信デバイスおよび／または電力管理を実装するためのメカニズムを含むその他のコンピュータデバイスを含んでもよい。
【００１３】
図示した実施形態によれば、プラットフォーム１０５は、例えば、メモリ１２５およびシステムインターコネクト１３５のような１以上のその他の構成要素と直接または間接的に接続されるプロセッシングユニット１１０を含んでもよい。メモリ１２５は、ダイナミックアクセスメモリ（ＤＲＡＭ）、不揮発性メモリ等を含んでもよい。一例では、メモリ１２５は、プロセッシングユニット１１０によって実行されてもよいソフトウェアプログラムを格納してもよい。これに加えてまたは替えて、プロセッシングユニット１１０は、例えば、メモリ１２５または別の記憶デバイスに格納された基本入出力システム（ＢＩＯＳ）命令１２０にアクセス可能であってもよい。
【００１４】
プロセッシングユニット１１０は、１以上のアドレスおよび／またはデータバスを介して、プラットフォーム１０５の構成要素に様々に接続されていてもよい。このようなバスに加えて、またはバス以外の接続を使用して、プロセッシングユニット１１０を接続してもよい。例えば、異なる実施形態では、１以上の専用データおよび／または制御ライン、クロスバー等を使用して、プロセッシングユニット１１０をメモリ１２５またはその他のデバイスに接続してもよい。
【００１５】
上記したように、プロセッシングユニット１１０は、図示しないオペレーティングシステム（ＯＳ）を実行する１以上のコア１１５を含んでもよい。様々な実施形態では、ＯＳの実行は、電源１５５によって分配される電力の管理を様々に提供するべく、例えば、アドバンスド・コンフィグレーション・アンド・パワー・インターフェイス（ＡＣＰＩ）および／またはオペレーティングシステム電力管理（ＯＳＰＭ）コードのような、１以上の機能を実装してもよい。加えて、プロセッシングユニット１１０は、例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ）等のキャッシュメモリ（図示せず）、または、内部に構築された様々な種類のメモリを含んでもよい。
【００１６】
インターコネクト１３５は、データおよび／または制御メッセージの交換を行えるように、プラットフォーム１０５の様々な構成要素を互いに接続してもよい。限定することを意図せず、一例として、インターコネクト１３５は、イーサーネット（登録商標）インターフェース、ユニバーサルシリアルバス（ＵＳＢ）インターフェース、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）インターフェース等のうちの１以上を含んでもよい。これに加えてまたは替えて、インターコネクト１３５は、接続される様々な構成要素を制御する回路を表してもよい。例えば、インターコネクト１３５は、Ｉ／Ｏ制御ハブ、プラットフォーム制御ハブ、メモリ制御ハブ等のうちの１以上を含んでもよい。
【００１７】
特定の実施形態の様々な特徴を例示するべく、図示するインターコネクト１３５は、プロセッサユニット１１０を、プラットフォーム１０５において情報を受信するべく入力デバイス１３０に接続し、プラットフォーム１０５から情報を送信するべく出力デバイス１４０に接続し、プラットフォーム１０５においてデータを格納するべく記憶デバイス１４５に接続する。限定することを意図せず、一例として、入力デバイス１３０および出力デバイス１４０のうちの一方または両方は、キーボード、キーパッド、マウス、タッチパッド、タッチスクリーン、ディスプレイ、生体認証機能を有するデバイス等のうちの１以上を含んでもよい。記憶デバイス１４５は、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、コンパクトディスク（ＣＤ）ドライブ、デジタル多用途ディスク（ＤＶＤ）ドライブ、および／または、その他のコンピュータ媒体入出力（Ｉ／Ｏ）デバイスのうちの１以上を含んでもよい。一実施形態では、入力デバイス１３０、出力デバイス１４０および記憶デバイス１４５のうちの１以上が、プラットフォーム１０５の外側に存在しプラットフォーム１５０と接続されてもよく、例えば、プラットフォーム１０５の周辺の様々なデバイスとして存在してもよい。
【００１８】
様々な実施形態では、プラットフォーム１０５の、更なるまたは別の様々なデバイス、回路ブロック等をプロセッシングユニット１１０に接続してもよい。また、プラットフォーム１０５の特定のアーキテクチャ、例えば、プロセッシングユニット１１０に対して、プラットフォーム１０５のデバイス、回路ブロック等の相対的な構成は、特定の実施形態に限定されない。
【００１９】
図示の実施形態では、システム１００は、ネットワーク１６０へ接続することにより、別のデバイスとデータをやり取りしてもよい。例えば、プラットフォーム１０５は、ネットワーク１６０とネットワークトラフィックを交換するネットワークインターフェースデバイス１５０を含んでもよい。ネットワーク接続は、イーサーネット（登録商標）接続、デジタル加入者線（ＤＳＬ）、電話回線、同軸ケーブル等の任意の種類のネットワーク接続を含んでもよい。ネットワーク１６０は、インターネット、電話回線、ケーブル回線等であってもよく、また、ＩＥＥＥ８０２．１１関連規格の１以上を含むＩＥＥＥ規格８０２．１１、１９９９に準拠する無線ネットワーク、無線メトロポリタンエリアネットワーク（ＭＡＮ）のためのＩＥＥＥ８０２．１６規格に準拠する無線ネットワーク等であってもよい。
【００２０】
一実施形態例では、プロセッシングユニット１１０、例えば、プロセッシングユニット１１０のプロセッシングコア１１５は、異なる時間に２つ以上のプロセッサ電力状態で動作してもよい。プラットフォーム１０５は、プロセッサコア１１５のプロセッサ電力状態間遷移をサポートする、開始するまたは実装するハードウェアおよび／またはソフトウェア手段を提供してもよい。
【００２１】
図２には、一実施形態に係る、コンピュータプラットフォームのシステム電力状態の遷移を実装するためのシステムオンチップ（ＳｏＣ）２００の選択された一部の要素が示されている。ＳｏＣ２００は、例えば、プロセッサ電力状態遷移を１以上の別のプラットフォームデバイスの別の電力状態遷移と紐付けする電力管理メカニズムに関係するプラットフォーム１０５の一連のデバイスの全てまたは一部を含んでもよい。
【００２２】
ＳｏＣ２００は、少なくとも１つのプロセッサコア２１０を有するＣＰＵ２０５のような１以上のプロセッサを含んでもよい。別の実施形態では、ＣＰＵ２０５は、プラットフォームの１以上のＳｏＣの外側に存在してもよく、例えば、別個のシングルコアＣＰＵ  ＩＣチップまたはマルチコアＣＰＵ  ＩＣチップ内に存在してもよい。プロセッサコア２１０は、ＳｏＣ２００の外側または内部に位置する構成要素を含む１以上のその他のプラットフォームデバイスに様々に接続されてもよい。
【００２３】
ＳｏＣ２００は、ＣＰＵ２０５、ＳｏＣ２００の１以上のその他のコンポーネントデバイス、および／または、ＳｏＣ２００に接続された１以上のその他のプラットフォームデバイス（図示せず）に電力管理を提供してもよい。例えば、プロセッサコア２１０は、ＯＳ電力管理（ＯＳＰＭ）機能を提供するＯＳを実行してもよい。これに替えてまたは加えて、ＳｏＣ２００は、ＳｏＣ２００に接続されたプラットフォームデバイス（図示せず）および／またはＳｏＣ２００のデバイスの電力特性を監視および／または制御するべく、データおよび／または制御メッセージを様々に検出、判断または供給する電力管理ユニット（ＰＭＵ）２２０を含んでもよい。例えば、ＰＭＵ２２５は、コア２１０および／または１以上のプラットフォームデバイスの電力管理のためのＰＭＵ状態情報２２５を受信、生成またはアクセスしてもよい。一実施形態では、プロセッサコア２１０の電力管理は、ＳｏＣ２００の１以上の別のデバイスの電力管理と紐付けされてもよく、および／または、プロセッサコア２１０と関連して様々に動作するＳｏＣ２００の外側に存在する１以上のプラットフォームデバイスの電力管理と紐付けされてもよい。
【００２４】
このような電力管理を、プラットフォームデバイスの様々な組み合わせに拡張してもよい。これに限定することを意図せず一例として、ＳｏＣ２００は、グラフィックスデータのレンダリング、計算またはその他の処理を実行する回路またはその他のロジックを有するグラフィックモジュール２４０を含んでもよい。これに替えてまたは加えて、ＳｏＣ２００は、例えば、プラットフォーム間でやり取りされるビデオデータを処理するビデオエンコードモジュール２４５および／またはビデオデコードモジュール２５５を含んでもよい。これに替えてまたは加えて、ＳｏＣ２００は、例えば、ＳｏＣ２００のディスプレイポート２６５を介して、ビデオ情報をディスプレイに供給するインターフェース、ドライバまたはその他の回路／ロジックを有するディスプレイモジュール２５０を含んでもよい。さらに、ＳｏＣ２００は、これに替えてまたは加えて、ＳｏＣ２００が存在するプラットフォームのデータ記憶デバイスへのアクセスを管理する回路またはその他のロジックを含むメモリコントローラ２１５を含んでもよい。
【００２５】
これに替えてまたは加えて、ＳｏＣ２００は、クロック、電力、データ、制御またはその他の信号を送受信する１以上の手段を含んでもよい。これに限定することを意図せず一例として、ＳｏＣ２００は、様々なコンポーネントデバイスへと１以上のクロック信号を受信、処理および／または分配するＳｏＣ２００のための位相ロックループ（ＰＬＬ）モジュール２３０を含んでもよい。ＳｏＣ２００は、回路を低電力状態から遷移させるウェイクアップイベントを示す入力信号を検出するための回路またはロジックを有するウェイクアップモジュール２３５を含んでもよい。これに替えてまたは加えて、様々な実施形態では、ＳｏＣ２００は、クラウドデータ管理インターフェース（ｃＤＭＩ）２６０、ダブルデータレート（ＤＤＲ）Ｉ／Ｏインターフェース２７０、ディスプレイポート２６５、および／または、ＳｏＣ２００が、クロック、電力、データ、制御またはその他の信号を送受信するための更なるまたは別の手段の組み合わせを含んでもよい。
【００２６】
様々な実施形態において、プロセッサコア２１０に接続されたＳｏＣ２００の構成要素の一部または全ては、プラットフォームの１以上のＳｏＣとは別に存在してもよい。また、ここで示されたＳｏＣ２００に接続された別の構成要素の組み合わせおよび／または構成は一例に過ぎず、別の実施形態では、ＳｏＣ２００は、プロセッサコア２１０に接続された１以上の更なるまたは別の構成要素の様々な組み合わせを含んでもよい。
【００２７】
図３には、一実施形態に係る、システム電力状態間を移動させるプラットフォーム３００の選択された要素が示されている。プラットフォーム３００は、例えば、プラットフォーム１０５の機能の全てまたは一部を含んでもよい。一実施形態では、図３に示すデバイスの全てまたは一部は、例えば、ＳｏＣ２００のような１つのＳｏＣに存在してもよい。
【００２８】
プラットフォーム３００は、例えば、プロセッサ３１５およびメモリ３２０を使用して実行を行なうＯＳ３０５を備えてもよい。ＯＳ３０５は、例えば、プロセッサ３１５の電力状態を支配するべく動作するＯＳ命令の一連の実行である、プロセッサガバナ３１０を含んでもよい。一実施形態では、プロセッサガバナ３１０は、プロセッサ３１５の１以上のプロセッサアイドル状態を評価、特定または検出してもよい。これに限定することを意図せず一例として、プロセッサガバナ３１０は、リナックス（登録商標）ＯＳのＣＰＵＩＤＬＥガバナルーチンのような機能を少なくとも実装してもよい。これに替えてまたは加えて、プロセッサガバナ３１０は、例えば、２０１０年４月５日にリリースされたアドバンスド・コンフィグレーション・アンド・パワー・インターフェイス（ＡＣＰＩ）リビジョン４．０ａのようなＡＣＰＩ規格に従って、プロセッサのアイドル状態を検出および応答するその他のＯＳ電力管理（ＯＳＰＭ）技術を使用してもよい。
【００２９】
これに限定することを意図せず一例として、プロセッサガバナ３１５は、現在のプロセッサのアイドル状態のレベル（および／またはタイプ）、プロセッサアイドル状態の変化率、将来予測されるプロセッサのアイドル状態、将来予測されるプロセッサアイドル状態の変化率等を計算、その通知を受信または検出するべく、実行を行ってもよい。プロセッサのアイドル状態の検出は、プロセッサの対応するロード状態を検出することを含むことは明らかである。
【００３０】
例えば、ＯＳ３０５は、ＯＳ３０５が実行する次のオペレーション、スレッド等を管理するスケジューラ（図示せず）を含んでもよい、または、このようなスケジューラにアクセスしてもよい。プロセッサガバナ３１０は、ＯＳ３０５のスケジューラが、準備されたオペレーションまたはスレッドが実行にスケジュールされていない状態が存在するまたはこのような状態が予測されると判断したことを検出してもよい。
【００３１】
現在のまたは将来予測されるプロセッサのアイドル状態の検出に基づいて、プロセッサガバナ３１０はこのアイドル状態が、プロセッサ３１５を、例えば、Ｃ６（または低いプロセッサ電力状態）のようなプロセッサアイドル電力状態のような特定のプロセッサ固有電力状態に遷移させる好機であると判断してもよい。このような好機が発見されると、プロセッサガバナ３１０は、ＯＳのＣステートドライバに信号で通知することにより、または、例えば現在のＡＣＰＩメカニズムに従ってプロセッサをアイドル状態にする様々な技術により、このような電力状態遷移を開始させてもよい。
【００３２】
一実施形態では、プロセッサ３１５のアイドル状態が検出されたことへの応答は、プロセッサガバナ３１０がシステム電力状態遷移を開始することを含んでもよく、システム電力状態遷移には、プロセッサ３１５のプロセッサ電力状態遷移が一要素として含まれる。
【００３３】
これに限定することを意図せず一例として、プロセッサガバナ３１０の機能を実行すると、プロセッサ３１５が、例えば、Ｃ６またはその他のプロセッサアイドル電力状態のような特定のプロセッサ電力状態に入ったことを示すメッセージ３２５をプロセッサ３１５に生成させてもよい。
【００３４】
メッセージ３２５は、例えば、プラットフォーム３００のシステムガバナ３３０内の紐付けロジック３５５によって受信されてもよく、システムガバナ３３０は、プロセッサ３１５以外のプラットフォーム３００の１以上のデバイスのデバイス固有電力管理を実装するハードウェアおよび／またはソフトウェア手段を含む。これに限定することを意図せず一例として、システムガバナ３３０は、別のプラットフォームデバイス３４０ａ、…、３４０ｎのうちの１つ以上と接続されて、または、プラットフォーム状態情報にアクセス可能であって、プラットフォームデバイス３４０ａ、…、３４０ｎのうちの１以上が、アイドルスタンバイシステム電力状態に十分な活動休止レベルにある、または、活動休止レベルに入ることが予測されるかを判断してもよい。システムガバナ３３０は、例えば、スクリーンセイバタイムアウト、ネットワークスタック非活動状態、現在の実行アプリケーションの下で実行されているサブプロセスの非活動状態の通知、または、個々のデバイスについてのプラットフォーム非活動状態を示す様々な更なるまたは別の情報を取得してもよい。様々な実施形態において、紐付けロジック３５５は、システムガバナ３００の外側の電力管理手段に存在してもよい。
【００３５】
一実施形態において、システムガバナ３３０は、ＯＳ３０５で実行される機能であｔる。これに替えてまたは加えて、システムガバナ３３０は、例えば、ＰＭＵ２２０のような電力管理ユニットのような、別のプラットフォーム電力管理ロジックによって、ＯＳ３０５の外側で実装されてもよい。システムマネージャ３３０が、プロセッサ固有の電力管理機能またはＯＳ３０５のその他の電力管理機能に密接に接続されてもよい。例えば、システムマネージャ３３０は、ＯＳ３０５と直接電力管理通信を行うための専用チャネルおよび／またはプロトコルを含む、または、アクセスを有してもよい。一実施形態において、システムガバナ３３０は、様々なタイミングでどのようなシステム電力状態にプラットフォーム３００が入るかを判断するのに使用されるプラットフォーム３００のためのメトリックについての可視性を有する。さらに、システムガバナ３３０は、複数の異なるシステムアイドル状態をサポートする粒度レベルを実装する電力管理機能を有してもよい。
【００３６】
メッセージ３２５およびプラットフォーム３００の別の１以上のプラットフォームデバイスに関してシステムガバナ３３０が検出したその他の状態情報に基づいて、紐付けロジック３３０は、プロセッサ３１５がプロセッサアイドル電力状態に入ることが、更なるデバイス固有の電力状態遷移の好機であるか特定してもよく、例えば、プラットフォーム３００全体の統合システム電力状態遷移の実装をサポートしてもよい。上記のようなシステム電力状態遷移が特定されると、紐付けロジック３３０は、システムガバナ３３０に含まれるメカニズム（図示せず）またはシステムガバナ３３０にアクセス可能なメカニズム、例えば、１以上のデバイスドライバ、クロックゲーティングロジック、パワーゲーティングロジック、ＰＭＵ等に指示して、システム電力状態遷移を実装させてもよい。この指示には例えば、システムガバナ３３０が制御信号３４５を送信して、電源３３５から１以上のプラットフォームデバイス３４０ａ、…、３４０ｎへの、電圧、電流またはその他の信号の供給３５０を、レベル／周波数等を調整して、制御してもよい。
【００３７】
図４には、一実施形態に係る、コンピュータプラットフォームの電力状態遷移を特定する方法４００の選択された要素が示されている。方法４００は、例えば、プラットフォーム３００によって実行されてもよい。より詳細には、方法４００は、ＯＳ３０５、システムガバナ３３０および紐付けロジック３５５（システムガバナ３３０に含まれてもよい、または、外側に設けられていてもよい）のような対応する機能を提示するプラットフォームエンティティによって実行されてもよい。
【００３８】
方法４００において、ＯＳのプロセッサガバナは、段階４１０において、ＯＳを実行するプロセッサのアイドル状態を検出してもよい。プロセッサアイドル状態を検出したことに応じて、段階４２０において、プロセッサガバナは、プロセッサのプロセッサアイドル電力状態を特定してもよい。さらに、プロセッサアイドル状態の検出は、プロセッサガバナが、プロセッサがプロセッサアイドル電力状態へと遷移したと判断したことを示すメッセージを送信させることを含んでもよい。
【００３９】
プロセッサガバナの上記のオペレーションに関連して、方法４００は、段階４３０において、システムガバナが、プロセッサ以外のプラットフォームデバイスのアイドル状態を検出することを含んでもよい。様々な実施形態はこれに限定されず、段階４３０での検出が、オペレーション４１０、４２０に関連して発生してもよい。段階４４０において、紐付けロジックは、検出されたデバイスのアイドル状態を示す情報、および、プロセッサがプロセッサアイドル電力状態へと遷移したと判断されたことを示すメッセージを受信してもよい。
【００４０】
プロセッサがプロセッサアイドル電力状態へと遷移したと断されたことを示すメッセージおよびデバイスのアイドル状態を示す情報に基づいて、方法４００は、段階４５０において、プラットフォームのシステム電力状態遷移を特定してもよい。
【００４１】
一実施形態において、システム電力状態遷移を特定することは、複数のアイドルスタンバイシステム電力状態のうちの１つから、遷移するべき望ましいシステム電力状態を選択することを含んでもよい。本明細書で使用されている、アイドルスタンバイシステム電力状態とは、プラットフォームデバイスそれぞれに対する同時電力状態の組み合わせを指し、組み合わせは、例えば、プラットフォームＣＰＵの特定のプロセッサコアのようなプラットフォームプロセッサに固有のアイドル電力状態を含む。
【００４２】
以下の表１は、一実施形態に係る、２つのアイドルスタンバイシステム電力状態それぞれに対するコンポーネントデバイスの電力状態のリストが示されている。
【００４３】
様々なアイドルスタンバイシステム電力状態に対するコンポーネント電力状態
【表１】
0005697284.tif 000002
【００４４】
様々な実施形態では、更なるまたは表とは異なるアイドルスタンバイシステム電力状態が実装されてもよいことは明らかである。
【００４５】
段階４５０における特定は、複数のアイドルスタンバイシステム電力状態の候補のそれぞぞれが、１以上の対応する性能利点および／または決定と関連付けられている条件に基づいてもよい。例えば、特定のアイドルスタンバイシステム電力状態を実装すると、特定の省電力が得られるが、同時に、特定の電力状態に入ることをおよび／またはその電力から回復するのに遅延（レイテンシ）が発生する。
【００４６】
一実施形態において、段階４５０における特定では、電力状態遷移のレイテンシが大きくない、または、性能制限を破ることのないような、最も大きな省電力効果が得られるシステム電力状態を探索してもよい。これに限定することを意図せず一例として、紐付けロジックは、例えば、プロセッサガバナまたはシステムガバナから、プロセッサまたはその他のプラットフォームデバイスについて予測されるアイドル状態の存在期間を特定してもよい。予測されるアイドル状態の存在期間とは、例えば、特定のプラットフォームデバイスが扱う次のオペレーションの準備ができると予測されるまでの期間を指す。一実施形態において、予測されるアイドル状態の存在期間は、許容できないアイドルスタンバイシステム電力状態を排除するべく、電力状態エントリ（またはリカバリ）レイテンシと比較されてもよい、または、このレイテンシに基づいて予測されるアイドル状態の存在期間を評価してもよい。
【００４７】
段階４５０の特定することを実装する別レベルのポリシーとして、残りの、許容されるアイドルスタンバイシステム電力状態が、プラットフォームリソースへの必要なアクセスを妨げることなく、遷移可能かを判断することを含んでもよい。例えば、特定のシステム電力状態への遷移が、ある共有されたプラットフォームリソース（例えば、特定の電圧レール、ＰＬＬ等）の管理に影響を与える場合には、紐付けロジックは、このようなリソースを供給するプラットフォームデバイスが、共有されたリソースアクセスへの影響が許容されるような適切な電力状態にあるのを確実にしてもよい。共有プラットフォームリソースへのアクセスに対する制限として受けいれられないものの１つとして、１以上の更なるシステム電力状態を除外してもよい。
【００４８】
段階４５０の特定することを実装する別のレベルのポリシーとして、残りの可能性のあるシステム電力状態が、デバイス固有のサービス品質（ＱｏＳ）要件を破ることがないか判断することを含んでもよい。受けいれられないと特定されなかったシステム電力状態が残っている場合には、紐付けロジックは、例えば、比較して最も省電力降下の大きなシステム電力状態を選択することにより、そのシステム電力状態への遷移を特定してもよい。
【００４９】
コンピュータプラットフォーム電力管理のための技術およびアーキテクチャについて説明された。上記の説明では、本発明の特徴を十分に理解できるよう説明することを目的として、数多くの詳細事項が述べられている。しかしながら、これらの特定の詳細事項がなくとも、特定の実施形態を実施可能であるということは、当業者にとって明らかである。また、開示の特徴を不明確にしない目的から、構造およびデバイスはブロック図で示されている。
【００５０】
本明細書において、本発明の「一実施形態」または「ある実施形態」とは、実施形態に関連する特定の特徴、構造および特性が、少なくとも本発明の実施形態の一つに含まれていることを意味する。したがって、本明細書中の様々な箇所で使用されている「一実施形態において」という表現は、必ずしも同一の実施形態を示していない。
【００５１】
上記の詳細な説明の一部は、コンピュータメモリ内のデータビットまたは２値デジタル信号に対するオペレーションの記号表記およびアルゴリズムの形式で表される。これらのアルゴリズム的描写および表現は、データ処理技術を扱う当業者によって使用される手法であり、これによって、別の当業者に仕事の内容を伝達する場合がある。本明細書に示されたアルゴリズムは、概して、所望の結果に導く作用またはオペレーションの首尾一貫したシーケンスと考えられ、その段階には、物理量の物理的操作が含まれる。必ずしも常にではないが、通常、これらの量は、電子信号または磁気信号の形態を有しており、保存、変換、合成、比較およびその他の操作が可能である。主に共通の用法として、これらの信号を、時に簡便のため、ビット、値、要素、シンボル、文字、言葉、数字等として称している。
【００５２】
しかしながら、これら全ての言葉および同様な言葉は、適切な物理量と結びつけられており、これらの物理量に適用された単なる便利な標号ではない。特に明記されない限り、以下の説明で明らかになるように、明細書中で使用されている言葉、例えば、「Ｐｒｏｃｅｓｓｉｎｇ（処理）」、「ｃｏｍｐｕｔｉｎｇ（演算）」、「ｃａｌｃｕｌａｔｉｎｇ（計算）」、「ｄｅｔｅｒｍｉｎｉｎｇ（判断）」等の言葉は、コンピュータシステム、または物理量で表されるデータを操作および／または変換する同様な電子演算装置のオペレーションおよび／またはプロセスを指す。例えば、コンピュータシステムのレジスタおよび／またはメモリ内の電子的量を、コンピュータシステム内のメモリ、レジスタまたはその他の情報記憶層装置内、または、送信デバイス内の同様な物理量で表される別のデータへと変換するオペレーションを指す。
【００５３】
特定の実施形態は、明細書に記載されたオペレーションを実行する装置に関する。この装置は、必要な目的のために特に構築されてもよく、または、コンピュータに格納されるコンピュータプログラムによって選択的に駆動されるまたは再設定される汎用コンピュータを含んでもよい。このようなコンピュータプログラムは、コンピュータ可読記憶媒体に格納されてもよく、記憶媒体としては、特にこれに限定されないが、フロッピー（登録商標）ディスク、光ディスク、ＣＤ−ＲＯＭ、磁気光学ディスク、リードオンリーメモリ（ＲＯＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）およびスタティックランダムアクセスメモリ（ＳＲＡＭ）のようなランダムアクセスメモリ（ＲＡＭ）、消去可能−プログラム可能リードオンリーメモリ（ＥＰＲＯＭ）、電気的消去可能−プログラム可能リードオンリーメモリ（ＥＥＰＲＯＭ）、または、電気的命令を格納するのに適したその他の種類の媒体が含まれ、これら媒体はそれぞれ、コンピュータシステムバスに接続される。
【００５４】
本明細書に示されたアルゴリズムおよびディスプレイは、特定のコンピュータまたはその他の装置に本質的に関連しているのではない。本明細書に記載された技術に従って、プログラムを使用して様々な汎用システムを使用してもよい、または、必要とされる方法の段階を実行するのに専用の装置を構築するのが便利な場合もある。これら様々なシステムに必要とされる構造は、本明細書の記載から明らかであろう。また、特定の実施形態は、特定のプログラミング言語を参照して説明されたものではない。上記に示した実施形態を実装する技術として、様々なプログラミング言語を使用できることは明らかである。
【００５５】
上記に加えて、特許請求の範囲内において、開示された実施形態および実装形態に様々な改良が可能であることは明らかである。したがって、本明細書に示される図面および例は一例に過ぎず、本発明を限定するものではない。本発明の範囲は、添付の特許請求の範囲によってのみ限定される。
【図１】
0005697284.tif 000003
【図２】
0005697284.tif 000004
【図３】
0005697284.tif 000005
【図４】
0005697284.tif 000006