(57)【要約】【課題】複数の回路の性能パラメータを整合するためのシステム及び方法を提供する。【解決手段】複数のドメインにおいて性能パラメータを整合するシステム及び方法が開示される。方法は、第１ドメイン及び第２ドメインを含む電子回路の状態を切り換えるための要求を受け取り、第１ドメインに作用する第１回路の第１パラメータを、その要求に基づいて第１の変更パラメータへと変更させ、そして第２ドメインに作用する第２回路の第２パラメータを、その要求に基づいて第２の変更パラメータへと変更させることを含む。あるケースでは、パラメータは、クロック周波数を含む。他のケースでは、パラメータは、電圧を含む。ある実施形態では、システムは、ロジック回路及び／又はシステムオンチップ（ＳｏＣ）として具現化される。【選択図】図１
2012150815.tif 000002
【特許請求の範囲】
【請求項１】
第１の性能ドメイン及び第２の性能ドメインを含む回路の状態を切り換えるための要求を受け取る段階と、
前記第１の性能ドメインに作用する第１クロックの第１周波数を、前記要求に基づいて第１の変更周波数へと変更する段階と、
前記第２の性能ドメインに作用する第２クロックの第２周波数を、前記要求に基づいて第２の変更周波数へと変更する段階であって、前記第２の変更周波数は、前記第１の変更周波数とは独立したものである段階と、
を備えた方法。
【請求項２】
前記要求を受け取る段階は、性能状態指示がレジスタに記憶されたと決定することを含む、請求項１に記載の方法。
【請求項３】
前記第１の変更周波数及び第２の変更周波数を示すデータを記憶する第１の性能状態テーブルエントリーを識別する性能状態指示を受け取る段階を更に備えた、請求項１に記載の方法。
【請求項４】
前記第１クロック回路の第１周波数を変更する前に前記第１の性能状態テーブルエントリーにおける第１の変更周波数を識別する段階を更に備えた、請求項３に記載の方法。
【請求項５】
前記第１の性能状態テーブルエントリーは、更に、前記第１の性能ドメイン及び第２の性能ドメインに対して１つ以上の付加的な構成パラメータを記憶し、前記方法は、更に、前記付加的な構成パラメータに応答して前記第１の性能ドメイン及び第２の性能ドメインの付加的な構成を変更する段階を備えた、請求項４に記載の方法。
【請求項６】
前記１つ以上の付加的な構成パラメータは、前記第１の性能ドメイン及び第２の性能ドメインに対する供給電圧の大きさを含む、請求項５に記載の方法。
【請求項７】
前記１つ以上の付加的な構成パラメータは、プログラム可能なコンポーネント構成値を含む、請求項５に記載の方法。
【請求項８】
第１クロックの第１周波数を変更する前記段階は、第１入力から第２入力へのクロック入力を再構成するようにクロックジェネレータに命令することを含む、請求項１に記載の方法。
【請求項９】
クロック入力を再構成するようにクロックジェネレータに命令する前に前記第１及び第２入力がアクティブであると決定する段階を更に備えた、請求項８に記載の方法。
【請求項１０】
第１クロックの第１周波数を変更する前記段階は、クロック除算器を再構成するようにクロックジェネレータに命令することを含む、請求項１に記載の方法。
【請求項１１】
前記第１及び第２周波数を変更する前に、装置の状態を切り換えるための後続要求を受け取る段階と、
少なくとも前記第１及び第２周波数が変更されるまで前記後続要求を拒絶する段階と、
を更に備えた請求項１に記載の方法。
【請求項１２】
プロセッサと、
前記プロセッサに結合されたロジック回路と、
を備え、前記ロジック回路は、
システムオンチップ(ＳｏＣ)に所与の状態を確立するための要求に応答して第１及び第２周波数を導出し、前記第２周波数は、前記第１周波数から独立したものであり、
コントロール回路が、前記第１周波数を有する第１クロックを前記ＳｏＣの第１性能ドメインに与えるようにさせ、
前記コントロール回路が、前記第２周波数を有する第２クロックを前記ＳｏＣの第２性能ドメインに与えるようにさせる、
ように構成された、システムオンチップ(ＳｏＣ)。
【請求項１３】
前記ロジック回路は、更に、
前記所与の状態を前記第１及び第２周波数に相関するテーブルから前記第１及び第２の周波数を導出し、
前記所与の状態に対して前記テーブルに指定されたクロック入力又はクロック除数を選択するように前記コントロール回路に命令する、
ように構成された、請求項１２に記載のＳｏＣ。
【請求項１４】
前記ロジック回路は、更に、前記所与の状態を前記第１及び第２周波数に相関するテーブルから前記第１及び第２の周波数を導出するように構成され、前記要求は、レジスタに記憶された指示を含み、そして前記指示は、前記テーブル内のエントリーを識別する、請求項１３に記載のＳｏＣ。
【請求項１５】
前記コントロール回路は、更に、前記所与の状態に関する情報を、前記プロセッサに結合されたメモリコントローラに与えるように構成された、請求項１２に記載のＳｏＣ。
【請求項１６】
ＳｏＣに所与の状態を確立するための要求に応答して第１及び第２周波数を導出し、前記第２周波数は、前記第１周波数から独立したものであり、
コントロール回路が、前記第１周波数を有する第１クロックを前記ＳｏＣの第１性能ドメインに与えるようにさせ、
前記コントロール回路が、前記第２周波数を有する第２クロックを前記ＳｏＣの第２性能ドメインに与えるようにさせる、
ように構成された電力管理回路を備えたロジック回路。
【請求項１７】
前記第２の変更クロック周波数は、前記第１の変更クロック周波数とは異なり且つその倍数以外のものである、請求項１６に記載のロジック回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムの分野に係り、より詳細には、複数の回路の性能パラメータを整合するためのシステム及び方法に係る。
【背景技術】
【０００２】
集積回路又は「チップ」に内蔵されるトランジスタの数が増加し続けるにつれて、電力管理の重要性がより明確になってきている。実際に、電力管理は、一般的に、多数の電子装置を設計する上で重要な要件である。例えば、ポータブル装置の場合に、電力管理技術は、バッテリ寿命を延長し、それ故、製品の有用性を高めることができ。更に、特定の装置がバッテリで動作しない場合でも、電力消費の管理により多数の利益を得ることができる。例えば、エネルギー消費量を減少するのに加えて、電力管理は、所与の装置で発生される熱を減少し、ひいては、その冷却要件を改善することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
集積回路における電力と性能のトレードオフを管理する部分として、集積回路上の種々のコンポーネントの性能状態を切り換えることができる。例えば、種々のコンポーネントにより使用されるクロックのクロック周波数を切り換えることができる。多数のコンポーネントに対する切り換えの管理を正しく実施することは、困難である。
【課題を解決するための手段】
【０００４】
本発明は、例えば、電力管理メカニズムを実施するコンピューティング装置に関連して種々の環境で使用されるシステム及び方法を開示する。ある実施形態では、ここに開示するシステム及び方法は、多数のハードウェアコンポーネントを単一の回路内に一体化できるようにシステムオンチップ（ＳｏＣ）又は特定用途向け集積回路（ＡＳＩＣ）において実施される。これらシステム及び方法を使用するのに適した電子装置の例は、デスクトップコンピュータ、ラップトップコンピュータ、タブレット、ネットワークアプリケーション、移動電話、パーソナルデジタルアシスタント（ＰＤＡ）、ｅ−ブックリーダー、テレビジョン、ビデオゲームコンソール、等を含むが、これに限定されない。
【０００５】
ある実施形態では、方法は、回路が２つ以上の性能ドメインを有する場合に、回路、コンポーネント又は装置の状態を切り換える要求を受け取ることを含む。これら２つ以上の性能ドメインは、異なる性能レベルで動作するように構成された回路、コンポーネント又は装置のエリアを含む。種々の性能レベル又は状態の間をスイッチする能力は、電力管理メカニズムによって与えられる。例えば、装置が第１状態にあるときには、第１の性能ドメインが第１のクロック周波数又は電圧で動作し、一方、第２の性能ドメインが第２のクロック周波数又は電圧で動作する。又、装置が第２状態にあるときには、これらの性能ドメインが、変更された周波数又は電圧で動作する。性能ドメインの他のパラメータを切り換えることもできる。
【０００６】
状態切り換え要求を受け取ると、この方法は、例えば、第１の性能ドメインに作用する第１クロックの第１周波数を第１の変更周波数へと変更し、そして第２の性能ドメインに作用する第２クロックの第２周波数を第２の変更周波数へと変更することを含む。ある実施形態では、第２の変更周波数は、第１の変更周波数とは独立している。他の実施形態では、第２の変更周波数は、第１の変更周波数とは異なってもよいし、その倍数以外のものでもよい。
【０００７】
ある実施形態において、状態切り換え要求は、単一レジスタに書き込まれる値又は指示を含み、これは、次いで、第１及び第２の周波数を第１及び第２の変更周波数（又は電圧）へ各々スイッチするのに使用する構成パラメータをルックアップし又は導出するのに使用される。一例において、この方法は、指示によりインデックスされる性能状態テーブルにアクセスし、このテーブルは、対応する性能ドメインへクロック信号を供給するクロックジェネレータの特定セットにより使用される構成パラメータを含む。別の例において、性能状態テーブルは、対応する性能ドメインへ電圧を供給する電圧供給源の特定セットにより使用される構成パラメータを含む。性能状態テーブルは、種々の他の構成パラメータも含むことができる。
【０００８】
ある実施形態において、クロック周波数を変更することは、第１入力又はソースから第２入力又はソースへのクロック入力を再構成するようにクロックジェネレータに命令することを含む。他の実施形態では、クロック周波数を変更することは、クロック除数を再構成するようにクロックジェネレータに命令することを含む。更に別の実施形態では、電圧を変更することは、異なる入力又は出力へスイッチするように電源回路に命令することを含む。これら実施形態の各々において、性能状態テーブルは、クロックジェネレータ又は電圧供給回路がその動作モードを切り換えるようにさせる基礎的なインストラクション（例えば、選択されたソース、除数値、等）も指示する。
【０００９】
従って、性能状態テーブルを使用すると、あるケースでは、幾つかの基礎的切り換えを行うのに必要な特定の構成パラメータをソフトウェアで与え及び／又は管理しなくても、ソフトウェアで特定の回路又は性能ドメインが望ましい性能状態に入るようにさせることができる。他のケースでは、性能状態テーブルは、装置の所与の状態に対して、装置の性能ドメイン又は回路の各々を適当な又は望ましい状態に入れるように種々の構成パラメータを記憶することができる。その結果、ソフトウェアにより、全装置（又はそのサブセット）が少ないコマンド数で所与の状態に直ちに入るようにさせることができる。
【００１０】
ある実施形態では、システムオンチップ（ＳｏＣ）は、プロセッサと、該プロセッサに結合されたロジック回路とを備えている。ロジック回路は、ＳｏＣを所与の状態に入れる要求に応答して第１周波数及び第２周波数を導出するよう構成され、第２周波数は、第１周波数から独立している。又、ロジック回路は、ＳｏＣの第１ドメインに作用する第１のクロック回路が第１周波数で第１クロックを発生するようにさせ、そしてＳｏＣの第２ドメインに作用する第２のクロック回路が第２周波数で第２クロックを発生するようにさせるようにも構成される。
【００１１】
他の実施形態において、ロジック回路は、第１性能ドメイン及び第２性能ドメインを有する装置の状態を切り換える要求を受け取り、第１性能ドメインに作用する第１回路の第１パラメータを第１の変更パラメータへと変更させ、そして第２性能ドメインに作用する第２回路の第２パラメータを第２の変更パラメータへと変更させるように構成される。あるケースでは、第２の変更パラメータは、第１の変更パラメータとは独立している。これらのパラメータは、クロック周波数、電圧、その組み合わせ、及び／又は他のパラメータである。又、ロジック回路は、電力管理回路に結合されて電力管理回路の１つ以上の動作をイネーブルするように構成された１つ以上のプログラム可能なレジスタも備えている。
【００１２】
以下、添付図面を参照して、本発明を詳細に説明する。
【図面の簡単な説明】
【００１３】
【図１】ある実施形態によるシステムのブロック図である。
【図２】ある実施形態による性能状態テーブルを示す図である。
【図３】ある実施形態によりシステムパラメータを整合する方法を表すフローチャートである。
【図４】ある実施形態によるソフトウェア環境を示す図である。
【図５】ある実施形態によるコンピュータシステムのブロック図である。
【発明を実施するための形態】
【００１４】
本発明は、種々の変更を受けそして別の形態でも実施できるが、その特定の実施形態を一例として添付図面に示して以下に詳細に説明する。しかしながら、添付図面及び詳細な説明は、本発明を、ここに開示する特定の形態に限定するものではなく、本発明は、特許請求の範囲に規定される本発明の精神及び範囲内に入る全ての変更、等効物及び代替え物を網羅することを理解されたい。ここに使用する見出しは、編成上の目的に過ぎず、説明の範囲を限定するためのものではない。又、本出願全体にわたって使用される「〜してもよい(may)」という語は、許すという意味（即ち、〜の潜在性があるという意味）で使用されるもので、強制の意味（即ち、〜しなければならないという意味）ではない。同様に、「含む(include)」、「含んでいる(including)」及び「含む(includes)」という語は、含むことを意味するが、それに限定されない。
【００１５】
種々のユニット、回路又は他のコンポーネントは、１つ又は複数のタスクを遂行するように「構成される」ものとして述べる。この点について、「構成される」とは、動作中に１つ又は複数のタスクを遂行する「回路を有する」ことを一般的に意味する構造を広く表現するものである。従って、ユニット／回路／コンポーネントは、そのユニット／回路／コンポーネントが現在オンでなくても、タスクを遂行するように構成することができる。一般的に、「構成される」に対応する構造を形成する回路は、ハードウェア回路を含む。同様に、種々のユニット／回路／コンポーネントは、説明の便宜上、１つ又は複数のタスクを遂行するものとして説明されてもよい。そのような説明は、「構成される」という句を含むものと解釈されねばならない。１つ以上のタスクを遂行するように構成されたユニット／回路／コンポーネントを表現する場合に、そのユニット／回路／コンポーネントの解釈に関して３５Ｕ.Ｓ.Ｃ.§１１２、第６節を引用しないことが明確に意図される。
【００１６】
ある実施形態において、電力管理ユニット又は回路は、電子装置内に設けられる。電子装置は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレット、ネットワーク機器（例えば、ゲートウェイ、ルーター、アクセスポイント、等）、移動電話、パーソナルデジタルアシスタント（ＰＤＡ）、ｅ−ブックリーダー、テレビジョン、ビデオゲームコンソール、又は他の適当な電子装置を含む。従って、この装置は、例えば、プロセッサ、周辺装置、コントローラ、等の他の回路又はサブシステムも含む。更に、これら回路の２つ以上（又は回路のグループ）が、変化する性能レベルで動作できる異なる性能ドメインを構成してもよい。従って、ある実施形態では、電力管理ユニットは、複数の性能ドメインのシステムパラメータを整合するための方法を遂行する。より詳細には、電力管理ユニットは、複数のエントリーを有する性能状態テーブルを含む。各エントリーは、２つ以上の性能ドメインに対して構成パラメータを指定する。レジスタ（１つ又は複数）は、テーブルにおけるエントリーの１つを指すようにプログラムされ、そして電力マネージャーは、その選択されたエントリーに指定された性能状態で性能ドメインが動作するようにさせる。
【００１７】
図１は、ある実施形態によるシステムのブロック図である。図示されたように、このシステムは、電源１１０に結合されたシステムオンチップ（ＳｏＣ）又は特定用途向け集積回路（ＡＳＩＣ）を形成する集積回路（ＩＣ）１００を備えている。この集積回路１００は、性能ドメイン１２０Ａ−Ｆのセットを含む。各性能ドメイン１２０Ａ−Ｆは、少なくとも１つのサブシステム、回路又はコンポーネントを含み、そして所与の性能ドメインは、２つ以上のコンポーネントを含む。例えば、性能ドメイン１２０Ａは、２つのコンポーネント、即ちプロセッサ１６０Ａ及び別のコンポーネント１７０（例えば、コヒレンシーコントローラ、等）を含み、そして性能ドメイン１２０Ｄは、２つ以上のネットワーク又は他の周辺装置１６０Ｄを含む。ここに示す実施形態では、性能ドメイン１２０Ｂは、グラフィックサブシステム１６０Ｂを含み、性能ドメイン１２０Ｃは、オーディオサブシステム１６０Ｃを含み、性能ドメイン１２０Ｅは、メモリコントロール回路１６０Ｅを含み、そして性能ドメイン１２０Ｆは、任意の第２のプロセッサ１６０Ｆを含む。又、集積回路１００は、電力管理ユニット（ＰＭＵ）１４０も備え、これは、１つ以上の性能構成レジスタ１５０を含む。ＰＭＵ１４０は、クロック及び／又は電圧コントロールユニット（コントロールユニット）１３０に結合され、これは、電源１１０に結合される。
【００１８】
集積回路１００内のコンポーネントは、適当なバス及び／又はインターフェイスメカニズムを使用して互いに結合される。又、ＰＭＵ１４０及びコントロールユニット１３０は、それらの各インターフェイスに結合されるのに加えて、性能ドメイン１２０Ａ−Ｆにも結合される。例えば、コントロールユニット１３０は、性能ドメイン１２０Ａ−Ｆの１つ以上にクロック信号を供給する。それに加えて又はそれとは別に、コントロールユニット１３０は、電源１１０と対話して、性能ドメイン１２０Ａ−Ｆの１つ以上へ１つ以上の供給電圧を供給することを要求する。集積回路１００がポータブル装置内に存在する実施形態では、電源１１０は、バッテリ、等である。
【００１９】
ＰＭＵ１４０は、種々の性能ドメイン１２０Ａ−Ｆに対する性能状態間の遷移をコントロールするよう構成される。例えば、ＰＭＵ１４０は、性能ドメイン１２０Ａ−Ｆの１つ以上を異なる性能状態へ自動的に遷移するように構成される。ＰＭＵ１４０の性能状態テーブルの各エントリーは、種々の性能ドメインに対する性能状態の組み合わせでプログラムされ、そしてソフトウェアが、エントリーの１つを選択するために１つ又は複数のレジスタを書き込む。ＰＭＵ１４０は、選択されたエントリーで指示された性能状態に対して性能ドメインの遷移を整合するように構成される。
【００２０】
ある実施形態では、性能ドメインは、性能構成の目的でＰＭＵ１４０によりユニットとして制御されるコンポーネントのセットである。即ち、ＰＭＵ１４０は、性能ドメインごとに対応する性能状態を確立するように構成され、又、各性能ドメインにおける性能状態間の遷移をコントロールするように構成される。従って、性能ドメインを形成するコンポーネントは、ある性能状態から別の性能状態へ一緒に遷移する。他の実施形態では、異なる性能ドメインのコンポーネントは、少なくともハードウェアの観点から互いに独立し、そして独立して決定された性能状態を有する。ある性能ドメインは、（例えば、ソフトウェアにおいて）より高いレベルに論理的にリンクされる。例えば、ドメイン１２０Ｃ及び１２０Ｄは、サウンドを含むビデオをユーザが見る（従って、ビデオ画像を表示するためのグラフィックサブシステム１６０Ｂ及びそれに付随するサウンドを再生するためのオーディオサブシステム１６０Ｃを同時に使用する）場合にそれらの性能状態に関して論理的にリンクされる。
【００２１】
所与の性能状態は、それに対応する性能ドメイン内のコンポーネントに対する構成パラメータの組み合わせを含む。構成パラメータとは、コンポーネントの性能に影響するコンポーネントの選択可能な設定である。例えば、コンポーネント又は性能ドメインに与えられるクロック信号の動作周波数は、その性能に影響し、従って、構成パラメータと考えられる。というのは、例えば、低い動作周波数は、低い性能（及び低い電力消費）を生じるからである。別の例として、性能ドメインに与えられる供給電圧は、その性能に影響し、構成パラメータでもある。
【００２２】
ある構成パラメータは、コンポーネント特有のものである。そのような構成パラメータの例は、種々のキャッシュのキャッシュサイズ、インターフェイスのデータ巾又は他のデータ転送レートパラメータ、パラレルに動作するユニット（例えば、プロセッサ内の実行ユニット、グラフィックユニット内のピクセルパイプライン又は他の画像処理パイプライン、等）の中でアクティブな対称的ユニットの数、単位時間当たりに処理されるインストラクション、オペレーション、通信、及び／又はメモリ要求の数、カラーパレットのグラフィック解像度又はサイズ、オーディオ分解能及びサンプリングレート、メモリ帯域巾、プロセッサのスリープ／ウェーク状態、等を含むが、それらに限定されない。更に、コンポーネント又はその一部分が電力ゲート作動及び／又はクロックゲート作動される場合には、電力及び／又はクロックイネーブルが構成パラメータとなる。ある実施形態では、構成パラメータは、１つ以上の性能ドメインがどの性能状態にあるかの情報をメモリコントローラ（例えば、１６０Ｅ）に与える１つ以上のレジスタを含む。手短に述べると、種々の実施形態において、切り換えることができ且つコンポーネント又は性能ドメインの動作又は性能に影響を及ぼすパラメータは、構成パラメータと考えられる。
【００２３】
性能ドメインにおける性能状態の切り換えは、性能ドメインの電力消費に影響する。例えば、動作周波数及び／又は供給電圧を下げると、典型的に、電力消費に直接影響する。キャッシュサイズを減少すると、キャッシュの一部にアクセスする必要がなくなるので、電力消費が減少し、そしてその未使用部分をターンオフする場合には、更なる減少が実現される。更に、キャッシュサイズを減少すると、キャッシュヒット率が低下し、消費者に対してメモリの待ち時間が長くなる。メモリの待ち時間が長くなると、消費者のアクティビティが低下し、電力消費が減少する。インターフェイスにおけるデータ転送巾／レートが減少すると、スイッチングの減少により電力消費が低下する。更に、消費者にデータが供給されるレートを下げると、消費者のアクティビティが低下し、消費者の電力消費が減少する。対称的ユニットにおけるパラレルのアクティビティが低下すると、アクティビティの低下により電力消費が低下する。グラフィック／オーディオ分解能及びカラーパレットが減少すると、画像又はサウンドの単位当たりに転送されるデータの量が減少される。更に、メモリ帯域巾を減少すると、単位時間当たりにメモリにアクセスする電力消費が減少し、消費者のアクティビティが下がる。
【００２４】
ある実施形態では、ＰＭＵ１４０は、ロジック回路、等である。従って、ＰＭＵ１４０は、バイポーラ接合トランジスタ（ＢＪＴ）、電界効果トランジスタ（ＦＥＴ）、他の形式のトランジスタ、ロジックゲート、演算増幅器（ＯＰアンプ）、フリップ−フロップ、キャパシタ、ダイオード、抵抗器、等の標準的電子コンポーネントを含む。構成レジスタ１５０は、特定の機能を実施し及び／又は指定の動作モードに入るためにＰＭＵ１４０により使用される設定を記憶するようにプログラムされる。これら及び他のコンポーネントは、種々の仕方で配列され、そしてここに述べる種々の動作を遂行するよう構成される。
【００２５】
特に、ＰＭＵ１４０は、性能ドメイン１２０Ａ−Ｆにおいて性能状態遷移を生じさせるように構成された回路を備えている。１つの実施形態において、ソフトウェアは、望ましい性能状態切り換えをＰＭＵ１４０へ明確に通信する（例えば、性能状態テーブルのエントリーを選択する指示の形態で）。ＰＭＵ１４０は、その選択されたエントリーにアクセスし、そしてその選択されたエントリーに指定された望ましい性能状態を確立するように構成される。
【００２６】
電圧及び／又はクロック周波数の切り換えを行うことにより性能状態又はレベルに到達するケースでは、ＰＭＵ１４０は、新たな電圧及び／又は周波数設定をコントロールユニット１３０へ通信する。コントロールユニット１３０は、これらの新たな設定を実施し、要求された周波数でクロックを発生し、及び／又は電源１１０からの望ましい供給電圧を要求する。コントロールユニット１３０は、遷移を安全に実行するために、必要に応じて変更を命令する。例えば、クロック周波数及び供給電圧の両方が特定の性能ドメインにおいて増加される場合には、先ず、電圧を増加し、次いで、クロック周波数を上昇するのが安全である。というのは、現在の（低い）供給電圧で回路がゆっくり動作する場合には、クロック周波数を上げると、不適当な動作を招くことがあるからである。ある実施形態では、供給電圧の切り換えで経過する時間の長さは、クロック周波数を切り換える時間より実質的に長いことがある。クロック周波数及び供給電圧が減少される場合には、クロック周波数が先ず減少される（又は周波数及び電圧がパラレルに減少される。というのは、このケースでは、低い供給電圧の前に、低いクロック周波数に到達するからである）。
【００２７】
コントロールユニット１３０は、望ましい供給電圧を要求するために電源１１０と通信する回路を備え、又、動的なクロック発生回路も備えている。例えば、コントロールユニット１３０は、集積回路１００の種々のコンポーネント又は性能ドメインに対してクロック信号を動的に発生するために、１つ以上の位相固定ループ（ＰＬＬ）、マルチプレクサ、クロック除算器／乗算器、等を含む。１つの構成では、１つ以上の発振器が１つ以上のＰＬＬを駆動し、これが、次いで、集積回路１００の主要部分のための基本的クロックを発生する。ＰＬＬ出力は、多数の動的なクロックジェネレータを駆動し、これらジェネレータは、チップの種々の領域又は性能ドメインに対する個々のクロックを発生するように働く。各クロックジェネレータ又は回路は、マルチプレクサ、及び／又は該マルチプレクサに結合された除算器を備えている。動作中に、マルチプレクサは、ジェネレータの入力において特定のクロック信号を選択することができ、そして除算器は、選択された信号の周波数を更に下げて（又は上げて）、望ましい周波数を得る。ある実施形態において、あるジェネレータは、マルチプレクサのみを含み、そして他のジェネレータは、除算器のみを含む。更に、各ジェネレータは、独立してイネーブル及びディスエイブルされ、そしてグリッチフリー的に又は「オンザフライ」で動作する。あるケースでは、グリッチフリー動作を容易にするために、所与のジェネレータは、選択がなされる前にソースが両方とも実行（又はアクティブ）へスイッチされそしてそこからスイッチされることを要求する。
【００２８】
図１を更に参照すれば、プロセッサ１６０Ａ及び／又は１６０Ｆは、インストラクションセットアーキテクチャーを実施し、そしてそのインストラクションセットアーキテクチャーで定義されたインストラクションを実行するように構成される。任意のマイクロアーキテクチャー実施が使用されてもよい（例えば、しかるべき順序で、順序ずれして、思索的に、非思索的に、スカラーで、スーパースカラーで、パイプライン的に、スーパーパイプライン的に、等々）。ある実施形態では、マイクロコーディング技術が、前記のいずれかと組み合わせて使用される。
【００２９】
グラフィックユニット又はサブシステム１６０Ｂは、ディスプレイ装置上の画像の表示に関連した回路を備えている。発生される画像は、静的な画像でもよいし、又はビデオの一部分でもよい。グラフィックユニット１６０Ｂは、レンダリングハードウェア、（ディスプレイ装置の）リフレッシュハードウェア、ビデオエンコーダ及び／又はデコーダ、ビデオ圧縮及び解凍ユニット、等を含む。オーディオユニット又はサブシステム１６０Ｃは、システムにおけるサウンドの再生又は記録に関する回路を備えている。オーディオユニット１６０Ｃは、例えば、オーディオエンコーダ及び／又はデコーダ、デジタル信号プロセッサ、等を備えている。
【００３０】
ネットワーク周辺装置及び他の周辺装置１６０Ｄは、種々の回路を含む。例えば、ネットワーク周辺機器は、サポートされるネットワークのためのメディアアクセスコントローラ（ＭＡＣ）ユニットと、物理的レイヤ回路とを備えている。他の周辺装置は、他の望ましい周辺装置を含み、及び／又は周辺コンポーネント相互接続（ＰＣＩ）、ＰＣＩエクスプレス（ＰＣＩｅ）、ファイアワイヤ、ユニバーサルシリアルバス（ＵＳＢ）、等のオフチップ周辺インターフェイスをコントロールするように構成された周辺インターフェイスコントローラを含む。
【００３１】
メモリコントローラ１６０Ｅは、ダイナミックランダムアクセスメモリ装置（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、倍データレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３、ＤＤＲ４、等）ＳＤＲＡＭ、低電力ＤＤＲ（ＬＰＤＤＲ２、等）ＳＤＲＡＭ、ＲＡＭＢＵＳ  ＤＲＡＭ（ＲＤＲＡＭ）、等のメモリ装置にアクセスするように構成される。１つの実施形態では、メモリコントローラ１６０Ｅは、１つ以上のメモリを含む１つ以上のメモリモジュール（例えば、シングルインラインメモリモジュール（ＳＩＭＭ）、デュアルインラインメモリモジュール（ＤＩＭＭ）、等）へインターフェイスするように構成される。従って、メモリコントローラ１６０Ｅは、メモリインターフェイスを経て通信し、集積回路１００内の他のコンポーネントからメモリ要求をキューイングし、及び／又は他のコンポーネントと通信して、メモリ読み取り及び書き込み動作を満足するように構成される。
【００３２】
図１に示す集積回路１００の実施形態は、多数の性能ドメインを含むが、それより多数の又は少数の性能ドメインがサポートされてもよい。性能ドメイン及びそれらのドメインに含まれるコンポーネントの任意の組み合わせが種々の実施形態において具現化される。
【００３３】
集積回路１００の他の実施形態は、他のコンポーネントを伴ったり伴わなかったりする図示されたコンポーネントのサブセット、他のコンポーネントを伴うスーパーセット、等を含めて、コンポーネントの他の組み合わせを含む。更に、ここに示す実施形態は、集積回路１００に全て含まれたコンポーネント１６０Ａ−Ｆ及び１７０を示しているが、他の実施形態では、コンポーネントが２つ以上の集積回路として実施されてもよい。それに加えて又はそれとは別に、電源１１０の少なくとも一部分が集積回路１００に含まれてもよい。実際には、適当な集積レベル又は個別のコンポーネントが使用される。
【００３４】
上述したように、ＰＭＵ１４０は、種々の性能ドメイン１２０Ａ−Ｆに対する性能状態間の遷移をコントロールするように構成される。ある実施形態では、所与の性能状態から別の性能状態へスイッチするための要求は、１つ以上のレジスタに書き込まれる値又は指示を含み、これは、望ましい性能状態に入るための構成パラメータをルックアップし又は導出するためにＰＭＵ１４０によって使用される。一例において、この方法は、レジスタ（１つ又は複数）へ書き込まれる値によりインデックスされる性能状態テーブルにアクセスし、このテーブルは、対応する性能ドメインへクロック信号を発生するクロックジェネレータの特定セットによって使用される構成パラメータを含む。別の例では、性能状態テーブルは、対応する性能ドメインに電圧を付与する電源の特定セットによって使用される構成パラメータを含む。性能状態テーブルは、更に、上述した種々の他の構成パラメータも含む。
【００３５】
非限定の例示として、クロック周波数及び電圧の両方が、性能ドメイン（例えば、ドメイン１ないしｍ）の各々に対してセットされる構成パラメータであるという状況について考える。性能状態テーブルにｎ個の状態が得られる（即ち、テーブルにｎ個のエントリーがある）場合には、考えられる性能状態テーブルは、次のように構成される。
テーブルＩ
2012150815.tif 000003
【００３６】
この実施形態では、ソフトウェアが集積回路１００の各ドメインに対して周波数（ｆ）及び／又は電圧（Ｖ）をセットすることを望む場合に、例えば、ソフトウェアは、性能状態テーブルの対応エントリー（１ないしｎ）に対するポインタをＰＭＵ１４０の構成レジスタ１５０に書き込む。ＰＭＵ１４０は、選択されたエントリーを読み取り、そして選択されたクロック周波数及び／又は電圧をコントロールユニット１３０へ通信する。コントロールユニット１３０は、次いで、ソフトウェアによる更なる介在及び／又は管理を伴わずに各ドメインの種々の周波数及び／又は電圧への切り換えを整合する。その結果、あるケースでは、集積回路１００の異なる部分が単一コマンド又はレジスタ書き込みでそれらの種々の異なる状態間を交番する。換言すれば、ユーザ及び／又はソフトウェアの観点から、状態間の切り換えは、アトミックに（実際の基礎的なハードウェア切り換えがパラレルに行われる状況でも）且つ高い抽象レベルで（例えば、要求側ソフトウェアは、各クロックジェネレータを個々にプログラムし及び／又は各ジェネレータがどのように構成されるか理解する必要がない）遂行される。
【００３７】
更に、前記テーブルＩに示されたような性能状態テーブルを使用することにより、各性能ドメインは、そのパラメータを独立して切り換える。例えば、クロック周波数のケースでは、所与の状態に対する各周波数ドメインの周波数が互いに異なり、互いの倍数以外のものとなる。他の実施形態では、上述したように、クロック周波数及び電圧以外の構成パラメータがテーブルを埋める。更に、クロック周波数のみがテーブルに含まれる実施形態も考えられる。
【００３８】
ある実施形態では、性能状態テーブルの各エントリーが実際の構成パラメータであり、例えば、ｆ2,3がクロック周波数であり、Ｖ2,3が電圧の大きさであり、等々である。しかしながら、他の実施形態では、性能状態テーブルの各エントリーは、望ましい構成を与えるために回路（例えば、コントロールユニット１３０）に使用される１つ以上の基礎的な設定を含む。例えば、性能ドメイン２が、マルチプレクサ及び除算器を含むクロックジェネレータの作用を受ける場合には、ｆ2,3は、性能ドメイン２へ望ましい周波数を与えるためにクロックジェネレータにより使用できるソース選択及び除算器設定を含む。
【００３９】
図２は、ある実施形態による性能状態テーブルの実施を示す図である。性能状態テーブルは、例えば、ＰＭＵ１４０の構成レジスタ内でプログラムされるもので、ハードウェアにおいてテーブルＩ（上述した）を表す多数の考えられる仕方の１つである。図示されたように、構成レジスタ１５０は、１つ以上の性能状態レジスタ２１０と、１つ以上の状態レジスタ２２０と、プログラム可能な各状態に対して種々の性能ドメイン（１ないしｍ）の構成パラメータ（１ないしｎ）を含む複数のレジスタ２３０−２５０と、を備えている。個別のコンポーネントとして示されたが、他の実施形態では、レジスタ２１０−２５０の２つ以上が結合されてもよい。
【００４０】
性能状態レジスタ２１０は、レジスタ２３０−２５０のどれが（従って、どの性能状態が）現在アクティブであるかコントロールすることができる。例示のため、ソフトウェアが集積回路１００の動作を状態２にセットすることを希望するシナリオについて考える。ソフトウェアは、状態２に対応する値を性能状態レジスタ２１０に書き込み、次いで、ＰＭＵ１４０がレジスタ２４０からパラメータＰ1,2・・・Ｐm,2を選択する。パラメータＰ1,2・・・Ｐm,2の各々は、各性能ドメイン１ないしｍの構成パラメータに対応する。上述したように、パラメータＰ1,2・・・Ｐm,2は、クロック周波数、電圧の大きさ、等である。それに加えて又はそれとは別に、所与のパラメータは、クロック周波数、電圧、等を各性能ドメインに与えるよう回路に命令するのに適した設定を含む。いずれにせよ、ＰＭＵ１４０は、識別されたパラメータをコントロールユニット１３０に与え、コントロールユニットは、次いで、ハードウェア（例えば、スイッチ、マルチプレクサ、等）で切り換えを実施する。
【００４１】
別の実施形態では、レジスタ２３０−２５０の各々は、（他の性能ドメインを除いて）単一の性能ドメインの各状態に対しパラメータを含む。例えば、レジスタ２３０内のＰ1,1は、性能ドメイン１の状態１に対する構成パラメータを表し、Ｐ1,2は、その同じ性能ドメイン、即ち性能ドメイン１の状態２に対する構成パラメータであり、等々である。同様に、レジスタ２４０は、性能ドメイン２の各状態に対して全ての構成パラメータを含み、そしてレジスタ２５０は、性能ドメインｎの各状態に対して全ての構成パラメータを含む。この実施形態では、性能状態レジスタ２１０は、要求された性能状態に対応する各性能ドメインに対し各レジスタ２３０−２５０内の各エントリーを識別し、そしてそれらの構成パラメータをコントロールユニット１３０に与える。
【００４２】
構成レジスタ１５０は、状態レジスタ２２０も含む。例えば、クロックパラメータを構成するとき、コントロールユニット１３０内の各動的クロックジェネレータは、その構成を切り換える間に「ペンディング」値を示すレジスタを含み、この同じ値が状態レジスタ２２０へコピーされる。ある実施形態では、これにより、ＰＭＵ１４０又はソフトウェアは、単一レジスタ即ち状態レジスタ２２０上でのポーリングにより性能状態レジスタ２１０内の変更による全ての変更が効果を発するのを待機できるようになる。別の実施形態では、性能状態レジスタ２１０は、状態レジスタ２２０の全てのペンディングビットがクリアされるのを待機せずに変更される。コントロールユニット１３０は、最終的なクロック構成が、最後に書かれた性能状態レジスタ２１０の値に一致することを保証するが、動的なクロックジェネレータは、あるときには中間構成でもよい。
【００４３】
図３は、ある実施形態によりシステムパラメータを整合する方法を表すフローチャートである。ある実施形態において、この方法３００は、図１のＰＭＵ１４０によって遂行される。３１０において、ＰＭＵ１４０は、集積回路１００の１つ以上の性能ドメイン１２０Ａ−Ｆの状態を切り換えるための要求を受け取る。この要求は、ＰＭＵ１４０内の構成レジスタ１５０の性能状態レジスタ２１０の値に基づいて決定される。コントロール回路１３０の対応クロックジェネレータが例えばマルチプレクサを含む場合のクロック周波数切り換えのケースでは、３２０において、ＰＭＵ１４０は、オリジナルクロック入力及び新たに選択されたクロック入力の両方が作用中又はアクティブであるかどうか決定する。もしそうであれば、３４０において、ＰＭＵ１４０は、状態性能テーブルから新たに要求された状態に対応するパラメータを識別する。ＰＭＵ１４０は、次いで、３５０において、それらパラメータをコントロール回路１３０に与え、この回路は、次いで、新たに要求された状態に対応するハードウェア切り換えを実施する。さもなければ、３３０において、ＰＭＵ１４０は、コントロールユニット１３０が新たな状態選択を行う前に両入力をアクチベートすることを要求する。別の実施形態では、状態切り換えを行う前に、３２０において、他の適当な条件がチェックされる。例えば、電圧切り換えのケースでは、ＰＭＵ１４０は、３２０において、バッテリが最小量の変化を有するかどうか、ポータブル装置が「プラグイン」されたかどうか、等を決定する。
【００４４】
図４は、ある実施形態によるソフトウェア環境を示す図である。ある実施形態において、ＰＭＵ１４０の動作は、ユーザから及び／又は他のソフトウェア４１０−４５０を経てコマンドを受け取るＰＭＵドライバ１４０を通して実行される。特に、ソフトウェア環境４００は、１つ以上のアプリケーションプログラム、オペレーティングシステム、等（ソフトウェア）４１０を含む。ソフトウェア４１０は、システムのコンポーネントを使用するときに種々のドライバと対話する。例えば、グラフィックドライバ４２０は、グラフィックサブシステム１６０Ｂをコントロールするのに使用され、オーディオドライバ４３０は、オーディオサブシステム１６０Ｃをコントロールするのに使用され、ネットワークドライバ４４０は、ネットワーク周辺装置１６０Ｄに使用され、そして他の周辺ドライバ４５０は、他の周辺装置に使用される。又、ＰＭＵドライバ４６０は、ＰＭＵ１４０と対話するのに使用される。従って、ソフトウェア４１０は、例えば、それがグラフィックサブシステム１６０Ｂと通信する場合には、グラフィックドライバ４２０にコールし、等々である。従って、ドライバ４２０−４６０の各々は、それに対応するコンポーネントと通信する。
【００４５】
更に、ドライバ４２０−４５０の各々は、ＰＭＵドライバ４６０と通信する。ＰＭＵドライバ４６０は、装置アクティビティテーブル等においてドライバ４２０−４５０により駆動されるコンポーネントのアクティビティを監視する。監視されるアクティビティは、対応するコンポーネントをイネーブルし及びディスエイブルすることを含む。監視されるアクティビティは、更に、特定ユニットの他の性能特性への切り換えも含む。ある実施形態において、監視されるアクティビティに基づき、ＰＭＵドライバ４６０は、種々の性能状態で使用されるべき各性能ドメインに対して性能状態を選択する。更に、選択された性能状態にも影響する他の情報を装置アクティビティテーブルへとコード化してもよい（例えば、プロセッサがスリープ状態にあるときの種々のコンポーネントの性能ニーズ）。
【００４６】
他の実施形態では、ソフトウェア４１０は、ＰＭＵドライバ４６０と直接通信することもできる。例えば、あるコンポーネントのスリープ及びウェーク遷移に対して遂行される自動性能状態遷移に加えて、ソフトウェア４１０は、システムの全体的なアクティビティに基づいて性能状態を直接的に切り換える。即ち、プロセッサが例えばスリープ状態へ至らない場合でも、１つ以上の性能ドメインの性能状態の切り換えが望まれる。従って、ソフトウェア４１０は、そのような切り換えを直接要求する。ある実施形態では、コンピュータアクセス可能な記憶媒体は、ここに述べるシステム及び方法の実施形態を合体することができる。
【００４７】
図５は、システムのブロック図である。図示されたように、システム５００は、集積回路５２０の少なくとも１つのインスタンスを含む。集積回路５２０は、図１の集積回路１００内の要素の１つ以上のインスタンスを含む。ある実施形態では、集積回路５２０は、メモリコントローラ、ビデオ及び／又はオーディオ処理回路、オンチップ周辺装置、及び／又はオフチップ周辺装置へ結合するための周辺インターフェイス、等の種々の付加的な回路を含むシステムオンチップ（ＳｏＣ）又は特定用途向け集積回路（ＡＳＩＣ）である。集積回路５２０は、１つ以上の周辺装置５４０及び外部メモリ５３０に結合される。集積回路５２０へ供給電圧を、そしてメモリ５３０及び／又は周辺装置５４０へ１つ以上の供給電圧を供給する電源５１０（図１には１１０として示される）も設けられる。ある実施形態では、集積回路５２０の２つ以上のインスタンスが含まれる（又、２つ以上の外部メモリ５３０も含まれる）。
【００４８】
周辺装置５４０は、システム５００の形式に基づいて望ましい回路を含む。例えば、一実施形態では、システム５００は、移動装置（例えば、パーソナルデジタルアシスタント（ＰＤＡ）、スマートホン、等）であり、そして周辺装置５４０は、種々の形式のワイヤレス通信のための装置、例えば、Ｗｉ−ｆｉ、ブルーツース、セルラー、グローバルポジショニングシステム、等を含む。又、周辺装置５４０は、ＲＡＭ記憶装置、ソリッドステート記憶装置、又はディスク記憶装置を含めて、付加的な記憶装置も含む。又、周辺装置５４０は、タッチディスプレイスクリーン又はマルチタッチディスプレイスクリーンを含むディスプレイスクリーン、キーボード又は他の入力装置、マイクロホン、スピーカ、等のユーザインターフェイス装置も含む。他の実施形態では、システム５００は、任意の形式のコンピューティングシステムである（例えば、デスクトップ及びラップトップコンピュータ、タブレット、ネットワーク機器、移動電話、パーソナルデジタルアシスタント、ｅ−ブックリーダー、テレビジョン、及びゲームコンソール）。
【００４９】
外部メモリ５３０は、任意の形式のメモリを含む。例えば、外部メモリ５３０は、ＳＲＡＭ、不揮発性ＲＡＭ（「フラッシュ」メモリのようなＮＶＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、例えば、同期ＤＲＡＭ（ＳＤＲＡＭ）、倍データレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３、等）ＳＤＲＡＭ、ＲＡＭＢＵＳ  ＤＲＡＭ、等、及び／又は任意の形式の有形メモリを含む。外部メモリ５３０は、メモリ装置がマウントされる１つ以上のメモリモジュール、例えば、シングルインラインメモリモジュール（ＳＩＭＭ）、デュアルインラインメモリモジュール（ＤＩＭＭ）、等を含む。
【００５０】
当業者であれば、上述した開示が完全に分かると、多数の修正及び変更が明らかであろう。そのような修正及び変更は、全て、特許請求の範囲に包含されるものとする。
【符号の説明】
【００５１】
１００：集積回路
１１０：電源
１２０Ａ−Ｆ：性能ドメイン
１３０：コントロールユニット
１４０：ＰＭＵ
１５０：構成
１６０Ａ：プロセッサ
１６０Ｂ：グラフィック
１６０Ｃ：オーディオ
１６０Ｄ：ネットワーク、他の周辺装置
１６０Ｅ：メモリコントロール
１６０Ｆ：プロセッサ
１７０：コンポーネント
２１０：性能状態レジスタ
２２０：電力ゲートコントロールレジスタ
【図１】
2012150815.tif 000004
【図２】
2012150815.tif 000005
【図３】
2012150815.tif 000006
【図４】
2012150815.tif 000007
【図５】
2012150815.tif 000008
【外国語明細書】
2012150815.tif 000009
2012150815.tif 000010
2012150815.tif 000011
2012150815.tif 000012
2012150815.tif 000013
2012150815.tif 000014
2012150815.tif 000015
2012150815.tif 000016
2012150815.tif 000017
2012150815.tif 000018
2012150815.tif 000019
2012150815.tif 000020
2012150815.tif 000021
2012150815.tif 000022
2012150815.tif 000023
2012150815.tif 000024
2012150815.tif 000025
2012150815.tif 000026
2012150815.tif 000027
2012150815.tif 000028
2012150815.tif 000029
2012150815.tif 000030
2012150815.tif 000031
2012150815.tif 000032
2012150815.tif 000033
2012150815.tif 000034
2012150815.tif 000035
2012150815.tif 000036
2012150815.tif 000037
2012150815.tif 000038
2012150815.tif 000039