(57)【要約】【課題】細粒度パワーゲーティングにおいて、オーバーヘッドの?ない小さな改良によって，非常に理想的なエネルギー削減効果を達成する。【解決手段】アイドルサイクルカウンタ０６０５は、入力を検知した場合にはアイドルサイクルレジスタ０６０３をリセットし、入力を検知しない場合にはアイドルサイクルカウンタに加算する。比較器０６０６は、アイドルサイクルレジスタに保持されたアイドルサイクルとBECレジスタ０６０２に保持されたBECとを比較して、比較結果に応じて電源遮断処理又は電源非遮断処理のトリガーとなるフラグである予測フラグを予測フラグレジスタ０６０４に書き込む。電源遮断器０６０７は、電源０６１０と論理回路ブロックの間に接続され、アイドル期間が始まったときに、予測フラグレジスタに保持されている予測フラグに応じて電源供給を制御する。【選択図】図６
2011186934.tif 000002
【特許請求の範囲】
【請求項１】
命令又はデータの入力に対して一定の処理をクロックに基づいて行う複数の論理回路ブロックを有する半導体装置において、前記論理回路ブロックのいずれかへの命令又はデータの入力が行われない期間であるアイドル期間中にその論理回路ブロックへの電源供給を制御するための電源制御回路であって、
BECを保持するBECレジスタと、
アイドルサイクルを保持するアイドルサイクルレジスタと、
予測フラグを保持する予測フラグレジスタと、
前記論理回路ブロックへの命令又はデータの入力をクロック毎に検査し、入力を検知した場合には前記アイドルサイクルレジスタをリセットし、入力を検知しない場合には前記アイドルサイクルカウンタに加算するアイドルサイクルカウンタと、
アイドルサイクルレジスタに保持されたアイドルサイクルとBECレジスタに保持されたBECとを比較して、比較結果に応じて電源遮断処理又は電源非遮断処理のトリガーとなるフラグである予測フラグを予測フラグレジスタに書き込む比較器と、
アイドル期間が始まったときに、予測フラグレジスタに保持されている予測フラグに応じて電源供給を制御し、そのアイドル期間が終了したときに電源供給が予測フラグに基づいた処理により遮断されていた場合にはその論理回路ブロックへ電源を供給する電源遮断器と、
を有する電源制御回路。
【請求項２】
前記比較器は、アイドルサイクルがBECを超えている場合には遮断フラグを予測フラグレジスタに書き込み、
前記電源遮断器は、アイドル期間が始まったときに、遮断フラグが予測フラグレジスタに保持されている場合には電源を遮断する
ことを特徴とする請求項１に記載の電源制御回路。
【請求項３】
温度センサと、
前記温度センサから取得した温度を所定の対応表又は関数に基づきBECへ変換して前記BECレジスタに書き込む変換器と
をさらに備えた請求項１又は請求項２に記載の電源制御回路。
【請求項４】
前記比較器はアイドルサイクルとBECの比較をクロック毎に行い、
前記遮断器は、開始時において電源遮断を行わなかったアイドル期間において、アイドルサイクルがBECを超えたと前記比較器が判定した場合には、電源遮断を直ちに行うことを特徴とする請求項１乃至請求項３に記載の電源制御回路。
【請求項５】
命令又はデータの入力に対して一定の処理をクロックに基づいて行う複数の論理回路ブロックを有する半導体装置において、前記論理回路ブロックのいずれかへの命令又はデータの入力が行われない期間であるアイドル期間中にその論理回路ブロックへの電源供給を制御する電源制御方法であって、
アイドル期間中にクロック数をカウントするアイドルサイクルカウントステップと、
アイドル期間終了時にアイドルサイクルがBECを超過した場合には遮断フラグをレジスタに記録する比較ステップと、
アイドル期間開始時に前記レジスタに遮断フラグが保持されている場合には前記論理回路ブロックへの電源供給を遮断する遮断ステップと
アイドル期間終了時に前記論理回路ブロックへの電源供給が停止中であればこれを復帰させる電源復帰ステップと
からなる電源制御方法。
【請求項６】
前記論理回路ブロックの温度を計測する温度計測ステップと、
前記温度計測ステップにより計測した温度を所定の対応表又は関数に基づきBECへ変換する変換ステップ
をさらに有する請求項５に記載の電源制御方法。
【請求項７】
アイドル期間開始時に電源供給の遮断を行わなかったアイドル期間中において、その期間中のクロック数がBECを超過したクロックにおいて前記論理回路ブロックへの電源供給を直ちに遮断するリミットステップをさらに有する請求項５又は請求項６に記載の電源制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路において演算等の処理に使われていない論理回路ブロックへの電源供給を遮断することにより、リーク電流によるエネルギーの消失を低減させるための技術に関する。
【背景技術】
【０００２】
半導体チップは素子の微細化が進むにつれ、リーク電流が増大し、消費エネルギーの増大につながることが指摘されている。リーク電流による消費エネルギー（以下、リークエネルギーという）を削減する手段として、チップ内にパワースイッチ（ＰＳ）とよばれるＭＯＳトランジスタを設け、回路がアイドル状態、すなわち回路に信号が入力されることがなく演算等の処理を行わない状態にあるときに、ＰＳをオフすることで電源遮断するパワーゲーティング技術が提案され、使用されている。
【０００３】
ところが、パワーゲーティングでは、電源遮断時と電源復帰時にＰＳのオンオフに伴ってエネルギーを消費する。結果的に、このエネルギー・オーバーヘッドが、電源遮断によってもたらされるリークエネルギーの削減分よりも大きいと、消費エネルギーの低減に結びつかない。アイドル期間が非常に長い場合にのみ電源遮断する方法では、通常、電源遮断によるリークエネルギーの削減分がオーバーヘッドよりも大きいので問題とはならない。これに対し、プログラムの実行中に回路を使用していない期間が少しでもあれば、電源遮断してリークエネルギーの低減を図る新しい技術（細粒度パワーゲーティング技術）では、アイドル状態の開始を認識した後、アイドル期間の長短によって、電源遮断を行うか否かの判断が必要となる。
【０００４】
非特許文献１では、電源遮断によるリークエネルギーの削減分がエネルギー・オーバーヘッドと等しくなるクロックサイクル数（Break-Even Cycles、BEC）を予め求めておき、回路がアイドル状態になったことを検知したらアイドル期間のサイクル数のカウントを開始し、BECを超えたら電源遮断を行う方式（Time-Based方式、以下TB方式という）が開示されている。
【０００５】
TB方式で必要なハードウェアは、アイドル期間中のクロック数（以下、アイドルサイクルという）を数えるアイドルサイクルカウンタ，アイドルサイクルを保持するレジスタ(以下、アイドルサイクルレジスタという)，BECを記録するレジスタ(以下、BECレジスタという)，アイドルサイクルとBECを比較する比較器、及び前記比較の結果に従って電源遮断を行う電源遮断器である。
【０００６】
図１は、細粒度パワーゲーティング技術の概念を表す図である。演算等の処理を行う論理回路ブロック０１０１とこれに電源を供給する電源０１０２の間に電源制御回路０１０３が配置されている。電源制御回路は論理回路ブロックに対して入力信号を伝達する入力線０１０４に接続されており、論理回路ブロックに送られる入力信号の状態に応じて電源から論理回路ブロックへの電源供給の遮断及び復帰を制御する。図１は、単一の論理回路ブロックを使用してパワーゲーティング技術の概念を説明しているが、細粒度パワーゲーティング技術においては、論理回路ブロックごとにこのような制御を行う。図２は、集積回路において論理回路ブロックごとに電源制御が行われていることを表した概念図である。
【０００７】
図３は、非特許文献１が提案するTB方式の制御の手順を示すフロー図である。
【０００８】
なお、本願の明細書におけるフロー図中、「ASR」はアイドルサイクルレジスタを、「BEC」は、BECレジスタを表す。また、「レジスタ名=数値」の形をした式は、左辺のレジスタに右辺の数値を保持させる処理を意味する。また、「レジスタ名++」とあるのは、そのレジスタに保持された数値に一を加算する処理を表し、「レジスタ名−−」とあるのは、そのレジスタに保持された数値から一を減算する処理を表す。なお、「ON」は、電源供給が停止中の場合に電源供給を再開することのほか、電源供給がすでに行われている場合に電源供給を継続することを含むものとする。「OFF」も同様に、電源供給を行っている場合に電源供給を停止することのほか、電源供給を既に停止している場合に電源供給の停止を継続することを含むものとする。
【０００９】
本願で説明する細粒度パワーゲーティングの技術は、命令又はデータの入力に対して一定の処理をクロックに基づいて行う複数の論理回路ブロックを有する半導体に関するものである。そして、フロー図のSTARTからENDまでの流れは、制御回路が１クロックの間に行う処理を表したものである。図中、途中で枝分かれして並列的に記された処理は並行して別々に同時処理が行われるものである。これら一連の処理がクロック毎に繰り返される。
【００１０】
図３において、まず、アイドルサイクルカウンタが、前記入力線からの信号入力があるかどうかを判断する（ステップ０３０１）。信号入力があった場合には、アイドルサイクルカウンタがアイドルサイクルレジスタをゼロにリセットし(ステップ０３０２)、電源遮断器が前記論理回路ブロックへの電源供給を復帰させる(ステップ０３０３)。ステップ０３０１で信号入力がなかった場合には、アイドルサイクルカウンタがアイドルサイクルレジスタに一を加算し（ステップ０３０４）、比較器がアイドルサイクルレジスタに保持されたアイドルサイクルとBECレジスタに保持されたBECとを比較して（ステップ０３０５）、アイドルサイクルがBECよりも大きい場合には電源遮断器が前記論理回路ブロックに対する電源供給を遮断する（ステップ０３０６）。
【００１１】
図４は、TB方式でエネルギーが節約される様子を時系列的に表した表である。表の上から下に向かって時間は進行し、各行がひとつのクロックにおける処理の結果を示している。この例ではBECは２であり、表中の「BEC」はBECレジスタに保持されたBECを意味しており、常に２が保持されている。これは２クロックサイクルにおいて失われるリークエネルギーと電源遮断及び復帰によって失われるエネルギー・オーバーヘッドが等しいことを意味している。表中の「入力」の列の黒丸は論理回路ブロックへ信号の入力がある場合を意味し、白丸は信号の入力がない場合を意味している。表中の「ASR」の数値は、信号の入力がある場合にはゼロとされ、ない場合に一が加算される。表中の「電源」は、信号の入力がある場合にはON、アイドルサイクルがBECを超える場合にはOFF、それ以外の場合にはその時点における電力状態を維持する。例えば、５サイクル目ではアイドルサイクルがBECを超えたので電源が遮断され、７クロック目では信号入力を検知して電源が復帰されている。
【００１２】
表中の「消費エネルギー」の欄はリーク電流又はエネルギー・オーバーヘッドにより失われたエネルギーを表しており、数字の単位は１クロックで失われるリークエネルギーの量となっている。エネルギー・オーバーヘッドによる損失は電源遮断時と電源復帰時のそれぞれで発生するが、この例においては、簡単化のため電源復帰時に一時に２単位のエネルギーを失うものとしている。消費エネルギーの欄のうち、左の列は電源遮断を一切行わない場合の累積消失量であり、右の列はTB方式の電源遮断を行った場合の累積消失量を表している。TB方式では５クロック目で電源遮断を行っているので５〜６クロックにおいて２単位のエネルギーを節約しているものの、７クロック目の電源復帰で２単位のエネルギーを失ったため、アイドル期間終了時点において結局電源遮断を行わない場合と消費エネルギーが異ならない結果となっている。このように、TB方式ではアイドル期間がBECの二倍の長さを超えてはじめてエネルギーの節約となり、それより短いと逆にエネルギー損失は大きくなる。表の二番目のアイドル期間はエネルギー節約に成功した例であり、三番目のアイドル期間はエネルギー節約に失敗した例となっている。
【００１３】
TB方式はアイドル期間がBECに達するまでは、リーク電流が無駄に失われている。そこで、アイドル期間がBECに達する前に電源を遮断してさらにエネルギーを節約する方法が考えられるが、電源遮断後すぐに入力信号があるとエネルギー・オーバーヘッドによりかえってエネルギーを無駄に失う結果となる。そこで、アイドル期間がBECを超えるかどうかを過去の履歴から予測して、その予測に応じて電源遮断のタイミングを制御する方法が提案されている（特許文献１）。
【００１４】
なお、リーク電流の大きさは、半導体の温度により変化することが知られており、半導体の温度に応じたBECを電源遮断に使用する技術を開示したものとして特許文献２がある。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２００２−２２９６９０
【特許文献２】特開２００９−２３１３６０
【非特許文献】
【００１６】
【非特許文献１】Z. Hu, et al, "Microarchitectural techniques for power gating of execution units," Proceedings of ISLPED'04, pp.32-37, 2004.
【発明の概要】
【発明が解決しようとする課題】
【００１７】
前記特許文献１は、過去の履歴から将来のアイドル期間を予測する方法として、例えば過去１０回分のアイドル期間を記憶してそれらの平均値を基準値と比較する方法を提案する。しかしながら、１０個の数値を保持するために消費されるエネルギーやそれらの数値に対して演算処理を行うために失われるエネルギーは電源遮断により節約されるエネルギーよりも大きく、トータルでみた場合にはエネルギー消費量削減の目的を達成できていないと考えられる。特許文献1はいずれの実施形態についても実証データを提供していないが、特許文献１で開示されている実施形態はいずれもそのような問題を解決できていないと考えられる。
【００１８】
また、特許文献１の発明では、過去のアイドル期間におけるアイドルサイクルの履歴に応じてBECを長くしたり、あるいは短くしたりする操作を行うことにより電源遮断のタイミングを制御する構成が示されている。しかし、BECを短くした場合であっても、アイドル期間開始からBECに達するまでの間にリークエネルギーは失われ続けるという問題が全て解消されているわけではない。
【課題を解決するための手段】
【００１９】
本願発明の発明者は、以上のような課題に鑑みて鋭意研究を重ねた結果、消費エネルギーを抑えた必要最小限の回路により構成され、しかもアイドル期間についての高い予測能力を備えた電源制御回路を完成させたものである。
【００２０】
TB方式の電源制御回路や特許文献１の電源制御回路では、アイドル期間開始時から電源遮断時までのリーク電流が無駄に失われていた。本願発明者は、アイドル期間がBECを超えると予想される場合においては、BECの経過を持つことなくアイドル期間開始時において直ちに電源遮断を行うことが、エネルギー節減に有効であることを見出した。
【００２１】
請求項１に記載の第一発明は、本願における発明中、最も基本となる発明である。第一発明の電源制御回路は、BECレジスタ、アイドルサイクルレジスタ、アイドルサイクルカウンタ、比較器及び電源遮断器を有する点において既に説明したTB方式による電源制御回路と同様であるが、さらに、予測フラグレジスタを有する。第一発明の比較器はアイドルサイクルとBECを比較して、その結果に応じて電源遮断処理または電源非遮断処理のトリガーとなる予測フラグを予測フラグレジスタに書き込み、電源遮断器は、予測フラグが電源遮断を指示するものであるときにはアイドル期間開始時において電源遮断を直ちに行う。電源遮断器はさらにアイドル期間終了時において電源供給が行われていない場合には電源を復帰させる。
【００２２】
請求項２に記載の第二発明は、比較器はアイドルサイクルがBECを超えている場合には遮断フラグを予測フラグレジスタに書き込み、電源遮断器はアイドル期間が始まったときに遮断フラグが予測フラグレジスタに保持されている場合には電源を遮断することを特徴とする第一発明の電源制御回路である。
【００２３】
請求項３に記載の第三発明は、さらに半導体の温度に応じたBECを使用することを特徴とする電源制御回路である。すなわち、第三発明は、温度センサと、前記温度センサから取得した温度を所定の対応表又は関数に基づきBECへ変換して前記BECレジスタに書き込む変換器とをさらに備えた第一発明又は第二発明の電源制御回路である。
【００２４】
第一発明乃至第三発明の電源制御回路においては、アイドル期間開始時に電源遮断を行わなかった場合において、その後アイドル期間が長期に継続したときにはリーク電流により多くのエネルギーを失う事態となる。請求項４に記載の第四発明は、そのような場合において、アイドルサイクルがBECを超えたときに電源を遮断することを特徴とするものである。すなわち、第四発明は、比較器はアイドルサイクルとBECの比較をクロック毎に行い、遮断器は、開始時において電源遮断を行わなかったアイドル期間において、アイドルサイクルがBECを超えたと比較器が判定した場合には、電源遮断を直ちに行うことを特徴とする第一発明乃至第三発明の電源制御回路である。
【００２５】
請求項５に記載の第五発明は、電源制御方法の発明であって、第二発明の電源制御回路に対応するものである。すなわち、第五発明は、命令又はデータの入力に対して一定の処理をクロックに基づいて行う複数の論理回路ブロックを有する半導体装置において、前記論理回路ブロックのいずれかへの命令又はデータの入力が行われない期間であるアイドル期間中にその論理回路ブロックへの電源供給を制御する電源制御方法であって、アイドル期間中にクロック数をカウントするアイドルサイクルカウントステップと、アイドル期間終了時にアイドルサイクルがBECを超過した場合には遮断フラグをレジスタに記録する比較ステップと、アイドル期間開始時に前記レジスタに遮断フラグが保持されている場合には前記論理回路ブロックへの電源供給を遮断する遮断ステップとアイドル期間終了時に前記論理回路ブロックへの電源供給が停止中であればこれを復帰させる電源復帰ステップとからなる電源制御方法に関する。
【００２６】
請求項６に記載の第六発明は、電源制御方法の発明であって、第三発明の電源制御回路に対応するものである。すなわち、第六発明は、前記論理回路ブロックの温度を計測する温度計測ステップと、前記温度計測ステップにより計測した温度を所定の対応表又は関数に基づきBECへ変換する変換ステップをさらに有する第五発明の電源制御方法に関する。
【００２７】
請求項７に記載の第七発明は、電源制御方法の発明であって、第三発明の電源制御回路に対応するものである。すなわち、第七発明は、アイドル期間開始時に電源供給の遮断を行わなかったアイドル期間中において、その期間中のクロック数がBECを超過したクロックにおいて前記論理回路ブロックへの電源供給を直ちに遮断するリミットステップをさらに有する第五発明又は第六発明の電源制御方法に関する。
【発明の効果】
【００２８】
第一発明を含め本願の全ての発明は、アイドル期間開始時からBECに至るまでのリーク電流によるエネルギー消失をさらに節減することが出来る点において、TB方式や特許文献１の電源制御回路又は電源制御方法よりも優れた電源制御回路又は電源制御方法を提供するものである。そして、その回路又は方法は、ハードウェア的にはTB方式の電源制御回路に予測フラグレジスタを追加して比較器及び電源遮断器に必要な変更を加えただけの簡易な構造にて実施可能なものである。このような簡易な構造がゆえに本願発明の電源制御回路又は電源制御方法にて消費されるエネルギーは限定的であり、本願発明によるエネルギー節減効果は特許文献１のそれよりも優れた結果となる。
【００２９】
第三発明の電源制御回路及び第六発明の電源制御方法は、論理回路ブロックの温度に応じたBECを使用することによりさらにエネルギー効率を高めたものである。
【００３０】
第四発明の電源制御回路及び第七発明の電源制御方法は、アイドル期間開始時において電源遮断を行わなかった場合において、アイドル期間がBECを超過した場合には電源遮断を行うことによりさらにエネルギー効率を高めたものである。
【図面の簡単な説明】
【００３１】
【図１】細粒度パワーゲーティング技術の概念を表す図。
【図２】集積回路において論理回路ブロック毎に電源制御が行われていることを表した概念図。
【図３】TB方式の制御の手順を示すフロー図。
【図４】TB方式でエネルギーが節約される様子を時系列的に表した図。
【図５】実施例１の電源制御回路の大まかな処理の流れを表す概念図。
【図６】実施例１の電源制御回路のハードウェア構成図。
【図７】実施例２の電源制御回路の処理の流れを表すフロー図。
【図８】実施例２の電源制御の処理の流れを時系列的にTB方式のそれと比較して表わした図。
【図９】実施例３の電源制御回路のハードウェア構成図。
【図１０】実施例４の電源制御回路の処理の流れを表すフロー図。
【図１１】実施例８の電源制御回路における予測方式の概念図。
【図１２】実施例２の電源制御回路の処理の流れを表すフロー図。
【発明を実施するための形態】
【００３２】
実施例１は第一発明に関する。実施例２は第二発明に関する。実施例３は第三発明に関する。実施例４は第四発明に関する。実施例５は第五発明に関する。実施例６は第六発明に関する。実施例７は第七発明に関する。実施例８は第一発明に関する。
【００３３】
なお、背景技術中、TB方式の電源制御回路における構成の説明は、本願発明の内容の特定に使用してはならないものとする。
【実施例１】
【００３４】
<<実施例１の概要>>
【００３５】
実施例１は、第一発明の電源制御回路に関する。
【００３６】
図５は、実施例１の電源制御回路の大まかな処理の流れを表す概念図である。図３と同様に、上から下への時系列となっており、左側の丸のそれぞれがワン・クロックを意味している。白丸の部分がアイドル期間であり、黒丸の部分が非アイドル期間を意味する。第３クロックでアイドル期間が始まると、アイドルサイクルカウンタがアイドルサイクルのカウントを始める。アイドルサイクルカウンタはアイドル期間中アイドルサイクルのカウントを継続する。第１０クロックでアイドル期間の終了が確認されると、アイドルサイクルのカウントは止まり、アイドルサイクルがBECと比較される。この比較の結果に応じて電源遮断処理又は電源非遮断処理のトリガーとなるフラグである予測フラグを予測フラグレジスタに書き込む。第12クロックで次のアイドル期間が始まると、予測フラグレジスタに保持された予測フラグが電源遮断処理に係るものである場合には電源遮断が直ちに行われ、逆に予測フラグが電源非遮断処理に係るものである場合には電源遮断を行わない。第17クロックでは、電源遮断中であれば電源が復帰される。
【００３７】
このように、実施例１の電源制御回路は、各アイドル期間においてアイドルサイクルを計測し、アイドルサイクルとBECの比較を行い、その結果に応じて後のアイドル期間においてその開始時に電源遮断又は非遮断の操作を行う。以上では、一番目のアイドル期間の開始時にもそれ以前の履歴に応じて電源が遮断されうることや、二番目のアイドル期間においてもアイドルサイクルがカウントされることの説明は省略した。要するに、図４のような操作が重畳的に繰り返されるということである。そして、図４では過去１回の履歴に基づいて予測フラグを書き込む例を説明したが、過去数回の履歴に基づいて電源遮断処理又は電源非遮断処理を選択して予測フラグを立てる方法を除外する趣旨ではない。ただし、過去の履歴を多く保持しようとするとその数に応じて消費エネルギーが増加することは既に述べたところであり、望ましくは過去２回以内の履歴とするのがよい。
<<実施例１の構成>>
【００３８】
第一発明の電源制御回路は、「命令又はデータの入力に対して一定の処理をクロックに基づいて行う複数の論理回路ブロックを有する半導体装置において、前記論理回路ブロックのいずれかへの命令又はデータの入力が行われない期間であるアイドル期間中にその論理回路ブロックへの電源供給を制御するための電源制御回路」である。「命令又はデータの入力に対して」行う「一定の処理」とは、加算、減算、乗算、論理演算などの演算を意味し、「論理回路ブロック」とは、そのような演算を行う加算器、減算器、乗算器、論理演算器等のことをいう。そしてそれらの演算は電子回路の同期をとるための「クロックに基づいて」行われる。そして、第一発明の電源制御回路は「複数の論理回路ブロックを有する半導体装置」を対象とする、細粒度パワーゲーティングを行うものであり、「アイドル期間中にその論理回路ブロックへの電源供給を制御する」ものである。
【００３９】
図６は、実施例１の電源制御回路のハードウェア構成図である。電源制御回路０６０１は、BECレジスタ０６０２と、アイドルサイクルレジスタ０６０３と、予測フラグレジスタ０６０４と、アイドルサイクルカウンタ０６０５と、比較器０６０６と、電源遮断器０６０７とを有する。
【００４０】
「BECレジスタ」は数値データを保持するためのメモリであり、「BECを保持する。」BECの意味については既に説明した。BECは定数であり、予めBECレジスタに記録される。「アイドルサイクルレジスタ」は数値データを保持するための揮発性メモリであり、「アイドルサイクルを保持する。」アイドルサイクルは変数であり、アイドルサイクルカウンタにより書き換えられる。「予測フラグレジスタ」も数値データを保持するための揮発性メモリであり、「予測フラグを保持する。」予測フラグも変数であり、比較器により書き換えられる。
【００４１】
「アイドルサイクルカウンタ」は、「論理回路ブロック０６０８への命令又はデータの入力をクロック毎に検査」するため、入力信号線０６０９に接続される。そして、「入力を検知した場合にはアイドルサイクルレジスタをリセットし、入力を検知しない場合にはアイドルサイクルカウンタに加算する。」「比較器」は、「アイドルサイクルレジスタに保持されたアイドルサイクルとBECレジスタに保持されたBECとを比較して、比較結果に応じて電源遮断処理又は電源非遮断処理のトリガーとなるフラグである予測フラグを予測フラグレジスタに書き込む。」「電源遮断器」は、電源０６１０と論理回路ブロックの間に接続され、「アイドル期間が始まったときに、予測フラグレジスタに保持されている予測フラグに応じて電源供給を制御し、そのアイドル期間が終了したときに電源供給が予測フラグに基づいた処理により遮断されていた場合にはその論理回路ブロックへ電源を供給する。」
【００４２】
実施例１の電源制御回路は、簡易な構造にてアイドル期間開始時からBECに至るまでのリークエネルギーをさらに節減することが出来る電源制御回路である。
【実施例２】
【００４３】
<<実施例２の概要>>
【００４４】
実施例２は、第二発明の電源制御回路に関する。
【００４５】
実施例２の電源制御回路は、あるアイドル期間においてアイドルサイクルがBECを超えていた場合には次回のアイドル期間においてアイドル期間開始時に直ちに電源遮断を行い、そうでない場合には電源遮断を行わないことを特徴とする第一発明の電源制御回路である。
<<実施例２の構成>>
【００４６】
第二発明の電源制御回路は、第一発明の電源制御回路であって、比較器はアイドルサイクルがBECを超えている場合には遮断フラグを予測フラグレジスタに書き込み、電源遮断器はアイドル期間が始まったときに遮断フラグが予測フラグレジスタに保持されている場合には電源を遮断することを特徴とする電源制御回路である。
【００４７】
実施例２の電源制御回路のハードウェア構成は実施例１のそれと同様である。
【００４８】
図７は、実施例２の電源制御回路の処理の流れを表すフロー図である。図２と同様、別個同時に並行処理されるものは並列的に記されている。まず、アイドルサイクルカウンタが、前記入力線からの信号入力があるかどうかを判断する（ステップ０７０１）。信号入力があった場合には、以下のステップ０７０２から０７０７までの処理を行い、入力信号がない場合には、ステップ０７０８から０７１０までの処理を行う。
【００４９】
入力信号があった場合には、第一に、アイドルサイクルカウンタがアイドルサイクルレジスタをゼロにリセットし(ステップ０７０２)、第二に、前記論理回路ブロックへの電源供給が停止中であれば、電源遮断器が電源供給を復帰させる(ステップ０７０３)。第三に、比較器は、アイドルサイクルがゼロでないならば（このステップと前記ステップ０７０２とは並行処理であるから、この時点ではまだアイドルサイクルはゼロにリセットされていない）、アイドル期間終了直後の最初の非アイドル期間であると判断し（ステップ０７０４）、アイドルサイクルとBECの比較を行う（ステップ０７０５）。比較器は、アイドルサイクルがBECを超えている場合には予測フラグレジスタに電源遮断処理のトリガーとなるフラグである遮断フラグとして１を書きこみ（ステップ０７０６）、アイドルサイクルがBECを超えていない場合には予測フラグレジスタに電源非遮断処理のトリガーとなるフラグである非遮断フラグとして０を書き込む（ステップ０７０７）。
【００５０】
ステップ０７０１で信号入力がなかった場合には、第一に、アイドルサイクルカウンタがアイドルサイクルレジスタに一を加算し（ステップ０７０８）、第二に、電源遮断器が、予測フラグレジスタに保持された予測フラグを取得し、これが遮断フラグを意味する１であると判断した場合（ステップ０７０９）、電源供給中であれば電源の遮断を行う（ステップ０７１０）。
【００５１】
図８は、実施例２の電源制御の処理の流れを時系列的にTB方式のそれと比較して表わした図である。図４と同様に上から下へと時間が経過し、各行がワン・クロックにおける処理を表している。表中「BEC」、「ASR」、「PFR」の列の数値は、それぞれ、BECレジスタ、アイドルサイクルレジスタ、予測フラグレジスタに保持された数値を意味している。図４と同様、黒丸が非アイドル期間、白丸がアイドル期間を表している。ここでは、電源遮断なし、TB方式、HB方式の三つの「消費エネルギー」が比較されている。HB(History-Based)方式とは、実施例２の電源制御方式である。第２〜６クロックの最初のアイドル期間は予測のための期間として消費エネルギーの計算から除いてある。ここでの「BEC」は３と設定している。PFRの初期値は非遮断フラグを意味する０とした。なお、消費エネルギーの単位は図４と同様１クロックにおけるリークエネルギーの量である。
【００５２】
HB方式の処理の流れを時系列的に見ると、第２〜６クロックの最初のアイドル期間では信号の入力がないとASRに毎回１が加算される（図７のステップ０７０１及び０７０８による）。第７クロックで最初のアイドル期間の終了を検知する（図７のステップ０７０１及び０７０４による）と、ASRとBECを比較して（図７のステップ０７０５による）、ASRがBECを超えているのでPFRを１に書き換える（図７のステップ０７０６による）。これと並行して、ASRが０にリセットされる（図７のステップ０７０１及び０７０２による）。ここで、注意を要するのは、BECとの比較に使われるASRはリセット前の、すなわち、一行前のASRということである。第８クロックで第二のアイドル期間が始まると、PFRの数値が１かどうかを調べ（図７のステップ０７０１及び０７０９による）、これが１であるため電源が遮断されている（図７のステップ０７１０による）。これとは反対に、第１６クロックでは第三のアイドル期間においてASRがBECを超えなかったためPFRが０に書き換えられ、その結果第１７クロックで第四のアイドル期間が開始されたときには電源遮断が行われていない。
【００５３】
次に、TB及びHBの両方式の消費エネルギー節約の効果を見てみることにする。まず、第二のアイドル期間についてみると、TB方式では、第１１〜１２クロックにおいて電源遮断を行い、電源遮断がない場合と比べて２単位のエネルギーを節約しているが、第１３クロックの電源復帰によるエネルギー・オーバーヘッドにより３単位のエネルギーを失い、結局電源遮断がない場合と比べて１単位多く失っている。これに対し、HB方式では第８〜１２の全期間に渡って電源遮断を行った結果、失ったのはエネルギー・オーバーヘッドによる３単位のエネルギーのみであり、電源遮断を行わない場合と比べて２単位のエネルギー節約に成功している。
【００５４】
次に、第三のアイドル期間についてみてみると、ここではHB方式の予測が外れてしまったために、電源遮断がない場合やTB方式では２単位のエネルギーを失っただけであるのに対し、HB方式ではエネルギー・オーバーヘッドにより３単位のエネルギーを失うという失敗に終わっている。
【００５５】
このように、HB方式の電源制御方法が成功するかどうかは予測が的中するかどうかによる。実際の回路においてHB方式がTB方式と比較して有利かどうかの検証は後の<比較データ>で説明する。
【００５６】
実施例２の電源制御回路は、簡易な構造にてアイドル期間開始時からBECに至るまでのリークエネルギーをさらに節減することが出来る電源制御回路である。
【実施例３】
【００５７】
<<実施例３の概要>>
【００５８】
実施例３は、第三発明の電源制御回路に関する。
【００５９】
実施例３の電源制御回路は、第一発明又は第二発明の電源制御回路であって、さらに半導体の温度に応じたBECを使用することを特徴とする電源制御回路である。実施例１又は実施例２の電源制御回路では、一つに固定されたBEC（通常は室温でのBEC）に基づいて電源供給を制御していた。しかし、BECは温度変化に対して著しく変化する。これは、室温でのBECまでスリープ期間を数えることによって、高温時には潜在的なエネルギー削減効果を大きく失うことを意味する。第三発明の電源制御回路は、温度センサと温度依存のBECに基づく電源制御を導入することでこの欠点を克服するものである。
<<実施例３の構成>>
【００６０】
第三発明の電源制御回路は、温度センサと、前記温度センサから取得した温度を所定の対応表又は関数に基づきBECへ変換して前記BECレジスタに書き込む変換器とをさらに備えた第一発明又は第二発明の電源制御回路である。
【００６１】
図９は、実施例３の電源制御回路のハードウェア構成図である。実施例３の電源制御回路０９０１は、温度センサ０９１１と変換器０９１２をさらに有する点、BECレジスタ０９０２が変換器により書き換えられる点を除けば実施例１及び実施例２の電源制御回路と同様である。図中、「温度センサ」は電源制御回路の枠内にではなく論理回路ブロック０９０８の枠内に描かれているが、論理回路ブロックの温度を計測するために論理回路ブロックに設置することを表現するものであって、本発明の構成上は電気制御回路に含まれるものである。「温度センサ」は、半導体を利用して電気的に温度を計測する方式のものが集積回路に既に搭載され始めており、当発明においてもこれを使用することが出来る。温度センサにより計測された温度は「変換器」によりBECへ変換される。温度からその温度に相応しいBECへの変換は、「所定の対応表又は関数に基づき」行う。対応表による変換は、温度とBECを関連付けた対応表を変換器内部のメモリ等に保持しておき、これを参照することにより実現することが出来る。なお、対応表は，設計段階での回路シミュレーションによって予め用意しておく必要がある。関数による変換は、例えば、前記特許文献２の記述にあるような関数演算により行う。変換器は、変換により得たBECを「BECレジスタに書き込む。」
【００６２】
なお、半導体における温度変化は緩やかに起こることから，温度変化の検出は10000サイクル位に一度の頻度で十分である。
【００６３】
論理回路ブロックの温度に基づいて更新されたBECに基づいて行われる実施例３の電源制御回路の電源制御方法は、BECが変動する点を除けば実施例１及び実施例２の電源制御回路のそれと同様であり、BECの変動自体はその手順の変更を必要とするものではないから、説明を省略する。
【００６４】
実施例３の電源制御回路は、論理回路ブロックの温度に適したBECを使って電源制御をおこなうことによりさらにエネルギー効率を高めた電源制御回路である。
【実施例４】
【００６５】
<<実施例４の概要>>
【００６６】
実施例４は、第四発明の電源制御回路に関する。
【００６７】
第一発明乃至第三発明の電源制御回路においては、アイドル期間開始時に電源遮断を行わなかった場合において、その後アイドル期間が予想に反して長期に継続したときにはリーク電流によって多くのエネルギーを失う事態となる。請求項４に記載の第四発明は、そのような場合において、アイドルサイクルがBECを超えたときに電源を遮断することを特徴とするものである。
【００６８】
再び、図８を用いて説明する。第２１クロックに始まる第五のアイドル期間において、HB方式ではアイドル期間がBECを超えないと予想して電源遮断を行わなかった。しかし、その後アイドル期間は予想に反して８クロック継続し、その結果アイドル期間終了時点である第２９クロックにおいてTB方式よりも、２単位多くエネルギーを消失している。実施例４の電源制御回路では、このような場合に、アイドルサイクルがBECを超えた時点で電源遮断を行って、エネルギーの消失を削減するものである。図８の例では、第２４クロックにおいて電源遮断の操作を行うものとする。
<<実施例４の構成>>
【００６９】
第五の発明の電源制御回路は、前記比較器はアイドルサイクルとBECの比較をクロック毎に行い、前記遮断器は、開始時において電源遮断を行わなかったアイドル期間において、アイドルサイクルがBECを超えたと前記比較器が判定した場合には、電源遮断を直ちに行うことを特徴とする第一発明乃至第三発明の電源制御回路である。
【００７０】
第五発明の電源制御回路のハードウェア構成は、第一発明又は第二発明に従属する発明の場合においては図６を用いて説明したものと、第三発明に従属する発明の場合においては図９を用いて説明したものと同様である。
【００７１】
図１０は、実施例４の電源制御回路の処理の流れを表すフロー図である。なお、この図には実施例４の電源制御回路が論理回路ブロックの温度に応じてBECを更新する構成を含む場合における、当該構成に係る処理の流れは省略されている。また、図７と同様、別個同時に並行処理されるものは並列的に記されている。
【００７２】
まず、アイドルサイクルカウンタが、前記入力線からの信号入力があるかどうかを判断する（ステップ１００１）。信号入力があった場合には、ステップ１００２から１００７までの処理を行い、入力信号がいない場合には、ステップ１００８から１０１１までの処理を行う。
【００７３】
入力信号があった場合に行われるステップ１００２から１００７までの処理は、図７を用いて説明した実施例２の場合と同様であるので説明を省略する。
【００７４】
ステップ１００１で信号入力がなかった場合には、第一に、アイドルサイクルカウンタがアイドルサイクルレジスタに一を加算する（ステップ１００８）。第二に、電源遮断器が、予測フラグレジスタに保持された予測フラグを取得し、これが遮断フラグを意味する１であると判断した場合（ステップ１００９）、電源供給中であれば電源の遮断を行う（ステップ１０１０）。
ここまでは、図６を用いて説明した実施例２の場合と同様である。
【００７５】
ステップ１００９で予測フラグが遮断フラグを意味する１でなかった場合には、比較器がアイドルサイクルレジスタに保持されたアイドルサイクルと、BECレジスタに保持されたBECとを比較し（ステップ１０１１）、アイドルサイクルがBEC以上である場合には、電源供給中であれば電源の遮断を行う（ステップ１０１０）。この部分の処理が本実施例独自の構成である。
【００７６】
なお、ステップ１０１１で比較に使用されるアイドルサイクルはステップ１００８において加算される前の直前のクロックにおけるアイドルサイクルであって、これがBECに等しいときには、そのクロックにおいてはアイドルサイクルが既にBECを「超過したこと」を意味する。本実施例ではステップ１０１１においてアイドルサイクルがBEC以上であるかどうかの判定を行っている。しかし、アイドルサイクルに対して加算処理をした後にBECとの比較を行ったり、あるいは非アイドル期間においてアイドルサイクルを０にではなく１にリセットしたりするような構成をとれば、ステップ１０１１での比較はアイドルサイクルがBECを「超えたかどうか」の判定となる。このような相違は単なる設計事項であって、本発明を特定する構成中の「アイドルサイクルがBECを超えたと前記比較器が判定した場合」とは、アイドル期間が始まってから当該クロックまでのクロック数がBECを超えたと比較器が判定した場合というように実質的な意味に解するものとし、当実施例の回路設計に限定して解釈してはならない。
【００７７】
実施例４の電源制御回路は、アイドル期間開始時において電源遮断を行わなかった場合において、アイドル期間がBECを超過した場合には電源遮断を行うことによりさらにエネルギー効率を高めたものである。
【実施例５】
【００７８】
<<実施例５の概要>>
【００７９】
実施例５は、第五発明の電源制御方法に関する。
【００８０】
第五発明の電源制御方法は、第二発明の電源制御回路における電源制御方法である。その概要については実施例２で説明した。
<<実施例５の構成>>
【００８１】
第五発明の電源制御方法は、アイドルサイクルカウントステップと、比較ステップと、電源遮断ステップと、電源復帰ステップとからなる。図７を再び用いて説明する。「アイドルサイクルカウントステップ」は、「アイドル期間中にクロック数をカウントする」ステップであり、ステップ０７０１、０７０２及び０７０８がこれに含まれる。「比較ステップ」は、「アイドル期間終了時にアイドルサイクルがBECを超過した場合には遮断フラグをレジスタに記録する」ステップであり、ステップ０７０４〜０７０７が含まれる。「電源遮断ステップ」は、「アイドル期間開始時に前記レジスタに遮断フラグが保持されている場合には前記論理回路ブロックへの電源供給を遮断する」ステップであり、０７０９及び０７１０が含まれる。「電源復帰ステップ」は、「アイドル期間終了時に前記論理回路ブロックへの電源供給が停止中であればこれを復帰させる」ステップであり、ステップ０７０３がこれに含まれる。
【００８２】
実施例１の電源制御方法は、簡易な構造の電源制御回路を使ってアイドル期間開始時からBECに至るまでのリーク電流によるエネルギー消失をさらに節減することが出来る電源制御方法である。
【実施例６】
【００８３】
<<実施例６の概要>>
【００８４】
実施例６は、第六発明の電源制御方法に関する。
【００８５】
第六発明の電源制御方法は、第三発明の電源制御回路における電源制御方法である。その概要については実施例３で説明した。
<<実施例６の構成>>
【００８６】
第六発明の電源制御方法は、温度計測ステップと、変換ステップとをさらに有すること以外は、第五発明の電源制御方法と同様である。以下では、温度計測ステップと変換ステップについてのみ説明し、それ以外のステップについては説明を省略する。
【００８７】
「温度計測ステップ」は、「前記論理回路ブロックの温度を計測する」ステップである。また、「変換ステップ」は、「前記温度計測ステップにより計測した温度を所定の対応表又は関数に基づきBECへ変換する」ステップである。これらの詳細については実施例３にて説明したので繰り返さない。なお、これらふたつのステップは、それ以外のステップと独立平行して実行することが出来る。
【００８８】
実施例６の電源制御方法は、論理回路ブロックの温度に適したBECを使って電源制御をおこなうことによりさらにエネルギー効率を高めた電源制御方法である。
【実施例７】
【００８９】
<<実施例７の概要>>
【００９０】
実施例７は、第七発明の電源制御方法に関する。
【００９１】
第七発明の電源制御方法は、第四発明の電源制御回路における電源制御方法である。その概要については実施例４で説明した。
<<実施例７の構成>>
第七発明の電源制御方法は、リミットステップをさらに有することを除き、第五発明又は第六発明の電源制御方法と同様である。「リミットステップ」は、「アイドル期間開始時に電源供給の遮断を行わなかったアイドル期間中において、その期間中のクロック数がBECを超過したクロックにおいて前記論理回路ブロックへの電源供給を直ちに遮断する」ステップであり、図１０におけるステップ１０１１以下がこれに相当する。
【００９２】
実施例７の電源制御方法は、アイドル期間開始時において電源遮断を行わなかった場合において、アイドル期間がBECを超過した場合には電源遮断を行うことによりさらにエネルギー効率を高めた電源制御方法である。
【実施例８】
【００９３】
<<実施例８の概要>>
【００９４】
実施例８は、第一発明の電源制御方法に関する。第一発明の電源制御回路には、アイドルサイクルとBECの比較の結果に応じて電源遮断処理又は電源非遮断処理のトリガーとなるフラグである予測フラグを予測フラグレジスタに書き込む構成が含まれる。実施例２乃至７はいずれも直前のアイドル期間における比較結果をもとに予測フラグを立てるものであった。本実施例では過去の複数回の履歴を用いて予測フラグをたてる例を紹介する。
【００９５】
図１１は、実施例8の電源制御回路における予測方式の概念図である。予測フラグレジスタには2ビットを使用し、０から３までの四つの値を予測フラグとして保持できるようにする。そして、アイドル期間終了時においてアイドルサイクルがBECを超えていた場合には予測フラグに１を加算し、そうでない場合には１を減算する。但し、予測フラグが既に３である場合には加算せず、あるいは予測フラグが既に０である場合には減算せず、そのままの数値とする。アイドル期間が始まるときには、この予測フラグを参照し、予測フラグが２又は３である場合には、電源を遮断し、０又は１である場合には、遮断を行わない。
【００９６】
このように構成することにより、例えば、BECを超えるアイドル期間が複数回連続した後、一度だけBECを超えないアイドル期間が来て、またそのあとすぐBECを超えるアイドル期間が来るような場合、本実施例の電源制御回路では、予測フラグの値は３から２に変化し、また３に戻る。毎回、BECを超えると予測することになるので、予測が外れるのは１回だけである。これに対し、実施例２の電源制御回路では、予測が２回外れる。このように、２ビットの予測フラグレジスタを用意して過去の複数回の履歴を予測に利用することにより、予測が当たる確率を高めることが出来る。
<<実施例８の構成>>
【００９７】
実施例８の電源制御回路のハードウェア構成は実施例１のそれと同様である。
【００９８】
図１２は、実施例８の電源制御回路の処理の流れを表すフロー図である。実施例２の電源制御回路と異なる部分のみを説明し、それ以外を省略する。異なるのは第一に、ステップ１２０５でアイドルサイクルとBECを比較した後の処理である。アイドルサイクルがBECを超える場合には、予測フラグが３より小さいかどうかを調べ、小さい場合には予測フラグに１を加算する（ステップ１２０６）。アイドルサイクルがBECを超えない場合には、予測フラグが０より大きいかどうかを調べ、大きい場合には、１を減算する（ステップ１２０７）。異なるもう一つの点は、ステップ１２０９において予測フラグが１と等しいかどうかではなく、２以上であるかどうかを調べる。そして２以上である場合には、電源の遮断を行う（ステップ１２１０）。
【００９９】
実施例８の電源制御回路は過去の複数回の履歴をもとに予測を立てることにより、予測が当たる確率を高めた電源制御回路である。
<比較データ>
【０１００】
実施例９では、本願発明の電源制御回路を実装したCPUと従来技術の電源制御回路を実装したCPUの消費エネルギーの比較データを提供する。
【０１０１】
評価を行うための集積回路として、ALU、シフタ、乗算器、除算器に動的な電源遮断を適用したMIPS R3000ベースのCPUチップを設計し、レイアウトから抽出したデータに基づいて実験と評価を行った。そして、アイドル期間のそれぞれの演算器の消費エネルギーを解析するために、市販の回路シミュレーターHsimを用いて回路レベルシミュレーションを行った。また、CPU全体のRTLモデルのVerilogシミュレーションを行った。Verilogシミュレーションは、(1)マルチメディア処理で使用されるDCT（離散コサイン変換）、(2)MiBenchに入っているクイックソートプログラム(QSORT)、(3)JPEGエンコードの3つのアプリケーションプログラムについて実行した。実行の際、現実的な時間内に実行するために入力データサイズを制限した。
【０１０２】
比較は、ATB(Adaptive Time-Base)方式、AHB(Adaptive History-Based)方式、AHB-LM方式の３方式の間で行った。ATB方式とは、従来技術で説明したTB方式に、温度に応じたBECを使用する構成を付加したものであり、AHB方式は実施例３の方式、すなわち、直前のアイドル期間がBECを超えたかどうかで次回の電源遮断の有無を決し、かつ、温度に応じたBECを使用するものである。AHB-LM方式は、実施例４の方式、すなわち、AHB方式に、アイドル期間開始時において電源遮断を行わなかったときにアイドルサイクルがBECを超えた時点で電源遮断を行う構成を付加した方式である。
【０１０３】
表１は比較試験の結果を表す表である。表中の数値は、AHB方式とAHB-LM方式それぞれを適用したときの消費エネルギーからATB方式適用時の消費エネルギーを引いた差を、ATB方式適用時の消費エネルギーで除したものである。まず、ATB方式とAHB方式の比較では、DCTでは，AHB方式は65℃と100℃の両方でATB方式よりも多くのエネルギーを削減した。これに対し，QSORTではAHB方式のエネルギー削減効果がATB方式よりも小さかった。QSORTではDCTと比べてアイドルサイクルがBECを超えなかったアイドル期間にアイドルサイクルがBECを超えるアイドル期間が続くケースが多く、電源遮断によるエネルギー削減機会が失われていることが原因であった。AHB-LM方式はこの問題を解決している。その結果QSORTにおいて，AHB-LM方式はATB方式よりも65℃で4%，100℃で3%の消費エネルギーを削減することができた。
<表１>
2011186934.tif 000003
【０１０４】
細粒度電源遮断において、エネルギー削減効果がアプリケーションに依存することは知られており、ATB方式、AHB方式及びAHB-LM方式もその例外ではない。以上の比較テストでは、一定のアプリケーションにおいて、AHB方式がATB方式に比べてエネルギー削減効果があることが実証できた。この結果は、実施例２のHB方式を従来技術のTB方式と比べても同様であると考えられる。また、実施例４のAHB-LM方式は３方式の中で最も良いエネルギー削減効果を達成した。
【符号の説明】
【０１０５】
０６０１        電源制御回路
０６０２        BECレジスタ
０６０３        アイドルサイクルレジスタ
０６０４        予測フラグレジスタ
０６０５        アイドルサイクルカウンタ
０６０６        比較器
０６０７        電源遮断器
０６０８        論理回路ブロック
０６０９        入力線
０６１０        電源
【図１】
2011186934.tif 000004
【図２】
2011186934.tif 000005
【図３】
2011186934.tif 000006
【図４】
2011186934.tif 000007
【図５】
2011186934.tif 000008
【図６】
2011186934.tif 000009
【図７】
2011186934.tif 000010
【図８】
2011186934.tif 000011
【図９】
2011186934.tif 000012
【図１０】
2011186934.tif 000013
【図１１】
2011186934.tif 000014
【図１２】
2011186934.tif 000015