説明

レイテンシガイダンスに基づくプラットフォームのパワーマネジメント

【課題】さまざまなレイテンシガイドラインに基づきプラットフォームの電力を管理する方法を提供する。
【解決手段】プラットフォームのパワーマネジメントコントローラによって、第1の複数のコンポーネントからパワーマネジメントガイドラインを受信する段階と、システムの1つ以上の第2の複数のコンポーネントを管理するパワーマネジメントポリシーを作成する段階と、を備え、前記受信する段階は、前記第1の複数のコンポーネントの複数の最大レイテンシトレランスを受信する段階を含み、前記作成する段階は、前記複数の最大レイテンシトレランスの中から最大のレイテンシトレランスを決定する段階と、前記第2の複数のコンポーネントの1つ以上について決定されるスリープレベルからウェイクアップするのにかかる時間が、前記最大のレイテンシトレランス未満となるように、前記第2の複数のコンポーネントの1つ以上の複数のスリープレベルを決定する。

【発明の詳細な説明】
【技術分野】
【0001】
本開示の実施形態は、パワーマネジメントの分野に関し、より詳しくは、さまざまなレイテンシガイドラインに基づきプラットフォームの電力を管理する方法および装置に関する。
【背景技術】
【0002】
今日の科学技術の世界において、電子デバイスの性能は急速なペースで向上しており、それに伴い消費電力も急速に増大している。消費電力が増すにつれ、デバイスは電力欠乏状態になる、すなわち、ますます電力を消費するようになる。電力を節約すべく、デバイスのプロセッサは、短いアイドル状態の間はスリープモード(例えば、低電力状態)に入ってよい。
【0003】
例えば、ヒューレット・パッカード(登録商標)、インテル(登録商標)、マイクロソフト(登録商標)、フェニックス(登録商標)、および、東芝(登録商標)により共同開発されたACPI(Advanced Configuration and Power Interface)仕様(2005年12月30日にリリースされたバージョン3.0aなど)は、ACPI互換システムにおけるさまざまな電力状態(デバイスの正常なG0/S0動作の間のプロセッサの電力状態C0からC3)を規定する。ACPI仕様によれば、C0状態は、プロセッサの正常な実行状態でありうる。しかしながら、短いアイドル状態の間のC1状態では、プロセッサは、命令を実行することができないが、ほぼ即座に実行状態に戻ることはでき、一方、C3状態(C1に比べてスリープ状態が深く、C1より節電である)では、プロセッサのキャッシュは、あらゆるスヌープも無視して状態を維持しうる。プロセッサは、正常な実行状態(C0)に復帰するのに、C1状態からよりC3状態からのほうが時間がかかる可能性がある。C3状態を含む(例えば、深いスリープ、さらに深いスリープなど)を含む、各状態におけるばらつきもありえ、それによって、プロセッサのスリープ状態の深さ(すなわち、電力を節約するためにプロセッサのどの機能がディセーブルになるか)、および、ウェイクアップにかかる時間に差が生じ得る。
【0004】
ACPI規格により規定される上記を含む従来のパワーマネジメントは、プロセッサに結集された経験則と、オペレーティングシステムにより与えられるガイダンスとに基づき実行されてよく、パワーマネジメントアルゴリズムは、過去のプロセッサアクティビティを観察して未来のアクティビティを予測してよい。例えば、オペレーティングシステムは、CPUの利用を観察してこのガイダンスを提供してよい。これらの要因に基づき、プロセッサは、複数のスリープ状態のうちの1つに入ることができる。プロセッサは、断続的に低電力状態に入ることができるが、ウェイクアップに時間のかかる他のプラットフォームのコンポーネントは、通常そのような低電力状態には入らないことでよりよいパフォーマンスを保証しうる。
【0005】
図1は、アイドル状態になる前のアプリケーション動作中のアクティブ期間における従来技術のコンピューティングシステムのプラットフォーム(ラインA)の総電力消費と、当該コンピューティングシステムの従来のプロセッサ(ラインB)の電力消費とのグラフ表示の一例である。図1を参照すると、プロセッサは、短いアクティブ期間の最大20ワット(W)からアイドル状態のときのほぼ1Wまでその電力を減少させうる。プロセッサがアイドル状態の間、プラットフォームのアイドル電力下限値は、まだ〜9Wであり、プロセッサによるものは、そのうち1W未満であろう。すなわち、コンピューティングシステムにおける残りのプラットフォームコンポーネントは、アイドル状態のプロセッサと同様にスケールダウンしなくてよい。本例のコンピューティングデバイスのプラットフォームアイドル状態において、レイテンシの長い(すなわちスリープ状態からのウェイクアップに時間がかかる)システムリソースの大部分により、まだ約8から10Wの電力を消費し、より優れたパフォーマンスを保証すべく電力を消費し続ける一方で、プロセッサは、アイドル期間中に断続的に適切なスリープ状態に入ってよい。
【図面の簡単な説明】
【0006】
本開示の実施形態が例示的実施形態を用いて説明されるが、限定ではなく、添付の図面では、同様の参照符号は同様の構成要素を示す。
【0007】
【図1】典型的なコンピューティングシステムのプラットフォームの総電力消費と、そのプロセッサの電力消費との典型的なグラフ表示である。
【0008】
【図2】さまざまな実施形態に従うパワーマネジメントシステムのブロック図である。
【0009】
【図3】さまざまな実施形態に従うパワーマネジメントシステムの他のブロック図である。
【0010】
【図4】さまざまな実施形態に従うパワーマネジメント方法のフローチャートである。
【0011】
【図5】さまざま実施形態に従う、Wi−Fiマルチメディア(WMM)電力セーブモードのレイテンシトレランス報告システムを示すフローチャートの一例である。
【0012】
【図6】いくつかの実施形態を実施するのに適切であろう典型的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0013】
例示的実施形態は、レイテンシガイダンスに基づくプラットフォームのパワーマネジメントのための方法および装置を含むが、これらに限定されない。
【0014】
例示的実施形態のさまざまな側面は、当業者が用いる一般的な用語で説明されることにより、それらの内容を他の当業者に伝えるであろう。しかしながら、説明された側面の一部だけを用いても別の実施形態を実施することができるのは当業者にとって明らかであろう。例示的実施形態の完全なる理解をもたらすべく説明する目的で、特定の数、材料、および、構成が記載されている。しかしながら、当業者であれば、特定の詳細がなくても別の実施形態を実施できることは明らかであろう。他の例においては、例示的実施形態をあいまいにすることを避けるべく、よく知られた特徴は省略または簡略化される。
【0015】
さらに、さまざまな動作は、例示的実施形態を理解する上で最も有益な方法で、多数の個別の動作として順に説明される。しかしながら、説明の順序は、必ずこのとおり行われることを意味すると解釈されないものとする。特に、これらの動作は、提示される順序で実行される必要はない。
【0016】
「いくつかの実施形態において」および「さまざまな実施形態において」というフレーズが繰り返し用いられる。これらのフレーズは、通常同じ実施形態を指すものではないが、そうであってもよい。「備える」「有する」および「含む」という用語は、特に説明しない限り、同義である。「Aおよび/またはB」は、「(A)、(B)、または、(AおよびB)」を意味する。「A/B」は、「(A)および/または(B)」と同様の「(A)、(B)、または、(AおよびB)」を意味する。「A、B、および、Cのうちの少なくとも1つは」は、「(A)、(B)、(C)、(AおよびB)、(AおよびC)、(BおよびC)、または、(A、B、および、C)を意味する。「(A)B」は、「(B)または(AB)を意味し、すなわち、Aはオプションである。
【0017】
図2は、さまざまな実施形態におけるパワーマネジメントシステム10のブロック図である。さまざまな実施形態において、パワーマネジメントシステム10は、例えば、ラップトップ、携帯電話、パソコン、パーソナル携帯情報機器、パームトップ、セットトップボックスなどでありうるコンピューティングデバイス、または、他のあらゆるタイプのコンピューティングデバイスで用いられうる。さまざまな実施形態では、パワーマネジメントシステム10は、モバイルコンピューティングデバイスで用いられうる。
【0018】
パワーマネジメントシステム10は、パワーマネジメントコントローラ(PMC)15を有してよい。PMC15は、第1の複数のコンポーネント20、22、26に結合されてよく、コンポーネント20、22、26からパワーマネジメントガイドライン30、32、36をそれぞれ受け取ってよい。さまざまな実施形態では、PMCコントローラは、以下に説明するように情報40を受信してよい。受信されたパワーマネジメントガイドライン30、32、36および/または情報40の少なくとも一部に応じて、PMC15は、コンピューティングデバイスに関連する第2の複数のコンポーネント、および/または、リソース60、62、66の電力を管理するパワーマネジメントポリシー(PMポリシー)50を作成してよい。
【0019】
さまざまな実施形態では、第1の複数のコンポーネント20、22、26は、コンピューティングデバイスに関連する1つ以上のハードウェア/ソフトウェアコンポーネントを含んでよい。さまざまな実施形態では、コンポーネント20、22、26は、例えば、コンピューティングデバイスに結合される外部デバイス、および/または、コンピューティングデバイス内のデバイス/ハードウェアを含んでよく、外部デバイス、および/または、内部デバイス/ハードウェアは、USB(universal serial bus)デバイス(例えば、USB2.0、3.0などのさまざまなUSB規格に準拠するデバイスを含む)、PCI(peripheral component interconnect)デバイス、PCI Express (PCIe)デバイス、ネットワークインターフェースカード、周辺デバイス、プリンタ、スキャナ、ディスクドライブ、カメラ、ネットワークアダプタ、シリアルATA(serial advanced technology attachment)、パラレルATA(parallel advanced technology attachment)などを含むが、これらに限定されない。さまざまな実施形態では、コンポーネント20、22、26は、コンピューティングデバイス内の1つ以上のデバイス/機能を制御する1つ以上のコントローラも含んでよく、当該コントローラは、USBホストコントローラ、メモリコントローラ、イーサネットコントローラ、グラフィックコントローラ、ハードディスクコントローラ(HDD)、オーディオコントローラ、AHCI(Advanced Host Controller Interface)などを含むがこれらに限定されない。さまざまな実施形態では、コンポーネント20、22、26は、コンピューティングデバイス、1つ以上のデバイスドライバ、オペレーティングシステムなどにおいて実行される1つ以上のソフトウェアアプリケーションを含んでもよい。
【0020】
さまざまな実施形態では、コンポーネント20、22、26のそれぞれは、パワーマネジメントガイドライン30、32、36のそれぞれをPMC15に動的に送信してよい。パワーマネジメントガイドラインは、それぞれのコンポーネントの1つ以上のレイテンシパラメータを有してよい。例えば、パワーマネジメントガイドラインは、コンポーネントのレイテンシトレランスを有してよい。さまざまな実施形態では、レイテンシトレランスは、コンポーネントがそのパフォーマンスに悪影響を与えることなく許容しうる最大レイテンシに一部基づいてよい。例えば、コンポーネント20のレイテンシトレランスは、プロセッサが電力を遮断(例えばハードウェア(HW)を一時停止するなど)してもコンポーネント20が耐えることができるその最大レイテンシに少なくとも一部基づいてよく、その一方で、コンピューティングデバイスの1つ以上のコンポーネントは、スリープモードにあり、正常/実行状態(例えばC0)に入ると同時に、コンポーネント20に関連する第1の命令が実行される。さまざまな実施形態では、システムの特定のコンポーネントおよび/または他のコンポーネントがスリープモードから正常/実行状態へと遷移する場合は、コンポーネントのレイテンシトレランスは、コンポーネントがそのパフォーマンスに悪影響を与えることなく許容しうる遅延に一部基づいてよい。
【0021】
さまざまな実施形態では、コンポーネントのPMガイドラインは、1つ以上の他の要素を含んでよく、当該要素は、コンポーネントのサービス品質(QoS)パラメータ、内部経験則のような割込み周波数、入出力(I/O)トラフィックパターン、アイドル期間(すなわち、コンポーネントが次に予定されたタイマー割り込みまでの時間を知っているかどうか)、予測仕事量、および/または、PMポリシー50を作成するPMC15にとって有用でありうる、コンポーネントに関する他のいかなる適切な情報を含むが、これらに限定されない。さまざまな実施形態では、コンポーネント20、22、26の1つ以上は、そのPMガイドラインにおけるコンポーネントのメモリアクセスレイテンシも含んでよい。
【0022】
例えば、さまざまな実施形態では、コンポーネント20、22、26の1つは、オーディオ再生ソフトウェアアプリケーションであってよい。オーディオ再生アプリケーションは、オーディオファイルをアクティブに再生している間は、いかなるレイテンシも許容しなくてよい。しかしながら、オーディオ再生アプリケーションは、アイドル、すなわち、オーディオファイルを受信/再生しないときは、アプリケーションがオーディオファイルの受信を開始する時間と、アプリケーションがデータの喪失を防止するためにオーディオファイルの再生を開始しなければならない時間との差に少なくとも一部基づきうる長いレイテンシを許容しうる。当業者であれば、アプリケーションのレイテンシトレランスは、そのバッファリング能力に一部基づくことが理解できよう。さまざまな実施形態では、アプリケーションは、そのレイテンシトレランスをそのパワーマネジメントガイドラインの一部としてPMC15に動的に送信してよい。したがって、オーディオ再生アプリケーションは、オーディオファイルを再生する間に、ゼロまたは最小レイテンシトレランスをPMC15へと送信し、一方で、アイドル状態の間は、大きいレイテンシトレランスを送信してよい。
【0023】
さまざまな実施形態では、コンポーネントは、アクティブ期間においてドーズしてもよい。例えば、無線LAN(WLAN)クライアントは、IEEE(米国電気電子学会)802.11規格(例えば802.11e−2005年改正)により規定されるように、アイドル状態のときはいつでも節電(ドーズ)状態に入ってよい。WLANクライアントは、アクセスポイント(AP)がクライアントのデータをバッファしうる間は、例えば、IEEE802.11e規格のWi−Fiマルチメディア(WMM)節電モードにより規定される期間、その無線通信をオフにしてよい。これらのドーズ期間は、数ミリ秒オーダー内であってよい。WLANネットワークインターフェースカード(NIC)は、無線通信をオンにすべきときを知っており、WLANクライアントをウェイクアップする、および/または、通信を開始してよい。図5は、本発明のさまざまな実施形態における、WMM節電モードのレイテンシトレランス報告システムの典型的なブロック図を示す。図5に示すように、WLANクライアントがウェイクアップしている場合は、例えば、100マイクロ秒(μ秒)の小さいレイテンシしか許容しなくてよい。しかしながら、ドーズ中は、クライアントは、例えば、約1ミリ秒(m秒)の大きいレイテンシを許容しうる。さまざまな実施形態では、NICは、クライアントのウェイクアップ状態の間に、100μ秒のレイテンシトレランスをそのPMガイドラインの一部としてPMC15(図1)にしかるべく送信してよい。しかしながら、クライアントがドーズ中は、NICは、1m秒のレイテンシトレランスをPMC15へと送信してよい。
【0024】
図2を参照すると、さまざまな実施形態において、PMC15は、パワーマネジメントポリシー50を生成するのに用いられうる情報40も受信してよい。例えば、さまざまな実施形態では、情報40は、コンピューティングデバイス、および/または、プロセッサを含むそのコンポーネントのトラフィックおよびアクティビティパターンにおける経験則を含みうる。さまざまな実施形態における情報40は、当業者に知られる追加の情報、例えば、従来のACPIコンパチブルシステム、または、他の従来の電力制御システムにおける電力管理に必要な情報を含んでよい。さまざまな実施形態では、コンピューティングデバイスのOSおよび/またはプロセッサは、情報40を生成しうる。
【0025】
受信されたパワーマネジメントガイドライン30、32、36、および、情報40の少なくとも一部に応じて、PMC15は、コンピューティングデバイスに関連する第2の複数のコンポーネントおよび/またはリソース60、62、66の電力を管理するためのPMポリシー50を作成してよい。さまざまな実施形態では、第2の複数のコンポーネントおよび/またはリソース60、62、66は、例えば、プロセッサ、電圧調整器、ディスプレイパネル、クロックジェネレータ、フェーズロックドループなどの、コンピューティングデバイスのさまざまなコアコンポーネント、および、プラットフォームコンポーネントを含みうる。さまざまな実施形態では、第1のコンポーネント20、22、26、および、第2の複数のコンポーネントおよび/またはリソース60、62、66は、1つ以上の共通コンポーネントを有してよい。例えば、さまざまな実施形態では、PMC15は、PMガイドラインを受信し、USBホストコントローラ用のPMポリシー50を生成してよい。
【0026】
さまざまな実施形態では、PMポリシー50は、コンポーネント60、62、66の1つ以上を特定し、複数のスリープレベルのうちの1つに入ってよい。例えば、すべてのコンポーネント20、22、26がそれぞれのPMガイドラインにおいて少なくとも1m秒のレイテンシトレランスを特定済みであれば、PMC15は、プロセッサが電力を遮断する、ハードウェア(HW)が一時停止するなどの中断に応じて1つ以上のコンポーネントがそれぞれのスリープレベルからウェイクアップするのに1m秒以上かからないように、第2の複数のコンポーネントおよび/またはリソース60、62、66に複数のスリープレベルの1つに入るよう命じる。同様に、すべてのコンポーネント20、22、26の特定された最大レイテンシトレランスが少なくとも例えば5m秒であった場合、PMポリシー50は、コンポーネントがウェイクアップするのに5m秒以上はかからないようなさらに深いスリープレベルに入るよう、第2の複数のコンポーネントおよび/またはリソース60、62、66の1つ以上に命じる。さまざまな実施形態では、複数の可能なスリープレベルは、ACPI仕様で特定されるC状態、および/または、当業者が想定しうる他のスリープレベルと同様であってよい。すなわち、コンポーネント20、22、26のPMガイドラインにおけるレイテンシトレランスおよび他の情報を知ることにより、PMポリシー50は、レイテンシトレランスが十分高いときはいつでもコンポーネント60、62、66の1つ以上を適切なスリープモードに入らせることができ、それによって、コンポーネント20、22、26のパフォーマンスに悪影響を与えずに節電できるようになる。
【0027】
さまざまな実施形態では、PMポリシー50を作成する間にいくつかの他の要因も考慮されうる。例えば、コンポーネント20、22、26の1つがそのPMガイドラインにおいて、高いQoSパラメータと、例えば100μ秒のレイテンシトレランスとを特定する場合、PMC15は、コンポーネント60、62、66が100μ秒よりかなり前にウェイクアップできるよう、コンポーネントのスリープレベルを決定することにより、高いQoSパラメータを満たしてよい。
【0028】
さまざまな実施形態では、PMC15は、コンポーネント60、62、66のいくつかにスリープモードに入るよう命じる一方で、1つ以上のコンポーネントにはスリープモードに入らないよう(または、異なるスリープモードに入るよう)命じてよい。例えば、コンポーネント60、62、66のうちの2つが電圧調整器およびクロックジェネレータであり、かつ、クロックジェネレータより電圧調整器のほうがウェイクアップに時間がかかる場合、PMC15は、コンポーネント20、22、26から受信した所定のレイテンシトレランスについて、クロックジェネレータの深いスリープレベルに比較して軽いスリープレベルに入るよう(あるいはスリープレベルに全く入らないよう)電圧調整器に命じてよい。しかしながら、コンポーネント20、22、26から受信したレイテンシトレランスが十分高い場合、電圧調整器およびクロックジェネレータはいずれも、PMポリシー50に基づき、深いスリープレベルに入ってよい。
【0029】
さまざまな実施形態では、スリープレベルが深いほど、コンポーネントはさらに機能しなくなり、より節電でき、コンポーネントが正常な実行状態へと(すなわちウェイクアップする)戻るのにはより時間がかかる。
【0030】
さまざまな実施形態では、例えば、クロックジェネレータ、電圧調整器、PLLのいくつかなどの第2の複数のコンポーネントおよび/またはリソース60、62、66は、オン/オフを切り替えられるだけでよい。すなわち、これらのコンポーネント20、22、26のいくつかについては、それらのレイテンシトレランスが十分高い場合には、それらを一時的にオフにしうる単一のスリープレベル(低電力モード)しかなくてよい。したがって、PMポリシー50は、これらのコンポーネントのいくつか/すべてのオン/オフの切り替えを制御してもよい。
【0031】
さまざまな実施形態では、コンポーネント20、22、26は、それぞれのPMガイドラインを連続的にPMC15に送信してよい。あるいは、コンポーネント20、22、26は、それぞれのPMガイドラインを一定の間隔で送信してもよい。さまざまな別の状況設定も可能であり、いくつかのコンポーネントがそれぞれのPMガイドラインを連続的に送信する一方で、残りのコンポーネントは、PMガイドラインを一定の間隔で周期的に送信してよい。さまざまな実施形態では、コンポーネントは、始めにそのPMガイドラインを送信し、当該PMガイドラインに変更があった場合のみ、そのPMガイドラインを再送信する。
【0032】
図3は、本発明のさまざまな実施形態に従うパワーマネジメントシステム100のブロック図である。さまざまな実施形態では、システム100は、入出力(I/O)複合体パワーマネジメントコントローラ(IOPMC)110に結合されたプロセッサ複合体パワーマネジメントコントローラ(PCPMC)105を有してよい。さまざまな実施形態では、PCPMC105は、コンピューティングデバイスの中央処理複合体に配置され、一方、IOPMC110は、コンピューティングデバイスのI/O複合体に配置されてよい。
【0033】
当業者であればただちに理解できるように、図3では2つパワーマネジメントコントローラ(PCPMC105およびIOPMC110)しか示されていないが、さまざまな実施形態では、3つ以上のパワーマネジメントコントローラが存在してよい。例えば、マルチプロセッサ環境では、各処理複合体は、関連するプロセッサ複合体パワーマネジメントコントローラを有してよい。さまざまな実施形態では、単一の処理複合体は、2つ以上のプロセッサ複合体パワーマネジメントコントローラを有してよい。さまざまな実施形態では、パワーマネジメントコントローラは、コンピューティングデバイスの、図3には示されていない他のさまざまな領域に配置されてよい。
【0034】
さまざまな実施形態では、PCPMC105は、複数のソフトウェア(SW)アプリケーション、デバイスドライバ、および/または、オペレーティングシステム(OS)150からPMガイドラインを受信してよい。当業者には理解できるように、150は単一のブロックとして図示されているが、複数のコンポーネントを表してもよい。さまざまな実施形態では、レイテンシトレランスを含むSW/OS PMガイドラインは、レジスタインターフェースを介し、および/または、例えば、ACPI対応C状態インターフェースへの拡張部を介してPCPMC105へと送信されてよい。PMガイドラインは、OSがプロセッサの電力遮断(例えばHWの一時停止)を許容できる最大レイテンシトレランスを含み、一方、スリープ状態では、正常/実行状態に入ると同時に第1の命令が実行される。
【0035】
図3を参照すると、IOPMC110は、複数のデバイス112、114、116、118、複数のリンク122、124、126、128、および/または、複数のサブシステム132、134、136からPMガイドラインを受信してよい。リンクおよび/またはサブシステムは、1つ以上のデバイスをコンピューティングデバイスに結合するために用いられてよい。例えば、デバイス112は、USBデバイスであってよく、対応するサブシステム132はUSBコントローラであってよく、リンク122は、USBリンクであってよく、各自がレイテンシ制約を有してよい。さまざまな実施形態では、複数のデバイス(例えば116および118)は、単一のサブシステムに結合されてよい。さまざまな実施形態では、サブシステム132、134、および/または、136は、USBホストコントローラ、メモリコントローラ、イーサネットコントローラ、または、グラフィックコントローラを含みうるが、これらに限定されない。さまざまな実施形態では、デバイス112、...、118のそれぞれは、パワーマネジメントガイドラインをそれぞれのリンクに送ってよい。さまざまな実施形態では、リンク122、...、128の1つ以上は、リンクパワーマネジメントガイドラインによりデバイスパワーマネジメントガイドラインを強化し、サブシステム132、134、136の1つに送信してよい。
【0036】
サブシステム132、134、136は、それぞれのリンクおよび/またはデバイスから受信したPMガイドラインを考慮してサブシステムPMガイドラインを生成し、それをIOPMC110に送信してよい。例えば、USBデバイス112および関連するUSBコントローラ(サブシステム132)は、1m秒および800μ秒のレイテンシトレランスをそれぞれ有し、USBコントローラは、サブシステムPMガイドラインにおける、2つのレイテンシトレランスの低い方、すなわち、800μ秒を有し、それをIOPMC110に送信してよい。
【0037】
さまざまな実施形態では、デバイス116、118、リンク126、128、および/または、サブシステム136が異なるPMガイドライン(異なるレイテンシトレランスを含む)を有する場合、サブシステム136は、受信されたPMガイドラインのそれぞれを(各自のPMガイドラインと共に)をIOPMC110に再送するだけでよい。あるいは、さまざまな実施形態では、サブシステム136は、受信されたすべてのPMガイドラインを考慮し、統合されたサブシステムPMガイドラインを作成してよい。例えば、サブシステム136は、デバイス116、118、リンク126、128、および/または、サブシステム136のレイテンシトレランスの最小値をIOPMC110に送信してよい。
【0038】
デバイス112、...、118、リンク122、...、128、サブシステム132、...、136、および/または、アプリケーション、デバイスドライバ、OS150は、送信されたPMガイドラインにおける追加情報を有しうる。例えば、さまざまな実施形態では、PMガイドラインは、QoSパラメータ、内部経験則のような割込み周波数、入出力(I/O)トラフィックパターン、アイドル期間(すなわち、デバイス/サブシステムが次に予定されたタイマー割り込みまでの時間を知っているかどうか)、予測仕事量、および/または、パワーマネジメントコントローラとって有用でありうる他のいかなる適切な情報を含むが、これらに限定されない。さまざまな実施形態では、デバイス/サブシステムの1つ以上は、それらのPMガイドラインにそれぞれのメモリアクセスレイテンシも含みうる。さまざまな実施形態では、PMコントローラは、レイテンシトレランスと共にメモリアクセスレイテンシを考慮に入れることにより、適切なPMポリシーを生成してよい。さまざまな実施形態では、レイテンシトレランスは、関連するメモリアクセスレイテンシに少なくとも一部基づいてよい。
【0039】
PCPMC105およびIOPMC110は、アプリケーション、デバイスドライバ、OS、デバイス、リンク、および/または、サブシステムからパワーマネジメントガイドラインを受信すると、ガイドラインを交換し、調整し合い、および/または、コンピューティングデバイスに関連する複数のコンポーネント(図3には示していない)のダイナミックパワーマネジメントポリシーを共同で策定してよく、コンピューティングデバイスに関連する複数のコンポーネントは、プロセッサ、電圧調整器、ディスプレイパネル、クロックジェネレータ、および/または、フェーズロックドループを含むがこれらに限定されない、コンピューィングデバイスのさまざまなコアコンポーネント、および、プラットフォームコンポーネントであってよい。さまざまな実施形態では、作成されたパワーマネジメントポリシーは、図2のPMポリシー50と同様であってよい。
【0040】
さまざまな実施形態では、IOPMC110およびPCPMC105は、他の要因も考慮しつつ、PMポリシーを作成してよい。例えば、コンピューティングデバイスがダイレクトメディアインターフェース(DMI)を有する場合、DMIのレイテンシも考慮しつつ、PMポリシーを作成してよい。
【0041】
さまざまな実施形態では、アプリケーション、ドライバ、および/または、OS150、デバイス112、...、118、リンク122、...、128、および/または、サブシステム132、...、136は、それぞれのPMガイドラインにパフォーマンスアドバイスを含んでよく、その場合、パフォーマンスアドバイスは、それぞれのコンポーネントの現在のパフォーマンスレベル、そして、可能な場合は、予測される未来のパフォーマンスレベルも含んでよい。さまざまな実施形態では、パワーマネジメントコントローラは、受信されたパフォーマンスアドバイスから、これらのコンポーネントのレイテンシトレランスを計算してよい。あるいは、送信されたパフォーマンスアドバイスは、レイテンシトレランスを含んでよい。
【0042】
さまざまな実施形態では、図3のデバイス112、...、118、および、サブシステム132、...、136は、IOPMC110に結合されているように示されているが、デバイスおよびサブシステムのいくつかは、IOPMC110ではなく(あるいは任意に追加して)PCPMC105に結合されてよい。例えば、PCIeグラフィック(PEG)ポートにおける外部バスおよび/またはグラフィックカードがPCPMC105に結合され、それぞれのPMガイドラインをPCPMC105に提供してよい。
【0043】
図4は、さまざまな実施形態における、図2および3のパワーマネジメントシステムに適したパワーマネジメント方法200のフローチャートである。図2および3を参照すると、210において、PCPMC105およびIOPMC110は、1つ以上のアプリケーションおよびデバイスドライバ、OS150、デバイス112、...、118、リンク122、...、128、および/または、サブシステム132、...、136を含む第1の複数のコンポーネントからパワーマネジメントガイドラインを受け取ってよい。220において、PCPMC105およびIOPMC110は、例えば、コンピューティングデバイスの、プロセッサ、電圧調整器、ディスプレイパネル、クロックジェネレータ、および/または、フェーズロックドループを含む1つ以上のコアコンポーネントおよびプラットフォームコンポーネントを含む第2の複数のデバイスのPMポリシーを共同で作成してよい。さまざまな実施形態では、第1の複数のコンポーネントの1つ以上は、第2の複数のコンポーネントに含まれてよい。
【0044】
230では、作成されたPMポリシーの少なくとも一部に基づき、第2の複数のコンポーネントおよび/またはリソースの1つ以上がスリープモード(例えば低電力モード)に入るべきかどうかが決定される。スリープモードに入るコンポーネントが1つもなければ、210において、PCPMC105およびIOPMC110は、引き続き第1の複数のコンポーネントからパワーマネジメントガイドラインを受信してよい。
【0045】
230において、作成されたPMポリシーが第2の複数のコンポーネントおよび/またはリソースの1つ以上がスリープモードに入ることを示す場合、240において、指示されたコンポーネントは、作成されたPMポリシーの少なくとも一部に基づき、適切なスリープモードに入ってよい。例えば、プロセッサが電力を遮断する、HWが一次停止するなどの中断、あるいは、当業者によく知られる他の適切な中断がない限り、コンポーネントは、適切なスリープモードを維持してよい。250において、このような中断を検出したら、260において、コンポーネントは、スリープ状態から抜けて正常な実行状態に入り、210において、PCPMC105およびIOPMC110は、第1の複数のコンポーネントからパワーマネジメントガイドラインを引き続き受信してよい。
【0046】
図6は、いくつかの実施形態を実行するのに適するであろう典型的なコンピュータシステム500を示すブロック図であり、コンピュータシステム500は、パワーマネジメントガイドラインを受信し、受信したパワーマネジメントガイドラインの少なくとも一部に基づき、パワーマネジメントポリシーを作成するシステムを有してよい。いくつかの実施形態では、コンピュータシステム500は、情報を通信するための通信機構またはバス511、および、当該バス511に結合され、情報を処理するプロセッサ512などの集積回路コンポーネントを有してよい。
【0047】
コンピュータシステム500は、バス511に結合され、情報、および、プロセッサ512により実行される命令を格納するランダムアクセスメモリ(RAM)、または、他の動的記憶装置504(メインメモリと称する)をさらに有する。メインメモリ504は、プロセッサ512により命令を実行する間に一時変数または他の中間情報を格納するために用いられてよい。
【0048】
ファームウェア503は、例えば、EPROMのようなソフトウェアとハードウェアとの組合せであってよく、当該EPROMに記録されたルーチンの動作を行う。ファームウェア503は、組込み基礎コード、BIOS(基本入出力システム)コード、または、他の同様のコードであってよい。ファームウェア503により、コンピュータシステム500は独力でブートできるようになる。
【0049】
コンピュータシステム500は、バス511に結合されて、プロセッサ512のための静的情報および命令を格納するROM(リードオンリーメモリ)および/または他の静的記憶装置506も有する。静的記憶装置506は、OSレベル、および、アプリケーションレベルソフトウェアを格納してよい。
【0050】
コンピュータシステム500は、バス511に結合され、コンピュータのユーザに情報を提示する、例えばブラウン管(CRT)、または、液晶ディスプレイ(LCD)などのディスプレイデバイス521にさらに結合されてよい。チップセット536などのチップセットは、ディスプレイデバイス521と接続してよい。
【0051】
英数字および他のキーを有する英数字入力デバイス(キーボード)522もバス511に結合され、情報およびコマンド選択をプロセッサ512に伝達してよい。追加のユーザ入力デバイスは、例えば、マウス、トラックボール、トラックパッド、スタイラス、または、カーソル方向キーなどのカーソルコントロールデバイス523であり、バス511に結合されて方向情報およびコマンド選択をプロセッサ512に伝達し、ディスプレイデバイス521上のカーソルの動きを制御する。例えばチップセット536などのチップセットは、入出力デバイスと接続してよい。
【0052】
バス511に結合されうる他のデバイスは、紙などの媒体に命令、データ、または、他の情報を印刷するのに用いられうるハードコピーデバイス524である。さらに、スピーカおよび/またはマイクロフォン(図示せず)などの音声記録再生デバイスも任意でバス511に結合され、コンピュータシステム500とのオーディオインターフェースとなってよい。バス511に結合されうる他のデバイスは、有線/無線通信機能525である。
【0053】
コンピュータシステム500は、当業者であれば、本願明細書において提供される技術に少なくとも基づくことが理解できるような、バッテリ、AC電源プラグ接続、および、整流器などの電源528を有する。
【0054】
さまざまな実施形態では、図2のPMC15、および/または、図3のPCPMC105/IOPMC110と同様に、パワーマネジメントコントローラ(図6には示されていない)は、図6のコンピュータシステム500に含まれてよい。さまざまな実施形態では、パワーマネジメントコントローラは、バス511に結合され、コンピュータシステム500の複数のコンポーネントからパワーマネジメントガイドラインを受信してよい。複数のコンポーネントは、例えば、プロセッサ512により実行される1つ以上のアプリケーション、コンピュータシステム500のOS、コンピュータシステム500の1つ以上のデバイスドライバ、ファームウェア503、チップセット536、コンピュータシステム500の1つ以上のコントローラ(例えば、図に示されていないUSBホストコントローラ、メモリコントローラ、イーサネットコントローラ、グラフィックコントローラなど)、および、コンピュータシステム500に結合される1つ以上のデバイスであってよく、当該1つ以上のデバイスは、ディスプレイデバイス521、キーボード522、カーソルコントロールデバイス523、ハードコピーデバイス524、通信インターフェース525などを含むがこれらに限定されない。さまざまな実施形態では、パワーマネジメントコントローラは、コンピュータシステム500の複数のコンポーネントのためのパワーマネジメントガイドラインを作成してよく、複数のコンポーネントとは、例えば、コンピュータシステム500の1つ以上のプラットフォームコンポーネント、コンピュータシステム500に含まれるプロセッサ512、チップセット536、1つ以上の電圧調整器、および、クロックジェネレータ、フェーズロックドループ、ディスプレイパネル(例えばディスプレイデバイス521)であってよい。さまざまな実施形態では、プロセッサ512は、複数のタスクを実行してオペレーティングシステムサービス、デバイスドライバサービス、および/または、1つ以上のアプリケーション機能を提供してよい。さまざまな実施形態では、パワーマネジメントコントローラは、プロセッサ512により実行される1つ以上のタスクから、前述のようなパワーマネジメントガイドライン、および、パフォーマンスアドバイスを受信してよい。
【0055】
さまざまな実施形態では、プロセッサ512およびパワーマネジメントコントローラは、1つの集積回路に共に配置されてよい。パワーマネジメントコントローラがPCPMCおよびIOPMCを有する場合(図3と同様に)、さまざまな実施形態では、プロセッサ512およびPCPMCは、1つの集積チップに共に配置されてよく、さまざまな実施懈形態では、IOPMCは、コンピュータシステム500のI/O複合体(図示せず)内に配置されてよい。さまざまな実施形態では、プロセッサ512は、前述の1つ以上のパワーマネジメントコントローラとして動作してよい。さまざまな実施形態では、プロセッサ512、さまざまなハードウェアコンポーネント、および/または、パワーマネジメントコントローラを含むコンピュータシステム500は、モバイルコンピューティングに用いられることが可能な寸法または形状を有してよい。さまざまな実施形態では、コンピュータシステム500は、携帯電話、ラップトップ、パーソナル携帯情報機器、パームトップ、MP3プレーヤ、パソコン、セットトップボックス、または、あらゆる他の適切なタイプのコンピューティングデバイスとして用いられてよい。さまざまな実施形態では、コンピュータシステム500は、モバイルコンピューティングデバイスとして用いられてよい。さまざまな実施形態では、コンピュータシステム500のプロセッサ512およびさまざまなコンポーネントは、モバイルコンピューティングに用いられることができる寸法および形状を有する本体内に収容されてよい。
【0056】
これまで特定の実施形態を図示および説明してきたが、当業者であれば、本発明の実施形態から逸脱することなく、さまざまな変更および/または同等な実施態様が上述の特定の実施形態の代わりになりうることが理解できよう。本出願は、ここに採り上げられた実施形態のいかなる改作および変更も含むことを意図される。したがって、本発明の実施形態は、請求項およびその等価物によってのみ限定されることが明確に意図される。

【特許請求の範囲】
【請求項1】
プラットフォームのパワーマネジメントコントローラによって、前記プラットフォームを提供するシステムに関連する第1の複数のコンポーネントからパワーマネジメントガイドラインを受信する段階と、
前記パワーマネジメントコントローラによって、前記受信されたパワーマネジメントガイドラインの少なくとも一部に基づき、前記システムの1つ以上の第2の複数のコンポーネントを管理するパワーマネジメントポリシーを作成する段階と、
を備え、
前記受信する段階は、
前記第1の複数のコンポーネントから、前記第1の複数のコンポーネントの複数の最大レイテンシトレランスを受信する段階を含み、
前記作成する段階は、
前記第1の複数のコンポーネントの前記複数の最大レイテンシトレランスの中から最大のレイテンシトレランスを決定する段階と、
前記第2の複数のコンポーネントの1つ以上について決定されるスリープレベルからウェイクアップするのにかかる時間が、前記最大のレイテンシトレランス未満となるように、前記第2の複数のコンポーネントの1つ以上の複数のスリープレベルを決定する段階とを含む方法。
【請求項2】
前記第1の複数のコンポーネントのうち一つの第1のコンポーネントの最大レイテンシトレランスは、前記第1のコンポーネントが前記第1のコンポーネントのパフォーマンスに悪影響を与えることなく許容できる最大レイテンシトレランスである請求項1に記載の方法。
【請求項3】
前記第1の複数のコンポーネントのうちの一つの第1のコンポーネントの最大レイテンシトレランスは、前記第1のコンポーネントのバッファリング能力に基づくものである請求項1または請求項2に記載の方法。
【請求項4】
前記作成する段階は、前記システムのトラフィックおよび/またはアクティビティパターンに結集された経験則にさらに少なくとも一部基づき、前記パワーマネジメントポリシーを、前記パワーマネジメントコントローラによって作成する段階を含む、請求項1から請求項3のいずれか1つに記載の方法。
【請求項5】
前記作成する段階は、プロセッサ、電圧調整器、ディスプレイパネル、クロックジェネレータ、および、フェーズロックドループからなる群から選ばれるコンポーネントのための前記パワーマネジメントポリシーを、前記パワーマネジメントコントローラによって作成する段階を含む、請求項1から請求項4のいずれか1つに記載の方法。
【請求項6】
前記受信する段階は、ソフトウェアアプリケーション、デバイスドライバ、前記システムに結合される外部デバイス、前記外部デバイスを前記システムに結合するリンク、コントローラ、および、オペレーティングシステムからなる群から選ばれるコンポーネントから、パワーマネジメントガイドラインを、前記パワーマネジメントコントローラによって受信する段階を含む、請求項1から請求項5のいずれか1つに記載の方法。
【請求項7】
前記作成する段階は、前記第2の複数のコンポーネントの1つ以上を一時的にオフにする段階を含むパワーマネジメントポリシーを、前記パワーマネジメントコントローラによって作成する段階を含む、請求項1から請求項6のいずれか1つに記載の方法。
【請求項8】
パワーマネジメントコントローラを備え、前記パワーマネジメントコントローラは、第1の複数のコンポーネントから、前記第1の複数のコンポーネントの複数の最大レイテンシトレランスを含む前記第1の複数のコンポーネントの1つ以上のレイテンシパラメータを受信し、前記第1の複数のコンポーネントの前記複数の最大レイテンシトレランスの中から最大のレイテンシトレランスを決定し、第2の複数のコンポーネントの1つ以上について決定されるスリープレベルからウェイクアップするのにかかる時間が、前記最大のレイテンシトレランス未満であるように、前記第2の複数のコンポーネントの1つ以上の複数のスリープレベルを決定することにより、第2の複数のコンポーネントの消費電力を管理するためのパワーマネジメントポリシーを決定する、装置。
【請求項9】
前記パワーマネジメントコントローラは、
プラットフォームの中央処理複合体内に配置され、前記第1の複数のコンポーネントの第1のコンポーネントの前記レイテンシパラメータを受信するプロセッサパワーマネジメントコントローラと、
前記プラットフォームのI/O処理複合体内に配置され、前記第1の複数のコンポーネントのうちの第2のコンポーネントの前記レイテンシパラメータを受信する入出力パワーマネジメントコントローラ(I/Oパワーマネジメントコントローラ)と、
を備え、
前記プロセッサパワーマネジメントコントローラと、前記I/Oパワーマネジメントコントローラとは、前記受信されたレイテンシパラメータを交換し、前記第2の複数のコンポーネントのための前記パワーマネジメントポリシーを共同で決定する、請求項8に記載の装置。
【請求項10】
前記第2の複数のコンポーネントの一のコンポーネントは、プロセッサ、電圧調整器、ディスプレイパネル、クロックジェネレータ、および、フェーズロックドループからなる群から選ばれる、請求項8または請求項9に記載の装置。
【請求項11】
前記第1の複数のコンポーネントは、ソフトウェアアプリケーション、デバイスドライバ、および、オペレーティングシステムからなる群から選ばれ、前記第2の複数のコンポーネントは、前記装置に結合される外部デバイス、前記デバイスが結合される前記装置内のサブシステム、および、前記装置の機能を制御するコントローラからなる群から選ばれる、請求項8から請求項10のいずれか1つに記載の装置。
【請求項12】
前記I/Oパワーマネジメントコントローラは、USBホストコントローラから、前記USBホストコントローラの前記レイテンシパラメータを受信し、前記USBホストコントローラの前記レイテンシパラメータは、前記USBホストコントローラに結合される1つ以上のUSBデバイスのレイテンシパラメータを含む、請求項9に記載の装置。
【請求項13】
前記装置は、モバイルコンピューティング用のコンピューティングデバイス内に配置されるプラットフォームである、請求項8から請求項12のいずれか1つに記載の装置。
【請求項14】
コンピューティングデバイスであって、
複数のタスクを実行するプロセッサと、
前記プロセッサに結合される複数のハードウェアコンポーネントと、
前記プロセッサおよび前記複数のハードウェアコンポーネントに結合され、前記複数のタスクの1つ以上により提供されるパフォーマンスアドバイスの観点から、前記複数のハードウェアコンポーネントの1つ以上の電力使用を管理するパワーマネジメントコントローラと、
前記プロセッサ、前記複数のハードウェアコンポーネント、および、前記パワーマネジメントコントローラを収容し、前記コンピューティングデバイスをモバイルコンピューティングに用いることができるような寸法または形状を有する本体と
を備え、
前記複数のタスクの1つ以上により提供される前記パフォーマンスアドバイスは、前記複数のタスクの複数の最大レイテンシトレランスを含み、
前記パワーマネジメントコントローラは、前記複数のハードウェアコンポーネントの1つ以上について決定されるスリープレベルからウェイクアップするのにかかる時間が前記複数の最大レイテンシトレランスの中の最大のレイテンシトレランス未満となるように、前記複数のハードウェアコンポーネントの1つ以上の複数のスリープレベルを決定することにより、前記複数のハードウェアコンポーネントの電力使用を管理する、コンピューティングデバイス。
【請求項15】
前記複数のタスクは、オペレーティングシステムサービス、デバイスドライバサービス、または、アプリケーション機能から選択される1つを提供する、請求項14に記載のコンピューティングデバイス。
【請求項16】
前記複数のハードウェアコンポーネントの1つ以上は、電圧調整器、ディスプレイパネル、クロックジェネレータ、および、フェーズロックドループからなる群から選ばれる、請求項14または請求項15に記載のコンピューティングデバイス。
【請求項17】
前記プロセッサおよび前記パワーマネジメントコントローラは、集積回路内に共に配置される、請求項14から請求項16のいずれか1つに記載のコンピューティングデバイス。
【請求項18】
前記パワーマネジメントコントローラは、前記プロセッサに結合される1つ以上のハードウェアコンポーネントにより提供されるパフォーマンスアドバイスのさらなる観点から、前記複数のハードウェアコンポーネントの1つ以上の電力使用を管理する、請求項14から請求項17のいずれか1つに記載のコンピューティングデバイス。
【請求項19】
コンピュータに実行させるためのプログラムであって、
前記コンピュータに結合される第1の複数のコンポーネントからパワーマネジメントガイドラインを受信する段階と、
前記受信されたパワーマネジメントガイドラインに少なくとも一部基づき、前記コンピュータに結合される第2の複数のコンポーネントの1つ以上を管理するためのパワーマネジメントポリシーを作成する段階と、
を実行させ
前記受信する段階は、前記第1の複数のコンポーネントから前記第1の複数のコンポーネントの複数のレイテンシトレランスを受信する段階を含み、
前記複数のレイテンシトレランスのうち一つの第1のコンポーネントの一つのレイテンシトレランスは、前記第1のコンポーネントのバッファリング能力に基づくものであり、
前記作成する段階は、
前記第1の複数のコンポーネントの前記複数のレイテンシトレランスの中から最大のレイテンシトレランスを決定する段階と、
前記第2の複数のコンポーネントが前記第2の複数のコンポーネントの1つ以上について決定されるスリープレベルからウェイクアップするのにかかる時間が、前記最大のレイテンシトレランス未満となるように、前記第2の複数のコンポーネントに対する複数のスリープレベルを決定する段階とを含む
プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−212467(P2012−212467A)
【公開日】平成24年11月1日(2012.11.1)
【国際特許分類】
【出願番号】特願2012−151332(P2012−151332)
【出願日】平成24年7月5日(2012.7.5)
【分割の表示】特願2009−85357(P2009−85357)の分割
【原出願日】平成21年3月31日(2009.3.31)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
【出願人】(591003943)インテル・コーポレーション (1,101)
【Fターム(参考)】