(57)【要約】【課題】回路動作の安定動作を確保しながらクロック周波数を動的に制御するクロック周波数制御装置を提供する。【解決手段】クロック周波数制御装置は、クロック信号を生成するクロック生成部と、電源電圧の上下変化をモニタする電源変動モニタ部と、クロック信号の供給を受ける回路におけるタイミングマージンを算出するタイミングマージンモニタ部と、電源電圧の上下変化とタイミングマージンの大きさとに基づいて、クロック信号の周波数をアップ、ダウンまたは維持させるクロック周波数調整部と、を備える。クロック周波数調整部は、電源電圧が上昇し、かつ、タイミングマージンに適切値以上の余裕がある場合に、クロック信号の周波数をアップさせる。【選択図】図１
2014052969.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号を生成するクロック生成部と、
電源電圧の上下変化をモニタする電源変動モニタ部と、
クロック信号の供給を受ける回路におけるタイミングマージンを算出するタイミングマージンモニタ部と、
前記電源電圧の上下変化と前記タイミングマージンの大きさとに基づいて、前記クロック信号の周波数をアップ、ダウンまたは維持させるクロック周波数調整部と、を備える
クロック周波数制御装置。
【請求項２】
前記クロック周波数調整部は、
前記電源電圧が上昇し、かつ、前記タイミングマージンに適切値以上の余裕がある場合に、前記クロック信号の周波数をアップさせる
請求項１に記載のクロック周波数制御装置。
【請求項３】
前記クロック周波数調整部は、
前記電源電圧が上昇しても、前記タイミングマージンに適切値以上の余裕が無い場合には、前記クロック信号の周波数を維持させる
請求項１に記載のクロック周波数制御装置。
【請求項４】
前記クロック周波数調整部は、
前記電源電圧が低下し、かつ、前記タイミングマージンが適切値以下である場合には、前記クロック信号の周波数をダウンさせる
請求項１に記載のクロック周波数制御装置。
【請求項５】
前記クロック周波数調整部は、
前記電源電圧が低下しても、前記タイミングマージンに適切値以上の余裕がある場合には、前記クロック信号の周波数を維持させる
請求項１に記載のクロック周波数制御装置。
【請求項６】
前記電源変動モニタ部は、リングオシレータと、このリングオシレータの発振回数を計測するカウンタと、を備えている
請求項１に記載のクロック周波数制御装置。
【請求項７】
前記タイミングマージンモニタ部は、クロック信号の供給を受ける回路のクリティカルパスレプリカを有し、このクリティカルパスレプリカにおける遅延量を計測する
請求項１に記載のクロック周波数制御装置。
【請求項８】
クロック信号を所定期間カウントして、動作速度が要求性能以上になっているかどうかをモニタする要求性能モニタ部をさらに備え、
前記クロック周波数調整部は、動作速度が要求性能値を満たしている場合だけ、クロック周波数のダウンを許可する
請求項１に記載のクロック周波数制御装置。
【請求項９】
請求項１から請求項８のいずれかに記載のクロック周波数制御装置と、
電源を生成する電源回路と、
この電源を受けて動作する周辺回路が現時点の電源電圧で達成できる性能を見積もる特性モニタ部と、を備え、
前記電源回路は、
見積もられた周辺回路の性能が要求水準に達していなければ、電源電圧を上昇させ、
見積もられた周辺回路の性能が要求水準を超過していれば、電源電圧を低下させる
半導体装置。
【請求項１０】
前記クロック周波数調整部がクロック周波数を制御する制御周期は、前記電源回路が電源電圧値を制御する制御周期よりも短い
請求項９に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック周波数制御装置に関し、クロック周波数を動的に制御する技術に関する。
【背景技術】
【０００２】
近年、ＬＳＩ（大規模集積回路）の開発にあたっては、消費電力を極限まで削減しながらも動作性能は極限まで向上させるということが求められている。消費電力を削減するという点については、先端プロセスによる超微細加工によってトランジスタ等の素子を微細にすることで、小型化と同時に極低電力化が図られている。
【０００３】
極低電力化のためには低電圧化が有効ではあるが、電源電圧がトランジスタの閾値電圧に近づいてくるほどになると、トランジスタのスイッチング速度特性に大きな影響が及ぶようになってくる。すなわち、電源電圧がトランジスタの閾値電圧に近づいてくると、各トランジスタのＰＶＴ感度が高くなり、スイッチング速度が劣化したりバラツキが大きくなったりする。すると、回路の動作速度は電源電圧の高低によって変化することになる。そこで、電源電圧の変動に応じてクロック周波数を上げたり下げたりする制御を行うことが提案されている（非特許文献１、非特許文献２）。これらの文献においては、電源電圧の変化を検出し、電源電圧の高低に応じてクロック周波数を変化させることが提案されている。すなわち、電源電圧が高い方に変動した場合にはクロック周波数を上げて動作速度を速くする。逆に、電源電圧が低い方向に変動した場合にはクロック周波数を下げて動作速度を遅くするという制御が行われる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】N. Kurd, P. Mosalikanti, M. Meidengard, J. Douglas, and R. Kumar, "Next Generation Intel Core Micro-Architecture (Nehalem) Clocking,"pp.1121-1129, J of Solid-State Circuits, vol.44, no.4, Apr. 2009.
【非特許文献２】D. Jiao and C. H. Kim, "A programmable adaptive phase-shifting PLL for clock data compensation under resonant supply noise,"pp.272-273, ISSCC 2011.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記文献における電源電圧の高低とは、所定期間における電圧の高低を意味している。しかしながら、電源電圧にはリップルのような緩やかで周期的な変動も含まれている。
電源電圧が十分に高ければリップル程度の変動はトランジスタの性能にそれほどの影響は無いが、閾値電圧付近まで電源電圧を低く抑えようとするとリップルが無視できなくなる。特に、要求性能を達成できる限り限りの低電圧になるように電源電圧を生成するとなると、電源電圧を頻繁に細かく微調整する制御を行わなければならないが、電源電圧を頻繁に上げ下げする制御を行うと、電源電圧に益々リップルが乗るようになってしまう。
単純に電源電圧の高低だけに追従させてクロック周波数を上げたり下げたりするだけでは、回路の安定動作を確保できない場合が生じてくる。
【０００６】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態によるクロック周波数制御装置は、電源電圧の上下変化のみならず、タイミングマージンの大きさも考慮にいれたうえで、クロック信号の周波数をアップ、ダウンまたは維持させる決定を行うものである。
【発明の効果】
【０００８】
単純に電源電圧の高低だけに追従させてクロック周波数を上げたり下げたりするだけでは回路の安定動作を確保できない恐れもあるが、上記一実施の形態によれば、電源電圧が上がったからといって一律にクロック周波数を上げず、タイミングマージンの余裕も考慮しながらクロック周波数の上げ下げを決定する。これにより、できる限り高速動作を行うようにしながらも安定動作を確実に確保できるクロック周波数を実現できる。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態に係る半導体装置を示す図。
【図２】第１実施形態において、電源変動モニタ部の構成を示す図。
【図３】第１実施形態において、クロック生成部、クロック分配回路およびタイミングマージンモニタ部の構成を示す図。
【図４】タイミングマージンモニタ部の変形例を示す図。
【図５】電源電圧の変動と、各時刻におけるタイミングマージンと、の一例を示す図。
【図６】第２実施形態を示す図。
【図７】第２実施形態の変形例１を示す図。
【図８】第２実施形態の変形例２を示す図。
【図９】第３実施形態を示す図。
【図１０】第３実施形態の変形例１を示す図。
【図１１】第３実施形態の変形例２を示す図。
【図１２】第３実施形態の変形例３を示す図。
【図１３】第４実施形態を示す図。
【図１４】第４実施形態の変形例１を示す図。
【図１５】第４実施形態の変形例２を示す図。
【図１６】第５実施形態を示す図。
【図１７】第６実施形態を示す図。
【発明を実施するための形態】
【００１０】
実施形態を図示するとともに図中の各要素に付した符号を参照して説明する。
（第１実施形態）
図１は、第１実施形態に係る半導体装置１００を示す図である。この半導体装置１００は、周辺回路に対してクロック周波数を供給するクロック分配回路１３０を有し、クロック分配回路１３０から出力されるクロックの周波数を調整するものである。
【００１１】
半導体装置１００は、電源変動モニタ部１１０と、クロック生成部１２０と、クロック分配回路１３０と、タイミングマージンモニタ部１４０と、クロック周波数調整部１５０と、を備える。
【００１２】
電源変動モニタ部１１０は、電源電圧ＶＤＤの変動をモニタする。電源変動モニタ部１１０は、電源電圧ＶＤＤの変動を検出できるものであれば、その具体的な構成が特定されるものではないが、ここでは、リングオシレータ１１１と、カウンタ１１３と、で構成されるものを例示する。
図２に、電源変動モニタ部１１０を示す。
リングオシレータ１１１は、複数のインバータ１１２が直列接続でリング状になったものである。カウンタ１１３は、リングオシレータ１１１の出力をカウントする。各インバータ１１２は、そのスイッチング速度が電源電圧に敏感に反応する。したがって、信号が一定期間の間にこのリングオシレータ１１１を何周するかは電源電圧の高低を正確に反映したものとなる。
一定期間ごとにカウンタ１１３のカウント値をサンプリングすることによって、電源電圧の変動をモニタ（検出）することができる。カウント値が大きくなっていれば電源電圧ＶＤＤが高くなっているということであり、カウント値が小さくなっていれば電源電圧が下がっている、ということである。
【００１３】
次に、クロック生成部１２０、クロック分配回路１３０およびタイミングマージンモニタ部１４０の構成を図３に示す。
クロック生成部１２０は、例えばＰＬＬ（Phase-locked loop）回路であり、基準クロックを逓倍して内部クロックを生成する。
基準クロックは、例えば水晶振動子の発振で得られる一定周期のクロック信号である。基準クロックの周波数をｆｒで表すこととする。また、内部クロックの周波数をｆｉで表すこととする。クロック生成部（ＰＬＬ回路）１２０は、クロック周波数調整部１５０からの制御信号を受けて内部クロックの周波数ｆｉを変化させるが、詳しくは後述する。
【００１４】
クロック分配回路１３０は、最終的な遅延がほぼ等しくなるようにしながら内部クロックを複数に分岐するためのクロックツリーであり、複数のクロックドライバ（またはバッファ）１２１がツリー状に接続されている。
タイミングマージンモニタ部１４０は、１サイクルごとのタイミングマージンを計測する。タイミングマージンモニタ部１４０の構成としては１サイクルごとのタイミングマージンを計測できるものであればよいが、ここでは、いわゆるクリティカルパスレプリカを使用してタイミングマージンを計測する例を示す。タイミングマージンモニタ部１４０は、初段フリップフロップ回路１４３と、直列接続された複数の論理ゲート回路（ここではインバータ回路１４１）と、遅延バッファ１４２と、最終段フリップフロップ回路１４４、１４５と、を有する。
ここで、最終段フリップフロップ回路してしては、遅延バッファ１４２の後段に接続されている第１最終段フリップフロップ回路１４４と、遅延バッファ１４２の前段に接続されている第２最終段フリップフロップ回路１４５と、がある。
複数のインバータ回路１４１と遅延バッファ１４２とが直列接続されており、これがクリティカルパスのレプリカに相当する。
初段フリップフロップ回路１４３は、クロック分配回路１３０から供給されるクロックＣＬＫ０のタイミングでデータ端子から信号（例えばＨ）を取り込んで出力する。この信号は、複数のインバータ１４１を介して遅延バッファに入力される。
ここで、遅延バッファ１４２の入力の前段で信号は分岐され、分岐の一方は遅延バッファに入力され、分岐の他方は第２最終段フリップフロップ回路１４５のデータ端子に入力される。
また、遅延バッファ１４２による遅延を受けた信号は、第１最終段フリップフロップ回路１４４のデータ端子に入力される。そして、第１最終段フリップフロップ回路１４４および第２最終段フリップフロップ回路１４５は、クロックＣＬＫ０のタイミングでデータ端子に達している信号を取り込んで出力する。
【００１５】
第１最終段フリップフロップ回路１４４の出力と、第２最終段フリップフロップ回路１４５の出力と、の組み合わせとしては、（０、１）と、（１、１）と、（０、０）と、の三パターンがあることになる。どのパターンが出現するかは、インバータ１４１のスイッチング速度および内部クロックの周波数に依存する。（インバータ１４１のスイッチング速度は電源電圧に依存する。）
さらに、どのパターンが出現するかは、クロックツリーを構成するドライバ１２１や、各フリップフロップ回路１４３、１４４、１４５の特性も反映し、さらには、クロックのジッタも影響する。三つのパターンのなかで（０、１）の組み合わせが出現すれば、タイミングマージンは適切であるということになる。すなわち、インバータ１４１のスイッチング速度が適切であり、クロック周期もスイッチング速度に適合しているということである。
一方、（０、０）の組み合わせが出現すれば、タイミングマージンが不適切に不足していることになる。これは、インバータ１４１のスイッチング速度（つまりは電源電圧）に対して、クロック周波数が速すぎることを意味する。
逆に、（１、１）の組み合わせが出現すれば、タイミングマージンに余裕が有り過ぎることになる。すなわち、インバータ１４１のスイッチング速度（つまりは電源電圧）に対して、クロック周波数が遅すぎることを意味する。
【００１６】
タイミングマージンモニタ部１４０は、数サイクルごと、好ましくは毎サイクル、タイミングマージンを計測する。タイミングマージンの計測結果はクロック周波数調整部１５０に送られる。
【００１７】
最終段フリップフロップ回路の数を増やせば、タイミングマージンの余裕がどの程度あるかという定量的な計測もできる。例えば、図４のように、四つの最終段フリップフロップ回路１４４、１４５、１４６、１４７を用意し、どこまで信号が達したかによってタイミングマージンの余裕がどの程度あるかを計測してもよい。
【００１８】
クロック周波数調整部１５０は、条件判定部１５１と、周波数上げ下げ指示部１５２と、を有する。
【００１９】
条件判定部１５１は、電源変動モニタ部１１０から電源電圧の変動情報を得るとともに、タイミングマージンモニタ部１４０からタイミングマージンの計測結果を得る。そして、条件判定部１５１は、電源電圧の変動情報と、タイミングマージンの計測結果と、の両方を複合的に用いてクロック周波数のアップまたはダウンの条件を満たしているかどうかを判定する。
【００２０】
具体的には、条件判定部１５１は、電源電圧が上昇し、かつ、タイミングマージンに余裕がある場合にのみ、クロック周波数のアップを決定する。
これを図５を参照しながら説明する。
図５は、電源電圧の変動の一例を示している。
ここで、電源変動モニタ部１１０は、電圧が高くなったか低くなったかを２サイクル前の電圧（すなわちカウント値）と比較することで判断することとする。例えば、時刻ｔ３のときは、時刻ｔ１のときの電圧値Ｖ１と時刻ｔ３のときの電圧値Ｖ３とを対比することとする。時刻ｔ３のときは、時刻ｔ１の電圧Ｖ１に比べて電圧は上昇していることになる。
【００２１】
なお、これは一例なのであって、電源電圧の高低変化を判定するにあたってはその他の方法を採用してもよいことはもちろんである。
例えば、１サイクル前の電圧と現在の電圧とを対比してもよい。
あるいは、２サイクル前の電圧と、１サイクル前の電圧と、さらに、現在の電圧と、を総合的に利用して判定するようにしてもよい。
【００２２】
タイミングマージンモニタ部１４０は、タイミングマージンの計測を毎サイクル実行する。その結果として、時刻ｔ３のときはタイミングマージンに余裕があるとする。この場合、電源電圧が上昇し、かつ、タイミングマージンに余裕があるので、条件判定部１５１は、クロック周波数をアップさせる決定をする。
【００２３】
一方、時刻ｔ５の場合を考える。電源電圧についてみると、時刻ｔ５の電圧Ｖ５は、時刻ｔ３の電圧Ｖ３よりも高い。しかし、時刻ｔ５において計測されたタイミングマージンは"適切"な値で、余裕があるわけではない。この場合、条件判定部１５１は、クロック周波数をアップさせず、維持させる決定をする。
【００２４】
条件判定部１５１は、電源電圧が下がっており、かつ、タイミングマージンが適切な値程度しかない場合には、クロック周波数をダウンさせる決定をする。ただし、電源電圧が下がっていても、タイミングマージンに余裕がある場合には、クロック周波数をダウンさせずに、維持させる決定をする。例えば、時刻ｔ６の電圧Ｖ６は、時刻ｔ４の電圧Ｖ４よりも低い。そして、時刻ｔ６のタイミングマージンは余裕があるわけではなく適切な程度である。したがって、時刻ｔ６の場合、条件判定部１５１は、クロック周波数をダウンさせる決定をする。
一方、時刻ｔ９のときは、電圧は時刻ｔ７のときより下がっているが、タイミングマージンに余裕がある。したがって、この場合にはクロック周波数をダウンさせず、維持する決定をする。
【００２５】
条件判定部１５１での決定事項、すなわち、クロック周波数をアップする、クロック周波数をダウンする、または、クロック周波数を維持する、の決定は、周波数上げ下げ指示部１５２に与えられる。そして、周波数上げ下げ指示部１５２は、クロック周波数のアップ、ダウンまたは維持をクロック生成部１２０（PLL回路）に指示する。これにより、クロック生成部１２０（PLL回路）において最適な周波数を持ったクロックが生成される。
【００２６】
本第１実施形態によれば次の効果を奏する。
本実施形態においては、電源電圧が上がったからといって一律にクロック周波数を上げるものではなく、タイミングマージンの余裕も考慮しながらクロック周波数の上げ下げを決定する。例えば、時刻ｔ３および時刻ｔ４においてクロック周波数を連続してアップさせた結果、時刻ｔ５のようにタイミングマージンに余裕が無くなっている場合があり得る。このような場合にも電圧の上昇に追随してクロック周波数をアップさせてしまうと、回路動作が間に合わなくなってしまう。この点、本実施形態では、タイミングマージンに余裕があるか否かも考慮し、電圧に対してクロック周波数が十分に上がっている場合には、クロック周波数を維持させるという決定を行うことができる。
【００２７】
また逆に、電源電圧が下がったからといって、一律にクロック周波数を下げるのではない。時刻ｔ７および時刻ｔ８においてクロック周波数を連続してダウンさせた結果、時刻ｔ９のようにタイミングマージンに十分な余裕が生じている場合があり得る。このような場合にも電圧の低下に追随してクロック周波数をダウンさせてしまうと、回路の動作速度を不必要に落してしまうことになる。この点、本実施形態では、タイミングマージンに余裕があるか否かも考慮し、電圧に対してクロック周波数が十分に下がって場合には、クロック周波数を維持させるという決定を行うことができる。
【００２８】
（第２実施形態）
第２実施形態を図６を参照して説明する。
第２実施形態の基本的構成は第１実施形態と同じである。
第２実施形態においては、電源を生成する電源回路１６０を明示している。
電源回路１６０は、周辺回路（不図示）が要求された性能を達成できるだけの電源電圧を供給する。ここで、要求される性能を周辺回路が達成できるような電圧レベルを知る必要があるので、半導体装置２００は、特性モニタ部１７０を備える。
特性モニタ部１７０は、現時点の電圧で周辺回路が達成できる性能を見積もれる回路であればよい。見積もられた周辺回路の性能が要求水準に達していなければ、電源回路１６０は電源電圧を上昇させる。一方、見積もられた周辺回路の性能が要求水準を超過していれば、電源回路１６０は電源電圧を低下させる。これにより、必要最低限の電源電圧とし、極低電力化を実現できる。
ただし、このように電源電圧を上げたり下げたりするフィードバック制御が入ると、電源電圧にはリップルが多く含まれるようになってくる。また、電源電圧を要求水準限り限りまで下げると、トランジスタの閾値電圧に近くなってくるので、タイミングマージンに余裕が無くなってくることになる。
【００２９】
この点、第１実施形態で説明したように、タイミングマージンモニタ部１４０によってタイミングマージンを計測し、タイミングマージンに余裕があるときにだけクロック周波数をアップさせるようにしている。この適応型周波数スケーリング制御の構成は、適応型電圧スケーリング制御を行う場合には、動作の安定性を確保するうえで極めて重要な役割を担う。
【００３０】
（第２実施形態の変形例１）
なお、特性モニタ部１７０は、リングオシレータを用いて構成されてもよく、電源変動モニタ部１１０と同じ構成でもよい。（すなわち、カウンタ１１３のカウント値によって、どの程度の動作速度になっているのかがわかる。）したがって、図７に示すように、電源変動モニタ部１１０にて計測したカウント値を電源回路に送るようにしてもよい。
【００３１】
（第２実施形態の変形例２）
また、特性モニタ部１７０は、クリティカルパスレプリカを用いて構成されてもよく、タイミングマージンモニタ部１４０と同じ構成でもよい。（最終段フリップフロップ回路１４４−１４７の出力の組み合わせパターンによって、どの程度の動作速度になっているのかがわかる。）したがって、図８に示すように、タイミングマージンモニタ部１４０で計測したタイミングマージンを電源回路に送るようにしてもよい。
【００３２】
（第３実施形態）
第３実施形態を説明する。
第３実施形態の基本的構成は第１および第２実施形態と同じであるが、さらに要求性能モニタ部１８０を備えている点に特徴を有する。
図９において、要求性能モニタ部１８０が設けられている。第１、第２実施形態において、電源電圧が下がり、かつ、タイミングマージンに余裕が無い場合にはクロック周波数を下げることとしていた。しかしながら、デバイスには要求される動作速度というものがあり、タイミングマージンが足りないからといってクロック周波数を際限なく下げて良いわけではない。例えば、テレビであれば、１秒間に処理すべき画像フレーム数（例えば３０フレーム）が決まっており、この要求性能を下回るほどクロック周波数を下げてしまってはいけない。
【００３３】
そこで、要求性能モニタ部１８０は、内部クロックを所定期間カウントし、動作速度が要求性能以上になっているかどうかをモニタする。
すなわち、
Σ（内部クロック信号）≧［要求性能値］・・・（式１）
を満たしているかどうかをモニタする。
【００３４】
（式１）の［要求性能値］は、要求性能モニタ部１８０内か所定のメモリ（不図示）に固定値として設定記憶させておいてもよい。あるいは、基準クロックの周波数は一定なのであるから、毎回基準クロックに基づいて［要求性能値］を算出できるようにしておいてもよい。
【００３５】
Σ（内部クロック信号）≧Ｆ（Σ（基準クロック信号））・・・（式２）
［要求性能値］は、Σ（基準クロック信号）の関数である。
【００３６】
なお、要求性能値を動的に変えられるようになっていてもよい。例えば、サーバにアクセスしているクライアントが少数（例えば一つ）であれば、サーバに要求される処理能力は高くないが、アクセスしてくるクライアントの数が増えると（例えば１００になると）、サーバに要求される処理能力が高くなるのは当然である。
【００３７】
そして、要求性能モニタ部１８０によるモニタ結果は、クロック周波数調整部１５０に送られる。クロック周波数調整部１５０（つまり条件判定部１５１）は、動作速度が要求性能値を満たしている場合だけ、クロック周波数のダウンを許可する。すなわち、電源電圧が下がり、かつ、タイミングマージンに余裕が無い場合であったとしても、動作速度が要求性能値を満たしていなければ、クロック周波数を下げないこととする。
【００３８】
（第３実施形態の変形例１）
上記第３実施形態では、電源電圧が下がり、かつ、タイミングマージンに余裕が無い場合であったとしても、動作速度が要求性能値を満たしていなければ、クロック周波数を下げないこととした。しかし、電源電圧が上昇したり、環境温度が下がったりするなどの良好な変化が生じない限り、このままでは、タイミングマージンがなくなって所定の動作ができなくなる恐れもある。そこで、図１０のように、要求性能モニタ部１８０によるモニタ結果を電源回路１６０にも送り、動作速度が要求性能値を満たしていなければ、電源電圧を上昇させるようにする。
【００３９】
なお、図１０では、電源回路１６０は、電源変動モニタ部１１０からの出力も受けている。電源回路１６０は、リングオシレータ１１１の発振周波数に基づいて周辺回路の特性（性能）をモニタし、これに基づいて周辺回路の特性（性能）を満たす電源電圧になるように電圧制御を行っている。電源回路１６０が、電源変動モニタ部１１０と要求性能モニタ部１８０との両方から情報を受ける場合には、どちらの要求水準も満たすように電源電圧の上げ下げを行う。
【００４０】
（第３実施形態の変形例２）
第３実施形態の変形例２として図１１の構成を挙げる。この構成は、図８（第２実施形態の変形例２）に、要求性能モニタ部１８０を付加した構成であるので、その意味するところは明らかであり、繰り返しの説明は省略する。
【００４１】
（第３実施形態の変形例３）
第３実施形態の変形例３として図１２の構成を挙げる。この構成は、図１１（第３実施形態の変形例２）において、要求性能モニタ部１８０の出力を電源回路にも送出するものである。電源回路に要求性能モニタ部１８０の出力を送出する意味は図１０（第３実施形態の変形例１）で説明済みであるので、繰り返しの説明は省略する。
【００４２】
（第４実施形態）
第４実施形態について図１３を参照して説明する。
第４実施形態は、制御動作が安定するように動作タイミング調整部を備えている点に特徴を有する。
図１３において、モニタ機能を有する機能部としては、要求性能モニタ部１８０と、電源変動モニタ部１１０と、タイミングマージンモニタ部１４０と、がある。そして、各モニタ機能部において一つの計測値を求めるためのモニタ期間の長さは、モニタ期間が長い順に次のようになる。
【００４３】
要求性能モニタ部１８０のモニタ期間＞電源変動モニタ部１１０のモニタ期間＞タイミングマージンモニタ部１４０のモニタ期間。
この順番は、各モニタ部でモニタする対象の性質からいって、自ずと決まるといってもよい。
【００４４】
次に、制御機能部としては、クロック周波数の上げ下げを決定するクロック周波数調整部１５０と、電源電圧の上げ下げを行う電源回路１６０と、がある。
制御サイクル（制御周期）としては、クロック周波数の上げ下げ制御の周期の方を、電源電圧の制御周期よりも短くすることが好ましい。
これは、回路動作の安定性を保つために必要な処置である。
電源電圧の高低変化およびその電圧でのタイミングマージン余裕を見てから、クロック周波数の適応制御が行われる。したがって、電源電圧の制御周期がクロック周波数の制御周期よりも短かった場合、フィードバック制御が安定せずに発振してしまう恐れが高くなる。すなわち、電源電圧の方を緩やかに変化させ、クロック周波数の方を高速に制御した方が好ましいということになる。
【００４５】
（第４実施形態の変形例１）
第４実施形態の変形例１を図１４に示す。
図１４では、電源電圧のフィードバック制御をクロック周波数のフィードバック制御と独立のループとしている。すなわち、特性モニタ部１７０が設けられている。
この場合には、各モニタ部のモニタ期間の長さを次の順にする。
要求性能モニタ部１８０のモニタ期間＞特性モニタ部１７０のモニタ期間＞電源変動モニタ部１１０のモニタ期間＞タイミングマージンモニタ部１４０のモニタ期間。
制御サイクル（制御周期）として、クロック周波数の上げ下げ制御の周期の方を、電源電圧の制御周期よりも短くすることが好ましいのは、上記第４実施形態の場合と同じである。
【００４６】
（第４実施形態の変形例２）
第４実施形態の変形例２を図１５に示す。
図１５においては、電源回路１６０はタイミングマージンモニタ部１４０からの出力情報に基づいて電源電圧の制御を行うこととしている。タイミングマージンモニタ部１４０によるタイミングマージンのモニタ情報は毎サイクル得られるものである。しかし、クロック周波数の上げ下げ制御の周期の方を、電源電圧の制御周期よりも短くすることが好ましいのは、上記第４実施形態の場合と同じである。
【００４７】
（第５実施形態）
第５実施形態を図１６を参照して説明する。
図１８においては電源系統がＶＤＤ１からＶＤＤ３まで複数あることを表している。各電源系統の電圧はそれぞれ別個に設けられた電源回路１６０Ａ、１６０Ｂ、１６０Ｃで制御される。また、電源変動モニタ部１１０Ａ、１１０Ｂ、１１０Ｃおよびタイミングマージンモニタ部１４０Ａ、１４０Ｂ、１４０Ｃも電源系統ごとに設けられている。
このような場合、クロック周波数調整部１５０としては、すべての電源系統において要求された通りの動作で実現されるようにクロック周波数を決定する必要があるのは当然である。言い換えると、クロック周波数調整部１５０は、条件が最も厳しい電源系統であっても要求される性能を達成できるようにクロック周波数を決定する。クロック周波数調整部１５０は、例えば、電源電圧が低く、かつ、タイミングマージンに余裕が無い電源系統を優先的に考慮して、最適なクロック周波数を決定する。
【００４８】
（第６実施形態）
第６実施形態を図１７を参照して説明する。
図１７においては、クロック周波数調整部１５０は、タイミングマージンモニタ部１４０からのフィードバック情報を受けない。クロック周波数調整部１５０は、電源変動モニタ部１１０でモニタされた電源電圧の変化情報と、要求性能判定部で得られた要求性能を満たしているかどうかの判定結果と、をみてクロック周波数のアップまたはダウンを決定する。この構成においても、単に電源電圧の高低だけに基づいてクロック周波数の増減を決定せずに、要求性能を満たしているかどうかについても判定条件に含める。すなわち、電源電圧が下がったからといって一律にクロック周波数を下げてしまうのではなく、電源が下がった場合であっても、なおかつ、要求性能を満たしている場合にのみクロック周波数のダウンを決定する。これにより、要求性能を満たせないほどクロック周波数が下がってしまうような制御を回避することができる。
【００４９】
なお、電源電圧の値は、クリティカルパスレプリカ（タイミングマージンモニタ部）からの情報に基づいて、要求水準を満たす程度の電圧値になるように制御される。
加えて、要求性能判定部で得られた要求性能を満たしているかどうかの判定結果を電源回路にフィードバックするようにしてもよい。
【００５０】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００５１】
（付記１）
クロック信号を生成するクロック生成部と、
電源電圧の上下変化をモニタする電源変動モニタ部と、
クロック信号を所定期間カウントして、動作速度が要求性能以上になっているかどうかをモニタする要求性能モニタ部と、
前記電源電圧の上下変化と、動作速度が要求性能以上になっているかどうかと、に基づいて、前記クロック信号の周波数をアップ、ダウンまたは維持させるクロック周波数調整部と、を備える
クロック周波数制御装置。
（付記２）
前記クロック周波数調整部は、
前記電源電圧が下がった場合でも、動作速度が要求性能値を満たしている場合だけ、クロック周波数のダウンを許可する
付記１に記載のクロック周波数制御装置。
【符号の説明】
【００５２】
１００・・・半導体装置、１１０、１１０A、１１０B、１１０C・・・電源変動モニタ部、１１１・・・リングオシレータ、１１２・・・インバータ、１１３・・・カウンタ、１２０・・・クロック生成部、１２１・・・ドライバ、１３０・・・クロック分配回路、１４０、１４０A、１４０B、１４０C・・・タイミングマージンモニタ部、１４１・・・インバータ、１４２・・・遅延バッファ、１４３・・・初段フリップフロップ回路、１４４・・・第1最終段フリップフロップ回路、１４５・・・第２最終段フリップフロップ回路、１５０・・・クロック周波数調整部、１５１・・・条件判定部、１５２・・・周波数上げ下げ指示部１５２、１６０、１６０A、１６０B、１６０C・・・電源回路、１７０・・・特性モニタ部、１８０・・・要求性能モニタ部。
【図１】
2014052969.tif 000003
【図２】
2014052969.tif 000004
【図３】
2014052969.tif 000005
【図４】
2014052969.tif 000006
【図５】
2014052969.tif 000007
【図６】
2014052969.tif 000008
【図７】
2014052969.tif 000009
【図８】
2014052969.tif 000010
【図９】
2014052969.tif 000011
【図１０】
2014052969.tif 000012
【図１１】
2014052969.tif 000013
【図１２】
2014052969.tif 000014
【図１３】
2014052969.tif 000015
【図１４】
2014052969.tif 000016
【図１５】
2014052969.tif 000017
【図１６】
2014052969.tif 000018
【図１７】
2014052969.tif 000019