(57)【要約】  一実施形態において、電力管理ユニット（ＰＭＵ）は、システムの１つ以上の性能ドメインの性能状態を（ハードウェアにおいて）自動的に移行する。性能ドメインが移行するところのターゲット性能状態は、ＰＭＵにおいてソフトウェアでプログラムすることができ、ソフトウェアは、システムのプロセッサがスリープ状態に入ることをＰＭＵに信号する。ＰＭＵは、ターゲット性能状態への性能ドメインの移行をコントロールし、プロセッサがスリープ状態に入るようにさせる。一実施形態において、ＰＭＵは、プロセッサがスリープ状態を出るときに性能ドメインが移行するところのターゲット性能状態の第２セットでプログラムすることができる。ＰＭＵは、第２のターゲット性能状態への性能ドメインの移行をコントロールし、プロセッサがスリープ状態を出るようにさせる。【選択図】図１
2013524367.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサと、
１つ以上の性能状態を指示するようにプログラムできる１つ以上のレジスタと、
前記１つ以上のレジスタ及び前記プロセッサに結合されたコントロール回路であって、前記プロセッサが低性能状態に入ることを検出するように構成され、且つ前記プロセッサが低性能状態に入るのに応答して、集積回路の少なくとも１つの性能ドメインの性能状態を、１つ以上の性能状態のうちの第１の性能状態へ変更するように構成されたコントロール回路と、
を備えた集積回路。
【請求項２】
前記コントロール回路は、前記プロセッサが低性能状態を出ることを検出するように構成され、そして前記コントロール回路は、前記プロセッサが低性能状態を出るのに応答して、集積回路の少なくとも１つの性能ドメインの性能状態を、１つ以上の性能状態のうちの第２の性能状態へ変更するように構成された、請求項１に記載の集積回路。
【請求項３】
前記第２の性能状態は、実際に前記プロセッサが低性能状態に入る前の第３の性能状態とは異なる、請求項２に記載の集積回路。
【請求項４】
前記少なくとも１つの性能ドメインはプロセッサを含む、請求項３に記載の集積回路。
【請求項５】
前記コントロール回路は、前記第１の性能状態への変更が完了する時間を指示する第１のタイムスタンプを記録するように構成され、そして前記コントロール回路は、前記第２の性能状態への変更が完了する時間を指示する第２のタイムスタンプを記録するように構成された、請求項２に記載の集積回路。
【請求項６】
実行されたときに、
システムの複数のコンポーネントのアクティビティを監視し、それらのコンポーネントは、１つ以上の性能ドメインに含まれ、そしてシステムは、少なくとも１つのプロセッサを備え、
前記システムの１つ以上の性能ドメインに対応する複数のレジスタを、その１つ以上の性能ドメインのうちの第１性能ドメインに対して第１性能状態を指示するようにプログラムし、前記システムは、プロセッサが低性能状態に入るのに応答して第１性能ドメインに対して第１性能状態を確立する、
という複数のインストラクションを記憶するコンピュータアクセス可能な記憶媒体。
【請求項７】
前記複数のインストラクションは、複数のコンポーネントのうちの第１コンポーネントをアクチベートする要求に応答して実行され、前記アクティビティの監視は、前記第１コンポーネントのアクチベーションの指示を記録することを含む、請求項６に記載のコンピュータアクセス可能な記憶媒体。
【請求項８】
前記複数のインストラクションは、前記第１コンポーネントをデアクチベートする要求に応答して実行され、前記アクティビティの監視は、前記第１コンポーネントのデアクチベーションの指示を記録することを含む、請求項７に記載のコンピュータアクセス可能な記憶媒体。
【請求項９】
前記複数のインストラクションは、実行されたときに、
前記システムの１つ以上の性能ドメインに対応する第２の複数のレジスタを、その第１性能ドメインに対して第２性能状態を指示するようにプログラムし、前記システムは、プロセッサが低性能状態を出るのに応答して第１性能ドメインに対して第２性能状態を確立する、請求項６に記載のコンピュータアクセス可能な記憶媒体。
【請求項１０】
前記第１性能ドメインは、プロセッサを含み、そして前記第１性能状態は、前記プロセッサが低性能状態に入る前の前記第１ドメインの第３の性能状態とは異なる、請求項９に記載のコンピュータアクセス可能な記憶媒体。
【請求項１１】
前記第１性能ドメインは、前記プロセッサが前記低性能状態にある時間中アクティブである１つ以上のコンポーネントに対応する、請求項６に記載のコンピュータアクセス可能な記憶媒体。
【請求項１２】
複数の性能ドメインの１つに各々含まれる複数のコンポーネントと、
前記複数の性能ドメインの各々に性能状態を確立するように構成された電力管理ユニットであって、プロセッサが異なる性能状態へ移行するのに応答して、少なくとも前記複数の性能ドメインのうちの第１性能ドメインを、電力管理ユニットへプログラムされた第１性能状態へと移行するように構成された電力管理ユニットと、
を備えた装置。
【請求項１３】
前記異なる性能状態は、スリープ状態であり、前記電力管理ユニットは、更に、プロセッサがスリープ状態を出るのに応答して、前記第１性能ドメインを、電力管理ユニットへプログラムされた第２性能状態へと移行するよう構成された、請求項１２に記載の装置。
【請求項１４】
前記電力管理ユニットは、プロセッサが異なる性能状態へ移行するのに応答して各々の性能ドメインを、電力管理ユニットへプログラムされた各電力状態へと移行するよう構成された、請求項１２に記載の装置。
【請求項１５】
前記異なる性能状態は、ウェイクアップ状態を含み、前記プロセッサは、スリープ状態から移行する、請求項１２に記載の装置。
【請求項１６】
前記異なる性能状態は、プロセッサがスリープ状態に入る前に動作していた以前の性能状態とは異なる、請求項１５に記載の装置。
【請求項１７】
プロセッサがシステムの低性能状態に入る段階と、
電力管理ユニットが、システムの性能ドメインを、プロセッサが低性能状態にある時間中に動作するための第１性能状態へ移行させる段階であって、その第１の性能状態は電力管理ユニットにおいてプログラムできるものである段階と、
前記システムの動作を監視するのに応答して前記第１性能状態を前記電力管理ユニットへプログラムするよう決定する段階と、
を備えた方法。
【請求項１８】
前記システムを監視し続ける段階と、
前記監視し続けることに応答して第２の性能状態で前記電力管理ユニットを再プログラミングする段階と、
を更に備えた請求項１７に記載の方法。
【請求項１９】
前記プロセッサが低性能状態を出ることを前記電力管理ユニットが検出する段階と、
前記プロセッサが低性能状態を出るのに続いて動作するための第２性能状態へ前記電力管理ユニットが性能ドメインを更に移行させる段階であって、その第２の性能状態は前記電力管理ユニットにおいてプログラムする段階と、
を更に備えた請求項１８に記載の方法。
【請求項２０】
前記第２性能状態は、前記プロセッサが低性能状態に入る前の前記性能ドメインの第３の性能状態とは異なる、請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ及び周辺装置を備えたシステムの分野に係り、そのようなシステムにおける電力消費の管理に係る。
【背景技術】
【０００２】
集積回路「チップ」に含まれるトランジスタの数が増加し続けているので、集積回路の電力管理も重要性が高まり続けている。電力管理は、パーソナルデジタルアシスタント（ＰＤＡ）、セルラーホン、スマートホン、ラップトップコンピュータ、ネットトップコンピュータ、等の移動装置に含まれた集積回路に対して重大である。これらの移動装置は、多くの場合、バッテリ電源に依存し、集積回路の電力消費を減少することで、バッテリの寿命を延長することができる。更に、電力消費を減少することで、集積回路により発生される熱を減少し、集積回路を含む装置の冷却要件を緩和することができる（それがバッテリ電力に依存するかどうかに関わらず）。
【０００３】
アイドル回路へのクロックをディスエイブルし、従って、アイドル回路のスイッチインを防止して、集積回路の動的電力消費を減少するために、クロックゲーティングがしばしば使用される。更に、ある集積回路は、静的な電力消費（例えば、漏洩電流による消費）を減少するために電力ゲーティングを実施する。電力ゲーティングでは、アイドル回路の接地経路への電力が遮断され、漏洩電流をゼロ付近まで減少する。
【０００４】
クロックゲーティング及び電力ゲーティングは、有効な電力保存メカニズムである。しかしながら、あるケースでは、これらのメカニズムは、望まれるほど有効ではない。例えば、プロセッサを備えたシステムは、電力を保存するためにプロセッサがスリープ状態に入るようにさせる。プロセッサがスリープ状態にある間も、システムの他のコンポーネントは依然アクティブであり、そして多くの場合、アクティブなプロセッサをサポートする性能レベルで動作する。プロセッサがスリープ状態にあるとき、これらの他のコンポーネントは、そのような高い性能レベルで動作する必要がない。同様に、プロセッサがスリープ状態からアウェイクするときに、システムにより遂行されるアクティビティをサポートするためにプロセッサ及び他のコンポーネントが動作する必要のある性能レベルは、プロセッサがスリープ状態に入る前の性能状態とは異なることがある。
【０００５】
プロセッサ及び他のコンポーネントのスリープ／ウェイク移行は、ソフトウェアコントロールのもとで変更される。ソフトウェアは、プロセッサにおいて実行され、従って、プロセッサ及び他のコンポーネントの性能レベルを変更すると、ソフトウェアを実行するのに要する時間量に影響が及ぶ。これらの影響は、移行の効率にも影響し、保存される電力及びアプリケーションの性能にも影響する。更に、ソフトウェア実行時間は、プロセッサがスリープ状態へどれほど頻繁に移行するか、及びシステムの他部分において許容できる性能低下の量にも影響する。
【発明の概要】
【０００６】
一実施形態において、電力管理ユニットは、システムの１つ以上の性能ドメイン（performance domain）の性能状態（performance state）を（ハードウェアにおいて）自動的に移行するよう構成される。性能ドメインが移行するところのターゲット性能状態は、電力管理ユニットにおいてソフトウェアでプログラムすることができる。更に、ソフトウェアは、システムのプロセッサがスリープ状態に入ることを電力管理ユニットに信号する。或いは又、電力管理ユニットは、プロセッサを監視して、プロセッサがスリープ状態に入りつつあるか又はスリープ状態に入ったか検出する。電力管理ユニットは、ターゲット性能状態への性能ドメインの移行をコントロールするように構成され、又、ある実施形態では、プロセッサがスリープ状態に入るようにさせる。一実施形態において、電力管理ユニットは、プロセッサがスリープ状態を出るときに性能ドメインが移行するところのターゲット性能状態の第２セットでプログラムすることができる。電力管理ユニットは、第２のターゲット性能状態への性能ドメインの移行をコントロールするように構成され、そしてある実施形態では、プロセッサがスリープ状態を出るようにさせる。
【０００７】
一実施形態において、異なるターゲット状態への性能ドメインの移行は、電力管理ユニットによりコントロールされるときには、ソフトウェアコントロールで可能であるよりも迅速である。従って、電力保存は、純粋なソフトウェアコントロールの実施より効率的であり、システムで実行されるアプリケーションの性能も、積極的に影響を受ける。更に、性能状態の構成は、システムにおいて性能レベルをより微細粒度でコントロールできるようにし、従って、付加的な電力節約を行えるようにする。あるケースでは、ソフトウェアコントロールの実施で可能であるよりも性能状態を更に減少することができる。というのは、システムが低い性能状態にある間にソフトウェアを実行するのに必要な時間が、減少されたファクタだから（又は排除もできるため）である。
【０００８】
システムの各コンポーネントは、性能ドメインに含まれ、そして各性能ドメインは、少なくとも１つのコンポーネントを含むが、種々の実施形態では複数のコンポーネントを含んでもよい。電力管理ユニットは、各性能ドメイン及び各ハードウェア管理移行（例えば、種々の実施形態において、スリープ状態への、スリープ状態からの、又はその両方の）に対して性能状態識別子でプログラムすることができる。又、プロセッサのスリープ状態も、種々の実施形態においてプロセッサがプログラムされる種々の他の性能状態のような性能状態である。
【０００９】
以下、添付図面を参照して本発明を詳細に説明する。
【図面の簡単な説明】
【００１０】
【図１】システムの一実施形態のブロック図である。
【図２】図１に示した性能構成レジスタの一実施形態のブロック図である。
【図３】電力状態を自動的に変更するための電力管理ユニットの一実施形態の動作を示すフローチャートである。
【図４】ドライバコンポーネントの一実施形態を示すブロック図である。
【図５】電力管理ユニットドライバコンポーネントの一実施形態の動作を示すフローチャートである。
【図６】システムの別の実施形態を示すブロック図である。
【図７】コンピュータアクセス可能な記憶媒体の一実施形態のブロック図である。
【発明を実施するための形態】
【００１１】
本発明は、種々の変更や代替え形態を受けるが、その特定の実施形態を添付図面に例示して以下に詳細に説明する。しかしながら、添付図面及びその詳細な説明は、ここに開示する特定の形態に本発明を限定するためのものではなく、逆に、特許請求の範囲に規定された本発明の精神及び範囲内に入る全ての変更、等効物及び代替え物を網羅するものとする。ここで使用する見出しは、編集上のものに過ぎず、説明の範囲を限定するのに使用されるものではない。本明細書全体にわたって使用される「〜してもよい(may)」という語は、強制的な意味（即ち、〜しなければならない(must)を意味するの）ではなく、許可的な意味（即ち、〜する潜在性をもつという意味）で使用される。同様に、「含む(include) (including) (includes)」という語も、含むことを意味するが、それに限定されない。
【００１２】
種々のユニット、回路又は他のコンポーネントは、１つ又は複数のタスクを遂行するように「構成される」ものとして述べる。この点について、「構成される」とは、動作中に１つ又は複数のタスクを遂行する「回路を有する」ことを一般的に意味する構造を広く表現するものである。従って、ユニット／回路／コンポーネントは、そのユニット／回路／コンポーネントが現在オンでなくても、タスクを遂行するように構成することができる。一般的に、「構成される」に対応する構造を形成する回路は、ハードウェア回路を含む。同様に、種々のユニット／回路／コンポーネントは、説明の便宜上、１つ又は複数のタスクを遂行するものとして説明されてもよい。そのような説明は、「構成される」という句を含むものと解釈されねばならない。１つ以上のタスクを遂行するように構成されたユニット／回路／コンポーネントを表現する場合に、そのユニット／回路／コンポーネントの解釈に関して３５Ｕ.Ｓ.Ｃ.§１１２、第６節を引用しないことが明確に意図される。
【００１３】
図１を参照すれば、システムの一実施形態のブロック図が示されている。図１の実施形態において、このシステムは、システムオンチップを形成する集積回路（ＩＣ）１０と、電源１２とを備えている。集積回路１０は、性能ドメイン（performance domain）１４Ａ−１４Ｆのセットを含む。各性能ドメイン１４Ａ−１４Ｆは、集積回路１０の少なくとも１つのコンポーネントを含み、そして所与の性能ドメインは、２つ以上のコンポーネントを含んでもよい。例えば、図１の性能ドメイン１４Ａは、２つのコンポーネント、即ちプロセッサ１６Ａ及び別のコンポーネント１８を含み、そして性能ドメイン１４Ｅは、２つ以上の周辺装置２４を含む。ここに示す実施形態では、性能ドメイン１４Ｂは、任意の第２のプロセッサ１６Ｂを含み、性能ドメイン１４Ｃは、グラフィックユニット２０を含み、性能ドメイン１４Ｄは、オーディオユニット２２を含み、性能ドメイン１４Ｅは、ネットワーク周辺装置及び／又は他の周辺装置及び／又は周辺インターフェイスユニット２４を含み、そして性能ドメイン１４Ｆは、メモリコントローラ２６を含む。又、集積回路１０は、電力管理ユニット（ＰＭＵ）２８（１つ以上の性能構成レジスタ３０を含む）と、クロック／電圧コントロールユニット３２も備えている。図１に示す種々のコンポーネントは、任意の望ましい形態で結合される。例えば、コンポーネント間には１つ以上のバス又は他のインターフェイスがある。ＰＭＵ２８及びクロック／電圧コントロールユニット３２は、インターフェイスに結合されるのに加えて、種々のコンポーネントにも結合される。例えば、クロック／電圧コントロールユニット３２は、コンポーネント（図１には示さず）にクロック信号を供給する。クロック／電圧コントロールユニット３２は、電源１２から１つ以上の供給電圧を要求するために電源１２と通信するように構成される。電源１２は、要求された電圧（１つ又は複数）を発生し、そして集積回路に電圧を供給する。
【００１４】
ＰＭＵ２８は、種々の性能ドメイン１４Ａ−１４Ｆに対する性能状態（performance state）間の移行をコントロールするように構成される。特に、ＰＭＵ２８は、１つ以上のプロセッサ１６Ａ−１６Ｂがスリープ状態に入るのに応答して（又はプロセッサがスリープ状態に入るべきであるという決定に応答して）、性能ドメイン１４Ａ−１４Ｆの１つ以上を自動的に移行させるように構成される。又、ＰＭＵ２８は、プロセッサがスリープ状態を出るのに応答して（プロセッサがスリープ状態を出るべきであるという決定に応答して）、性能ドメイン１４Ａ−１４Ｆの１つ以上を自動的に移行させるようにも構成される。スリープ状態を出ることは、プロセッサを「ウェイク」させるとも称される。プロセッサのスリープ状態及び他の状態は、プロセッサを含む性能ドメインの性能状態である。或いは又、スリープ状態及び他のプロセス状態は、プロセッサを含む性能ドメインに対する性能状態の性能特性である。
【００１５】
性能ドメインは、性能構成目的のユニットとしてＰＭＵ２８によりコントロールされる１つ以上のコンポーネントである。即ち、ＰＭＵ２８は、各性能ドメインのための対応する性能状態を確立するように構成され、又、各性能ドメインにおける性能状態間の移行をコントロールするように構成される。性能ドメインを形成するコンポーネントは、１つの性能状態から別の性能状態へ一緒に移行する。他方、異なる性能ドメインにおけるコンポーネントは、少なくともハードウェアの観点から、互いに独立しており、そして独立して決定された性能状態を有する。ある性能ドメインは、より高いレベルにおいて論理的にリンクされる（例えば、ソフトウェアで）。例えば、性能ドメイン１８Ｃ−１８Ｄは、ユーザがサウンドを含むビデオを見る場合に論理的にリンクされる（従って、ビデオ画像を表示するためのグラフィックユニット２０及びサウンドを送信するためのオーディオユニット２２を使用して）。
【００１６】
性能状態は、対応する性能ドメインにおけるコンポーネントのための性能特性の組み合わせを含む。性能特性とは、コンポーネントのための構成可能な設定で、そのコンポーネントの性能に影響するものである。例えば、コンポーネントに与えられるクロック信号の動作周波数は、その性能に影響する。動作周波数が低いと、性能が低くなる。それに対応する供給電圧も、性能特性である。ある性能特性は、コンポーネントに特有である。例えば、種々のキャッシュのキャッシュサイズは、性能特性である。インターフェイスのデータ巾又は他のデータ転送レートパラメータは、性能特性である。並列に動作する多数の対称的ユニット（例えば、プロセッサの実行ユニット、グラフィックユニットにおけるピクセルパイプライン又は他の画像処理パイプライン、等）を含むコンポーネントは、アクティブな対称的ユニットの数に関して構成可能である。単位時間当たりに処理されるインストラクション（プロセッサ）、動作（グラフィック又はオーディオ）、通信（ネットワーク又は他の周辺インターフェイス）、又はメモリ要求（メモリコントロールユニット）の数は、性能特性である。カラーパレットのグラフィック分解能又はサイズ（例えば、ピクセル当たりのビット）は、性能特性である。オーディオ分解能及びサンプルレートは、性能特性である。メモリ帯域巾は、性能特性である。プロセッサのスリープ／ウェイク状態は、性能特性である。コンポーネント又はその一部分を電力ゲート化及び／又はクロックゲート化できる場合には、電力及び／又はクロックイネーブルが性能特性である。変更でき且つ性能に影響するパラメータは、種々の実施形態における性能特性である。
【００１７】
性能ドメインにおける性能状態を変更すると、性能ドメインの電力消費に影響が及ぶ。動作周波数及び供給電圧を減少すると、電力消費に直接影響する。キャッシュサイズを減少すると、キャッシュの一部分がアクセスされないので、電力消費を減少し、そして未使用の部分がターンオフされる場合には、更に大きな減少が実現される。更に、キャッシュサイズが減少すると、キャッシュヒットレートが減少し、消費者に対するメモリ待ち時間が長くなる。メモリ待ち時間が長くなると、消費者の活動が減少し、電力消費を減少させる。インターフェイスにおけるデータ転送幅／レートが減少すると、スイッチングの減少により電力消費が減少する。更に、データを消費者へ供給するレートを下げると、消費者の活動が減少し、消費者の電力消費を減少させる。対称的ユニットにおける並列のアクティビティが低下すると、インストラクション又は他の動作発生レートが下がるので、アクティビティ低下により電力消費が減少する。グラフィック／オーディオ解像度及びカラーパレットが減少すると、画像又は単位サウンド当たりに転送されるデータの量が減少する。メモリ帯域巾が減少すると、単位時間当たりのメモリアクセスにおける電力消費が減少し、消費者の活動が低下する。
【００１８】
ある実施形態では、性能状態は、性能特性の複数のインスタンスを含む。例えば、プロセッサがスリープ状態において電源オフされ、そして他のコンポーネントが同じ性能ドメインにある場合には、プロセッサの電圧が、アクティブのままである他のコンポーネントの電圧とは個別にセットされる。同様に、性能ドメイン内の２つ以上のコンポーネントに適用され且つそのようなコンポーネントに対して独立してコントロールされる他の性能特性は、性能状態における複数のインスタンスによって表される。
【００１９】
プロセッサが他のコンポーネントと共に性能ドメインにある実施形態では、他のコンポーネントは、プロセッサがスリープ状態にある時間中アクティブのままとなる。例えば、性能ドメイン１４Ａのコンポーネント１８は、プロセッサ１６Ａがスリープ状態にある時間中アクティブのままである。コンポーネントの性能特性は、プロセッサがスリープ状態にある間に減少動作を反映するように変更される。例えば、コンポーネント１８は、プロセッサ１６Ａに結合されたレベル２（Ｌ２）キャッシュである。そのような実施形態では、Ｌ２キャッシュは、スリープ中のプロセッサ１６Ａによりアクセスされず、キャッシュコヒレンスを維持するためにアクティブのままとなる。Ｌ２キャッシュは、ある実施形態では、低いクロック周波数（及び電圧）で動作するが、キャッシュコヒレンスを保証するに充分な性能は依然与える。
【００２０】
ＰＭＵ２８は、性能ドメインにおいて性能状態移行を生じさせるように構成された回路を含む。一実施形態において、ＰＭＵ２８は、プロセッサ１６Ａ−１６Ｂがスリープ状態に入り／出ることを検出し、性能ドメインにおいてそれに対応する遷移を生じさせる。他の実施形態では、ソフトウェアがスリープ／ウェイクイベントをＰＭＵ２８へ明確に通信する。一実施形態では、ＰＭＵ２８は、性能ドメインごとの性能構成でプログラム可能である。例えば、プロセッサがスリープ状態にあるときに性能ドメイン１４Ａ−１４Ｆに使用されるべき性能状態は、性能構成レジスタ３０に指定される。プロセッサ１６Ａ−１６Ｂがスリープ状態を出る（アウェイクする）ときに使用されるべき性能状態も指定される。いずれかのイベントが生じると、ＰＭＵ２８は、望ましい移行を生じさせる。
【００２１】
電圧及びクロック周波数が変化する場合に、ＰＭＵ２８は、クロック／電圧コントロールユニット３２へ新たな設定を通信する。クロック／電圧コントロールユニット３２は、新たな設定を実施し、要求された周波数でクロックを発生し、そして電源１２から望ましい供給電圧を要求する。クロック／電圧コントロールユニット３２は、移行を安全に行うために必要に応じて変更を命令する。例えば、クロック周波数及び供給電圧が増加される場合には、先ず電圧を増加し、次いで、クロック周波数を増加するのが安全である。というのは、クロック周波数の増加は、回路が現在の（低い）供給電圧においてゆっくり動作している場合に誤った動作を招くことがあるからである。ある実施形態では、供給電圧の変化において経過する時間量は、クロック周波数を変化させる時間より実質的に長い。クロック周波数及び供給電圧が減少される場合には、先ずクロック周波数を減少する（又はこのケースでは低い供給電圧の前に低いクロック周波数に達するので、周波数及び電圧を並列に減少してもよい）。
【００２２】
クロック／電圧コントロールユニット３２は、望ましい供給電圧を要求するために電源１２と通信する回路を含み、又、クロック発生回路を含む。例えば、クロック／電圧コントロールユニット３２は、コンポーネントのクロックを発生するために、１つ以上の位相固定ループ（ＰＬＬ）、クロック除算器／乗算器、等を含む。
【００２３】
集積回路１０に含まれる種々のコンポーネントは、望ましい機能を実施することができる。一般的に、コンポーネントとは、集積回路における動作の特定セットを遂行するように定義された回路であって、集積回路内の他のコンポーネントと通信するための定義されたインターフェイスを有する回路を指す。図１に示すように、例示的コンポーネントは、プロセッサ１６Ａ−１６Ｂ、コンポーネント１８、グラフィックユニット２０、オーディオユニット２２、ネットワーク周辺装置及び他の周辺装置／周辺インターフェイス２４（複数のコンポーネントでもよい）、及びメモリコントローラ２６を含む。
【００２４】
プロセッサ１６Ａ−１６Ｂは、インストラクションセットアーキテクチャーを実施し、そしてそのインストラクションセットアーキテクチャーに定義されたインストラクションを実行するように構成される。マイクロアーキテクチャー実施が使用されてもよい（例えば、秩序正しく、無秩序で、推論的に、非推論的に、スカラーで、スーパースカラーで、パイプライン的に、スーパーパイプライン的に、等）。ある実施形態では、マイクロコーディング技術が、前記のいずれかとの組み合わせで使用される。
【００２５】
上述したように、プロセッサ１６Ａ−１６Ｂの性能状態は、スリープ状態を含む。スリープ状態では、プロセッサがアイドルである（インストラクションを実行しない）。プロセッサへのクロックが停止される。ある実施形態では、スリープ状態においてプロセッサから電力が除去される。或いは又、２つ以上のスリープ状態があってもよい。スリープ状態の１つは、プロセッサをパワーダウンすることを含み、そして別のスリープ状態は、プロセッサへの電力を保持することを含む。更に、プロセッサは、少なくとも１つの「アウェイク状態」を含む。複数のアウェイク状態があってもよい。例えば、異なる供給電圧／動作周波数の組合せがサポートされてもよく、イネーブル実行ユニットの異なる組み合わせがサポートされてもよく、異なるインストラクション発生レートがサポートされてもよく、等々である。
【００２６】
グラフィックユニット２０は、例えば、ユーザが見るためのディスプレイ装置に画像を表示するのに伴う回路を含む。画像は、静止画像でもよいし、又はビデオの一部分でもよい。グラフィック２０は、レンダリングハードウェア、リフレッシュ（ディスプレイ装置の）ハードウェア、ビデオエンコーダ及び／又はデコーダ、ビデオ圧縮及び解凍ユニット、等を含む。オーディオユニット２２は、システムにおいてサウンドを再生又は記録するのに伴う回路を含む。オーディオユニット２２は、例えば、オーディオエンコーダ及び／又はデコーダ、デジタル信号プロセッサ、等を含む。
【００２７】
ネットワーク周辺装置及び他の周辺装置２４は、種々の回路を含む。例えば、ネットワーク周辺装置は、サポートされるネットワーク及び物理的レイヤ回路のためのメディアアクセスコントローラ（ＭＡＣ）ユニットを含む。他の周辺装置は、他の望ましい周辺装置を含み、及び／又は周辺コンポーネント相互接続（ＰＣＩ）、ＰＣＩエクスプレス（ＰＣＩ）、ファイアワイヤ、ユニバーサルシリアルバス（ＵＳＢ）、等のオフチップ周辺インターフェイスをコントロールするように構成された周辺インターフェイスコントローラを含む。
【００２８】
メモリコントローラ２６は、ダイナミックランダムアクセスメモリ装置（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、倍データレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３、ＤＤＲ４、等）ＳＤＲＡＭ、低電力ＤＤＲ（ＬＰＤＤＲ２、等）ＳＤＲＡＭ、ＲＡＭＢＵＳ  ＤＲＡＭ（ＲＤＲＡＭ）、等のようなメモリ装置にアクセスするように構成される。一実施形態において、メモリコントローラ２６は、前記メモリの１つ以上を含む１つ以上のメモリモジュール（例えば、シングルインラインメモリモジュール（ＳＩＭＭ）、デュアルインラインメモリモジュール（ＤＩＭＭ）、等）へインターフェイスするように構成される。従って、メモリコントローラ２６は、メモリインターフェイスを経て通信し、集積回路１０の他のコンポーネントからメモリ要求をキューイングし、そして他のコンポーネントと通信してメモリオペレーションを完了させるように構成される。
【００２９】
図１に示す集積回路１０の実施形態は、多数の性能ドメインを含むが、より多くの又はより少ない性能ドメインがサポートされてもよい。例えば、単一の性能ドメインがサポートされてもよいし、又は２つの性能ドメインがサポートされてもよい（例えば、あるドメインは、プロセッサ１６Ａ−１６Ｂを含み、そして別のドメインは、残りのコンポーネント１８、２０、２２、２４及び２６を含む）。１つ以上のプロセッサ１６Ａ−１６Ｂが、コンポーネント１８、２０、２２、２４及び２６のサブセットと共に性能ドメインに含まれる。性能ドメインと、それらのドメインに含まれたコンポーネントとの任意の組合せが種々の実施形態において実施される。
【００３０】
集積回路１０の他の実施形態は、他のコンポーネントを伴う又は伴わない図示されたコンポーネントのサブセット、他のコンポーネントとのスーパーセット、等を含めて、コンポーネントの他の組み合わせを含む。更に、ここに示す実施形態は、全て集積回路１０に含まれたコンポーネント１６Ａ−１６Ｂ、１８、２０、２２、２４及び２６を示しているが、他の実施形態では、コンポーネントが２つ以上の集積回路として実施されてもよい。いかなるレベルの集積又は個別コンポーネントが使用されてもよい。
【００３１】
図２は、性能構成レジスタ３０の一実施形態を示すブロック図である。ここに示す実施形態では、レジスタ３０は、レジスタセット３０Ａ、レジスタセット３０Ｂ、及びレジスタセット３０Ｃを含む。レジスタセット３０Ｂは、各性能ドメインに対する並びにスリープ状態及びウェイク状態に対する構成を含む。従って、図示されたセットは、正の整数を“ｎ”とすれば、“ｎ”個までの性能ドメインをサポートする。所与の性能ドメインに対するスリープ状態は、プロセッサがスリープ状態に入ることに応答したドメインの性能状態を指示する。所与の性能ドメインに対するウェイク状態は、プロセッサがスリープ状態を出ることに応答したドメインの性能状態を指示する。
【００３２】
ある実施形態では、レジスタ３０Ｂは、対応する電力ドメインにおいて確立されるべき性能状態を定義する値を直接記憶する。このようなケースでは、プロセッサ１６Ａ−１６Ｂのスリープ状態に対して集積回路１０を準備するソフトウェアが、システムのアクティビティに基づいてスリープ状態及びそれに続くウェイク状態について各レジスタ３０Ｂをプログラムする。
【００３３】
ここに示す実施形態では、レジスタ３０Ｂは、レジスタセット３０Ａ又は３０Ｃに対するポインタを記憶し、ポインタが指すレジスタのセットは、そのレジスタに対応する性能ドメインに依存する。ある実施形態では、各性能ドメインに対して３０Ａ又は３０Ｂと同様のレジスタセットがある。或いは又、同様の性能ドメインがレジスタセットを共有してもよい。例えば、プロセッサ性能ドメイン１４Ａ及び１４Ｂが、変更され得る性能特性に関して同じである場合には、性能ドメイン１４Ａ−１４Ｂは、同じレジスタセット３０Ａ又は３０Ｃを共有する。各レジスタセット３０Ａ及び３０Ｂは、それに対応する性能ドメインのための性能状態構成を記憶する。従って、ソフトウェアは、レジスタセット３０Ａ又は３０Ｃにおける性能状態のセットをプログラムし、次いで、プロセッサのスリープ移行及びプロセッサのウェイク移行の両方に対する適当な性能状態を、プロセッサがスリープ状態へ移行する前に選択する。この選択は、レジスタ３０Ｂにおいて性能ドメインに対応する各レジスタにポインタを書き込むことによって行われる。従って、性能状態は、各スリープ状態移行の前にシステムのアクティビティに基づいて動的に変更される。
【００３４】
プロセッサのウェイク状態に対する性能状態構成を与えることで、種々の性能ドメインは、プロセッサがスリープ状態に入る前に性能ドメインの性能状態とは異なる性能状態へ自動的に移行することが許される。従って、例えば、プロセッサがアウェイクするときに遂行される動作をソフトウェアで予想できる場合には、ウェイク性能状態が、プロセッサがスリープ状態へ移行する前の性能状態とは異なる場合でも、それらの動作に対して望まれる性能状態が確立される。
【００３５】
ある実施形態では、レジスタ３０Ｂは、対応する性能ドメインにおいて移行を生じさせるべきかどうか指示するのに使用される有効ビット又は他の指示を含む。従って、所与の性能状態において常に最も効率の高い性能ドメインは、有効ビットをクリアすることにより変更されないままとされる。又は、ディスエイブルされた性能ドメインは、性能ドメイン移行中にイネーブルされることが防止される。
【００３６】
又、レジスタ３０Ｂは、スリープ移行が始まることを指示するためにソフトウェアにより書き込まれるレジスタも含む。ＰＭＵ２８は、スリープコマンドレジスタへの更新を監視するように構成され、そしてプロセッサのスリープ移行及び種々の他の性能ドメイン状態移行を遂行するように構成される。或いは又、ソフトウェアは、プロセッサインストラクション実行メカニズムを使用して、プロセッサがスリープ状態に入るようにさせ、そしてＰＭＵ２８は、他の性能ドメイン状態移行を遂行するように構成される。
【００３７】
又、ＰＭＵ２８は、プロセッサをウェイクアップさせる割り込み又は他のイベントを監視して、性能状態を出るための性能状態移行を遂行するようにも構成される。ある実施形態では、ＰＭＵ２８は、プロセッサ動作を監視して、プロセッサがスリープ状態に入るのを自動的に検出するようにも構成される（例えば、プロセッサがスリープコマンドレジスタにコマンドを書き込まずに）。
【００３８】
あるケースでは、１つ以上の性能ドメインが、マルチプロセッサ構成の特定のプロセッサとより厳密にリンクされる。そのようなケースでは、密接にリンクされた性能ドメインは、それに対応するプロセッサがスリープ状態に入るのに応答して異なる性能状態へ移行するが、依然アクティブなプロセッサに密接にリンクされた他の性能ドメインは、移行しない。性能ドメイン移行は、ＰＭＵ２８によりハードウェアコントロールされるか、又は上述した性能構成レジスタにおける有効指示を使用してソフトウェアコントロールされる。或いは又、移行は、最後のプロセッサがスリープ状態に入るときに（他のプロセッサが既にスリープ状態にある間に）遂行され、そしてスリープ状態から出る移行は、最初のプロセッサがスリープ状態を出るときに（例えば、外部の割り込みに応答して）遂行される。
【００３９】
セット３０Ａは、種々の性能状態構成を記憶する（正の整数を“ｍ”とすれば、“ｍ”個までの構成）。従って、例えば、セット３０Ａの種々のレジスタは、性能ドメイン０（ＰＤ０）に対する電圧（Ｖ０、Ｖ１）、動作周波数（Ｆ０、Ｆ１）、及び／又は他の性能状態情報を記憶する。又、レジスタセット３０Ｃは、性能ドメイン“ｎ”に対する種々の性能状態構成を記憶する（正の整数を“ｐ”とすれば、“ｐ”個までの構成）。整数ｍ、ｍ及びｐは、同じである必要はない。
【００４０】
ある実施形態では、集積回路は、ある電圧、クロック周波数の対をサポートする（例えば、所与のクロック周波数で動作するための最小供給電圧がある）。レジスタ３０Ｂ及び３０Ｃにおける電圧及びクロック周波数構成は、最小供給電圧に違反しないが、あるケースでは、最小以外の供給電圧を使用することが望まれる。例えば、第１のクロック周波数は、プロセッサがスリープ状態を出るときに性能ドメインを戻すための正しい周波数であるとソフトウェアが予想するが、その予想が間違った場合に、より高いクロック周波数が正しい設定である場合には、レジスタ３０Ｂ及び３０Ｃの対応電圧は、より高い周波数に対して使用される電圧である。このように、予想周波数が間違った場合には、供給電圧を望ましい大きさに予めセットすることができ、予想ミスが生じたときに性能状態を修正するための調整を行う遅延を短縮することができる。
【００４１】
図３は、プロセッサがスリープ状態に入るとき又は出るときに性能ドメインにおける性能状態移行を管理するためのＰＭＵ２８及びクロック／電圧コントロールユニット３２の一実施形態の動作を示すフローチャートである。理解を容易にするために特定の順序でブロックが示されているが、他の順序が使用されてもよい。ブロックは、ＰＭＵ２８及び／又はクロック／電圧コントロールユニット３２の組み合わせロジックにおいて並列に遂行されてもよい。ブロック、ブロックの組み合わせ、及び／又はフローチャートは、全体として、複数のクロックサイクルにわたりパイプライン化されてもよい。特に、判断ブロック４０及び４８は、独立したものであり、並列に又はいずれかの順序で遂行されてもよい。ＰＭＵ２８及び／又はクロック／電圧コントロールユニット３２は、図３に示す動作を実施するように構成される。
【００４２】
ＰＭＵ２８は、プロセッサがスリープ状態に入ること（又は入ろうとしていること）を検出し、又はある実施形態においてプロセッサセットの最後のプロセッサがスリープ状態に入るが他のプロセッサはスリープ状態にあることを検出する（判断ブロック４０「イエス」岐路）。種々の実施形態において、この検出は、スリープコマンドレジスタ等でコマンドを受け取ることを経て、プロセッサ１６Ａ−１６Ｂを監視することにより、行われる。ＰＭＵ２８は、性能構成レジスタ３０から各性能ドメインのためのスリープ性能状態をロードする（ブロック４２）。ある実施形態では、レジスタ３０における性能状態が有効であるかどうかの指示は、性能状態がロードされたかどうか検証する。性能状態が、供給電圧及び／又はクロック周波数変化を含む場合には、ＰＭＵ２８は、電圧／周波数を指定する値をクロック／電圧コントロールユニット３２へ供給する。性能状態が他の変化（例えば、キャッシュサイズの変化、インターフェイスサイズの変化、等）を含む場合には、ＰＭＵ２８は、その変化をそれに対応するコンポーネントへ送信する。ＰＭＵ２８及び／又はクロック／電圧コントロールユニット３２は、性能ドメインを新たな性能状態へ移行させる（ブロック４４）。供給電圧の変化は、電源１２へ送信され、そして新たな電圧に安定する時間が与えられる。クロック周波数の変化は、クロック／電圧コントロールユニット３２のクロック発生回路へとプログラムされ、そして新たな周波数に安定する時間が必要に応じて与えられる（例えば、ＰＬＬが新たな周波数にロックするための時間）。他の変化については、コンポーネントは、新たな状態に切り換わるように信号される。変更を実施するために（例えば、ディスエイブルされたキャッシュの一部分をフラッシュするか、巾を変更したインターフェイスのコンポーネントをリセットする、等）時間が必要である場合には、そのような時間が与えられる。一実施形態において、ＰＭＵ２８は、性能状態の移行が完了した時間を指示するタイムスタンプを記録する（例えば、タイムスタンプを専用に記憶する性能構成レジスタ３０に）。例えば、システムで実施される電力節約手段の有効性を決定する統計学的分析のためにタイムスタンプをソフトウェアで捕獲する。タイムスタンプは、望ましい形態で捕獲される。例えば、システムは、規則的な間隔でインクリメント又はデクリメントされる自走式カウンタを含む。システムは、カウンタの値をタイムスタンプとして捕獲する。
【００４３】
ＰＭＵ２８は、プロセッサがスリープ状態を出ること（又はスリープ状態を出ようとしていること）を検出する（判断ブロック４８「イエス」岐路）。種々の実施形態において、この検出は、プロセッサ１６Ａ−１６Ｂを監視する、等により行われる（例えば、プロセッサの１つに与えられる割り込みを検出する）。ＰＭＵ２８は、性能構成レジスタ３０から各性能ドメインのためのウェイク性能状態をロードする（ブロック５０）。スリープ性能状態をロードすることに関する前記判断と同様に、新たな性能状態構成を実施するために種々の通信が行われる。ＰＭＵ２８及び／又はクロック／電圧コントロールユニット３２は、性能ドメインを新たな性能状態へ移行し（ブロック５２）、そして移行が完了したときにタイムスタンプを記録する（ブロック５４）。プロセッサはタイムスタンプ捕獲とタイムスタンプ捕獲との間はスリープであるから、両タイムスタンプをソフトウェアで捕獲できるように、ウェイクのためのタイムスタンプは、スリープのために記録されるタイムスタンプとは異なるレジスタに記録される。
【００４４】
図４は、システムの一実施形態において具現化されるソフトウェア構造を示すブロック図である。ソフトウェアは、１つ以上のアプリケーションプログラム（Ａｐｐｓ）、オペレーティングシステム（ＯＳ）、及び種々の他のソフトウェア６０を含む。このソフトウェア６０は、システムのコンポーネントを使用するときに種々のドライバと対話する。例えば、グラフィックドライバ６２は、グラフィックユニット２０のために使用され、オーディオドライバ６４は、オーディオユニット２２のために使用され、ネットワークドライバ６６は、ネットワーク周辺装置２４のために使用され、他の周辺装置ドライバ６８は、他の周辺装置２４のために使用され、そしてＰＭＵドライバ７０は、ＰＭＵ２８のために使用される。従って、ソフトウェア６０がグラフィックユニット２０と通信する場合に、ソフトウェア６０は、グラフィックドライバ６２、等をコールする。ドライバの各々は、それに対応するコンポーネントと通信する。
【００４５】
更に、ドライバ６２、６４、６６及び６８の各々は、ＰＭＵドライバ７０と通信する。ＰＭＵドライバ７０は、装置アクティビティテーブル７２においてドライバ６２、６４、６６及び６８により駆動されるコンポーネントのアクティビティを監視する。監視されるアクティビティは、対応コンポーネントをイネーブル及びディスエイブルすることを含む。監視されるアクティビティは、更に、ユニットの他の性能特性に対する変化を含む。監視されるアクティビティに基づき、ＰＭＵドライバ７０は、性能構成レジスタ３０のスリープ及びウェイク構成において使用される各性能ドメインに対する性能状態を選択する。更に、選択された性能状態にも影響する他の情報が装置アクティビティテーブルへコード化される（例えば、プロセッサがスリープ状態にあるときの種々のコンポーネントの必要な性能）。
【００４６】
又、ソフトウェア６０は、ＰＭＵドライバ７０と直接通信する。例えば、プロセッサにおいてスリープ及びウェイク移行に対して遂行される自動的な性能状態移行に加えて、ソフトウェア６０は、全体的にシステムのアクティビティに基づいて性能状態を直接変更する。即ち、プロセッサがスリープ状態へ進まない場合も、１つ以上の性能ドメインの性能状態を変更することが望ましい。ソフトウェア６０は、そのような変更を直接要求する。
【００４７】
図５は、ＰＭＵドライバ７０の一実施形態の動作を示すフローチャートである。ＰＭＵドライバ７０は、システムで実行されたときに、フローチャートに記載した動作を実施するインストラクションを含む。理解を容易にするためにブロックは特定の順序で示されているが、他の順序を使用してもよい。
【００４８】
コンポーネントドライバ６２、６４、６６又は６８が装置イネーブル又はディスエイブル要求を受信する場合に、ドライバは、その要求をＰＭＵドライバ７０へ送信する。ＰＭＵドライバ７０は、その要求を受信し、そして（判断ブロック８０「イエス」岐路）イネーブル又はディスエイブルイベントを装置アクティビティテーブル７２に記録する（ブロック８２）。ある実施形態では、ＰＭＵドライバ７０は、装置のイネーブル又はディスエイブルを遂行する。他の実施形態では、対応するコンポーネントドライバは、イネーブル／ディスエイブルを遂行し、そしてイベントを記録するためにＰＭＵドライバ７０をコールする。
【００４９】
ある実施形態では、ＰＭＵドライバ７０は、所与のコンポーネントにおける他のイベントを監視する。コンポーネントドライバも、それらのイベントをＰＭＵドライバ７０に通信する。そのようなイベントを受信すると（判断ブロック８４「イエス」岐路）、ＰＭＵドライバ７０は、そのイベントを装置アクティビティテーブルに記録する（ブロック８２）。
【００５０】
ＰＭＵドライバ７０は、１つ以上の性能ドメインに対する性能状態の変更を遂行すべきであることを装置アクティビティテーブル７２に記録されたイベントが指示するかどうか決定する。更に、ソフトウェア６０は、１つ以上の性能ドメインにおける変更を直接要求する。いずれの場合にも（判断ブロック８６「イエス」岐路）、ＰＭＵドライバ７０は、性能状態変更のための対応するハードウェアコンポーネントを準備し（例えば、新たな性能特性を通信し−ブロック８８）、そして移行を呼び出す（ブロック９０）。従って、ブロック８８及び９０は、１つ以上の性能ドメインに対するソフトウェアコントロールの性能状態移行を表わす。
【００５１】
ＰＭＵドライバ７０は、更に、プロセッサがスリープ状態に入る準備をしていることを検出する（判断ブロック９２「イエス」岐路）。ＰＭＵドライバ７０は、少なくとも装置アクティビティテーブル７２の一部分に基づいて性能ドメインのための望ましいスリープ及びウェイク状態を決定する（ブロック９４）。ＰＭＵドライバ７０は、必要に応じて、性能状態を選択するために性能構成レジスタ３０を更新し（ブロック９６）、そして性能状態移行を生じさせるためにＰＭＵ２８にスリープコマンドを送信する（例えば、ＰＭＵ２８のスリープコマンドレジスタに書き込みする）（ブロック９８）。他の実施形態では、スリープ状態に入るプロセッサが直接検出され、その検出に基づいて性能状態移行が生じるようにされる。そのような実施形態では、ブロック９８が排除される。
【００５２】
従って、ブロック９４及び９６は、プロセッサにおけるスリープ及びウェイク状態移行の両方に対して、性能ドメインのための性能状態でＰＭＵ２８をプログラミングすることを表わす。
【００５３】
システム及びコンピュータアクセス可能な記憶媒体
図６は、システム１５０の一実施形態のブロック図である。ここに示す実施形態では、システム１５０は、１つ以上の周辺装置１５４及び外部メモリ１５８に結合された集積回路１０（図１）の少なくとも１つのインスタンスを備えている。集積回路１０に供給電圧を供給すると共に、メモリ１５８及び／又は周辺装置１５４に１つ以上の供給電圧を供給する電源１５６も設けられている。この電源１５６は、例えば、図１に示された電源１２を含む。ある実施形態では、集積回路１０の２つ以上のインスタンスが含まれる（そして２つ以上の外部メモリ１５８も含まれる）。
【００５４】
周辺装置１５４は、システム１５０の形式に基づいて望ましい回路を含む。例えば、一実施形態では、システム１５０は、移動装置（例えば、パーソナルデジタルアシスタント（ＰＤＡ）、スマートホン、等）を含み、そして周辺装置１５４は、ＷｉＦｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、セルラー、グローバルポジショニングシステム、等の種々の形式のワイヤレス通信のための装置を含む。又、周辺装置１５４は、ＲＡＭ記憶装置、ソリッドステート記憶装置、又はディスク記憶装置を含めて、付加的な記憶装置も含む。更に、周辺装置１５４は、タッチディスプレイスクリーン又はマルチタッチディスプレイスクリーンを含むディスプレイスクリーン、キーボード又は他の入力装置、マイクロホン、スピーカ、等のユーザインターフェイス装置を含む。他の実施形態では、システム１５０は、任意の形式のコンピューティングシステム（例えば、デスクトップパーソナルコンピュータ、ラップトップ、ワークステーション、ネットトップ、等）である。
【００５５】
外部メモリ１５８は、任意の形式のメモリを含む。例えば、外部メモリ１５８は、ＳＲＡＭ、ダイナミックＲＡＭ（ＤＲＡＭ）、例えば、同期ＤＲＡＭ（ＳＤＲＡＭ）、倍データレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３、等）ＳＤＲＡＭ、ＲＡＭＢＵＳ  ＤＲＡＭ、等である。外部メモリ１５８は、メモリ装置がマウントされる１つ以上のメモリモジュール、例えば、シングルインラインメモリモジュール（ＳＩＭＭ）、デュアルインラインメモリモジュール（ＤＩＭＭ）、等を含む。
【００５６】
図７は、コンピュータアクセス可能な記憶媒体２００のブロック図である。一般的に述べると、コンピュータアクセス可能な記憶媒体は、コンピュータにインストラクション及び／又はデータを与えるために使用中にコンピュータによりアクセスできる記憶媒体を含む。例えば、コンピュータアクセス可能な記憶媒体は、磁気又は光学媒体のような記憶媒体、例えば、ディスク（固定又は取り外し可能）、テープ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、又はＢｌｕ−Ｒａｙを含む。記憶媒体は、更に、揮発性又は不揮発性メモリ媒体、例えば、ＲＡＭ（例えば、同期ダイナミックＲＡＭ（ＳＤＲＡＭ）、ＲａｍｂｕｓＤＲＡＭ（ＲＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、等）、ＲＯＭ、フラッシュメモリ、不揮発性メモリ（例えば、フラッシュメモリ）を含み、これらは、ユニバーサルシリアルバス（ＵＳＢ）インターフェイス、フラッシュメモリインターフェイス（ＦＭＩ）、シリアル周辺インターフェイス（ＳＰＩ）、等の周辺インターフェイスを経てアクセスできるものである。記憶媒体は、マイクロエレクトロメカニカルシステム（ＭＥＭＳ）を含むと共に、ネットワーク及び／又はワイヤレスリンクのような通信媒体を経てアクセスできる記憶媒体を含む。図７のコンピュータアクセス可能な記憶媒体２００は、ソフトウェア６０、グラフィックドライバ６２、オーディオドライバ６４、ネットワークドライバ６６、他の周辺ドライバ６８、ＰＭＵドライバ７０、及び／又は装置アクティビティテーブル７２の１つ以上を記憶する。ＰＭＵドライバ７０は、実行時に、図５を参照して上述した動作を実施するインストラクションを含む。一般的に、コンピュータアクセス可能な記憶媒体２００は、実行時に、図５に示す動作の一部分又は全部を実施するインストラクションのセットを記憶する。キャリア媒体は、コンピュータアクセス可能な記憶媒体や、ワイヤード又はワイヤレス送信のような送信媒体を含む。
【００５７】
当業者であれば、以上の開示を完全に理解すると、種々の修正や変更が明らかとなろう。そのような修正や変更は、全て、特許請求の範囲に網羅されるものとする。
【符号の説明】
【００５８】
１０：集積回路（ＩＣ）
１２：電源
１４Ａ−１４Ｆ：性能ドメイン
１６Ａ、１６Ｂ：プロセッサ
１８：コンポーネント
２０：グラフィックユニット
２２：オーディオユニット
２４：周辺装置
２６：メモリコントローラ
２８：電力管理ユニット（ＰＭＵ）
３０Ａ、３０Ｂ、３０Ｃ：性能構成レジスタセット
３２：クロック／電圧コントロールユニット
６０：Ａｐｐｓ、ＯＳ、等
６２：グラフィックドライバ
６４：オーディオドライバ
６６：ネットワークドライバ
６８：他の周辺装置ドライバ
７０：ＰＭＵドライバ
７２：装置アクティビティテーブル
【図１】
2013524367.tif 000003
【図２】
2013524367.tif 000004
【図３】
2013524367.tif 000005
【図４】
2013524367.tif 000006
【図５】
2013524367.tif 000007
【図６】
2013524367.tif 000008
【図７】
2013524367.tif 000009
【手続補正書】
【提出日】平成24年10月4日(2012.10.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサと、
１つ以上の性能状態を指示するようにプログラムできる１つ以上のレジスタと、
前記１つ以上のレジスタ及び前記プロセッサに結合されたコントロール回路であって、前記プロセッサが低性能状態に入ることを検出するように構成され、且つ前記プロセッサが低性能状態に入るのに応答して、集積回路の少なくとも１つの性能ドメインの性能状態を、１つ以上の性能状態のうちの第１の性能状態へ変更するように構成されたコントロール回路と、を備えた集積回路であって、
前記コントロール回路は、前記プロセッサが低性能状態を出ることを検出するように構成され、
前記コントロール回路は、前記プロセッサが低性能状態を出るのに応答して、前記集積回路の少なくとも１つの性能ドメインの性能状態を、１つ以上の性能状態のうちの第２の性能状態へ変更するように構成され,
前記第２の性能状態は、実際に前記プロセッサが低性能状態に入る前の第３の性能状態とは異なる、ことを特徴とする集積回路。
【請求項２】
前記少なくとも１つの性能ドメインはプロセッサを含む、請求項１に記載の集積回路。
【請求項３】
前記コントロール回路は、前記第１の性能状態への変更が完了する時間を指示する第１のタイムスタンプを記録するように構成され、
前記コントロール回路は、前記第２の性能状態への変更が完了する時間を指示する第２のタイムスタンプを記録するように構成された、請求項２に記載の集積回路。
【請求項４】
複数の性能ドメインの１つに各々含まれる複数のコンポーネントをさらに備え、
前記コントロール回路は、プロセッサが異なる性能状態へ移行するのに応答して、少なくとも前記複数の性能ドメインのうちの第２の性能ドメインを、前記レジスタにプログラムされた第４の性能状態へと移行するように構成され、
前記第１の性能ドメインは、前記プロセッサを含まない、請求項１に記載の集積回路。
【請求項５】
前記第２の性能ドメインは、前記プロセッサが低性能状態にいる時間の間、アクティブな１つ又は複数のコンポーネントに対応する、請求項４に記載の集積回路。
【請求項６】
前記プロセッサは、前記複数のコンポーネント内の活動を監視する複数の命令を実行するように構成され、
前記プロセッサは、前記プロセッサが前記低電力状態に入るのに応答して使用される複数の性能ドメインの性能状態を示すために、および前記プロセッサが前記低性能状態から出るのに応答して使用される他の性能状態を示すために、前記レジスタにプログラムするように構成されている、請求項４に記載の集積回路。
【請求項７】
前記プロセッサは、前記複数のコンポーネントの第１のコンポーネントを活動化する要求に応答して、前記複数の命令を実行するように構成され、
前記活動の監視は、前記第１のコンポーネントの前記活動化の指示を記録することを含む、請求項６に記載の集積回路。
【請求項８】
前記プロセッサは、前記複数のコンポーネントの第２のコンポーネントを非活動化する要求に応答して、前記複数の命令を実行するように構成され、
前記活動の監視は、前記第２のコンポーネントの前記非活動化の指示を記録することを含む、請求項６に記載の集積回路。
【請求項９】
プロセッサがシステムの低性能状態に入る段階と、
制御回路が、システムの性能ドメインを、プロセッサが低性能状態にある時間中に動作するための第１性能状態へ移行させる段階であって、前記第１の性能状態は前記制御回路においてプログラムできるものである段階と、
前記プロセッサが前記低性能状態から出ていることを、前記制御回路が検出する段階と、
前記プロセッサが前記低性能状態から出た後に動作するために、前記制御回路が前記性能ドメインを第２の性能状態に移行させる段階であって、前記第２の性能状態は前記制御回路内でプログラムされ、前記第２の性能状態は、前記プロセッサが前記低性能状態に入る前に有効であった第３の性能状態とは異なる、段階と、を有することを特徴とする方法。
【請求項１０】
前記システムの動作の監視に応答して、前記制御回路へプログラムするために、前記第１の性能状態を判定する段階をさらに有する、請求項９に記載の方法。
【請求項１１】
前記システムを監視し続ける段階と、
前記監視し続けることに応答して、第４の性能状態で前記制御回路を再プログラミングする段階と、を更に有する請求項１０に記載の方法。
【請求項１２】
システムの複数のコンポーネント内の活動を監視する段階であって、前記コンポーネントは、１つ又は複数の性能ドメイン内に含まれ、前記システムは、少なくとも１つのプロセッサを含む、段階と、
前記１つ又は複数の性能ドメインの第１の性能ドメインの第１の性能状態を示すために、システムの１つ又は複数の性能ドメインに対応する複数のレジスタをプログラムする段階であって、前記システムは、前記プロセッサが低性能状態に入ることに応答して前記第１の性能ドメインの前記第１の性能状態を確立するものである、段階と、
前記第１の性能ドメインの第２の性能状態を示すために、前記システムの前記１つ又は複数の性能ドメインに対応する第２の複数のレジスタをプログラムする段階であって、前記システムは、前記プロセッサが低性能状態から出ることに応答して前記第１の性能ドメインの前記第２の性能状態を確立するものである、段階と、を有することを特徴とする方法。
【請求項１３】
前記複数のコンポーネントの第１のコンポーネントを活動化する要求に応答して、前記方法が実行され、
前記活動を監視する段階は、前記第１のコンポーネントの前記活動化の指示を記録することを含む、請求項１２に記載の方法。
【請求項１４】
前記複数のコンポーネントの第２のコンポーネントを非活動化する要求に応答して、前記方法が実行され、
前記活動を監視する段階は、前記第２のコンポーネントの前記非活動化の指示を記録することを含む、請求項１２に記載の方法。
【国際調査報告】
2013524367.tif 000010