(57)【特許請求の範囲】
【請求項１】
内部回路に電源を供給する電源供給部と、
前記内部回路の複数の場所における特性をモニタする複数のモニタ部と、
前記複数のモニタ部から出力された信号に基づき算出されたモニタ値と、設定された比較値との比較結果に応じて前記電源供給部を制御する制御部と、を備え、
前記比較値は、前記モニタ値の上限値に対応した第１の設定値と前記モニタ値の下限値に対応した第２の設定値とを含み、
前記制御部は、前記複数のモニタ部における特性のばらつきが小さくなるにつれて、前記第１の設定値が小さくなるように、且つ前記第１の設定値と前記第２の設定値との間隔が狭くなるように前記第１および第２の設定値を設定する、
半導体装置。
【請求項２】
前記モニタ部の各々は、リングオシレータと、当該リングオシレータが所定の期間内に発振する回数を測定するカウンタと、を備え、
前記制御部は、前記複数のモニタ部におけるカウント値のばらつきに応じて前記比較値を設定すると共に、当該設定された比較値と前記複数のモニタ部から出力された前記カウント値に基づき算出されたモニタ値との比較結果に応じて前記電源供給部を制御する、
請求項１に記載の半導体装置。
【請求項３】
前記比較値は、前記モニタ値の上限値に対応した第１のカウント値と前記モニタ値の下限値に対応した第２のカウント値とを含み、
前記制御部は、前記複数のモニタ部におけるカウント値のばらつきが小さくなるにつれて、前記第１のカウント値が小さくなるように、且つ前記第１のカウント値と前記第２のカウント値の間隔が狭くなるように前記第１および第２のカウント値を設定する、
請求項２に記載の半導体装置。
【請求項４】
前記モニタ値は、前記複数のモニタ部におけるカウント値の平均値である、請求項２または３に記載の半導体装置。
【請求項５】
前記複数のモニタ部におけるカウント値のばらつきは、前記複数のモニタ部におけるカウント値の標準偏差に基づき決定される、請求項２または３に記載の半導体装置。
【請求項６】
前記複数のモニタ部におけるカウント値のばらつきは、前記複数のモニタ部におけるカウント値の最大値と最小値の差に基づき決定される、請求項２または３に記載の半導体装置。
【請求項７】
前記複数のモニタ部におけるカウント値のばらつきは、前記複数のモニタ部におけるカウント値の最大値と最小値の差を前記複数のモニタ部におけるカウント値の平均値で除算した値に基づき決定される、請求項２または３に記載の半導体装置。
【請求項８】
前記モニタ部は各々、同一段数のリングオシレータを含む第１および第２のモニタ素子を備え、
前記第１のモニタ素子は前記内部回路の特性をモニタするモニタ期間においてのみ動作をし、前記第２のモニタ素子は前記モニタ期間以外にも動作をし、
前記制御部は、前記第１のモニタ素子のモニタ結果と前記第２のモニタ素子のモニタ結果とに基づき前記内部回路の経年劣化を検出する、
請求項１乃至７のいずれか一項に記載の半導体装置。
【請求項９】
前記制御部は、前記第１のモニタ素子に対しての前記第２のモニタ素子の遅延量が所定の値以上大きくなった場合、前記第２のモニタ素子のモニタ結果を用いて前記比較値を設定する、請求項８に記載の半導体装置。
【請求項１０】
前記モニタ部は各々、所定の段数のリングオシレータを備える第３のモニタ素子と、当該第３のモニタ素子が備えるリングオシレータよりも段数の多いリングオシレータを備える第４のモニタ素子とを有し、
前記制御部は、前記第３のモニタ素子のモニタ結果と前記第４のモニタ素子のモニタ結果とに基づき前記モニタ部における特性のばらつきを検出し、当該ばらつきに応じて前記比較値を設定する、
請求項１乃至７のいずれか一項に記載の半導体装置。
【請求項１１】
前記制御部は、前記内部回路の電源がオン状態となる度に前記比較値を更新する、請求項１乃至１０のいずれか一項に記載の半導体装置。
【請求項１２】
前記制御部は、前記内部回路の電源がオン状態となった後、所定の時間が経過する度に前記比較値を更新する、請求項１乃至１０のいずれか一項に記載の半導体装置。
【請求項１３】
前記制御部は、前記複数のモニタ部の中から使用するモニタ部を選択するモニタ選択部を更に備える、請求項１乃至１２のいずれか一項に記載の半導体装置。
【請求項１４】
前記制御部は、前記モニタ値を算出する際に用いられるモニタ部の数が前記比較値を設定する際に用いられるモニタ部の数よりも少なくなるように前記モニタ部を選択する、請求項１３に記載の半導体装置。
【請求項１５】
前記モニタ部の各々は、
所定のクロック信号に応じて動作する第１のフリップフロップと、
前記第１のフリップフロップから出力されたデータに遅延を与えるクリティカルパスレプリカおよび複数の遅延素子と、
前記クリティカルパスレプリカから出力されたデータ、および前記複数の遅延素子の各々から出力されたデータをそれぞれ格納する、前記所定のクロック信号に応じて動作する複数の第２のフリップフロップと、を備え、
前記制御部は、前記複数の第２のフリップフロップから出力される各々のデータに応じて前記内部回路の特性をモニタする、
請求項１に記載の半導体装置。
【請求項１６】
内部回路への電源供給方法であって、
前記内部回路の複数の場所における特性をモニタし、
前記複数の場所におけるモニタ結果に基づきモニタ値を算出し、
前記複数の場所におけるモニタ結果のばらつきに応じて比較値を設定し、
前記モニタ値と前記設定された比較値との比較結果に応じて前記内部回路に供給される電源を制御し、
前記比較値は、前記モニタ値の上限値に対応した第１の設定値と前記モニタ値の下限値に対応した第２の設定値とを含み、
前記比較値を設定する際、前記複数のモニタ部における特性のばらつきが小さくなるにつれて、前記第１の設定値が小さくなるように、且つ前記第１の設定値と前記第２の設定値との間隔が狭くなるように前記第１および第２の設定値を設定する、
電源供給方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置および電源供給方法に関し、特に消費電力を低減することができる半導体装置および電源供給方法に関する。
【背景技術】
【０００２】
ＣＭＯＳ論理ゲートを用いた半導体装置の消費電力を低減する技術として、要求される速度に応じて電源電圧を制御するＤＶＦＳ（Ｄｙｎａｍｉｃ  Ｖｏｌｔａｇｅ  ａｎｄ  Ｆｒｅｑｕｅｎｃｙ  Ｓｃａｌｉｎｇ）技術がある。ＤＶＦＳ技術を用いて電源電圧を制御する場合は、半導体装置の複数の箇所に遅延モニタを設け、この遅延モニタで測定された値に基づき半導体装置に供給される電源電圧を制御することができる。
【０００３】
また、特許文献１には、電圧制御機能を搭載した半導体装置の設計に関する技術が開示されている。特許文献２には、信頼性が高くフレキシブルに効率良くレプリカ回路を構成することができる半導体装置に関する技術が開示されている。特許文献３には、素子の電気的特性がばらつく場合であっても、半導体回路上に形成される回路の動作マージンの低下を最小限にすることができる技術が開示されている。特許文献４および特許文献５には、ＬＳＩの経時劣化マージン量を簡便に求めることができる技術が開示されている。特許文献６には、内部回路に好適な電源電圧を供給することが可能な半導体集積回路に関する技術が開示されている。また、非特許文献１には、遅延モニタにおける測定結果に応じて半導体回路に供給される電源電圧を制御する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−９１２７７号公報
【特許文献２】特開２０００−２９５０８４号公報
【特許文献３】特開２００８−１８６９３１号公報
【特許文献４】特開２００１−３３１５４５号公報
【特許文献５】特開２００５−１００４５８号公報
【特許文献６】特開２００９−１０３４４号公報
【非特許文献】
【０００５】
【非特許文献１】M. Nomura, Y. Ikenaga, K. Takeda, Y. Nakazawa, Y. Aimoto, and Y. Hagihara, "Delay and power monitoring schemes for minimizing power consumption by means of supply and threshold voltage control in active and standby modes," IEEE Journal of Solid-State Circuits, vol. 41, pp. 805 - 814, April 2006.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
半導体装置が備える内部回路に供給される電源電圧を制御する場合、内部回路の複数の箇所にモニタを設け、このモニタで測定された値に基づき電源電圧を制御することができる。しかしながら、内部回路の特性にはばらつきがあるため、内部回路に供給される電源電圧はこのばらつきを考慮して設定する必要がある。すなわち、内部回路に供給される電源電圧に所定のマージンを設ける必要がある。この所定のマージンは、ばらつきの少ない内部回路にとっては不要なマージンとなる。よって、この場合、ばらつきの少ない内部回路に、実際に必要な電源電圧よりも高い電源電圧が供給されることになり、内部回路を含む半導体装置の消費電力を低減することができないという問題があった。
【課題を解決するための手段】
【０００７】
本発明の一態様にかかる半導体装置は、内部回路に電源を供給する電源供給部と、前記内部回路の複数の場所における特性をモニタする複数のモニタ部と、前記複数のモニタ部から出力された信号に基づき算出されたモニタ値と、設定された比較値との比較結果に応じて前記電源供給部を制御する制御部と、を備え、前記制御部は、前記複数のモニタ部における特性のばらつきに応じて前記比較値を設定する。
【０００８】
本発明の一態様にかかる半導体装置では、内部回路に設けられた複数のモニタ部における特性のばらつきに応じて比較値を設定している。よって、比較値に無駄なマージンを設ける必要がなく最適な比較値を設定することができるので、半導体装置の消費電力を低減することができる。
【０００９】
本発明の他の態様にかかる電源供給方法は、内部回路への電源供給方法であって、前記内部回路の複数の場所における特性をモニタし、前記複数の場所におけるモニタ結果に基づきモニタ値を算出し、前記複数の場所におけるモニタ結果のばらつきに応じて比較値を設定し、前記モニタ値と前記設定された比較値との比較結果に応じて前記内部回路に供給される電源を制御する。
【００１０】
本発明の他の態様にかかる電源供給方法では、内部回路の複数の場所における特性をモニタし、当該複数の場所における特性のばらつきに応じて比較値を設定している。よって、比較値に無駄なマージンを設ける必要がなく最適な比較値を設定することができるので、半導体装置の消費電力を低減することができる。
【発明の効果】
【００１１】
本発明により、消費電力を低減することが可能な半導体装置および電源供給方法を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１にかかる半導体装置を示すブロック図である。
【図２】実施の形態１にかかる半導体装置が備えるモニタ部の一例を示すブロック図である。
【図３】実施の形態１にかかる半導体装置が備える制御部の一例を示すブロック図である。
【図４】図３に示すモニタ値算出部の一例を示すブロック図である。
【図５】図３に示すばらつき値算出部の一例を示すブロック図である。
【図６】図３に示すレジスタに格納されている比較値の一例を示す図である。
【図７】本発明の効果を説明するための図である。
【図８】本発明の効果を説明するための図である。
【図９】実施の形態２にかかる半導体装置が備えるばらつき値算出部を示すブロック図である。
【図１０】実施の形態２にかかる半導体装置が備えるばらつき値算出部の他の例を示すブロック図である。
【図１１】図９、図１０に示す最大値算出部の一例を示すブロック図である。
【図１２】図９、図１０に示す最小値算出部の一例を示すブロック図である。
【図１３】図１１に示す比較器の一例を示すブロック図である。
【図１４】図１２に示す比較器の一例を示すブロック図である。
【図１５】実施の形態３にかかる半導体装置が備えるモニタ部の一例を示すブロック図である。
【図１６】図１５に示すモニタ部の動作を説明するためのタイミングチャートである。
【図１７】実施の形態４にかかる半導体装置が備えるモニタ部の一例を示すブロック図である。
【図１８】実施の形態５にかかる半導体装置が備える制御部の一例を示すブロック図である。
【図１９Ａ】図１８に示す制御部の動作を説明するためのタイミングチャートである。
【図１９Ｂ】図１８に示す制御部の動作を説明するためのタイミングチャートである。
【図２０】実施の形態５にかかる半導体装置の動作を説明するためのフローチャートである。
【図２１】実施の形態６にかかる半導体装置が備える制御部の一例を示すブロック図である。
【図２２】図２１に示す制御部の動作を説明するためのタイミングチャートである。
【図２３】実施の形態７にかかる半導体装置が備える制御部の一例を示すブロック図である。
【図２４Ａ】実施の形態７にかかる半導体装置が備えるモニタ部の配置を説明するための図である。
【図２４Ｂ】実施の形態７にかかる半導体装置が備えるモニタ部の配置を説明するための図である。
【図２５】実施の形態８にかかる半導体装置が備えるモニタ部の一例を示すブロック図である。
【図２６】実施の形態８にかかる半導体装置の動作を説明するための図である。
【発明を実施するための形態】
【００１３】
＜実施の形態１＞
以下、図面を参照して本発明の実施の形態について説明する。
図１は、本発明の実施の形態１にかかる半導体装置を示すブロック図である。図１に示す半導体装置は、モニタ部１_１〜１_Ｎおよび制御部２を備える内部回路３と、電源供給部４と有する（Ｎは正の整数である。以下、同様。）。なお、図１に示す内部回路３は一つの電源制御単位であり、モニタ部１_１〜１_Ｎおよび制御部２は電源制御単位毎に設けられている。また、図１では内部回路３と電源供給部４を別に設けているが、内部回路３と電源供給部４を一体として構成してもよい。また、図１では内部回路３に制御部２を設けているが、制御部２を内部回路３と別に設けるようにしてもよい。
【００１４】
モニタ部１_１〜１_Ｎは、内部回路３の複数の箇所に設けられている。モニタ部１_１〜１_Ｎは内部回路３の特性をモニタするために設けられている。このため、モニタ部１_１〜１_Ｎは内部回路３に均等に配置されていることが好ましい。各モニタ部１_１〜１_Ｎから出力された信号Ｃ_１〜Ｃ_Ｎは、制御部２に供給される。
【００１５】
図２は、本実施の形態にかかる半導体装置が備えるモニタ部１_Ｎの一例を示すブロック図である。モニタ部１_Ｎは、リングオシレータ１１とカウンタ１２とを備える。リングオシレータ１１は、ＮＡＮＤ１と遅延素子１３とを有する。遅延素子１３としては、例えばバッファ回路や、直列に接続された偶数個のインバータ（ＮＯＴゲート）を用いることができる。また、遅延素子１３として直列に接続された奇数個のインバータを用いてもよいが、この場合はＮＡＮＤ１をＡＮＤ回路に替える必要がある。
【００１６】
ＮＡＮＤ１の一方の入力には制御部２から出力されたイネーブル信号ＥＮ_Ｎが供給される。ＮＡＮＤ１の出力は遅延素子１３に供給される。また、遅延素子１３の出力はＮＡＮＤ１の他方の入力およびカウンタ１２に供給される。カウンタ１２には制御部２から出力されたリセット信号が供給される。カウンタ１２のカウント値Ｃ_Ｎは、モニタ部１_Ｎが設けられた場所の特性を示す信号として制御部２に出力される。
【００１７】
リングオシレータ１１は、イネーブル信号ＥＮ_Ｎが非活性状態（つまり、ロウレベル"０"）の場合は発振しない。一方、リングオシレータ１１は、イネーブル信号ＥＮ_Ｎがハイレベル（つまり、活性状態"１"）の場合は所定の周期で発振する。よって、リングオシレータ１１は、イネーブル信号ＥＮ_Ｎがハイレベルの期間、カウンタ１２に対してロウレベルの信号とハイレベルの信号を繰り返して出力する。カウンタ１２は、イネーブル信号ＥＮ_Ｎがハイレベルの期間、リングオシレータ１１が発振した回数（つまり、リングオシレータ１１から出力されたパルス数）を測定する。制御部２は、リングオシレータ１１が発振した回数を測定する前に、カウンタ１２にリセット信号を出力してカウンタの値をリセットしておく。
【００１８】
このときカウンタ１２から出力されるカウント値Ｃ_Ｎは、モニタ部１_Ｎが配置されている場所の内部回路３の特性を示している。つまり、カウント値Ｃ_Ｎが大きい程、リングオシレータ１１の発振周波数が高いため、リングオシレータ１１を構成する素子の速度が速いといえる。逆に、カウント値Ｃ_Ｎが小さい程、リングオシレータ１１の発振周波数が低いため、リングオシレータ１１を構成する素子の速度が遅いといえる。
【００１９】
制御部２は、複数のモニタ部１_１〜１_Ｎから出力された信号Ｃ_１〜Ｃ_Ｎに基づき電源供給部４を制御するための制御信号ＣＴＲＬを生成し、この制御信号ＣＴＲＬを電源供給部４に出力する。つまり、制御部２は、複数のモニタ部１_１〜１_Ｎから出力された信号Ｃ_１〜Ｃ_Ｎに基づき算出されたモニタ値と、設定された比較値との比較結果に応じて電源供給部４を制御する。このとき、制御部２は、複数のモニタ部１_１〜１_Ｎにおける特性のばらつきに応じて比較値を設定することができる。
【００２０】
図３は、本実施の形態にかかる半導体装置が備える制御部の一例を示すブロック図である。図３に示すように、制御部２は、ばらつき値算出部２１、モニタ値算出部２２、レジスタ２３、および比較部２４を備える。
【００２１】
モニタ値算出部２２は、複数のモニタ部１_１〜１_Ｎから出力された信号（つまり、カウント値）Ｃ_１〜Ｃ_Ｎに基づき、比較部２４において比較値ＣＯＭＰと比較するためのモニタ値Ｃ_ＡＶＥを算出する。例えば、モニタ値Ｃ_ＡＶＥとして、複数のモニタ部１_１〜１_Ｎにおけるカウント値Ｃ_１〜Ｃ_Ｎの平均値を用いることができる。しかし、モニタ値Ｃ_ＡＶＥは、カウント値Ｃ_１〜Ｃ_Ｎの平均値に限定されることはなく、例えば、カウント値Ｃ_１〜Ｃ_Ｎの中から選択された１つの値を用いてもよく、また、これ以外の方法で決定された値を用いることもできる。
【００２２】
図４は、図３に示すモニタ値算出部２２の一例を示すブロック図である。図４に示すモニタ値算出部２２は、モニタ値Ｃ_ＡＶＥとしてカウント値Ｃ_１〜Ｃ_Ｎの平均値を算出する回路である。なお、図４では、例として、モニタ値算出部２２が４つのカウント値Ｃ_１〜Ｃ_４を用いてモニタ値Ｃ_ＡＶＥを算出する場合を示している。
【００２３】
図４に示すモニタ値算出部２２は、加算器３０_１〜３０_３と平均化回路３１とを備える。加算器３０_１は、カウント値Ｃ_１とカウント値Ｃ_２とを入力し、これらの値を加算した値を加算器３０_３に出力する。加算器３０_２は、カウント値Ｃ_３とカウント値Ｃ_４とを入力し、これらの値を加算した値を加算器３０_３に出力する。加算器３０_３は、加算器３０_１から出力された値と加算器３０_２から出力された値とを入力し、これらの値を加算した値を平均化回路３１に出力する。すなわち、平均化回路３１に入力される値は、カウント値Ｃ_１〜Ｃ_４を全て加算した値である。平均化回路３１は、カウント値Ｃ_１〜Ｃ_４を全て加算した値を、カウント値の数（この場合は、"４"）で除算して、除算後の値をモニタ値Ｃ_ＡＶＥとして出力する。例えば、平均化回路３１は、カウント値が２進数で表現されている場合、２ビット右シフトする。
【００２４】
なお、上記例ではカウント値が４つの場合を例として示したが、カウント値が４つ以上の場合であっても同様に回路を構成することができる。つまり、カウント値Ｃ_１〜Ｃ_Ｎを全て加算する複数の加算器を設ける。そして、カウント値Ｃ_１〜Ｃ_Ｎを全て加算した値を、平均化回路３１において、カウント値の数（Ｎ）で除算することでモニタ値Ｃ_ＡＶＥを算出することができる。
【００２５】
図３に示すばらつき値算出部２１は、例えば、複数のモニタ部１_１〜１_Ｎにおけるカウント値Ｃ_１〜Ｃ_Ｎの標準偏差（σ）をばらつき値Ｃ_ＶＡＲとして算出することができる。図５は、ばらつき値算出部２１の一例を示すブロック図である。図５に示すばらつき値算出部２１は、ばらつき値Ｃ_ＶＡＲとしてカウント値Ｃ_１〜Ｃ_Ｎの標準偏差（σ）を算出する回路である。なお、図５では、例として、ばらつき値算出部２１が４つのカウント値Ｃ_１〜Ｃ_４を用いてばらつき値Ｃ_ＶＡＲを算出する場合を示している。
【００２６】
図５に示すばらつき値算出部２１は、減算器３２_１〜３２_４、乗算器３３_１〜３３_４、加算器３４_１〜３４_３、除算器３５、および平方根演算器３６を備える。減算器３２_１は、カウント値Ｃ_１と、カウント値Ｃ_１〜Ｃ_４の平均値Ｃ_ＡＶＥとを入力し、これらの値を減算した値（Ｃ_１−Ｃ_ＡＶＥ）を乗算器３３_１に出力する。ここで、カウント値Ｃ_１〜Ｃ_４の平均値Ｃ_ＡＶＥは、例えば図４に示したモニタ値算出部２２を用いて求めることができる。以降、減算器３２_２〜３２_４についても同様の動作をする。
【００２７】
乗算器３３_１は、減算器３２_１から出力された値（Ｃ_１−Ｃ_ＡＶＥ）を入力し、この値を自乗した値（Ｃ_１−Ｃ_ＡＶＥ）２を加算器３４_１に出力する。乗算器３３_２は、減算器３２_２から出力された値（Ｃ_２−Ｃ_ＡＶＥ）を入力し、この値を自乗した値（Ｃ_２−Ｃ_ＡＶＥ）２を加算器３４_１に出力する。以降、乗算器３３_３〜３３_４についても同様の動作をする。
【００２８】
加算器３４_１は、乗算器３３_１から出力された値（Ｃ_１−Ｃ_ＡＶＥ）２と乗算器３３_２から出力された値（Ｃ_２−Ｃ_ＡＶＥ）２とを入力し、これらの値を加算した値を加算器３４_３に出力する。加算器３４_２は、乗算器３３_３から出力された値（Ｃ_３−Ｃ_ＡＶＥ）２と乗算器３３_４から出力された値（Ｃ_４−Ｃ_ＡＶＥ）２とを入力し、これらの値を加算した値を加算器３４_３に出力する。加算器３４_３は、加算器３４_１から出力された値と加算器３４_２から出力された値とを加算した値（つまり、（Ｃ_１−Ｃ_ＡＶＥ）２＋（Ｃ_２−Ｃ_ＡＶＥ）２＋（Ｃ_３−Ｃ_ＡＶＥ）２＋（Ｃ_４−Ｃ_ＡＶＥ）２）を除算器３５に出力する。
【００２９】
除算器３５は、加算器３４_３から出力された値をカウント値の数"４"で除算する。例えば、カウント値が２進数で表現されている場合、２ビット右シフトする。除算器３５で得られた値は、カウント値Ｃ_１〜Ｃ_４の分散値（σ２）である。平方根演算器３６は、除算器３５から出力された分散値（σ２）の平方根を演算することで、標準偏差（σ）を算出する。得られた標準偏差（σ）は、ばらつき値Ｃ_ＶＡＲとして比較部２４に出力される。
【００３０】
図３に示すレジスタ２３は、複数の比較値Ａ（２６_１）、比較値Ｂ（２６_２）、比較値Ｃ（２６_３）を格納している。レジスタ２３に格納する比較値の数は任意に決定することができる。比較値は、モニタ値Ｃ_ＡＶＥの上限値に対応した設定値（第１の設定値）とモニタ値Ｃ_ＡＶＥの下限値に対応した設定値（第２の設定値）を含んでいる。図６は、レジスタ２３に格納されている比較値の一例を示している。
【００３１】
図６に示すように、レジスタ２３は、例えば比較値Ａとして、下限の設定値Ｃ_Ｌ_ｓｅｔ_１と上限の設定値Ｃ_Ｈ_ｓｅｔ_１を格納している。ここで、下限の設定値Ｃ_Ｌ_ｓｅｔ_１は、モニタ値Ｃ_ＡＶＥがこの値よりも低くならないようにするために設定された値である。また、上限の設定値Ｃ_Ｈ_ｓｅｔ_１は、モニタ値Ｃ_ＡＶＥがこの値よりも高くならないようにするために設定された値である。すなわち、制御部２は、モニタ値Ｃ_ＡＶＥが設定値Ｃ_Ｌ_ｓｅｔ_１と設定値Ｃ_Ｈ_ｓｅｔ_１の間となるような制御信号ＣＴＲＬを生成する。
【００３２】
同様に、レジスタ２３は、比較値Ｂとして、下限の設定値Ｃ_Ｌ_ｓｅｔ_２と上限の設定値Ｃ_Ｈ_ｓｅｔ_２を格納している。また、レジスタ２３は、比較値Ｃとして、下限の設定値Ｃ_Ｌ_ｓｅｔ_３と上限の設定値Ｃ_Ｈ_ｓｅｔ_３を格納している。
【００３３】
そして、レジスタ２３は、複数のモニタ部１_１〜１_Ｎにおける特性のばらつきに応じて比較値ＣＯＭＰを設定する。つまり、レジスタ２３は、ばらつき値算出部２１から出力されたカウント値Ｃ_１〜Ｃ_Ｎのばらつき値Ｃ_ＶＡＲに応じて、比較値ＣＯＭＰを設定する。設定された比較値ＣＯＭＰは、比較部２４に出力される。
【００３４】
ここで、例えば、比較値Ａの上限の設定値Ｃ_Ｈ_ｓｅｔ_１と下限の設定値Ｃ_Ｌ_ｓｅｔ_１との間隔は、比較値Ｂの上限の設定値Ｃ_Ｈ_ｓｅｔ_２と下限の設定値Ｃ_Ｌ_ｓｅｔ_２との間隔よりも広く設定されているものとする。また、比較値Ｂの上限の設定値Ｃ_Ｈ_ｓｅｔ_２と下限の設定値Ｃ_Ｌ_ｓｅｔ_２との間隔は、比較値Ｃの上限の設定値Ｃ_Ｈ_ｓｅｔ_３と下限の設定値Ｃ_Ｌ_ｓｅｔ_３との間隔よりも広く設定されているものとする。
【００３５】
更に、比較値Ａの上限の設定値Ｃ_Ｈ_ｓｅｔ_１は比較値Ｂの上限の設定値Ｃ_Ｈ_ｓｅｔ_２よりも大きく、比較値Ｂの上限の設定値Ｃ_Ｈ_ｓｅｔ_２は比較値Ｃの上限の設定値Ｃ_Ｈ_ｓｅｔ_３よりも大きくなるように設定されているものとする。また、比較値Ａの下限の設定値Ｃ_Ｌ_ｓｅｔ_１は比較値Ｂの下限の設定値Ｃ_Ｌ_ｓｅｔ_２よりも大きく、比較値Ｂの下限の設定値Ｃ_Ｌ_ｓｅｔ_２は比較値Ｃの下限の設定値Ｃ_Ｌ_ｓｅｔ_３よりも大きくなるように設定されているものとする。
【００３６】
本実施の形態にかかる半導体装置では、レジスタ２３は、ばらつき値算出部２１から出力されたカウント値Ｃ_１〜Ｃ_Ｎのばらつきが小さくなるにつれて、つまり、ばらつき値（標準偏差）Ｃ_ＶＡＲが小さくなるにつれて、比較値ＣＯＭＰの上限の設定値が小さくなるように、且つ比較値ＣＯＭＰの上限の設定値と下限の設定値の間隔が狭くなるように、比較値ＣＯＭＰを設定している。
【００３７】
図６を用いて説明すると、ａ＞ｂ＞ｃ＞ｄの関係がある場合、ばらつき値（標準偏差）Ｃ_ＶＡＲが大きい場合（ａ＞Ｃ_ＶＡＲ≧ｂ）、レジスタ２３は比較値Ａを比較値ＣＯＭＰとして出力する。また、ばらつき値（標準偏差）Ｃ_ＶＡＲが比較的大きい場合（ｂ＞Ｃ_ＶＡＲ≧ｃ）、レジスタ２３は比較値Ｂを比較値ＣＯＭＰとして出力する。また、ばらつき値（標準偏差）Ｃ_ＶＡＲが比較的小さい場合（ｃ＞Ｃ_ＶＡＲ≧ｄ）、レジスタ２３は比較値Ｃを比較値ＣＯＭＰとして出力する。
【００３８】
比較部２４は、レジスタ２３から出力された比較値ＣＯＭＰとモニタ値算出部２２から出力されたモニタ値Ｃ_ＡＶＥとを比較し、モニタ値Ｃ_ＡＶＥが比較値ＣＯＭＰの上限の設定値と下限の設定値との間となるような制御信号ＣＴＲＬを生成し、電源供給部４に出力する。制御信号ＣＴＲＬは、電源供給部４の仕様に対応した信号であり、例えば、符号化された信号などである。
【００３９】
電源供給部４は、制御部２の比較部２４から出力された制御信号ＣＴＲＬに応じて、内部回路３に供給する電源電圧Ｖｄｄを制御する。具体的には、モニタ値Ｃ_ＡＶＥが比較値ＣＯＭＰの上限の設定値よりも大きくなった場合は、モニタ部における動作周波数が高いので、制御部２は供給される電源電圧Ｖｄｄが低くなるように電源供給部４を制御する。逆に、モニタ値Ｃ_ＡＶＥが比較値ＣＯＭＰの下限の設定値よりも小さくなった場合は、モニタ部における動作周波数が低いので、制御部２は供給される電源電圧Ｖｄｄが高くなるように電源供給部４を制御する。
【００４０】
図７、図８は本実施の形態にかかる発明の効果を説明するための図である。まず、図７を用いて、本実施の形態にかかる発明の効果を説明する。内部回路３に形成された所定の回路において、所定の性能を実現するための電圧の設計値をＶ_ｎｏｍとする。このとき、内部回路３の特性（チップ性能）にはばらつきがあるため、図７の上図に示すように、内部回路３に形成された所定の回路において、所定の性能を実現するための電圧値はＶ_ｍｉｎ_ｓ（最小値）からＶ_ｍａｘ_ｓ（最大値）となる。つまり、所定の性能を実現するための電圧値は、Ｖ_ｎｏｍを中心として分散する。このときの標準偏差をσ１とする。
【００４１】
このとき、電源供給部４は、内部回路３に形成された所定の回路において、所定の性能を実現するために、Ｖ_ｍｉｎ_ｓ〜Ｖ_ｍａｘ_ｓの電源電圧Ｖｄｄを供給する必要がある。内部回路３の特性のばらつきが大きい場合（図７の上図）は、モニタ値と内部回路３の性能にずれが生じることから電源電圧にマージンを与える必要があり、電圧の最大値Ｖ_ｍａｘ_ｓを大きくする必要がある。
【００４２】
一方、図７の下図に示すように、内部回路３の特性（チップ性能）のばらつきが小さい場合は、所定の性能を実現するための電圧値Ｖ_ｍｉｎ_ｓ〜Ｖ_ｍａｘ_ｓ'の標準偏差は小さくなる（このときの標準偏差をσ２とする）。このとき、図７に示すように、所定の性能を実現するための最低電圧Ｖ_ｍｉｎ_ｓは、標準偏差がσ１の場合とσ２の場合とで同一とすることができる。よって、図７の下図に示したように、標準偏差がσ２の場合は、内部回路３の特性のばらつきが小さいので、電圧の最大値Ｖ_ｍａｘ_ｓ'は、標準偏差がσ１の場合の電圧の最大値Ｖ_ｍａｘ_ｓよりも、符号５２で示す分だけ小さくすることができる。
【００４３】
換言すると、内部回路３の特性のばらつきが小さい場合（標準偏差σ２）は、設定電圧の最大値をＶ_ｍａｘ_ｓ'とすることができる。一方、内部回路３の特性のばらつきが大きい場合（標準偏差σ１）は、設定電圧の最大値を、ばらつきが小さい場合の最大値Ｖ_ｍａｘ_ｓ'に符号５２に示すマージンを設けた電圧Ｖ_ｍａｘ_ｓとする必要がある。
【００４４】
従来、モニタ値Ｃ_ＡＶＥと比較される比較値は固定値であったため、内部回路３の特性のばらつきが大きい場合を想定して、所定の性能を実現するための電圧の最大値Ｖ_ｍａｘｓを高めに設定する必要があった。このため、本来であれば、内部回路３の特性のばらつきが小さく、所定の性能を実現するための電圧の最大値を低めに設定することができる場合であっても、電圧の最大値が高めに設定されるため、半導体装置の消費電力が増加するという問題があった。
【００４５】
これに対して本実施の形態にかかる半導体装置では、ばらつき値算出部２１において、複数のモニタ部１_１〜１_Ｎにおけるカウント値Ｃ_１〜Ｃ_Ｎのばらつき値Ｃ_ＶＡＲを算出し、このばらつき値Ｃ_ＶＡＲに応じて比較部２４で用いる比較値ＣＯＭＰを決定している。つまり、内部回路３の特性のばらつきが大きい場合は、比較値ＣＯＭＰとして、比較値の上限の設定値が大きく、且つ比較値の上限値と下限値の間隔が広い比較値を用いることができる（図７の上図参照）。一方、内部回路３の特性のばらつきが小さい場合は、比較値ＣＯＭＰとして、比較値の上限の設定値が小さく、且つ比較値の上限値と下限値の間隔が狭い比較値を用いることができる（図７の下図参照）。
【００４６】
このように、本実施の形態にかかる半導体装置では、内部回路３の特性のばらつきに応じて比較部２４で用いる比較値ＣＯＭＰを変更することができるので、内部回路３の特性のばらつきに応じて最適な比較値を用いることができる。よって、比較値に無駄なマージンを設ける必要がないため、半導体装置の消費電力を低減することができる。
【００４７】
図８は、本実施の形態にかかる発明の効果を説明するための図であり、図７における電圧が図８に示す速度（カウント値）に対応している。図８に示すように、内部回路３の特性のばらつきが大きい場合は、比較値ＣＯＭＰとして比較値Ａ（図６参照）を用いている。つまり、比較値ＣＯＭＰとして、上限の設定値がＣ_Ｈ_ｓｅｔ_１、下限の設定値がＣ_Ｌ_ｓｅｔ_１の比較値を用いている。
【００４８】
制御部２は、モニタ値Ｃ_ＡＶＥが上限の設定値Ｃ_Ｈ_ｓｅｔ_１よりも大きくなった場合は、電源供給部４から供給される電源電圧Ｖｄｄを低くし、モニタ値Ｃ_ＡＶＥが下限の設定値Ｃ_Ｌ_ｓｅｔ_１よりも小さくなった場合は、電源供給部４から供給される電源電圧Ｖｄｄを高くする。このような制御により、モニタ値Ｃ_ＡＶＥを下限の設定値Ｃ_Ｌ_ｓｅｔ_１と上限の設定値Ｃ_Ｈ_ｓｅｔ_１との間に収めることができる。
【００４９】
図８の上図に示す場合は内部回路３の特性のばらつきが大きいので、比較値ＣＯＭＰとして、上限の設定値Ｃ_Ｈ_ｓｅｔ_１が大きく、且つ比較値の上限の設定値Ｃ_Ｈ_ｓｅｔ_１と下限の設定値Ｃ_Ｌ_ｓｅｔ_１の間隔５３が広い比較値を用いている。一方、図８の下図に示す場合は内部回路３の特性のばらつきが小さいので、比較値ＣＯＭＰとして、上限の設定値Ｃ_Ｈ_ｓｅｔ_２が設定値Ｃ_Ｈ_ｓｅｔ_１よりも小さく、且つ比較値の上限の設定値Ｃ_Ｈ_ｓｅｔ_２と下限の設定値Ｃ_Ｌ_ｓｅｔ_２の間隔５４が狭い比較値を用いることができる。
【００５０】
例えば、内部回路３の特性のばらつきが大きい場合（図８の上図）は、モニタ値Ｃ_ＡＶＥが符号５５の位置となるように制御する必要がある。しかし、内部回路３の特性のばらつきが小さい場合（図８の下図）は、比較値ＣＯＭＰの上限の設定値Ｃ_Ｈ_ｓｅｔ_２を低く設定することができるので、モニタ値Ｃ_ＡＶＥがより小さな値となるように、電源電圧Ｖｄｄを制御することができる（つまり、電源電圧Ｖｄｄを低くすることができる）。
【００５１】
以上で説明したように、本実施の形態にかかる半導体装置では、内部回路３の特性のばらつきに応じて比較部２４で用いる比較値ＣＯＭＰを変更することができるので、内部回路３の特性のばらつきに応じて最適な比較値を用いることができる。よって、比較値に無駄なマージンを設ける必要がないため、半導体装置の消費電力を低減することができる。
【００５２】
したがって、本実施の形態にかかる発明により、消費電力を低減することが可能な半導体装置および電源供給方法を提供することができる。
【００５３】
＜実施の形態２＞
次に、本発明の実施の形態２について説明する。実施の形態２にかかる半導体装置では、ばらつき値算出部の構成が実施の形態１で説明したばらつき値算出部２１と異なる。これ以外は実施の形態１と同様であるので、同一の構成要素には同一の符号を付し重複した説明は省略する。
【００５４】
図９は、本実施の形態にかかる半導体装置が備えるばらつき値算出部２１'を示すブロック図である。図９に示すばらつき値算出部２１'は、最大値算出部３７、最小値算出部３８、および減算器３９を有する。図９では、例として、ばらつき値算出部２１'が４つのカウント値Ｃ_１〜Ｃ_４を用いてばらつき値Ｃ_ＶＡＲを算出する場合を示している。
【００５５】
最大値算出部３７は、カウント値Ｃ_１〜Ｃ_４の中から最大値を抽出し、この最大値Ｃ_ＭＡＸを減算器３９に出力する。図１１は、最大値算出部３７の一例を示すブロック図である。最大値算出部３７は、比較器４１_１〜４１_３で構成されている。比較器４１_１は、カウント値Ｃ_１、Ｃ_２を入力し、これらのうちカウント値が大きい方のカウント値を比較器４１_３に出力する。比較器４１_２は、カウント値Ｃ_３、Ｃ_４を入力し、これらのうちカウント値が大きい方のカウント値を比較器４１_３に出力する。比較器４１_３は、比較器４１_１から出力されたカウント値と比較器４１_２から出力されたカウント値のうち、大きい方のカウント値を最大値Ｃ_ＭＡＸとして出力する。
【００５６】
図１３は、比較器４１_１の一例を示すブロック図である（比較器４１_２、比較器４１_２についても同様の構成である）。比較器４１_１は、減算器４３と判定部４４とを有する。減算器４３は、カウント値Ｃ_１とカウント値Ｃ_２とを入力し、カウント値Ｃ_１からカウント値Ｃ_２を減算した値を判定部４４に出力する。判定部４４は、入力された値が正の値である場合はカウント値Ｃ_１を出力し、入力された値が負の値である場合はカウント値Ｃ_２を出力する。カウント値が２ビットで表現されている場合、判定部４４は、入力された値のＭＳＢ（Most Significant Bit）が"０"の場合はカウント値Ｃ_１を出力し、入力された値のＭＳＢが"１"の場合はカウント値Ｃ_２を出力する。このとき、負の整数を２の補数で表すとＭＳＢは"１"となる。
【００５７】
図９に示す最小値算出部３８は、カウント値Ｃ_１〜Ｃ_４の中から最小値を抽出し、この最小値Ｃ_ＭＩＮを減算器３９に出力する。図１２は、最小値算出部３８の一例を示すブロック図である。最小値算出部３８は、比較器４２_１〜４２_３で構成されている。比較器４２_１は、カウント値Ｃ_１、Ｃ_２を入力し、これらのうちカウント値が小さい方のカウント値を比較器４２_３に出力する。比較器４２_２は、カウント値Ｃ_３、Ｃ_４を入力し、これらのうちカウント値が小さい方のカウント値を比較器４２_３に出力する。比較器４２_３は、比較器４２_１から出力されたカウント値と比較器４２_２から出力されたカウント値のうち、小さい方のカウント値を最小値Ｃ_ＭＩＮとして出力する。
【００５８】
図１４は、比較器４２_１の一例を示すブロック図である（比較器４２_２、比較器４２_２についても同様の構成である）。比較器４２_１は、減算器４５と判定部４６とを有する。減算器４５は、カウント値Ｃ_１とカウント値Ｃ_２とを入力し、カウント値Ｃ_１からカウント値Ｃ_２を減算した値を判定部４６に出力する。判定部４６は、入力された値が正の値である場合はカウント値Ｃ_２を出力し、入力された値が負の値である場合はカウント値Ｃ_１を出力する。カウント値が２ビットで表現されている場合、判定部４６は、入力された値のＭＳＢ（Most Significant Bit）が"０"の場合はカウント値Ｃ_２を出力し、入力された値のＭＳＢが"１"の場合はカウント値Ｃ_１を出力する。このとき、負の整数を２の補数で表すとＭＳＢは"１"となる。
【００５９】
図９に示す減算器３９は、最大値算出部３７から出力された最大値Ｃ_ＭＡＸと最小値算出部３８から出力された最小値Ｃ_ＭＩＮとを入力し、最大値Ｃ_ＭＡＸから最小値Ｃ_ＭＩＮを減算した値をばらつき値Ｃ_ＶＡＲとして出力する。つまり、本実施の形態では、カウント値の最大値Ｃ_ＭＡＸとカウント値の最小値Ｃ_ＭＩＮの差が大きい程、ばらつき値Ｃ_ＶＡＲが大きくなる。一方、カウント値の最大値Ｃ_ＭＡＸとカウント値の最小値Ｃ_ＭＩＮの差が小さい程、ばらつき値Ｃ_ＶＡＲが小さくなる。
【００６０】
なお、本実施の形態では、図１０に示すばらつき値算出部２１''を用いてもよい。図１０に示すばらつき値算出部２１''は、図９に示したばらつき値算出部２１'に除算器４０を加えている。つまり、本実施の形態では、カウント値の最大値Ｃ_ＭＡＸからカウント値の最小値Ｃ_ＭＩＮを引いた値を、更にカウント値の平均値で除算した値（（Ｃ_ＭＡＸ−Ｃ_ＭＩＮ）／Ｃ_ＡＶＥ）をばらつき値として用いてもよい。
【００６１】
実施の形態１で説明したばらつき値算出部２１では、ばらつき値として標準偏差を求めていた。このとき、自乗や平方根の演算を実施する必要があるため、ばらつき値算出部２１の構成が比較的複雑となっていた（図５参照）。よって、カウント値Ｃ_１〜Ｃ_Ｎからばらつき値Ｃ_ＶＡＲを算出する際の演算量が多くなり、演算に時間がかかる場合があった。
【００６２】
これに対して本実施の形態では、図９〜図１４に示すように、比較的簡単な構成でばらつき値算出部２１'を構成することができる。よって、カウント値Ｃ_１〜Ｃ_Ｎからばらつき値Ｃ_ＶＡＲを算出する際の演算量を少なくすることができ、ばらつき値Ｃ_ＶＡＲの算出にかかる時間を短縮することができる。
【００６３】
＜実施の形態３＞
次に、本発明の実施の形態３について説明する。実施の形態３にかかる半導体装置では、モニタ部の構成が実施の形態１で説明したモニタ部１_Ｎ（図２参照）と異なる。これ以外は実施の形態１と同様であるので、同一の構成要素には同一の符号を付し重複した説明は省略する。
【００６４】
図１５は、本実施の形態にかかる半導体装置が備えるモニタ部６０を示すブロック図である。図１５に示すモニタ部６０は、図１に示すモニタ部１_１〜１_Ｎの各々に対応している。すなわち、複数のモニタ部６０が、内部回路３の複数の箇所に設けられている。図１５に示すモニタ部６０は、モニタ素子６１（第１のモニタ素子）とモニタ素子６２（第２のモニタ素子）とを有する。ここで、モニタ素子６１、６２は同一段数のリングオシレータを備える。
【００６５】
モニタ素子６１は、ＮＡＮＤ１１と、複数のインバータＩＮＶ１１_１〜ＩＮＶ１１_Ｎと、カウンタ６３とを備える。ここで、ＮＡＮＤ１１および複数のインバータＩＮＶ１１_１〜ＩＮＶ１１_Ｎはリングオシレータを構成し、偶数個のインバータＩＮＶ１１_１〜ＩＮＶ１１_Ｎが直列に接続されている。
【００６６】
ＮＡＮＤ１１の一方の入力には制御部２から出力されたイネーブル信号ＥＮ_ａが供給される。また、インバータＩＮＶ１１_Ｎの出力は、ＮＡＮＤ１１の他方の入力およびカウンタ６３に出力される。カウンタ６３には制御部２から出力されたリセット信号が供給される。カウンタ６３のカウント値Ｃ_Ｎ_ａは、モニタ部６０が設けられた場所の特性を示す信号として制御部２に出力される。
【００６７】
モニタ素子６２は、ＮＡＮＤ１２と、複数のインバータＩＮＶ１２_１〜ＩＮＶ１２_Ｎと、カウンタ６４とを備える。ここで、ＮＡＮＤ１２および複数のインバータＩＮＶ１２_１〜ＩＮＶ１２_Ｎはリングオシレータを構成し、偶数個のインバータＩＮＶ１２_１〜ＩＮＶ１２_Ｎが直列に接続されている。
【００６８】
ＮＡＮＤ１２の一方の入力には制御部２から出力されたイネーブル信号ＥＮ_ｂが供給される。また、インバータＩＮＶ１２_Ｎの出力は、ＮＡＮＤ１２の他方の入力およびカウンタ６４に出力される。カウンタ６４には制御部２から出力されたリセット信号が供給される。カウンタ６４のカウント値Ｃ_Ｎ_ｂは、モニタ部６０が設けられた場所の特性を示す信号として制御部２に出力される。
【００６９】
図１６は、モニタ部６０の動作を説明するためのタイミングチャートであり、モニタ素子６１に供給されるイネーブル信号ＥＮ_ａと、モニタ素子６２に供給されるイネーブル信号ＥＮ_ｂの波形を示している。図１６に示すように、モニタ素子６１に供給されるイネーブル信号ＥＮ_ａは、内部回路３の特性をモニタするモニタ期間にのみハイレベルとなる。つまり、モニタ素子６１は、実施の形態１で説明したモニタ部１_Ｎと同様の動作をする。
【００７０】
これに対して、モニタ素子６２に供給されるイネーブル信号ＥＮ_ｂは、モニタ期間以外においてもハイレベルとなっている。イネーブル信号ＥＮ_ｂがハイレベルとなっている期間、ＮＡＮＤ１２および複数のインバータＩＮＶ１２_１〜ＩＮＶ１２_Ｎで構成されるリングオシレータは発振する。モニタ素子６２が備えるリングオシレータは、モニタ素子６１が備えるリングオシレータよりも発振している時間が長いため、モニタ素子６２はモニタ素子６１よりも早く劣化する。
【００７１】
このとき、イネーブル信号ＥＮ_ｂがハイレベルとなる期間を、内部回路３が備える回路の動作期間と近似させることで、内部回路３が備える回路の劣化状態を反映したカウント値Ｃ_Ｎ_ｂを出力することができる。
【００７２】
すなわち、内部回路３が備える回路の経時劣化が進んでいない場合は、同一のモニタ期間において、モニタ素子６１のカウント値Ｃ_Ｎ_ａとモニタ素子６２のカウント値Ｃ_Ｎ_ｂはほぼ同一の値となる。一方、内部回路３が備える回路の経時劣化が進んでいる場合は、内部回路３が備える回路の劣化状態を反映したモニタ素子６２のカウント値Ｃ_Ｎ_ｂと、モニタ期間のみ動作をするモニタ素子６１のカウント値Ｃ_Ｎ_ａとで、差異が生じる。よって、制御部２は、モニタ素子６１のカウント値Ｃ_Ｎ_ａとモニタ素子６２のカウント値Ｃ_Ｎ_ｂとで差異が生じた場合は、モニタ素子６２のカウント値Ｃ_Ｎ_ｂを用いることで、内部回路３が備える回路の経年劣化を反映した制御をすることができる。
【００７３】
例えば、内部回路３が備える回路の経時劣化によって回路素子の動作速度が遅くなった場合、モニタ素子６２のカウント値Ｃ_Ｎ_ｂはモニタ素子６１のカウント値Ｃ_Ｎ_ａよりも小さくなる。この場合、制御部２は、モニタ素子６２のカウント値Ｃ_Ｎ_ｂを用いることで、内部回路３に供給する電源電圧Ｖｄｄを適切に制御することができる。換言すると、制御部２は、モニタ素子６１に対してのモニタ素子６２の遅延量が所定の値以上大きくなった場合、モニタ素子６２のモニタ結果であるカウント値Ｃ_Ｎ_ｂを用いて比較値を設定することができる。
【００７４】
以上で説明したように、本実施の形態にかかる半導体装置では、モニタ部６０に、モニタ期間のみ動作するモニタ素子６１と、モニタ期間以外にも動作するモニタ素子６２とを設けている。そして、モニタ素子６１のカウント値Ｃ_Ｎ_ａとモニタ素子６２のカウント値Ｃ_Ｎ_ｂとで差異が生じた場合、モニタ素子６２のカウント値Ｃ_Ｎ_ｂを用いることで、内部回路３が備える回路の経年劣化を反映した制御をすることができる。
【００７５】
＜実施の形態４＞
次に、本発明の実施の形態４について説明する。実施の形態４にかかる半導体装置では、モニタ部の構成が実施の形態１で説明したモニタ部１_Ｎ（図２参照）と異なる。これ以外は実施の形態１と同様であるので、同一の構成要素には同一の符号を付し重複した説明は省略する。
【００７６】
図１７は、本実施の形態にかかる半導体装置が備えるモニタ部７０を示すブロック図である。図１７に示すモニタ部７０は、図１に示すモニタ部１_１〜１_Ｎの各々に対応している。すなわち、複数のモニタ部７０が、内部回路３の複数の箇所に設けられている。図１５に示すモニタ部７０は、モニタ素子７１（第３のモニタ素子）とモニタ素子７２（第４のモニタ素子）とを有する。
【００７７】
モニタ素子７１は、ＮＡＮＤ２１と、複数のインバータＩＮＶ２１_１〜ＩＮＶ２１_Ｎと、カウンタ７３とを備える。ここで、ＮＡＮＤ２１および複数のインバータＩＮＶ２１_１〜ＩＮＶ２１_Ｎはリングオシレータを構成し、偶数個のインバータＩＮＶ２１_１〜ＩＮＶ２１_Ｎが直列に接続されている。
【００７８】
ＮＡＮＤ２１の一方の入力には制御部２から出力されたイネーブル信号ＥＮ_ｃが供給される。また、インバータＩＮＶ２１_Ｎの出力は、ＮＡＮＤ２１の他方の入力およびカウンタ７３に出力される。カウンタ７３には制御部２から出力されたリセット信号が供給される。カウンタ７３のカウント値Ｃ_Ｎ_ｃは、モニタ部７０が設けられた場所の特性を示す信号として制御部２に出力される。
【００７９】
モニタ素子７２は、ＮＡＮＤ２２と、複数のインバータＩＮＶ２２_１〜ＩＮＶ２２_Ｍと、カウンタ７４とを備える。ここで、ＮＡＮＤ２２および複数のインバータＩＮＶ２２_１〜ＩＮＶ２２_Ｍはリングオシレータを構成し、偶数個のインバータＩＮＶ２２_１〜ＩＮＶ２２_Ｍが直列に接続されている。なお、ＭはＮよりも大きい整数である。
【００８０】
ＮＡＮＤ２２の一方の入力には制御部２から出力されたイネーブル信号ＥＮ_ｄが供給される。また、インバータＩＮＶ２２_Ｍの出力は、ＮＡＮＤ２２の他方の入力およびカウンタ７４に出力される。カウンタ７４には制御部２から出力されたリセット信号が供給される。カウンタ７４のカウント値Ｃ_Ｎ_ｄは、モニタ部７０が設けられた場所の特性を示す信号として制御部２に出力される。
【００８１】
本実施の形態では、モニタ素子７１に供給されるイネーブル信号ＥＮ_ｃとモニタ素子７２に供給されるイネーブル信号ＥＮ_ｄは、同一の信号である。すなわち、モニタ素子７１とモニタ素子７２とが動作をするモニタ期間は同一の期間となる。しかし、モニタ素子７１が備えるインバータの個数とモニタ素子７２が備えるインバータの個数は異なるので、モニタ素子７１から出力されるカウント値Ｃ_Ｎ_ｃとモニタ素子７２から出力されるカウント値Ｃ_Ｎ_ｄは異なる。
【００８２】
ここで、内部回路３のばらつきの種類には、主に、システマティックばらつきとランダムばらつきがある。システマティックばらつきは比較的広い範囲におけるばらつきであり、例えば内部回路３の複数の箇所に設けられたモニタ部を用いて検出することができる。一方、ランダムばらつきは比較的狭い範囲におけるばらつきである。
【００８３】
本実施の形態では、モニタ部７０に複数のモニタ素子７１、７２を設けることで、ランダムばらつきを検出することを可能にしている。すなわち、図１７に示すように、本実施の形態では、インバータの個数が異なるモニタ素子を２つ設けている。具体的には、モニタ素子７２のインバータＩＮＶ２２_１〜ＩＮＶ２２_Ｍの個数を、モニタ素子７１のインバータＩＮＶ２１_１〜ＩＮＶ２１_Ｎの個数よりも多くしている。そして、モニタ素子７２のカウント値Ｃ_Ｎ_ｄにインバータの段数比（Ｎ／Ｍ）を乗算した値と、モニタ素子７１のカウント値Ｃ_Ｎ_ｃと、を比較することで、モニタ部におけるランダムばらつきを検出することができる。
【００８４】
つまり、インバータの段数が多いモニタ素子７２のカウント値Ｃ_Ｎ_ｄは、モニタ素子７１が形成されているゲート数よりも多数のゲートのばらつきを反映したカウント値であるため、モニタ素子７１のカウント値Ｃ_Ｎ_ｃよりも、ランダムばらつきの影響が少ない（ランダムばらつきはゲート段数の平方根の逆数に比例する）。よって、モニタ素子７２のカウント値Ｃ_Ｎ_ｄにインバータの段数比（Ｎ／Ｍ）を乗算した値と、モニタ素子７１のカウント値Ｃ_Ｎ_ｃとのばらつきの差が小さい場合は、ランダムばらつきが小さいと判断することができる。逆に、モニタ素子７２のカウント値Ｃ_Ｎ_ｄにインバータの段数比（Ｎ／Ｍ）を乗算した値と、モニタ素子７１のカウント値Ｃ_Ｎ_ｃとのばらつきの差が大きい場合は、ランダムばらつきが大きいと判断することができる。
【００８５】
制御部２は、モニタ部におけるランダムばらつきも考慮して、比較部で使用される比較値ＣＯＭＰを決定することができる。つまり、複数のモニタ部のカウント値から得られたシステマティックばらつきと、各モニタ部の２つのモニタ素子から得られたランダムばらつきとを考慮して、比較部２４で使用される比較値ＣＯＭＰを決定することができる。換言すると、制御部２は、モニタ素子７１のモニタ結果とモニタ素子７２のモニタ結果に基づき、モニタ部７０における特性のばらつきを検出し、当該ばらつきに応じて比較値ＣＯＭＰを設定することができる。
【００８６】
本実施の形態にかかる半導体装置では、システマティックばらつきに加えて、ランダムばらつきも考慮して、比較部２４で使用される比較値ＣＯＭＰを決定することができるので、内部回路に供給される電源電圧Ｖｄｄをより適切に制御することができる。
【００８７】
＜実施の形態５＞
次に、本発明の実施の形態５について説明する。実施の形態５にかかる半導体装置では、制御部の構成が実施の形態１で説明した制御部３（図３参照）と異なる。これ以外は実施の形態１と同様であるので、同一の構成要素には同一の符号を付し重複した説明は省略する。
【００８８】
図１８は、本実施の形態にかかる半導体装置が備える制御部８０の一例を示すブロック図である。図１８に示すように、制御部８０は、比較値生成部８１、モニタ値算出部２２、レジスタ８３、セレクタ８４、および比較部２４を備える。
【００８９】
比較値生成部８１は、複数のモニタ部１_１〜１_Ｎにおけるカウント値Ｃ_１〜Ｃ_Ｎを入力し、これらのばらつき値（例えば、標準偏差（σ））に応じて、比較値を生成する。また、比較値生成部８１には、内部回路に電源が供給されたタイミングを示すパワーオン信号ＰＷＲ_ＯＮが供給される。比較値生成部８１は、例えば、パワーオン信号ＰＷＲ_ＯＮが入力されたタイミングで比較値を生成する。パワーオン信号ＰＷＲ_ＯＮは、例えば端子を介して外部から供給される。
【００９０】
比較値生成部８１で生成される比較値は、基本的には実施の形態１にかかる比較値Ａ、比較値Ｂ、比較値Ｃ、・・・、と同様である。このとき、比較値生成部８１は、内部回路の経年劣化を考慮して比較値を生成してもよく（実施の形態３参照）、また、システマティックばらつきに加えて、ランダムばらつきも考慮して比較値を生成してもよい（実施の形態４参照）。比較値生成部８１で生成された比較値はセレクタ８４に出力される。
【００９１】
レジスタ８３には比較値（固定値）が格納されている。レジスタ８３に格納されている比較値は、汎用的に使用できる比較値である。例えば、内部回路３の特性のばらつきが大きい場合を想定して、所定の性能を実現するための電圧の最大値Ｖ_ｍａｘｓを高めに設定してある比較値である（図７の上図、図８の上図参照）。つまり、レジスタ８３に格納されている比較値は、内部回路３の特性のばらつきが大きい場合を想定して、マージンを多めに確保している比較値である。レジスタ８３に格納されている比較値（固定値）は、セレクタ８４に出力される。
【００９２】
セレクタ８４は、選択信号ＳＥＬに応じて、比較値生成部８１で生成された比較値（可変値）またはレジスタ８３に格納されている比較値（固定値）を選択し、選択された比較値ＣＯＭＰを比較部２４に出力する。選択信号ＳＥＬは、例えば端子を介して外部から供給されてもよく、また設定レジスタ（不図示）から供給されるようにしてもよい。
【００９３】
図１９Ａ、図１９Ｂは、本実施の形態にかかる制御部８０の動作を説明するためのタイミングチャートである。図１９Ａに示すタイミングチャートでは、選択信号ＳＥＬがハイレベルになった後に、パワーオン信号ＰＷＲ_ＯＮがハイレベルになる場合の動作を示している。また、図１９Ｂに示すタイミングチャートでは、選択信号ＳＥＬがハイレベルになる前に、パワーオン信号ＰＷＲ_ＯＮがハイレベルになる場合の動作を示している。
【００９４】
まず、図１９Ａに示すタイミングチャートについて説明する。初期状態において、選択信号ＳＥＬおよびパワーオン信号ＰＷＲ_ＯＮはロウレベルとなっている。選択信号ＳＥＬがロウレベルであるので、セレクタ８４はレジスタ８３に格納されている比較値（固定値）を選択している。タイミングｔ１において選択信号ＳＥＬがロウレベルからハイレベルに遷移すると、セレクタ８４は、比較値生成部８１で生成された比較値（可変値）を選択する。このとき、セレクタ８４から比較部２４に比較値ＣＯＭＰ１（比較値生成部８１で更新される前の比較値）が出力される。その後、タイミングｔ２においてパワーオン信号ＰＷＲ_ＯＮがロウレベルからハイレベルに遷移すると、比較値生成部８１は、カウント値Ｃ_１〜Ｃ_Ｎに基づき比較値を生成する。生成された比較値ＣＯＭＰ２は、セレクタ８４を介して比較部２４に供給される。
【００９５】
次に、図１９Ｂに示すタイミングチャートについて説明する。初期状態において、選択信号ＳＥＬおよびパワーオン信号ＰＷＲ_ＯＮはロウレベルとなっている。選択信号ＳＥＬがロウレベルであるので、セレクタ８４はレジスタ８３に格納されている比較値（固定値）を選択している。タイミングｔ１１においてパワーオン信号ＰＷＲ_ＯＮがロウレベルからハイレベルに遷移すると、比較値生成部８１は、カウント値Ｃ_１〜Ｃ_Ｎに基づき比較値を生成する。生成された比較値ＣＯＭＰ２は、セレクタ８４に出力される。その後、タイミングｔ１２において選択信号ＳＥＬがロウレベルからハイレベルに遷移すると、セレクタ８４は比較値生成部８１で生成された比較値ＣＯＭＰ２を選択し、比較部２４に比較値ＣＯＭＰ２を出力する。
【００９６】
図２０は、本実施の形態にかかる半導体装置の動作を説明するためのフローチャートである。まず、制御部８０は、割り込みがあったか否かを判断する（ステップＳ１）。つまり、パワーオン信号ＰＷＲ_ＯＮがハイレベルとなった場合に割り込みがあったと判断する。割り込みがあった場合（ステップＳ１：Ｙｅｓ）、制御部８０は、モニタ結果を集計する（ステップＳ２）。つまり、制御部８０は、各モニタ部１_１〜１_Ｎにおけるカウント値Ｃ_１〜Ｃ_Ｎを取得して集計する。その後、制御部８０の比較値生成部８１は、カウント値Ｃ_１〜Ｃ_Ｎを用いてばらつき値を計算し（ステップＳ３）、算出されたばらつき値に応じた比較値を生成する。このようにして比較値生成部８１は比較値を更新する（ステップＳ４）。
【００９７】
比較部２４は、比較値生成部８１で生成（更新）された比較値ＣＯＭＰと、モニタ値算出部２２で算出されたモニタ値Ｃ_ＡＶＥとを比較する（ステップＳ５）。モニタ値Ｃ_ＡＶＥが、比較値ＣＯＭＰの範囲内である場合（ステップＳ６：Ｙｅｓ）、電圧制御動作を終了して通常動作に復帰する。一方、モニタ値Ｃ_ＡＶＥが、比較値ＣＯＭＰの範囲外である場合（ステップＳ６：Ｎｏ）、比較部２４は、モニタ値Ｃ_ＡＶＥが比較値ＣＯＭＰの範囲内となるように電源供給部４を制御する。
【００９８】
以上で説明したように、本実施の形態にかかる半導体装置では、比較値生成部８１において、フレキシブルに比較値を生成することができるので、内部回路に供給される電源電圧Ｖｄｄをより適切に制御することができる。
【００９９】
＜実施の形態６＞
次に、本発明の実施の形態６について説明する。実施の形態６にかかる半導体装置では、図２１に示すように制御部８０'にタイマ８８を設けた点が実施の形態５で説明した制御部８０と異なる。これ以外は実施の形態５と同様であるので、同一の構成要素には同一の符号を付し重複した説明は省略する。
【０１００】
内部回路３に搭載されている回路が使用時に起動する場合は、使用されるタイミング、つまり電源が供給されるタイミングにおいて、比較値を更新することができる。このとき、内部回路３に電源が供給されるタイミングを示すパワーオン信号ＰＷＲ_ＯＮを用いることで、比較値の更新のタイミングを設定することができる。
【０１０１】
しかし、内部回路３に搭載されている回路の中には、一度電源が供給された後、電源を落とすことなく常に電源が供給され続ける回路もある。このような回路では、パワーオン信号ＰＷＲ_ＯＮを用いて比較値の更新のタイミングを設定することができない。
【０１０２】
そこで本実施の形態にかかる半導体装置では、制御部８０'にタイマ８８を設け、比較値の更新のタイミングを示す更新タイミング信号ＲＮＷを比較値生成部８１に出力している。タイマ８８は、例えばクロック信号が供給されるカウンタで構成することができる。
【０１０３】
図２２は、本実施の形態にかかる半導体装置の動作を説明するためのタイミングチャートである。初期状態では、選択信号ＳＥＬがロウレベルであるので、セレクタ８４はレジスタ８３に格納されている比較値（固定値）を選択している。その後、タイミングｔ２１において、選択信号ＳＥＬがロウレベルからハイレベルに遷移する。これにより、セレクタ８４は、比較値生成部８１で生成された比較値（可変値）を選択する。このとき、セレクタ８４から比較部２４に比較値ＣＯＭＰ１が出力される。
【０１０４】
その後、タイミングｔ２２において更新タイミング信号ＲＮＷがハイレベルになると、比較値生成部８１は比較値を更新する。このとき、セレクタ８４から比較部２４に出力される比較値は比較値ＣＯＭＰ１から比較値ＣＯＭＰ２に更新される。更に、タイミングｔ２３において更新タイミング信号ＲＮＷがハイレベルになると、比較値生成部８１は比較値を更新する。このとき、セレクタ８４から比較部２４に出力される比較値は比較値ＣＯＭＰ２から比較値ＣＯＭＰ３に更新される。このように、比較値生成部８１は、更新タイミング信号ＲＮＷがハイレベルになる毎に比較値を更新する。これ以外の動作は、実施の形態５の場合と同様である。
【０１０５】
＜実施の形態７＞
次に、本発明の実施の形態７について説明する。実施の形態７にかかる半導体装置では、制御部の構成が実施の形態１で説明した制御部３（図３参照）と異なる。これ以外は実施の形態１と同様であるので、同一の構成要素には同一の符号を付し重複した説明は省略する。
【０１０６】
図２３は、本実施の形態にかかる半導体装置が備える制御部９０を示す図である。本実施の形態では、制御部９０にモニタ選択部９３を新たに設けている。モニタ選択部９３は、モニタ選択信号Ｍ_ＳＥＬに応じて、モニタ部１_１〜１_Ｎの中から使用するモニタ部を選択する。すなわち、モニタ選択部９３は、使用するモニタ部に対してハイレベルのイネーブル信号を出力することで、使用するモニタ部を選択することができる。ここで、モニタ選択信号Ｍ_ＳＥＬは、例えば端子を介して外部から供給されてもよく、また設定レジスタ（不図示）から供給されるようにしてもよい。
【０１０７】
図２４Ａ、図２４Ｂは、モニタ部の配置を説明するための図である。図２４Ａに示すモニタ部９５、９６は、図２４Ｂに示すモニタ部９７、９８よりも多く配置されている。すなわち、図２４Ａに示すモニタ部９５、９６を用いることで、より正確に内部回路の特性をモニタすることができる。一方、モニタ部が多い場合は、モニタ部で得られたカウント値の演算処理に時間がかかるという問題がある。また、図２４Ｂに示すモニタ部９７、９８の数は、図２４Ａに示すモニタ部９５、９６の数よりも少ないので、モニタ部で得られたカウント値の演算処理に比較的時間がかからないという利点がある。一方、モニタ部の数が少ないので、モニタの精度は図２４Ａに示す場合よりは劣る。
【０１０８】
本実施の形態では、モニタ部の数が多い図２４Ａに示す組み合わせと、モニタ部の数が少ない図２４Ｂに示す組み合わせとを、モニタ選択信号Ｍ_ＳＥＬを用いて選択できるように構成することができる。よって、半導体装置を使用する使用者のニーズに応じて、モニタ部の組み合わせを変更することができる。
【０１０９】
また、本実施の形態では、ばらつき値算出部２１で用いられるカウント値の数と、モニタ値算出部２２で用いられるカウント値の数を、適宜変更することができる。すなわち、ばらつき値算出部２１で算出されるばらつき値は比較値を決定するために用いられる。よって、より多くのモニタ部のカウント値を用いてばらつき値を算出したほうがより正確に比較値を決定することができる。一方、モニタ値算出部２２で算出されるモニタ値は、内部回路における特性の変化をモニタするために用いられるため、モニタ値算出部２２で用いられるカウント値の数は、ばらつき値算出部２１で用いられるカウント値の数よりも少なくすることができる。
【０１１０】
よって、例えば図２４Ａに示す組み合わせのモニタ部を用いる場合は、ばらつき値算出部２１でばらつき値を算出する際にモニタ部９５およびモニタ部９６（全てのモニタ部）を使用し、モニタ値算出部２２でモニタ値を算出する際にモニタ部９５のみ（斜線で示すモニタ部）を使用することができる。同様に、図２４Ｂに示す組み合わせのモニタ部を用いる場合は、ばらつき値算出部２１でばらつき値を算出する際にモニタ部９７およびモニタ部９８（全てのモニタ部）を使用し、モニタ値算出部２２でモニタ値を算出する際にモニタ部９７のみ（斜線で示すモニタ部）を使用することができる。
【０１１１】
このように、本実施の形態では、制御部９０にモニタ選択部９３を設けることで、使用するモニタ部を使用状況等に応じて適宜選択することが可能になる。
【０１１２】
＜実施の形態８＞
次に、本発明の実施の形態８について説明する。実施の形態８にかかる半導体装置では、モニタ部の構成が実施の形態１で説明したモニタ部１_Ｎ（図２参照）と異なる。これ以外は実施の形態１と同様であるので、同一の構成要素には同一の符号を付し重複した説明は省略する。
【０１１３】
図２５は、本実施の形態にかかる半導体装置が備えるモニタ部の一例を示すブロック図である。図２５に示すように、モニタ部１０１_Ｎは、フリップフロップＦＦ１〜ＦＦ４と、クリティカルパスレプリカｔｃｒｉｔと、遅延素子ｔａ、ｔｂとを有する。フリップフロップＦＦ１は、クロック信号Ｔｃｌｋに応じて、入力されたデータをクリティカルパスレプリカｔｃｒｉｔに出力する。クリティカルパスレプリカｔｃｒｉｔは、内部回路３が備える回路における最も遅延の大きいパスを反映した遅延素子である。遅延素子ｔａ、ｔｂは所定の遅延値を備える遅延素子である。クリティカルパスレプリカｔｃｒｉｔ、遅延素子ｔａ、ｔｂはそれぞれ互いに直列に接続されている。
【０１１４】
フリップフロップＦＦ２は、クロック信号Ｔｃｌｋに応じて、遅延素子ｔｂから出力されたデータを格納すると共に、制御部２に信号Ｆ_ＯＵＴ_Ｎ_１を出力する。フリップフロップＦＦ３は、クロック信号Ｔｃｌｋに応じて、遅延素子ｔａから出力されたデータを格納すると共に、制御部２に信号Ｆ_ＯＵＴ_Ｎ_２を出力する。フリップフロップＦＦ２は、クロック信号Ｔｃｌｋに応じて、クリティカルパスレプリカｔｃｒｉｔから出力されたデータを格納すると共に、制御部２に信号Ｆ_ＯＵＴ_Ｎ_３を出力する。ここで、各フリップフロップから出力される信号Ｆ_ＯＵＴ_Ｎ_１〜Ｆ_ＯＵＴ_Ｎ_３は、モニタ部１０１_Ｎにおけるモニタ結果を示す信号である。
【０１１５】
例えばクロックＴｃｌｋが立ち上がる第１のタイミングで、フリップフロップＦＦ１がデータ"１"を出力したとする。このとき、データ"１"は、クリティカルパスレプリカｔｃｒｉｔ、遅延素子ｔａ、ｔｂを経由してフリップフロップＦＦ２に到達する。そして、次にクロックＴｃｌｋが立ち上がる第２のタイミングで、フリップフロップＦＦ２にデータ"１"が格納される。この場合は、制御部２に信号Ｆ_ＯＵＴ_Ｎ_１として"１"が出力される。しかし、クリティカルパスレプリカｔｃｒｉｔ、遅延素子ｔａ、ｔｂにおける遅延が大きすぎる場合は、フリップフロップＦＦ２にデータ"１"が到達する前に、クロックＴｃｌｋが第２のタイミングで立ち上がるためフリップフロップＦＦ２に格納されるデータは"０"となる。
【０１１６】
同様に、クロックＴｃｌｋが立ち上がる第１のタイミングで、フリップフロップＦＦ１がデータ"１"を出力したとする。このとき、データ"１"は、クリティカルパスレプリカｔｃｒｉｔ、遅延素子ｔａを経由してフリップフロップＦＦ３に到達する。そして、次にクロックＴｃｌｋが立ち上がる第２のタイミングで、フリップフロップＦＦ３にデータ"１"が格納される。この場合は、制御部２に信号Ｆ_ＯＵＴ_Ｎ_２として"１"が出力される。しかし、クリティカルパスレプリカｔｃｒｉｔ、遅延素子ｔａにおける遅延が大きすぎる場合は、フリップフロップＦＦ３にデータ"１"が到達する前に、クロックＴｃｌｋが第２のタイミングで立ち上がるためフリップフロップＦＦ３に格納されるデータは"０"となる。
【０１１７】
同様に、クロックＴｃｌｋが立ち上がる第１のタイミングで、フリップフロップＦＦ１がデータ"１"を出力したとする。このとき、データ"１"は、クリティカルパスレプリカｔｃｒｉｔを経由してフリップフロップＦＦ４に到達する。そして、次にクロックＴｃｌｋが立ち上がる第２のタイミングで、フリップフロップＦＦ４にデータ"１"が格納される。この場合は、制御部２に信号Ｆ_ＯＵＴ_Ｎ_３として"１"が出力される。しかし、クリティカルパスレプリカｔｃｒｉｔにおける遅延が大きすぎる場合は、フリップフロップＦＦ４にデータ"１"が到達する前に、クロックＴｃｌｋが第２のタイミングで立ち上がるためフリップフロップＦＦ４に格納されるデータは"０"となる。
【０１１８】
本実施の形態にかかる半導体装置では、各モニタ部１０１_Ｎから出力される信号Ｆ_ＯＵＴ_Ｎ_１〜Ｆ_ＯＵＴ_Ｎ_３の値（つまり、"０"または"１"）を用いて、各モニタ部１０１_Ｎにおける遅延を検出することができる。具体的には、モニタ部１０１_Ｎから出力される各信号の値が（Ｆ_ＯＵＴ_Ｎ_１、Ｆ_ＯＵＴ_Ｎ_２、Ｆ_ＯＵＴ_Ｎ_３）＝（１、１、１）の場合、モニタ部１０１_Ｎにおける遅延が最も小さい。つまり、この場合は、クリティカルパスレプリカｔｃｒｉｔ、遅延素子ｔａ、ｔｂを含むパス（遅延が最も大きいパス）を経由した場合であっても、データ"１"がフリップフロップＦＦ２に到達しているので、モニタ部１０１_Ｎにおける遅延が小さいといえる。
【０１１９】
以降、モニタ部１０１_Ｎから出力される各信号の値が（Ｆ_ＯＵＴ_Ｎ_１、Ｆ_ＯＵＴ_Ｎ_２、Ｆ_ＯＵＴ_Ｎ_３）＝（０、１、１）、（Ｆ_ＯＵＴ_Ｎ_１、Ｆ_ＯＵＴ_Ｎ_２、Ｆ_ＯＵＴ_Ｎ_３）＝（０、０、１）、（Ｆ_ＯＵＴ_Ｎ_１、Ｆ_ＯＵＴ_Ｎ_２、Ｆ_ＯＵＴ_Ｎ_３）＝（０、０、０）となるにつれて、モニタ部１０１_Ｎにおける遅延が大きいといえる。
【０１２０】
また、本実施の形態では、各モニタ部１０１_Ｎにおいて内部回路３の遅延を測定する際に、適宜、クロックＴｃｌｋの周波数を変更してもよい。例えば、モニタ部１０１_Ｎから出力される各信号の値が（Ｆ_ＯＵＴ_Ｎ_１、Ｆ_ＯＵＴ_Ｎ_２、Ｆ_ＯＵＴ_Ｎ_３）＝（１、１、１）の場合、クロックＴｃｌｋの周波数を高くすることで、（Ｆ_ＯＵＴ_Ｎ_１、Ｆ_ＯＵＴ_Ｎ_２、Ｆ_ＯＵＴ_Ｎ_３）＝（１、１、１）と（Ｆ_ＯＵＴ_Ｎ_１、Ｆ_ＯＵＴ_Ｎ_２、Ｆ_ＯＵＴ_Ｎ_３）＝（０、１、１）との境界を検出することができる。また、例えば、モニタ部１０１_Ｎから出力される各信号の値が（Ｆ_ＯＵＴ_Ｎ_１、Ｆ_ＯＵＴ_Ｎ_２、Ｆ_ＯＵＴ_Ｎ_３）＝（０、０、０）の場合、クロックＴｃｌｋの周波数を低くすることで、（Ｆ_ＯＵＴ_Ｎ_１、Ｆ_ＯＵＴ_Ｎ_２、Ｆ_ＯＵＴ_Ｎ_３）＝（０、０、０）と（Ｆ_ＯＵＴ_Ｎ_１、Ｆ_ＯＵＴ_Ｎ_２、Ｆ_ＯＵＴ_Ｎ_３）＝（０、０、１）との境界を検出することができる。
【０１２１】
実施の形態１にかかる半導体装置と同様に、制御部２が備えるばらつき値算出部２１は、モニタ部１０１_Ｎから出力された各信号の値（Ｆ_ＯＵＴ_Ｎ_１、Ｆ_ＯＵＴ_Ｎ_２、Ｆ_ＯＵＴ_Ｎ_３）を用いて、ばらつき値Ｃ_ＶＡＲを求めることができる。
【０１２２】
図２６は、本実施の形態にかかる半導体装置の動作を説明するための図である。図２６に示すように、制御部２は、クロック信号Ｔｃｌｋが上限の設定値ｔｃｒｉｔ＋ｔａ'＋ｔｂ'よりも大きい場合は、電源供給部４から供給される電源電圧Ｖｄｄを低くし、クロック信号Ｔｃｌｋが下限の設定値ｔｃｒｉｔ＋ｔａ'よりも小さい場合は、電源供給部４から供給される電源電圧Ｖｄｄを高くする。このような制御により、クロック信号Ｔｃｌｋを下限の設定値ｔｃｒｉｔ＋ｔａ'と上限の設定値ｔｃｒｉｔ＋ｔａ'＋ｔｂ'との間に収めることができる。
【０１２３】
ここで、設定値ｔｃｒｉｔ＋ｔａ'、設定値ｔｃｒｉｔ＋ｔａ'＋ｔｂ'は制御目標となる遅延値である。遅延値ｔａ'は遅延値ｔａをばらつき値Ｃ_ＶＡＲに応じて補正した値である。また、遅延値ｔｂ'は遅延値ｔｂをばらつき値Ｃ_ＶＡＲに応じて補正した値である。つまり、各モニタ部におけるばらつき値Ｃ_ＶＡＲが大きい場合は、遅延値ｔｂ'として遅延値ｔｂよりも大きな値を設定する。これにより、上限の設定値ｔｃｒｉｔ＋ｔａ'＋ｔｂ'にマージンを持たせることができるので、より遅延が大きい場合であっても、適切に電源電圧を設定することができる。
【０１２４】
一方、各モニタ部におけるばらつき値Ｃ_ＶＡＲが小さい場合は、遅延値ｔａ'として遅延値ｔａに近い値を、また、遅延値ｔｂ'として遅延値ｔｂに近い値を設定することができる。つまり、各モニタ部におけるばらつき値Ｃ_ＶＡＲが小さい場合は、比較値に大きなマージンを設ける必要がないので、遅延値ｔａ、ｔｂに近い値を遅延値として設定することができる。よって、上限の設定値ｔｃｒｉｔ＋ｔａ'＋ｔｂ'を小さくすることができるので、半導体装置の消費電力を低減することができる。
【０１２５】
なお、本実施の形態にかかる半導体装置では、遅延素子として２つの遅延素子ｔａ、ｔｂを設けた場合について説明したが、遅延素子は３つ以上備えていてもよい。この場合、各遅延素子から出力されるデータを格納するためのフリップフロップを、それぞれの遅延素子に対応して設ける必要がある。
【０１２６】
また、本実施の形態にかかる半導体装置では、モニタ部１０１_Ｎがクリティカルパスレプリカｔｃｒｉｔを備える構成について説明した。しかし、本実施の形態にかかる半導体装置では、内部回路３の特性のばらつきをモニタするモニタ部として実施の形態１で説明したリングオシレータを備えるモニタ部を用い、内部回路３が備える回路の性能（遅延特性）をモニタするモニタ部として、本実施の形態で説明したクリティカルパスレプリカｔｃｒｉｔを備えるモニタ部を用いてもよい。このように、内部回路３が備える回路の性能を検出するモニタ部として、クリティカルパスレプリカｔｃｒｉｔを備えるモニタ部を用いることで、実際の回路に近い遅延特性を検出することができる。
【０１２７】
以上、本発明を上記実施形態に即して説明したが、上記実施形態の構成にのみ限定されるものではなく、本願特許請求の範囲の請求項の発明の範囲内で当業者であればなし得る各種変形、修正、組み合わせを含むことは勿論である。
【符号の説明】
【０１２８】
１_１〜１_Ｎ  モニタ部
２  制御部
３  内部回路
４  電源供給部
１１  リングオシレータ
１２  カウンタ
１３  遅延素子
２１  ばらつき値算出部
２２  モニタ値算出部
２３  レジスタ
２４  比較部
２６_１〜２６_３  比較値
【図１】
0005890998.tif 000002
【図２】
0005890998.tif 000003
【図３】
0005890998.tif 000004
【図４】
0005890998.tif 000005
【図５】
0005890998.tif 000006
【図６】
0005890998.tif 000007
【図７】
0005890998.tif 000008
【図８】
0005890998.tif 000009
【図９】
0005890998.tif 000010
【図１０】
0005890998.tif 000011
【図１１】
0005890998.tif 000012
【図１２】
0005890998.tif 000013
【図１３】
0005890998.tif 000014
【図１４】
0005890998.tif 000015
【図１５】
0005890998.tif 000016
【図１６】
0005890998.tif 000017
【図１７】
0005890998.tif 000018
【図１８】
0005890998.tif 000019
【図１９Ａ】
0005890998.tif 000020
【図１９Ｂ】
0005890998.tif 000021
【図２０】
0005890998.tif 000022
【図２１】
0005890998.tif 000023
【図２２】
0005890998.tif 000024
【図２３】
0005890998.tif 000025
【図２４Ａ】
0005890998.tif 000026
【図２４Ｂ】
0005890998.tif 000027
【図２５】
0005890998.tif 000028
【図２６】
0005890998.tif 000029