(57)【要約】【課題】集積回路において、消費電力を効率的に利用することを目的とする。【解決手段】システム及び方法は、電力の島を使用して集積回路の電力を管理する。集積回路は、消費電力が電力の島のそれぞれで独立して制御される複数の電力の島を有する。電力マネージャは、電力の島のうち１つの目的の電力レベルを決定する。電力マネージャは、電力の島のうち１つの消費電力レベルを目的の電力レベルに変更する動作を決定する。電力マネージャは、電力の島のうち１つの消費電力レベルを目的の電力レベルに変更する動作を実行する。【選択図】図１
2012123823.tif 000002
【特許請求の範囲】
【請求項１】
集積回路と、
それぞれ独立して制御されるように適合された関連する消費電力を有する前記集積回路の複数の電力の島と、
前記消費電力を制御する電力マネージャと、
内部レギュレータと
を有し、
システムは、供給電圧を前記内部レギュレータにより提供させるように構成され、
前記電力の島のうち少なくとも１つは、前記システムが、
前記電力の島のうち前記少なくとも１つへの供給電圧を変更させ、
前記電力の島のうち前記少なくとも１つの動作周波数を変更させるように、前記電力マネージャに対して関連する消費電力を制御させるように適合されるシステム。
【請求項２】
請求項１に記載のシステムであって、
前記電力マネージャは、プログラム可能なプロセッサを有するシステム。
【請求項３】
請求項１に記載のシステムであって、
前記システムは、前記集積回路の動作中にクロックが停止することを可能にするように構成され、これにより、前記電力マネージャは、前記電力の島のうち前記少なくとも１つの関連する消費電力を制御可能にするシステム。
【請求項４】
請求項１に記載のシステムであって、
前記システムは、前記供給電圧を前記電力の島のうち前記少なくとも１つに対するVdd多重により制御させるように構成されるシステム。
【請求項５】
請求項１に記載のシステムであって、
前記システムは、クロックゲートによりクロックを停止させるように構成されるシステム。
【請求項６】
請求項１に記載のシステムであって、
前記集積回路は、前記電力マネージャと、前記複数の電力の島とを有するシステム。
【請求項７】
集積回路と、
それぞれ独立して制御されるように適合された関連する消費電力を有する前記集積回路の複数の電力の島であり、前記電力の島のうち第１のものは、前記電力の島のうち第２のものと同期及び非同期で通信するように構成された複数の電力の島と、
前記消費電力を制御する電力マネージャと、
を有し、
前記電力の島のうち少なくとも１つは、システムが、
前記電力の島のうち前記少なくとも１つへの供給電圧を変更させ、
前記電力の島のうち前記少なくとも１つの動作周波数を変更させるように、前記電力マネージャに対して関連する消費電力を制御させるように適合されるシステム。
【請求項８】
請求項７に記載のシステムであって、
前記電力マネージャは、プログラム可能なプロセッサを有するシステム。
【請求項９】
請求項７に記載のシステムであって、
前記システムは、前記集積回路の動作中にクロックが停止することを可能にするように構成され、これにより、前記電力マネージャは、前記電力の島のうち前記少なくとも１つの関連する消費電力を制御可能にするシステム。
【請求項１０】
請求項７に記載のシステムであって、
前記供給電圧を提供するドロップアウト電圧レギュレータを更に有するシステム。
【請求項１１】
請求項７に記載のシステムであって、
前記システムは、前記供給電圧を前記電力の島のうち前記少なくとも１つに対するVdd多重により制御させるように構成されるシステム。
【請求項１２】
請求項７に記載のシステムであって、
前記システムは、クロックゲートによりクロックを停止させるように構成されるシステム。
【請求項１３】
請求項７に記載のシステムであって、
前記システムは、前記供給電圧を外部レギュレータにより変更させるように構成されるシステム。
【請求項１４】
請求項１３に記載のシステムであって、
前記外部レギュレータは、前記電力マネージャにより制御されるように構成されるシステム。
【請求項１５】
請求項７に記載のシステムであって、
前記供給電圧を変更する内部レギュレータを更に有するシステム。
【請求項１６】
請求項１５に記載のシステムであって、
前記内部レギュレータは、前記電力マネージャにより制御されるように構成されるシステム。
【請求項１７】
請求項７に記載のシステムであって、
前記集積回路は、前記電力マネージャと、前記複数の電力の島とを有するシステム。
【請求項１８】
集積回路と、
前記集積回路の複数の電力の島であり、前記電力の島のうち第１のものは、前記電力の島のうち第２のものと同期及び非同期で通信可能である複数の電力の島と、
それぞれ独立して制御可能な前記電力の島の消費電力を制御する電力マネージャと
を有し、
前記電力の島のうち少なくとも１つの消費電力が前記電力マネージャにより制御可能であるために、システムは、
前記電力の島のうち前記少なくとも１つへの供給電圧を変更させ、
前記電力の島のうち前記少なくとも１つの動作周波数を変更させることができるシステム。
【請求項１９】
請求項１８に記載のシステムであって、
前記電力マネージャは、プログラム可能なプロセッサを有するシステム。
【請求項２０】
請求項１８に記載のシステムであって、
前記供給電圧を提供するドロップアウト電圧レギュレータを更に有するシステム。
【請求項２１】
請求項１８に記載のシステムであって、
前記供給電圧は、Vdd多重により制御可能であるシステム。
【請求項２２】
請求項１８に記載のシステムであって、
クロックは、クロックゲートにより停止可能であるシステム。
【請求項２３】
請求項１８に記載のシステムであって、
前記システムは、前記供給電圧を外部レギュレータにより変更させることができるシステム。
【請求項２４】
請求項２３に記載のシステムであって、
前記外部レギュレータは、前記電力マネージャにより制御可能であるシステム。
【請求項２５】
請求項１８に記載のシステムであって、
前記供給電圧の調整を実行する内部レギュレータを更に有するシステム。
【請求項２６】
請求項２５に記載のシステムであって、
前記内部レギュレータは、前記電力マネージャにより制御可能であるシステム。
【請求項２７】
請求項１８に記載のシステムであって、
前記集積回路は、前記電力マネージャと、前記複数の電力の島とを有するシステム。
【請求項２８】
集積回路チップと、
供給電圧及び動作周波数を変更することによりそれぞれ独立して制御可能な関連する消費電力を有する前記集積回路チップに配置された複数の電力の島と、
前記消費電力のうち１つ以上を示す１つ以上の消費電力信号と、
前記集積回路チップに配置され、前記電力の島のそれぞれに結合され、前記１つ以上の消費電力信号を監視するように構成された電力管理プロセッサと
を有し、
前記電力管理プロセッサは、前記消費電力のそれぞれを個別に制御するために電力管理ソフトウェアを実行するように設けられ、前記電力管理プロセッサは、消費電力変更要求に応じて前記電力の島のうち少なくとも１つの消費電力を変更するように構成される集積回路。
【請求項２９】
集積回路チップと、
供給電圧及び動作周波数を変更することによりそれぞれ独立して制御可能な関連する消費電力を有する前記集積回路チップに配置された複数の電力の島と、
前記消費電力のうち１つ以上を示す１つ以上の消費電力信号と、
前記集積回路チップに配置され、前記電力の島のそれぞれに結合され、前記１つ以上の消費電力信号を監視するように構成された電力マネージャと
を有し、
前記電力マネージャは、前記消費電力のそれぞれを個別に制御するように構成され、前記電力マネージャは、消費電力変更要求に応じて前記電力の島のうち少なくとも１つの消費電力を変更するように構成される集積回路。
【請求項３０】
集積回路チップと、
供給電圧及び動作周波数を変更することによりそれぞれ独立して制御可能な関連する消費電力を有する前記集積回路チップに配置された複数の電力の島であり、前記電力の島のそれぞれは、前記消費電力のそれぞれを示す消費電力信号を有する複数の電力の島と、
前記集積回路チップに配置され、前記電力の島のそれぞれに結合され、前記消費電力信号を監視するように構成された電力管理プロセッサと
を有し、
前記電力管理プロセッサは、前記消費電力のそれぞれを個別に制御するために電力管理ソフトウェアを実行するように設けられ、前記電力管理プロセッサは、消費電力変更要求に応じて前記電力の島のうち少なくとも１つの消費電力を変更するように構成される集積回路。
【請求項３１】
集積回路チップと、
供給電圧及び動作周波数を変更することによりそれぞれ独立して制御可能な関連する消費電力を有する前記集積回路チップに配置された複数の電力の島であり、前記電力の島のそれぞれは、前記消費電力のそれぞれを示す消費電力信号を有する複数の電力の島と、
前記集積回路チップに配置され、前記電力の島のそれぞれに結合され、前記消費電力信号を監視するように構成された電力マネージャと
を有し、
前記電力マネージャは、前記消費電力のそれぞれを個別に制御するように構成され、前記電力マネージャは、消費電力変更要求に応じて前記電力の島のうち少なくとも１つの消費電力を変更するように構成される集積回路。
【請求項３２】
集積回路と、
供給電圧及び動作周波数を変更することによりそれぞれ独立して制御可能な関連する消費電力を有する前記集積回路の複数の電力の島と、
前記消費電力のうち１つ以上を示す１つ以上の消費電力信号と、
前記電力の島のそれぞれに結合され、前記１つ以上の消費電力信号を監視するように構成された電力管理プロセッサと
を有し、
前記電力管理プロセッサは、前記消費電力のそれぞれを個別に制御するために電力管理ソフトウェアを実行するように設けられ、前記電力管理プロセッサは、消費電力変更要求に応じて前記電力の島のうち少なくとも１つの消費電力を変更するように構成されるシステム。
【請求項３３】
集積回路と、
供給電圧及び動作周波数を変更することによりそれぞれ独立して制御可能な関連する消費電力を有する前記集積回路の複数の電力の島と、
前記消費電力のうち１つ以上を示す１つ以上の消費電力信号と、
前記電力の島のそれぞれに結合され、前記１つ以上の消費電力信号を監視するように構成された電力マネージャと
を有し、
前記電力マネージャは、前記消費電力のそれぞれを個別に制御するように構成され、前記電力マネージャは、消費電力変更要求に応じて前記電力の島のうち少なくとも１つの消費電力を変更するように構成されるシステム。
【請求項３４】
集積回路と、
供給電圧及び動作周波数を変更することによりそれぞれ独立して制御可能な関連する消費電力を有する前記集積回路の複数の電力の島であり、前記電力の島のそれぞれは、前記消費電力のそれぞれを示す消費電力信号を有する複数の電力の島と、
前記電力の島のそれぞれに結合され、前記消費電力信号を監視するように構成された電力管理プロセッサと
を有し、
前記電力管理プロセッサは、前記消費電力のそれぞれを個別に制御するために電力管理ソフトウェアを実行するように設けられ、前記電力管理プロセッサは、消費電力変更要求に応じて前記電力の島のうち少なくとも１つの消費電力を変更するように構成されるシステム。
【請求項３５】
集積回路と、
供給電圧及び動作周波数を変更することによりそれぞれ独立して制御可能な関連する消費電力を有する前記集積回路の複数の電力の島であり、前記電力の島のそれぞれは、前記消費電力のそれぞれを示す消費電力信号を有する複数の電力の島と、
前記電力の島のそれぞれに結合され、前記消費電力信号を監視するように構成された電力マネージャと
を有し、
前記電力マネージャは、前記消費電力のそれぞれを個別に制御するように構成され、前記電力マネージャは、消費電力変更要求に応じて前記電力の島のうち少なくとも１つの消費電力を変更するように構成されるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、2003年5月7日に出願された“System  and  Method  for  Managing  Power  in  Integrated  Circuit”という題の米国仮特許出願第60/468,742号の利益を主張し、その内容が参照として取り込まれる。
【０００２】
本発明は、概して集積回路に関し、特に電力の島を使用して集積回路で電力を管理することに関する。
【背景技術】
【０００３】
集積回路の１つの設計目標は、消費電力を低減することである。携帯電話やラップトップのような電池を備えた装置は、電池の充電量を伸ばすために、特に集積回路での消費電力の低減を必要とする。更に、消費電力の低減は過熱を防ぎ、集積回路の放熱を小さくし、ある場合には集積回路のヒートシンク及び／又はファンを除去又は簡略化する。
【０００４】
ある集積回路は、ライブラリセル（library  cell）という基礎ブロックを使用して設計されている。これらのライブラリセルは、機能を実行する回路のブロックである。ライブラリセルのいくつかの例には、NANDゲート、マルチプレクサ、デコーダ、比較器及びメモリがある。
【０００５】
“フルカスタム”フローでは、集積回路は、個々のトランジスタやコンデンサやレジスタのレベルのような最下位のレベルで設計される。“フルカスタム”フローは、内部で開発されたライブラリセルを使用することがある。集積回路は最下位のレベルで非常に詳細に設計されるため、集積回路は最適な性能を有することができる。しかし、“フルカスタム”フローのいくつかの課題には、そのような詳細なレベルで設計することに関する長い時間と高価なコストがある。更に、“フルカスタム”フローは、設計が最下位のレベルであるため、面倒である。
【０００６】
“スタンダードセル”フローでは、集積回路は、第三者又は他の外部ソースから取得したライブラリセルを使用して設計される。これらのライブラリセルは、論理レベル又は機能レベルで標準化されている。ライブラリセルが既に予め設計されて予めテストされているため、スタンダードセルフローの設計時間は減少する。
【０００７】
集積回路を設計する一例では、ライブラリセルが選択され、カスタムロジックが特定され、集積回路を構築する。次に、集積回路のレジスタ転送レベル（RTL：register  transfer  level）がシミュレーション及びデバッグ用に書き込まれる。シミュレーション及びデバッグの後に、集積回路について合成（synthesis）が行われる。集積回路の性能を決定するために、性能測定ソフトウェアが実行される。集積回路の最終合成は、集積回路の最適性能に基づいて行われ得る。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許第５，５０２，８３８号明細書
【特許文献２】米国特許第５，７２７，１９３号明細書
【特許文献３】米国特許第５，７４５，３７５号明細書
【特許文献４】米国特許第５，７７８，２３７号明細書
【特許文献５】米国特許第５，８３２，２８４号明細書
【特許文献６】米国特許第５，９９６，０８４号明細書
【特許文献７】米国特許第６，０７６，１７１号明細書
【特許文献８】米国特許第６，３６７，０２３号明細書
【特許文献９】米国特許第６，４１５，３８８号明細書
【特許文献１０】米国特許第６，５１９，７０７号明細書
【特許文献１１】米国特許第６，５６４，３２８号明細書
【特許文献１２】米国特許第６，５７４，７４０号明細書
【特許文献１３】米国特許第６，７０４，８７６号明細書
【特許文献１４】米国特許第６，７２１，８９２号明細書
【特許文献１５】米国特許第６，７５４，８３７号明細書
【特許文献１６】米国特許第６，８０４，６３２号明細書
【特許文献１７】米国特許第６，８３６，８４９号明細書
【特許文献１８】米国特許出願第２００１−００２１２１７Ａ１号明細書
【特許文献１９】米国特許出願第２００２−００８７８９６Ａ１号明細書
【特許文献２０】欧州特許第０６３２３６０号明細書
【特許文献２１】国際公開公報第００／２６７４７Ａ１号明細書
【特許文献２２】国際公開公報第００／３９６６１Ａ１号明細書
【特許文献２３】米国特許第６，４３８，６３５号明細書
【特許文献２４】特開平１１−４５２２５号明細書
【特許文献２５】米国特許第６，７７９，１６９号明細書
【特許文献２６】米国特許第６，８２０，２４０号明細書
【特許文献２７】米国特許第６，８８３，１５２号明細書
【特許文献２８】米国特許第６，１４１，７６２号明細書
【特許文献２９】米国特許出願第２００２−００８７９０４Ａ１号明細書
【特許文献３０】米国特許出願第２００２−０１４０４６７Ａ１号明細書
【特許文献３１】米国特許第５，５８５，７４５号明細書
【特許文献３２】米国特許第６，０４７，２４８号明細書
【特許文献３３】米国特許第Ｒｅ．３６，８３９号明細書
【特許文献３４】米国特許第７，１１１，１７９Ｂ１号明細書
【特許文献３５】米国特許第７，０５１，３０６号明細書
【特許文献３６】米国特許第７，４１５，６８０号明細書
【特許文献３７】米国特許第７，９４５，８８５号明細書
【特許文献３８】米国特許第７，９９６，８１１号明細書
【特許文献３９】米国特許第６，６６７，６４８号明細書
【特許文献４０】米国特許第６，７７９，１６３号明細書
【特許文献４１】米国特許第６，８２０，２４０号明細書
【特許文献４２】米国特許第７，２７９，９５６号明細書
【特許文献４３】米国特許第７，１１１，１７８号明細書
【特許文献４４】米国特許第６，５２３，１５０号明細書
【特許文献４５】米国特許第６，５９８，１４８号明細書
【特許文献４６】米国特許第６，４６２，９７６号明細書
【特許文献４７】米国特許第６，６３１，５０２号明細書
【特許文献４８】米国特許第７，６４２，８３６号明細書
【特許文献４９】米国特許第６，３０７，２８１号明細書
【特許文献５０】米国特許第６，４３８，６３５号明細書
【特許文献５１】米国特許第６，１４１，７６２号明細書
【特許文献５２】特開２００３−１０８２６０号明細書
【特許文献５３】中国特許第１３５３４５４号明細書
【特許文献５４】国際公開公報第０１／０１２２８号明細書
【特許文献５５】特開平１０−２２２２５３号明細書
【特許文献５６】米国特許第６，７１１，４４７号明細書
【特許文献５７】米国特許第６，８８９，３３０号明細書
【特許文献５８】米国特許第６，９７６，１８２号明細書
【特許文献５９】米国特許第７，０８５，９４５号明細書
【特許文献６０】特開２００１−２３８１９０号明細書
【特許文献６１】特開２００３−０８６６９３号明細書
【非特許文献】
【０００９】
【非特許文献１】U.S.  Patent  &  Trademark  Office  (IPEA),  Written  Opinion  re:  International  Application  No.  PCT/US02/31160,  4  Pages,  Sep.  15,  2004
【非特許文献２】U.S.  Patent  &  Trademark  Office  (IPEA),  International  Preliminary  Examination  Report  re:  International  Application  No.  PCT/US02/31160,  4  pages,  Oct.  14,  2004
【非特許文献３】"Managing  Power  in  Ultra  Deep  Submicron  ASICIIC  Design,"  May  2002,  Synopsys,  Inc.
【非特許文献４】"Solving  the  Power  Management  Dilemma  in  System-on-Chip  ASIC  Design,"  April  2002,  IBM  Technology  Group.
【非特許文献５】AKUI,  et  al.,  "Dynamic  Voltage  and  Frequency  Management  for  Low-Power  Embedded  Microprocessor,"  IEEE  International  Solid-State  Circuits  Conference,  Digest  of  Technical  Papers,  Feb.  2004,  Vol.  1,  pp.  64-513.
【非特許文献６】CHEN,  G.  et  al.  "Adaptive  Garbage  Collection  for  Battery-Operated  Environments,"  Proceedings  of  USENIX  JVM02  Symposium,  August  2002.
【非特許文献７】CHEN,  G.  et  al.  "Energy  Savings  Through  Compression  in  Embedded  Java  Environments,"  Proceedings  of  the  CODES'02,  June  2002.
【非特許文献８】DE  LA  LUZ,  V.  et  al.  "Automatic  Data  Migration  for  Reducting  Energy  Consumption  in  Multi-Bank  Memory  Systems,"  DAC  2002,  June  10  -  14,  2002,  New  Orleans,  LA,  USA.
【非特許文献９】DE  MICHELI,  G.  et  al.  "System-Level  Power  Optimization:  Techniques  and  Tools,"  DATE  2000.
【非特許文献１０】DEGALAHAL,  V.  et  al.,  "Analyzing  Soft  Errors  in  Leakage  Optimized  SRAM  Design,"  Proceedings  of  16th  International  Conference  on  VLSI  Design,  January  2003,  New  Delhi,  India.
【非特許文献１１】DELALUZ,  V.  et  al.  "Hardware  and  Software  Techniques  for  Controlling  DRAM  Power  Modes,"  IEEE  Transaction  on  Computers,  November  2001,  Vol.  50.
【非特許文献１２】DELALUZ,  V.  et  al.  "Scheduler-Based  DRAM  Energy  Management,"  DAC  2002,  June  10  -  14,  2002,  New  Orleans,  LA,  USA,  ACM.
【非特許文献１３】DELALUZ.  V.  "DRAM  Energy  Management  Using  Software  and  Hardware  Directed  Power  Mode  Control,  "Proceedings  of  the  7th  International  Symposium  on  High  Performance  Computer  Architecture,  January  20-24,  2001,  Monterrey.  Mexico.
【非特許文献１４】DUARTE,  D.  et  al.,  "Impact  of  Scaling  on  the  Effectiveness  of  Dynamic  Power  Reduction  Schemes,"  Proceedings  of  the  20th  International  Conference  on  Computer  Design  (ICCD),  September  16-18,  2002,  Freiberg,  Germany.
【非特許文献１５】DUARTE,  D.  et  al,  "Impact  of  Technology  Scaling  and  Packaging  on  Dynamic  Voltage  Scaling  Techniques,"  Proceedings  of  the  15th  Annual  IEEE  International  ASIC/SOC  Conference,  September  25-28,2002,  Rochester,  NY.
【非特許文献１６】DUARTE,  D.  et  al.  "A  Complete  Phase-Locked  Loop  Power  Consumption  Model,"  Proceedings  of  the  2002  Design,  Automation  and  Test  in  Europe  Conference  and  Exhibition  (DATE'02),  2002,  IEEE.
【非特許文献１７】DUARTE,  D.  et  al.  "Impact  of  Technology  Scaling  in  the  Clock  System  Power,"  Proceedings  of  the  IEEE  Computer  Society  Annual  Symposium  on  VLSI,  April  25-26,  2002,  Pittsburgh,  PA.
【非特許文献１８】DUARTE.  D.  et  al.  "Evaluating  Run-Time  Techniques  for  Leakage  Power  Reduction,"  Proceedings  of  the  15th  International  Conference  on  VLSI  Design  (VLSID'02)  2002,  IEEE.
【非特許文献１９】FILSETH,  E.  "Tally  Power  into  Cost  of  'Free'  Silicon,"  EETimes,  January  11,  1999,  located  at:  http://www.eetimes.com/storylspeakoutlOEG19990111S028.
【非特許文献２０】FLYNN,  J.  et  aI.,  "Power  Management  in  Complex  SoC  Design,"  Synopsys,  April  2004,  located  at  http://www.synopsys.com/sps.
【非特許文献２１】FRENKIL,  J.  "A  Multi-Level  Approach  to  Low-Power  IC  Design,"  IEEE  Spectrum,  February  1998,  Vo.  35,  No.2.
【非特許文献２２】GRUNWALD,  D.  et  al.  "Kool  Chips  Workshop,"  MICR033,  December  10,  2000,  Monterey,  CA.
【非特許文献２３】GUPTA.  R.,  et  al.,  "Low  Power  Wireless  Networked  System  Design,"  HotChips,  August  18,  2002,  Stanford,  CA.
【非特許文献２４】HALTER,  et  al.,  "A  Gate-Level  Leakage  Power  Reduction  Method  for  Ultra-Low-Power  CMOS  Circuits,"  in  Proc.  IEEE  Custom  Integrated  Circuits  Conf.,  1997,  pp.  475-478.
【非特許文献２５】HEZAVEI,  J.  et  al.  "Input  Sensitive  High-Level  Power  Analysis,"  Proceedings  of  the  2001  IEEE  Workshop  on  Signal  Processing  Systems  (SiPS),  September  2001,  pp.  149-156.
【非特許文献２６】HORIGUCHI,  et.  al.,  "Switched-Source-Impedance  CMOS  Circuit  for  Low  Standby  Subthreshold  Current  Giga-Scale  LSI's,"  IEEE  Journal  of  Solid-State  Circuits,  Nov.  1993,  Vol.  28,  No.  11.
【非特許文献２７】HU,  J.S.  et  al.,  "Using  Dynamic  Branch  Behavior  for  Power-Efficient  Instruction  FetCh,"  Proc.  of  IEEECS  Annual  Symposium  on  VLSI  (ISVLSI  2003),  February  20-21,  2003,  Tampa,  FL
【非特許文献２８】KAO,  et  al.,  "Dual-Threshold  Voltage  Techniques  for  Low-Power  Digital  Circuits,"  IEEE  Journal  of  Solid-State  Circuits,  Jul.  2000,  vol.  35,  no.  7.
【非特許文献２９】KIM,  S.  et  al.  "Energy  Efficient  Instruction  Cache  Using  Page-Based  Placement,"  Proceedings  of  International  Conference  on  Compilers,  Architectures  and  Synthesis  for  Embedded  Systems,  CASES'01,  November  1-17,  2001,  Atlanta,  GA,  USA.
【非特許文献３０】KIM,  S.  et  al.  "Partitioned  Instruction  Cache  Architecture  for  Energy  Efficiency"  ACM  Transactions  on  Computational  Logic,  July  2002,  pp  1-23,  Vol.  V,  No.  N.
【非特許文献３１】KIM,  S.  et  al.  "Power-aware  Partitioned  Cache  Architectures,"  Proceedings  of  ACM/IEEE  International  Symposium  on  Low  Power  Electronics  and  Design,  2001,  ILSPED'01.  August  6-7,  2001,  Huntington  Beach,  CA.
【非特許文献３２】KIM,  Set  al.  "Predictive  Precharging  for  Bitline  Leakage  Energy  Reduction,"  Proceedings  of  15th  Annual  IEEE  International  ASIC/SOC  Conference,  September  25-28,  2002,  Rochester,  NY.
【非特許文献３３】LACKEY,  et  al.,  "Managing  Power  and  Performance  for  System-on-Chip  Designs  using  Voltage  Islands,"  IEEE  International  Conference  on  Computer  Aided  Design,  Technical  Paper,  Nov.  2002,  pp.  195-202.
【非特許文献３４】LI  L.  et  al.,  "Managing  Leakage  Energy  in  Cache  Hierarchies,"  Journal  of  Instruction-Level  Parallelism,  2003,  pp.  1-24,  Vol.  5.
【非特許文献３５】LI,  L.  et  al.,  "Leakage  Energy  Management  in  Cache  Hierarchies,"  11th  International  Conference  on  Parallel  Architectures  and  Compilation  Techniques  (PACT'02),  September  2002.
【非特許文献３６】MANNE,  S.  et  al.  "Cool  Chips  Tutorial,"  32nd  Annual  International  Symposium  on  Micorarchitecture,  November  15,  1999,  Haifa,  Israel.
【非特許文献３７】MUTOH,  "1-V  Power  Supply  High-Speed  Digital  Circuit  Technology  with  Mutlithreshold-Voltage  CMOS,"  IEEE  Journal  of  Solid-State  Circuits,  Aug.  1995,  vol.  35,  No.  8.
【非特許文献３８】NOWKA,  et  al.,  "A  0.9V  to  1.95V  Dynamic  Voltage-Scalable  and  Frequency-Scalable  32b  PowerPC  Processor,"  IEEE  International  Solid-State  Circuits  Conference  20.4  (February  6,  2002).
【非特許文献３９】NOWKA,  et  al.,  "A  32-bit  PowerPC  System-on-a-Chip  With  Support  for  Dynamic  Voltage  Scaling  and  Dynamic  Frequency  Scaling,"  IEEE  Journal  of  Solid-State  Circuits,  Vol.  37,  No.  11,  pp.  1441-1447  (November  2002).
【非特許文献４０】NOWKA,  et  al.,  "The  Design  and  Application  of  the  PowerPC  405LP  Energy-Efficient  System-on-a-Chip,"  IBM  J.  Res.  And  Dev.,  Vol.  47.  No.  5/6,  pp.  631-639  (September/November  2003).
【非特許文献４１】PANGRLE,  B.  "Low  Power  Design:  A  Holistic  Approach  in  an  Era  of  New  Semiconductor  Technologies,"  San  Diego  Telecom  Council  Semiconductor  SIG,  November  14,  2002.
【非特許文献４２】RABAEY,  J.  "Design  Aids  for  Low  Power:  Part  II  Architecture  and  System  Levels,"  1997.
【非特許文献４３】RAMANARAYANAN,  R.  et  al.  "Characterizing  Dynamic  and  Leakage  Power  Behavior  in  Flip  Flops,"  Proceedings  of  the  15th  Annual  IEEE  International  ASIC/SOC  Conference,  September  2002.
【非特許文献４４】Search  Report:  ROC  (Taiwan)  Patent  Application  No.  093112998  (Translation),  completed  October  31,  2010.
【非特許文献４５】SEMERARO,  et  al.,  "Energy-Efficient  Processor  Design  Using  Multiple  Clock  Domains  with  Dynamic  Voltage  and  Frequency  Scaling,"  Proceedings  of  the  Eighth  International  Symposium  on  High-Performance  Computer  Architecture  (2002).
【非特許文献４６】SEMERARO,  et  al.,  "Dynamic  Frequency  and  Voltage  Control  for  a  Multiple  Clock  Domain  Microarchitecture",  Nov.  2002,  IEEE  35th  Annual  International  Symposium  on  Microarchitecture,  Proceddings  pp.  356  -  367.
【非特許文献４７】TAPLES,  et  al.,  "Toward  a  Multiple  CloclNoltagelsland  Design  Style  for  Power-Aware  Processors",  May  2005,  IEEE  Transactions  on  Very  Large  Scale  Integration  (VLSI)  system,  vol.  13,  iss.  5,  pp.  591  -  603.
【非特許文献４８】TSAI,  Y-F  et  al.,  "Implications  of  Technology  Scaling  on  Leakage  Reduction  Techniques,"  DAC  2003,  June  2-6,  2003,  ACM,  Anaheim,  CA,  USA.
【非特許文献４９】ZHANG,  W.  "Exploiting  VLlW  Schedule  Slacks  for  Dynamic  and  Leakage  Energy  Reduction,"  Proceedings  of  the  34th  Annual  International  Symposium  on  Microarchitecture  (MICRO'01),  December  2001.
【非特許文献５０】ZHANG,  W.  et  al.,  "Compiler  Support  for  Reducing  Leakage  Energy  Consumption,"  Proceedings  of  the  6th  Design  Automation  and  Test  in  Europe  Conference  (DATE-03),  March,  2003,  Munich,  Germany.
【非特許文献５１】BENINI,  et  al.  "System-Level  Power  Optimization:  Techniques  and  Tools,"  Proceedings  1999  International  Symposium  on  Low  Power  Electronics  and  Design,  pages  288-293  (May  23,  2005).
【非特許文献５２】KIM,  et  al.,  "Dynamic  VTH  Scaling  Scheme  for  Active  Leakage  Power  Reduction,"  Proceedings  2002  Design,  Automation  and  Test  in  Europe  Conference  and  Exhibition,  pages  163-167  (August  7,  2002).
【発明の概要】
【発明が解決しようとする課題】
【００１０】
多数の集積回路での課題は、消費電力が効率的に利用されないことである。例えば、全体の集積回路は、最大周波数を必要とするアプリケーションをサポートするように最大周波数で動作し得るが、集積回路の他の部分は低い周波数で動作し得る。他の例では、集積回路内の非アクティブの回路が電力を消費し、リーク（leakage）の可能性を増加させる。非効率な消費電力はまた、集積回路の性能に悪影響を及ぼす。
【００１１】
集積回路の複雑性の増加と共に、集積回路が更なる機能を使用するときに、消費電力の減少が更に重要になる。集積回路の一例は、単一のチップにマイクロプロセッサとメモリとI/Oインタフェースとアナログ・デジタル変換器との全てを有するシステム・オン・チップである。単一のチップで多数の異なる種類の機能が使用されており、システム・オン・チップは、単一機能の集積回路より電力を消費する。
【００１２】
ある従来技術の集積回路は、消費電力を小さくするために、電圧の島又は複数のクロックを使用している。これらの集積回路での１つの課題は、電力の島での電圧及び複数のクロックの周波数が固定的である点にある。電圧及び周波数は、集積回路のニーズ及び動作に基づいて動的に変化しない。
【課題を解決するための手段】
【００１３】
本発明は、電力の島を使用して集積回路の電力を管理することにより、前記の課題に対処する。集積回路は、消費電力が電力の島のそれぞれで独立して制御される複数の電力の島を有する。電力マネージャは、電力の島のうち１つの目的の電力レベルを決定する。次に、電力マネージャは、電力の島のうち１つの消費電力レベルを目的の電力レベルに変更する動作を決定する。電力マネージャは、電力の島のうち１つの消費電力レベルを目的の電力レベルに変更する動作を実行する。電力制御回路は、電力の島のうち１つの電力を制御する。
【００１４】
電力の島は、集積回路の地理的要因又は機能回路に基づいて表され得る。ある実施例では、動作は、電力の島のうち１つのクロック周波数を選択すること、又は電力の島のうち１つのクロックを選択することである。ある実施例では、動作は、電力の島のうち１つの電圧を変更することである。動作は、電力の島を電力オン又は電力オフしてもよい。
【００１５】
ある実施例では、電力マネージャは、電力の島の１つの消費電力レベルを監視し、消費電力レベルに基づいて閾値レベルを交差したか否かを決定し、閾値レベルの交差に基づいて動作を実行する。ある実施例では、電力マネージャは、電力の島のうち１つの構成要素の状態を保存及び回復する。
【図面の簡単な説明】
【００１６】
【図１】本発明の例示的な実装における集積回路で電力を管理するシステムのブロック図
【図２】本発明の例示的な実装における集積回路で電力を管理するシステムの図
【図３】本発明の例示的な実装における低電力スタンダードセル論理ブロックの低リーク回路の図
【図４】本発明の例示的な実装における電力の島の図
【図５】本発明の例示的な実装におけるアプリケーション要求からスレーブ電力マネージャの動作までのフローチャート
【図６】本発明の例示的な実装におけるスマート電力ユニットの内部回路の図
【図７】本発明の例示的な実装におけるスマート電力ユニットの外部回路の図
【図８】本発明の例示的な実装におけるアプリケーション要求からスマート電力ユニットの動作までのフローチャート
【図９】本発明の例示的な実装において、電力低下前にIPユニットの状態を保存し、電力上昇のときにIPユニットの状態を回復するフローチャート
【図１０】本発明の例示的な実装におけるシステム・オン・チップ及び拡張ローカルメモリの図
【図１１】本発明の例示的な実装において、中間電力マネージャから電力管理制御レイヤに“ホットスポット”レポートを生成するフローチャート
【図１２】本発明の例示的な実装におけるシステム・オン・チップの図
【図１３】本発明の例示的な実装における電力の島を備えたチップを構成するフローチャート
【発明を実施するための形態】
【００１７】
例示的な図面に示すように（図面で同様の参照数字は図面の類似の又は対応する要素を示す）、本発明によるシステム及び方法の例示的な実施例を以下に詳細に説明する。しかし、本発明は様々な形式で具現され得ることがわかる。従って、ここに開示された特定の詳細は限定として解釈されるべきではなく、特許請求の範囲の基礎として、また、実際に何らかの適切な詳細なシステム、構造、方法、処理又は様式で本発明を使用する当業者に教示する代表的な基礎として解釈されるべきである。
【００１８】
図１は、本発明の例示的な実装における集積回路110で電力を管理するシステム100のブロック図を示している。システム100は、集積回路110と電力マネージャ120とを有する。集積回路110は、シリコン及び／又は関連の原料に具体化される何らかの電子装置である。集積回路110の一例は、システム・オン・チップである。集積回路110は、複数のIPユニットを有しており、その複数のIPユニットは、特定の機能を実行する回路のブロックである。
【００１９】
集積回路110は、４つの電力の島112、114、116及び118を有する。簡単にするため、図１は４つの電力の島112、114、116及び118のみを示している。集積回路110の他の実施例は、複数の電力の島112、114、116及び118を有する。電力の島112、114、116及び118はバス125に結合されている。
【００２０】
電力の島112、114、116及び118は、消費電力がセクション内、図形内、区画内又は区域内で制御される集積回路110の何らかのセクション、図形、区画又は区域である。ある実施例では、電力の島112、114、116及び118は、集積回路110の地理的要因に基づいて表される。ある実施例では、電力の島112、114、116及び118は、集積回路110の機能IPユニットに基づいて表される。図１０に示す一例では、電力の島は、メモリと、マイクロプロセッサと、別々のIPブロックとにより表される。ある実施例では、電力の島112、114、116及び118は、相互に非同期又は同期である。ある実施例では、電力の島112、114、116及び118は、電力の下位の島を有し、集積回路110で電力を制御するときに更なる特異性を提供する。ある実施例では、電力の島112、114、116及び118のそれぞれは、自己の制御で複数のクロックドメインをサポートする。ある実施例では、電力の島112、114、116及び118のクロックは可変である。
【００２１】
ある実施例では、電力の島112、114、116及び118のそれぞれは、電力制御回路を有する。電力制御回路は、電力の島112、114、116及び118のうち１つの電力を制御するように構成された何らかの回路である。電力制御回路のいくつかの例は、レベルシフト、信号分離、Vdd多重、クロック多重、及び動的バックバイアス用の回路を含む。ある実施例では、電力制御回路は、集積回路110のスタンダードセル設計用のスタンダードセルライブラリに含まれる。
【００２２】
電力マネージャ120はまた、バス125に結合されている。バス125の一例は、図１０で以下に更に詳細に説明する電力コマンドバスである。システム100の他の実施例は、電力マネージャ120と電力の島112、114、116及び118とが相互接続されている多数の変更形態を含む。電力マネージャ120は、(1)電力の島112、114、116及び118のそれぞれで消費電力が独立に制御される電力の島112、114、116及び118の１つの目的の電力レベルを決定し、(2)電力の島112、114、116及び118の１つの消費電力レベルを目的の電力レベルに変更する動作を決定し、(3)電力の島112、114、116及び118の１つの消費電力レベルを目的の電力レベルに変更する動作を実行するように構成された何らかの回路、装置又はシステムである。電力マネージャ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の階層又はグループでもよい。図１は集積回路110の外にあるものとして電力マネージャ120を図示しているが、他の実施例は、集積回路110にある電力マネージャ120を有してもよい。他の実施例では、電力マネージャ120は、集積回路110上又は集積回路110外の複数の電力マネージャに分散されてもよく、CPUと統合されてもよい。
【００２３】
動作は、電力の島112、114、116及び118の消費電力を制御する何らかの命令、メッセージ、処理、関数、信号又は変数である。動作のいくつかの例には、クロックゲートと動的クロック選択がある。動作の他の例は、電力の島112、114、116及び118の１つのクロック周波数を変更することである。動作の他の例は、動的電圧ソース、Vdd、選択のような電力の島112、114、116及び118の１つの電圧を変更することである。動作の他の例は、可変Vtトランジスタを制御することにより、動的リークを制御することである。
【００２４】
図２は、本発明の例示的な実施例における集積回路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とを有してもよい。
【００２５】
集積回路250は、電力の島260と、電力の島270と、MPM280とを有する。電力の島260は、低電力スタンダードセル論理ブロック262と、SPM264とを有する。電力の島270は、低電力メモリブロック272と、SPM274とを有する。低電力スタンダードセル論理ブロック262及び低電力メモリブロックは、インタフェース265に結合されている。MPM280は、PMCL218とSPM264とSPM274とに結合されている。
【００２６】
ある実施例では、アプリケーションレイヤ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の電力レベルに関与するオンデマンド型のリソース用のデータを提供してもよい。
【００２７】
ある実施例では、GPAL214が存在する場合に、GPAL214は、集積回路250の電力管理についてローカルの決定を行う際にPMCL218への案内を提供する。ある実施例では、GPAL214及びPMCL218は、静的スケジュール用の複雑なアルゴリズムを有する。GPAL214及びPMCL218は、電力の動作を相互作用して制御するコードを使用する機能と、データベース及び統計を提供することを含むパラメータとを提供する。
【００２８】
PMCL218はまた、MPM280から情報を収集し、可能なIPM、SPM264及び274、並びに電力の島260及び270について、MPM280にコマンドを提供する。コマンドのいくつかは、電力オン／オフ、電力レベルの変更、又は電力の島260及び270の周波数の変更でもよい。スマート電力ユニット（SPU：smart  power  unit）を備えたある実施例では、CPAL214及びPMCL218は、電力ポリシーを実装して実際の電力供給についての情報を収集するために、SPU290と通信する役目をする。SPU290については、図６−８で以下に更に詳細に説明する。ある実施例では、GPAL214及びPMCL218は、既存の電力管理技術用のソケットを提供する。
【００２９】
電力マネージャファームウェア224は、マスター電力マネージャ280と中間電力マネージャとスレーブ電力マネージャ264及び274とにより実行されるファームウェアである。
【００３０】
MPM280は、全体の集積回路250の“全体”電力動作を制御するように構成された何らかの回路である。ある実施例では、全体の集積回路250の電力動作を制御する複数のMPM280が存在する。ある実施例では、MPM280は既存のIPM並びにSPM264及び274と通信し、電力の島260及び270の電力を制御する。MPM280は、SPM264及び274並びにIPMから電力の島260及び270についての状態情報を受信してもよい。MPM280はまた、IPM並びにSPM264及び274の間の電力のトレードオフを決定してもよい。
【００３１】
MPM280はまた、PMCL218ファームウェアに対するメインインタフェースを提供してもよい。ある実施例では、MPM280は、PMCL218と通信し、コマンド（例えばメモリマップのコマンド）を受け入れ、集積回路250内の電力についての状態情報を提供する。ある実施例では、MPM280は、集積回路250のメインバスを通じてPMCL218と通信する。MPM280はまた、SPM264及び274並びにIPMと機能とのそれぞれをPMCL218に登録してもよい。MPM280のいくつかの動作について、図５、８、９及び１１で以下に詳細に説明する。ある実施例では、MPM280は状態保存用のスキャン・チェーン（scan  chain）を読み書きし、ローカルの論理アナライザ機能で回復する。
【００３２】
ある実施例は、MPM280の代わりにSPM264及び274を調整するIPM（図示せず）を有してもよい。ある実施例では、IPMは、MPM280により制御される領域の部分で電力動作を制御及び調整する。ある実施例では、IPMは、MPM280と異なるチップにあるSPM264及び274を制御する。
【００３３】
SPM264は、集積回路250の電力の島264で電力を制御するように構成された何らかの回路である。SPM264の一例は、集積回路250の電力の島264で電力を制御するIPブロックである。SPM264は、信号バッファと、レベルシフトと、信号分離とを有してもよい。ある実施例では、SPM264は簡単な実装及び統合を提供するスキャン・チェーンに統合される。また、ある実施例では、SPM264は、低ゲートカウント及び低電力を備えた非常に小さい“フットプリント”を有する。ある実施例では、SPM264は、状態情報とサービス要求とコマンドとを通信するコマンドインタフェースを有する。コマンドのいくつかには、ロード、スリープ及びアイドルがある。SPM264はまた、分岐バスを可能にするために、自分のアドレスを認識してもよい。
【００３４】
ある実施例では、SPM264は登録機能を有する。電力上昇時の登録では、SPM264はオフチップSPM及びIPMで一般的に使用されるコールバック登録を使用する。集積回路がオンチップSPMで生成されたときの静的な登録では、SPM264は、SPM264が何をすることができるか、IPMが何をすることができるか、及びSPM264又はIPMがサービス可能なコマンドの種類を登録する。SPM264はまた、電源オフの間の保存及び回復機能を有してもよい。SPM264は、ウォッチ・ドッグ・タイマー（watch-dog  timer）を有してもよい。ある実施例では、SPM264は、電力の島260に対するデバッグインタフェース調整を有する。SPM264はまた、ローカル状態を監視し、電力の島260内の構成要素の情報を収集してもよい。SPM264はまた、Vdd、周波数選択用のクロック、及び動的バックバイアスをローカルで制御してもよい。SPM264の説明はまた、電力の島270のSPM274にも当てはまる。
【００３５】
ある実施例では、SPM264は、電力の島260からの収集情報が閾値を交差したとき又は範囲を超過したときにイベントが生じたか否かを検査する。ある実施例では、SPM264、IPM又はMPM280は、電力の島260の消費電力レベルを監視し、消費電力レベルが閾値レベルを交差したか又は範囲を超過したか否かを検査する。消費電力レベルは、電力の島260で消費される電力を示す何らかの情報、データ又は統計である。消費電力レベルのいくつかの例には、温度及び電力がある。閾値又は範囲はプログラム可能でもよい。SPM264は、非同期でイベントをレポートしてもよく、或いはMPM280のような他の要素は、イベントが生じたか否かを求めてもよい。イベントはまた、所定のプログラム可能な周波数より大きい時に生じる条件、又は所定のプログラム可能な持続時間を超過する条件のように、複数レベルのテストでもよい。
【００３６】
ある実施例では、低電力スタンダードセル論理ロジック262は、電力の島260に含まれ得るスタンダードセルライブラリの一例である。ある実施例では、スタンダードセルライブラリは、低電力用に最適化されている。スタンダードセルライブラリは、一連の動作電圧で特徴を有してもよい。ある実施例では、スタンダードセルライブラリは、同期回路及び／又は非同期回路を有する。ある実施例では、スタンダードセルライブラリは、静的回路及び／又はカプセル化動的論理回路を有する。スタンダードセルライブラリはまた、レベルシフタや信号分離回路のような複数電圧ドメインのインタフェース回路を有してもよい。スタンダードセルライブラリはまた、標準Vt、高Vt、低Vt及び可変Vt回路のような複数閾値の設計及び特徴を有してもよい。スタンダードセルライブラリはまた、データ保存（シャドー）回路と、非グリッチ回路とを有してもよい。スタンダードセルライブラリはまた、低リークの“スリープ”回路を有してもよい。図３は、本発明の例示的な実装における低電力スタンダードセル論理ブロック262の低リーク回路300を示している。
【００３７】
図４は、本発明の例示的な実装における電力の島270の図を示している。電力の島270は、低電力メモリブロック272と、SPM274とを有する。低電力メモリブロック272は、メモリ用のバンク構造410、420、430及び440と、スリープ電力低下回路450とを有する。ある実施例では、電力の島270のメモリはRAM及び／又はROMである。RAMのいくつかの例には、単一ポートや２ポートやデュアルポートのようなSRAMコンパイラがある。ROMのいくつかの例には、ROMコンパイラがある。電力の島270のいくつかのメモリは、低電力メモリブロック272のように低電力用に最適化されている。一実施例では、低電力メモリブロック272は、バンク構造410、420、430及び440のようなコンパイラを介した複数のバンク構造を有する。電力の島270のメモリはまた、スリープやナップ（nap）や全電力低下のような低電力モード用のスリープ電力低下回路450を有してもよい。電力の島270のメモリはまた、プログラム可能な読み／書きポートを有してもよい。電力の島270のメモリはまた、非同期及び／又は同期設計でもよい。
【００３８】
ある実施例では、システム200はまた、スマート電力ユニット（SPU：smart  power  unit）290を有する。ある実施例では、SPU290は、集積回路250に対してオフチップである。SPU290は、集積回路に対する電力とクロックの分配を制御するように構成された外部ユニットである。SPUの回路について、図７及び８で以下に更に詳細に説明する。
【００３９】
図５は、本発明の例示的な実装におけるアプリケーション要求からSPM動作までのフローチャートを示している。図５はステップ500で始まる。ステップ502において、映画の再生のように、アプリケーションが起動される。ステップ504において、アプリケーションは、IPユニットの性能に必要な周波数を決定する。例えば、アプリケーションは、MPEGデコーダ用のIPユニットについて、MHzで指定の周波数を決定する。ある実施例では、IPユニットが完全に非同期である場合、所要の周波数は性能の人為的指標である。複数のクロックが含まれるある実施例では、クロック毎の最小の性能が特定される。
【００４０】
ステップ506において、アプリケーションはPMCL218のAPI呼び出しを起動する。この呼び出しの一例は、“Set_Rate（ユニットY、N  MHz、許容の動的電力管理（DPM：dynamic  power  management）の程度、DPMの閾値、DPMのトレードオフを可能にする他の情報、動的バイアスでのSPMの開始バックバイアス、電力上昇フラグ用の待ち時間）”である。この例では、他の情報は、“電力オフにせずに、高Vt及びクロックオフを使用する”及び“400nsの閾値で主な待ち時間は10usである”でもよい。複数のクロックを有するいくつかの実施例では、PMCL218のAPI呼び出しにより、アプリケーションが全ての所要の周波数を特定することが可能になる。
【００４１】
PMCL218は、ステップ508において、所定の要件に最も合うものとしてユニットに該当する場合には、ユニットで利用可能な生じ得るトレードオフを決定し、周波数レート、Vdd及びVtを選択し、ステップ510において、適切なSPM264及び274を決定する。ある実施例では、MPM280又はIPMはステップ508及び510を実行する。複数クロックのいくつかの実施例では、特定されたVdd及びVtにより、全ての特定されたクロックがその所要周波数に一致すること又はそれを超過することが可能になる。
【００４２】
ステップ512において、PMCL218は、SPM264及び274の所望の設定をMPM280（又はIPM）に書き込む。ステップ514において、MPM280（又はIPM）は、ユニットに関連するSPM264及び274（又はIPM）用の１つ以上のコマンドに要求を変換する。
【００４３】
ステップ516において、アプリケーションが電力上昇フラグ用の待ち時間を設定している場合、PMCL218は、呼び出しから戻る前にIPユニットが完全に電力上昇するまで待機する。別法では、コマンドが肯定応答されるとすぐに、OKでは0の状態で、高速電力上昇では1の状態で、低速電力上昇では2の状態で、又はエラー状態では3+の状態で、呼び出しが戻る。電力上昇状態は、ユニットが単に電源オンになっていることではなく、ユニットが所要の周波数で所望のVddにあるときである。
【００４４】
ステップ518において、MPM280（又はIPM）は、適切な目的物に要求を送信する。ステップ520において、MPM280は、受信して実行されたメッセージ又は実行が開始したメッセージを示す肯定応答の受信を待機する。NACK又は否定応答もまた、SPM264及び274から返信されてもよい。
【００４５】
ステップ522において、SPM264はコマンドを受信し、動作を実行する。ステップ524-528は、SPM264が実行し得る可能な動作である。ステップ524において、SPM264はVdd  muxを切り替える。ステップ526において、SPM264はクロックmuxを切り替える。ある実施例では、電圧が低下すると、ステップ526はステップ524の前に実行される。ステップ528では、SPM264は関連のトランジスタでVtを変化させる。SPM264が動作を実行した後に、ステップ530において、SPM264は肯定応答又は否定応答を示す状態メッセージをアップストリームで返信する。図５はステップ532で終了する。
【００４６】
図６は、本発明の例示的な実装におけるSPU290の内部回路600の図を示している。この実施例では、SPU290の内部回路600は、図２の集積回路250の内部にある。内部回路600は、外部電圧610と、ドロップアウト電圧レギュレータ620と、ドロップアウト電圧レギュレータ630と、論理ブロック640と、論理ブロック650とを有する。
【００４７】
図７は、本発明の例示的な実装におけるSPU290の外部回路700の図を示している。この実施例では、SPU290の外部回路700は、図２の集積回路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に対する電圧を制御する。
【００４８】
図８は、本発明の例示的な実施例におけるアプリケーション要求からSPUの動作までのフローチャートを示している。図８はステップ800で始まる。ステップ802において、アプリケーションが起動される。ステップ804において、アプリケーションは、IPユニットの性能に必要な周波数を決定する。例えば、アプリケーションは、MPEGデコーダ用のIPユニットについて、MHzで指定の周波数を決定する。
【００４９】
ステップ806において、アプリケーションはPMCL218のAPI呼び出しを起動する。この呼び出しの一例は、“Set_Rate（ユニットY、N  MHz、許容の動的電力管理（DPM：dynamic  power  management）の程度、DPMの閾値、DPMのトレードオフを可能にする他の情報、動的バイアスでのSPMの開始バックバイアス、電力上昇フラグ用の待ち時間）”である。この例では、他の情報は、“電力オフにせずに、高Vt及びクロックオフを使用する”及び“400nsの閾値で主な待ち時間は10usである”でもよい。
【００５０】
PMCL218は、ステップ808において、ユニットで利用可能な生じ得るトレードオフを決定し、所用の周波数をサポートする最低の可能なVddを選択し、ステップ810において、影響を受けるSPM264及び274と、どの電力ピンを変更するかとを決定する。
【００５１】
ステップ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）の１つは、指定の周波数を設定する。ステップ824において、IPユニットの動作は、クロックが落ち着いた後にレジュームする。図８はステップ826で終了する。ある実施例では、ユーザアプリケーションは、全体の動作が終了又は継続することを待機する選択肢を有し、動作の進行に関してPMCLに問い合わせ、又はPMCL218から“終了”の割込みを待機する。
【００５２】
図９は、本発明の例示的な実装において、電力低下前にIPユニットの状態を保存し、電力上昇のときにIPユニットの状態を回復するフローチャートを示している。図９はステップ900で始まる。ステップ902において、ユーザアプリケーションは、PMCL218がIPユニットを電源オフすることを要求し、IPユニットの状態を保存しようとする。ある実施例では、IPユニットの再構成に時間を要する。ステップ902での要求は、状態が保存されるべき領域のアドレスが伴ってもよい。
【００５３】
ステップ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は、ユーザアプリケーションに保存状態領域を返信する。保存状態領域は、ユニットの状態を含む。
【００５４】
後に、ステップ918において、PMCL218がIPユニットを電力上昇してIPユニットの状態を回復することを、ユーザアプリケーションが要求する。ある実施例では、ユーザアプリケーションの要求は、状態が保存された領域のアドレスを有する。ステップ902において、PMCL218は、“クロックオフでIPユニットを電力上昇して状態を回復する”メッセージをMPM280に送信する。ステップ922において、MPM280は、“クロックオフでIPユニットを電力上昇して状態を回復する”メッセージを、影響を受けるIPユニットのSPM264及び274に伝搬する。ステップ924において、IPユニットが電力上昇した後に、MPM280は、ユニットの状態を再ロードするためにスキャン・チェーンを使用する。ある実施例では、ユニットの状態の再ロードは、保存領域から、又はPMCL218からMPM280に渡された情報から直接に生じる。ステップ926では、PMCL218は、MPM280にメッセージを送信し、クロックを戻し、IPユニットが動作を継続する準備ができていることをユーザアプリケーションにレポートする。図９はステップ928で終了する。
【００５５】
ある実施例では、図９の同じ機能が内部“論理アナライザ”機能を実装するために使用される。その内部“論理アナライザ”機能では、当該IPユニットは、読み取られた後に電力低下しない。IPユニットの関連のSPM264及び274がクロックをシングルステップ又はマルチステップする機能を有する場合、ローカルのスキャン・テストは、SPM264及び274にIPユニットを“信号分離”させることにより実行される。次に、クロックをシングルステップ又はマルチステップする機能と、スキャン・チェーンを使用する機能との組み合わせを使用して、IPユニットの内部状態を読み書きすることができる。
【００５６】
図１０は、本発明の例示的な実装におけるシステム・オン・チップ（SOC：system-on-a-chip）1000及び拡張ローカルメモリ1004の図を示している。SOC1000は、集積回路250の一例であり、前述のように図２の内蔵ファームウェアスタック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の部分の機能によって表される。
【００５７】
拡張ローカルメモリ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を有する。
【００５８】
この実施例では、電力コマンドバスは、バス1071とバス1072とを有する。バス1071及び1072は、チップ境界を交差して電力マネージャを相互接続し得る簡単なマルチドロップのシリアルバスである。電力コマンドバスは、チップの領域毎に１つ存在して領域内でマルチドロップするバス1071やバス1072のようなシリアルバスの結合でもよい。他の実施例では、電力コマンドバスは、パラレルバス、又はシリアル及びパラレルバスの結合を有する。ある実施例では、電力コマンドバスはシステムバスである。電力コマンドバスは、関連のペイロードを備えた少なくともユニットIDを備えたメッセージを有してもよい。固定のポイント・ツー・ポイント・バスでは、メッセージはユニットIDを必要とせず、ペイロードだけでよい。
【００５９】
ある実施例では、電力コマンドバスは、パリティ、ECC又は冗長コードのようなエラー検出機構を使用する。ある実施例では、電力コマンドバスは、集積回路の設計に干渉しない低性能バスであり、ユーザに可視的ではない。ある実施例では、PMCL218とMPM1070との間の通信は、メモリにマッピングされSOC1000のABHのようなメインバスに基づく。
【００６０】
いくつかの実施例は、電力マネージャ間で状態情報をレポートする別々のバスを有してもよい。一例では、この別々のバスは、SPMからMPMへの非同期“警告”形式の状態メッセージを提供する。
【００６１】
電力コマンドバスに様々なメッセージフォーマットが存在する。基本フォーマットの一例では、メッセージフォーマットは、メッセージインジケータの開始、電力マネージャのアドレス、形式コード、基本コマンド及びメッセージインジケータの終了を有する。拡張フォーマットの一例では、メッセージフォーマットは、基本フォーマット、更なる長さ及び更なる情報を有する。応答メッセージフォーマットの一例では、メッセージフォーマットは、メッセージ応答インジケータの開始、電力マネージャのアドレス、3b  ACK若しくはNACK又は返信状態（暗示のACK）、返信状態メッセージのペイロード長、返信状態メッセージのペイロード、NAKの理由及びメッセージインジケータの終了を有する。
【００６２】
ある実施例では、SPM1015又はIPM1006は、コマンドに応答する時にタイムアウトし、MPM1070は、プログラム可能な回数だけコマンドを再発行する。SPM1015又はIPM1006が依然として失敗する場合には、MPM1070はSPM1015又はIPM1006を使用不可能としてマークし、失敗をPMCL218にレポートする。一実施例では、PMCL218は、MPM1070に対して、スキャン・システムを介して失敗したSPM1015又はIPM1006を再初期化させ、メッセージの送信を再試行する。コマンドに対する無効な応答又は無効な状態のレポートのような他の条件も、再初期化により取り扱われる。ある実施例では、失敗したSPM1015又はIPM1006の状態は、後の分析のために読み取られて保存されてもよい。
【００６３】
図１１は、本発明の例示的な実装において、IPM1055からPMCL218に“ホットスポット”レポートを生成するフローチャートを示している。図１１はステップ1100で始まる。ステップ1102において、IPM1055は、SPMの温度統計を監視する。ステップ1104において、IPM1055は、平均温度が所定のプログラムされた閾値を超過したか否かを検査する。平均温度が閾値を超過していない場合、IPM1055はステップ1102に戻り、監視を続ける。平均温度が閾値を超過している場合、ステップ1106において、IPM1055は問題（“ホットスポット”）レポートメッセージを生成する。ステップ1108において、IPM1055は、MPMからの次の状態問い合わせを待機する。ある実施例では、MPM280への非同期状態レポートについて論理的に別々のバスが提供される。
【００６４】
ステップ1110において、MPM1070は、ホットスポットレポートのメッセージを受信する。ステップ1112において、MPM1070は、更なる確認を待機し（すなわち、“ホットスポット”が所定の閾値を最後に超過したことを検出する）、或いはMPM1070の内部ロジックに応じて問題を解決する動作を直ちに行う。ある実施例では、ステップ1114において、MPM1070は、注意を必要とするというPMCL280への割込みをポストすることにより、動作を行う。他の実施例では、PMCL280が十分に頻繁にMPM1070に問い合わせを行った場合に、割込みが必要なくなる。ステップ1116において、MPM1070（又はIPM）は、ローカルのトレードオフを行うことにより、動作を実行することにより、又は実行される動作を順序付けることにより、問題を解決する。問題を解決する一例は、ホットスポット領域の動作周波数を低減することである。ステップ1118において、MPM1070は問題と問題の解決との双方をアップストリームでレポートする。
【００６５】
ステップ1120において、PMCL218は、MPM1070から修正ホットスポットレポートを読み取る。ステップ1122において、PMCL218は、問題を解決するために何の動作を行うべきかを決定し、或いはGPAL214に問題を通知する。ステップ1124において、PCML218は、適切なコマンドをMPM1070に発行し、問題を解決する。このステップにおいて、ソフトウェアは問題を解決するために必要なトレードオフを行う。ある実施例では、GPAL214がハイレベルの解決を決定すると、GPAL214はMPMコマンドに変換されるようにそれをPMCL280に送信する。ステップ1126において、PMCL218は、指定の時間だけ問題の領域を監視し、問題が解決されたか否かを検査する。図１１はステップ1128で終了する。
【００６６】
ある実施例では、図１１の機能の種類は、PMCL218のような他のレベルで実行されてもよい。一例では、PMCL218は、そのローカルの条件に関して所望の測定機能（及びIPM）を有する全てのSPMに（MPM1070）を介して問い合わせ、例えば、動作し得る電力使用量の“マップ”を構築してもよい。
【００６７】
図１２は、本発明の他の例示的な実装におけるシステム・オン・チップ（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とを有する。
【００６８】
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を有する。
【００６９】
図１３は、本発明の例示的な実装における電力の島を備えたチップを構成するフローチャートを示している。図１３はステップ1300で始まる。ステップ1302において、IP又はライブラリセルが選択され、存在する場合にはチップを構築するために使用されるカスタムロジックが特定される。ある実施例では、最大及びサブクロックレートと、%アイドル時間と、最小及び最大Vddとが特定される。ステップ1304において、レジスタ転送レベル（RTL：register  transfer  level）が書き込まれる。ステップ1306において、RTLがシミュレーション及びデバッグされる。
【００７０】
RTLの書き込み中又は書き込み後に、ステップ1308において、MPM、IPM及びSPMブロックの注釈（annotation）を追加するためにソフトウェアツールが使用されてもよい。ある実施例では、所望の機能の選択肢が注釈で特定される。ある実施例では、SPMブロック毎に任意選択の機能が特定される。ある実施例では、モジュール毎にRTLがSPM構成情報で注釈を付される。ある実施例では、RTLの書き込み中又は書き込み後に、適切な注釈がモジュール毎に手動で挿入される。他の実施例では、適切なフォーマットの別々のテーブルがモジュール名及び各注釈を用いて作られる。ある実施例では、別々のソフトウェアツールは、別々のテーブルをインタラクティブに構築する機能を提供する。ある実施例では、ソフトウェアツールは、テーブルからの情報を使用して、RTLの注釈のないモジュールに適切な注釈を追加する。
【００７１】
ステップ1310において、電力の島毎に合成が行われ、電力の島は混合しない。ステップ1312において、Vdd及びVtの選択肢毎に各モジュールで性能測定ソフトウェアが動作し、MPMの注釈がRTLに追加される。ある実施例では、設計の性能は全ての所望の電圧とVtとの組み合わせで測定される。ソフトウェアツールは、SPM毎に実際の周波数、Vdd及びVtテーブルを導き、MPM（又はIPM）のRTLにSPMの特性の注釈を付ける。
【００７２】
ステップ1314において、電力の島毎に最後の合成が行われる。ある実施例では、モジュールは別々にルートされ又はSPMによる。ステップ316において、ソフトウェアツールが動作し、電力及びクロックを各SPMにつなぐ。ステップ1318は実行されるステップの残りである。ある実施例では、ソフトウェアツールは全ての情報を備えた最終リストを生成する。図１３はステップ1320で終了する。
【００７３】
前述の要素は、記憶媒体に格納される命令から構成されてもよい。命令はプロセッサにより取り出されて実行されてもよい。命令のいくつかの例には、ソフトウェア、プログラムコード及びファームウェアがある。記憶媒体のいくつかの例には、メモリ装置、テープ、ディスク、集積回路及びサーバがある。命令は、プロセッサにより実行されると、本発明に従って動作するようにプロセッサを指示するように、動作可能である。当業者は、命令、プロセッサ及び記憶媒体に精通している。
【００７４】
前述の説明は例示的であり限定的ではない。この開示を検討することで、本発明の多数の変形形態が当業者に明らかになる。従って、本発明の範囲は、前述の説明を参照して決定されるのではなく、特許請求の範囲及びその均等の全範囲を参照して決定されるべきである。
【００７５】
本発明の実施例について、以下の項目を開示する。
【００７６】
（１）複数の電力の島を有する集積回路で電力を管理する方法であって、
消費電力が電力の島のそれぞれで独立して制御される前記電力の島のうち１つの目的の電力レベルを決定し、
前記電力の島のうち１つの消費電力レベルを前記目的の電力レベルに変更する動作を決定し、
前記電力の島のうち１つの消費電力レベルを前記目的の電力レベルに変更する動作を実行することを有する方法。
【００７７】
（２）（１）に記載の方法であって、
前記電力の島は、前記集積回路の地理的要因に基づいて表される方法。
【００７８】
（３）（１）に記載の方法であって、
前記電力の島は、前記集積回路の機能回路に基づいて表される方法。
【００７９】
（４）（１）に記載の方法であって、
前記電力の島は、電力の下位の島を有する方法。
【００８０】
（５）（１）に記載の方法であって、
前記電力の島は、複数のクロックドメインを有する方法。
【００８１】
（６）（１）に記載の方法であって、
前記動作は、前記電力の島のうち１つのクロック周波数を選択することを有する方法。
【００８２】
（７）（１）に記載の方法であって、
前記動作は、前記電力の島のうち１つのクロックを選択することを有する方法。
【００８３】
（８）（１）に記載の方法であって、
前記動作は、前記電力の島のうち１つの第１の電圧を変更することを有する方法。
【００８４】
（９）（８）に記載の方法であって、
前記第１の電圧は、ソース電圧を有する方法。
【００８５】
（１０）（８）に記載の方法であって、
前記第１の電圧は、閾値電圧を有する方法。
【００８６】
（１１）（１）に記載の方法であって、
前記動作は、前記電力の島のうち１つで電力をオンすることを有する方法。
【００８７】
（１２）（１）に記載の方法であって、
前記動作は、前記電力の島のうち１つで電力をオフすることを有する方法。
【００８８】
（１３）（１）に記載の方法であって、
前記動作は、前記電力の島のうち１つをスリープモードに変更することを有する方法。
【００８９】
（１４）（１）に記載の方法であって、
前記電力の島のうち１つの消費電力レベルを監視し、
前記消費電力レベルに基づいて閾値レベルを交差したか否かを決定し、
前記閾値レベルの交差に基づいて前記動作を実行することを更に有する方法。
【００９０】
（１５）（１）に記載の方法であって、
前記電力の島のうち１つの構成要素の状態を保存することを更に有する方法。
【００９１】
（１６）（１）に記載の方法であって、
前記電力の島のうち１つの構成要素の状態を回復することを更に有する方法。
【００９２】
（１７）消費電力が電力の島のそれぞれで独立して制御される複数の電力の島を有する集積回路用のシステムであって、
前記電力の島のうち１つの電力を制御するように構成された電力制御回路と、
前記電力の島のうち１つの目的の電力レベルを決定し、前記電力の島のうち１つの消費電力レベルを前記目的の電力レベルに変更する動作を決定し、前記電力の島のうち１つの消費電力レベルを前記目的の電力レベルに変更する動作を実行するように構成された電力マネージャと
を有するシステム。
【００９３】
（１８）（１７）に記載のシステムであって、
前記電力の島は、前記集積回路の地理的要因に基づいて表されるシステム。
【００９４】
（１９）（１７）に記載のシステムであって、
前記電力の島は、前記集積回路の機能回路に基づいて表されるシステム。
【００９５】
（２０）（１７）に記載のシステムであって、
前記電力の島は、電力の下位の島を有するシステム。
【００９６】
（２１）（１７）に記載のシステムであって、
前記電力の島は、複数のクロックドメインを有するシステム。
【００９７】
（２２）（１７）に記載のシステムであって、
前記動作は、前記電力の島のうち１つのクロック周波数を選択することを有するシステム。
【００９８】
（２３）（１７）に記載のシステムであって、
前記動作は、前記電力の島のうち１つのクロックを選択することを有するシステム。
【００９９】
（２４）（１７）に記載のシステムであって、
前記動作は、前記電力の島のうち１つの第１の電圧を変更することを有するシステム。
【０１００】
（２５）（２４）に記載のシステムであって、
前記第１の電圧は、ソース電圧を有するシステム。
【０１０１】
（２６）（２４）に記載のシステムであって、
前記第１の電圧は、閾値電圧を有するシステム。
【０１０２】
（２７）（１７）に記載のシステムであって、
前記動作は、前記電力の島のうち１つで電力をオンすることを有するシステム。
【０１０３】
（２８）（１７）に記載のシステムであって、
前記動作は、前記電力の島のうち１つで電力をオフすることを有するシステム。
【０１０４】
（２９）（１７）に記載のシステムであって、
前記動作は、前記電力の島のうち１つをスリープモードに変更することを有するシステム。
【０１０５】
（３０）（１７）に記載のシステムであって、
前記電力マネージャは、
前記電力の島のうち１つの消費電力レベルを監視し、
前記消費電力レベルに基づいて閾値レベルを交差したか否かを決定し、
前記閾値レベルの交差に基づいて前記動作を実行するように構成されたシステム。
【０１０６】
（３１）（１７）に記載のシステムであって、
前記電力マネージャは、前記電力の島のうち１つの構成要素の状態を保存するように構成されたシステム。
【０１０７】
（３２）（１７）に記載のシステムであって、
前記電力マネージャは、前記電力の島のうち１つの構成要素の状態を回復するように構成されたシステム。
【０１０８】
（３３）（１７）に記載のシステムであって、
前記電力マネージャと前記電力の島とに結合されたバスを更に有するシステム。
【０１０９】
（３４）（１７）に記載のシステムであって、
前記電力マネージャは、前記集積回路の電力を制御するように構成されたマスターマネージャを有するシステム。
【０１１０】
（３５）（１７）に記載のシステムであって、
前記電力マネージャは、前記電力の島のうち１つの電力を制御するように構成されたスレーブマネージャを有するシステム。
【０１１１】
（３６）（１７）に記載のシステムであって、
前記電力制御回路は、クロック多重回路を有するシステム。
【０１１２】
（３７）（１７）に記載のシステムであって、
前記電力制御回路は、電圧多重回路を有するシステム。
【０１１３】
（３８）（１７）に記載のシステムであって、
前記電力制御回路は、レベルシフト回路を有するシステム。
【０１１４】
（３９）複数の電力の島を有する集積回路で電力を管理するソフトウェアプロダクトであって、
プロセッサにより実行されると、消費電力が電力の島のそれぞれで独立して制御される前記電力の島のうち１つの目的の電力レベルを決定し、前記電力の島のうち１つの消費電力レベルを前記目的の電力レベルに変更する動作を決定し、前記電力の島のうち１つの消費電力レベルを前記目的の電力レベルに変更する動作を実行するように、前記プロセッサに指示するように動作可能な電力管理ソフトウェアと、
前記電力管理ソフトウェアを格納するように動作可能なソフトウェア記憶媒体と
を有するソフトウェアプロダクト。
【０１１５】
（４０）（３９）に記載のソフトウェアプロダクトであって、
前記電力の島は、前記集積回路の地理的要因に基づいて表されるソフトウェアプロダクト。
【０１１６】
（４１）（３９）に記載のソフトウェアプロダクトであって、
前記電力の島は、前記集積回路の機能回路に基づいて表されるソフトウェアプロダクト。
【０１１７】
（４２）（３９）に記載のソフトウェアプロダクトであって、
前記電力の島は、電力の下位の島を有するソフトウェアプロダクト。
【０１１８】
（４３）（３９）に記載のソフトウェアプロダクトであって、
前記電力の島は、複数のクロックドメインを有するソフトウェアプロダクト。
【０１１９】
（４４）（３９）に記載のソフトウェアプロダクトであって、
前記動作は、前記電力の島のうち１つのクロック周波数を選択することを有する方法。
【０１２０】
（４５）（３９）に記載のソフトウェアプロダクトであって、
前記動作は、前記電力の島のうち１つのクロックを選択することを有するソフトウェアプロダクト。
【０１２１】
（４６）（３９）に記載のソフトウェアプロダクトであって、
前記動作は、前記電力の島のうち１つの第１の電圧を変更することを有するソフトウェアプロダクト。
【０１２２】
（４７）（４６）に記載のソフトウェアプロダクトであって、
前記第１の電圧は、ソース電圧を有するソフトウェアプロダクト。
【０１２３】
（４８）（４６）に記載のソフトウェアプロダクトであって、
前記第１の電圧は、閾値電圧を有するソフトウェアプロダクト。
【０１２４】
（４９）（３９）に記載のソフトウェアプロダクトであって、
前記動作は、前記電力の島のうち１つで電力をオンすることを有するソフトウェアプロダクト。
【０１２５】
（５０）（３９）に記載のソフトウェアプロダクトであって、
前記動作は、前記電力の島のうち１つで電力をオフすることを有するソフトウェアプロダクト。
【０１２６】
（５１）（３９）に記載のソフトウェアプロダクトであって、
前記動作は、前記電力の島のうち１つをスリープモードに変更することを有するソフトウェアプロダクト。
【０１２７】
（５２）（３９）に記載のソフトウェアプロダクトであって、
前記電力管理ソフトウェアは、
前記プロセッサにより実行されると、前記電力の島のうち１つの消費電力レベルを監視し、前記消費電力レベルに基づいて閾値レベルを交差したか否かを決定し、前記閾値レベルの交差に基づいて前記動作を実行するように、前記プロセッサに指示するように動作可能なソフトウェアプロダクト。
【０１２８】
（５３）（３９）に記載のソフトウェアプロダクトであって、
前記電力管理ソフトウェアは、
前記プロセッサにより実行されると、前記電力の島のうち１つの構成要素の状態を保存するように、前記プロセッサに指示するように動作可能なソフトウェアプロダクト。
【０１２９】
（５４）（３９）に記載のソフトウェアプロダクトであって、
前記電力管理ソフトウェアは、
前記プロセッサにより実行されると、前記電力の島のうち１つの構成要素の状態を回復するように、前記プロセッサに指示するように動作可能なソフトウェアプロダクト。
【図１】
2012123823.tif 000003
【図２】
2012123823.tif 000004
【図３】
2012123823.tif 000005
【図４】
2012123823.tif 000006
【図５】
2012123823.tif 000007
【図６】
2012123823.tif 000008
【図７】
2012123823.tif 000009
【図８】
2012123823.tif 000010
【図９】
2012123823.tif 000011
【図１０】
2012123823.tif 000012
【図１１】
2012123823.tif 000013
【図１２】
2012123823.tif 000014
【図１３】
2012123823.tif 000015