説明

電力の島を使用した集積回路での電力の管理

【課題】 集積回路において、消費電力を効率的に利用することを目的とする。
【解決手段】 システム及び方法は、電力の島を使用して集積回路の電力を管理する。集積回路は、消費電力が電力の島のそれぞれで独立して制御される複数の電力の島を有する。電力マネージャは、電力の島のうち1つの目的の電力レベルを決定する。電力マネージャは、電力の島のうち1つの消費電力レベルを目的の電力レベルに変更する動作を決定する。電力マネージャは、電力の島のうち1つの消費電力レベルを目的の電力レベルに変更する動作を実行する。

【発明の詳細な説明】
【技術分野】
【0001】
この出願は、2003年5月7日に出願された“System and Method for Managing Power in Integrated Circuit”という題の米国仮特許出願第60/468,742号の利益を主張し、その内容が参照として取り込まれる。
【0002】
本発明は、概して集積回路に関し、特に電力の島を使用して集積回路で電力を管理することに関する。
【背景技術】
【0003】
集積回路の1つの設計目標は、消費電力を低減することである。携帯電話やラップトップのような電池を備えた装置は、電池の充電量を伸ばすために、特に集積回路での消費電力の低減を必要とする。更に、消費電力の低減は過熱を防ぎ、集積回路の放熱を小さくし、ある場合には集積回路のヒートシンク及び/又はファンを除去又は簡略化する。
【0004】
ある集積回路は、ライブラリセル(library cell)という基礎ブロックを使用して設計されている。これらのライブラリセルは、機能を実行する回路のブロックである。ライブラリセルのいくつかの例には、NANDゲート、マルチプレクサ、デコーダ、比較器及びメモリがある。
【0005】
“フルカスタム”フローでは、集積回路は、個々のトランジスタやコンデンサやレジスタのレベルのような最下位のレベルで設計される。“フルカスタム”フローは、内部で開発されたライブラリセルを使用することがある。集積回路は最下位のレベルで非常に詳細に設計されるため、集積回路は最適な性能を有することができる。しかし、“フルカスタム”フローのいくつかの課題には、そのような詳細なレベルで設計することに関する長い時間と高価なコストがある。更に、“フルカスタム”フローは、設計が最下位のレベルであるため、面倒である。
【0006】
“スタンダードセル”フローでは、集積回路は、第三者又は他の外部ソースから取得したライブラリセルを使用して設計される。これらのライブラリセルは、論理レベル又は機能レベルで標準化されている。ライブラリセルが既に予め設計されて予めテストされているため、スタンダードセルフローの設計時間は減少する。
【0007】
集積回路を設計する一例では、ライブラリセルが選択され、カスタムロジックが特定され、集積回路を構築する。次に、集積回路のレジスタ転送レベル(RTL:register transfer level)がシミュレーション及びデバッグ用に書き込まれる。シミュレーション及びデバッグの後に、集積回路について合成(synthesis)が行われる。集積回路の性能を決定するために、性能測定ソフトウェアが実行される。集積回路の最終合成は、集積回路の最適性能に基づいて行われ得る。
【発明の概要】
【発明が解決しようとする課題】
【0008】
多数の集積回路での課題は、消費電力が効率的に利用されないことである。例えば、全体の集積回路は、最大周波数を必要とするアプリケーションをサポートするように最大周波数で動作し得るが、集積回路の他の部分は低い周波数で動作し得る。他の例では、集積回路内の非アクティブの回路が電力を消費し、リーク(leakage)の可能性を増加させる。非効率な消費電力はまた、集積回路の性能に悪影響を及ぼす。
【0009】
集積回路の複雑性の増加と共に、集積回路が更なる機能を使用するときに、消費電力の減少が更に重要になる。集積回路の一例は、単一のチップにマイクロプロセッサとメモリとI/Oインタフェースとアナログ・デジタル変換器との全てを有するシステム・オン・チップである。単一のチップで多数の異なる種類の機能が使用されており、システム・オン・チップは、単一機能の集積回路より電力を消費する。
【0010】
ある従来技術の集積回路は、消費電力を小さくするために、電圧の島又は複数のクロックを使用している。これらの集積回路での1つの課題は、電力の島での電圧及び複数のクロックの周波数が固定的である点にある。電圧及び周波数は、集積回路のニーズ及び動作に基づいて動的に変化しない。
【課題を解決するための手段】
【0011】
本発明は、電力の島を使用して集積回路の電力を管理することにより、前記の課題に対処する。集積回路は、消費電力が電力の島のそれぞれで独立して制御される複数の電力の島を有する。電力マネージャは、電力の島のうち1つの目的の電力レベルを決定する。次に、電力マネージャは、電力の島のうち1つの消費電力レベルを目的の電力レベルに変更する動作を決定する。電力マネージャは、電力の島のうち1つの消費電力レベルを目的の電力レベルに変更する動作を実行する。電力制御回路は、電力の島のうち1つの電力を制御する。
【0012】
電力の島は、集積回路の地理的要因又は機能回路に基づいて表され得る。ある実施例では、動作は、電力の島のうち1つのクロック周波数を選択すること、又は電力の島のうち1つのクロックを選択することである。ある実施例では、動作は、電力の島のうち1つの電圧を変更することである。動作は、電力の島を電力オン又は電力オフしてもよい。
【0013】
ある実施例では、電力マネージャは、電力の島の1つの消費電力レベルを監視し、消費電力レベルに基づいて閾値レベルを交差したか否かを決定し、閾値レベルの交差に基づいて動作を実行する。ある実施例では、電力マネージャは、電力の島のうち1つの構成要素の状態を保存及び回復する。
【図面の簡単な説明】
【0014】
【図1】本発明の例示的な実装における集積回路で電力を管理するシステムのブロック図
【図2】本発明の例示的な実装における集積回路で電力を管理するシステムの図
【図3】本発明の例示的な実装における低電力スタンダードセル論理ブロックの低リーク回路の図
【図4】本発明の例示的な実装における電力の島の図
【図5】本発明の例示的な実装におけるアプリケーション要求からスレーブ電力マネージャの動作までのフローチャート
【図6】本発明の例示的な実装におけるスマート電力ユニットの内部回路の図
【図7】本発明の例示的な実装におけるスマート電力ユニットの外部回路の図
【図8】本発明の例示的な実装におけるアプリケーション要求からスマート電力ユニットの動作までのフローチャート
【図9】本発明の例示的な実装において、電力低下前にIPユニットの状態を保存し、電力上昇のときにIPユニットの状態を回復するフローチャート
【図10】本発明の例示的な実装におけるシステム・オン・チップ及び拡張ローカルメモリの図
【図11】本発明の例示的な実装において、中間電力マネージャから電力管理制御レイヤに“ホットスポット”レポートを生成するフローチャート
【図12】本発明の例示的な実装におけるシステム・オン・チップの図
【図13】本発明の例示的な実装における電力の島を備えたチップを構成するフローチャート
【発明を実施するための形態】
【0015】
例示的な図面に示すように(図面で同様の参照数字は図面の類似の又は対応する要素を示す)、本発明によるシステム及び方法の例示的な実施例を以下に詳細に説明する。しかし、本発明は様々な形式で具現され得ることがわかる。従って、ここに開示された特定の詳細は限定として解釈されるべきではなく、特許請求の範囲の基礎として、また、実際に何らかの適切な詳細なシステム、構造、方法、処理又は様式で本発明を使用する当業者に教示する代表的な基礎として解釈されるべきである。
【0016】
図1は、本発明の例示的な実装における集積回路110で電力を管理するシステム100のブロック図を示している。システム100は、集積回路110と電力マネージャ120とを有する。集積回路110は、シリコン及び/又は関連の原料に具体化される何らかの電子装置である。集積回路110の一例は、システム・オン・チップである。集積回路110は、複数のIPユニットを有しており、その複数のIPユニットは、特定の機能を実行する回路のブロックである。
【0017】
集積回路110は、4つの電力の島112、114、116及び118を有する。簡単にするため、図1は4つの電力の島112、114、116及び118のみを示している。集積回路110の他の実施例は、複数の電力の島112、114、116及び118を有する。電力の島112、114、116及び118はバス125に結合されている。
【0018】
電力の島112、114、116及び118は、消費電力がセクション内、図形内、区画内又は区域内で制御される集積回路110の何らかのセクション、図形、区画又は区域である。ある実施例では、電力の島112、114、116及び118は、集積回路110の地理的要因に基づいて表される。ある実施例では、電力の島112、114、116及び118は、集積回路110の機能IPユニットに基づいて表される。図10に示す一例では、電力の島は、メモリと、マイクロプロセッサと、別々のIPブロックとにより表される。ある実施例では、電力の島112、114、116及び118は、相互に非同期又は同期である。ある実施例では、電力の島112、114、116及び118は、電力の下位の島を有し、集積回路110で電力を制御するときに更なる特異性を提供する。ある実施例では、電力の島112、114、116及び118のそれぞれは、自己の制御で複数のクロックドメインをサポートする。ある実施例では、電力の島112、114、116及び118のクロックは可変である。
【0019】
ある実施例では、電力の島112、114、116及び118のそれぞれは、電力制御回路を有する。電力制御回路は、電力の島112、114、116及び118のうち1つの電力を制御するように構成された何らかの回路である。電力制御回路のいくつかの例は、レベルシフト、信号分離、Vdd多重、クロック多重、及び動的バックバイアス用の回路を含む。ある実施例では、電力制御回路は、集積回路110のスタンダードセル設計用のスタンダードセルライブラリに含まれる。
【0020】
電力マネージャ120はまた、バス125に結合されている。バス125の一例は、図10で以下に更に詳細に説明する電力コマンドバスである。システム100の他の実施例は、電力マネージャ120と電力の島112、114、116及び118とが相互接続されている多数の変更形態を含む。電力マネージャ120は、(1)電力の島112、114、116及び118のそれぞれで消費電力が独立に制御される電力の島112、114、116及び118の1つの目的の電力レベルを決定し、(2)電力の島112、114、116及び118の1つの消費電力レベルを目的の電力レベルに変更する動作を決定し、(3)電力の島112、114、116及び118の1つの消費電力レベルを目的の電力レベルに変更する動作を実行するように構成された何らかの回路、装置又はシステムである。電力マネージャ120は、集積回路110のニーズ及び動作に基づいて、電力の島112、114、116及び118の消費電力を動的に変更することができる。目的の電力レベルは、電力の島112、114、116及び118の所望の消費電力、計算済の消費電力又は指定の消費電力である。電力マネージャ120のいくつかの例には、スレーブ電力マネージャ(SPM:slave power manager)、中間電力マネージャ(IPM:intermediate power manager)及びマスター電力マネージャ(MPM:master power manager)があり、これらは以下に更に詳細に説明する。電力マネージャ120は、電力マネージャ120の階層又はグループでもよい。図1は集積回路110の外にあるものとして電力マネージャ120を図示しているが、他の実施例は、集積回路110にある電力マネージャ120を有してもよい。他の実施例では、電力マネージャ120は、集積回路110上又は集積回路110外の複数の電力マネージャに分散されてもよく、CPUと統合されてもよい。
【0021】
動作は、電力の島112、114、116及び118の消費電力を制御する何らかの命令、メッセージ、処理、関数、信号又は変数である。動作のいくつかの例には、クロックゲートと動的クロック選択がある。動作の他の例は、電力の島112、114、116及び118の1つのクロック周波数を変更することである。動作の他の例は、動的電圧ソース、Vdd、選択のような電力の島112、114、116及び118の1つの電圧を変更することである。動作の他の例は、可変Vtトランジスタを制御することにより、動的リークを制御することである。
【0022】
図2は、本発明の例示的な実施例における集積回路250で電力を管理するシステム200の図を示している。システム200は、内蔵ファームウェアスタック210と、集積回路250とを有する。内蔵ファームウェアスタック210は、中央処理装置(CPU)で動作するソフトウェアレイヤを有する。ある実施例では、内蔵ファームウェアスタック210は、アプリケーションレイヤ212と、オペレーティングシステム(OS)サブシステム216と、電力管理制御レイヤ(PMCL:power management control layer)218と、リアルタイムオペレーティングシステム(RTOS:real-time operating system)220と、I/Oドライバ222と、MPM、IPM及び/又はSPM用の電力管理(PM:power management)ファームウェア224とを有してもよい。
【0023】
集積回路250は、電力の島260と、電力の島270と、MPM280とを有する。電力の島260は、低電力スタンダードセル論理ブロック262と、SPM264とを有する。電力の島270は、低電力メモリブロック272と、SPM274とを有する。低電力スタンダードセル論理ブロック262及び低電力メモリブロックは、インタフェース265に結合されている。MPM280は、PMCL218とSPM264とSPM274とに結合されている。
【0024】
ある実施例では、アプリケーションレイヤ212は、全体電力アプリケーションレイヤ(GPAL:global power application layer)214を有する。このGPAL214は、複雑なアプリケーションで有用なことがある。GPAL214が存在する場合、PMCL218のアプリケーションプログラムインタフェース(API)への全ての呼び出しは、最初にGPAL214に指示される。GPAL214とPMCL218との双方が集積回路250の電力管理を提供する。ある実施例では、GPAL214及び/又はPMCL218は、それぞれの電力の島260及び270に何の負荷があるかを監視する。また、GPAL214及び/又はPMCL218は、電力の島260及び270の電力レベルの履歴を構築し、データベースに履歴データを格納してもよい。GPAL214及びPMCL218はまた、電力の島260及び270の電力レベルに関与するオンデマンド型のリソース用のデータを提供してもよい。
【0025】
ある実施例では、GPAL214が存在する場合に、GPAL214は、集積回路250の電力管理についてローカルの決定を行う際にPMCL218への案内を提供する。ある実施例では、GPAL214及びPMCL218は、静的スケジュール用の複雑なアルゴリズムを有する。GPAL214及びPMCL218は、電力の動作を相互作用して制御するコードを使用する機能と、データベース及び統計を提供することを含むパラメータとを提供する。
【0026】
PMCL218はまた、MPM280から情報を収集し、可能なIPM、SPM264及び274、並びに電力の島260及び270について、MPM280にコマンドを提供する。コマンドのいくつかは、電力オン/オフ、電力レベルの変更、又は電力の島260及び270の周波数の変更でもよい。スマート電力ユニット(SPU:smart power unit)を備えたある実施例では、CPAL214及びPMCL218は、電力ポリシーを実装して実際の電力供給についての情報を収集するために、SPU290と通信する役目をする。SPU290については、図6−8で以下に更に詳細に説明する。ある実施例では、GPAL214及びPMCL218は、既存の電力管理技術用のソケットを提供する。
【0027】
電力マネージャファームウェア224は、マスター電力マネージャ280と中間電力マネージャとスレーブ電力マネージャ264及び274とにより実行されるファームウェアである。
【0028】
MPM280は、全体の集積回路250の“全体”電力動作を制御するように構成された何らかの回路である。ある実施例では、全体の集積回路250の電力動作を制御する複数のMPM280が存在する。ある実施例では、MPM280は既存のIPM並びにSPM264及び274と通信し、電力の島260及び270の電力を制御する。MPM280は、SPM264及び274並びにIPMから電力の島260及び270についての状態情報を受信してもよい。MPM280はまた、IPM並びにSPM264及び274の間の電力のトレードオフを決定してもよい。
【0029】
MPM280はまた、PMCL218ファームウェアに対するメインインタフェースを提供してもよい。ある実施例では、MPM280は、PMCL218と通信し、コマンド(例えばメモリマップのコマンド)を受け入れ、集積回路250内の電力についての状態情報を提供する。ある実施例では、MPM280は、集積回路250のメインバスを通じてPMCL218と通信する。MPM280はまた、SPM264及び274並びにIPMと機能とのそれぞれをPMCL218に登録してもよい。MPM280のいくつかの動作について、図5、8、9及び11で以下に詳細に説明する。ある実施例では、MPM280は状態保存用のスキャン・チェーン(scan chain)を読み書きし、ローカルの論理アナライザ機能で回復する。
【0030】
ある実施例は、MPM280の代わりにSPM264及び274を調整するIPM(図示せず)を有してもよい。ある実施例では、IPMは、MPM280により制御される領域の部分で電力動作を制御及び調整する。ある実施例では、IPMは、MPM280と異なるチップにあるSPM264及び274を制御する。
【0031】
SPM264は、集積回路250の電力の島264で電力を制御するように構成された何らかの回路である。SPM264の一例は、集積回路250の電力の島264で電力を制御するIPブロックである。SPM264は、信号バッファと、レベルシフトと、信号分離とを有してもよい。ある実施例では、SPM264は簡単な実装及び統合を提供するスキャン・チェーンに統合される。また、ある実施例では、SPM264は、低ゲートカウント及び低電力を備えた非常に小さい“フットプリント”を有する。ある実施例では、SPM264は、状態情報とサービス要求とコマンドとを通信するコマンドインタフェースを有する。コマンドのいくつかには、ロード、スリープ及びアイドルがある。SPM264はまた、分岐バスを可能にするために、自分のアドレスを認識してもよい。
【0032】
ある実施例では、SPM264は登録機能を有する。電力上昇時の登録では、SPM264はオフチップSPM及びIPMで一般的に使用されるコールバック登録を使用する。集積回路がオンチップSPMで生成されたときの静的な登録では、SPM264は、SPM264が何をすることができるか、IPMが何をすることができるか、及びSPM264又はIPMがサービス可能なコマンドの種類を登録する。SPM264はまた、電源オフの間の保存及び回復機能を有してもよい。SPM264は、ウォッチ・ドッグ・タイマー(watch-dog timer)を有してもよい。ある実施例では、SPM264は、電力の島260に対するデバッグインタフェース調整を有する。SPM264はまた、ローカル状態を監視し、電力の島260内の構成要素の情報を収集してもよい。SPM264はまた、Vdd、周波数選択用のクロック、及び動的バックバイアスをローカルで制御してもよい。SPM264の説明はまた、電力の島270のSPM274にも当てはまる。
【0033】
ある実施例では、SPM264は、電力の島260からの収集情報が閾値を交差したとき又は範囲を超過したときにイベントが生じたか否かを検査する。ある実施例では、SPM264、IPM又はMPM280は、電力の島260の消費電力レベルを監視し、消費電力レベルが閾値レベルを交差したか又は範囲を超過したか否かを検査する。消費電力レベルは、電力の島260で消費される電力を示す何らかの情報、データ又は統計である。消費電力レベルのいくつかの例には、温度及び電力がある。閾値又は範囲はプログラム可能でもよい。SPM264は、非同期でイベントをレポートしてもよく、或いはMPM280のような他の要素は、イベントが生じたか否かを求めてもよい。イベントはまた、所定のプログラム可能な周波数より大きい時に生じる条件、又は所定のプログラム可能な持続時間を超過する条件のように、複数レベルのテストでもよい。
【0034】
ある実施例では、低電力スタンダードセル論理ロジック262は、電力の島260に含まれ得るスタンダードセルライブラリの一例である。ある実施例では、スタンダードセルライブラリは、低電力用に最適化されている。スタンダードセルライブラリは、一連の動作電圧で特徴を有してもよい。ある実施例では、スタンダードセルライブラリは、同期回路及び/又は非同期回路を有する。ある実施例では、スタンダードセルライブラリは、静的回路及び/又はカプセル化動的論理回路を有する。スタンダードセルライブラリはまた、レベルシフタや信号分離回路のような複数電圧ドメインのインタフェース回路を有してもよい。スタンダードセルライブラリはまた、標準Vt、高Vt、低Vt及び可変Vt回路のような複数閾値の設計及び特徴を有してもよい。スタンダードセルライブラリはまた、データ保存(シャドー)回路と、非グリッチ回路とを有してもよい。スタンダードセルライブラリはまた、低リークの“スリープ”回路を有してもよい。図3は、本発明の例示的な実装における低電力スタンダードセル論理ブロック262の低リーク回路300を示している。
【0035】
図4は、本発明の例示的な実装における電力の島270の図を示している。電力の島270は、低電力メモリブロック272と、SPM274とを有する。低電力メモリブロック272は、メモリ用のバンク構造410、420、430及び440と、スリープ電力低下回路450とを有する。ある実施例では、電力の島270のメモリはRAM及び/又はROMである。RAMのいくつかの例には、単一ポートや2ポートやデュアルポートのようなSRAMコンパイラがある。ROMのいくつかの例には、ROMコンパイラがある。電力の島270のいくつかのメモリは、低電力メモリブロック272のように低電力用に最適化されている。一実施例では、低電力メモリブロック272は、バンク構造410、420、430及び440のようなコンパイラを介した複数のバンク構造を有する。電力の島270のメモリはまた、スリープやナップ(nap)や全電力低下のような低電力モード用のスリープ電力低下回路450を有してもよい。電力の島270のメモリはまた、プログラム可能な読み/書きポートを有してもよい。電力の島270のメモリはまた、非同期及び/又は同期設計でもよい。
【0036】
ある実施例では、システム200はまた、スマート電力ユニット(SPU:smart power unit)290を有する。ある実施例では、SPU290は、集積回路250に対してオフチップである。SPU290は、集積回路に対する電力とクロックの分配を制御するように構成された外部ユニットである。SPUの回路について、図7及び8で以下に更に詳細に説明する。
【0037】
図5は、本発明の例示的な実装におけるアプリケーション要求からSPM動作までのフローチャートを示している。図5はステップ500で始まる。ステップ502において、映画の再生のように、アプリケーションが起動される。ステップ504において、アプリケーションは、IPユニットの性能に必要な周波数を決定する。例えば、アプリケーションは、MPEGデコーダ用のIPユニットについて、MHzで指定の周波数を決定する。ある実施例では、IPユニットが完全に非同期である場合、所要の周波数は性能の人為的指標である。複数のクロックが含まれるある実施例では、クロック毎の最小の性能が特定される。
【0038】
ステップ506において、アプリケーションはPMCL218のAPI呼び出しを起動する。この呼び出しの一例は、“Set_Rate(ユニットY、N MHz、許容の動的電力管理(DPM:dynamic power management)の程度、DPMの閾値、DPMのトレードオフを可能にする他の情報、動的バイアスでのSPMの開始バックバイアス、電力上昇フラグ用の待ち時間)”である。この例では、他の情報は、“電力オフにせずに、高Vt及びクロックオフを使用する”及び“400nsの閾値で主な待ち時間は10usである”でもよい。複数のクロックを有するいくつかの実施例では、PMCL218のAPI呼び出しにより、アプリケーションが全ての所要の周波数を特定することが可能になる。
【0039】
PMCL218は、ステップ508において、所定の要件に最も合うものとしてユニットに該当する場合には、ユニットで利用可能な生じ得るトレードオフを決定し、周波数レート、Vdd及びVtを選択し、ステップ510において、適切なSPM264及び274を決定する。ある実施例では、MPM280又はIPMはステップ508及び510を実行する。複数クロックのいくつかの実施例では、特定されたVdd及びVtにより、全ての特定されたクロックがその所要周波数に一致すること又はそれを超過することが可能になる。
【0040】
ステップ512において、PMCL218は、SPM264及び274の所望の設定をMPM280(又はIPM)に書き込む。ステップ514において、MPM280(又はIPM)は、ユニットに関連するSPM264及び274(又はIPM)用の1つ以上のコマンドに要求を変換する。
【0041】
ステップ516において、アプリケーションが電力上昇フラグ用の待ち時間を設定している場合、PMCL218は、呼び出しから戻る前にIPユニットが完全に電力上昇するまで待機する。別法では、コマンドが肯定応答されるとすぐに、OKでは0の状態で、高速電力上昇では1の状態で、低速電力上昇では2の状態で、又はエラー状態では3+の状態で、呼び出しが戻る。電力上昇状態は、ユニットが単に電源オンになっていることではなく、ユニットが所要の周波数で所望のVddにあるときである。
【0042】
ステップ518において、MPM280(又はIPM)は、適切な目的物に要求を送信する。ステップ520において、MPM280は、受信して実行されたメッセージ又は実行が開始したメッセージを示す肯定応答の受信を待機する。NACK又は否定応答もまた、SPM264及び274から返信されてもよい。
【0043】
ステップ522において、SPM264はコマンドを受信し、動作を実行する。ステップ524-528は、SPM264が実行し得る可能な動作である。ステップ524において、SPM264はVdd muxを切り替える。ステップ526において、SPM264はクロックmuxを切り替える。ある実施例では、電圧が低下すると、ステップ526はステップ524の前に実行される。ステップ528では、SPM264は関連のトランジスタでVtを変化させる。SPM264が動作を実行した後に、ステップ530において、SPM264は肯定応答又は否定応答を示す状態メッセージをアップストリームで返信する。図5はステップ532で終了する。
【0044】
図6は、本発明の例示的な実装におけるSPU290の内部回路600の図を示している。この実施例では、SPU290の内部回路600は、図2の集積回路250の内部にある。内部回路600は、外部電圧610と、ドロップアウト電圧レギュレータ620と、ドロップアウト電圧レギュレータ630と、論理ブロック640と、論理ブロック650とを有する。
【0045】
図7は、本発明の例示的な実装におけるSPU290の外部回路700の図を示している。この実施例では、SPU290の外部回路700は、図2の集積回路250の外部にある。内部回路700は、外部電圧710と、電力供給ピン720と、電力供給ピン730と、電力供給ピン740と、論理ブロック750と、論理ブロック760と、論理ブロック770とを有する。SPU290の外部回路700は、DC/DC変換を提供する。DC/DC変換は、複数の独立した電力供給ピン720、730及び740を提供する。電力供給ピン720、730及び740は、それぞれ別々の電力ピンに可変電圧源を有する。また、ある実施例では、可変電圧は一定の範囲内であり、段階的である。ある実施例では、PMCL218は、電力供給ピン720、730及び740に対する電圧を制御する。
【0046】
図8は、本発明の例示的な実施例におけるアプリケーション要求からSPUの動作までのフローチャートを示している。図8はステップ800で始まる。ステップ802において、アプリケーションが起動される。ステップ804において、アプリケーションは、IPユニットの性能に必要な周波数を決定する。例えば、アプリケーションは、MPEGデコーダ用のIPユニットについて、MHzで指定の周波数を決定する。
【0047】
ステップ806において、アプリケーションはPMCL218のAPI呼び出しを起動する。この呼び出しの一例は、“Set_Rate(ユニットY、N MHz、許容の動的電力管理(DPM:dynamic power management)の程度、DPMの閾値、DPMのトレードオフを可能にする他の情報、動的バイアスでのSPMの開始バックバイアス、電力上昇フラグ用の待ち時間)”である。この例では、他の情報は、“電力オフにせずに、高Vt及びクロックオフを使用する”及び“400nsの閾値で主な待ち時間は10usである”でもよい。
【0048】
PMCL218は、ステップ808において、ユニットで利用可能な生じ得るトレードオフを決定し、所用の周波数をサポートする最低の可能なVddを選択し、ステップ810において、影響を受けるSPM264及び274と、どの電力ピンを変更するかとを決定する。
【0049】
ステップ812において、PMCL218は、MPM280にコマンドを送信し、SPM264及び274(及びIPM)にVdd変化の準備をさせる。ステップ814において、PMCL218はMPM280からの肯定応答を待機する。ステップ816において、PMCL218は、SPU290にコマンドを送信し、選択された電力ピンでのVddを変更し、影響を受けた領域が“落ち着く”ことを待機する。ステップ818において、PMCL218は、MPM280に“指定の周波数での動作をレジュームする”コマンドを送信する。ステップ820において、MPM280は、全ての影響を受けるSPM264及び274(及びIPM)にレジュームコマンドを伝搬する。ステップ822において、電力マネージャ(すなわち、MPM280、IPM、又はSPM264及び274)の1つは、指定の周波数を設定する。ステップ824において、IPユニットの動作は、クロックが落ち着いた後にレジュームする。図8はステップ826で終了する。ある実施例では、ユーザアプリケーションは、全体の動作が終了又は継続することを待機する選択肢を有し、動作の進行に関してPMCLに問い合わせ、又はPMCL218から“終了”の割込みを待機する。
【0050】
図9は、本発明の例示的な実装において、電力低下前にIPユニットの状態を保存し、電力上昇のときにIPユニットの状態を回復するフローチャートを示している。図9はステップ900で始まる。ステップ902において、ユーザアプリケーションは、PMCL218がIPユニットを電源オフすることを要求し、IPユニットの状態を保存しようとする。ある実施例では、IPユニットの再構成に時間を要する。ステップ902での要求は、状態が保存されるべき領域のアドレスが伴ってもよい。
【0051】
ステップ904において、PMCL218は、“クロックを中止してIPユニット状態を読み取る”メッセージをMPM280に送信する。ステップ906において、MPM280は、“クロックを中止してIPユニット状態を読み取る”メッセージを、影響を受けるユニットのSPM264及び274に伝搬する。ステップ908において、MPM280は、PMCL218への提示用にレジスタ又はバッファに状態を読み取るために、IPユニットのスキャン・チェーンを使用する。ステップ910において、PMCL218が保存領域のアドレスをMPM280に提供している場合には、MPMは指定の領域に直接に状態情報を保存する。ステップ912において、全てのIPユニットの状態が保存された後に、PMCL218は“IPユニットを電源オフする”メッセージをMPM280に送信する。ステップ914において、MPM280は“IPユニットを電源オフする”メッセージを伝搬する。ステップ916において、PMCL218は、ユーザアプリケーションに保存状態領域を返信する。保存状態領域は、ユニットの状態を含む。
【0052】
後に、ステップ918において、PMCL218がIPユニットを電力上昇してIPユニットの状態を回復することを、ユーザアプリケーションが要求する。ある実施例では、ユーザアプリケーションの要求は、状態が保存された領域のアドレスを有する。ステップ902において、PMCL218は、“クロックオフでIPユニットを電力上昇して状態を回復する”メッセージをMPM280に送信する。ステップ922において、MPM280は、“クロックオフでIPユニットを電力上昇して状態を回復する”メッセージを、影響を受けるIPユニットのSPM264及び274に伝搬する。ステップ924において、IPユニットが電力上昇した後に、MPM280は、ユニットの状態を再ロードするためにスキャン・チェーンを使用する。ある実施例では、ユニットの状態の再ロードは、保存領域から、又はPMCL218からMPM280に渡された情報から直接に生じる。ステップ926では、PMCL218は、MPM280にメッセージを送信し、クロックを戻し、IPユニットが動作を継続する準備ができていることをユーザアプリケーションにレポートする。図9はステップ928で終了する。
【0053】
ある実施例では、図9の同じ機能が内部“論理アナライザ”機能を実装するために使用される。その内部“論理アナライザ”機能では、当該IPユニットは、読み取られた後に電力低下しない。IPユニットの関連のSPM264及び274がクロックをシングルステップ又はマルチステップする機能を有する場合、ローカルのスキャン・テストは、SPM264及び274にIPユニットを“信号分離”させることにより実行される。次に、クロックをシングルステップ又はマルチステップする機能と、スキャン・チェーンを使用する機能との組み合わせを使用して、IPユニットの内部状態を読み書きすることができる。
【0054】
図10は、本発明の例示的な実装におけるシステム・オン・チップ(SOC:system-on-a-chip)1000及び拡張ローカルメモリ1004の図を示している。SOC1000は、集積回路250の一例であり、前述のように図2の内蔵ファームウェアスタック210と通信する。SOC1000は、CPU1010と、ローカルメモリ1020と、メモリコントローラ1030と、混合信号回路1040と、アプリケーション特有回路1050と、PCI-X回路1060と、MPM1070と、リアルタイムクロック(RTC:real-time clock)1075と、Ethernet(登録商標)回路1080と、USB回路1090とを有する。CPU1010、ローカルメモリ1020、メモリコントローラ1030、混合信号回路1040、アプリケーション特有回路1050、PCI-X回路1060、MPM1070、Ethernet(登録商標)回路1080、及びUSB回路1090は全て、電力マネージャにより電力が電力の島の中で制御される電力の島である。この実施例では、電力の島は、SOC1000の部分の機能によって表される。
【0055】
拡張ローカルメモリ1004は、バス1071に結合されているIPM1006を有する。CPU1010は、バス1071に結合されているSPM1015を有する。ローカルメモリ1020は、バス1071に結合されているSPM1025を有する。メモリコントローラ1030は、バス1071に結合されているSPM1035を有する。混合信号回路1040は、バス1071に結合されているSPM1045を有する。アプリケーション特有回路1050は、双方ともバス1072に結合されているIPM1055及びSPM1058を有する。PCI-X回路1060は、バス1072に結合されているSPM1065を有する。MPM1070は、バス1071及びバス1072に結合されている。MPM1070は、前述のMPM280の一例である。Ethernet(登録商標)回路1080は、バス1072に結合されているSPM1085を有する。USB回路1090は、バス1072に結合されているSPM1095を有する。
【0056】
この実施例では、電力コマンドバスは、バス1071とバス1072とを有する。バス1071及び1072は、チップ境界を交差して電力マネージャを相互接続し得る簡単なマルチドロップのシリアルバスである。電力コマンドバスは、チップの領域毎に1つ存在して領域内でマルチドロップするバス1071やバス1072のようなシリアルバスの結合でもよい。他の実施例では、電力コマンドバスは、パラレルバス、又はシリアル及びパラレルバスの結合を有する。ある実施例では、電力コマンドバスはシステムバスである。電力コマンドバスは、関連のペイロードを備えた少なくともユニットIDを備えたメッセージを有してもよい。固定のポイント・ツー・ポイント・バスでは、メッセージはユニットIDを必要とせず、ペイロードだけでよい。
【0057】
ある実施例では、電力コマンドバスは、パリティ、ECC又は冗長コードのようなエラー検出機構を使用する。ある実施例では、電力コマンドバスは、集積回路の設計に干渉しない低性能バスであり、ユーザに可視的ではない。ある実施例では、PMCL218とMPM1070との間の通信は、メモリにマッピングされSOC1000のABHのようなメインバスに基づく。
【0058】
いくつかの実施例は、電力マネージャ間で状態情報をレポートする別々のバスを有してもよい。一例では、この別々のバスは、SPMからMPMへの非同期“警告”形式の状態メッセージを提供する。
【0059】
電力コマンドバスに様々なメッセージフォーマットが存在する。基本フォーマットの一例では、メッセージフォーマットは、メッセージインジケータの開始、電力マネージャのアドレス、形式コード、基本コマンド及びメッセージインジケータの終了を有する。拡張フォーマットの一例では、メッセージフォーマットは、基本フォーマット、更なる長さ及び更なる情報を有する。応答メッセージフォーマットの一例では、メッセージフォーマットは、メッセージ応答インジケータの開始、電力マネージャのアドレス、3b ACK若しくはNACK又は返信状態(暗示のACK)、返信状態メッセージのペイロード長、返信状態メッセージのペイロード、NAKの理由及びメッセージインジケータの終了を有する。
【0060】
ある実施例では、SPM1015又はIPM1006は、コマンドに応答する時にタイムアウトし、MPM1070は、プログラム可能な回数だけコマンドを再発行する。SPM1015又はIPM1006が依然として失敗する場合には、MPM1070はSPM1015又はIPM1006を使用不可能としてマークし、失敗をPMCL218にレポートする。一実施例では、PMCL218は、MPM1070に対して、スキャン・システムを介して失敗したSPM1015又はIPM1006を再初期化させ、メッセージの送信を再試行する。コマンドに対する無効な応答又は無効な状態のレポートのような他の条件も、再初期化により取り扱われる。ある実施例では、失敗したSPM1015又はIPM1006の状態は、後の分析のために読み取られて保存されてもよい。
【0061】
図11は、本発明の例示的な実装において、IPM1055からPMCL218に“ホットスポット”レポートを生成するフローチャートを示している。図11はステップ1100で始まる。ステップ1102において、IPM1055は、SPMの温度統計を監視する。ステップ1104において、IPM1055は、平均温度が所定のプログラムされた閾値を超過したか否かを検査する。平均温度が閾値を超過していない場合、IPM1055はステップ1102に戻り、監視を続ける。平均温度が閾値を超過している場合、ステップ1106において、IPM1055は問題(“ホットスポット”)レポートメッセージを生成する。ステップ1108において、IPM1055は、MPMからの次の状態問い合わせを待機する。ある実施例では、MPM280への非同期状態レポートについて論理的に別々のバスが提供される。
【0062】
ステップ1110において、MPM1070は、ホットスポットレポートのメッセージを受信する。ステップ1112において、MPM1070は、更なる確認を待機し(すなわち、“ホットスポット”が所定の閾値を最後に超過したことを検出する)、或いはMPM1070の内部ロジックに応じて問題を解決する動作を直ちに行う。ある実施例では、ステップ1114において、MPM1070は、注意を必要とするというPMCL280への割込みをポストすることにより、動作を行う。他の実施例では、PMCL280が十分に頻繁にMPM1070に問い合わせを行った場合に、割込みが必要なくなる。ステップ1116において、MPM1070(又はIPM)は、ローカルのトレードオフを行うことにより、動作を実行することにより、又は実行される動作を順序付けることにより、問題を解決する。問題を解決する一例は、ホットスポット領域の動作周波数を低減することである。ステップ1118において、MPM1070は問題と問題の解決との双方をアップストリームでレポートする。
【0063】
ステップ1120において、PMCL218は、MPM1070から修正ホットスポットレポートを読み取る。ステップ1122において、PMCL218は、問題を解決するために何の動作を行うべきかを決定し、或いはGPAL214に問題を通知する。ステップ1124において、PCML218は、適切なコマンドをMPM1070に発行し、問題を解決する。このステップにおいて、ソフトウェアは問題を解決するために必要なトレードオフを行う。ある実施例では、GPAL214がハイレベルの解決を決定すると、GPAL214はMPMコマンドに変換されるようにそれをPMCL280に送信する。ステップ1126において、PMCL218は、指定の時間だけ問題の領域を監視し、問題が解決されたか否かを検査する。図11はステップ1128で終了する。
【0064】
ある実施例では、図11の機能の種類は、PMCL218のような他のレベルで実行されてもよい。一例では、PMCL218は、そのローカルの条件に関して所望の測定機能(及びIPM)を有する全てのSPMに(MPM1070)を介して問い合わせ、例えば、動作し得る電力使用量の“マップ”を構築してもよい。
【0065】
図12は、本発明の他の例示的な実装におけるシステム・オン・チップ(SOC:system-on-a-chip)1200の図を示している。SOC1200は、センサリンク1212と、RFリンク1214と、制御リンク1216と、ビデオリンク1294と、オーディオリンク1295と、インタフェースリンク1296と、制御リンク1297と、電力リンク1298とに接続されている。SOC1200は、クロック及び分配管理1210と、IPブロックの電力の島1220と、メモリの電力の島1230と、マイクロプロセッサの電力の島1240と、IPブロックの電力の島1250と、分配の電力の島1260と、IPブロックの電力の島1270と、IPブロックの電力の島1280と、電力及び分配管理1290とを有する。
【0066】
IPブロックの電力の島1220はアナログ・デジタル変換器(ADC:analog-to-digital converter)を含むプロダクト標準インタフェースのIPブロック1222を有し、そのプロダクト標準インタフェースのIPブロック1222はSPM1224を有する。IPブロックの電力の島1230はメモリ1232を有し、そのメモリ1232はSPM1234を有する。マイクロプロセッサの電力の島1240は、マイクロプロセッサ1242を有し、そのマイクロプロセッサ1242はSPM1244を有する。IPブロックの電力の島1250はADCを含むプロダクト標準インタフェースのIPブロック1252を有し、そのプロダクト標準インタフェースのIPブロック1252はSPM1254を有する。分配の電力の島1260は、データ及び信号分配1262を有し、そのデータ及び信号分配1262はSPM1264を有する。IPブロックの電力の島1270はデジタルシグナルプロセッサ(DSP:digital signal processor)を含む汎用IPブロック1272を有し、その汎用IPブロック1272はSPM1274を有する。IPブロックの電力の島1280はプロダクト特有IPブロック1282を有し、そのプロダクト特有IPブロック1282はSPM1284を有する。電力及び分配管理1290はMPM1292を有する。
【0067】
図13は、本発明の例示的な実装における電力の島を備えたチップを構成するフローチャートを示している。図13はステップ1300で始まる。ステップ1302において、IP又はライブラリセルが選択され、存在する場合にはチップを構築するために使用されるカスタムロジックが特定される。ある実施例では、最大及びサブクロックレートと、%アイドル時間と、最小及び最大Vddとが特定される。ステップ1304において、レジスタ転送レベル(RTL:register transfer level)が書き込まれる。ステップ1306において、RTLがシミュレーション及びデバッグされる。
【0068】
RTLの書き込み中又は書き込み後に、ステップ1308において、MPM、IPM及びSPMブロックの注釈(annotation)を追加するためにソフトウェアツールが使用されてもよい。ある実施例では、所望の機能の選択肢が注釈で特定される。ある実施例では、SPMブロック毎に任意選択の機能が特定される。ある実施例では、モジュール毎にRTLがSPM構成情報で注釈を付される。ある実施例では、RTLの書き込み中又は書き込み後に、適切な注釈がモジュール毎に手動で挿入される。他の実施例では、適切なフォーマットの別々のテーブルがモジュール名及び各注釈を用いて作られる。ある実施例では、別々のソフトウェアツールは、別々のテーブルをインタラクティブに構築する機能を提供する。ある実施例では、ソフトウェアツールは、テーブルからの情報を使用して、RTLの注釈のないモジュールに適切な注釈を追加する。
【0069】
ステップ1310において、電力の島毎に合成が行われ、電力の島は混合しない。ステップ1312において、Vdd及びVtの選択肢毎に各モジュールで性能測定ソフトウェアが動作し、MPMの注釈がRTLに追加される。ある実施例では、設計の性能は全ての所望の電圧とVtとの組み合わせで測定される。ソフトウェアツールは、SPM毎に実際の周波数、Vdd及びVtテーブルを導き、MPM(又はIPM)のRTLにSPMの特性の注釈を付ける。
【0070】
ステップ1314において、電力の島毎に最後の合成が行われる。ある実施例では、モジュールは別々にルートされ又はSPMによる。ステップ316において、ソフトウェアツールが動作し、電力及びクロックを各SPMにつなぐ。ステップ1318は実行されるステップの残りである。ある実施例では、ソフトウェアツールは全ての情報を備えた最終リストを生成する。図13はステップ1320で終了する。
【0071】
前述の要素は、記憶媒体に格納される命令から構成されてもよい。命令はプロセッサにより取り出されて実行されてもよい。命令のいくつかの例には、ソフトウェア、プログラムコード及びファームウェアがある。記憶媒体のいくつかの例には、メモリ装置、テープ、ディスク、集積回路及びサーバがある。命令は、プロセッサにより実行されると、本発明に従って動作するようにプロセッサを指示するように、動作可能である。当業者は、命令、プロセッサ及び記憶媒体に精通している。
【0072】
前述の説明は例示的であり限定的ではない。この開示を検討することで、本発明の多数の変形形態が当業者に明らかになる。従って、本発明の範囲は、前述の説明を参照して決定されるのではなく、特許請求の範囲及びその均等の全範囲を参照して決定されるべきである。
【0073】
本発明の実施例について、以下の項目を開示する。
【0074】
(1)複数の電力の島を有する集積回路で電力を管理する方法であって、
消費電力が電力の島のそれぞれで独立して制御される前記電力の島のうち1つの目的の電力レベルを決定し、
前記電力の島のうち1つの消費電力レベルを前記目的の電力レベルに変更する動作を決定し、
前記電力の島のうち1つの消費電力レベルを前記目的の電力レベルに変更する動作を実行することを有する方法。
【0075】
(2)(1)に記載の方法であって、
前記電力の島は、前記集積回路の地理的要因に基づいて表される方法。
【0076】
(3)(1)に記載の方法であって、
前記電力の島は、前記集積回路の機能回路に基づいて表される方法。
【0077】
(4)(1)に記載の方法であって、
前記電力の島は、電力の下位の島を有する方法。
【0078】
(5)(1)に記載の方法であって、
前記電力の島は、複数のクロックドメインを有する方法。
【0079】
(6)(1)に記載の方法であって、
前記動作は、前記電力の島のうち1つのクロック周波数を選択することを有する方法。
【0080】
(7)(1)に記載の方法であって、
前記動作は、前記電力の島のうち1つのクロックを選択することを有する方法。
【0081】
(8)(1)に記載の方法であって、
前記動作は、前記電力の島のうち1つの第1の電圧を変更することを有する方法。
【0082】
(9)(8)に記載の方法であって、
前記第1の電圧は、ソース電圧を有する方法。
【0083】
(10)(8)に記載の方法であって、
前記第1の電圧は、閾値電圧を有する方法。
【0084】
(11)(1)に記載の方法であって、
前記動作は、前記電力の島のうち1つで電力をオンすることを有する方法。
【0085】
(12)(1)に記載の方法であって、
前記動作は、前記電力の島のうち1つで電力をオフすることを有する方法。
【0086】
(13)(1)に記載の方法であって、
前記動作は、前記電力の島のうち1つをスリープモードに変更することを有する方法。
【0087】
(14)(1)に記載の方法であって、
前記電力の島のうち1つの消費電力レベルを監視し、
前記消費電力レベルに基づいて閾値レベルを交差したか否かを決定し、
前記閾値レベルの交差に基づいて前記動作を実行することを更に有する方法。
【0088】
(15)(1)に記載の方法であって、
前記電力の島のうち1つの構成要素の状態を保存することを更に有する方法。
【0089】
(16)(1)に記載の方法であって、
前記電力の島のうち1つの構成要素の状態を回復することを更に有する方法。
【0090】
(17)消費電力が電力の島のそれぞれで独立して制御される複数の電力の島を有する集積回路用のシステムであって、
前記電力の島のうち1つの電力を制御するように構成された電力制御回路と、
前記電力の島のうち1つの目的の電力レベルを決定し、前記電力の島のうち1つの消費電力レベルを前記目的の電力レベルに変更する動作を決定し、前記電力の島のうち1つの消費電力レベルを前記目的の電力レベルに変更する動作を実行するように構成された電力マネージャと
を有するシステム。
【0091】
(18)(17)に記載のシステムであって、
前記電力の島は、前記集積回路の地理的要因に基づいて表されるシステム。
【0092】
(19)(17)に記載のシステムであって、
前記電力の島は、前記集積回路の機能回路に基づいて表されるシステム。
【0093】
(20)(17)に記載のシステムであって、
前記電力の島は、電力の下位の島を有するシステム。
【0094】
(21)(17)に記載のシステムであって、
前記電力の島は、複数のクロックドメインを有するシステム。
【0095】
(22)(17)に記載のシステムであって、
前記動作は、前記電力の島のうち1つのクロック周波数を選択することを有するシステム。
【0096】
(23)(17)に記載のシステムであって、
前記動作は、前記電力の島のうち1つのクロックを選択することを有するシステム。
【0097】
(24)(17)に記載のシステムであって、
前記動作は、前記電力の島のうち1つの第1の電圧を変更することを有するシステム。
【0098】
(25)(24)に記載のシステムであって、
前記第1の電圧は、ソース電圧を有するシステム。
【0099】
(26)(24)に記載のシステムであって、
前記第1の電圧は、閾値電圧を有するシステム。
【0100】
(27)(17)に記載のシステムであって、
前記動作は、前記電力の島のうち1つで電力をオンすることを有するシステム。
【0101】
(28)(17)に記載のシステムであって、
前記動作は、前記電力の島のうち1つで電力をオフすることを有するシステム。
【0102】
(29)(17)に記載のシステムであって、
前記動作は、前記電力の島のうち1つをスリープモードに変更することを有するシステム。
【0103】
(30)(17)に記載のシステムであって、
前記電力マネージャは、
前記電力の島のうち1つの消費電力レベルを監視し、
前記消費電力レベルに基づいて閾値レベルを交差したか否かを決定し、
前記閾値レベルの交差に基づいて前記動作を実行するように構成されたシステム。
【0104】
(31)(17)に記載のシステムであって、
前記電力マネージャは、前記電力の島のうち1つの構成要素の状態を保存するように構成されたシステム。
【0105】
(32)(17)に記載のシステムであって、
前記電力マネージャは、前記電力の島のうち1つの構成要素の状態を回復するように構成されたシステム。
【0106】
(33)(17)に記載のシステムであって、
前記電力マネージャと前記電力の島とに結合されたバスを更に有するシステム。
【0107】
(34)(17)に記載のシステムであって、
前記電力マネージャは、前記集積回路の電力を制御するように構成されたマスターマネージャを有するシステム。
【0108】
(35)(17)に記載のシステムであって、
前記電力マネージャは、前記電力の島のうち1つの電力を制御するように構成されたスレーブマネージャを有するシステム。
【0109】
(36)(17)に記載のシステムであって、
前記電力制御回路は、クロック多重回路を有するシステム。
【0110】
(37)(17)に記載のシステムであって、
前記電力制御回路は、電圧多重回路を有するシステム。
【0111】
(38)(17)に記載のシステムであって、
前記電力制御回路は、レベルシフト回路を有するシステム。
【0112】
(39)複数の電力の島を有する集積回路で電力を管理するソフトウェアプロダクトであって、
プロセッサにより実行されると、消費電力が電力の島のそれぞれで独立して制御される前記電力の島のうち1つの目的の電力レベルを決定し、前記電力の島のうち1つの消費電力レベルを前記目的の電力レベルに変更する動作を決定し、前記電力の島のうち1つの消費電力レベルを前記目的の電力レベルに変更する動作を実行するように、前記プロセッサに指示するように動作可能な電力管理ソフトウェアと、
前記電力管理ソフトウェアを格納するように動作可能なソフトウェア記憶媒体と
を有するソフトウェアプロダクト。
【0113】
(40)(39)に記載のソフトウェアプロダクトであって、
前記電力の島は、前記集積回路の地理的要因に基づいて表されるソフトウェアプロダクト。
【0114】
(41)(39)に記載のソフトウェアプロダクトであって、
前記電力の島は、前記集積回路の機能回路に基づいて表されるソフトウェアプロダクト。
【0115】
(42)(39)に記載のソフトウェアプロダクトであって、
前記電力の島は、電力の下位の島を有するソフトウェアプロダクト。
【0116】
(43)(39)に記載のソフトウェアプロダクトであって、
前記電力の島は、複数のクロックドメインを有するソフトウェアプロダクト。
【0117】
(44)(39)に記載のソフトウェアプロダクトであって、
前記動作は、前記電力の島のうち1つのクロック周波数を選択することを有する方法。
【0118】
(45)(39)に記載のソフトウェアプロダクトであって、
前記動作は、前記電力の島のうち1つのクロックを選択することを有するソフトウェアプロダクト。
【0119】
(46)(39)に記載のソフトウェアプロダクトであって、
前記動作は、前記電力の島のうち1つの第1の電圧を変更することを有するソフトウェアプロダクト。
【0120】
(47)(46)に記載のソフトウェアプロダクトであって、
前記第1の電圧は、ソース電圧を有するソフトウェアプロダクト。
【0121】
(48)(46)に記載のソフトウェアプロダクトであって、
前記第1の電圧は、閾値電圧を有するソフトウェアプロダクト。
【0122】
(49)(39)に記載のソフトウェアプロダクトであって、
前記動作は、前記電力の島のうち1つで電力をオンすることを有するソフトウェアプロダクト。
【0123】
(50)(39)に記載のソフトウェアプロダクトであって、
前記動作は、前記電力の島のうち1つで電力をオフすることを有するソフトウェアプロダクト。
【0124】
(51)(39)に記載のソフトウェアプロダクトであって、
前記動作は、前記電力の島のうち1つをスリープモードに変更することを有するソフトウェアプロダクト。
【0125】
(52)(39)に記載のソフトウェアプロダクトであって、
前記電力管理ソフトウェアは、
前記プロセッサにより実行されると、前記電力の島のうち1つの消費電力レベルを監視し、前記消費電力レベルに基づいて閾値レベルを交差したか否かを決定し、前記閾値レベルの交差に基づいて前記動作を実行するように、前記プロセッサに指示するように動作可能なソフトウェアプロダクト。
【0126】
(53)(39)に記載のソフトウェアプロダクトであって、
前記電力管理ソフトウェアは、
前記プロセッサにより実行されると、前記電力の島のうち1つの構成要素の状態を保存するように、前記プロセッサに指示するように動作可能なソフトウェアプロダクト。
【0127】
(54)(39)に記載のソフトウェアプロダクトであって、
前記電力管理ソフトウェアは、
前記プロセッサにより実行されると、前記電力の島のうち1つの構成要素の状態を回復するように、前記プロセッサに指示するように動作可能なソフトウェアプロダクト。

【特許請求の範囲】
【請求項1】
集積回路用のシステムであって、
それぞれ独立して制御されるように適合された関連する消費電力を有する前記集積回路の複数の電力の島と、
前記消費電力を制御する電力マネージャと
を有し、
前記電力の島のうち少なくとも1つは、a)前記電力の島のうち前記少なくとも1つが、可変閾値トランジスタの複数の閾値電圧のうち1つを選択させるように構成され、及びb)前記システムが、動作中に、前記電力の島のうち前記少なくとも1つで、動作周波数の変更又は供給電圧の変更を含む動作を実行するように構成されることにより、
前記電力マネージャに対して関連する消費電力を制御させるように適合されるシステム。
【請求項2】
請求項1に記載のシステムであって、
前記電力マネージャは、プログラム可能なプロセッサを有するシステム。
【請求項3】
請求項1に記載のシステムであって、
前記集積回路は、動作中に、前記動作周波数の変更と前記供給電圧の変更との双方を実行するように構成されるシステム。
【請求項4】
請求項1に記載のシステムであって、
前記システムは、前記供給電圧を外部レギュレータにより提供させるように構成されるシステム。
【請求項5】
請求項4に記載のシステムであって、
前記外部レギュレータは、前記電力マネージャにより制御されるように構成されるシステム。
【請求項6】
請求項4に記載のシステムであって、
前記供給電圧を提供する内部レギュレータを更に有するシステム。
【請求項7】
請求項6に記載のシステムであって、
前記内部レギュレータは、前記電力マネージャにより制御されるように構成されるシステム。
【請求項8】
請求項1に記載のシステムであって、
前記電力の島のうち前記少なくとも1つは、前記集積回路の動作中に前記複数の閾値電圧のうち1つを選択させるように構成されるシステム。
【請求項9】
請求項1に記載のシステムであって、
前記供給電圧を提供するドロップアウト電圧レギュレータを更に有するシステム。
【請求項10】
請求項1に記載のシステムであって、
前記集積回路は、前記供給電圧を前記電力の島のうち前記少なくとも1つに対するVdd多重により制御させるように構成されるシステム。
【請求項11】
請求項1に記載のシステムであって、
前記集積回路は、前記閾値電圧をバックバイアスにより選択させるように構成されるシステム。
【請求項12】
請求項1に記載のシステムであって、
前記集積回路は、前記電力マネージャと、前記複数の電力の島とを有するシステム。
【請求項13】
集積回路用のシステムであって、
それぞれ独立して制御されるように適合された関連する消費電力を有する前記集積回路の複数の電力の島と、
前記消費電力を制御する電力マネージャと、
内部レギュレータと
を有し、
前記システムは、供給電圧を前記内部レギュレータにより提供させるように構成され、
前記電力マネージャに対して前記システムで関連する消費電力を制御させるように適合された前記電力の島のうち少なくとも1つは、
前記電力の島のうち前記少なくとも1つへの供給電圧を変更させ、
前記電力の島のうち前記少なくとも1つの動作周波数を変更させるように構成されるシステム。
【請求項14】
請求項13に記載のシステムであって、
前記電力マネージャは、プログラム可能なプロセッサを有するシステム。
【請求項15】
請求項13に記載のシステムであって、
前記システムは、前記集積回路の動作中にクロックが停止することを可能にするように構成され、これにより、前記電力マネージャは、前記電力の島のうち前記少なくとも1つの関連する消費電力を制御可能にするシステム。
【請求項16】
請求項13に記載のシステムであって、
前記システムは、前記供給電圧を前記電力の島のうち前記少なくとも1つに対するVdd多重により制御させるように構成されるシステム。
【請求項17】
請求項13に記載のシステムであって、
前記システムは、クロックゲートによりクロックを停止させるように構成されるシステム。
【請求項18】
請求項13に記載のシステムであって、
前記集積回路は、前記電力マネージャと、前記複数の電力の島とを有するシステム。
【請求項19】
関連する消費電力を有する複数の電力の島を有する集積回路内で実行される方法であって、
それぞれ独立して制御される前記複数の電力の島の前記消費電力を制御するために電力マネージャを使用し、
a)可変閾値トランジスタの閾値電圧を選択し、及びb)動作中に、i)動作周波数及びii)供給電圧のうち少なくとも1つを変更することにより、前記電力の島のうち少なくとも1つの消費電力を制御することを有する方法。
【請求項20】
請求項19に記載の方法であって、
前記可変閾値トランジスタの閾値電圧は、前記集積回路の動作中に選択されるシステム。
【請求項21】
請求項19に記載の方法であって、
前記供給電圧が変更され、
前記供給電圧の変更は、前記集積回路に対して外部のソースから前記電力の島のうち前記少なくとも1つに提供される電圧を調整することを含む方法。
【請求項22】
請求項19に記載の方法であって、
前記供給電圧が変更され、
前記供給電圧の変更は、前記電力の島のうち前記少なくとも1つに対するVdd多重を含む方法。
【請求項23】
請求項19に記載の方法であって、
前記閾値電圧を選択することは、バックバイアスを含む方法。
【請求項24】
集積回路用のシステムであって、
それぞれ独立して制御されるように適合された関連する消費電力を有する前記集積回路の複数の電力の島であり、前記電力の島のうち第1のものは、前記電力の島のうち第2のものと同期及び非同期で通信するように構成された複数の島と、
前記消費電力を制御する電力マネージャと、
を有し、
前記電力マネージャに対して前記システムで関連する消費電力を制御させるように適合された前記電力の島のうち少なくとも1つは、
前記電力の島のうち前記少なくとも1つへの供給電圧を変更させ、
前記電力の島のうち前記少なくとも1つの動作周波数を変更させるように構成されるシステム。
【請求項25】
請求項24に記載のシステムであって、
前記電力マネージャは、プログラム可能なプロセッサを有するシステム。
【請求項26】
請求項24に記載のシステムであって、
前記システムは、前記集積回路の動作中にクロックが停止することを可能にするように構成され、これにより、前記電力マネージャは、前記電力の島のうち前記少なくとも1つの関連する消費電力を制御可能にするシステム。
【請求項27】
請求項24に記載のシステムであって、
前記供給電圧を提供するドロップアウト電圧レギュレータを更に有するシステム。
【請求項28】
請求項24に記載のシステムであって、
前記システムは、前記供給電圧を前記電力の島のうち前記少なくとも1つに対するVdd多重により制御させるように構成されるシステム。
【請求項29】
請求項24に記載のシステムであって、
前記システムは、クロックゲートによりクロックを停止させるように構成されるシステム。
【請求項30】
請求項24に記載のシステムであって、
前記システムは、前記供給電圧を外部レギュレータにより変更させるように構成されるシステム。
【請求項31】
請求項30に記載のシステムであって、
前記外部レギュレータは、前記電力マネージャにより制御されるように構成されるシステム。
【請求項32】
請求項24に記載のシステムであって、
前記供給電圧を変更する内部レギュレータを更に有するシステム。
【請求項33】
請求項32に記載のシステムであって、
前記内部レギュレータは、前記電力マネージャにより制御されるように構成されるシステム。
【請求項34】
請求項24に記載のシステムであって、
前記集積回路は、前記電力マネージャと、前記複数の電力の島とを有するシステム。
【請求項35】
集積回路用のシステムであって、
前記集積回路の複数の電力の島と、
それぞれ独立して制御可能な前記電力の島の消費電力を制御する電力マネージャと
を有し、
前記電力の島のうち少なくとも1つは、a)前記電力の島のうち前記少なくとも1つが、可変閾値トランジスタの複数の閾値電圧のうち1つを選択し、及びb)前記システムが、動作中に、前記電力の島のうち前記少なくとも1つで、動作周波数の変更又は供給電圧の変更を含む動作を実行することにより、前記電力マネージャに対して前記電力の島のうち前記少なくとも1つの消費電力を制御可能であるシステム。
【請求項36】
請求項35に記載のシステムであって、
前記電力マネージャは、プログラム可能なプロセッサを有するシステム。
【請求項37】
請求項35に記載のシステムであって、
前記動作周波数の変更と前記供給電圧の変更とは、動作中に実行されるシステム。
【請求項38】
請求項35に記載のシステムであって、
前記システムは、前記供給電圧を外部レギュレータにより変更させることができるシステム。
【請求項39】
請求項38に記載のシステムであって、
前記外部レギュレータは、前記電力マネージャにより制御可能であるシステム。
【請求項40】
請求項35に記載のシステムであって、
前記供給電圧を提供する内部レギュレータを更に有するシステム。
【請求項41】
請求項40に記載のシステムであって、
前記内部レギュレータは、前記電力マネージャにより制御可能であるシステム。
【請求項42】
請求項35に記載のシステムであって、
前記電力の島のうち前記少なくとも1つは、前記システムの動作中に前記複数の閾値電圧のうち1つを選択するシステム。
【請求項43】
請求項35に記載のシステムであって、
前記供給電圧を提供するドロップアウト電圧レギュレータを更に有するシステム。
【請求項44】
請求項35に記載のシステムであって、
前記供給電圧は、Vdd多重により制御可能であるシステム。
【請求項45】
請求項35に記載のシステムであって、
前記閾値電圧は、バックバイアスにより選択可能であるシステム。
【請求項46】
請求項35に記載のシステムであって、
前記集積回路は、前記電力マネージャと、前記複数の電力の島とを有するシステム。
【請求項47】
集積回路用のシステムであって、
前記集積回路の複数の電力の島であり、前記電力の島のうち第1のものは、前記電力の島のうち第2のものと同期及び非同期で通信可能である複数の島と、
それぞれ独立して制御可能な前記電力の島の消費電力を制御する電力マネージャと
を有し、
前記電力の島のうち少なくとも1つの消費電力が前記電力マネージャにより制御可能であるために、前記システムは、
前記電力の島のうち前記少なくとも1つへの供給電圧を変更させ、
前記電力の島のうち前記少なくとも1つの動作周波数を変更させることができるシステム。
【請求項48】
請求項47に記載のシステムであって、
前記電力マネージャは、プログラム可能なプロセッサを有するシステム。
【請求項49】
請求項47に記載のシステムであって、
前記供給電圧を提供するドロップアウト電圧レギュレータを更に有するシステム。
【請求項50】
請求項47に記載のシステムであって、
前記供給電圧は、Vdd多重により制御可能であるシステム。
【請求項51】
請求項47に記載のシステムであって、
クロックは、クロックゲートにより停止可能であるシステム。
【請求項52】
請求項47に記載のシステムであって、
前記システムは、前記供給電圧を外部レギュレータにより変更させることができるシステム。
【請求項53】
請求項52に記載のシステムであって、
前記外部レギュレータは、前記電力マネージャにより制御可能であるシステム。
【請求項54】
請求項47に記載のシステムであって、
前記供給電圧の調整を実行する内部レギュレータを更に有するシステム。
【請求項55】
請求項54に記載のシステムであって、
前記内部レギュレータは、前記電力マネージャにより制御可能であるシステム。
【請求項56】
請求項47に記載のシステムであって、
前記集積回路は、前記電力マネージャと、前記複数の電力の島とを有するシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2009−277252(P2009−277252A)
【公開日】平成21年11月26日(2009.11.26)
【国際特許分類】
【出願番号】特願2009−193326(P2009−193326)
【出願日】平成21年8月24日(2009.8.24)
【分割の表示】特願2006−532832(P2006−532832)の分割
【原出願日】平成16年5月7日(2004.5.7)
【出願人】(507007430)モスエイド テクノロジーズ コーポレーション (4)
【Fターム(参考)】