(57)【要約】  ＤＶＦＳ制御で用いる複数の動作周波数及び電源電圧値を設定するＤＶＦＳ用テーブルと、電源電圧の変化に応じて遅延変化を検出するＣＰＭ（クリティカルパスモニタ）回路と、ＤＶＦＳ用テーブルの設定動作を制御する制御回路とを有し、テーブル内の測定して得られた動作周波数及び電源電圧値に設定してＣＰＭ回路のキャリブレーションを行い、キャリブレーションされたＣＰＭ回路によりテーブル内の測定していない動作周波数に対する電源電圧値の調整を行って、調整した電源電圧値をテーブルに設定するようにし、試験時間の増大を抑制し、プロセスばらつきに応じた最適な電源電圧値でのＤＶＦＳ制御を行う。
2015008372.tif 000002
【特許請求の範囲】
【請求項１】
動的電圧・周波数制御で用いる複数の動作周波数及び前記動作周波数に対する電源電圧値を設定するテーブルと、
電源電圧の変化に応じて遅延変化を検出するクリティカルパスモニタ回路と、
前記テーブル内の測定して得られた前記動作周波数及び前記電源電圧値に設定して前記クリティカルパスモニタ回路のキャリブレーションを行い、キャリブレーションされた前記クリティカルパスモニタ回路により前記テーブル内の測定していない前記動作周波数に対する前記電源電圧値の調整を行って、調整した前記電源電圧値を前記テーブルに設定する制御回路とを有することを特徴とする演算処理装置。
【請求項２】
前記テーブル内の前記動作周波数及び前記電源電圧値を、各々が測定して得られた前記動作周波数に対する前記電源電圧値及び測定していない前記動作周波数に対する前記電源電圧値の両方を含む複数のグループに分け、
前記制御回路は、測定していない前記動作周波数に対する前記電源電圧値の調整を、グループ内の測定して得られた前記動作周波数及び前記電源電圧値によってキャリブレーションされた前記クリティカルパスモニタ回路により行うことを特徴とする請求項１記載の演算処理装置。
【請求項３】
前記制御回路は、
前記テーブル内の測定して得られた前記動作周波数及び前記電源電圧値に設定したときの前記クリティカルパスモニタ回路での遅延に応じたマージン情報に基づいてタイミングマージンを判断する判断部と、
前記判断部での判断結果に基づいて前記クリティカルパスモニタ回路のキャリブレーションを行うキャリブレーション制御部とを有することを特徴とする請求項１記載の演算処理装置。
【請求項４】
前記制御回路は、
前記テーブル内の測定していない前記動作周波数及び前記電源電圧値に設定したときの前記クリティカルパスモニタ回路での遅延に応じたマージン情報に基づいてタイミングマージンを判断する判断部と、
前記判断部での判断結果に基づいて前記動作周波数に対する前記電源電圧値の増減を制御する増減制御部とを有することを特徴とする請求項１記載の演算処理装置。
【請求項５】
前記制御回路は、
前記クリティカルパスモニタ回路での遅延に応じたマージン情報に基づいてタイミングマージンを判断する判断部と、
前記テーブル内の測定して得られた前記動作周波数及び前記電源電圧値に設定したときの前記判断部での判断結果に基づいて前記クリティカルパスモニタ回路のキャリブレーションを行うキャリブレーション制御部と、
前記テーブル内の測定していない前記動作周波数及び前記電源電圧値に設定したときの前記判断部での判断結果に基づいて前記動作周波数に対する前記電源電圧値の増減を制御する増減制御部とを有することを特徴とする請求項１記載の演算処理装置。
【請求項６】
前記クリティカルパスモニタ回路を複数有し、
前記制御回路は、複数の前記クリティカルパスモニタ回路の内の１つの前記クリティカルパスモニタ回路を用いて、前記キャリブレーション及び前記電源電圧値の調整を行うことを特徴とする請求項１記載の演算処理装置。
【請求項７】
前記テーブル、前記クリティカルパスモニタ回路、及び前記制御回路の組を複数有することを特徴とする請求項１記載の演算処理装置。
【請求項８】
前記テーブル内の測定していない測定していない前記動作周波数に対する前記電源電圧値は、シミュレーションにより得られた値であることを特徴とする請求項１記載の演算処理装置。
【請求項９】
動的電圧・周波数制御で用いる複数の動作周波数及び前記動作周波数に対する電源電圧値を設定するテーブルと、電源電圧の変化に応じて遅延変化を検出するクリティカルパスモニタ回路とを有する演算処理装置の制御方法であって、
前記テーブル内の測定して得られた前記動作周波数及び前記電源電圧値に設定して前記クリティカルパスモニタ回路のキャリブレーションを行い、
キャリブレーションされた前記クリティカルパスモニタ回路により前記テーブル内の測定していない前記動作周波数に対する前記電源電圧値の調整を行い、
調整された前記電源電圧値を前記テーブルに設定することを特徴とする演算処理装置の制御方法。
【請求項１０】
動的電圧・周波数制御で用いる複数の動作周波数及び前記動作周波数に対する電源電圧値を設定するテーブルと、電源電圧の変化に応じて遅延変化を検出するクリティカルパスモニタ回路とを有する演算処理装置に、
前記テーブル内の測定して得られた前記動作周波数及び前記電源電圧値に設定して前記クリティカルパスモニタ回路のキャリブレーションを行う処理と、
キャリブレーションされた前記クリティカルパスモニタ回路により前記テーブル内の測定していない前記動作周波数に対する前記電源電圧値の調整を行う処理と、
調整された前記電源電圧値を前記テーブルに設定する処理とを実行させるためのプログラム。
【請求項１１】
動的電圧・周波数制御で用いる複数の動作周波数及び前記動作周波数に対する電源電圧値を設定するテーブルと、電源電圧の変化に応じて遅延変化を検出するクリティカルパスモニタ回路とを有する演算処理装置に、
前記テーブル内の測定して得られた前記動作周波数及び前記電源電圧値に設定して前記クリティカルパスモニタ回路のキャリブレーションを行う処理と、
キャリブレーションされた前記クリティカルパスモニタ回路により前記テーブル内の測定していない前記動作周波数に対する前記電源電圧値の調整を行う処理と、
調整された前記電源電圧値を前記テーブルに設定する処理とを実行させるためのプログラムを記録したことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置及び演算処理装置の制御方法に関する。
【背景技術】
【０００２】
演算処理装置で消費電力を抑えるための技術に、処理負荷等に応じて動作周波数（動作クロックの周波数）及び電源電圧を動的に制御する動的電圧・周波数制御（ＤＶＦＳ：Dynamic Voltage and Frequency Scaling）がある。例えば、ＤＶＦＳでは、動作周波数が高ければ電源電圧を高く設定し、動作周波数が低ければ電源電圧を低く設定する。【０００３】
ＤＶＦＳ制御で用いる複数の動作周波数と電源電圧値を決定するには、下記＜１＞〜＜３＞のような方法がある。
＜１＞シミュレーションにより見積もる。
＜２＞ＤＶＦＳ制御で用いる一部の動作周波数と電源電圧値を、それぞれ実際に試験を行うことで測定し、残りは測定結果から算出することで補間する。
＜３＞ＤＶＦＳ制御で用いるすべての動作周波数と電源電圧値を、それぞれ実際に試験を行うことで測定する。【０００４】
また、例えば、半導体集積回路でのプロセスばらつきによる動作速度の変化をプロセスモニタ回路を用いて測定し、測定結果を基にプロセスばらつきに応じた電源電圧の補正を行う技術が提案されている（例えば、特許文献１参照）。また、演算処理装置の動作周波数と電源電圧を決める際に、ダイナミックにテストを実行し、テストにより得られた情報を操作して、不揮発性メモリに保管する技術が提案されている（例えば、特許文献２参照）。【０００５】
しかしながら、例えば特許文献１に記載されているような、プロセスばらつきによる動作速度の変化をプロセスモニタ回路で測定し電源電圧を補正する技術では、プロセスモニタ回路と実際の回路動作とを補正する手段がない。そのため、プロセスモニタ回路の回路特性が、プロセスばらつきにより実際に動作する回路の特性に合っていない場合には、最適な電源電圧値が得られない。また、例えば特許文献２に記載されているようなダイナミックにテストを実行して情報を得る技術では、動作周波数及び電源電圧の最適値を求めるために多大な時間を要してしまう。【０００６】
ここで、予めシミュレーションにより、演算処理装置におけるＤＶＦＳ制御で用いる動作周波数と電源電圧値を決める場合について、図１３Ａ及び図１３Ｂを参照して説明する。図１３Ａ及び図１３Ｂは、シミュレーション結果に基づく動作周波数に対する電源電圧値の設定例を示す図である。図１３Ａ及び図１３Ｂのそれぞれにおいて、横軸が動作周波数であり、縦軸が電圧値である。【０００７】
図１３Ａにおいて、Ｖ１０１がシミュレーションにより得られた、動作周波数に対する電源電圧値を示している。また、Ｖ１０２が製造時にプロセスばらつきが速い側にばらついた場合における電源電圧値を示し、Ｖ１０３が製造時にプロセスばらつきが遅い側にばらついた場合における電源電圧値を示している。製造時にプロセスばらつきが遅い側にばらついたとしても演算処理装置の誤動作を回避するためには、動作周波数に対する電源電圧値はＶ１０３となる。さらに、プロセスばらつき以外にも、電源回路及び回路動作に伴う電圧降下やＤＶＦＳでの電源電圧遷移によるノイズ等によって発生する、演算処理装置に供給する電源電圧の変動に対するマージン等も考慮すると、動作周波数に対する電源電圧値はＶ１０４となる。【０００８】
つまり、演算処理装置におけるＤＶＦＳ制御で用いる動作周波数と電源電圧値の初期設定値は、動作マージンを考慮すると、図１３Ｂに示す（Ｆ0，Ｖ0）〜（Ｆ5，Ｖ5）となる。これは、演算処理装置の実際の性能に対して必要以上のマージンが含まれる可能性があり、例えば製造時にプロセスばらつきが速い側にばらついた場合の動作周波数に対する電源電圧値Ｖ１０２に対して、設定される電源電圧値は最も過剰となる。このように、シミュレーションによってＤＶＦＳ制御で用いる動作周波数と電源電圧値を決めると、個々の演算処理装置のプロセスばらつきに応じた適切な電源電圧値が得られず、無駄な電力を消費することとなる。【０００９】
また、演算処理装置におけるＤＶＦＳ制御で用いる動作周波数と電源電圧値の一部を実際に試験を行って測定し、残りを測定結果に基づいて計算等により求める場合について、図１４Ａ及び図１４Ｂを参照して説明する。図１４Ａ及び図１４Ｂは、実測定に基づく動作周波数に対する電源電圧値の設定例を示す図である。図１４Ａ及び図１４Ｂのそれぞれにおいて、横軸が動作周波数であり、縦軸が電圧値である。【００１０】
図１４Ａ及び図１４Ｂにおいて、三角で示す印が演算処理装置の実際の性能（動作周波数に対し、正常に動作する電源電圧値）を示している。図１４Ａ及び図１４Ｂにおいて、塗りつぶされた三角が実際に試験を行って測定された動作周波数に対する電源電圧値を示し、破線の三角が未測定の動作周波数に対する電源電圧値を示している。また、図１４Ａ及び図１４Ｂにおいて、動作周波数に対する電源電圧値Ｖ１０２、Ｖ１０４は、図１３Ａ及び図１３Ｂに示した動作周波数に対する電源電圧値Ｖ１０２、Ｖ１０４に対応する。【００１１】
図１４Ａに示すように、例えば、未測定の動作周波数に対する電源電圧値を、測定された動作周波数に対する電源電圧値を用いて直線で補間すると、動作周波数に対する電源電圧値はＶ２０１となる。ここで、演算処理装置におけるクリティカルパスは、演算処理装置が有するすべてのパスから決まるため、クリティカルパスの動作周波数と電源電圧の特性は一般に線形にはならない。したがって、未測定の動作周波数に対する電源電圧値を、測定された動作周波数に対する電源電圧値を用いて直線で補間すると、例えば図１４Ａに示す１４０１のように、設定する電源電圧値が実際の性能を得るために要求される電源電圧値より低くなってしまうことがある。これによる演算処理装置の誤動作を回避するために、Ｖ２０２として示すように、測定された動作周波数に対する電源電圧にマージンを設定し、それを用いて未測定の動作周波数に対する電源電圧値を求めることが考えられる。しかし、演算処理装置は、このマージンにより無駄な電力を消費することとなる。【００１２】
また、図１４Ｂに示すように、例えば、未測定の動作周波数に対する電源電圧値として、高い側の動作周波数で測定された電源電圧値を流用すると、演算処理装置の動作は保証される。しかし、例えば図１４Ｂに示す１４０２、１４０３などのように、設定する電源電圧値が実際の性能を得るために要求される電源電圧値に対して過剰になり、無駄な電力を消費することとなる。【００１３】
また、それぞれの演算処理装置で実際に試験を行い、ＤＶＦＳ制御で用いるすべての動作周波数と電源電圧値を測定することで、個々の演算処理装置について動作周波数に対する適切な電源電圧値を得ることは可能である。しかし、ＤＶＦＳ制御で用いるすべての動作周波数と電源電圧値を実際に試験を行って測定すると、多大な試験時間（コスト）を要してしまう。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００５−３２２８６０号公報
【特許文献２】特表２００９−５２６３３６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
本発明の目的は、試験時間の増大を抑制し、プロセスばらつきを考慮したＤＶＦＳ制御を行うことができる演算処理装置及び演算処理装置の制御方法を提供することにある。
【課題を解決するための手段】
【００１６】
演算処理装置の一態様は、ＤＶＦＳ制御で用いる複数の動作周波数及び電源電圧値を設定するテーブルと、電源電圧の変化に応じて遅延変化を検出するクリティカルパスモニタ回路と、制御回路とを有する。制御回路は、テーブル内の測定して得られた動作周波数及び電源電圧値に設定してクリティカルパスモニタ回路のキャリブレーションを行い、キャリブレーションされたクリティカルパスモニタ回路によりテーブル内の測定していない動作周波数に対する電源電圧値の調整を行って、調整した電源電圧値を前記テーブルに設定する。
【発明の効果】
【００１７】
ＤＶＦＳ制御で用いる複数の動作周波数及び電源電圧値の一部を試験により測定することで試験時間の増大を抑制することができ、測定された動作周波数及び電源電圧値によりキャリブレーションされたクリティカルパスモニタ回路により測定していない動作周波数に対する電源電圧値を調整することでプロセスばらつきを考慮した電源電圧値を設定することができる。
【図面の簡単な説明】
【００１８】
【図１】図１は、本発明の実施形態における演算処理装置の構成例を示す図である。
【図２】図２は、本実施形態におけるＤＶＦＳ用テーブル設定に係る構成例を示す図である。
【図３】図３は、本実施形態におけるＤＶＦＳ用テーブルの構成例を示す図である。
【図４】図４は、本実施形態におけるＣＰＭ回路の構成例を示す図である。
【図５】図５は、本実施形態における制御回路の構成例を示す図である。
【図６】図６は、本実施形態におけるＤＶＦＳ用テーブルの設定の動作例を示すフローチャートである。
【図７】図７は、図６に示すステップＳ１０１での動作例を示すフローチャートである。
【図８】図８は、図６に示すステップＳ１０２及びＳ１０３での動作例を示すフローチャートである。
【図９】図９は、本実施形態におけるタイミングマージン確認を説明するための図である。
【図１０Ａ】図１０Ａは、本実施形態におけるＤＶＦＳ用テーブルのデータ設定例を示す図である。
【図１０Ｂ】図１０Ｂは、本実施形態におけるＤＶＦＳ用テーブルのデータ設定例を示す図である。
【図１０Ｃ】図１０Ｃは、本実施形態におけるＤＶＦＳ用テーブルのデータ設定例を示す図である。
【図１０Ｄ】図１０Ｄは、本実施形態におけるＤＶＦＳ用テーブルのデータ設定例を示す図である。
【図１０Ｅ】図１０Ｅは、本実施形態におけるＤＶＦＳ用テーブルのデータ設定例を示す図である。
【図１１】図１１は、本実施形態における演算処理装置の他の構成例を示す図である。
【図１２】図１２は、本実施形態における演算処理装置の他の構成例を示す図である。
【図１３Ａ】図１３Ａは、シミュレーション結果に基づく動作周波数に対する電圧値設定の例を示す図である。
【図１３Ｂ】図１３Ｂは、シミュレーション結果に基づく動作周波数に対する電圧値設定の例を示す図である。
【図１４Ａ】図１４Ａは、実測定に基づく動作周波数に対する電圧値設定の例を示す図である。
【図１４Ｂ】図１４Ｂは、実測定に基づく動作周波数に対する電圧値設定の例を示す図である。
【図１５】図１５は、本実施形態でのＤＶＦＳにおける動作周波数に対する電圧値設定の例を示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態を図面に基づいて説明する。
【００２０】
図１は、本発明の実施形態における演算処理装置としてのＣＰＵ（Central
Processing Unit）の構成例を示す図である。ＣＰＵ１０は、ＣＰＵコア１１、ＤＶＦＳ用テーブル１２、制御回路１４、周波数制御部１５、スキャン制御部１７、及びメモリ１８を有する。
【００２１】
ＣＰＵコア１１は、電圧制御部１９から電源電圧ｖｄｄ−ｃが供給され、周波数制御部１５から供給されるクロック信号ｃｌｋ−ｃを動作クロックとして動作し、メモリ１８等に格納されているプログラムを読み出して実行する。ＣＰＵコア１１は、電源電圧ｖｄｄ−ｃの変化に応じて遅延変化（ディレイ変化）を検出するクリティカルパスモニタ（ＣＰＭ：Critical Path Monitor）回路１３を有する。
【００２２】
ＤＶＦＳ用テーブル１２は、ＣＰＵコア１１に対する動的電圧・周波数制御（ＤＶＦＳ：Dynamic Voltage and Frequency Scaling）で用いる動作周波数と電源電圧値を設定するテーブルである。ＤＶＦＳ用テーブル１２には、ＤＶＦＳ制御で用いる複数の動作周波数と電源電圧値の組の情報が格納されている。各組の情報は、ＤＶＦＳ制御で用いる動作周波数、その動作周波数に対する電源電圧値、その電源電圧値の状態を示す情報、ＣＰＭ回路１３のキャリブレーションのグループ及びキャリブレーション値を含む。
【００２３】
制御回路１４は、ＣＰＵコア１１に対するＤＶＦＳ制御に係る各種の制御を行う。制御回路１４は、例えば、ＤＶＦＳ用テーブル１２の制御や、ＣＰＭ回路１３の制御や、ＣＰＵコア１１に供給するクロック信号ｃｌｋ−ｃ及び電源電圧ｖｄｄ−ｃの設定制御を行う。
【００２４】
周波数制御部１５は、クロック信号ＣＰＵ  ＣＬＫが入力されるとともに、制御回路１４からの周波数設定信号ｆｓｅｔが入力される。周波数制御部１５は、周波数設定信号ｆｓｅｔに応じて逓倍率（あるいは分周比）を制御して、クロック信号ＣＰＵ  ＣＬＫを基に、周波数設定信号ｆｓｅｔに応じた周波数のクロック信号ｃｌｋ−ｃを生成して出力する。周波数制御部１５は、例えばＰＬＬ（Phase Locked Loop）回路である。
【００２５】
スキャン制御部１７は、ＣＰＵ１０におけるスキャン動作を制御する。例えば、スキャン制御部１７による制御により、メモリ１８から読み出したデータ等（ｓｃａｎ  ｄａｔ／ｃｔｒ）をスキャンシフト動作によってＤＶＦＳ用テーブル１２に書き込むことが可能である。メモリ１８は、例えば不揮発性メモリであり、ＣＰＵ１１で実行するプログラムやＤＶＦＳ用テーブル１２の初期設定値が格納されている。
【００２６】
電圧制御部１９は、供給される電源を基に、制御回路１４からの電圧設定信号ｖｓｅｔに応じた電圧値の電源電圧ｖｄｄ−ｃを生成して出力する。電圧制御部１９は、例えば電圧制御を行うＶＲＭ（Voltage Regulator Module）、ＤＣ−ＤＣコンバータである。なお、図１において、電圧制御部１９は、ＣＰＵ１０の外部に設けているが、ＣＰＵ１０の内部に設けるようにしても良い。
【００２７】
また、図１において、信号ｔｂ＿ｗｔは、ＤＶＦＳ用テーブル１２に係るライト制御信号であり、信号ｔｂ＿ｓｅｌは、ＤＶＦＳ用テーブル１２内のデータ（情報）の組を選択する制御信号である。信号ｔｂ＿ｒｄは、ＤＶＦＳ用テーブル１２に係るリード制御信号であり、信号ｔｂ＿ｓｃａｎは、ＤＶＦＳ用テーブル１２に対するスキャン信号である。
【００２８】
また、信号ｒｅｑは、ＤＶＦＳ用テーブル１２の設定動作、ＤＶＦＳ用テーブル１２内のデータ値による周波数設定及び電圧設定、ＤＶＦＳ用テーブル１２の参照を行うための要求信号である。信号ｉｎｆｏは、ＤＶＦＳ用テーブル１２への設定要求に対する応答信号（設定ステータスやＤＶＦＳ用テーブル１２内のデータ等）である。信号ｃｔｒは、制御回路１４に対する制御信号である。また、信号ｃｐｍ＿ｃｔｒは、ＣＰＭ回路１３を起動及びキャリブレーションする制御信号であり、信号ｃｐｍ＿ｄｌｙは、ＣＰＭ回路１３の動作により得られるタイミングマージン情報信号である。信号ｓｃａｎは、スキャンシフト動作によるデータ設定に係る信号である。
【００２９】
図２は、図１に示したＣＰＵ１０におけるＤＶＦＳ用テーブル設定に係る構成例を示す図である。図２において、図１に示した構成要素と同一の機能を有する構成要素には同一の符号を付している。本実施形態においては、ＤＶＦＳ用テーブル１２には、起動時の初期値として、一部は実際に試験を行って測定した動作周波数と電源電圧値との組が設定され、残りはシミュレーションにより得られた動作周波数と電源電圧値との組が設定される。そして、ＣＰＵ１０の起動時に、制御回路１４は、測定により得られた動作周波数及び電源電圧値を設定してＣＰＭ回路１３のキャリブレーション処理を行う。制御回路１４は、このキャリブレーション処理により得られたキャリブレーション値を、シミュレーションにより得られた（測定していない）動作周波数と電源電圧値との組のキャリブレーション値として流用し、ＣＰＭ回路１３を利用して測定していない動作周波数に対する適切な電源電圧値を求める。
【００３０】
ＤＶＦＳ用テーブル１２は、ＤＶＦＳ制御で用いる動作周波数と電源電圧値を設定するテーブルであり、図３に示すように、選択デコーダ２１及びレジスタ２２〜２６を有する複数のレジスタアレイを有する。図３は、本実施形態におけるＤＶＦＳ用テーブル１２の構成例を示す図である。図３において、図１、図２に示した構成要素と同一の機能を有する構成要素には同一の符号を付している。
【００３１】
レジスタ２２は、ＤＶＦＳ制御で用いる動作周波数を保存するレジスタであり、レジスタ２３は、レジスタ２２に保存されている動作周波数に対する電源電圧値を保存するレジスタである。レジスタ２４は、レジスタ２３に保存されている電源電圧値の状態を示すフラグレジスタであり、電源電圧値の状態としては、例えばシミュレーション値、実測値、補正値がある。レジスタ２５は、ＣＰＭ回路１３のキャリブレーションのグループを示すレジスタであり、レジスタ２６は、ＣＰＭ回路１３のキャリブレーション値を保存するレジスタである。
【００３２】
それぞれ１つのレジスタ２２〜２６を組み合わせて１組のレジスタ群とし、各レジスタ群に、ＤＶＦＳ制御で用いる動作周波数、電源電圧値、電源電圧値の状態、ＣＰＭ回路１３のキャリブレーションのグループ及びキャリブレーション値が格納される。レジスタ群（レジスタ２２〜２６の組）は、選択デコーダ２１による制御信号ｔｂ＿ｓｅｌに応じた選択によって任意に選択可能である。
【００３３】
また、ＤＶＦＳ用テーブル１２内のレジスタ２２〜２６は、制御回路１４からの、ライトデータ／制御に係る信号ｔｂ＿ｗｔ、レジスタの組の選択／制御に係る信号ｔｂ＿ｓｅｌ、及びリードデータ／制御に係る信号ｔｂ＿ｒｄによりデータの書き込みや読み出しが可能である。また、ＤＶＦＳ用テーブル１２内のレジスタ２２〜２６は、制御回路１４からのスキャン信号／制御に係る信号ｔｂ＿ｓｃａｎに応じたスキャンシフト動作によってもデータの書き込みや読み出しが可能である。
【００３４】
ＣＰＭ回路１３は、電源電圧ｖｄｄ−ｃの変化に応じて遅延変化（ディレイ変化）を検出する回路であり、図４に示すように、パルス発生部３１、オフセット部３２、クリティカルパス部３３、論理積（ＡＮＤ）演算部３５、変換部３６、及びマージン情報信号出力部３９を有する。図４は、本実施形態におけるＣＰＭ回路１３の構成例を示す図である。図４において、図１、図２に示した構成要素と同一の機能を有する構成要素には同一の符号を付している。
【００３５】
パルス発生部３１は、制御回路１４からの信号ｃｐｍ＿ｃｔｒに含まれるイネーブル信号ｅｎａｂｌｅに基づいて、ＣＰＭ回路１３におけるタイミングマージン観測のためのパルス信号を発生して出力する。オフセット部３２は、制御回路１４からの信号ｃｐｍ＿ｃｔｒに含まれるキャリブレーション信号ｃａｌｉｂに基づいて、パルス発生部３１で発生したパルス信号に時間的なオフセット（遅延）を付加する。クリティカルパス部３３の複数のレプリカパス３４−１、３４−２、…、３４−ｎが有するデバイスは、ＣＰＵ１０内のデバイスも含めてプロセスばらつきの影響を受けるが、オフセット部３２でのオフセットの付加によりタイミングマージンの指標を調整することが可能である。
【００３６】
クリティカルパス部３３は、複数のレプリカパス３４−１、３４−２、…、３４−ｎ（ｎは２以上の整数）を有し、入力されるパルス信号をそれぞれのレプリカパス３４−１、３４−２、…、３４−ｎにて伝搬して出力する。レプリカパス３４−１、３４−２、…、３４−ｎは、回路構成が異なるが、各パスにおける遅延（ディレイ）が合わせられている。
【００３７】
ＡＮＤ演算部３５は、クリティカルパス部３３の複数のレプリカパス３４−１、３４−２、…、３４−ｎからの出力を論理積演算し、演算結果を出力する。すなわち、ＡＮＤ演算部３５は、レプリカパス３４−１、３４−２、…、３４−ｎのすべてから、伝搬されたパルス信号が出力されたことを検出すると、出力をアサートする。つまり、ＡＮＤ演算部３５は、複数のレプリカパス３４−１、３４−２、…、３４−ｎの内のワーストパスでの遅延を検出する。
【００３８】
変換部３６は、複数の遅延回路３７−１、３７−２、…、及び複数のフリップフロップ３８−１、３８−２、…３８−ｍ（ｍは２以上の整数）を有する。遅延回路３７−１、３７−２、…は、縦属接続（カスケード接続）されている。ＡＮＤ演算部３５の出力が、初段の遅延回路３７−１及びフリップフロップ３８−１に入力される。また、遅延回路３７−（ｉ−１）（ｉ＝２〜ｍの整数）の出力が、遅延回路３７−ｉ及びフリップフロップ３８−ｉに入力される。フリップフロップ３８−１、３８−２、…３８−ｍのそれぞれは、入力を同期して取り込んで出力する。したがって、フリップフロップ３８−１、３８−２、…３８−ｍの出力値が変化しているエッジを検出することで、タイミングマージンが観測可能である。マージン情報信号出力部３９は、変換部３６の複数のフリップフロップ３８−１、３８−２、…３８−ｍに基づいて、マージン情報信号ｃｐｍ＿ｄｌｙを生成し出力する。
【００３９】
制御回路１４は、ＤＶＦＳ制御に係る各種の制御を行う回路であり、図５に示すように、ＤＶＦＳテーブル設定動作制御部４１、ＤＶＦＳテーブル制御部４２、及びＣＰＭ制御部４３を有する。図５は、本実施形態における制御回路１４の構成例を示す図である。図５において、図１、図２に示した構成要素と同一の機能を有する構成要素には同一の符号を付している。
【００４０】
ＤＶＦＳテーブル設定動作制御部４１は、ＤＶＦＳ用テーブル１２の設定に係る動作を制御する。ＤＶＦＳテーブル設定動作制御部４１は、シーケンス制御部４４、周波数設定レジスタ４５、電圧値設定レジスタ４６、マージン確認部４７、電圧値の増減制御部４８、及びテーブル更新データ生成部４９を有する。シーケンス制御部４４は、ＤＶＦＳ用テーブル１２の設定におけるＣＰＭ回路１３のキャリブレーション動作やＣＰＭ回路１３を利用した電源電圧値の設定動作を制御する。
【００４１】
周波数設定レジスタ４５は、ＤＶＦＳ制御での装置の動作周波数の設定値を示すレジスタである。周波数設定レジスタ４５は、ＤＶＦＳテーブル制御部４２を介してＤＶＦＳ用テーブル１２から読み出された動作周波数の設定値が設定され、設定値に応じた周波数設定信号ｆｓｅｔを出力する。
【００４２】
電圧値設定レジスタ４６は、ＤＶＦＳ制御での装置の電源電圧の設定値を示すレジスタである。電圧値設定レジスタ４６は、ＤＶＦＳテーブル制御部４２を介してＤＶＦＳ用テーブル１２から読み出された電源電圧の設定値、又はＣＰＭ回路１３からのタイミングマージン情報信号ｃｐｍ＿ｄｌｙにより決まる電源電圧の設定値が設定され、設定値に応じた電圧設定信号ｖｓｅｔを出力する。
【００４３】
マージン確認部４７は、ＣＰＭ回路１３からのタイミングマージン情報信号ｃｐｍ＿ｄｌｙに基づいて、ＤＶＦＳ制御時におけるマージンを判断する。マージン確認部４７は、ＣＰＭ回路１３のキャリブレーション動作時には、タイミングマージン情報信号ｃｐｍ＿ｄｌｙに基づいてＣＰＭ回路１３のキャリブレーションを行うか否かを判断する。また、マージン確認部４７は、ＣＰＭ回路１３を利用した電源電圧値の調整時には、タイミングマージン情報信号ｃｐｍ＿ｄｌｙ及び許容値から電圧値のマージンを判断する。
【００４４】
電圧値の増減制御部４８は、ＣＰＭ回路１３を利用した電源電圧値の調整時に、マージン確認部４７の判断結果に基づいて電源電圧の設定値に対する増減制御を行う。テーブル更新データ生成部４９は、ＣＰＭ回路１３のキャリブレーション動作やＣＰＭ回路１３を利用した電源電圧値の設定動作において、ＤＶＦＳ用テーブル１２に書き込む更新データを生成する。テーブル更新データ生成部４９は、例えば電源電圧値、電源電圧値の状態、キャリブレーション値を生成する。
【００４５】
ＤＶＦＳテーブル制御部４２は、ＤＶＦＳ用テーブル１２に対するデータの書き込み及び読み出しを制御する。ＤＶＦＳテーブル制御部４２は、ライト／リード制御部５０、及びレジスタ５１、５２を有する。ライト／リード制御部５０は、ＤＶＦＳテーブル設定動作制御部４１からの信号に基づいて、データの書き込み及び読み出しを行うＤＶＦＳ用テーブル１２のデータの組を選択するための信号ｔｂ＿ｓｅｌを生成して出力する。レジスタ５１は、ＤＶＦＳ用テーブル１２への書き込みデータを保持するレジスタであり、レジスタ５２は、ＤＶＦＳ用テーブル１２からの読み出しデータを保持するレジスタである。
【００４６】
ＣＰＭ制御部４３は、ＣＰＭ回路１３の動作を制御する。ＣＰＭ制御部４３は、回路動作制御部５４及びキャリブレーション制御部５５を有する。回路動作制御部５４は、ＤＶＦＳテーブル設定動作制御部４１からの起動信号ｃｐｍ＿ｅｎｂに応じて、ＣＰＭ回路１３の起動を制御する。キャリブレーション制御部５５は、ＤＶＦＳテーブル設定動作制御部４１のマージン確認部４７の出力に応じて、ＣＰＭ回路１３のキャリブレーション値を生成して出力する。
【００４７】
次に、本実施形態におけるＤＶＦＳ用テーブルの設定に係る動作について説明する。図６は、本実施形態におけるＤＶＦＳ用テーブルの設定の動作例を示すフローチャートである。なお、図６に示す各処理は、試験時にステップＳ１０１の処理が行われ、その後の装置の起動時にステップＳ１０２及びＳ１０３の処理が行われる。
【００４８】
まず、試験装置により実際に動作させる試験を演算処理装置としてのＣＰＵ１０で行い、ＤＶＦＳ制御での動作周波数に対して、正常に動作する電源電圧値を測定により求める（Ｓ１０１）。このステップＳ１０１における試験による電源電圧値の実測は、ＤＶＦＳ制御において制御し得るすべての動作周波数に対しては行わずに、一部の動作周波数に対して行う。このように、すべての動作周波数に対して試験を行うのではなく、一部の動作周波数に対して試験を行うことで、試験時間の増大を抑制することができる。ここで、試験を行うことによって測定された動作周波数に対する電源電圧値は、測定対象となったＣＰＵ１０と関連付けて、任意の記憶装置等に保存しておく。
【００４９】
次に、ＣＰＵ１０の起動時に、制御回路１４は、ステップＳ１０１において測定された動作周波数及び電源電圧値（実測値）を設定して、ＣＰＭ回路１３のキャリブレーション処理を行う（Ｓ１０２）。このステップＳ１０２におけるＣＰＭ回路１３のキャリブレーション処理により、測定された動作周波数及び電源電圧値の組に対するＣＰＭ回路１３のキャリブレーション値が得られる。制御回路１４は、得られたＣＰＭ回路１３のキャリブレーション値をＤＶＦＳ用テーブル１２に書き込む。また、ＣＰＭ回路１３のキャリブレーション値は、同じキャリブレーションのグループの測定していない動作周波数及び電源電圧値の組に対しても流用するので、制御回路１４は、ＤＶＦＳ用テーブル１２における同じグループの測定していない動作周波数及び電源電圧値の組に対してもキャリブレーション値を書き込む。
【００５０】
次に、制御回路１４は、測定していない動作周波数及び電源電圧値（シミュレーション値）を設定して、ＣＰＭ回路１３を利用し、その動作周波数に対して正常に動作する電源電圧値を求める（Ｓ１０３）。制御回路１４は、ステップＳ１０２において得られたキャリブレーション値でキャリブレーションされたＣＰＭ回路１３からのタイミングマージン情報に基づき、動作周波数に対する電源電圧値の最適化を行う。このように、実測値によりキャリブレーションされたＣＰＭ回路１３を用いて動作周波数に対する電源電圧値を求めることで、対象のＣＰＵ１０におけるプロセスばらつきを考慮した電源電圧値を得ることができる。そして、制御回路１４は、得られた電源電圧値等をＤＶＦＳ用テーブル１２に書き込む。以上のようにして、ＤＶＦＳ制御での動作周波数に対する電源電圧値の設定を行う。
【００５１】
以下、前述したステップＳ１０１〜Ｓ１０３での動作を詳細に説明する。
図７は、図６に示したステップＳ１０１での動作例を示すフローチャートである。試験装置を用いて、ＤＶＦＳ制御で用いる動作周波数の一部について、シミュレーションにより見積もった動作周波数及び電源電圧値で、演算処理装置としてのＣＰＵ１０の試験を開始する（Ｓ２０１）。そして、試験装置で電源電圧値を変えながら試験を行うことで、動作周波数に対し、正常に動作する電源電圧値をマージンも含めて測定する（Ｓ２０２）。次に、ＤＶＦＳ用テーブル１２の設定データとして使用するために、試験で測定された動作周波数に対する電源電圧値を、測定対象となったＣＰＵ１０と関連付けて、任意の記憶装置等に保存する（Ｓ２０３）。これにより、ＤＶＦＳ制御で用いる動作周波数の一部について、マージンも含めた電源電圧値が測定により求まる。
【００５２】
図８は、図６に示したステップＳ１０２及びＳ１０３での動作例を示すフローチャートである。図８において、ステップＳ３０１〜Ｓ３０７が、図６に示したステップＳ１０２での動作に対応し、ステップＳ３０８〜Ｓ３１４が、図６に示したステップＳ１０３での動作に対応する。
【００５３】
まず、ＣＰＵ１０の起動時に、制御回路１４のＤＶＦＳテーブル設定動作制御部４１は、信号ｓｃａｎ、ｃｔｒに応じてスキャンシフト動作を行い、信号ｔｂ＿ｓｃａｎを介して、ＤＶＦＳ用テーブル１２にデータを設定する（Ｓ３０１）。ＤＶＦＳ用テーブル１２に設定するデータには、ＤＶＦＳ制御で用いる動作周波数、電源電圧値（シミュレーション値、実測値）、電源電圧値の状態、ＣＰＭ回路１３のキャリブレーションのグループ、キャリブレーション値（初期値は不定）が含まれる。
【００５４】
次に、ＤＶＦＳテーブル設定動作制御部４１のシーケンス制御部４４は、ＤＶＦＳテーブル制御部４２を介してＤＶＦＳ用テーブル１２のデータを読み出し、テーブル１２内の情報を確認する（Ｓ３０２）。シーケンス制御部４４は、読み出したデータの電源電圧値の状態を示すフラグを確認した結果、電源電圧値が実測値であれば、ＤＶＦＳ用テーブル１２から読み出したデータの動作周波数及び電源電圧値（実測値）を周波数設定レジスタ４５及び電圧値設定レジスタ４６に設定する（Ｓ３０３）。ＤＶＦＳテーブル設定動作制御部４１は、信号ｃｔｒを用いて、ＣＰＵコア１１に供給されるクロック信号ｃｌｋ−ｃ及び電源電圧ｖｄｄ−ｃの設定、及び正しく設定されたことの確認を行う。
【００５５】
そして、ＣＰＭ制御部４３は、信号ｃｐｍ＿ｃｔｒを介してＣＰＭ回路１３のキャリブレーションを行う。ＣＰＭ制御部４３は、例えば図９に示すようにＣＰＭ回路１３の変換部３６の出力値が変化しているエッジが中央になるように、ＣＰＭ回路１３のキャリブレーション値を変更する（Ｓ３０４）。
【００５６】
ＣＰＭ回路１３のキャリブレーションが完了すると、ＤＶＦＳテーブル設定動作制御部４１は、得られたキャリブレーション値を、ＤＶＦＳテーブル制御部４２を介してＤＶＦＳ用テーブル１２に書き込む（Ｓ３０５）。このとき、ＤＶＦＳテーブル設定動作制御部４１は、処理対象の実測値の動作周波数及び電源電圧値の組に加え、同じキャリブレーションのグループの動作周波数及び電源電圧値の組に対しても、同じキャリブレーション値を書き込む。また、ＤＶＦＳテーブル設定動作制御部４１は、処理対象の実測値の動作周波数及び電源電圧値の組における電源電圧値の状態を示すフラグをキャリブレーション済に設定する（Ｓ３０６）。
【００５７】
続いて、シーケンス制御部４４は、ＣＰＭ回路１３のキャリブレーションが必要な実測値の動作周波数及び電源電圧値の組がＤＶＦＳ用テーブル１２にあるか否かを判断する（Ｓ３０７）。シーケンス制御部４４は、ＤＶＦＳ用テーブル１２から読み出したデータを基に、ＣＰＭ回路１３のキャリブレーションを行っていない、すなわち電源電圧値の状態を示すフラグがキャリブレーション済となっていない実測値の動作周波数及び電源電圧値の組があるか否かを判断する。
【００５８】
判断の結果、ＣＰＭ回路１３のキャリブレーションが必要な実測値の動作周波数及び電源電圧値の組がある場合にはステップＳ３０３に戻って前述した動作を行う。一方、ＣＰＭ回路１３のキャリブレーションが必要な実測値の動作周波数及び電源電圧値の組がない場合には、ステップＳ３０８に進む。このようにして、ＣＰＭ回路１３のキャリブレーションを、ＤＶＦＳ用テーブル１２の動作周波数及び電源電圧値の各組について電源電圧値の状態を示すフラグを確認しながら行うことで、ＤＶＦＳ用テーブル１２の動作周波数及び電源電圧値のすべての組についてＣＰＭ回路１３のキャリブレーション値を設定することが可能である。
【００５９】
次に、シーケンス制御部４４は、ＤＶＦＳテーブル制御部４２を介してＤＶＦＳ用テーブル１２のデータを読み出し、読み出したデータの電源電圧値の状態を示すフラグを確認する（Ｓ３０８）。そして、シーケンス制御部４４は、ＤＶＦＳ用テーブル１２に、電源電圧値の状態を示すフラグがキャリブレーション済となっていないシミュレーション値の動作周波数及び電源電圧値の組があるか否かを判断する（Ｓ３０９）。
【００６０】
シーケンス制御部４４は、読み出したデータの電源電圧値の状態を示すフラグが、キャリブレーション済でないシミュレーション値であれば、その動作周波数及び電源電圧値（シミュレーション値）を周波数設定レジスタ４５及び電圧値設定レジスタ４６に設定する（Ｓ３１０）。ＤＶＦＳテーブル設定動作制御部４１は、信号ｃｔｒを用いて、ＣＰＵコア１１に供給されるクロック信号ｃｌｋ−ｃ及び電源電圧ｖｄｄ−ｃの設定、及び正しく設定されたことの確認を行う。
【００６１】
そして、ＣＰＭ制御部４３は、信号ｃｐｍ＿ｃｔｒを介してＣＰＭ回路１３を動作させる。このとき、ＤＶＦＳ用テーブル１２に設定済みのＣＰＭ回路１３のキャリブレーション値が適用される。ＤＶＦＳテーブル設定動作制御部４１のマージン確認部４７は、信号ｃｐｍ＿ｄｌｙにより設定した動作周波数に対するタイミングマージンを確認する（Ｓ３１１）。
【００６２】
次に、ＤＶＦＳテーブル設定動作制御部４１は、電源電圧値のキャリブレーションが必要であるか否かを判断する（Ｓ３１２）。ＤＶＦＳテーブル設定動作制御部４１は、確認されたタイミングマージンが予め定めた許容値を超えると電源電圧値のキャリブレーションが必要であると判断し、超えていなければ電源電圧値のキャリブレーションが必要ないと判断する。
【００６３】
判断の結果、電源電圧値のキャリブレーションが必要である場合には、ＤＶＦＳテーブル設定動作制御部４１の電圧値の増減制御部４８は、タイミングマージンが許容値以上であれば電源電圧値を下げ、タイミングマージンが許容値以下であれば電源電圧値を上げて、電圧値設定レジスタ４６に設定する。そして、タイミングマージンを再度確認することで、ＤＶＦＳテーブル設定動作制御部４１は、設定した動作周波数に対する電源電圧値の調整を行う（Ｓ３１３）。例えば図９に示すようにＣＰＭ回路１３の変換部３６の出力値が変化しているエッジが中央になるように、電源電圧値を変更する。
【００６４】
そして、許容値内にタイミングマージンが入ると、ＤＶＦＳテーブル設定動作制御部４１は、ＤＶＦＳテーブル制御部４２を介してＤＶＦＳ用テーブル１２に、電圧値設定レジスタ４６に設定されている電源電圧値を書き込むとともに、その電源電圧値の状態を示すフラグをキャリブレーション済に設定する（Ｓ３１４）。
【００６５】
このようにして、電源電圧値の状態を示すフラグがキャリブレーション済となっていないシミュレーション値の動作周波数及び電源電圧値の組がなくなるまで繰り返して、電源電圧値の調整を行い、ＤＶＦＳ用テーブル１２内のすべての組について動作周波数及び電源電圧値を設定する。そして、設定が完了すると、ＤＶＦＳテーブル設定動作制御部４１は、信号ｉｎｆｏによりＤＶＦＳ用テーブル１２のデータが確定されたことをＣＰＵコア１１に通知する。
【００６６】
なお、電源電圧値を調整する際に、電源電圧値を変化させてもタイミングマージンが許容値に入らない場合には、ＤＶＦＳテーブル設定動作制御部４１が、信号ｉｎｆｏによりＤＶＦＳ用テーブル１２の設定動作において不具合が発生したことをＣＰＵコア１１に通知するようにしても良い。また、この設定されたＤＶＦＳ用テーブル１２のデータを、不揮発性の記憶装置等に保持しておくことで、再度起動する際にＣＰＭ回路１３のキャリブレーションやＣＰＭ回路１３を利用した電源電圧値の調整に係る動作を省くことが可能である。
【００６７】
図１０Ａ〜図１０Ｅは、前述したＤＶＦＳ用テーブルの設定に係る動作によるＤＶＦＳ用テーブル１２のデータ変化の例を示す図である。ＤＶＦＳ用テーブル１２には、インデックスｉｎｄ（ｉｎｄは０、１、２、…、Ｍｉｄ−ｘ、…、Ｍｉｄ、…、Ｍａｘ−２、Ｍａｘ−１、Ｍａｘ）の各タップについての、動作周波数Ｆind、電源電圧値Ｖind＿ｓｉｍ、Ｖind＿ｔｓｔ、又はＶind＿ｃｐｍ、電源電圧値の状態、ＣＰＭ回路１３のキャリブレーションのグループ、キャリブレーション値が格納されている。
【００６８】
なお、図１０Ａ〜図１０Ｅにおいて、電源電圧値は、シミュレーション値をＶind＿ｓｉｍで示し、実測値をＶind＿ｔｓｔで示し、ＣＰＭ回路１３を利用して得られた補正値をＶind＿ｃｐｍで示す。また、図１０Ａ〜図１０Ｅに示す例において、ＣＰＭ回路１３のキャリブレーションのグループは、インデックスｉｎｄが０〜２の設定値は第０グループに属し、インデックスｉｎｄがＭｉｄ−ｘ〜Ｍｉｄの設定値は第２グループに属し、インデックスｉｎｄがＭａｘ−２〜Ｍｉｄの設定値は第３グループに属するものとする。
【００６９】
実際に試験を行って実測値を測定する前は、図１０Ａに示すように、動作周波数Ｆindに対する電源電圧値は、すべてシミュレーション値であるＶind＿ｓｉｍとなっており、電源電圧値の状態を示すフラグは、シミュレーション値であることを示す“００”となっている。実際に試験を行って実測値を測定すると、図１０Ｂに示すように、測定を行った動作周波数Ｆ0、Ｆmid、Ｆmaxのそれぞれに対する電源電圧値が、実測値であるＶ0＿ｔｓｔ、Ｖmid＿ｔｓｔ、Ｖmax＿ｔｓｔとなり、さらに図１０Ｃに示すように、電源電圧値の状態を示すフラグが、実測値であることを示す“１０”となる。
【００７０】
続いて、実測された動作周波数及び電源電圧値を用いて、装置の起動時にＣＰＭ回路１３のキャリブレーションを行うと、図１０Ｄに示すように、キャリブレーションを行った電源電圧値の状態を示すフラグが、キャリブレーション済であることを示す“１１”となる。また、同じキャリブレーションのグループに同じキャリブレーション値が書き込まれる。例えば、実測した動作周波数Ｆ0及び電源電圧値Ｖ0＿ｔｓｔに設定して行ったＣＰＭ回路１３のキャリブレーションにより得られたキャリブレーション値“ｚｚｚｚｚｚｚ”が第０グループのキャリブレーション値とされる。また、実測した動作周波数Ｆmid及び電源電圧値Ｖmid＿ｔｓｔに設定して得られたキャリブレーション値“ｙｙｙｙｙｙｙ”が第２グループのキャリブレーション値とされ、実測した動作周波数Ｆmax及び電源電圧値Ｖmax＿ｔｓｔに設定して得られたキャリブレーション値“ｘｘｘｘｘｘｘ”が第３グループのキャリブレーション値とされる。
【００７１】
そして、測定していない、シミュレーション値の動作周波数及び電源電圧値の組に対してＣＰＭ回路１３を利用した電源電圧値の調整を行うと、図１０Ｅに示すように、電源電圧値の調整を行った動作周波数Ｆ1、Ｆ2、Ｆmid-x、Ｆmax-2、Ｆmax-1等に対する電源電圧値が、補正値であるＶ1＿ｃｐｍ、Ｖ2＿ｃｐｍ、Ｖmid-x＿ｃｐｍ、Ｖmax-2＿ｃｐｍ、Ｖmax-1＿ｃｐｍとなり、電源電圧値の状態を示すフラグが、補正値（キャリブレーション済）であることを示す“０１”となる。
【００７２】
本実施形態によれば、ＤＶＦＳ用テーブル１２に、電源電圧値の状態を示す情報、及びＣＰＭ回路１３のキャリブレーションに係る情報を設定する。そして、ＤＶＦＳ制御で用いる複数の動作周波数及び電源電圧値の一部について、実際の試験を行って動作周波数に対する電源電圧値を測定し、測定していない動作周波数に対する電源電圧値は、起動時に処理することで、試験時間の増大を抑制することが可能になる。また、図１５に示すように、測定していない動作周波数に対する電源電圧値は、測定された動作周波数及び電源電圧値によりキャリブレーションされたＣＰＭ回路１３を利用して調整することで、プロセスばらつきに応じて最適化された電源電圧値を設定することが可能になり、電力性能を向上させることが可能となる。
【００７３】
図１５は、本実施形態における動作周波数に対する電源電圧値の設定例を示す図である。図１５において、横軸が動作周波数であり、縦軸が電圧値である。また、図１５において、動作周波数に対する電源電圧値Ｖ１０２、Ｖ１０４は、図１３Ａ及び図１３Ｂに示した動作周波数に対する電源電圧値Ｖ１０２、Ｖ１０４に対応する。図１５において、Ｃａｌ０、Ｃａｌ３、Ｃａｌ５は、実際に試験を行って測定された動作周波数Ｆ0、Ｆ3、Ｆ5に対する電源電圧値でＣＰＭ回路１３をキャリブレーションして得られたキャリブレーション値である。また、四角で示す印は、ＣＰＭ回路１３のキャリブレーション前におけるＣＰＭ回路１３の出力におけるエッジが中央となる電源電圧値を示す。
【００７４】
なお、前述した説明では、ＤＶＦＳ用テーブル１２の設定に係る動作は、制御回路１４が制御して行うようにしているが、これに限定されるものではない。制御回路１４内で値を保持するレジスタを配置し、設定に係る動作の制御は、ＣＰＵコア１１がメモリ１８等から読み出したプログラムを実行することで制御を行うようにしても良い。
【００７５】
なお、前述した実施形態では、演算処理装置としてのＣＰＵ１０において、１つのＣＰＭ回路１３を配置する例を示したが、図１１に示すように複数のＣＰＭ回路１３を配置するようにしても良い。例えば、複数のＣＰＵコア１１を搭載し、複数のＣＰＵコア１１共通でＤＶＦＳ制御を行う場合などが考えられる。図１１は、本実施形態における演算処理装置の他の構成例を示す図である。図１１には、ＤＶＦＳ用テーブル設定に係る構成例を図示している。図１１において、図１〜図５に示した構成要素と同一の機能を有する構成要素には同一の符号を付している。
【００７６】
図１１に示す例では、複数のＣＰＭ回路１３−１、１３−２、１３−３、…を有するが、ＤＶＦＳ用テーブル１２は１つとしている。そのため、ＣＰＭ制御部４３にワーストパス検出部５６を設け、ワーストパス検出部５６が、複数のＣＰＭ回路１３−１、１３−２、１３−３、…の内から最もタイミングマージンが劣るタイミングマージン情報、すなわちワーストパスのタイミングマージン情報を検出してマージン確認部４７に出力する。これにより、前述した実施形態と同様にＤＶＦＳ用テーブル１２の設定を行うことが可能である。
【００７７】
また、図１２に示すように、ＤＶＦＳ用テーブル１２、ＣＰＭ回路１３、及び制御回路１４の組を複数配置するようにしても良い。例えば、複数のＣＰＵコア１１を搭載し、ＣＰＵコア１１毎にＤＶＦＳ制御を行う場合などが考えられる。図１２は、本実施形態における演算処理装置の他の構成例を示す図である。図１２には、ＤＶＦＳ用テーブル設定に係る構成例を図示している。図１２において、図１〜図５に示した構成要素と同一の機能を有する構成要素には同一の符号を付している。
【００７８】
図１２に示した例では、ＤＶＦＳ用テーブル１２−１、ＣＰＭ回路１３−１、及び制御回路１４−１を組とし、ＤＶＦＳ用テーブル１２−２、ＣＰＭ回路１３−２、及び制御回路１４−２を組とし、ＤＶＦＳ用テーブル１２−３、ＣＰＭ回路１３−３、及び制御回路１４−３を組として、それぞれの組で前述したＤＶＦＳ用テーブルの設定の動作を独立して行えば良い。
【００７９】
なお、本実施形態は、例えばＣＰＵ（又はＭＰＵ）及びメモリ等を有する演算処理装置が、メモリ等に記憶されたプログラムを実行することで実現でき、前記プログラムは本発明の実施形態に含まれる。また、前記プログラムを記録した記録媒体は本発明の実施形態に含まれる。前記プログラムを記録する記録媒体としては、例えばＣＤ−ＲＯＭ、フレキシブルディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等を用いることができる。
【００８０】
また、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【産業上の利用可能性】
【００８１】
ＤＶＦＳ制御を行う演算処理装置にて、ＤＶＦＳ制御で用いる動作周波数及び電源電圧値を測定するための試験時間の増大を抑制することが可能になり、またプロセスばらつきに応じた最適な電源電圧値を設定してＤＶＦＳ制御を行うことが可能になる。
【図１】
2015008372.tif 000003
【図２】
2015008372.tif 000004
【図３】
2015008372.tif 000005
【図４】
2015008372.tif 000006
【図５】
2015008372.tif 000007
【図６】
2015008372.tif 000008
【図７】
2015008372.tif 000009
【図８】
2015008372.tif 000010
【図９】
2015008372.tif 000011
【図１０Ａ】
2015008372.tif 000012
【図１０Ｂ】
2015008372.tif 000013
【図１０Ｃ】
2015008372.tif 000014
【図１０Ｄ】
2015008372.tif 000015
【図１０Ｅ】
2015008372.tif 000016
【図１１】
2015008372.tif 000017
【図１２】
2015008372.tif 000018
【図１３Ａ】
2015008372.tif 000019
【図１３Ｂ】
2015008372.tif 000020
【図１４Ａ】
2015008372.tif 000021
【図１４Ｂ】
2015008372.tif 000022
【図１５】
2015008372.tif 000023
【手続補正書】
【提出日】平成27年8月25日(2015.8.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
動的電圧・周波数制御で用いる複数の動作周波数及び前記動作周波数に対する電源電圧値を設定するテーブルと、
電源電圧の変化に応じて遅延変化を検出するクリティカルパスモニタ回路と、
前記テーブル内の測定して得られた前記動作周波数及び前記電源電圧値に設定して前記クリティカルパスモニタ回路のキャリブレーションを行い、キャリブレーションされた前記クリティカルパスモニタ回路により前記テーブル内の測定していない前記動作周波数に対する前記電源電圧値の調整を行って、調整した前記電源電圧値を前記テーブルに設定する制御回路とを有することを特徴とする演算処理装置。
【請求項２】
前記テーブル内の前記動作周波数及び前記電源電圧値を、各々が測定して得られた前記動作周波数に対する前記電源電圧値及び測定していない前記動作周波数に対する前記電源電圧値の両方を含む複数のグループに分け、
前記制御回路は、測定していない前記動作周波数に対する前記電源電圧値の調整を、グループ内の測定して得られた前記動作周波数及び前記電源電圧値によってキャリブレーションされた前記クリティカルパスモニタ回路により行うことを特徴とする請求項１記載の演算処理装置。
【請求項３】
前記制御回路は、
前記テーブル内の測定して得られた前記動作周波数及び前記電源電圧値に設定したときの前記クリティカルパスモニタ回路での遅延に応じたマージン情報に基づいてタイミングマージンを判断する判断部と、
前記判断部での判断結果に基づいて前記クリティカルパスモニタ回路のキャリブレーションを行うキャリブレーション制御部とを有することを特徴とする請求項１記載の演算処理装置。
【請求項４】
前記制御回路は、
前記テーブル内の測定していない前記動作周波数及び前記電源電圧値に設定したときの前記クリティカルパスモニタ回路での遅延に応じたマージン情報に基づいてタイミングマージンを判断する判断部と、
前記判断部での判断結果に基づいて前記動作周波数に対する前記電源電圧値の増減を制御する増減制御部とを有することを特徴とする請求項１記載の演算処理装置。
【請求項５】
前記制御回路は、
前記クリティカルパスモニタ回路での遅延に応じたマージン情報に基づいてタイミングマージンを判断する判断部と、
前記テーブル内の測定して得られた前記動作周波数及び前記電源電圧値に設定したときの前記判断部での判断結果に基づいて前記クリティカルパスモニタ回路のキャリブレーションを行うキャリブレーション制御部と、
前記テーブル内の測定していない前記動作周波数及び前記電源電圧値に設定したときの前記判断部での判断結果に基づいて前記動作周波数に対する前記電源電圧値の増減を制御する増減制御部とを有することを特徴とする請求項１記載の演算処理装置。
【請求項６】
前記クリティカルパスモニタ回路を複数有し、
前記制御回路は、複数の前記クリティカルパスモニタ回路の内の１つの前記クリティカルパスモニタ回路を用いて、前記キャリブレーション及び前記電源電圧値の調整を行うことを特徴とする請求項１記載の演算処理装置。
【請求項７】
前記テーブル、前記クリティカルパスモニタ回路、及び前記制御回路の組を複数有することを特徴とする請求項１記載の演算処理装置。
【請求項８】
動的電圧・周波数制御で用いる複数の動作周波数及び前記動作周波数に対する電源電圧値を設定するテーブルと、電源電圧の変化に応じて遅延変化を検出するクリティカルパスモニタ回路とを有する演算処理装置の制御方法であって、
前記テーブル内の測定して得られた前記動作周波数及び前記電源電圧値に設定して前記クリティカルパスモニタ回路のキャリブレーションを行い、
キャリブレーションされた前記クリティカルパスモニタ回路により前記テーブル内の測定していない前記動作周波数に対する前記電源電圧値の調整を行い、
調整された前記電源電圧値を前記テーブルに設定することを特徴とする演算処理装置の制御方法。
【請求項９】
動的電圧・周波数制御で用いる複数の動作周波数及び前記動作周波数に対する電源電圧値を設定するテーブルと、電源電圧の変化に応じて遅延変化を検出するクリティカルパスモニタ回路とを有する演算処理装置に、
前記テーブル内の測定して得られた前記動作周波数及び前記電源電圧値に設定して前記クリティカルパスモニタ回路のキャリブレーションを行う処理と、
キャリブレーションされた前記クリティカルパスモニタ回路により前記テーブル内の測定していない前記動作周波数に対する前記電源電圧値の調整を行う処理と、
調整された前記電源電圧値を前記テーブルに設定する処理とを実行させるためのプログラム。
【手続補正書】
【提出日】平成28年10月3日(2016.10.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
動的電圧・周波数制御で用いる複数の動作周波数及び前記動作周波数に対する電源電圧値を設定するテーブルと、
電源電圧の変化に応じて遅延変化を検出するクリティカルパスモニタ回路と、
前記テーブル内の測定して得られた前記動作周波数及び前記電源電圧値での前記クリティカルパスモニタ回路のキャリブレーション処理を行い、前記キャリブレーション処理により得られた電源電圧値に係るキャリブレーション値を参照して前記テーブル内の測定していない前記動作周波数に対する前記電源電圧値の調整を前記クリティカルパスモニタ回路を用いて行い、調整した前記電源電圧値を前記テーブルに設定する制御回路とを有することを特徴とする演算処理装置。
【請求項２】
前記テーブル内の前記動作周波数及び前記電源電圧値を、各々が測定して得られた前記動作周波数に対する前記電源電圧値及び測定していない前記動作周波数に対する前記電源電圧値の両方を含む複数のグループに分け、
前記制御回路は、測定していない前記動作周波数に対する前記電源電圧値の調整を、グループ内の測定して得られた前記動作周波数及び前記電源電圧値での前記キャリブレーション処理により得られた電源電圧値に係るキャリブレーション値を参照して行うことを特徴とする請求項１記載の演算処理装置。
【請求項３】
前記制御回路は、
前記テーブル内の測定して得られた前記動作周波数及び前記電源電圧値に設定したときの前記クリティカルパスモニタ回路での遅延に応じたマージン情報に基づいて前記動作周波数に対するタイミングマージンが許容値を超えているか否かを判断する判断部と、
前記判断部での判断結果に基づいて前記クリティカルパスモニタ回路のキャリブレーション処理を行うキャリブレーション制御部とを有することを特徴とする請求項１記載の演算処理装置。
【請求項４】
前記制御回路は、
前記テーブル内の測定していない前記動作周波数及び前記電源電圧値に設定したときの前記クリティカルパスモニタ回路での遅延に応じたマージン情報に基づいて前記動作周波数に対するタイミングマージンが許容値を超えているか否かを判断する判断部と、
前記判断部での判断結果に基づいて前記動作周波数に対する前記電源電圧値の増減を制御する増減制御部とを有することを特徴とする請求項１記載の演算処理装置。
【請求項５】
前記制御回路は、
前記クリティカルパスモニタ回路での遅延に応じたマージン情報に基づいて前記動作周波数に対するタイミングマージンが許容値を超えているか否かを判断する判断部と、
前記テーブル内の測定して得られた前記動作周波数及び前記電源電圧値に設定したときの前記判断部での判断結果に基づいて前記クリティカルパスモニタ回路のキャリブレーション処理を行うキャリブレーション制御部と、
前記テーブル内の測定していない前記動作周波数及び前記電源電圧値に設定したときの前記判断部での判断結果に基づいて前記動作周波数に対する前記電源電圧値の増減を制御する増減制御部とを有することを特徴とする請求項１記載の演算処理装置。
【請求項６】
前記クリティカルパスモニタ回路を複数有し、
前記制御回路は、複数の前記クリティカルパスモニタ回路の内の１つの前記クリティカルパスモニタ回路を用いて、前記キャリブレーション処理及び前記電源電圧値の調整を行うことを特徴とする請求項１記載の演算処理装置。
【請求項７】
前記テーブル、前記クリティカルパスモニタ回路、及び前記制御回路の組を複数有することを特徴とする請求項１記載の演算処理装置。
【請求項８】
動的電圧・周波数制御で用いる複数の動作周波数及び前記動作周波数に対する電源電圧値を設定するテーブルと、電源電圧の変化に応じて遅延変化を検出するクリティカルパスモニタ回路とを有する演算処理装置の制御方法であって、
前記テーブル内の測定して得られた前記動作周波数及び前記電源電圧値での前記クリティカルパスモニタ回路のキャリブレーション処理を行い、
前記キャリブレーション処理により得られた電源電圧値に係るキャリブレーション値を参照して前記テーブル内の測定していない前記動作周波数に対する前記電源電圧値の調整を前記クリティカルパスモニタ回路を用いて行い、
調整された前記電源電圧値を前記テーブルに設定することを特徴とする演算処理装置の制御方法。
【請求項９】
動的電圧・周波数制御で用いる複数の動作周波数及び前記動作周波数に対する電源電圧値を設定するテーブルと、電源電圧の変化に応じて遅延変化を検出するクリティカルパスモニタ回路とを有する演算処理装置に、
前記テーブル内の測定して得られた前記動作周波数及び前記電源電圧値での前記クリティカルパスモニタ回路のキャリブレーション処理を実行させ、前記クリティカルパスモニタ回路の出力に基づいて電源電圧値に係るキャリブレーション値を求める処理と、
前記キャリブレーション処理により得られた電源電圧値に係るキャリブレーション値を適用して前記テーブル内の測定していない前記動作周波数及び前記電源電圧値で前記クリティカルパスモニタ回路を動作させ、前記クリティカルパスモニタ回路の出力に基づいて前記動作周波数に対する前記電源電圧値を調整する処理と、
調整された前記電源電圧値を前記テーブルに設定する処理とを実行させるためのプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
演算処理装置の一態様は、ＤＶＦＳ制御で用いる複数の動作周波数及び電源電圧値を設定するテーブルと、電源電圧の変化に応じて遅延変化を検出するクリティカルパスモニタ回路と、制御回路とを有する。制御回路は、テーブル内の測定して得られた動作周波数及び電源電圧値でのクリティカルパスモニタ回路のキャリブレーション処理を行い、キャリブレーション処理により得られた電源電圧値に係るキャリブレーション値を参照してテーブル内の測定していない動作周波数に対する電源電圧値の調整をクリティカルパスモニタ回路を用いて行い、調整した電源電圧値を前記テーブルに設定する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
ＤＶＦＳ制御で用いる複数の動作周波数及び電源電圧値の一部を試験により測定することで試験時間の増大を抑制することができ、測定された動作周波数及び電源電圧値でのキャリブレーション値を参照しクリティカルパスモニタ回路を用いて、測定していない動作周波数に対する電源電圧値を調整することでプロセスばらつきを考慮した電源電圧値を設定することができる。
【国際調査報告】
2015008372.tif 000024
2015008372.tif 000025
2015008372.tif 000026
2015008372.tif 000027