(57)【特許請求の範囲】
【請求項１】
制御信号に応じてそれぞれ制御された半導体基板の基板電圧と回路の電源電圧とを供給されて動作する半導体回路と、
上記半導体回路のクリティカルパスの遅延をモニタする遅延モニタ回路と、
上記半導体回路の消費電力をモニタする消費電力モニタ回路と、
上記遅延モニタ回路においてモニタされる遅延が上記半導体回路の動作サイクル時間に応じた所定の遅延を越えない条件の元で、上記基板電圧を一定に保ちつつ、上記遅延モニタ回路のモニタ値に基づいて、上記消費電力モニタ回路においてモニタされる消費電力が最小となるように上記電源電圧を調整する制御信号を出力する第１の処理と、上記電源電圧を一定に保ちつつ、上記消費電力モニタ回路のモニタ値に基づいて、上記消費電力モニタ回路においてモニタされる消費電力が最小となるように上記基板電圧を調節する制御信号を出力する第２の処理とを交互に反復する制御回路と、
を有する
半導体装置。
【請求項２】
上記制御回路は、
上記第１の処理において、上記遅延モニタ回路のモニタ値が上記半導体回路の動作サイクル時間に応じた所定の遅延値を越えない条件の元で、上記電源電圧を最小に調節する制御信号を出力し、上記電源電圧が最小に調節された状態における上記消費電力モニタ回路のモニタ値を取得し、
上記第２の処理において、上記第１の処理を反復して得られる一連の消費電力のモニタ値と、該一連のモニタ値のそれぞれが取得された際の上記基板電圧の値とに基づいて、上記半導体回路の消費電力を減少させ得る新たな基板電圧を決定し、現在供給中の基板電圧を該決定した基板電圧に変更する制御信号を出力する、
請求項１に記載の半導体装置。
【請求項３】
上記消費電力モニタ回路は、
上記半導体回路のトランジスタのリーク電流をモニタするリーク電流モニタ回路と、
上記半導体回路に供給中の電源電圧に関する情報と、上記半導体回路の動作周波数に関する情報と、上記リーク電流モニタ回路においてモニタされるリーク電流とに基づいて、上記半導体回路の消費電力を演算する演算回路と、
を含む、
請求項１または２に記載の半導体装置。
【請求項４】
上記リーク電流モニタ回路は、
上記半導体回路に含まれるトランジスタと等価な構造を有するリーク電流モニタ用トランジスタと、
上記リーク電流モニタ用トランジスタに流れるリーク電流によって充電もしくは放電されるキャパシタと、
上記リーク電流による充電または放電に応じて上記キャパシタの電圧が第１の電圧から第２の電圧に変化するまでに要する時間を計測する計時回路と、
上記計時回路において計時を開始する前に、上記キャパシタの電圧を上記第１の電圧に設定する電圧設定回路と、
を含む、
請求項３に記載の半導体装置。
【請求項５】
上記リーク電流モニタ回路は、
上記半導体回路の第１導電型トランジスタのリーク電流をモニタする第１のリーク電流モニタ回路と、
上記半導体回路の第２導電型トランジスタのリーク電流をモニタする第２のリーク電流モニタ回路と、
を含み、
上記演算回路は、上記第１のリーク電流モニタ回路および上記第２のリーク電流モニタ回路においてそれぞれモニタされるリーク電流の平均値を用いて上記半導体回路の消費電力を演算する、
請求項３に記載の半導体装置。
【請求項６】
上記リーク電流モニタ回路は、
上記半導体回路の第１導電型トランジスタのリーク電流をモニタする第１のリーク電流モニタ回路と、
上記半導体回路の第２導電型トランジスタのリーク電流をモニタする第２のリーク電流モニタ回路と、
を含み、
上記演算回路は、上記第１のリーク電流モニタ回路および上記第２のリーク電流モニタ回路においてそれぞれモニタされるリーク電流に基づいて、上記半導体回路に含まれる所定のゲート回路のリーク電流を換算し、該換算結果を用いて上記半導体回路の消費電力を演算する、
請求項３に記載の半導体装置。
【請求項７】
上記半導体回路は、
上記電源電圧の供給を遮断する電源スイッチと、
上記電源スイッチを介して上記電源電圧が供給される回路ブロックと、
を含み、
上記演算回路は、上記半導体回路において電源電圧を供給中のゲート回路の数に関する情報を用いて、上記半導体回路の消費電力を演算する、
請求項３に記載の半導体装置。
【請求項８】
上記遅延モニタ回路は、
第１の信号と、該第１の信号に対して上記半導体回路の動作サイクル時間に応じた遅延を有する第２の信号とを発生する信号発生回路と、
上記第１の信号を入力して伝播させ、上記半導体回路のクリティカルパスと等価な、もしくは相関性を持った遅延を与えて出力する遅延回路と、
上記第１の信号に対する上記第２の信号の遅延を基準として、上記第１の信号に対する上記遅延回路の出力信号の遅延を検出する遅延検出回路と、
を含む、
請求項１または２に記載の半導体装置。
【請求項９】
上記半導体回路および上記遅延モニタ回路に供給するクロック信号の周波数を、上記半導体回路に要求される処理速度の情報に応じて切り替えるクロック周波数切り替え回路を更に有し、
上記半導体回路は、上記クロック信号の周波数に応じた処理速度で動作し、
上記遅延モニタ回路の信号発生回路は、上記クロック信号のサイクル時間に応じた遅延差を有する上記第１の信号および上記第２の信号を発生する、
請求項８に記載の半導体装置。
【請求項１０】
上記クロック周波数切り替え回路は、
上記半導体回路および上記遅延モニタ回路に供給するクロック信号の周波数を低い周波数から高い周波数へ切り替える場合、上記遅延モニタ回路に供給するクロック信号の周波数を上記半導体回路より先に高い周波数へ切り替え、該切り替え後、上記制御回路の上記第１の処理によって上記電源電圧が最小に調節されてから、上記半導体回路に供給するクロック信号の周波数を高い周波数へ切り替え、
上記半導体回路および上記遅延モニタ回路に供給するクロック信号の周波数を高い周波数から低い周波数へ切り替える場合は、上記半導体回路および上記遅延モニタ回路に供給するクロック信号の周波数を共通のタイミングで低い周波数へ切り替える、
請求項９に記載の半導体装置。
【請求項１１】
上記制御回路から出力される制御信号に応じた上記電源電圧を発生し、上記半導体回路に供給する電源供給回路を有する、
請求項１または２に記載の半導体装置。
【請求項１２】
上記制御回路から出力される制御信号に応じた上記基板電圧を発生し、上記半導体回路に供給する基板電圧供給回路を有する、
請求項１または２に記載の半導体装置。
【請求項１３】
半導体回路に供給される電圧を制御する半導体回路の供給電圧制御方法であって、
交互に反復して実行される第１の工程および第２の工程を有し、
上記第１の工程は、
半導体回路のクリティカルパスの遅延をモニタし、該モニタした遅延の値が上記半導体回路の動作サイクル時間に応じた所定の遅延値を越えない条件の元で、上記半導体回路の電源電圧を最小に調節する第３の工程と、
上記第３の工程において上記電源電圧が最小に調節された状態における上記半導体回路の消費電力をモニタする第４の工程と、
を含み、
上記第２の工程において、上記第１の工程を反復して得られる一連の消費電力のモニタ値と、該一連のモニタ値のそれぞれが取得された際に上記半導体回路の半導体基板に供給される基板電圧の値とに基づいて、上記半導体回路の消費電力を減少させ得る新たな基板電圧を決定し、現在供給中の基板電圧を該決定した基板電圧に変更する、
半導体回路の供給電圧制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電源電圧等を制御することによって消費電力の削減を図る機能を有する半導体装置に関するものである。
【背景技術】
【０００２】
近年の半導体集積回路（以降、ＬＳＩと表記する）では、低消費電力化のために電源電圧を下げる方法が一般に用いられている。これは、ＬＳＩの消費電力の主な要素であるキャパシタの充放電電力が電源電圧の２乗に比例しており、電源電圧の低減によって充放電電力を大幅に減らすことができるためである。
【０００３】
このような観点から、ＬＳＩの動作周波数やプロセスばらつき、温度の変化などに応じて電源電圧を動的に制御し、ＬＳＩが動作可能な最低の電源電圧を適応的に供給する方法が提案されている（例えば特許文献１）。この方法では、一般に、ＬＳＩのクリティカルパス相当の遅延特性を有するモニタ用の遅延回路を用いてクリティカルパスの遅延を把握し、把握した遅延がＬＳＩの動作サイクル時間で規定される限界内に収まるように電源電圧を制御している。
【特許文献１】特開２００２−１００９６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
一方、近年の半導体プロセスの微細化により、充放電電力に加えてサブスレッショルドリーク電流（以降、リーク電流と表記する）によるリーク電力が大きな問題になってきている。そのため、従来のような電源電圧の制御のみでは、リーク電力を含めた全体の消費電力を削減することが難しくなりつつある。
【０００５】
リーク電力を削減する方法としては、しきい値が高くリーク電流が小さいトランジスタで構成された電源スイッチを、ＬＳＩの機能ブロックごとに電源供給ライン上に挿入し、スタンバイ状態の機能ブロックへの電源供給を電源スイッチによって遮断する方法が一般的である。
【０００６】
しかしながら、この方法で削減できるのはスタンバイ状態のリーク電力のみであり、アクティブ状態のリーク電力を削減することができないという不利益がある。
【０００７】
本発明はかかる事情に鑑みてなされたものであり、その目的は、リーク電力を含めた半導体回路のアクティブ状態の消費電力を削減することができる半導体装置、および、半導体回路の供給電圧の制御方法を提供することにある。
【課題を解決するための手段】
【０００８】
第１の発明の半導体装置は、制御信号に応じてそれぞれ制御された半導体基板の基板電圧と回路の電源電圧とを供給されて動作する半導体回路と、上記半導体回路のクリティカルパスの遅延をモニタする遅延モニタ回路と、上記半導体回路の消費電力をモニタする消費電力モニタ回路と、上記遅延モニタ回路においてモニタされる遅延が上記半導体回路の動作サイクル時間に応じた所定の遅延を越えない条件の元で、上記基板電圧を一定に保ちつつ、上記遅延モニタ回路のモニタ値に基づいて、上記消費電力モニタ回路においてモニタされる消費電力が最小となるように上記電源電圧を調整する制御信号を出力する第１の処理と、上記電源電圧を一定に保ちつつ、上記消費電力モニタ回路のモニタ値に基づいて、上記消費電力モニタ回路においてモニタされる消費電力が最小となるように上記基板電圧を調節する制御信号を出力する第２の処理とを交互に反復する制御回路と、を有する。
【０００９】
上記第１の発明によれば、上記遅延モニタ回路においてモニタされる上記半導体回路のクリティカルパスの遅延が上記半導体回路の動作サイクル時間に応じた所定の遅延を超えない条件の元で、上記消費電力モニタ回路においてモニタされる上記半導体回路の消費電力が最小となるように、上記半導体回路の基板電圧と電源電圧とがそれぞれ制御される。
上記基板電圧を変化させることにより上記半導体回路中のトランジスタのしきい値が変化して、そのリーク電流が変化する。また、回路の電源電圧を変化させることにより、上記半導体回路中のキャパシタ成分の充放電電力が変化する。したがって、上述のように上記基板電圧と上記電源電圧とをそれぞれ制御することによって、全体の消費電力に占めるキャパシタ成分の充放電電力とトランジスタのリーク電力との割合を、全体の消費電力が最も小さくなる適切な割合に変化させることが可能になる。
【００１０】
また、上記第１の発明によれば、上記制御回路は、上記遅延モニタ回路のモニタ値に基づいて、上記基板電圧を一定に保ちつつ上記電源電圧を調節する制御信号を出力する第１の処理と、上記消費電力モニタ回路のモニタ値に基づいて、上記電源電圧を一定に保ちつつ上記基板電圧を調節する制御信号を出力する第２の処理とを交互に反復する。
これにより、上記第１の処理において、上記基板電圧が一定に保たれた状態で、上記遅延モニタ回路のモニタ値に基づき上記電源電圧が調節され、上記第２の処理において、上記電源電圧が一定に保たれた状態で、上記消費電力モニタ回路のモニタ値に基づき上記基板電圧が調節される。そして、この電源電圧の調節と基板電圧の調節とが交互に反復されることにより、上記消費電力モニタ回路においてモニタされる消費電力が最小となる電源電圧と基板電圧とが決定される。
【００１１】
この場合、上記第１の処理では、例えば、上記遅延モニタ回路のモニタ値が上記半導体回路の動作サイクル時間に応じた所定の遅延値を越えない条件の元で、上記電源電圧を最小に調節する制御信号を出力し、上記電源電圧が最小に調節された状態における上記消費電力モニタ回路のモニタ値を取得しても良い。また、上記第２の処理では、上記第１の処理を反復して得られる一連の消費電力のモニタ値と、該一連のモニタ値のそれぞれが取得された際の上記基板電圧の値とに基づいて、上記半導体回路の消費電力を減少させ得る新たな基板電圧を決定し、現在供給中の基板電圧を該決定した基板電圧に変更する制御信号を出力しても良い。
【００１２】
なお、本明細書において「動作サイクル時間」は、半導体回路の動作が周期的に実行される際の１サイクルの時間を意味しており、半導体回路の動作周波数によって規定する１サイクルの時間と等しい。
【００１３】
上記第１の処理によれば、上記遅延モニタ回路のモニタ値が上記半導体回路の動作サイクル時間（すなわち、これを越えた場合に上記半導体回路の動作に支障を来たす遅延時間）に応じた所定の遅延値を越えない条件の元で、上記電源電圧が最小に調節される。そして、この最小に調節された状態における上記消費電力モニタ回路のモニタ値が制御回路に取得される。
上記第２の処理によれば、上記第１の処理を反復して得られる一連の消費電力のモニタ値と、該一連のモニタ値のそれぞれが取得された際の上記基板電圧の値とに基づいて、上記半導体回路の消費電力を減少させ得る新たな基板電圧が決定され、現在供給中の基板電圧が該決定した基板電圧に変更される。例えば、前回に比べて今回の消費電力が増加する場合、前回より今回の基板電圧が高いなら、次回の基板電圧が今回に比べて低く設定され、逆に、前回より今回の基板電圧が低いなら、次回の基板電圧が今回に比べて高く設定される。また、例えば、前回に比べて今回の消費電力が減少する場合、前回より今回の基板電圧が高いなら、次回の基板電圧が今回に比べて更に高く設定され、逆に、前回より今回の基板電圧が低いなら、次回の基板電圧が今回に比べて更に低く設定される。
【００１４】
また、上記消費電力モニタ回路は、上記半導体回路のトランジスタのリーク電流をモニタするリーク電流モニタ回路と、上記半導体回路に供給中の電源電圧に関する情報と、上記半導体回路の動作周波数に関する情報と、上記リーク電流モニタ回路においてモニタされるリーク電流とに基づいて、上記半導体回路の消費電力を演算する演算回路とを含んでも良い。
上記の構成によれば、上記半導体回路に供給中の電源電圧に関する情報と、上記半導体回路の動作周波数に関する情報と、上記リーク電流モニタ回路においてモニタされるリーク電流とに基づいて、上記半導体回路の消費電力が演算される。これにより、例えば消費電力を実測する方法に比べて、消費電力のモニタ値の時間的な変動が小さくなり、電源電圧や基板電圧の制御を不安定化させずに済む。
【００１５】
この場合、上記リーク電流モニタ回路は、上記半導体回路に含まれるトランジスタと等価な構造を有するリーク電流モニタ用トランジスタと、上記リーク電流モニタ用トランジスタに流れるリーク電流によって充電もしくは放電されるキャパシタと、上記リーク電流による充電または放電に応じて上記キャパシタの電圧が第１の電圧から第２の電圧に変化するまでに要する時間を計測する計時回路と、上記計時回路において計時を開始する前に、上記キャパシタの電圧を上記第１の電圧に設定する電圧設定回路とを含んでも良い。
上記の構成によれば、上記計時回路において計時が開始される前に、上記キャパシタの電圧は上記第１の電圧に設定される。上記計時回路の計時が開始されると、上記リーク電流モニタ用トランジスタのリーク電流により上記キャパシタが充電または放電され、上記キャパシタの電圧は上記第１の電圧から変化を開始する。そして、上記キャパシタの電圧が上記第１の電圧から上記第２の電圧に変化するまでに要した時間が、上記計時回路によって計測される。この計測値は、上記リーク電流モニタ用トランジスタと等価な構造を有する上記半導体回路中のトランジスタのリーク電流に応じた値を持つ。
【００１６】
また、上記リーク電流モニタ回路は、上記半導体回路の第１導電型トランジスタのリーク電流をモニタする第１のリーク電流モニタ回路と、上記半導体回路の第２導電型トランジスタのリーク電流をモニタする第２のリーク電流モニタ回路とを含んでも良い。
この場合、上記演算回路は、上記第１のリーク電流モニタ回路および上記第２のリーク電流モニタ回路においてそれぞれモニタされるリーク電流の平均値を用いて上記半導体回路の消費電力を演算しても良い。
あるいは、上記演算回路は、上記第１のリーク電流モニタ回路および上記第２のリーク電流モニタ回路においてそれぞれモニタされるリーク電流に基づいて、上記半導体回路に含まれる所定のゲート回路のリーク電流を換算し、該換算結果を用いて上記半導体回路の消費電力を演算しても良い。
【００１７】
更に、上記半導体回路は、上記電源電圧の供給を遮断する電源スイッチと、上記電源スイッチを介して上記電源電圧が供給される回路ブロックとを含んでも良く、この場合、上記演算回路は、上記半導体回路において電源電圧を供給中のゲート回路の数に関する情報を用いて、上記半導体回路の消費電力を演算しても良い。
【００１８】
また、上記遅延モニタ回路は、信号発生回路と、遅延回路と、遅延検出回路とを有しても良い。
上記信号発生回路は、第１の信号と、該第１の信号に対して上記半導体回路の動作サイクル時間に応じた遅延を有する第２の信号とを発生する。
上記遅延回路は、上記第１の信号を入力して伝播させ、上記半導体回路のクリティカルパスと等価な、もしくは相関性を持った遅延を与えて出力する。
遅延検出回路は、上記第１の信号に対する上記遅延回路の出力信号の遅延を、上記第１の信号に対する上記第２の信号の遅延を基準として検出する。
【００１９】
上記の構成によると、上記第２の信号は、上記第１の信号に対して、上記半導体回路の動作サイクル時間に応じた遅延を有する。また、上記第１の信号に対する上記遅延回路の出力信号の遅延は、上記クリティカルパスと等価な、もしくは相関性を持った遅延を有する。そして、上記遅延検出回路においては、上記第１の信号に対する上記第２の信号の遅延を基準として、上記第１の信号に対する上記遅延回路の出力信号の遅延が検出される。
これにより、上記遅延検出回路では、上記半導体回路の動作に支障を来たす遅延時間である上記半導体回路の動作サイクル時間を基準として、これに対し上記クリティカルパスの遅延が持つ余裕時間に応じた遅延検出値が得られる。
【００２０】
また、上記第１の発明は、上記半導体回路および上記遅延モニタ回路に供給するクロック信号の周波数を、上記半導体回路に要求される処理速度の情報に応じて切り替えるクロック周波数切り替え回路を更に有しても良い。そして、上記半導体回路は、上記クロック信号の周波数に応じた処理速度で動作し、上記遅延モニタ回路の信号発生回路は、上記クロック信号のサイクル時間に応じた遅延差を有する上記第１の信号および上記第２の信号を発生しても良い。
これにより、例えば上記半導体回路に高速な処理速度が要求される場合、上記半導体回路に高い周波数のクロック信号を供給し、上記半導体回路に高速な処理速度が要求されない場合、上記半導体回路に低い周波数のクロック信号を供給するなど            、処理速度に応じてクロック信号の周波数を切り替えて、消費電力を削減することが可能になる。
【００２１】
この場合、上記クロック周波数切り替え回路は、上記半導体回路および上記遅延モニタ回路に供給するクロック信号の周波数を低い周波数から高い周波数へ切り替える場合、上記遅延モニタ回路に供給するクロック信号の周波数を上記半導体回路より先に高い周波数へ切り替え、該切り替え後、上記制御回路の上記第１の処理によって上記電源電圧が最小に調節されてから、上記半導体回路に供給するクロック信号の周波数を高い周波数へ切り替えることが望ましい。また、上記半導体回路および上記遅延モニタ回路に供給するクロック信号の周波数を高い周波数から低い周波数へ切り替える場合は、上記半導体回路および上記遅延モニタ回路に供給するクロック信号の周波数を共通のタイミングで低い周波数へ切り替えることが望ましい。
これにより、上記半導体回路および上記遅延モニタ回路に供給するクロック信号の周波数を上昇させる際に、上記半導体回路が動作可能なレベルまで上記電源電圧を予め上昇させた後で、クロック信号の周波数の切り替えが行われる。
また、上記半導体回路および上記遅延モニタ回路に供給するクロック信号の周波数を低下させる際に、上記遅延モニタ回路において上記半導体回路のクリティカルパスの遅延を正常にモニタできる状態を保ったままで、クロック信号の周波数の切り替えが行われる。
【００２２】
本発明の第２の発明は、半導体回路に供給される電圧を制御する半導体回路の供給電圧制御方法であって、交互に反復して実行される第１の工程および第２の工程を有する。
上記第１の工程は、半導体回路のクリティカルパスの遅延をモニタし、該モニタした遅延の値が上記半導体回路の動作サイクル時間に応じた所定の遅延値を越えない条件の元で、上記半導体回路の電源電圧を最小に調節する第３の工程と、上記第３の工程において上記電源電圧が最小に調節された状態における上記半導体回路の消費電力をモニタする第４の工程とを含む。
上記第２の工程においては、上記第１の工程を反復して得られる一連の消費電力のモニタ値と、該一連のモニタ値のそれぞれが取得された際に上記半導体回路の半導体基板に供給される基板電圧の値とに基づいて、上記半導体回路の消費電力を減少させ得る新たな基板電圧を決定し、現在供給中の基板電圧を該決定した基板電圧に変更する。
【００２３】
上記第２の発明によれば、上記第１の工程において、上記半導体回路のクリティカルパスの遅延がモニタされ、該モニタ値が上記半導体回路の動作サイクル時間に応じた所定の遅延値を越えない条件の元で、上記半導体回路の電源電圧が最小に調節される。そして、上記電源電圧が最小に調節された状態における上記半導体回路の消費電力がモニタされる。上記第２の工程では、上記第１の工程を反復して得られる一連の消費電力のモニタ値と、該一連のモニタ値のそれぞれが取得された際に上記半導体回路の半導体基板に供給される基板電圧の値とに基づいて、上記半導体回路の消費電力を減少させ得る新たな基板電圧が決定され、現在供給中の基板電圧が該決定された基板電圧に変更される。例えば、前回に比べて今回の消費電力が増加する場合、前回より今回の基板電圧が高いなら、次回の基板電圧が今回に比べて低く設定され、逆に、前回より今回の基板電圧が低いなら、次回の基板電圧が今回に比べて高く設定される。また、例えば、前回に比べて今回の消費電力が減少する場合、前回より今回の基板電圧が高いなら、次回の基板電圧が今回に比べて更に高く設定され、逆に、前回より今回の基板電圧が低いなら、次回の基板電圧が今回に比べて更に低く設定される。
【発明の効果】
【００２４】
本発明によれば、電源電圧と基板電圧とをそれぞれ制御して、半導体回路のアクティブ状態の消費電力に含まれる充放電電力とリーク電力との割合を、全体の消費電力が最小になる適切な割合に変化させることができる。これにより、電源電圧のみの制御を行う方法に比べて、リーク電力を含めた半導体回路のアクティブ状態の消費電力を効果的に削減することができる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の３つの実施形態について、図面を参照して説明する。
【００２６】
＜第１の実施形態＞
図１は、本発明の第１の実施形態に係る半導体装置の構成の一例を示す図である。
【００２７】
図１に示す半導体装置を説明する前に、まず、本実施形態において半導体回路の消費電力を削減する原理について述べる。
【００２８】
一般に半導体回路の消費電力は、キャパシタ成分の充放電により消費される充放電電力と、トランジスタのリーク電流により消費されるリーク電力と、電源−グランド間に直列接続されるトランジスタの貫通電流により消費される電力との和によって表すことができる。これら３つの成分のうち、貫通電流による消費電力は他の２つの成分に比較して小さいため、多くの場合、半導体回路の消費電力は充放電電力とリーク電力との和で近似することが可能である。
【００２９】
既に述べたように、キャパシタ成分の充放電電力は電源電圧の２乗に比例するため、電源電圧を低下させることは充放電電力の削減に非常に有効である。しかしながら、近年の製造プロセスの微細化によってリーク電流が大きくなりつつあるため、従来の技術のように電源電圧の制御のみでは、リーク電力を含めたトータルの消費電力を削減することが困難になってきている。言い換えると、従来の技術は、主に充放電電力の削減に対して効果を有するものの、充放電電力とリーク電力とを合わせた全体の消費電力を削減する観点では十分でなく、更に消費電力を削減できる余地を残している。
【００３０】
図２〜図４は、要求された動作速度を満たすように半導体回路の遅延を一定に保った状態で、基板電圧ＶBSと電源電圧ＶDDとを変化させた場合の半導体回路の消費電力を示す図である。
図の縦軸は半導体回路の正規化した消費電力を示し、横軸は半導体基板に供給する基板電圧を示す。
【００３１】
基板電圧ＶBSを変化させると、トランジスタのしきい値が変化するため、リーク電流が変化する。一方、トランジスタのしきい値の変化は、半導体回路の遅延を変化させるため、半導体回路の遅延を一定に保とうとすると、電源電圧ＶDDを変化させる必要がある。その結果、全体の消費電力に占める充放電電力とリーク電力との割合が変化し、全体の消費電力も変化する。
【００３２】
高温条件下の例（図２）では、リーク電流が大きくなるため、全体の消費電力に占めるリーク電力の割合が増加する。したがって、基板電圧ＶBSを逆方向に印加することでリーク電流を抑制した状態が、全体の消費電力を最小とする条件になる。図２の例では、電源電圧ＶDD＝０．９Ｖ、基板電圧ＶBS＝−０．６Ｖのときに、全体の消費電力が最小になる。
【００３３】
一方、低温条件下の例（図３）では、リーク電流が減少するため、全体の消費電力に占める充放電電力の割合が増加する。したがって、基板電圧ＶBSを順方向に印加して半導体回路の動作速度を上げ、電源電圧ＶDDを下げることで充放電電力を抑制した状態が、全体の消費電力を最小とする条件となる。図３の例では、電源電圧ＶDD＝０．６５Ｖ、基板電圧ＶBS＝０．４Ｖのときに、全体の消費電力が最小になる。
【００３４】
最後に室温条件下の例（図４）では、高温条件と低温条件の中間におけるゼロバイアス条件近辺が消費電力を最小とする条件となる。図４の例では、電源電圧ＶDD＝０．８Ｖ、基板電圧ＶBS＝０Ｖのときに、全体の消費電力が最小になる。
【００３５】
以上の例からも分かるように、要求された動作速度を満たす範囲で全体の消費電力を最小にするためには、単に電源電圧を下げるだけでは不十分であり、電源電圧と基板電圧とをそれぞれ調節して、全体の消費電力に占めるリーク電力と充放電電力との割合を適切に設定する必要がある。
本実施形態は、製造プロセスによる特性のばらつきや動作環境の変化などに応じて、電源電圧および基板電圧を適応的に制御することにより、リーク電力と充放電電力とを含めた全体の消費電力の最小化を図るものである。
【００３６】
次に、図１に示す半導体装置を説明する。
図１に示す半導体装置は、ターゲット回路１と、クロック発生回路２と、遅延モニタ回路３と、消費電力モニタ回路４と、制御回路５とを有する。
なお、ターゲット回路１は、本発明の半導体回路の一実施形態である。
遅延モニタ回路３は、本発明の遅延モニタ回路の一実施形態である。
消費電力モニタ回路４は、本発明の消費電力モニタ回路の一実施形態である。
制御回路５は、本発明の制御回路の一実施形態である。
【００３７】
［ターゲット回路１］
ターゲット回路１は、半導体基板上に形成される半導体回路であり、例えばＣＰＵやＤＳＰ、その他の論理回路などであり得る。ターゲット回路１には、回路の電源電圧ＶDDが電源供給回路６から供給されるとともに、半導体基板の基板電圧ＶBSが基板電圧供給回路７から供給される。
【００３８】
［電源供給回路６］
電源供給回路６は、制御回路５の制御信号に応じて制御された電源電圧ＶDDを発生し、ターゲット回路１に供給する。
【００３９】
［基板電圧供給回路７］
基板電圧供給回路７は、制御回路５の制御信号に応じて制御された基板電圧ＶBSを発生し、ターゲット回路１に供給する。
【００４０】
［クロック発生回路２］
クロック発生回路２は、ターゲット回路１および遅延モニタ回路３に共通のクロック信号ＣＫを発生する。
【００４１】
［遅延モニタ回路３］
遅延モニタ回路３は、ターゲット回路１のクリティカルパスの遅延をモニタする回路であり、例えば図１に示すように、パルス発生回路８と、遅延回路９と、遅延検出回路１０と、レジスタ１１とを有する。
遅延回路９は、本発明の遅延回路の一実施形態である。
パルス発生回路８は、本発明の信号発生回路の一実施形態である。
遅延検出回路１０は、本発明の遅延検出回路の一実施形態である。
【００４２】
パルス発生回路８は、パルス信号Ｓ１と、このパルス信号Ｓ１に対してターゲット回路１の動作サイクル時間に応じた遅延を有するパルス信号Ｓ１Ａとを発生する。
例えば、クロック発生回路２から供給されるクロック信号ＣＫに基づいて、このクロック信号ＣＫの１サイクルに等しい遅延差を有するパルス信号Ｓ１およびパルス信号Ｓ１Ａを生成する。
パルス発生回路８において発生したパルス信号Ｓ１は遅延回路９に供給され、パルス信号Ｓ１Ａは遅延検出回路１０に供給される。
【００４３】
遅延回路９は、パルス発生回路８において発生するパルス信号Ｓ１を入力して伝播させ、ターゲット回路１のクリティカルパスと等価な、もしくは相関性を持った遅延を与えて出力する。
【００４４】
遅延回路９は、例えば図１に示すように、ターゲット回路１と共通の電源電圧ＶDDおよび基板電圧ＶBSが供給されており、これらの電圧に対する遅延特性が、ターゲット回路１のクリティカルパスの遅延特性と等価であるか、もしくは相関性を有している。そのため、遅延回路９の遅延は、電源電圧ＶDDおよび基板電圧ＶBSが変化する場合でも、ターゲット回路１のクリティカルパスの遅延と等価であるか、もしくはこれと相関性を有する。
【００４５】
また、遅延回路９は、ターゲット回路１と共通の半導体チップ上に形成されることが望ましい。これにより、遅延回路９の遅延特性は、製造プロセスに起因する特性ばらつきや温度の変動などがある場合でも、ターゲット回路１のクリティカルパスの遅延特性と等価であるか、もしくはこれに相関性を有する。
【００４６】
図５は、遅延回路９の構成の一例を示す図である。
図５に例示する遅延回路９は、ゲート回路の遅延を模擬するためのゲート遅延回路９−１と、配線の遅延を模擬するための配線遅延回路９−２とを有する。
【００４７】
ゲート遅延回路９−１は、縦続に接続されたゲート回路９−１ａ〜９−１ｃと、各ゲート回路の入力信号もしくは出力信号の中からゲート遅延設定信号Ｓ３に応じた１つの信号を選択して出力するセレクタ回路９−１ｄとを有する。
【００４８】
縦続接続されたゲート回路９−１ａ〜９−１ｃの初段には、パルス信号Ｓ１が入力される。入力されたパルス信号Ｓ１は、ゲート回路９−１ａ〜９−１ｃの初段から後段に向かって順次に伝播し、各ゲート回路から異なる遅延を持つ信号として出力される。この複数の遅延信号の中から、ゲート遅延設定信号Ｓ３に応じた１つの遅延信号が選択されて出力される。
【００４９】
配線遅延回路９−２は、縦続に接続された配線遅延素子９−２ａ〜９−２ｃと、各配線遅延素子の入力信号もしくは出力信号の中から配線遅延設定信号Ｓ４に応じた１つの信号を選択して出力するセレクタ回路９−２ｄとを有する。
【００５０】
縦続接続された配線遅延素子９−２ａ〜９−２ｃの初段には、ゲート遅延回路９−１のセレクタ回路９−１ｄより出力される遅延信号が入力される。入力された遅延信号は、配線遅延素子９−２ａ〜９−２ｃを更に伝播し、各配線遅延素子から異なる遅延を持つ信号として出力される。この複数の遅延信号の中から、配線遅延設定信号Ｓ４に応じた１つの遅延信号が選択され、信号Ｓ２として出力される。
【００５１】
このような構成により、ゲート回路の遅延成分と配線の遅延成分とをそれぞれ独立に調節することが可能になるため、遅延回路９の遅延特性とターゲット回路１のクリティカルパスの遅延特性とを精度良く合わせる、もしくは両者の特性の間に高い相関性を持たせることができる。
【００５２】
なお、図５の例ではゲート遅延回路９−１の後段に配線遅延回路９−２が接続されているが、この順序を逆に接続しても同様な機能を実現可能である。
また、遅延回路９を構成する遅延素子はゲート回路や配線遅延素子に限定されるものではなく、ターゲット回路１の内部において信号遅延の要因となる他の遅延素子を加えても良い。
【００５３】
レジスタ１１は、遅延回路９に入力するゲート遅延設定信号Ｓ３および配線遅延設定信号Ｓ４を保持する。これらの信号は、図示しないＣＰＵ等の制御装置によって任意に書き換えることが可能である。
【００５４】
遅延検出回路１０は、パルス信号Ｓ１に対するパルス信号Ｓ１Ａの遅延を基準として、パルス信号Ｓ１に対する遅延回路９の出力信号Ｓ２の遅延を検出する。
【００５５】
図６は、遅延検出回路１０の構成の一例を示す図である。
図６に例示する遅延検出回路１０は、縦続に接続されたゲート回路１０−１〜１０−５と、各ゲート回路の入力信号をパルス信号Ｓ１Ａに同期して保持するフリップフロップ１０−６〜１０−１０と、各フリップフロップに保持されるビットデータを数値データに変換するエンコーダ１０−１１とを有する。
【００５６】
縦続接続されたゲート回路１０−１〜１０−５の初段には、遅延回路９の出力信号Ｓ２が入力される。入力された信号Ｓ２は、ゲート回路１０−１〜１０−５の初段から後段に向かって順次に伝播する。この伝播の過程で各フリップフロップのクロック端子にパルス信号Ｓ１Ａが到達すると、各ゲート回路の入力信号が各フリップフロップに保持される。各フリップフロップに保持される入力信号の値は、そのクロック端子にパルス信号Ｓ１Ａが到達するまでの間、遅延回路９の出力信号Ｓ２がゲート回路１０−１〜１０−５の何段目まで到達したかを示す。
【００５７】
図７は、図６に示す遅延検出回路における各信号のタイミング関係を示す図である。
図７の例において、パルス信号Ｓ１Ａはパルス信号Ｓ１に対しクロック信号ＣＫの１サイクル分の遅延を有している。すなわち、遅延回路９に値‘１’のパルス信号Ｓ１が入力されてから、クロック信号ＣＫの１サイクル分の時間が経過した後に、ゲート回路１０−１〜１０−５の入力信号がフリップフロップ１０−６〜１０−１０に保持される。
そのため、遅延回路９の遅延がクロック信号ＣＫの１サイクルより小さいほど、初段から段数が離れたゲート回路において値‘１’の信号がフリップフロップに保持される。逆に、遅延回路９の遅延がクロック信号ＣＫの１サイクルに近づくほど、初段に近いゲート回路において値‘０’の信号がフリップフロップに保持される。そして、遅延回路９の遅延がクロック信号ＣＫの１サイクルより大きくなると、全てのフリップフロップの出力が値‘０’になる。
このように、フリップフロップ１０−６〜１０−１０には、クロック信号ＣＫの１サイクルの時間を基準として検出された遅延回路９の遅延値が保持される。
【００５８】
フリップフロップに保持される信号は、エンコーダ１０−１１において数値データに変換される。例えば、初段のゲート回路から順に‘１’，‘１’，‘１’，‘０’，…，‘０’という信号列が得られる場合、エンコーダ１０−１１はこの信号列を値‘３’の数値データに変換される。
エンコーダ１０−１１より出力される数値データは、クロック信号ＣＫの１サイクルに対してターゲット回路１のクリティカルパスの遅延が持つ余裕時間を表す。例えば、数値が大きいほど余裕時間が大きくなり、逆に、数値が小さいほど余裕時間が短くなる。
このエンコーダの数値データは、ターゲット回路１のクリティカルパスの遅延情報として制御回路５に出力される。
【００５９】
後述するように、制御回路５は、遅延検出回路１０が出力する遅延情報が予め設定されたターゲット値に一致するように、電源供給回路６を制御する。例えばターゲット値＝‘３’に設定すると、遅延情報＝‘３’となる様に電源供給回路６を制御する。その結果、電源電圧ＶDDは、遅延回路９の出力信号Ｓ２の遅延がクロック信号ＣＫの１サイクル時間内に収まるように設定される。
【００６０】
なお、遅延検出回路１０は、図６に示した構成に限定されるものではなく、例えば、遅延回路９の出力信号Ｓ２の遅延がクロック信号ＣＫの１サイクル時間に応じて定めた基準値に対して「大きい」、「小さい」、「一致する」の何れの状態にあるかを、遅延情報として制御回路５に出力する構成でも良い。この場合、制御回路５は、遅延情報が「一致」の状態になるように電源供給回路６を制御すれば良い。
以上が、遅延モニタ回路３の説明である。
【００６１】
［消費電力モニタ回路４］
消費電力モニタ回路４は、ターゲット回路１の消費電力をモニタする回路であり、例えば図１に示すように、リーク電流モニタ回路１２と、演算回路１３と、レジスタ１４とを有する。
リーク電流モニタ回路１２は、本発明のリーク電流モニタ回路の一実施形態である。
演算回路１３は、本発明の演算回路の一実施形態である。
【００６２】
演算回路１３は、ターゲット回路１に供給中の電源電圧の情報と、ターゲット回路１の動作周波数に関する情報と、後述するリーク電流モニタ回路１２においてモニタされるターゲット回路１のリーク電流に関する情報とに基づいて、ターゲット回路１の消費電力を演算する。
ターゲット回路１の消費電力ＰCは、ターゲット回路１の電源電圧ＶDD、動作周波数Ｆ、リーク電流ＩLを用いて、次式により演算することができる。
【００６３】
【数１】
0004617721.tif 000002
【００６４】
ここで、係数αACは、ターゲット回路１に含まれるゲート回路の数と、ゲート回路の平均的な活性化率（所定数の動作サイクルに対してゲート回路の論理値がアクティブに変化する回数の比率）とにより決定される充放電電力係数である。
また、係数αDCは、ターゲット回路１に搭載されるトランジスタの総ゲート幅により決定されるリーク電力係数である。
係数αACおよびαDCは、充放電電力およびリーク電力の評価結果から決定することが可能である。
【００６５】
レジスタ１４は、演算回路１３の演算に用いられる係数値αDC，αACや、クロック信号ＣＫの周波数Ｆ、制御回路５において設定中の電源電圧ＶDDの情報を格納する。レジスタ１４に格納される情報は、レジスタ１１と同様に、図示しないＣＰＵ等の制御装置によって任意に書き換えることが可能である。
【００６６】
リーク電流モニタ回路１２は、ターゲット回路１が有するトランジスタのリーク電流をモニタする。例えば、ターゲット回路１がｎ型ＭＯＳトランジスタおよびｐ型ＭＯＳトランジスタを有する場合、リーク電流モニタ回路１２は、それぞれのトランジスタのリーク電流をモニタする。
【００６７】
図８は、リーク電流モニタ回路１２においてｎ型ＭＯＳトランジスタのリーク電流をモニタする回路の構成の一例を示す図である。
図８に示す回路は、キャパシタ１２−０と、リーク電流モニタ用のｎ型ＭＯＳトランジスタ１２−１と、プリチャージ用のｐ型ＭＯＳトランジスタ１２−２と、シュミットトリガ回路１２−３と、ＡＮＤ回路１２−４および１２−５と、ラッチ回路１２−６と、カウンタ１２−７と、フリップフロップ１２−８とを有する。
【００６８】
なお、ｎ型ＭＯＳトランジスタ１２−１は、本発明のリーク電流モニタ用トランジスタの一実施形態である。
キャパシタ１２−０は、本発明のキャパシタの一実施形態である。
シュミットトリガ回路１２−３と、ＡＮＤ回路１２−４および１２−５と、ラッチ回路１２−６と、カウンタ１２−７とを含む回路は、本発明の計時回路の一実施形態である。
ｐ型ＭＯＳトランジスタ１２−２は、本発明の電圧設定回路の一実施形態である。
【００６９】
キャパシタ１２−０は、ノードＮ４とグランドＧとの間に接続される。
ｎ型ＭＯＳトランジスタ１２−１は、ノードＮ４にドレインが接続され、グランドＧにソースおよびゲートが接続され、基板電圧供給回路７より基板電圧ＶBSNが供給される。
ｐ型ＭＯＳトランジスタ１２−２は、ノードＮ４にドレインが接続され、電源電圧ＶDDにソースが接続され、ゲートにプリチャージ信号ＰＣＳが入力される。
【００７０】
なお、リーク電流モニタ用のｎ型ＭＯＳトランジスタ１２−１はターゲット回路１内部のｎ型ＭＯＳトランジスタと等価な構造を有しており、そのリーク電流の特性が互いに等価である。
例えばｎ型ＭＯＳトランジスタ１２−１は、ターゲット回路１と共通の半導体チップに形成されるトランジスタである。
【００７１】
また、プリチャージ用のｐ型ＭＯＳトランジスタ１２−２は、例えば高しきい値のトランジスタであり、そのリーク電流の大きさはｎ型ＭＯＳトランジスタ１２−１と比べて無視し得る。
【００７２】
シュミットトリガ回路１２−３は、ノードＮ４の電圧が論理しきい値Ｖｔｈより大きい場合にハイレベル、論理しきい値Ｖｔｈより小さい場合にローレベルの信号を出力する。
【００７３】
ＡＮＤ回路１２−４は、プリチャージ信号ＰＣＳとシュミットトリガ回路１２−３の出力信号との論理積を出力する。
ラッチ回路１２−６は、クロック信号ＣＫがローレベルのとき、ＡＮＤ回路１２−４の論理積をそのまま出力し、クロック信号ＣＫがローレベルからハイレベルに変化するとき、出力信号を一定に保持する。
ＡＮＤ回路１２−５は、ラッチ回路１２−６の出力信号とクロック信号ＣＫとの論理積を出力する。
【００７４】
カウンタ１２−７は、プリチャージ信号ＰＣＳがハイレベルのとき、ＡＮＤ回路１２−５より出力されるパルスの数を計数し、プリチャージ信号ＰＣＳがローレベルのとき、計数結果を初期化する。
フリップフロップ１２−８は、プリチャージ信号ＰＣＳがハイレベルからローレベルへ立ち下がるときに、カウンタ１２−７の計数結果を取り込んで保持する。
【００７５】
図９は、図８に示すｎ型ＭＯＳトランジスタのリーク電流モニタ回路における各信号のタイミング関係を示す図である。
【００７６】
プリチャージ信号ＰＣＳがローレベルの期間中、ノードＮ４に接続されるキャパシタ１２−０は高いしきい値を持ったプリチャージ用のｐ型ＭＯＳトランジスタ１２−２によって電源電圧ＶDDにプリチャージされる。
プリチャージ信号ＰＣＳがローレベルからハイレベルに遷移すると（時刻ｔ１）、ｐ型ＭＯＳトランジスタ１２−２がオフになり、キャパシタ１２−０の電荷がｎ型ＭＯＳトランジスタ１２−１のリーク電流によって放電され、ノードＮ４の電圧が徐々に低下する（図９（Ｂ））。そして、ノードＮ４の電位がシュミットトリガ回路１２−３の論理しきい値Ｖｔｈに到達すると（時刻ｔ２）、その出力信号（ノードＮ５）がハイレベルからローレベルに遷移する（図９（Ｃ））。シュミットトリガ回路１２−３の出力信号とプリチャージ信号ＰＣＳとの論理積（図９（Ｄ））がハイレベルになる時刻ｔ１−ｔ２の期間において、ラッチ回路１２−６の出力がハイレベルになり、クロック信号ＣＫがＡＮＤ回路１２−５を通ってカウンタ１２−７に入力され（図９（Ｆ））、そのパルス数がカウンタ１２−７により計数される（図９（Ｇ））。カウンタ１２−７の計数値は、プリチャージ信号ＰＣＳがハイレベルからローレベルへ遷移するとき（時刻ｔ３）にフリップフロップ１２−８に保持される（図９（Ｈ））。このとき、カウンタ１２−７の計数値はゼロに初期化される（図９（Ｇ））。
【００７７】
このように、図８に示す回路では、キャパシタ１２−０の電圧を電源電圧ＶDDに設定した後、ｎ型ＭＯＳトランジスタ１２−１のリーク電流によってキャパシタ１２−０の電荷の放電を開始させる。そして、この放電開始時点から、キャパシタ１２−０の電圧が論理しきい値Ｖｔｈまで下がる時点までの間、カウンタ１２−７においてクロック信号ＣＫのパルスを計数させる。これにより、ｎ型ＭＯＳトランジスタ１２−１のリーク電流に応じた大きさを有する計数値Ｓ６が得られる。計数値Ｓ６は、ターゲット回路１中のｎ型ＭＯＳトランジスタのリーク電流をモニタした値として演算回路１３に出力される。
【００７８】
図１０は、リーク電流モニタ回路１２においてｐ型ＭＯＳトランジスタのリーク電流をモニタする回路の構成の一例を示す図である。
図９に示す回路は、図８に示す回路におけるｎ型ＭＯＳトランジスタ１２−１およびｐ型ＭＯＳトランジスタ１２−２を、リーク電流モニタ用のｐ型ＭＯＳトランジスタ１２−９およびプリチャージ用のｎ型ＭＯＳトランジスタ１２−１０に置換するとともに、プリチャージ信号ＰＣＳを論理反転してｎ型ＭＯＳトランジスタ１２−１０のゲートに入力するインバータ回路１２−１１を追加したものである。他の構成は図８に示す回路と同じである。
【００７９】
ｐ型ＭＯＳトランジスタ１２−９は、ドレインがノードＮ４に接続され、ソースおよびゲートが電源電圧ＶDDに接続され、基板電圧供給回路７より基板電圧ＶBSPが供給される。
ｎ型ＭＯＳトランジスタ１２−１０は、ドレインがノードＮ４に接続され、ソースがグランドＧに接続され、ゲートにインバータ回路１２−１１の論理反転信号が入力される。
【００８０】
図１１は、図１０に示すｎ型ＭＯＳトランジスタのリーク電流モニタ回路における各信号のタイミング関係を示す図である。
図１０に示す回路では、キャパシタ１２−０の電圧をグランドレベルに設定した後、ｐ型ＭＯＳトランジスタ１２−９のリーク電流によってキャパシタ１２−０への電荷の充電を開始させる。そして、この充電開始時点から、キャパシタ１２−０の電圧が論理しきい値Ｖｔｈに達する時点までの間、カウンタ１２−７においてクロック信号ＣＫのパルスを計数させる。これにより、ｐ型ＭＯＳトランジスタ１２−９のリーク電流に応じた大きさを有する計数値Ｓ７が得られる。計数値Ｓ７は、ターゲット回路１中のｐ型ＭＯＳトランジスタのリーク電流をモニタした値として演算回路１３に出力される。
【００８１】
なお、図８および図１０の例ではノードＮ４の電圧レベル変化を検出するためにシュミットトリガ回路を用いているが、これに限らず、インバータ回路やコンパレータ等を使用しても良い。
【００８２】
演算回路１３は、上述のようにして得られたｎ型ＭＯＳトランジスタおよびｎ型ＭＯＳトランジスタのリーク電流モニタ値Ｓ６，Ｓ７から、ターゲット回路１のリーク電流を換算し、この換算結果を用いて（例えば式（１）の演算により）ターゲット回路１の消費電力Ｐcを求める。
例えば、リーク電流モニタ値Ｓ６，Ｓ７の平均値を用いて消費電力Ｐcを求めても良い。あるいは、リーク電流モニタ値Ｓ６，Ｓ７に基づいてターゲット回路１に含まれるゲート回路（ＮＡＮＤ回路など）のリーク電流を換算し、この換算結果を用いて消費電力Ｐcを求めても良い。
【００８３】
なお、消費電力モニタ回路４においてモニタする消費電力は絶対値である必要はなく、充放電電力とリーク電力との比率がターゲット回路１の実際の該比率と一致している相対的な値で良い。
したがって、消費電力モニタ回路４は、上述のようにリーク電流のモニタ値を用いて演算により消費電力を求める方法の他にも、例えば、ターゲット回路１の消費電流値を実際に測定して、その測定結果を基に算出する方法を用いることも可能である。
すなわち、消費電力モニタ回路４は、充放電電力とリーク電力との比率がターゲット回路１の実際の該比率に一致した消費電力のモニタ値を得る方法であれば、他のモニタ方法を使っても良い。
ただし、消費電流の実測値を用いて消費電力を演算する方法では、回路の処理内容に応じて消費電流が刻々に変化するため、演算結果が時間的にばらつき易くなる。一方、リーク電流のモニタ値を用いて消費電力を演算する方法によれば、回路の処理内容に応じた演算結果のばらつきが小さくなるため、電源電圧ＶDDや基板電圧ＶBSをより安定に制御することができる。
以上が、消費電力モニタ回路４の説明である。
【００８４】
［制御回路５］
制御回路５は、遅延モニタ回路３においてモニタされる遅延がクロック信号ＣＫの１サイクル時間に応じた所定の遅延を越えない条件の元で、消費電力モニタ回路４においてモニタされる消費電力が最小となるように、電源供給回路６の電源電圧ＶDDおよび基板電圧供給回路７の基板電圧ＶBSをそれぞれ制御する制御信号を出力する。
【００８５】
例えば制御回路５は、遅延モニタ回路３のモニタ値に基づいて、基板電圧ＶBSを一定に保ちつつ電源電圧ＶDDを調節する第１の処理と、消費電力モニタ回路４のモニタ値に基づいて、電源電圧ＶDDを一定に保ちつつ基板電圧ＶBSを調節する第２の処理とを交互に反復する。
第１の処理では、遅延モニタ回路３のモニタ値がターゲット回路１の動作サイクル時間に応じた所定の遅延値を越えない条件の元で、電源電圧ＶDDを最小に調節する。そして、電源電圧ＶDDが最小に調節された状態における消費電力モニタ回路４のモニタ値を取得する。
第２の処理では、第１の処理を反復して得られる一連の消費電力のモニタ値（例えば前回と今回のモニタ値）と、一連のモニタ値のそれぞれが取得された際の基板電圧ＶBSの値（例えば前回と今回の基板電圧値）とに基づいて、ターゲット回路１の消費電力を減少させ得る新たな基板電圧を決定し、現在供給中の基板電圧ＶBSを該決定した基板電圧に変更する。
【００８６】
ここで、上述した構成を有する図１に示す半導体装置において、ターゲット回路１の消費電力が最小となるよう電源電圧ＶDDと基板電圧ＶBSとを制御する動作について、図１２のフローチャートを参照し説明する。
なお、図１２のフローチャートにおいて、ステップＳＴ１〜ＳＴ５は、本発明の第1の工程の一実施形態である。
ステップＳＴ６〜ＳＴ１１は、本発明の第2の工程の一実施形態である。
【００８７】
制御回路５は、遅延モニタ回路３のモニタ結果に基づいて、ターゲット回路１のクリティカルパス遅延のモニタ値τmonitor（遅延回路９がクリティカルパスと等価な遅延を有する場合、遅延回路９の遅延）が、クロック信号ＣＫの１サイクル時間τcycleに対して以下の条件１を満たしているか判定する（ステップＳＴ１）。
条件１：  τmonitor＜τcycle−Δτ；
ここで、‘Δτ’は、電源電圧の収束条件を与える定数である。
【００８８】
例えば図６に示す遅延検出回路１０を有する場合、制御回路５は、エンコーダ１０−１１の出力値Ｓ５と所定のしきい値とを比較し、この比較結果に基づいて、上記の条件が満たされるか否かを判定する。
【００８９】
条件１を満たしている場合、クリティカルパスの遅延はまだ上限に対して余裕があると判断できるため、制御回路５は、以下に示すように、電源電圧ＶDDを値ΔＶDDだけ低くするように電源供給回路６を制御する（ステップＳＴ３）。
ＶDD（ｎ＋１）＝ＶDD（ｎ）−ΔＶDD；
なお‘ＶDD（ｎ）’は、ｎ回目の電源電圧ＶDD変更後の値を示す。
電源電圧ＶDDを低くした後は、再びステップＳＴ１の処理に戻る。
【００９０】
一方、ステップＳＴ１の条件１を満たしていない場合、制御回路５は、クリティカルパスの遅延モニタ値τmonitorが１サイクル時間τcycleに対して以下の条件を満たしているか判定する（ステップＳＴ２）。
条件２：  τmonitor＞τcycle；
【００９１】
条件２を満たしている場合、クリティカルパスの遅延は上限をオーバしていると判断できるため、制御回路５は、以下に示すように、電源電圧ＶDDを値ΔＶDDだけ高くするように電源供給回路６を制御する（ステップＳＴ４）。
ＶDD（ｎ＋１）＝ＶDD（ｎ）＋ΔＶDD；
電源電圧ＶDDを高くした後は、再びステップＳＴ１の処理に戻る。
【００９２】
このようにして、条件１（τmonitor＜τcycle−Δτ）を満たす場合は電源電圧ＶDDを低くし、条件２（τmonitor＞τcycle）を満たす場合は電源電圧ＶDDを高くするように処理が繰り返され、その結果、電源電圧ＶDDは、以下の条件３を満たす値に収束する。
条件３：  τcycle−Δτ≦τmonitor≦τcycle；
すなわち、電源電圧ＶDDは、ターゲット回路１が正常に動作できる最小の電圧に収束する。
【００９３】
なお、電源電圧ＶDDを一定値に収束させるためには、電源電圧を１ステップの変化量ΔＶDDだけ変化させた時の遅延回路９の遅延変化量が定数Δτを越えないように、電源電圧の変化量ΔＶDDと定数Δτとを決定する必要がある。
【００９４】
電源電圧ＶDDが最小値に収束し、条件３が満たされると、次に制御回路５は、消費電力モニタ回路４においてモニタされるターゲット回路１の現在の消費電力Ｐc（ｎ）を取得する（ステップＳＴ５）。
なお、‘ＰC（ｎ）’は、ｎ回目の基板電圧ＶBS変更後の消費電力モニタ値を表す。
【００９５】
次いで制御回路５は、ステップＳＴ５において取得された最新の消費電力モニタ値ＰC（ｎ）と、前回のループにおいて取得された消費電力モニタ値ＰC（ｎ−１）との比較を行う（ステップＳＴ６およびＳＴ７）。また、最新の消費電力モニタ値ＰC（ｎ）が取得された際の基板電圧ＶBS（ｎ）と、前回のループにおいて消費電力ＰC（ｎ−１）が取得された際の基板電圧ＶBS（ｎ−１）との比較を行う（ステップＳＴ８およびＳＴ９）。そして、消費電力モニタ値ＰCおよび基板電圧ＶBSに関するこれらの比較結果に基づいて、次に設定すべき基板電圧を決定する（ステップＳＴ１０，ＳＴ１１，ＳＴ１２）。
以下に、基板電圧ＶBSの決定方法を示す。
【００９６】
（１）‘ＰC（ｎ）＜ＰC（ｎ−１）−ΔＰC’かつ‘ＶBS（ｎ）≧ＶBS（ｎ−１）’の場合、次に設定すべき基板電圧を‘ＶBS＋ΔＶBS’とする（ステップＳＴ１０）。すなわち、基板電圧ＶBSを順バイアス方向に変化させたときに消費電力が減った場合、あるいは基板バイアスＶBSを変化させていないにもかかわらず消費電力が減った場合は、基板電圧ＶBSを更に順バイアス方向に変化させる。ここで‘ΔＶBS’は、基板電圧を変化させるステップである。また‘ΔＰC’は、消費電力の収束条件を与える定数である。
【００９７】
（２）‘ＰC（ｎ）＜ＰC（ｎ−１）−ΔＰC’かつ‘ＶBS（ｎ）＜ＶBS（ｎ−１）’の場合、次に設定すべき基板電圧を‘ＶBS−ΔＶBS’とする（ステップＳＴ１１）。すなわち、基板電圧ＶBSを逆バイアス方向に変化させたときに消費電力が減った場合は、基板電圧ＶBSを更に逆バイアス方向に変化させる。
【００９８】
（３）‘ＰC（ｎ）＞ＰC（ｎ−１）＋ΔＰC’かつ‘ＶBS（ｎ）＞ＶBS（ｎ−１）’の場合、次に設定すべき基板電圧を‘ＶBS−ΔＶBS’とする（ステップＳＴ１１）。すなわち、基板電圧ＶBSを順バイアス方向に変化させたときに消費電力が増えた場合は、基板電圧ＶBSを逆バイアス方向に戻す。
【００９９】
（４）‘ＰC（ｎ）＞ＰC（ｎ−１）＋ΔＰC’かつ‘ＶBS（ｎ）≦ＶBS（ｎ−１）’の場合、次に設定すべき基板電圧を‘ＶBS＋ΔＶBS’とする（ステップＳＴ１０）。すなわち、基板電圧ＶBSを逆バイアス方向に変化させたときに消費電力が増えた場合、あるいは基板バイアスＶBSを変化させていないにも関わらず消費電力が増えた場合は、基板電圧ＶBSを順バイアス方向に戻す。
【０１００】
（５）‘ＰC（ｎ−１）−ΔＰC≦ＰC（ｎ）≦ＰC（ｎ−１）＋ΔＰC’の場合には、現在の電源電圧ＶDD、基板電圧ＶBSが消費電力を最小化する組み合わせであると判断し、基板電圧ＶBSの変更は行わない。
【０１０１】
制御回路５は、上述した処理によって基板電圧ＶBSを変更もしくは保持した後、ステップＳＴ１の処理に戻る。
（１）〜（４）の処理によって基板電圧ＶBSを変更した場合、ターゲット回路１のトランジスタのしきい値が変化し、動作速度が変わるため、上述したステップＳＴ１〜ＳＴ４のループ処理が再び実行されて、電源電圧ＶDDが新たな電圧に収束する。電源電圧ＶDDが収束した後、ステップＳＴ５において消費電力モニタ値が再び取得され、次に設定すべき基板電圧が（１）〜（５）の何れかの処理により決定される。
【０１０２】
電源電圧ＶDDと基板電圧ＶBSが収束状態にある時に温度変化等が生じた場合、トランジスタのしきい値の変化によってターゲット回路１の動作速度の変化するため、電源電圧ＶDDの収束電圧が変化する。また、トランジスタのリーク電流が変化することにより、消費電力モニタ回路４のモニタ値が変化する。そのため、上述したフローによる電源電圧ＶDDと基板電圧ＶBSの制御が自動的に開始され、新しい条件の下で消費電力が最小となる電源電圧ＶDDおよび基板電圧ＶBSの組み合わせが適応的に決定される。
【０１０３】
以上説明したように、本実施形態によれば、遅延モニタ回路３においてモニタされるターゲット回路１のクリティカルパスの遅延がクロック信号ＣＫの１サイクル時間に応じた所定の遅延を超えない条件の元で、消費電力モニタ回路４においてモニタされるターゲット回路１の消費電力が最小となるように、ターゲット回路１に供給される電源電圧ＶDDおよび基板電圧ＶBSがそれぞれ制御される。
これにより、全体の消費電力に占めるキャパシタ成分の充放電電力とトランジスタのリーク電力との割合を、全体の消費電力が最も小さくなる適切な割合に設定することが可能になるため、電源電圧の調節のみを行う方法に比べて、リーク電力を含めたターゲット回路１のアクティブ状態の消費電力を効果的に削減することができる。
【０１０４】
＜第２の実施形態＞
次に、本発明の第２の実施形態を述べる。
【０１０５】
図１３は、本発明の第２の実施形態に係る半導体装置の構成の一例を示す図である。
図１３に示す半導体装置は、図１に示す上述した半導体装置と同一の構成を有するとともに、クロック周波数切り替え回路１５を設けたものである。
クロック周波数切り替え回路１５は、本発明のクロック周波数切り替え回路の一実施形態である。
【０１０６】
クロック周波数切り替え回路１５は、ターゲット回路１および遅延モニタ回路３に供給するクロック信号の周波数を、ターゲット回路１に要求される処理速度の情報に応じて切り替える。
【０１０７】
クロック周波数切り替え回路１５は、例えば図１３に示すように、クロック分周・切り替え回路１６と、周波数制御回路１７とを有する。
【０１０８】
クロック分周・切り替え回路１６は、周波数制御回路１７によって設定された分周比でクロック発生回路２のクロック信号ＣＫを分周し、ターゲット回路１および遅延モニタ回路３に供給する。また、ターゲット回路１に供給するクロック信号ＣＫ１の分周比の切り替え、ならびに、遅延モニタ回路３に供給するクロック信号ＣＫ２の分周比の切り替えを、周波数制御回路１７の制御に従ってそれぞれ独立のタイミングで行う。
【０１０９】
周波数制御回路１７は、ターゲット回路１から供給される処理速度の情報に応じて、ターゲット回路１および遅延モニタ回路３に供給するクロック信号の周波数を決定し、この決定した周波数に応じた分周比をクロック分周・切り替え回路１６に設定する。また、決定した周波数の情報を消費電力モニタ回路４のレジスタに書き込む。
【０１１０】
更に、周波数制御回路１７は、クロック信号ＣＫ１およびＣＫ２の分周比切り替えタイミングを、それぞれ次のように制御する。
【０１１１】
クロック信号ＣＫ１およびＣＫ２の周波数を、周波数Ｆ１から周波数Ｆ２へ上昇させる場合（ただしＦ２＞Ｆ１）、周波数制御回路１７は、遅延モニタ回路３に供給するクロック信号ＣＫ２をターゲット回路１より先に周波数Ｆ２へ切り替える。この周波数切り替えに応じて、ステップＳＴ１〜ＳＴ４の電源電圧制御が自動的に働き、電源電圧ＶDDが周波数Ｆ２に応じた最小の電圧値に収束した後、周波数制御回路１７は、ターゲット回路１に供給するクロック信号ＣＫ１を周波数Ｆ２に切り替える。
【０１１２】
また、クロック信号ＣＫ１およびＣＫ２の周波数を、周波数Ｆ２から周波数Ｆ１へ低下させる場合、周波数制御回路１７は、クロック信号ＣＫ１，ＣＫ２の周波数を共通のタイミングで切り替える。
【０１１３】
以上の構成によると、ターゲット回路１のクロック信号ＣＫ１の周波数を上昇させて処理速度を高める場合、ターゲット回路１の動作が可能なレベルまで電源電圧ＶDDを予め上昇させた後で、クロック信号ＣＫ１の周波数の切り替えが行われるため、ターゲット回路１の誤動作を防ぐことができる。
また、ターゲット回路１のクロック信号ＣＫ１，ＣＫ２の周波数を低下させて消費電力の削減を図る場合は、クロック信号ＣＫ１，ＣＫ２の周波数を共通のタイミングで切り替えることによって、クロック信号ＣＫ１の周波数が切り替わる前後における遅延モニタ回路３の遅延モニタ動作が正常に保たれるため、ターゲット回路１の誤動作を防ぐことができる。
このように、ターゲット回路１に要求される処理速度に合わせてクロック信号の周波数を切り替えることにより消費電力の削減を図りつつ、クロック周波数の切り替えに伴うターゲット回路１の誤動作を防ぐことができる。また、周波数の切り替えが行われた後は、既に述べた図１２に示すフローに従って電源電圧と基板電圧が消費電力最小の状態へ自動的に調節されるため、ターゲット回路１の消費電力を更に削減することができる。
【０１１４】
＜第３の実施形態＞
次に、本発明の第３の実施形態を述べる。
【０１１５】
図１４は、本発明の第４の実施形態に係る半導体装置の構成の一例を示す図である。
図１４に示す半導体装置は、図１３に示す上述した半導体装置において、ターゲット回路１および消費電力モニタ回路４を、それぞれ、ターゲット回路１Ａおよび消費電力モニタ回路４Ａに置き換えたものである。
【０１１６】
ターゲット回路１Ａは、例えば高しきい値で低リーク電流のトランジスタにより構成された電源スイッチ１８と、この電源スイッチ１８を介して電源電圧ＶDDが供給される回路ブロック１９と、電源スイッチ１８を介さずに電源電圧ＶDDが直接供給される回路ブロック２０とを有する。
ターゲット回路１が回路ブロック１９を使用しない処理を実行する場合、電源スイッチ１８がオフになり、回路ブロック１９への電源供給が遮断される。これにより、スタンバイ時のリーク電流による無駄な消費電力が削減される。
【０１１７】
消費電力モニタ回路４Ａは、リーク電流モニタ回路１２と、演算回路１３Ａと、レジスタ１４Ａとを有する。
【０１１８】
演算回路１３Ａは、ターゲット回路１Ａに供給中の電源電圧の情報、ターゲット回路１の動作周波数に関する情報、リーク電流モニタ回路１２においてモニタされるリーク電流に関する情報に加えて、更に、ターゲット回路１において電源電圧ＶDDを供給中のゲート数に関する情報を用いて、ターゲット回路１の消費電力を演算する。
ターゲット回路１Ａの消費電力ＰCは、例えば次式により演算することができる。
【０１１９】
【数２】
0004617721.tif 000003
【０１２０】
ここで、‘Ｇ1’，‘Ｇ2’は回路ブロック１９，２０のゲート数を表す係数であり、‘ｅ2’は電源スイッチ１８がオンのときに‘１’、オフのときに‘０’の値を持つフラグである。
演算回路１３Ａは、例えば式（２）を用いてターゲット回路１Ａの消費電力を算出する。
【０１２１】
レジスタ１４Ａは、演算回路１３Ａの演算に用いられる係数値αDC，αAC，Ｇ1，Ｇ2、フラグｅ2、クロック周波数切り替え回路１５において選択中のクロック信号の周波数Ｆ、制御回路５において設定中の電源電圧ＶDDの情報を格納する。レジスタ１４Ａに格納される情報は、レジスタ１１と同様に、図示しないＣＰＵ等の制御装置によって任意に書き換えることが可能である。
【０１２２】
以上の構成によれば、ターゲット回路１内の電源スイッチ１８によってスタンバイ中の回路のリーク電流を遮断することにより、静的な消費電力を削減できるとともに、電源スイッチ１８の状態に応じた適切な消費電力を演算し、図１２に示すフローに従って電源電圧ＶDDと基板電圧ＶBSを制御することにより、動的な消費電力の削減も図ることができる。
【０１２３】
以上、本発明の幾つかの実施形態について述べたが、本発明は上述した形態にのみ限定されるものではなく、種々のバリエーションを含む。
【０１２４】
上述した遅延モニタ回路や消費電力モニタ回路は説明上の一例であり、本発明はこれに限定されない。これらの回路は、電源電圧および基板電圧の変化に応じたターゲット回路の遅延や消費電力の変化傾向を把握することができる、他の種々の構成の回路に置き換えても良い。
【０１２５】
上述した電源電圧および基板電圧の制御フローは説明上の一例であり、本発明はこれに限定されない。例えば、定数Δτ、ΔＰｃ、ΔＶDDは必ずしも一定値である必要はなく、基板電圧や電源電圧の大きさに応じて異なる値を採用することにより、制御の安定性や収束性を向上させても良い。
【０１２６】
また、遅延モニタ回路、消費電力モニタ回路、制御回路、クロック周波数切り替え回路、電源供給回路、基板供給回路は、全て消費電力最小化のターゲットとする半導体回路と同一の半導体チップ上に形成しても良いし、少なくとも一部を別の半導体チップ上に形成しても良い。
【図面の簡単な説明】
【０１２７】
【図１】本発明の第１の実施形態に係る半導体装置の構成の一例を示す図である。
【図２】半導体回路の遅延を一定に保った状態で、基板電圧と電源電圧を変化させた場合の半導体回路の消費電力を示す第１の図である。
【図３】半導体回路の遅延を一定に保った状態で、基板電圧と電源電圧を変化させた場合の半導体回路の消費電力を示す第２の図である。
【図４】半導体回路の遅延を一定に保った状態で、基板電圧と電源電圧を変化させた場合の半導体回路の消費電力を示す第３の図である。
【図５】遅延回路の構成の一例を示す図である。
【図６】遅延検出回路の構成の一例を示す図である。
【図７】図６に示す遅延検出回路における各信号のタイミング関係を示す図である。
【図８】ｎ型ＭＯＳトランジスタのリーク電流をモニタする回路の構成の一例を示す図である。
【図９】図８に示す回路における各信号のタイミング関係を示す図である。
【図１０】ｐ型ＭＯＳトランジスタのリーク電流をモニタする回路の構成の一例を示す図である。
【図１１】図１０に回路における各信号のタイミング関係を示す図である。
【図１２】本実施形態における電源電圧および基板電圧の制御手順の一例を示すフローチャートである。
【図１３】本発明の第２の実施形態に係る半導体装置の構成の一例を示す図である。
【図１４】本発明の第３の実施形態に係る半導体装置の構成の一例を示す図である。
【符号の説明】
【０１２８】
１，１Ａ…ターゲット回路、２…クロック発生回路、３…遅延モニタ回路、４，４Ａ…消費電力モニタ回路、５…制御回路、６…電源供給回路、７…基板電圧供給回路、８…パルス発生回路、９…遅延回路、９−１…ゲート遅延回路、９−１ａ〜９−１ｃ，１０−１〜１０−５…ゲート回路、９−１ｄ，９−２ｄ…セレクタ回路、９−２…配線遅延回路、９−２ａ〜９−２ｃ…配線遅延素子、１０…遅延検出回路、１０−６〜１０−１０…フリップフロップ、１０−１１…エンコーダ、１１，１４，１４Ａ…レジスタ、１２…リーク電流モニタ回路、１２−０…キャパシタ、１２−１，１２−１０…ｎ型ＭＯＳトランジスタ、１２−２，１２−９…ｐ型ＭＯＳトランジスタ、１２−３…シュミットトリガ回路、１２−４，１２−５…ＡＮＤ回路、１２−６…ラッチ回路、１２−７…カウンタ、１２−８…フリップフロップ、１２−１１…インバータ回路、１３，１３Ａ…演算回路、１５…クロック周波数切り替え回路、１６…クロック分周・切り替え回路、１７…周波数制御回路
【図１】
0004617721.tif 000004
【図２】
0004617721.tif 000005
【図３】
0004617721.tif 000006
【図４】
0004617721.tif 000007
【図５】
0004617721.tif 000008
【図６】
0004617721.tif 000009
【図７】
0004617721.tif 000010
【図８】
0004617721.tif 000011
【図９】
0004617721.tif 000012
【図１０】
0004617721.tif 000013
【図１１】
0004617721.tif 000014
【図１２】
0004617721.tif 000015
【図１３】
0004617721.tif 000016
【図１４】
0004617721.tif 000017