説明

複数の回路における性能パラメータの整合

【課題】複数の回路の性能パラメータを整合するためのシステム及び方法を提供する。
【解決手段】複数のドメインにおいて性能パラメータを整合するシステム及び方法が開示される。方法は、第1ドメイン及び第2ドメインを含む電子回路の状態を切り換えるための要求を受け取り、第1ドメインに作用する第1回路の第1パラメータを、その要求に基づいて第1の変更パラメータへと変更させ、そして第2ドメインに作用する第2回路の第2パラメータを、その要求に基づいて第2の変更パラメータへと変更させることを含む。あるケースでは、パラメータは、クロック周波数を含む。他のケースでは、パラメータは、電圧を含む。ある実施形態では、システムは、ロジック回路及び/又はシステムオンチップ(SoC)として具現化される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータシステムの分野に係り、より詳細には、複数の回路の性能パラメータを整合するためのシステム及び方法に係る。
【背景技術】
【0002】
集積回路又は「チップ」に内蔵されるトランジスタの数が増加し続けるにつれて、電力管理の重要性がより明確になってきている。実際に、電力管理は、一般的に、多数の電子装置を設計する上で重要な要件である。例えば、ポータブル装置の場合に、電力管理技術は、バッテリ寿命を延長し、それ故、製品の有用性を高めることができ。更に、特定の装置がバッテリで動作しない場合でも、電力消費の管理により多数の利益を得ることができる。例えば、エネルギー消費量を減少するのに加えて、電力管理は、所与の装置で発生される熱を減少し、ひいては、その冷却要件を改善することができる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
集積回路における電力と性能のトレードオフを管理する部分として、集積回路上の種々のコンポーネントの性能状態を切り換えることができる。例えば、種々のコンポーネントにより使用されるクロックのクロック周波数を切り換えることができる。多数のコンポーネントに対する切り換えの管理を正しく実施することは、困難である。
【課題を解決するための手段】
【0004】
本発明は、例えば、電力管理メカニズムを実施するコンピューティング装置に関連して種々の環境で使用されるシステム及び方法を開示する。ある実施形態では、ここに開示するシステム及び方法は、多数のハードウェアコンポーネントを単一の回路内に一体化できるようにシステムオンチップ(SoC)又は特定用途向け集積回路(ASIC)において実施される。これらシステム及び方法を使用するのに適した電子装置の例は、デスクトップコンピュータ、ラップトップコンピュータ、タブレット、ネットワークアプリケーション、移動電話、パーソナルデジタルアシスタント(PDA)、e−ブックリーダー、テレビジョン、ビデオゲームコンソール、等を含むが、これに限定されない。
【0005】
ある実施形態では、方法は、回路が2つ以上の性能ドメインを有する場合に、回路、コンポーネント又は装置の状態を切り換える要求を受け取ることを含む。これら2つ以上の性能ドメインは、異なる性能レベルで動作するように構成された回路、コンポーネント又は装置のエリアを含む。種々の性能レベル又は状態の間をスイッチする能力は、電力管理メカニズムによって与えられる。例えば、装置が第1状態にあるときには、第1の性能ドメインが第1のクロック周波数又は電圧で動作し、一方、第2の性能ドメインが第2のクロック周波数又は電圧で動作する。又、装置が第2状態にあるときには、これらの性能ドメインが、変更された周波数又は電圧で動作する。性能ドメインの他のパラメータを切り換えることもできる。
【0006】
状態切り換え要求を受け取ると、この方法は、例えば、第1の性能ドメインに作用する第1クロックの第1周波数を第1の変更周波数へと変更し、そして第2の性能ドメインに作用する第2クロックの第2周波数を第2の変更周波数へと変更することを含む。ある実施形態では、第2の変更周波数は、第1の変更周波数とは独立している。他の実施形態では、第2の変更周波数は、第1の変更周波数とは異なってもよいし、その倍数以外のものでもよい。
【0007】
ある実施形態において、状態切り換え要求は、単一レジスタに書き込まれる値又は指示を含み、これは、次いで、第1及び第2の周波数を第1及び第2の変更周波数(又は電圧)へ各々スイッチするのに使用する構成パラメータをルックアップし又は導出するのに使用される。一例において、この方法は、指示によりインデックスされる性能状態テーブルにアクセスし、このテーブルは、対応する性能ドメインへクロック信号を供給するクロックジェネレータの特定セットにより使用される構成パラメータを含む。別の例において、性能状態テーブルは、対応する性能ドメインへ電圧を供給する電圧供給源の特定セットにより使用される構成パラメータを含む。性能状態テーブルは、種々の他の構成パラメータも含むことができる。
【0008】
ある実施形態において、クロック周波数を変更することは、第1入力又はソースから第2入力又はソースへのクロック入力を再構成するようにクロックジェネレータに命令することを含む。他の実施形態では、クロック周波数を変更することは、クロック除数を再構成するようにクロックジェネレータに命令することを含む。更に別の実施形態では、電圧を変更することは、異なる入力又は出力へスイッチするように電源回路に命令することを含む。これら実施形態の各々において、性能状態テーブルは、クロックジェネレータ又は電圧供給回路がその動作モードを切り換えるようにさせる基礎的なインストラクション(例えば、選択されたソース、除数値、等)も指示する。
【0009】
従って、性能状態テーブルを使用すると、あるケースでは、幾つかの基礎的切り換えを行うのに必要な特定の構成パラメータをソフトウェアで与え及び/又は管理しなくても、ソフトウェアで特定の回路又は性能ドメインが望ましい性能状態に入るようにさせることができる。他のケースでは、性能状態テーブルは、装置の所与の状態に対して、装置の性能ドメイン又は回路の各々を適当な又は望ましい状態に入れるように種々の構成パラメータを記憶することができる。その結果、ソフトウェアにより、全装置(又はそのサブセット)が少ないコマンド数で所与の状態に直ちに入るようにさせることができる。
【0010】
ある実施形態では、システムオンチップ(SoC)は、プロセッサと、該プロセッサに結合されたロジック回路とを備えている。ロジック回路は、SoCを所与の状態に入れる要求に応答して第1周波数及び第2周波数を導出するよう構成され、第2周波数は、第1周波数から独立している。又、ロジック回路は、SoCの第1ドメインに作用する第1のクロック回路が第1周波数で第1クロックを発生するようにさせ、そしてSoCの第2ドメインに作用する第2のクロック回路が第2周波数で第2クロックを発生するようにさせるようにも構成される。
【0011】
他の実施形態において、ロジック回路は、第1性能ドメイン及び第2性能ドメインを有する装置の状態を切り換える要求を受け取り、第1性能ドメインに作用する第1回路の第1パラメータを第1の変更パラメータへと変更させ、そして第2性能ドメインに作用する第2回路の第2パラメータを第2の変更パラメータへと変更させるように構成される。あるケースでは、第2の変更パラメータは、第1の変更パラメータとは独立している。これらのパラメータは、クロック周波数、電圧、その組み合わせ、及び/又は他のパラメータである。又、ロジック回路は、電力管理回路に結合されて電力管理回路の1つ以上の動作をイネーブルするように構成された1つ以上のプログラム可能なレジスタも備えている。
【0012】
以下、添付図面を参照して、本発明を詳細に説明する。
【図面の簡単な説明】
【0013】
【図1】ある実施形態によるシステムのブロック図である。
【図2】ある実施形態による性能状態テーブルを示す図である。
【図3】ある実施形態によりシステムパラメータを整合する方法を表すフローチャートである。
【図4】ある実施形態によるソフトウェア環境を示す図である。
【図5】ある実施形態によるコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0014】
本発明は、種々の変更を受けそして別の形態でも実施できるが、その特定の実施形態を一例として添付図面に示して以下に詳細に説明する。しかしながら、添付図面及び詳細な説明は、本発明を、ここに開示する特定の形態に限定するものではなく、本発明は、特許請求の範囲に規定される本発明の精神及び範囲内に入る全ての変更、等効物及び代替え物を網羅することを理解されたい。ここに使用する見出しは、編成上の目的に過ぎず、説明の範囲を限定するためのものではない。又、本出願全体にわたって使用される「〜してもよい(may)」という語は、許すという意味(即ち、〜の潜在性があるという意味)で使用されるもので、強制の意味(即ち、〜しなければならないという意味)ではない。同様に、「含む(include)」、「含んでいる(including)」及び「含む(includes)」という語は、含むことを意味するが、それに限定されない。
【0015】
種々のユニット、回路又は他のコンポーネントは、1つ又は複数のタスクを遂行するように「構成される」ものとして述べる。この点について、「構成される」とは、動作中に1つ又は複数のタスクを遂行する「回路を有する」ことを一般的に意味する構造を広く表現するものである。従って、ユニット/回路/コンポーネントは、そのユニット/回路/コンポーネントが現在オンでなくても、タスクを遂行するように構成することができる。一般的に、「構成される」に対応する構造を形成する回路は、ハードウェア回路を含む。同様に、種々のユニット/回路/コンポーネントは、説明の便宜上、1つ又は複数のタスクを遂行するものとして説明されてもよい。そのような説明は、「構成される」という句を含むものと解釈されねばならない。1つ以上のタスクを遂行するように構成されたユニット/回路/コンポーネントを表現する場合に、そのユニット/回路/コンポーネントの解釈に関して35U.S.C.§112、第6節を引用しないことが明確に意図される。
【0016】
ある実施形態において、電力管理ユニット又は回路は、電子装置内に設けられる。電子装置は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレット、ネットワーク機器(例えば、ゲートウェイ、ルーター、アクセスポイント、等)、移動電話、パーソナルデジタルアシスタント(PDA)、e−ブックリーダー、テレビジョン、ビデオゲームコンソール、又は他の適当な電子装置を含む。従って、この装置は、例えば、プロセッサ、周辺装置、コントローラ、等の他の回路又はサブシステムも含む。更に、これら回路の2つ以上(又は回路のグループ)が、変化する性能レベルで動作できる異なる性能ドメインを構成してもよい。従って、ある実施形態では、電力管理ユニットは、複数の性能ドメインのシステムパラメータを整合するための方法を遂行する。より詳細には、電力管理ユニットは、複数のエントリーを有する性能状態テーブルを含む。各エントリーは、2つ以上の性能ドメインに対して構成パラメータを指定する。レジスタ(1つ又は複数)は、テーブルにおけるエントリーの1つを指すようにプログラムされ、そして電力マネージャーは、その選択されたエントリーに指定された性能状態で性能ドメインが動作するようにさせる。
【0017】
図1は、ある実施形態によるシステムのブロック図である。図示されたように、このシステムは、電源110に結合されたシステムオンチップ(SoC)又は特定用途向け集積回路(ASIC)を形成する集積回路(IC)100を備えている。この集積回路100は、性能ドメイン120A−Fのセットを含む。各性能ドメイン120A−Fは、少なくとも1つのサブシステム、回路又はコンポーネントを含み、そして所与の性能ドメインは、2つ以上のコンポーネントを含む。例えば、性能ドメイン120Aは、2つのコンポーネント、即ちプロセッサ160A及び別のコンポーネント170(例えば、コヒレンシーコントローラ、等)を含み、そして性能ドメイン120Dは、2つ以上のネットワーク又は他の周辺装置160Dを含む。ここに示す実施形態では、性能ドメイン120Bは、グラフィックサブシステム160Bを含み、性能ドメイン120Cは、オーディオサブシステム160Cを含み、性能ドメイン120Eは、メモリコントロール回路160Eを含み、そして性能ドメイン120Fは、任意の第2のプロセッサ160Fを含む。又、集積回路100は、電力管理ユニット(PMU)140も備え、これは、1つ以上の性能構成レジスタ150を含む。PMU140は、クロック及び/又は電圧コントロールユニット(コントロールユニット)130に結合され、これは、電源110に結合される。
【0018】
集積回路100内のコンポーネントは、適当なバス及び/又はインターフェイスメカニズムを使用して互いに結合される。又、PMU140及びコントロールユニット130は、それらの各インターフェイスに結合されるのに加えて、性能ドメイン120A−Fにも結合される。例えば、コントロールユニット130は、性能ドメイン120A−Fの1つ以上にクロック信号を供給する。それに加えて又はそれとは別に、コントロールユニット130は、電源110と対話して、性能ドメイン120A−Fの1つ以上へ1つ以上の供給電圧を供給することを要求する。集積回路100がポータブル装置内に存在する実施形態では、電源110は、バッテリ、等である。
【0019】
PMU140は、種々の性能ドメイン120A−Fに対する性能状態間の遷移をコントロールするよう構成される。例えば、PMU140は、性能ドメイン120A−Fの1つ以上を異なる性能状態へ自動的に遷移するように構成される。PMU140の性能状態テーブルの各エントリーは、種々の性能ドメインに対する性能状態の組み合わせでプログラムされ、そしてソフトウェアが、エントリーの1つを選択するために1つ又は複数のレジスタを書き込む。PMU140は、選択されたエントリーで指示された性能状態に対して性能ドメインの遷移を整合するように構成される。
【0020】
ある実施形態では、性能ドメインは、性能構成の目的でPMU140によりユニットとして制御されるコンポーネントのセットである。即ち、PMU140は、性能ドメインごとに対応する性能状態を確立するように構成され、又、各性能ドメインにおける性能状態間の遷移をコントロールするように構成される。従って、性能ドメインを形成するコンポーネントは、ある性能状態から別の性能状態へ一緒に遷移する。他の実施形態では、異なる性能ドメインのコンポーネントは、少なくともハードウェアの観点から互いに独立し、そして独立して決定された性能状態を有する。ある性能ドメインは、(例えば、ソフトウェアにおいて)より高いレベルに論理的にリンクされる。例えば、ドメイン120C及び120Dは、サウンドを含むビデオをユーザが見る(従って、ビデオ画像を表示するためのグラフィックサブシステム160B及びそれに付随するサウンドを再生するためのオーディオサブシステム160Cを同時に使用する)場合にそれらの性能状態に関して論理的にリンクされる。
【0021】
所与の性能状態は、それに対応する性能ドメイン内のコンポーネントに対する構成パラメータの組み合わせを含む。構成パラメータとは、コンポーネントの性能に影響するコンポーネントの選択可能な設定である。例えば、コンポーネント又は性能ドメインに与えられるクロック信号の動作周波数は、その性能に影響し、従って、構成パラメータと考えられる。というのは、例えば、低い動作周波数は、低い性能(及び低い電力消費)を生じるからである。別の例として、性能ドメインに与えられる供給電圧は、その性能に影響し、構成パラメータでもある。
【0022】
ある構成パラメータは、コンポーネント特有のものである。そのような構成パラメータの例は、種々のキャッシュのキャッシュサイズ、インターフェイスのデータ巾又は他のデータ転送レートパラメータ、パラレルに動作するユニット(例えば、プロセッサ内の実行ユニット、グラフィックユニット内のピクセルパイプライン又は他の画像処理パイプライン、等)の中でアクティブな対称的ユニットの数、単位時間当たりに処理されるインストラクション、オペレーション、通信、及び/又はメモリ要求の数、カラーパレットのグラフィック解像度又はサイズ、オーディオ分解能及びサンプリングレート、メモリ帯域巾、プロセッサのスリープ/ウェーク状態、等を含むが、それらに限定されない。更に、コンポーネント又はその一部分が電力ゲート作動及び/又はクロックゲート作動される場合には、電力及び/又はクロックイネーブルが構成パラメータとなる。ある実施形態では、構成パラメータは、1つ以上の性能ドメインがどの性能状態にあるかの情報をメモリコントローラ(例えば、160E)に与える1つ以上のレジスタを含む。手短に述べると、種々の実施形態において、切り換えることができ且つコンポーネント又は性能ドメインの動作又は性能に影響を及ぼすパラメータは、構成パラメータと考えられる。
【0023】
性能ドメインにおける性能状態の切り換えは、性能ドメインの電力消費に影響する。例えば、動作周波数及び/又は供給電圧を下げると、典型的に、電力消費に直接影響する。キャッシュサイズを減少すると、キャッシュの一部にアクセスする必要がなくなるので、電力消費が減少し、そしてその未使用部分をターンオフする場合には、更なる減少が実現される。更に、キャッシュサイズを減少すると、キャッシュヒット率が低下し、消費者に対してメモリの待ち時間が長くなる。メモリの待ち時間が長くなると、消費者のアクティビティが低下し、電力消費が減少する。インターフェイスにおけるデータ転送巾/レートが減少すると、スイッチングの減少により電力消費が低下する。更に、消費者にデータが供給されるレートを下げると、消費者のアクティビティが低下し、消費者の電力消費が減少する。対称的ユニットにおけるパラレルのアクティビティが低下すると、アクティビティの低下により電力消費が低下する。グラフィック/オーディオ分解能及びカラーパレットが減少すると、画像又はサウンドの単位当たりに転送されるデータの量が減少される。更に、メモリ帯域巾を減少すると、単位時間当たりにメモリにアクセスする電力消費が減少し、消費者のアクティビティが下がる。
【0024】
ある実施形態では、PMU140は、ロジック回路、等である。従って、PMU140は、バイポーラ接合トランジスタ(BJT)、電界効果トランジスタ(FET)、他の形式のトランジスタ、ロジックゲート、演算増幅器(OPアンプ)、フリップ−フロップ、キャパシタ、ダイオード、抵抗器、等の標準的電子コンポーネントを含む。構成レジスタ150は、特定の機能を実施し及び/又は指定の動作モードに入るためにPMU140により使用される設定を記憶するようにプログラムされる。これら及び他のコンポーネントは、種々の仕方で配列され、そしてここに述べる種々の動作を遂行するよう構成される。
【0025】
特に、PMU140は、性能ドメイン120A−Fにおいて性能状態遷移を生じさせるように構成された回路を備えている。1つの実施形態において、ソフトウェアは、望ましい性能状態切り換えをPMU140へ明確に通信する(例えば、性能状態テーブルのエントリーを選択する指示の形態で)。PMU140は、その選択されたエントリーにアクセスし、そしてその選択されたエントリーに指定された望ましい性能状態を確立するように構成される。
【0026】
電圧及び/又はクロック周波数の切り換えを行うことにより性能状態又はレベルに到達するケースでは、PMU140は、新たな電圧及び/又は周波数設定をコントロールユニット130へ通信する。コントロールユニット130は、これらの新たな設定を実施し、要求された周波数でクロックを発生し、及び/又は電源110からの望ましい供給電圧を要求する。コントロールユニット130は、遷移を安全に実行するために、必要に応じて変更を命令する。例えば、クロック周波数及び供給電圧の両方が特定の性能ドメインにおいて増加される場合には、先ず、電圧を増加し、次いで、クロック周波数を上昇するのが安全である。というのは、現在の(低い)供給電圧で回路がゆっくり動作する場合には、クロック周波数を上げると、不適当な動作を招くことがあるからである。ある実施形態では、供給電圧の切り換えで経過する時間の長さは、クロック周波数を切り換える時間より実質的に長いことがある。クロック周波数及び供給電圧が減少される場合には、クロック周波数が先ず減少される(又は周波数及び電圧がパラレルに減少される。というのは、このケースでは、低い供給電圧の前に、低いクロック周波数に到達するからである)。
【0027】
コントロールユニット130は、望ましい供給電圧を要求するために電源110と通信する回路を備え、又、動的なクロック発生回路も備えている。例えば、コントロールユニット130は、集積回路100の種々のコンポーネント又は性能ドメインに対してクロック信号を動的に発生するために、1つ以上の位相固定ループ(PLL)、マルチプレクサ、クロック除算器/乗算器、等を含む。1つの構成では、1つ以上の発振器が1つ以上のPLLを駆動し、これが、次いで、集積回路100の主要部分のための基本的クロックを発生する。PLL出力は、多数の動的なクロックジェネレータを駆動し、これらジェネレータは、チップの種々の領域又は性能ドメインに対する個々のクロックを発生するように働く。各クロックジェネレータ又は回路は、マルチプレクサ、及び/又は該マルチプレクサに結合された除算器を備えている。動作中に、マルチプレクサは、ジェネレータの入力において特定のクロック信号を選択することができ、そして除算器は、選択された信号の周波数を更に下げて(又は上げて)、望ましい周波数を得る。ある実施形態において、あるジェネレータは、マルチプレクサのみを含み、そして他のジェネレータは、除算器のみを含む。更に、各ジェネレータは、独立してイネーブル及びディスエイブルされ、そしてグリッチフリー的に又は「オンザフライ」で動作する。あるケースでは、グリッチフリー動作を容易にするために、所与のジェネレータは、選択がなされる前にソースが両方とも実行(又はアクティブ)へスイッチされそしてそこからスイッチされることを要求する。
【0028】
図1を更に参照すれば、プロセッサ160A及び/又は160Fは、インストラクションセットアーキテクチャーを実施し、そしてそのインストラクションセットアーキテクチャーで定義されたインストラクションを実行するように構成される。任意のマイクロアーキテクチャー実施が使用されてもよい(例えば、しかるべき順序で、順序ずれして、思索的に、非思索的に、スカラーで、スーパースカラーで、パイプライン的に、スーパーパイプライン的に、等々)。ある実施形態では、マイクロコーディング技術が、前記のいずれかと組み合わせて使用される。
【0029】
グラフィックユニット又はサブシステム160Bは、ディスプレイ装置上の画像の表示に関連した回路を備えている。発生される画像は、静的な画像でもよいし、又はビデオの一部分でもよい。グラフィックユニット160Bは、レンダリングハードウェア、(ディスプレイ装置の)リフレッシュハードウェア、ビデオエンコーダ及び/又はデコーダ、ビデオ圧縮及び解凍ユニット、等を含む。オーディオユニット又はサブシステム160Cは、システムにおけるサウンドの再生又は記録に関する回路を備えている。オーディオユニット160Cは、例えば、オーディオエンコーダ及び/又はデコーダ、デジタル信号プロセッサ、等を備えている。
【0030】
ネットワーク周辺装置及び他の周辺装置160Dは、種々の回路を含む。例えば、ネットワーク周辺機器は、サポートされるネットワークのためのメディアアクセスコントローラ(MAC)ユニットと、物理的レイヤ回路とを備えている。他の周辺装置は、他の望ましい周辺装置を含み、及び/又は周辺コンポーネント相互接続(PCI)、PCIエクスプレス(PCIe)、ファイアワイヤ、ユニバーサルシリアルバス(USB)、等のオフチップ周辺インターフェイスをコントロールするように構成された周辺インターフェイスコントローラを含む。
【0031】
メモリコントローラ160Eは、ダイナミックランダムアクセスメモリ装置(DRAM)、同期DRAM(SDRAM)、倍データレート(DDR、DDR2、DDR3、DDR4、等)SDRAM、低電力DDR(LPDDR2、等)SDRAM、RAMBUS DRAM(RDRAM)、等のメモリ装置にアクセスするように構成される。1つの実施形態では、メモリコントローラ160Eは、1つ以上のメモリを含む1つ以上のメモリモジュール(例えば、シングルインラインメモリモジュール(SIMM)、デュアルインラインメモリモジュール(DIMM)、等)へインターフェイスするように構成される。従って、メモリコントローラ160Eは、メモリインターフェイスを経て通信し、集積回路100内の他のコンポーネントからメモリ要求をキューイングし、及び/又は他のコンポーネントと通信して、メモリ読み取り及び書き込み動作を満足するように構成される。
【0032】
図1に示す集積回路100の実施形態は、多数の性能ドメインを含むが、それより多数の又は少数の性能ドメインがサポートされてもよい。性能ドメイン及びそれらのドメインに含まれるコンポーネントの任意の組み合わせが種々の実施形態において具現化される。
【0033】
集積回路100の他の実施形態は、他のコンポーネントを伴ったり伴わなかったりする図示されたコンポーネントのサブセット、他のコンポーネントを伴うスーパーセット、等を含めて、コンポーネントの他の組み合わせを含む。更に、ここに示す実施形態は、集積回路100に全て含まれたコンポーネント160A−F及び170を示しているが、他の実施形態では、コンポーネントが2つ以上の集積回路として実施されてもよい。それに加えて又はそれとは別に、電源110の少なくとも一部分が集積回路100に含まれてもよい。実際には、適当な集積レベル又は個別のコンポーネントが使用される。
【0034】
上述したように、PMU140は、種々の性能ドメイン120A−Fに対する性能状態間の遷移をコントロールするように構成される。ある実施形態では、所与の性能状態から別の性能状態へスイッチするための要求は、1つ以上のレジスタに書き込まれる値又は指示を含み、これは、望ましい性能状態に入るための構成パラメータをルックアップし又は導出するためにPMU140によって使用される。一例において、この方法は、レジスタ(1つ又は複数)へ書き込まれる値によりインデックスされる性能状態テーブルにアクセスし、このテーブルは、対応する性能ドメインへクロック信号を発生するクロックジェネレータの特定セットによって使用される構成パラメータを含む。別の例では、性能状態テーブルは、対応する性能ドメインに電圧を付与する電源の特定セットによって使用される構成パラメータを含む。性能状態テーブルは、更に、上述した種々の他の構成パラメータも含む。
【0035】
非限定の例示として、クロック周波数及び電圧の両方が、性能ドメイン(例えば、ドメイン1ないしm)の各々に対してセットされる構成パラメータであるという状況について考える。性能状態テーブルにn個の状態が得られる(即ち、テーブルにn個のエントリーがある)場合には、考えられる性能状態テーブルは、次のように構成される。
テーブルI

【0036】
この実施形態では、ソフトウェアが集積回路100の各ドメインに対して周波数(f)及び/又は電圧(V)をセットすることを望む場合に、例えば、ソフトウェアは、性能状態テーブルの対応エントリー(1ないしn)に対するポインタをPMU140の構成レジスタ150に書き込む。PMU140は、選択されたエントリーを読み取り、そして選択されたクロック周波数及び/又は電圧をコントロールユニット130へ通信する。コントロールユニット130は、次いで、ソフトウェアによる更なる介在及び/又は管理を伴わずに各ドメインの種々の周波数及び/又は電圧への切り換えを整合する。その結果、あるケースでは、集積回路100の異なる部分が単一コマンド又はレジスタ書き込みでそれらの種々の異なる状態間を交番する。換言すれば、ユーザ及び/又はソフトウェアの観点から、状態間の切り換えは、アトミックに(実際の基礎的なハードウェア切り換えがパラレルに行われる状況でも)且つ高い抽象レベルで(例えば、要求側ソフトウェアは、各クロックジェネレータを個々にプログラムし及び/又は各ジェネレータがどのように構成されるか理解する必要がない)遂行される。
【0037】
更に、前記テーブルIに示されたような性能状態テーブルを使用することにより、各性能ドメインは、そのパラメータを独立して切り換える。例えば、クロック周波数のケースでは、所与の状態に対する各周波数ドメインの周波数が互いに異なり、互いの倍数以外のものとなる。他の実施形態では、上述したように、クロック周波数及び電圧以外の構成パラメータがテーブルを埋める。更に、クロック周波数のみがテーブルに含まれる実施形態も考えられる。
【0038】
ある実施形態では、性能状態テーブルの各エントリーが実際の構成パラメータであり、例えば、f2,3がクロック周波数であり、V2,3が電圧の大きさであり、等々である。しかしながら、他の実施形態では、性能状態テーブルの各エントリーは、望ましい構成を与えるために回路(例えば、コントロールユニット130)に使用される1つ以上の基礎的な設定を含む。例えば、性能ドメイン2が、マルチプレクサ及び除算器を含むクロックジェネレータの作用を受ける場合には、f2,3は、性能ドメイン2へ望ましい周波数を与えるためにクロックジェネレータにより使用できるソース選択及び除算器設定を含む。
【0039】
図2は、ある実施形態による性能状態テーブルの実施を示す図である。性能状態テーブルは、例えば、PMU140の構成レジスタ内でプログラムされるもので、ハードウェアにおいてテーブルI(上述した)を表す多数の考えられる仕方の1つである。図示されたように、構成レジスタ150は、1つ以上の性能状態レジスタ210と、1つ以上の状態レジスタ220と、プログラム可能な各状態に対して種々の性能ドメイン(1ないしm)の構成パラメータ(1ないしn)を含む複数のレジスタ230−250と、を備えている。個別のコンポーネントとして示されたが、他の実施形態では、レジスタ210−250の2つ以上が結合されてもよい。
【0040】
性能状態レジスタ210は、レジスタ230−250のどれが(従って、どの性能状態が)現在アクティブであるかコントロールすることができる。例示のため、ソフトウェアが集積回路100の動作を状態2にセットすることを希望するシナリオについて考える。ソフトウェアは、状態2に対応する値を性能状態レジスタ210に書き込み、次いで、PMU140がレジスタ240からパラメータP1,2・・・Pm,2を選択する。パラメータP1,2・・・Pm,2の各々は、各性能ドメイン1ないしmの構成パラメータに対応する。上述したように、パラメータP1,2・・・Pm,2は、クロック周波数、電圧の大きさ、等である。それに加えて又はそれとは別に、所与のパラメータは、クロック周波数、電圧、等を各性能ドメインに与えるよう回路に命令するのに適した設定を含む。いずれにせよ、PMU140は、識別されたパラメータをコントロールユニット130に与え、コントロールユニットは、次いで、ハードウェア(例えば、スイッチ、マルチプレクサ、等)で切り換えを実施する。
【0041】
別の実施形態では、レジスタ230−250の各々は、(他の性能ドメインを除いて)単一の性能ドメインの各状態に対しパラメータを含む。例えば、レジスタ230内のP1,1は、性能ドメイン1の状態1に対する構成パラメータを表し、P1,2は、その同じ性能ドメイン、即ち性能ドメイン1の状態2に対する構成パラメータであり、等々である。同様に、レジスタ240は、性能ドメイン2の各状態に対して全ての構成パラメータを含み、そしてレジスタ250は、性能ドメインnの各状態に対して全ての構成パラメータを含む。この実施形態では、性能状態レジスタ210は、要求された性能状態に対応する各性能ドメインに対し各レジスタ230−250内の各エントリーを識別し、そしてそれらの構成パラメータをコントロールユニット130に与える。
【0042】
構成レジスタ150は、状態レジスタ220も含む。例えば、クロックパラメータを構成するとき、コントロールユニット130内の各動的クロックジェネレータは、その構成を切り換える間に「ペンディング」値を示すレジスタを含み、この同じ値が状態レジスタ220へコピーされる。ある実施形態では、これにより、PMU140又はソフトウェアは、単一レジスタ即ち状態レジスタ220上でのポーリングにより性能状態レジスタ210内の変更による全ての変更が効果を発するのを待機できるようになる。別の実施形態では、性能状態レジスタ210は、状態レジスタ220の全てのペンディングビットがクリアされるのを待機せずに変更される。コントロールユニット130は、最終的なクロック構成が、最後に書かれた性能状態レジスタ210の値に一致することを保証するが、動的なクロックジェネレータは、あるときには中間構成でもよい。
【0043】
図3は、ある実施形態によりシステムパラメータを整合する方法を表すフローチャートである。ある実施形態において、この方法300は、図1のPMU140によって遂行される。310において、PMU140は、集積回路100の1つ以上の性能ドメイン120A−Fの状態を切り換えるための要求を受け取る。この要求は、PMU140内の構成レジスタ150の性能状態レジスタ210の値に基づいて決定される。コントロール回路130の対応クロックジェネレータが例えばマルチプレクサを含む場合のクロック周波数切り換えのケースでは、320において、PMU140は、オリジナルクロック入力及び新たに選択されたクロック入力の両方が作用中又はアクティブであるかどうか決定する。もしそうであれば、340において、PMU140は、状態性能テーブルから新たに要求された状態に対応するパラメータを識別する。PMU140は、次いで、350において、それらパラメータをコントロール回路130に与え、この回路は、次いで、新たに要求された状態に対応するハードウェア切り換えを実施する。さもなければ、330において、PMU140は、コントロールユニット130が新たな状態選択を行う前に両入力をアクチベートすることを要求する。別の実施形態では、状態切り換えを行う前に、320において、他の適当な条件がチェックされる。例えば、電圧切り換えのケースでは、PMU140は、320において、バッテリが最小量の変化を有するかどうか、ポータブル装置が「プラグイン」されたかどうか、等を決定する。
【0044】
図4は、ある実施形態によるソフトウェア環境を示す図である。ある実施形態において、PMU140の動作は、ユーザから及び/又は他のソフトウェア410−450を経てコマンドを受け取るPMUドライバ140を通して実行される。特に、ソフトウェア環境400は、1つ以上のアプリケーションプログラム、オペレーティングシステム、等(ソフトウェア)410を含む。ソフトウェア410は、システムのコンポーネントを使用するときに種々のドライバと対話する。例えば、グラフィックドライバ420は、グラフィックサブシステム160Bをコントロールするのに使用され、オーディオドライバ430は、オーディオサブシステム160Cをコントロールするのに使用され、ネットワークドライバ440は、ネットワーク周辺装置160Dに使用され、そして他の周辺ドライバ450は、他の周辺装置に使用される。又、PMUドライバ460は、PMU140と対話するのに使用される。従って、ソフトウェア410は、例えば、それがグラフィックサブシステム160Bと通信する場合には、グラフィックドライバ420にコールし、等々である。従って、ドライバ420−460の各々は、それに対応するコンポーネントと通信する。
【0045】
更に、ドライバ420−450の各々は、PMUドライバ460と通信する。PMUドライバ460は、装置アクティビティテーブル等においてドライバ420−450により駆動されるコンポーネントのアクティビティを監視する。監視されるアクティビティは、対応するコンポーネントをイネーブルし及びディスエイブルすることを含む。監視されるアクティビティは、更に、特定ユニットの他の性能特性への切り換えも含む。ある実施形態において、監視されるアクティビティに基づき、PMUドライバ460は、種々の性能状態で使用されるべき各性能ドメインに対して性能状態を選択する。更に、選択された性能状態にも影響する他の情報を装置アクティビティテーブルへとコード化してもよい(例えば、プロセッサがスリープ状態にあるときの種々のコンポーネントの性能ニーズ)。
【0046】
他の実施形態では、ソフトウェア410は、PMUドライバ460と直接通信することもできる。例えば、あるコンポーネントのスリープ及びウェーク遷移に対して遂行される自動性能状態遷移に加えて、ソフトウェア410は、システムの全体的なアクティビティに基づいて性能状態を直接的に切り換える。即ち、プロセッサが例えばスリープ状態へ至らない場合でも、1つ以上の性能ドメインの性能状態の切り換えが望まれる。従って、ソフトウェア410は、そのような切り換えを直接要求する。ある実施形態では、コンピュータアクセス可能な記憶媒体は、ここに述べるシステム及び方法の実施形態を合体することができる。
【0047】
図5は、システムのブロック図である。図示されたように、システム500は、集積回路520の少なくとも1つのインスタンスを含む。集積回路520は、図1の集積回路100内の要素の1つ以上のインスタンスを含む。ある実施形態では、集積回路520は、メモリコントローラ、ビデオ及び/又はオーディオ処理回路、オンチップ周辺装置、及び/又はオフチップ周辺装置へ結合するための周辺インターフェイス、等の種々の付加的な回路を含むシステムオンチップ(SoC)又は特定用途向け集積回路(ASIC)である。集積回路520は、1つ以上の周辺装置540及び外部メモリ530に結合される。集積回路520へ供給電圧を、そしてメモリ530及び/又は周辺装置540へ1つ以上の供給電圧を供給する電源510(図1には110として示される)も設けられる。ある実施形態では、集積回路520の2つ以上のインスタンスが含まれる(又、2つ以上の外部メモリ530も含まれる)。
【0048】
周辺装置540は、システム500の形式に基づいて望ましい回路を含む。例えば、一実施形態では、システム500は、移動装置(例えば、パーソナルデジタルアシスタント(PDA)、スマートホン、等)であり、そして周辺装置540は、種々の形式のワイヤレス通信のための装置、例えば、Wi−fi、ブルーツース、セルラー、グローバルポジショニングシステム、等を含む。又、周辺装置540は、RAM記憶装置、ソリッドステート記憶装置、又はディスク記憶装置を含めて、付加的な記憶装置も含む。又、周辺装置540は、タッチディスプレイスクリーン又はマルチタッチディスプレイスクリーンを含むディスプレイスクリーン、キーボード又は他の入力装置、マイクロホン、スピーカ、等のユーザインターフェイス装置も含む。他の実施形態では、システム500は、任意の形式のコンピューティングシステムである(例えば、デスクトップ及びラップトップコンピュータ、タブレット、ネットワーク機器、移動電話、パーソナルデジタルアシスタント、e−ブックリーダー、テレビジョン、及びゲームコンソール)。
【0049】
外部メモリ530は、任意の形式のメモリを含む。例えば、外部メモリ530は、SRAM、不揮発性RAM(「フラッシュ」メモリのようなNVRAM)、ダイナミックRAM(DRAM)、例えば、同期DRAM(SDRAM)、倍データレート(DDR、DDR2、DDR3、等)SDRAM、RAMBUS DRAM、等、及び/又は任意の形式の有形メモリを含む。外部メモリ530は、メモリ装置がマウントされる1つ以上のメモリモジュール、例えば、シングルインラインメモリモジュール(SIMM)、デュアルインラインメモリモジュール(DIMM)、等を含む。
【0050】
当業者であれば、上述した開示が完全に分かると、多数の修正及び変更が明らかであろう。そのような修正及び変更は、全て、特許請求の範囲に包含されるものとする。
【符号の説明】
【0051】
100:集積回路
110:電源
120A−F:性能ドメイン
130:コントロールユニット
140:PMU
150:構成
160A:プロセッサ
160B:グラフィック
160C:オーディオ
160D:ネットワーク、他の周辺装置
160E:メモリコントロール
160F:プロセッサ
170:コンポーネント
210:性能状態レジスタ
220:電力ゲートコントロールレジスタ

【特許請求の範囲】
【請求項1】
第1の性能ドメイン及び第2の性能ドメインを含む回路の状態を切り換えるための要求を受け取る段階と、
前記第1の性能ドメインに作用する第1クロックの第1周波数を、前記要求に基づいて第1の変更周波数へと変更する段階と、
前記第2の性能ドメインに作用する第2クロックの第2周波数を、前記要求に基づいて第2の変更周波数へと変更する段階であって、前記第2の変更周波数は、前記第1の変更周波数とは独立したものである段階と、
を備えた方法。
【請求項2】
前記要求を受け取る段階は、性能状態指示がレジスタに記憶されたと決定することを含む、請求項1に記載の方法。
【請求項3】
前記第1の変更周波数及び第2の変更周波数を示すデータを記憶する第1の性能状態テーブルエントリーを識別する性能状態指示を受け取る段階を更に備えた、請求項1に記載の方法。
【請求項4】
前記第1クロック回路の第1周波数を変更する前に前記第1の性能状態テーブルエントリーにおける第1の変更周波数を識別する段階を更に備えた、請求項3に記載の方法。
【請求項5】
前記第1の性能状態テーブルエントリーは、更に、前記第1の性能ドメイン及び第2の性能ドメインに対して1つ以上の付加的な構成パラメータを記憶し、前記方法は、更に、前記付加的な構成パラメータに応答して前記第1の性能ドメイン及び第2の性能ドメインの付加的な構成を変更する段階を備えた、請求項4に記載の方法。
【請求項6】
前記1つ以上の付加的な構成パラメータは、前記第1の性能ドメイン及び第2の性能ドメインに対する供給電圧の大きさを含む、請求項5に記載の方法。
【請求項7】
前記1つ以上の付加的な構成パラメータは、プログラム可能なコンポーネント構成値を含む、請求項5に記載の方法。
【請求項8】
第1クロックの第1周波数を変更する前記段階は、第1入力から第2入力へのクロック入力を再構成するようにクロックジェネレータに命令することを含む、請求項1に記載の方法。
【請求項9】
クロック入力を再構成するようにクロックジェネレータに命令する前に前記第1及び第2入力がアクティブであると決定する段階を更に備えた、請求項8に記載の方法。
【請求項10】
第1クロックの第1周波数を変更する前記段階は、クロック除算器を再構成するようにクロックジェネレータに命令することを含む、請求項1に記載の方法。
【請求項11】
前記第1及び第2周波数を変更する前に、装置の状態を切り換えるための後続要求を受け取る段階と、
少なくとも前記第1及び第2周波数が変更されるまで前記後続要求を拒絶する段階と、
を更に備えた請求項1に記載の方法。
【請求項12】
プロセッサと、
前記プロセッサに結合されたロジック回路と、
を備え、前記ロジック回路は、
システムオンチップ(SoC)に所与の状態を確立するための要求に応答して第1及び第2周波数を導出し、前記第2周波数は、前記第1周波数から独立したものであり、
コントロール回路が、前記第1周波数を有する第1クロックを前記SoCの第1性能ドメインに与えるようにさせ、
前記コントロール回路が、前記第2周波数を有する第2クロックを前記SoCの第2性能ドメインに与えるようにさせる、
ように構成された、システムオンチップ(SoC)。
【請求項13】
前記ロジック回路は、更に、
前記所与の状態を前記第1及び第2周波数に相関するテーブルから前記第1及び第2の周波数を導出し、
前記所与の状態に対して前記テーブルに指定されたクロック入力又はクロック除数を選択するように前記コントロール回路に命令する、
ように構成された、請求項12に記載のSoC。
【請求項14】
前記ロジック回路は、更に、前記所与の状態を前記第1及び第2周波数に相関するテーブルから前記第1及び第2の周波数を導出するように構成され、前記要求は、レジスタに記憶された指示を含み、そして前記指示は、前記テーブル内のエントリーを識別する、請求項13に記載のSoC。
【請求項15】
前記コントロール回路は、更に、前記所与の状態に関する情報を、前記プロセッサに結合されたメモリコントローラに与えるように構成された、請求項12に記載のSoC。
【請求項16】
SoCに所与の状態を確立するための要求に応答して第1及び第2周波数を導出し、前記第2周波数は、前記第1周波数から独立したものであり、
コントロール回路が、前記第1周波数を有する第1クロックを前記SoCの第1性能ドメインに与えるようにさせ、
前記コントロール回路が、前記第2周波数を有する第2クロックを前記SoCの第2性能ドメインに与えるようにさせる、
ように構成された電力管理回路を備えたロジック回路。
【請求項17】
前記第2の変更クロック周波数は、前記第1の変更クロック周波数とは異なり且つその倍数以外のものである、請求項16に記載のロジック回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2012−150815(P2012−150815A)
【公開日】平成24年8月9日(2012.8.9)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−19060(P2012−19060)
【出願日】平成24年1月13日(2012.1.13)
【出願人】(503260918)アップル インコーポレイテッド (568)
【Fターム(参考)】