(57)【要約】【課題】可能な設計工数で、拡張性の高いかつ低電力なシステムＬＳＩを構築できる予測型電力制御付き半導体装置を提供する。【解決手段】予測回路Ｐと電力状態制御回路Ｄで構成される予測型の電源遮断回路を機能論理回路ブロックＫに付加する。予測回路Ｐは、回路ブロックＫへの入力Ｉの情報に基づいて、回路ブロックＫの電力状態を回路Ｄによって制御する。例えば、電力状態制御回路Ｄは、入力が一定時間以上無い場合、回路ブロックＫの電力状態を低電力な状態へ移行させる。予測回路Ｐと電力状態制御回路Ｄが付加された回路ブロックＫが複数接続されて構築されるシステムＬＳＩは、各回路ブロックＫがシステム全体を管理する演算装置とは独立に、入力Ｉの状態に応じて自立分散的に電力状態の小さな状態へ移行できる。【選択図】図１
2006318513.tif 000002
【特許請求の範囲】
【請求項１】
命令またはデータの入力に対して一定の処理をクロックに基づいて行なう複数の論理回路ブロックを含む半導体装置であって、
各論理回路ブロックに、
論理回路ブロックの電力状態を制御する電力状態制御回路と、
論理回路ブロックへの入力有無の状態に応じて前記電力状態制御回路を制御する予測回路と、を少なくとも有することを特徴とする半導体装置。
【請求項２】
前記予測回路は、前記論理回路ブロックの入力の処理を制御するための機能を更に有する請求項１記載の半導体装置。
【請求項３】
前記電力状態制御回路は、クロック数ｎに達するまで前記論理回路ブロックへの処理すべき前記入力が無い場合に、電源を遮断する電源遮断回路、動作電圧を低く設定する動作電圧設定回路、または動作周波数を低く設定する動作周波数設定回路を少なくとも有する請求項１または請求項２に記載の半導体装置。
【請求項４】
前記電力状態制御回路は前記論理回路ブロックへ電力を供給する電源と前記論理回路ブロックとの間に接続され、前記論理回路ブロックへの電源を遮断する電源遮断回路であり、
前記予測回路は前記論理回路ブロックへ入力されるクロックをカウントしクロック数ｎとなったときに出力するカウンタと、前記電源遮断回路を制御する制御手段と、入力を検知し入力が来なくなった時に前記制御手段へ信号を出力すると共に前記カウンタをリセットする信号を出力する入力検知回路とから構成され、
前記制御手段は、カウンタ及び入力検知の両出力の論理積を取り前記電源遮断回路を制御する請求項１記載の半導体装置。
【請求項５】
前記論理回路ブロックは、入力を一旦蓄えるレジスタと演算処理を行なう機能ブロックとからなり、
前記予測回路は、前記制御手段の出力とクロックとを比較して前記レジスタを制御するコンパレータを更に有する請求項４記載の半導体装置。
【請求項６】
前記電力状態制御回路は前記論理回路ブロックへ電力を供給する電源と前記論理回路ブロックとの間に接続され、該電力状態制御回路に印加される信号電圧により前記論理回路ブロックの動作電圧を低く設定する動作電圧設定回路であり、
前記予測回路は、複数の異なる電圧の制御信号線と前記動作電圧設定回路との間に設けたスイッチを、前記論理回路ブロックの入力と前記クロックとに基づいて、前記動作電圧設定回路にいずれの電圧の制御信号線をいつ接続するかを決定して制御するスイッチ制御回路からなり、
該スイッチ制御回路は、前記論理回路ブロックへの入力があるときには電圧の高い方の制御信号線を前記動作電圧設定回路に接続するように制御し、入力が来なくなってからクロック数ｎとなった後に電圧の低い方の制御信号線を前記動作電圧設定回路に接続するように制御する請求項１記載の半導体装置。
【請求項７】
前記論理回路ブロックは、入力を一旦蓄えるレジスタと演算処理を行なう機能ブロックとからなり、
前記スイッチ制御回路は、前記入力とクロックの状態により前記レジスタを制御する機能を更に有する請求項６記載の半導体装置。
【請求項８】
前記電力状態制御回路は、前記論理回路ブロックの動作周波数を低く設定する動作周波数設定回路であり、分周比が可変の分周器からなり、
前記予測回路は、前記論理回路ブロックへ入力される入力を検知しクロックをカウントして分周器を制御する入力検出・クロックカウント回路と、前記論理回路ブロックに入力が来なくなってからのクロック数がｎとなった後に低電力状態へ移行するよう制御するために設定する前記クロック数ｎを格納しておくための設定レジスタとから構成され、
前記入力検出・クロックカウント回路は、前記論理回路ブロックに入力が来なくなってからカウントしたクロック数が前記設定レジスタに格納されたクロック数ｎとなったときに、前記分周器の分周比を大きくして前記回路ブロックに入力されるクロック周波数を低くするように制御する請求項１記載の半導体装置。
【請求項９】
前記論理回路ブロックは、入力を一旦蓄えるレジスタと演算処理を行なう機能ブロックとからなり、
前記入力検出・クロックカウント回路は、前記入力とクロックの状態により前記レジスタを制御する機能を更に有する請求項８記載の半導体装置。
【請求項１０】
前記クロック数ｎの値を過去の履歴に応じて更新する回路を更に有する請求項３〜８のいずれか１項に記載の半導体装置。
【請求項１１】
請求項１０において更新した結果を格納する書き換え可能な不揮発性半導体メモリを更に備えたことを特徴とする半導体装置。
【請求項１２】
対応した各論理回路ブロックの電力制御テーブルを有してこれを参照しながら前記電力状態制御回路の制御を行う制御信号と、各論理回路ブロックへの前記入力の命令またはデータとを出力するＣＰＵを更に備える請求項１〜１１のいずれか１項に記載の半導体装置。
【請求項１３】
前記ＣＰＵは、ＣＰＵに外部から入力される各論理回路ブロックの電力制御情報を含ませた命令またはデータ内の前記情報から、各論理回路ブロックに接続された電力状態制御回路の制御を行う前記制御信号を得るために解読するデコーダを更に備えたことを特徴とする請求項１２記載の半導体装置。
【請求項１４】
複数の論理回路ブロック全体の電力制御は前記電力制御情報を前記デコーダにより解読して得られた前記制御信号により前記ＣＰＵが行い、各論理回路ブロックの制御は前記ＣＰＵが行なわないことを特徴とする請求項１３記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は低電力システムＬＳＩ等の半導体装置に係り、特に、多種多用なＩＰをオンチップにした場合に、自立分散的に低電力化を図るシステムＬＳＩに関する。なお、ＩＰとはIntellectual Propertyの略であり、近年、ＬＳＩの分野ではまとまった機能を持ち、流通可能な形態とした回路ブロック又は回路モジュールをＩＰと呼ぶ。
【背景技術】
【０００２】
“Design Challenges of Technology Scaling”, IEEE MICRO, vol.19, no. 4, pp. 23-29, 1999 (以下、従来例１と記す)に記載されているように、マイクロプロセッサ等のチップの消費電力は年々増加しており、2000年には100Ｗを超えるものも多く市販されると予想されている。また、同じく従来例１に記載されているように、消費電力のうちでリーク電流による電力消費も製造プロセスの微細化にともなって指数関数的に増加している。特に、サブスレッショルドリーク電流の増加が顕著である。
【０００３】
また、上記サブスレッショルドリーク電流としては、Identifying defects in deep-submicron CMOS ICs”, IEEE Spectrum, pp. 66-71, September, 1996 (以下、従来例２と記す)に記載されているように、製造プロセスの微細化にともなってゲートリーク電流やＧＩＤＬ(Gate-Induced Drain Leakage)電流等の接合リーク電流も増大している。
【０００４】
上記動作時電力の中で負荷の充放電による電力Ｐacは、信号振幅と電源電圧とが一致する一般の場合では、従来例１で記載されているように、(動作周波数ｆ)×(負荷容量Ｃ)×(電源電圧Ｖ)×(電源電圧Ｖ)に比例するため、従来は電源電圧を低電圧化して対処している。
【０００５】
また、上記サブスレッショルドリーク電流による電力消費Ｐslは、“Subthreshold-Current Reduction Circuits for Multi-Gigabit DRAMs”, Symposium on VLSI Circuits Digest of Technical Papers, pp. 45-46, May 1993 (以下、従来例３と記す)で記載されているように、電源ラインと回路の間に電源スイッチを挿入し、回路が待機中にその電源スイッチをオフ状態にし、待機時のサブスレッショルドリーク電流による電力消費を削減する電源スイッチ方式が提案されている。
【０００６】
さらにまた、“50% Active-Power Saving without Speed Degradation using Standby Power Reduction (SPR) Circuit”, ISSCC Digest of Technical Papers, pp. 318-319, 1995 (以下、従来例４と記す)で記載されているように、回路を構成しているMOSトランジスタの基板端子の電圧を動作時と待機時とで切り替え、MOSトランジスタのしきい値電圧を動作時と待機時とで切り替えて、サブスレッショルドリーク電流を待機時に削減する基板バイアス制御方式が提案されている。
【０００７】
更に、上記ゲートリーク電流による電力消費Ｐglは、“Suppression of Stand-by Tunnel Current in Ultra-Thin Gate Oxide MOSFETs by Dual Oxide Thickness MTCMOS (DOT-MTCMOS)”, Extended Abstract of the 1999 International Conference on Solid State Devices and Materials, pp. 264-265, 1999 (以下、従来例５と記す)に記載されているように、薄い酸化膜のMOSトランジスタで構成されている回路と、電源ラインの間に厚い酸化膜のPMOSトランジスタを挿入して、回路が待機中にその電源スイッチをオフ状態にし、待機時のゲートリーク電流による電力消費を削減する方式が提案されている。
【０００８】
【非特許文献１】「デザイン・チャレンジズ・オブ・テクノロジー・スケーリング」（Design Challenges of Technology Scaling）、アイ・イ−・イ−・イ−・マイクロ（IEEE MICRO）、１９９９年、第１９巻 、第４号、ｐ．２３−２９
【非特許文献２】「（アイデンテファイング・ディフェクツ・イン・ディープ−サブミクロン・ＣＭＯＳ  ＩＣｓ」（Identifying defects in deep-submicron CMOS ICs）、アイ・イ−・イ−・イ−・スペクトラム（IEEE Spectrum）、１９９６年９月、ｐ.６６−７１
【非特許文献３】「サブスレッショルド−カレント・リダクション・サーキッツ・フォーマルチギガビット・ＳＲＡＭｓ」（Subthreshold-Current Reduction Circuits for Multi-Gigabit DRAMs）、シンポジウム・オン・ＶＬＳＩサーキッツ・ダイジェスト・オブ・テクニカルペーパーズ（Symposium on VLSI Circuits Digest of Technical Papers）、１９９３年５月、ｐ．４５−４６
【非特許文献４】「５０％アクティブ・パワー・セービング・ウイズアウト・スピード・デグラデーション・ユージング・スタンバイ・パワーリダクション・サーキッツ」（50% Active-Power Saving without Speed Degradation using Standby Power Reduction (SPR) Circuit）、アイ・エス・エス・シー・シー・ダイジェスト・オブ・テクニカル・ペーパーズ（ISSCC Digest of Technical Papers）、１９９５年、ｐ.３１８−３１９
【非特許文献５】「サプレッション・オブ・スタンバイ・トンネル・カレント・イン・ウルトラ−シン・ゲート・オキサイドＭＯＳＦＥＴｓ・バイ・デュアル・オキサイド・シックネス・ＭＴＣＭＯＳ（ＤＯＴ−ＣＭＯＳ）」（Suppression of Stand-by Tunnel Current in Ultra-Thin Gate Oxide MOSFETs by Dual Oxide Thickness MTCMOS (DOT-MTCMOS)）、エクステンデッド・アブストラクト・オブ・１９９９年インターナショナル・コンファレンス・オン・ソリッド・ステートデバイシズ・アンド・マテリアルズ（Extended Abstract of the 1999 International Conference on Solid State Devices and Materials）、ｐ． ２６４−２６５
【発明の開示】
【発明が解決しようとする課題】
【０００９】
チップに要求される機能の増加にともない、チップに集積されるＭＯＳトランジスタ（以下、ＭＯＳＴと記す）の数や動作周波数も年々増加している。これにともない負荷の充放電による電力Ｐacも増加している。
【００１０】
この電力Ｐacの削減技術として上記の従来例１による方法があるが、電力Ｐacの増加トレンドに対して完全に対応することができない。なぜなら、一般に、低電圧化すれば電力Ｐacを低減できるが、そのときにチップの動作速度を維持あるいは向上するためには、チップを構成しているＭＯＳＴのしきい値電圧を低く設定したり、ＭＯＳＴのゲート酸化膜厚を薄膜化する必要があるが、これらによってサブスレッショルドリーク電流による電力消費Ｐslやゲートリーク電流による電力消費Ｐglが指数関数的に増加するからである。
【００１１】
上記課題があるものの、負荷の充放電による電力Ｐacの削減には従来例１による方法が最も効果的であり、広く用いられている。しかし、上記理由により、従来例１及び従来例２に記載されているように上記電力消費ＰslやＰglは年々増加している。
【００１２】
上記電力消費ＰslとＰglの増加の課題に対しては、従来例３から従来例４による方法が提案されている。しかし、これらの方法ではチップの待機時の上記電力消費ＰslやＰglは削減できるが、動作時の上記電力消費ＰslやＰglは削減できない。したがって、サブスレッショルドリーク電流やゲートリーク電流による電力消費Ｐsl，Ｐglが、負荷の充放電による電力Ｐacに対して無視できる量であれば、上記電力Ｐacが零に近くなる待機時のみ上記電力消費ＰslやＰglを削減すればよい。この場合、従来例３から従来例５の方法が有効である。しかし、上記リーク電流による電力消費ＰslやＰglが上記充放電による負荷の電力Ｐacに対して無視できないほど大きい場合には、上記電力消費ＰslやＰglが動作時のチップの消費電力に大きな影響を及ぼすことになり、従来例３から従来例５の方法を用いても消費電流を削減することができない。
上記した事実によって、Ｐac＋Ｐsl＋Ｐglで示されるチップの消費電力は年々増加している。
【００１３】
更に、将来のシステムＬＳＩの設計においては、各種のＩＰを用いて、これを組み合わせてシステムＬＳＩを設計していく。この場合、各々のＩＰそのものには設計者は立入ることがなく設計できることが望ましい。また、微細化の進展に伴い、一定のチップ面積、例えば８ｍｍ□（８×８ｍｍ２）のチップに搭載できるＩＰの数は増えつづけることになり、まさしくシステムがひとつのチップに載ることになる。この時、設計者はシステム全体の挙動を把握し対処することは極めて困難となる。よって、ひとつひとつのモジュールが自立分散的に、かつ周囲と対応しながら動作する仕組みが必要となってくる。さらに、特定の部分のみ他の設計資産と設計途中で替えたり、或いは設計後にある回路ブロックの仕様が異なりその部分のみを取り替えることが必要となってくる。
【００１４】
そこで、本発明の目的は、多種多用なＩＰをオンチップにした場合に自立分散的に低電力化を図ることが可能な、システムＬＳＩ等の半導体装置を提供することにある。
【課題を解決するための手段】
【００１５】
上記目的を達成するため、本発明においては、以下の技術的手段を採用する。
ＩＰ又は回路ブロック（以下、代表して単に「回路ブロック」と呼ぶ）に、予測回路と電力状態制御回路を設ける。すなわち、予測型の電源遮断、或いは電源電圧変更、或いは周波数変更回路を付加するものである。
【００１６】
これによって、各々の回路ブロックは自立分散的に低電力な動作状態を取ることができるようになる。よって、一部を取り替えたりも容易にできる、また、それらをまとめた全体或いは部分的な回路ブロックの塊に対して低電力を目指した制御を与えることもできる。
【００１７】
さらに、これらの低電力状態は、学習によって、その時の状態に応じて、或いは他からの方向付けによって変えていくことができる。これによって、設計可能な工数で、拡張性に富み、低電力かつ高性能な、システムＬＳＩ等の半導体装置を実現できる。
【発明の効果】
【００１８】
本発明によってシステムＬＳＩを構成する各回路ブロックは、自立分散的に電力状態の小さな状態へ移行できる。また、これらの状態への遷移は学習によって変更することができる。これによって、設計可能な工数で、拡張性に富む低電力かつ高性能なシステムＬＳＩ等の半導体装置を実現できる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明に係る半導体装置の好適な実施形態について、添付図面を参照しながら実施例を用いて説明する。
【００２０】
＜実施例１＞
本発明での予測型の電源遮断、或いは電源電圧変更、或いは周波数変更回路は図１に示すブロック構成例によって実現する。なお、ここでは基本構成を示しており、各ブロック内の具体的な構成例に応じて必要となったりするクロック信号線、制御信号線、等は省略してある。
【００２１】
図１において、参照符号Ｋは論理回路ブロック、Ｄは電力状態制御回路であり、この電力状態制御回路Ｄは論理回路ブロックＫと電源ＶＤとの間に挿入され、論理回路ブロックＫの電力状態を電力状態制御回路Ｄ自身の状態によって、もしくは論理回路ブロックＫの状態を変えて制御する。このように、論理回路ブロックＫに、予測回路Ｐと電力状態制御回路Ｄを付加して構成した回路ブロックの単位を、後述する実施例では、予測型電力制御付き論理回路ブロックと呼ぶ。
電力状態制御回路Ｄは、予測回路Ｐによって制御される。予測回路Ｐは、論理回路ブロックＫへの入力Ｉをその入力のひとつとし、入力Ｉの状態に応じて電力状態制御回路Ｄを制御する。
【００２２】
このように構成することにより、予測回路Ｐによって入力Ｉの情報に基づいて論理回路ブロックＫの電力状態を、電力状態制御回路Ｄによって制御できる。例えば、入力Ｉへ有効な情報が一定時間現れない場合は、論理回路ブロックＫの電力状態として、より低電力な状態へ移行させることができる。しかも、これがシステム全体を管理する何らかの演算装置とは独立に行うこともできる。電力状態制御回路Ｄは、後に詳細に述べるが、例えば下記のような機能を持っている。
（１）論理回路ブロックＫと電源ＶＤを接続するか否かを制御する。
（２）論理回路ブロックＫへ供給する電源電圧の値を制御する。
（３）論理回路ブロックＫへ供給するクロックの周波数の値を制御する。
（４）上記（１）から（３）の組み合わせ。
【００２３】
＜実施例２＞
図２は、論理回路ブロックＫ１と電源ＶＤとの接続を、予測回路Ｐ１で制御される電力状態制御回路Ｄ１を用いて行う場合の実施例である。予測回路Ｐ１と論理回路ブロックＫ１には、クロックＣＬＫが入力する。ここでは、論理回路ブロックＫ１は、入力Ｉと接続されｍクロック分の入力情報を一旦蓄えるレジスタＲＧと、実際の演算を行う機能ブロックＫＢとに分けられる。なお、出力Ｏ側にもレジスタを設ける場合もある。
【００２４】
予測回路Ｐ１は、クロックＣＬＫをカウントするカウンタＣＴと、電力状態制御回路Ｄ１を制御する制御手段ＰＤと、入力信号Ｉを検知し入力が来なくなった時に制御手段ＰＤへ信号を出力すると共にカウンタをリセットするＲＳＴ信号を出力する入力検知ＤＴと、制御手段ＰＤの出力とクロックとを比較してレジスタＲＧを制御するコンパレータＣＰとから構成される。ここで、制御手段ＰＤは、カウンタＣＴ及び入力検知ＤＴの両出力のＡＮＤを取り電力状態制御回路Ｄ１を制御する。また、カウンタＣＴではクロックをカウントするが、ｎクロックで出力が変化して制御手段ＰＤに伝える。並行して、コンパレータＣＰでもクロックをカウントし、ｍクロック分カウントした時の制御手段ＰＤの出力により、論理回路ブロックＫ１内のレジスタＲＧを制御する。
【００２５】
論理回路ブロックＫ１と電源ＶＤとの接続を行う電力状態制御回路Ｄ１は、例えば図２に例に示したようなｐチャネル形ＭＯＳＴであれば良い。このｐチャネル形ＭＯＳＴを遮断するには、ゲート信号をソースに接続されている電源ＶＤの電圧よりも同じか高くすれば良く、導通させるにはゲート信号をソースに印加されている電源ＶＤの電圧よりもこのＭＯＳＴのしきい値電圧以上に低くすれば良い。
【００２６】
また、この時、このＭＯＳＴのゲート酸化膜の厚さは論理回路ブロックＫ１を構成するＭＯＳＴのゲート酸化膜よりも厚くすれば、従来例５で述べたような論理回路ブロックＫ１で流れるゲートリーク電流を押えることができる。また、この両者のＭＯＳＴのしきい値電圧は同じでも良いし、電力状態制御回路Ｄ１中のＭＯＳＴの方のしきい値電圧の絶対値を、論理回路ブロックＫ１中のＭＯＳＴの方のしきい値電圧の絶対値よりも高くしてもよい。高くすると、より小さなサブスレッショルド電流とすることができる。このしきい値電圧の差は、ゲート長を変えたり、チャネル領域の不純物濃度を変えることで実現できる。両回路中のＭＯＳＴが同じしきい値電圧の場合は、電力状態制御回路Ｄ１中のＭＯＳＴのゲート電圧をソース電圧よりも高くすることでも小さなサブスレッショルド電流が実現できる。
【００２７】
この実施例の動作例を、図１８および図１９に示す。
図１８は、入力Ｉからデータが入力され機能ブロックＫＢが動作している電力大の状態から、データが来なくなった時に電源ＶＤと機能ブロックＫＢとを遮断することによって機能ブロックＫＢを電力小の状態にする場合の動作である。
【００２８】
まず、入力Ｉにデータが来なくなる（ステップＳ１０）。
すると、予測回路Ｐ１内の入力検知ＤＴが動作し、これを検知して制御手段ＰＤへ出力を出すと共に、ＲＳＴ信号によってカウンタＣＴをリセットする（ステップ１１）。
カウンタＣＴではここからクロックをカウントし、予め定めた数であるｎ個に達すると、達したという信号を制御手段ＰＤへ送る（ステップＳ１２）。
次に、制御手段ＰＤではこの２つの状態、入力検知ＤＴがデータが来なくなったことを検知し、かつ、その後クロックがｎ個来たというカウンタＣＴの判断とを受けて、電力状態制御回路Ｄ１を遮断状態とする。つまり、電源ＶＤと機能ブロックＫＢとを電気的に絶縁する（ステップＳ１３）。ここで、ｎはデータが来ない状態がどのくらい長く続くかを見込むクロック数である。その設定の方法については、図２０で後述する。
【００２９】
図１９は反対に、電源ＶＤと機能ブロックＫＢとが遮断された電力小の状態から、データが入力されて機能ブロックが動作し、電力大の状態に移行する場合の動作である。
【００３０】
まず、入力Ｉにデータが来る（ステップＳ２０）。
すると入力検知ＤＴが動作し、データ入力を検知して制御手段ＰＤへ出力を出す（ステップＳ２１）。
制御手段ＰＤはこれを受けて、電力状態制御回路Ｄ１を導通状態とする。これで機能ブロックは動作可能な状態へと移行を始める（ステップＳ２２）。
制御手段ＰＤの出力変化に伴いコンパレータＣＰではクロックのカウントを始め、予め定めた数であるｍ個に達すると、論理回路ブロックＫ１中のレジスタＲＧへ信号を送る（ステップＳ２３）。
レジスタＲＧには、ｍクロック分のデータが蓄積されており、このコンパレータＣＰからの信号を受けて、機能ブロックＫＢへデータを転送し始め、機能ブロックでは所望の演算が行われていく（ステップＳ２４）。ここでｍは、電力状態制御回路Ｄ１を導通状態としてから、機能ブロックＫＢが動作可能な状態になるまでに必要なクロック数であり、例えば１である。
【００３１】
このようにして入力Ｉに現れるデータに応じて機能ブロックＫＢと電源ＶＤとの間の接続を制御することによって、他の制御信号無しに、自立分散的に必要に応じて電力が小さな状態と大きな状態とを取ることができる。データが常に送りつづけられるのではない一般の応用では低電力となる。
【００３２】
次に、このｎの設定の仕方を図２０を用いて述べる。ｎは、データ無しの状態で電力状態制御回路Ｄ１を導通させたままにしておくクロック数である。データはクロックＣＬＫに同期して送られてくるが、常に一定の割合で送られてくるのではなく、一般にクロックに対して間欠的である。しかし、データの塊の大きさとそれらの間隔には特有の値を取ることが多い。
【００３３】
データが来ない間隔に着目し、ある命令或いは動作の中でデータとデータの切れ目は、クロック数の長い部分を取り出すと図２０（ａ）にデータ時系列例を示すように、ｇ１，ｇ２，ｇ３，ｇ４，ｇ５，ｇ６であり、その平均値をｇクロック、分散をＭクロックとすれば、ｇクロック前後（ｇ±Ｍクロック）である。例えば、１０クロック前後(１０±２クロック)である。もちろん、データが来ない状態が数クロックのみの場合もあるが、データが来ないクロック数の多い部分におけるクロック数の分布に着目すれば良い。ここでは、それが１０クロック前後である。
【００３４】
この時、この１０クロック前後の領域（例えば、１５クロック以上の領域）を越えると、それは命令が切り替わったことを意味し、例えば２００クロックはデータが来ない。このような場合には、図２及び図１８で説明したｎの値を１０又は１２に設定してやれば良い。
【００３５】
こうすることによって、データがこなくなっても１０又は１２クロックは待つため、次のデータが来たときに機能ブロックＫＢは動作可能となっている確率が高く、速度の劣化が小さい。また、電力状態制御回路Ｄ１を動作させるには、その動作のために電力が必要なため、あまり細かに制御すると反って電力が増大してしまう。よって、１０クロック前後待つ間にデータが来る確率が高いのであれば電力状態制御回路Ｄ１は導通のままのほうが望ましい。一方、１０クロック前後待ってもデータがこなければ、このまま２００クロックの間データが来ない確率が高い。この場合は、クロックをカウントしていたカウンタＣＴが制御手段ＰＤへ設定値に達した出力を送り、電力状態制御回路Ｄ１を遮断状態にする。よって、この２００クロックの間、動作電流を流さないのはもちろんのこと、リーク電流もカットする。
【００３６】
図２０（ｂ）に示す別のデータ時系列例では、データ無しの状態がｇ１，ｇ２，ｇ３のようにｇクロック前後である命令や演算と、ｒ１，ｒ２のようにｒクロック前後（ここで、ｒは平均値とする）である命令や演算がある場合である。この時は、後にも他の例を説明するが、ｒクロック前後であることを図２の予測回路Ｐ１内の回路が判断して、カウンタＣＴの信号を取り出すサイクル数をｋに変える学習機能を設ければ良い。学習機能の実現方法には色々あるが、一例としては、過去のデータ無しのクロック数を例えば１０回分を記憶し、この平均値が予め定めた平均値ｇとｋのどちらに近いかを大小比較で判断して、設定すれば良い。この予め定めたカウンタＣＴの信号を取り出すサイクル数は、ここではｇとｒの２つを示したが、もっと多数でも良い。
【００３７】
なお、本実施例では論理回路ブロックＫ１内にレジスタＲＧを介して機能ブロックＫＢへ入力データが転送される構成を示したので、予測回路Ｐ１から論理回路ブロックＫ１内のレジスタＲＧへのデータ転送起動信号を送る信号線（コンパレータＣＰからレジスタＲＧへの信号線）を設けたが、機能ブロックＫＢが動作可能な状態になるまでの速度がクロック周波数から決まる動作速度と比較して充分に短く、レジスタＲＧを省略することができる場合、もちろん図１に示した基本構成となることは明らかである。
【００３８】
＜実施例３＞
図３に電力が小さな状態を達成する他の実施例を示す。本実施例では電圧を制御する。
【００３９】
図３において、Ｖ１とＶ２は電力状態制御回路Ｄ１のゲートに印加する電圧信号線であり、予測回路Ｐ１内のスイッチによりいずれかに選択される。いずれにいつ接続するかは、入力Ｉへのデータ入力状況とクロックＣＬＫとからスイッチ制御回路ＰＳにて決定し、制御する。例えば、電圧信号線Ｖ１がＶ２より高い電圧信号だとすると、データが入力している時には電圧信号線Ｖ１が電力状態制御回路Ｄ１内のＭＯＳＴのゲートに入力するように、スイッチが選択される。電力状態制御回路Ｄ１内のＭＯＳＴをｎ形ＭＯＳＴとすると、論理回路ブロックＫ１内の機能ブロックＫＢにはこれよりもしきい値電圧分だけ低い電圧が印加されることとなる。
【００４０】
一方、データが来ないときには、一定のクロック数後、電圧信号線Ｖ２が電力状態制御回路Ｄ１内のＭＯＳＴのゲートに入力する。同様に機能ブロックＫＢにはこれよりもしきい値電圧分だけ低い電圧が印加されることとなるが、電圧信号線Ｖ２はＶ１よりも低い電圧であるため、この機能ブロックＫＢに印加される電圧も、電圧信号線Ｖ１が電力状態制御回路Ｄ１内のＭＯＳＴのゲートに入力する場合よりも低い電圧となる。従来例で説明したように、低い電圧では負荷の充放電による電力Ｐacは小さい。よって、電圧信号線Ｖ２が電力状態制御回路Ｄ１内のＭＯＳＴのゲートに入力する場合が電力が小さい状態である。電圧信号線Ｖ１からＶ２への移行及びその制御方法は、図２の実施例において、電圧信号線Ｖ１を選択した場合が図２の電力状態制御回路Ｄ１の導通状態、電圧信号線Ｖ２を選択した場合が図２の電力状態制御回路Ｄ１の遮断状態と読み替えることによって同様な方法で達成できる。この図３の例において、電力状態制御回路Ｄ１内のＭＯＳＴの酸化膜厚を論理回路ブロックＫ１を構成する酸化膜厚よりも厚くし、リーク電流を小さくすることもできる。しきい値の設定方法も図２と同様の効果がある。また、電圧信号線Ｖ１又はＶ２或いは両方を、動作のモードに応じて電圧設定を変えても良い。ここでモードに応じて変えるとは、例えば、通常動作モードというものを設定し、この場合は電圧信号線Ｖ１に１．２Ｖ、電圧信号線Ｖ２に０．９Ｖを印加するが、低電力モードというものを設定し、電圧信号線Ｖ１に０．９Ｖ、電圧信号線Ｖ２に０．７Ｖを印加するような例である。
【００４１】
＜実施例４＞
図４に電力が小さな状態を達成するまた別の実施例を示す。本実施例では周波数を制御する。すなわち、論理回路ブロックＫ１に入力するクロックＣＬＫの周波数を変更する。そのために本実施例では電力状態制御回路Ｄ１は、分周比が変えられる分周器となる。電源は別途印加される。本実施例は、図１に示した基本構成を変形した形であるが、電力状態を変えるという機能単位では同様である。
【００４２】
ここでは、図２の電力状態制御回路Ｄ１導通状態が、クロックＣＬＫを分周比が小さい分周器ＤＶを通した結果を論理回路ブロックＫ１内のクロックとして用いる場合であり、図２の電力状態制御回路Ｄ１遮断状態が、クロックＣＬＫを分周比が大きい分周器ＤＶを通した結果を論理回路ブロックＫ１内のクロックとして用いる場合である。前者の方が、後者よりも論理回路ブロックＫ１のクロック周波数が高い。前者は、クロックＣＬＫの周波数をそのまま伝えることも含む。従来例で説明したように、負荷の充放電による電力Ｐacはクロック周波数に比例する。よって、後者の方が消費電力が小さな状態である。
【００４３】
予測回路Ｐ１内には、入力Ｉにデータが入力されたか否かを検出し、クロックをカウントして分周器を制御する入力検出・クロックカウント回路ＤＴＣと、図２の実施例の動作で説明したようなクロック数設定を格納しておくための設定レジスタＲＧＳとから構成される。
【００４４】
論理回路ブロックＫ１に入力するクロック周波数の切り替え及び制御は、上記した図２との対応関係を元に図２での場合と同様である。すなわち、図２で入力検知ＤＴと制御手段ＰＤとで入力Ｉのデータ有無とそのクロック数から電力状態制御回路Ｄ１中の遮断用ＭＯＳＴの切り替えをしたように、図４ではひとまとめに入力検出・クロックカウント回路ＤＴＣと表した部分で、入力Ｉのデータ有無とそのクロック数から電力状態制御回路Ｄ１中の分周器の分周の度合いを切り替えとすればよい。
【００４５】
図４において、論理回路ブロックＫ１への電源は一定電源を用いても良いし、図３で説明したような可変な方法でも良く、また、図２に示したように電源との間に導通／遮断動作ができるスイッチを設けても良い。これによって、リーク電流も低減できる。
【００４６】
＜実施例５＞
図５では、図１に示した基本構成ブロックが複数個ある場合に、予測回路Ｐの制御に前段の回路から起動をかける方式である。すなわち、論理回路ブロックＫ−２で動作が始まると、次段の予測回路Ｐ−１に対してＲＥＱ信号を出し、次段の電力状態制御回路Ｄ−１への起動を準備させる。次段の予測回路Ｐ−１は、電力状態制御回路Ｄ−１を起動して次段の論理回路ブロックＫ−１が動作可能な状態になったら、ＡＣＫ信号を前段の論理回路ブロックＫ−２へ返す。論理回路ブロックＫ―２はこのＡＣＫ信号を受け取ると、次段の論理回路ブロックＫ−１へデータの転送を始める。このように前段の論理回路ブロックＫ−２関連と次段の論理回路ブロックＫ−１関連とが、ＲＥＱ信号とＡＣＫ信号を交わしながら動作状態を確かめてから、データの授受を行う。
【００４７】
なお、図２〜図４では論理回路ブロックＫ（ここでは、図５におけるＫ−２，Ｋ−１，Ｋをまとめて表現している）内では入力側にレジスタを置いたが、このような構成では出力側におくのが良い。
【００４８】
以上の説明で動作可能な状態とは、図２のシステムで言えば電力状態制御回路Ｄ（Ｄ−２，Ｄ−１，Ｄをまとめて表現している）が導通した状態であり、図３のシステムで言えば論理回路ブロックＫ（前記、まとめた表現）に対してより高い電源電圧が印加された状態であり、図４のシステムで言えばより高い周波数のクロックが論理回路ブロックＫ(前記、まとめた表現)に入力された状態である。
【００４９】
＜実施例６＞
図６において、ＫＫ１，ＫＫ２，…，ＫＫ３は、図２、図３、図４に示した基本構成の単位を表したものである。すなわち、例えばＫＫ１には、図２で示した予測回路Ｐ１、電力状態制御回路Ｄ１、論理回路ブロックＫ１が含まれた予測型電力制御付き論理回路ブロックである。他も同様である。ＡＡ１およびＡＡ２はこれらの予測型電力制御付き論理回路ブロックＫＫ１〜ＫＫ３を含み自立分散的に制御できる処理回路である。ＡＡ３は予測型電力制御付き論理回路ブロックＫＫ１〜ＫＫ３を含まない処理回路であり、ＣＰＵからの制御信号により制御される。
【００５０】
システムＳＫは、これらの処理回路ＡＡ１〜ＡＡ３を含んで構成され、ＣＰＵから送られて来る入力ＩＮが処理回路ＡＡ１に入力されて処理回路ＡＡ２，ＡＡ３を介して出力データＯＵＴＳが得られるシステムＬＳＩである。なお、ＣＰＵは処理回路ＡＡ１〜ＡＡ３から構成されるシステムＬＳＩと同じチップ上にあっても良いし、あるいは別チップ上にあっても良い。
【００５１】
本実施例では、ＣＰＵはシステムＳＫの全体を制御する。また、上記入力ＩＮは、ＣＰＵに入力されたデータ又は命令ＩＮＳをＣＰＵで処理して送られてきたデータ又は命令である。ＣＰＵからの制御信号ＣＣは、処理回路ＡＡ１とＡＡ３に入力され、処理回路ＡＡ２には入力されていない。この制御信号ＣＣは、処理回路ＡＡ１のすべての予測型電力制御付き論理回路ブロックＫＫ１〜ＫＫ３に入力されていても良いし、処理回路ＡＡ１の図に示したように、予測型電力制御付き論理回路ブロックＫＫ１とＫＫ３だけというように一部のみに入力されていても良い。或いは、予測型電力制御付き論理回路ブロックＫＫ１〜ＫＫ３のいくつかのグループ毎に専用信号となっていても良い。
【００５２】
この実施例において、処理回路ＡＡ１では予測型電力制御付き論理回路ブロックＫＫ１〜ＫＫ３は、図２、図３、図４で説明したように、これに入力するデータの状態によって電力状態を変える。また、処理回路ＡＡ２でも予測型電力制御付き論理回路ブロックＫＫ１〜ＫＫ３は入力するデータの状態によって電力状態を自立分散的に変える動作を行う。更に加えて、この実施例では、ＣＰＵは、制御信号ＣＣを介して、処理回路ＡＡ１内の予測型電力制御付き論理回路ブロックＫＫ１〜ＫＫ３に入力され、予測型電力制御付き論理回路ブロックＫＫ１〜ＫＫ３の電力状態をも管理することに特徴がある。すなわち、ＣＰＵからの条件の中で、図２、図３、図４で説明したような動作を行うのである。
【００５３】
ここで、ＣＰＵからの条件とは、例えば、図４の周波数変更により電力状態を制御する場合であれば、ＣＰＵが、予測型電力制御付き論理回路ブロックＫＫ１〜ＫＫ３および処理回路ＡＡ１，ＡＡ２，ＡＡ３の全体の処理量を見て低い周波数には容易には移行できなくすることである。これは例えば、クロック数の設定の中心値を、ＣＰＵ側でシステム全体の処理量を検知して決定、或いはソフトからの指示によって決定するようにすればよい。
【００５４】
図２の電源遮断により電力状態を制御する場合であれば、同様にＣＰＵが全体の処理量を見て、電源遮断には容易には移行できなくすることであり、これは例えば、入力データが来なくなってから電源遮断するまでに必要なクロック数を設定する際にその下限値をＣＰＵ側でシステム全体の処理量を検知して決定、或いはソフトからの指示によって決定すればよい。
【００５５】
また、図３の電圧を切替え制御する場合であれば、ＣＰＵが同様に全体の処理量を見て低い電圧には容易には移行できなくすることであり、これは例えば、入力データが来なくなってから低い電圧に移行するまでに必要なクロック数を設定する際にその下限値を、ＣＰＵ側でシステム全体の処理量を検知して決定、或いはソフトからの指示によって決定すればよい。
【００５６】
これによって、ローカルには最適な状態となっていても、全体としては望ましい方向では無いという場合が生じることを回避できる。また、設計者はＣＰＵでの制御部分のみを低電力化目指して設計すれば、それよりも細かなブロックについては、図２、図３、図４で説明した方法で低電力化できるので、高い低電力化率をあげながら、設計効率も上げることができる。
【００５７】
＜実施例７＞
図７は、電力制御を過去の履歴又は予め定めた方法と比較しながら予測する実施例である。ここでは、ＣＰＵに入力されたデータ又は命令ＩＮＳがプログラムカウンタＰＣに来ると、プログラムカウンタＰＣにおいては、過去の履歴又は予め定めておいた制御が格納されているテーブルＴＢＬを参照してこのデータ又は命令を解読し、最小の電力で最大の性能を引き出せるようなパタンを抽出する。このパタンに従って、ここでは省略して現したが、回路ブロックＫ１〜Ｋｍとその電力制御回路Ｄ１〜Ｄｍを制御する。制御の仕方としては、多くの回路ブロックからここで示した回路ブロックを抽出する、時間的な活性化順を設定する、ここで各回路ブロックが複数の電力状態を取れる場合はこれも含めて設定する、或いは、テーブルを参照し、使う確率の低い回路ブロックを電力のより小さい状態へ移行させるなどを含む。
【００５８】
また、テーブルＴＢＬは過去の履歴で更新することができる。このデータはすべてチップ上に置くこともできるし、一部をＲＯＭとしてチップ上に置き、一部をソフトからＲＡＭにロードして設定することもできる。或いは、書き換え可能な不揮発性メモリを搭載し、これにすべて或いは一部を格納することもできる。また、テーブルを参照して該当回路ブロックの電力状態変える、また、このテーブルを参照した設定内容を踏まえつつ、各回路ブロックにおいては図２〜図５に示したような動作を行うこともできる。また、さらに図６に示したようにシステム全体を一定の条件に制御する方法と併用することもできる。
【００５９】
＜実施例８＞
図８は、ＣＰＵに入力される命令又はデータＩＮＳ内に電力制御情報を含ませる場合の実施例である。この場合には、命令中に電力制御情報を含むが、この電力制御情報を先行処理する電力制御プリデコーダＰｒｅＤＥＣを備えており、この結果をラッチＬＰを介して、処理を行う回路ブロックＩＰへ送る。
【００６０】
通常の命令部分は命令バッファＩＱにまず送られ、ラッチＬＣを介して、命令デコーダＩＤにて、使うべき回路ブロックＩＰに適したように解読される。この結果が各々の回路ブロックＩＰへ入力ＩＮとして送られる。この時、これらの回路ブロックには、既にプリデコーダＰｒｅＤＥＣの結果が送られており、電力制御が行われる。これにより、各回路ブロックＩＰでは、複数有る電力状態から必要な状態が選ばれる。
【００６１】
このようにすることで、複数の回路ブロックＩＰを低電力化の観点から制御でき、例えば、多数ある回路ブロックのうち、予め動作する回路ブロックのみを活性化することができる。この方法も、図７で説明したように、これまでの他の実施例と組み合わせて用いることができる。なお、図７および図８で命令といった場合、ライン単位、ブロック単位、サブルーティン単位などを考えることができる。
【００６２】
＜実施例９＞
次に、本発明を具体的な応用に適用した場合の新たな実施例について述べる。
図９は、本発明を適用する動画像処理回路ブロックの例である。動画像処理回路ブロック９０のインタフェース＆全体制御部９１は、図には示していないがホストのマイクロコンピュータ、或いはこの回路ブロック９０が接続されるバスとの接続を制御し、またこの回路ブロック全体を制御実行する回路である。メモリコントローラ９２は、この回路ブロックが使用するメモリを制御する回路である。このメモリは、オンチップの場合もあれば、一部或いはすべてオフチップの場合もある。例えば、この動画像処理回路ブロック９０が外付けのＳＤＲＡＭ（Synchronous DRAM）を用いる場合は、このメモリコントローラ９２はＳＤＲＡＭを制御する。
【００６３】
また、図９において、ＶＬＤは入力したビットストリームのコードの復号を行う可変調復号器、ＩＱは量子化されている信号を元の信号にする逆量子化器、ＩＤＣＴは圧縮処理でよく利用される離散コサイン変換（DCT：Discrete cosine transform）の逆処理を行う逆離散コサイン変換器、ＭＣは動き補償回路、ＤＩＳＰは表示処理を行う表示器である。個々の機能及び処理内容については、Ｈ２６１，ＭＰＥＧ１〜４（ＩＴＵ−Ｔ勧告）或いはＩＳＯ１３８１８、ＩＳＯ１１１７２のＩＳＯ勧告に記載されているので説明は省略する。
【００６４】
図１０に、表示処理部分を除いた図９に示した動画像処理回路ブロック９０の動作を示す。１秒間にａフレームの動画像を処理する場合である。各画像フレームは一般的に複数の画素グループ（例えば、グループ数をｂとする）に分割され、その画素グループ単位に信号処理を行うが、各画素グループ毎に、可変調復号器ＶＬＤ→逆量子化器ＩＱ→逆離散コサイン変換器ＩＤＣＴ→動き補償回路ＭＣの順に各処理が行われる。
【００６５】
この時、図に示したように、可変調復号器ＶＬＤにおいてひとつの可変調復号処理が終わると、次の画素グループが来るまで可変調復号処理はオフ（OFF）とすることができる。従って、本発明を用いれば、このようなOFF期間を自動的に検知（予測）して、可変調復号処理器ＶＬＤの回路ブロックを低電力状態に移行することができる。
【００６６】
また、この図には示していないが、実際の動作ではパイプライン的に動作させるため、ある画素グループの可変調復号処理が終わり、逆量子化器ＩＱへデータが移ると、次の画素グループのデータが可変調復号処理器ＶＬＤに入力される。所謂、パイプライン動作が行われる。この場合、各処理回路ブロックＶＬＤ，ＩＱ，ＩＤＣＴ，ＭＣの必要処理時間は各々異なるため、本発明を用いれば終わった部分から自動的に低電力状態へ移行していく。
【００６７】
また、ｂ個のすべての画素グループの処理が終わるのに必要な時間は、この画素フレームの処理に割り当てられている処理時間ａ分の１秒よりも短くて済む場合もある。この時も、本発明を用いればこの状態を自動的に検知（予測）して、電力の低い状態（即ち、電源スイッチを切る、印加電圧を下げる、入力される周波数を下げる）へ移行することができる。
【００６８】
また、図７で説明したように、このような動作を行うときの過去の履歴或いは予め設定した方法に従って電力状態を制御したり、図８に説明したようにこれらを実行する命令の中に電力を制御する内容を含ませて制御することもできる。
【００６９】
＜実施例１０＞
図１１は、図２に示した電源スイッチＤ１と機能ブロックＫＢの制御を例題に、遮断するためのクロックサイクル数を自動更新（学習）させるための回路ブロック例である。
【００７０】
図１１において、予測回路Ｐ１内に設けた判定回路ＤＣＳは、シャットダウンサイクル数バッファＢＦの値を参照して、入力されるクロックＣＬＫと入力Ｉに現れる入力データを検知する入力検知ＤＴの結果Ｆ１から、電力状態制御回路（この場合は、電源スイッチ）Ｄ１を遮断することを制御する回路である。
【００７１】
この判定回路ＤＣＳの働きは、図１２を用いて後で述べる。シャットダウンサイクル数バッファＢＦからは、シャットダウンまでのサイクル数ｎの指示がクロックカウンタＣＴに入る。クロックカウンタはクロックＣＬＫをカウントし、この指示でのサイクル数ｎに一致するとシャットダウン信号Ｃ１を出す。ＯＲ回路では、入力検知ＤＴからの入力データ検出結果Ｆ１と、クロックカウンタＣＴからのクロック数カウント結果すなわちシャットダウン信号Ｃ１とを受けて、そのＯＲ論理の結果をフリップフロップＦＦで受けた結果が、電源スイッチＤ１に入力され、機能ブロックＫＢを制御する。なお、入力検知ＤＴは、クロックに同期して動作し、データが検出されたらサイクル数をカウントするクロックカウンタＣＴに対してリセット信号ＲＳＴを出力する。
【００７２】
図１１の判定回路ＤＣＳの制御方法を図１２に示す。この判定回路は、まず、シャットダウン信号Ｃ１と、入力検知信号Ｆ１と、クロックＣＬＫとから、シャットダウンしてから次のサイクルが来るまでのサイクル数ｋを計測する（ステップＳ３０）。
【００７３】
次に、このサイクル数ｋと、クロックカウンタＣＴに格納されている現在のシャットダウンまでのサイクル数ｎとを比較する（ステップＳ３１）。
【００７４】
この時、格納されているｎがｋ以上であれば、格納されているｎとシャットダウン数の下限値Ｌとの比較を行い（ステップＳ３２Ｌ）、格納されているｎが下限値Ｌよりも大きければ、格納されているｎを１だけ減じ（ステップＳ３３）、１だけ減じたｎをシャットダウンサイクル数バッファＢＦへ書き込む（ステップＳ３４）。格納されているｎが下限値Ｌよりも小さければ、現在格納されているｎを、上記バッファＢＦへ書き込む（ステップＳ３４）。この場合は、そのままの値とすればよいので、書き込む必要がないとしても良い。
【００７５】
ステップＳ３１において、格納されているｎがｋよりも小さいならば、ｎとシャットダウン数の上限値Ｈとの比較を行い（ステップＳ３２Ｈ）、格納されているｎが上限値Ｈよりも小さければｎを１だけ増加させ（ステップＳ３３Ｈ）、１だけ増加させたｎをシャットダウンサイクル数バッファＢＦへ書き込む（ステップＳ３４）。ｎが上限値Ｈよりも大きければ、現在格納されているｎをシャットダウンサイクル数バッファＢＦへ書き込む（ステップＳ３４）。この場合も、そのままの値とすればよいので、書き込む必要がないとしても良い。
【００７６】
このようにすることによって、データが来なくなってからシャットダウンまでのサイクル数を自動更新させることができる。
【００７７】
同様なことは、一旦、シャットダウンしてから、再び活性化させるまでのクロック数を予測する場合についても組み立てることができる。例えば、図２１に示す構成で可能となる。この判定回路ＤＣＳの動作については、図２２に示した。  図２１の構成で、図１１と異なるのは、クロックカウンタＣＴでは更に、あるシャットダウンから次の入力が来るまでのサイクル数ｋをカウントし、その結果Ｃ２を出力するようにしている点である。なお、ｎはシャットダウンまでのサイクル数である。また図２２において、Ｈはシャットダウンサイクル数の上限値、Ｌはシャットダウンサイクル数の下限値であり、Ｓは効果的なシャットダウンサイクル間隔（実効シャットダウン間サイクル数）である。この実効シャットダウン間サイクル数Ｓは、シャットダウンによる低電力化の効果と、予測回路Ｐ１という制御回路を動作させることに伴う電力の増大との兼ね合いとから決定する。すなわち、この実効シャットダウン間サイクル数Ｓの値は実際の予測回路Ｐ１の電力及び、Ｓの期間シャットダウンしていた場合の低電力化の値とから決定する。もしシャットダウンの間隔が短か過ぎると、低電力化の効果よりも予測回路Ｐ１の電力が大きくなってしまう。
【００７８】
＜実施例１１＞
図１３に、図２又は図１１で電力状態制御回路Ｄ１による論理回路ブロックＫ１への電力制御の動作の実際を示す。この例では、電力状態制御回路Ｄ１によって論理回路ブロックＫ１への電力が供給される状態（電力状態制御回路Ｄ１が導通状態）をオンと示し、論理回路ブロックＫ１への電力供給なされないシャットダウンの状態（電力状態制御回路Ｄ１が絶縁状態）をオフと示した。
【００７９】
これが、図１３の最上部に示したクロックに従い、データの有る無しでどの様に変化していくかを、連続した時間変化のある部分を取り出した、Ｉ〜ＶIIの例で説明する。Ｉ〜ＶIIの途中に、図１１及び図１２で説明したようなデータが来なくなってからオフにするまでのクロック数を自己更新、すなわち学習する過程を挿入している。
【００８０】
ここでは、データが来なくなってから２クロックでオフする設定とする。図１８で言えば、ｎが２である。また、オフの状態から、データが再び来たとき、回路活性化させるために待つサイクル数は１とする。図１９で言えば、ｍが１である。
【００８１】
この初期設定において、まず、Ｉの状態では、データが来なくなってから２クロックでオフとなったが、それから６クロックはデータが無くその後再びデータが現れたとする。前回データが来なくなってからは８クロック分はデータが無かったことになる。これによって、６クロック分は電力の小さな状態となっていたことになる。
【００８２】
次の時間変化部分であるIIにおいては次のような状態であった。すなわち、データが来なくなってから３クロック休んで、次のデータが来た場合である。この時、今の設定状態では、２クロック来なければオフ状態となるので、オフ状態となった。しかしながら、それから１クロック置いて、次のデータが現れるのである。そのため、直ちに準備に入り、データが現れた１クロック後に、オン状態となる。よって、オフ状態は２クロック分となる。この２クロック分の休みは、有効な場合もあるが、そうでない場合もある。何故なら、これまでの実施例で述べてきたような動作を行うには、その電力状態制御回路Ｄ１が動作する必要があり消費電力が必要だからである。そのため、あまりオフ状態が短いような場合は遷移での電力消費を考えると低電力化の効果が薄れる場合がある。さらに付け加えると、復帰するのにｍクロックを必要とする（ここでの例では、１クロックとした）。この分だけ、そこでの処理は時間を取る。あまり短いオフ状態を挟むことは、低電力化の効果が薄れるのみでなく、速度の面でも劣化の影響が見えやすくなる。今後も、このような短いオフ状態を挟むことが続くようであれば、この設定は好ましくないことになる。今回は、この２回は少なすぎると、予測回路Ｐ１内の学習部分が判断し、この回数を変える場合を考える。
【００８３】
すなわち、図１３にて学習と示したように、３クロックの間データが無かったら、オフ状態へ移行すると判断したとする。
【００８４】
さて、次の時間変化部分IIIを見てみる。ここでは、予測が当り、データとデータの隙間が３クロックのみであった。今度は、次に移行しようとする前にデータが来るので、移行は起こらずオン状態が続く。これによって、短いオフを挟むことによる、制御回路動作の電力的及び速度的なオーバーヘッドは無くなる。
【００８５】
次の時間変化部分IＶでも、予測が当り、データとデータの隙間が２クロックであった。この場合もオフ状態へは移行せず、そのまま動作し続ける。
【００８６】
次の時間変化部分Ｖでは、いよいよ状態が変わり、データとデータの隙間が８クロックであった。この場合は、３クロックの間データが無いのを確かめてからオフ状態へ移行し、再びデータが来てから１クロックにて復帰するので、オフ状態の期間は６クロック分である。ここでは充分にオフの期間がある。今後、このような長い期間のオフが連続すると予測回路が判断したとする。
【００８７】
よって、次の学習の状態において、データが無くなってから、２クロック待ってデータが来なければ、オフ状態に移行すると変わる。
【００８８】
さて、次の時間変化部分ＶIにおいては、予測通り長い期間のオフ状態となるデータ列であり、ここではデータとデータの隙間が１０クロック分である。ここでは、２クロック分待ってデータが来なければオフ状態に移行と変わったために、オフ状態を９クロック取ることができる。
【００８９】
次の時間変化部分ＶIIにおいては、上記時間変化部分Ｖと同じくデータとデータの隙間が８クロックであるが、時間変化部分Ｖではオフ状態が６クロック分であったのに対して、今回は７クロック分とより長いオフ状態を達成できる。すなわち、学習によってより低電力化が達成できたのである。
【００９０】
この図１３では、１クロックのみ増減させる場合について述べたが、このクロック数はもちろん他の値でもよく、更に、学習へ移行するのに、前回の値と異なる場合が何回続けば移行するか等はシステムに応じて設定することができる。
【００９１】
図１４は、このような学習の頻度について説明する図面である。横軸は時間を示し、縦軸はシステムの電力である。図１４の(ａ)においては、最初に学習するのみであり、その後はその内容を保持する。すなわち、時刻ｔ１では、大きな電力を消費していたが、学習によって最適な状態に移行でき（図１３の例で言えばデータが来なくなってからオフするクロック数）、その後は、時刻ｔ２での状態のように小さな電力なっている。
【００９２】
一方、図１４の(ｂ)においては、第２の学習期間があり、時刻ｔ３で再び増加した電力を、学習によって、ｔ４では小さな電力としている。すなわち、ダイナミックに状態を変更し続けることができる。
図１４の(ｃ)は過去の学習結果又は定められた初期値をロードする場合である。すなわち、外部記憶又は内部記憶のテーブルを参照し、そこに記された低電力となる状態をロードし、ｔ２では電力が小さい状態を取る場合である。ロードした内容でその後進みつづける場合もあるし、この図に示したように更に学習を行って最適化を目指す場合もある。また、特定の回路ブロックでこれら全てを取る場合もあるが、例えば、システム全体として低電力となる状態をロードするが、その後、一部の回路ブロックではさらに学習をして状態を移行させる場合も有る。また、全体での学習のフェーズと特定の回路ブロックでの学習のフェーズが異なる場合もある。例えば、全体での学習はスイッチオンの時のみであり、その後は、特定の回路ブロックでの学習のみである。
【００９３】
このような学習結果、或いはロードすべき予め定められた初期値又は過去の学習の累積結果を格納する方法を図１５に示す。ここでは、チップ上の書き換え可能な不揮発性メモリの領域に格納する場合を示す。
【００９４】
図１５の（ａ）では、回路ブロックＩＰ１１〜ＩＰ３４に対してひとつの不揮発性メモリの領域Ｆを設置する場合、すなわちチップ上の１箇所に不揮発性メモリの領域Ｆ集中配置する場合である。これは、例えば、全体の低電力状態をテーブルとして持っておくような場合に効果がある。また、各回路ブロックＩＰ１１〜ＩＰ３４では、ＳＲＡＭ又はレジスタに格納し、最後の状態又は一定の期間で効果があった場合をこのＦの領域に書き込んだりもできる。
【００９５】
同図（ｂ）はこの不揮発性メモリの領域Ｆを各回路ブロックＩＰ１１〜ＩＰ３４に設けた場合、すなわち不揮発性メモリの領域Ｆを分散配置する場合である。もちろん、全ての回路ブロックがこの領域を備えておく必要はない。発明の趣旨は、各回路ブロック毎に過去の学習結果等を蓄える書き換え可能な不揮発性メモリ領域をもつことである。また、これらの内容の一部はこのシステムを必要としているソフトウエアに格納しておくこともできる。
【００９６】
＜実施例１２＞
本発明を用いれば次のような応用も可能である。近年発展が著しいプロセッサを並列に配置及び動作させ動作処理性能を向上させる方法である。
図１６において、状態Ａでは、周波数２ｆで回路ブロックａ１，ａ２，ｂ１，ｂ２が動作している。ここで回路ブロックａ１とａ２は、同じ機能の動作を行うプロセッサであり、並列処理にて処理性能を挙げている。回路ブロックｂ１とｂ２も同様である。このようなシステムおいても、入力するデータの量は変動する。よって、状態Ａよりも、処理必要量が小さい状態Ｂにおいては、例えば本発明を用いて、動作周波数を２ｆから半分のｆへ変更する。この時の電力にはＡＣ成分、即ちデジタル回路で言えば負荷容量の充放電に費やされる成分と従来例で説明した様なリーク成分とがある。周波数の高い領域ではＡＣ成分にリーク成分は隠れているが、同じ条件で動作させるこのようなシステムでは、周波数を下げるとこのリーク成分が顕著になってくる。
【００９７】
このような場合に、本発明を用いれば、各回路ブロックを別個にその状態を変えることができるため、例えば次のようにできる。すなわち、回路ブロックａ１とｂ１とを２ｆで動作させ、回路ブロックａ２とｂ２はリーク電流をカットした状態（ここでは待機と示した状態）としてしまう。これが状態Ｃである。このようにすれば、性能は一定であるが、動作させる回路の数が半分になるためリーク成分を図に示したように減らすことができ、全体としては低電力となる。
【００９８】
このように、これまでに挙げた実施例を組み合わせて、最適な電力状態となるように自立分散的に制御することによって、より良い性能をより少ない電力で達成することができる。
【００９９】
＜実施例１３＞
図１７は、本発明を用いたシステムを総括した説明図である。入力ＩＮから出力ＯＵＴを得るシステムＬＳＩを、基本ユニットＢＵを組み合わせて構築する。この基本ユニットＢＵとは、現在のシステムＬＳＩで用いられている言葉で言えば、ＩＰ、回路ブロック、回路モジュールである。これが、ひとつのＳｉ基板上に集積されたとき一般にシステムＬＳＩと呼ばれている。過去において、ひとつのシステムが載っていたボード上の部品をひとつのＳｉ基板上に載せたイメージである。
【０１００】
このシステムＬＳＩの設計においては、多種多様な設計の履歴を経た様々なＩＰを、設計者が取捨選択して集め、これからひとつのシステムを作り上げる。この結果、例えば０．１μｍ技術ノード時代を考えると、８ｍｍ□の上に殆ど全てのシステム、すなわち、システムコントローラ、メモリ、動画像圧縮伸張処理、音声処理、暗号処理、カメラ入力処理、無線通信プロトコル、有線通信プロトコル、周辺機器制御を集積化できる。これらを、多数のＩＰから組み上げる。
【０１０１】
こうなると、これらを制御する、例えば電力制御のみから見てみても、設計者は概略の制御は与えることができるとはいえ、製品を設計するときの非常に短い期間で細部にわたって最適化して設計することは殆ど不可能である。また、特定の部分のみを他の設計資産と設計途中で変えたり、或いは設計後にある回路ブロックの仕様が異なりその部分のみを取り替えることも必要になってくる。
【０１０２】
しかしながら、本発明によれば、各々の基本単位ＢＵ（回路ブロック）として予測型電力制御付き論理回路ブロックを用いることにより、自立分散的に低電力な動作状態を取ることができる。よって、設計者が細部に入り込む必要はない。また、一部を取り替えたりも容易にできる。また、それらをまとめた全体或いは部分的な回路ブロックの塊に対して、低電力を目指した制御を与えることもできる。さらに、これらの低電力状態は、学習によって、その時の状態に応じて、或いは他からの方向付けによって電力状態１（電力大の状態）と電力状態２（電力小の状態）とを変えていくことができる。このようにして、本発明を用いれば、設計可能な範囲で、拡張性に富み、低電力かつ高性能なシステムＬＳＩを実現できる。
【０１０３】
以上、本発明の好適な実施例について説明したが、本発明は上記実施例に限定されるものではなく、本発明の精神を逸脱しない範囲内において、種々の設計変更をなし得ることは勿論である。
【図面の簡単な説明】
【０１０４】
【図１】本発明の第１の実施例を示す基本構成のブロック図である。
【図２】本発明の第２の実施例の回路構成を示すブロック図である。
【図３】本発明の第３の実施例の回路構成を示すブロック図である。
【図４】本発明の第４の実施例の回路構成を示すブロック図である。
【図５】本発明の第５の実施例の回路構成を示すブロック図である。
【図６】本発明の第６の実施例の回路構成を示すブロック図である。
【図７】本発明の第７の実施例の回路構成を示すブロック図である。
【図８】本発明の第８の実施例の回路構成を示すブロック図である。
【図９】第９の実施例を示す図であり、本発明を適用する動画像処理装置ブロックの図である。
【図１０】図９に示した動画像処理装置ブロックの動作図である。
【図１１】本発明の第１０の実施例の回路構成を示すブロック図である。
【図１２】図１１に示した予測回路の制御方法を示す動作フロー図である。
【図１３】第１１の実施例を示す図であり、学習を組み込んだ動作フロー図である。
【図１４】学習を組み込んだ場合の学習の頻度について説明するための図である。
【図１５】本発明に用いる書き換え可能な不揮発性メモリの配置図である。
【図１６】第１２の実施例を示す図であり、並列に配置動作させるプロセッサに本発明を適用した場合の電力低減を説明するための図である。
【図１７】第１３の実施例を示す図であり、本発明を用いたシステムを総括した説明図である。
【図１８】図２に示した構成で、データ入力がなくなり電力大の状態から電力小の状態に移行する場合の動作フロー図である。
【図１９】図２に示した構成で、電力小の状態から、データが入力されて電力大の状態に移行する場合の動作フロー図である。
【図２０】データ時系列の例を示す図である。
【図２１】図１１の回路構成の変形例を示すブロック図である。
【図２２】図２１に示した予測回路の制御方法を示す動作フロー図である。
【符号の説明】
【０１０５】
９０…動画像処理回路ブロック、９１…インタフェース＆全体制御部、９２…メモリコントローラ、Ｐ，Ｐ１，Ｐ−１，Ｐ−２…予測回路、ＰＤ…制御手段、Ｄ，Ｄ１，Ｄ−１，Ｄ−２…電力状態制御回路、ＤＣＳ…判定回路、ＤＴ…入力検知回路、ＤＴＣ…入力検出・クロックカウント回路、ＤＶ…分周器、Ｋ，Ｋ１，Ｋ−１，Ｋ−２…論理回路ブロック、ＫＢ…機能ブロック、ＫＫ１〜ＫＫ３…予測型電力制御付き論理回路ブロック、ＶＤ…電源、ＣＬＫ…クロック、ＣＰ…コンパレータ、ＣＴ…クロックカウンタ、Ｉ，ＩＮ，ＩＮＳ…入力、Ｏ，ＯＵＴ，ＯＵＴＳ…出力、ＲＧ…レジスタ、ＲＧＳ…設定レジスタ、ＲＳＴ…リセット信号。
【図１】
2006318513.tif 000003
【図２】
2006318513.tif 000004
【図３】
2006318513.tif 000005
【図４】
2006318513.tif 000006
【図５】
2006318513.tif 000007
【図６】
2006318513.tif 000008
【図７】
2006318513.tif 000009
【図８】
2006318513.tif 000010
【図９】
2006318513.tif 000011
【図１０】
2006318513.tif 000012
【図１１】
2006318513.tif 000013
【図１２】
2006318513.tif 000014
【図１３】
2006318513.tif 000015
【図１４】
2006318513.tif 000016
【図１５】
2006318513.tif 000017
【図１６】
2006318513.tif 000018
【図１７】
2006318513.tif 000019
【図１８】
2006318513.tif 000020
【図１９】
2006318513.tif 000021
【図２０】
2006318513.tif 000022
【図２１】
2006318513.tif 000023
【図２２】
2006318513.tif 000024