特許第6859695号(P6859695)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧
特許6859695情報処理装置、情報処理方法及び情報処理プログラム
<>
  • 特許6859695-情報処理装置、情報処理方法及び情報処理プログラム 図000002
  • 特許6859695-情報処理装置、情報処理方法及び情報処理プログラム 図000003
  • 特許6859695-情報処理装置、情報処理方法及び情報処理プログラム 図000004
  • 特許6859695-情報処理装置、情報処理方法及び情報処理プログラム 図000005
  • 特許6859695-情報処理装置、情報処理方法及び情報処理プログラム 図000006
  • 特許6859695-情報処理装置、情報処理方法及び情報処理プログラム 図000007
  • 特許6859695-情報処理装置、情報処理方法及び情報処理プログラム 図000008
  • 特許6859695-情報処理装置、情報処理方法及び情報処理プログラム 図000009
  • 特許6859695-情報処理装置、情報処理方法及び情報処理プログラム 図000010
  • 特許6859695-情報処理装置、情報処理方法及び情報処理プログラム 図000011
  • 特許6859695-情報処理装置、情報処理方法及び情報処理プログラム 図000012
  • 特許6859695-情報処理装置、情報処理方法及び情報処理プログラム 図000013
  • 特許6859695-情報処理装置、情報処理方法及び情報処理プログラム 図000014
  • 特許6859695-情報処理装置、情報処理方法及び情報処理プログラム 図000015
  • 特許6859695-情報処理装置、情報処理方法及び情報処理プログラム 図000016
  • 特許6859695-情報処理装置、情報処理方法及び情報処理プログラム 図000017
  • 特許6859695-情報処理装置、情報処理方法及び情報処理プログラム 図000018
  • 特許6859695-情報処理装置、情報処理方法及び情報処理プログラム 図000019
  • 特許6859695-情報処理装置、情報処理方法及び情報処理プログラム 図000020
  • 特許6859695-情報処理装置、情報処理方法及び情報処理プログラム 図000021
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6859695
(24)【登録日】2021年3月30日
(45)【発行日】2021年4月14日
(54)【発明の名称】情報処理装置、情報処理方法及び情報処理プログラム
(51)【国際特許分類】
   G06F 1/08 20060101AFI20210405BHJP
【FI】
   G06F1/08 520
【請求項の数】7
【全頁数】31
(21)【出願番号】特願2016-245901(P2016-245901)
(22)【出願日】2016年12月19日
(65)【公開番号】特開2018-101222(P2018-101222A)
(43)【公開日】2018年6月28日
【審査請求日】2019年9月10日
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】橋本 鉄太郎
【審査官】 白石 圭吾
(56)【参考文献】
【文献】 特開2014−010704(JP,A)
【文献】 特開2012−222192(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 1/04 − 1/14
(57)【特許請求の範囲】
【請求項1】
自装置内の経路を伝搬する信号の遅延素子における伝搬遅延差を用いて自装置の電源の電圧変動を測定する電圧変動検知部と、
入力された信号に応じた周期の発振信号を生成する発振器と、
前記発振信号を分周して分周信号を生成する分周器と、
前記分周信号と参照信号との位相差に応じた第1信号に、前記電圧変動検知部により測定された前記電圧変動に応じて前記発振器の発振周期を変更する第2信号を加えた信号を前記発振器に入力する加算器と、
前記電圧変動検知部の測定時間分解能を求め、前記発振器の周期変調時間分解能を前記電圧変動検知部の測定時間分解能に一致させる制御部と
を備えたことを特徴とする情報処理装置。
【請求項2】
前記発振器は、複数の駆動ゲートを含むリングオシレータを有し、
前記制御部は、前記駆動ゲートの駆動数を変更する制御信号を用いて前記発振器の前記周期変調時間分解能を前記電圧変動検知部の前記測定時間分解能に一致させる
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記電圧変動検知部は、前記遅延素子として基準電圧の場合の基準信号及び電圧変動が発生した場合の比較信号に順次遅延を加える複数の遅延回路を有し、各前記遅延回路により遅延が与えられた前記基準信号と遅延が与えられる前の前記比較信号との比較及び各前記遅延回路により遅延が与えられた前記比較信号と遅延が与えられる前の前記基準信号との比較により取得した伝搬遅延時間差を用いて前記電圧変動を測定し、
前記制御部は、前記遅延回路をリングオシレータ化させ、リングオシレータ化された前記遅延回路の発振周期を基に前記測定時間分解能を求める
ことを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記制御部は、前記周期変調時間分解能を最も細かい状態から粗くしていくことで、前記電圧変動検知部の前記測定時間分解能に一致させることを特徴とする請求項1〜3のいずれか一つに記載の情報処理装置。
【請求項5】
前記情報処理装置が実行するプロセスが予め決められた基準プロセスよりも早いか遅いかを検出する検出部をさらに備え、
前記制御部は、前記プロセスが前記基準プロセスよりも早い場合、前記周期変調時間分解能を最も細かい状態から粗くしていくことで、前記電圧変動検知部の前記測定時間分解能に一致させ、前記プロセスが前記基準プロセスよりも遅い場合、前記周期変調時間分解能を最も粗い状態から細かくしていくことで、前記電圧変動検知部の前記測定時間分解能に一致させる
ことを特徴とする請求項1〜3のいずれか一つに記載の情報処理装置。
【請求項6】
自装置内の経路を伝搬する信号の遅延素子における伝搬遅延差を用いて自装置の電源の電圧変動を測定する電圧変動検知回路の測定時間分解能を求め、
発振器の発振信号を分周した分周信号と参照信号との位相差に応じた第1信号に前記電圧変動に応じて発振周期を変更する第2信号を加えた信号に応じた周期の発振信号を生成する前記発振器の周期変調時間分解能を前記電圧変動検知回路の測定時間分解能に一致させる
ことを特徴とする情報処理方法。
【請求項7】
自装置内の経路を伝搬する信号の遅延素子における伝搬遅延差を用いて自装置の電源の電圧変動を測定する電圧変動検知回路の測定時間分解能を求め、
発振器の発振信号を分周した分周信号と参照信号との位相差に応じた第1信号に前記電圧変動に応じて発振周期を変更する第2信号を加えた信号に応じた周期の発振信号を生成する前記発振器の周期変調時間分解能を前記電圧変動検知回路の測定時間分解能に一致させる
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【0002】
プロセッサ等に用いられるLSI(Large Scale Integration)のデジタル回路は、クロック信号に同期して動作する。また、LSIは、プロセッサ電源から供給された電源電圧により駆動する。
【0003】
LSIに供給される電源電圧は、変動が生じることがある。例えば、クロックの遷移タイミングでの大電流消費により発生する電源ノイズの影響を受けて、電源配線及びで安定化容量などのインピーダンスにより定まる周波数帯域の電圧変化が電源電圧に発生する。
【0004】
電源電圧が低下した場合、LSI中の信号経路を伝搬する信号の速度が低下する場合がある。LSI中の信号経路には、1クロックのサイクル以内の信号の伝播が要求されるクリティカルパスが存在する。信号速度が低下すると、LSI中の信号経路の中で信号伝播のタイミング余裕が小さいクリティカルパスなどにおいて、遅延時間がクロックサイクル以上に延びてタイミングエラーが発生し、適切なデータ転送が行えないおそれがある。
【0005】
そのようなタイミングエラーを回避するために、プロセッサ等に用いられるLSIには、電源電圧の低下に応じて適応的に動作周波数を制御するLSIが存在する。具体的には、電圧変動を遅延変動に変換し、その遅延変動に対してTDC(Time-to-Digital Converter)を用いて時間差を測定し、その時間差分PLL(Phase Locked Loop)回路の発振周期を延ばす制御が行われる。
【0006】
また、タイミングエラーを回避する技術として、クロック生成回路に、制御回路のクリティカルパス回路と同一の構成を有する回路を用いることで、クリティカルパス回路とクロック生成回路の遅延量を合わせる従来技術がある。また、制御回路内の遅延時間を計測し、計測結果に合わせてクロック周波数を制御する従来技術がある。また、CPUの動作周波数と電源電圧値を設定するテーブルから取得した測定した測定した動作周波数に対応する電源電圧値を基に補正を加えたクリティカルパスモニタ回路を用いて測定していない動作周波数に対する電源電圧値の調整を行う従来技術がある。さらに、不揮発性メモリに対して生産試験中に性能のバラつきを提供化したチップ固有のデータを格納する従来技術がある。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2004−199133号公報
【特許文献2】特開平07−253824号公報
【特許文献3】国際公開第2015/008372号
【特許文献4】特表2010−511247号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、プロセス、電圧及び温度の3条件を表すPVT(Process Voltage Temperature)条件によって、TDCの測定時間分解能及びPLLのデジタル制御発振器(DCO:Digitally Controlled Oscillator)の周期変調時間分解能は変化する。ここで、TDCの測定時間分解能とDCOの周期変調時間分解能が等しくなるように設計した時のPVT条件を基準条件とする。プロセスが基準条件よりも遅い場合、TDCの測定時間分解能は基準条件の場合よりも大きくなり、DCOの周波数時間分解能は基準条件の場合よりも小さくなる。逆に、プロセスが基準条件よりも早い場合、TDCの測定時間分解能は基準条件の場合よりも小さくなり、DCOの周波数時間分解能は基準条件の場合よりも大きくなる。また、電圧が基準条件よりも高い場合、TDCの測定時間分解能は基準条件の場合よりも小さくなり、DCOの周波数時間分解能は基準条件の場合よりも大きくなる。逆に、電圧が基準条件よりも低い場合、TDCの測定時間分解能は基準条件の場合よりも大きくなり、DCOの周波数時間分解能は基準条件の場合よりも小さくなる。このように、プロセスと電圧のバラつきが与える遅延時間への変動は、TDCの測定時間分解能とDCOの周波数時間分解能とでは逆方向になる。そのため、PVT条件が変化は、適応的周波数制御の精度を低下させるおそれがある。
【0009】
また、クロック生成回路に制御回路のクリティカルパス回路と同一の構成を有する回路を用いる従来技術を用いても、TDCの測定時間分解能とDCOの周波数時間分解能の差は増大してしまい、適応的周波数制御の精度を向上させることは困難である。また、制御回路内の遅延時間の計測結果にしたがってクロック周波数を制御する従来技術では、プロセスのバラつきなどは考慮されておらず、適応的周波数制御の精度を向上させることは困難である。また、測定した動作周波数に対応する電源電圧値を基に補正を加えたクリティカルパスモニタ回路を用いて電源電圧値の調整を行う従来技術を用いても、TDCの測定時間分解能とDCOの周波数時間分解能の差は増大してしまい、適応的周波数制御の精度を向上させることは困難である。また、不揮発性メモリに対してチップ固有のデータを格納する従来技術は、CPUの性能調整に対応させることは難しく、適応的周波数制御の精度を向上させることは困難である。
【0010】
開示の技術は、上記に鑑みてなされたものであって、適応的周波数制御の精度を向上させる情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
本願の開示する情報処理装置、情報処理方法及び情報処理プログラムの一つの態様において、電圧変動検知部は、自装置内の経路を伝搬する信号の遅延素子における伝搬遅延差を用いて自装置の電源の電圧変動を測定する。発振器は、入力された信号に応じた周期の発振信号を生成する。分周器は、前記発振信号を分周して分周信号を生成する。加算器は、前記分周信号と参照信号との位相差に応じた第1信号に、前記電圧変動検知部により測定された前記電圧変動に応じて前記発振器の発振周期を変更する第2信号を加えた信号を前記発振器に入力する。制御部は、前記電圧変動検知部の測定時間分解能を求め、前記発振器の周期変調時間分解能を前記電圧変動検知部の測定時間分解能に一致させる。
【発明の効果】
【0012】
1つの側面では、本発明は、適応的周波数制御の精度を向上させることができる。
【図面の簡単な説明】
【0013】
図1図1は、実施例1に係るCPUのブロック図である。
図2図2は、DDMの概略図である。
図3図3は、疑似クリティカルパス回路の構成の一例を示す図である。
図4図4は、TDCの詳細を表す回路図である。
図5図5は、TDCにおける発振信号のカウントを説明するためのタイミングダイヤグラムである。
図6図6は、MASK回路13の一例を示す図である。
図7図7は、MASK回路14の一例を示す図である。
図8図8は、DCOの詳細を表す回路図である。
図9図9は、オンオフ回路の回路図である。
図10図10は、DCOにおける発振信号のカウントを説明するためのタイミングダイヤグラムである。
図11図11は、DCOの周期変調時間分解能がTDCの測定時間分解能より低い場合の時間分解能の調整を説明するための図である。
図12図12は、DCOの周期変調時間分解能がTDCの測定時間分解能より高い場合の時間分解能の調整を説明するための図である。
図13図13は、実施例1に係るDCO周期変調時間分解能キャリブレーションのフローチャートである。
図14図14は、TDCの測定時間分解能の取得処理のフローチャートである。
図15図15は、DCOの周期変調時間分解能とTDCの測定置時間分解能とを一致させる処理のフローチャートである。
図16図16は、プロセスのバラつき及び電圧の変化の時間分解能への影響を表す図である。
図17図17は、変形例に係るTDCの詳細を表す回路図である。
図18図18は、実施例2に係るCPUのブロック図である。
図19図19は、実施例2に係るDCOの周期変調時間分解能がTDCの測定時間分解能より高い場合の時間分解能の調整を説明するための図である。
図20図20は、実施例2に係るDCO周期変調時間分解能キャリブレーションのフローチャートである。
【発明を実施するための形態】
【0014】
以下に、本願の開示する情報処理装置、情報処理方法及び情報処理プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、情報処理方法及び情報処理プログラムが限定されるものではない。
【実施例1】
【0015】
図1は、実施例1に係るCPUのブロック図である。CPU1は、制御回路11、DDM(Data Delay Monitor)12、MASK回路13、MASK回路14、PLL回路15及び論理回路16を有する。
【0016】
プロセッサ電源2から供給される電源電圧VDDは論理回路16に供給される。また、プロセッサ電源2から供給される電源電圧VDDは、DDM12に印加される。
【0017】
論理回路16は、データパス回路160を複数有する。データパス回路160は、フリップフロップ161及び162、並びに、回路素子群163を含む。データパス回路160を含む論理回路16内の各回路素子は電源電圧VDDを電源として駆動される。また、フリップフロップ161及び162のクロック入力端子には、PLL回路15が生成するクロック信号が印加される。
【0018】
図2は、DDMの概略図である。図2に示すように、DDM12は、疑似クリティカルパス回路121及び122、インバータ123及び124、並びに、TDC200を有する。
【0019】
DDM12は、PLL回路15から出力されたクロック(CK)信号が入力される。また、DDM12は、制御回路11から出力された第1CEN(Counter Enable)信号及びREN(Ring Oscillator)信号が入力される。
【0020】
クロックは、CPU1の動作周波数であり、データパス回路160には、クロックの1サイクル(1クロック)の間にデータを通過させることが望まれるバスもある。第1CEN信号は、後述するTDC200が有するカウンタを動作させる信号である。REN信号は、TDC200内の回路をリングオシレータ化する信号である。
【0021】
疑似クリティカルパス回路121及び122は、例えば、図3のような構成を有する。図3は、疑似クリティカルパス回路の構成の一例を示す図である。疑似クリティカルパス回路121及び122は、同様の構成を有するため、図3では、疑似クリティカルパス回路121を例に記載した。図3に示すように、疑似クリティカルパス回路121は、複数偶数個のインバータ125が縦列接続されることにより、所望の遅延時間を実現する。疑似クリティカルパス回路121は、例えば、データパス30の中の信号伝搬のタイミング余裕が小さいクリティカルパスの内の信号の伝搬速度が一番遅いものを再現して設計される。
【0022】
疑似クリティカルパス回路121は、プロセッサ電源2から供給される電源電圧VDDが印加される。プロセッサ電源2は、システム基板上のDC(Direct Current)−DCコンバータのような電源回路から供給される。疑似クリティカルパス回路121は、実際にデータパス回路160が動作する場合に用いる電源電圧VDDにより動作する。
【0023】
疑似クリティカルパス回路121は、PLL回路15から出力されたクロック信号が入力される。そして、疑似クリティカルパス回路121は、入力されたクロック信号を自己が有するインバータ125を経由させた後に、インバータ123及びTDC200へ出力する。
【0024】
疑似クリティカルパス回路121は電源電圧VDDで動作するので、疑似クリティカルパス回路121から出力されるクロック信号には、実際のデータパス回路160で発生する遅延と同様の遅延がクロック信号に与えられる。ここでは、疑似クリティカルパス回路121から出力されるクロック信号を、比較(CMP:Compare)クロック信号という。図2では、比較クロック信号を「CMP」と表す。
【0025】
疑似クリティカルパス回路122は、基準電圧VREFが印加される。ここで基準電圧VREFは、電源電圧VDDとは別個に外部から供給される電源電圧であり、図1に示すDDM12以外の回路部分で使用されることはなく、雑音の混じっていない、変動のない、一定電圧に維持される電圧である。すなわち、疑似クリティカルパス回路122は、設計時に決められた所定電圧により動作する。
【0026】
疑似クリティカルパス回路122は、PLL回路15から出力されたクロック信号が入力される。そして、疑似クリティカルパス回路122は、入力されたクロック信号を自己が有するインバータ125を経由させた後に、インバータ124及びTDC200へ出力する。
【0027】
疑似クリティカルパス回路122は基準電圧VREFで動作するので、疑似クリティカルパス回路122から出力されるクロック信号には、設計時の所望の電圧でデータパス回路160が動作した場合の遅延がクロック信号に与えられる。ここでは、疑似クリティカルパス回路122から出力されるクロック信号を、参照(REF:Reference)クロック信号という。図2では、参照クロック信号を「REF」と表す。
【0028】
インバータ123は、比較クロック信号の入力を疑似クリティカルパス回路121から受ける。そして、インバータ123は、比較クロック信号を反転させた反転比較クロック信号をTDC200へ出力する。図2では、反転比較クロック信号を「CMP#」と表す。
【0029】
インバータ124は、参照クロック信号の入力を疑似クリティカルパス回路122から受ける。そして、インバータ124は、参照クロック信号を反転させた反転参照クロック信号をTDC200へ出力する。図2では、反転参照クロック信号を「REF#」と表す。
【0030】
図4は、TDCの詳細を表す回路図である。このTDC200が、「電圧変動検知部」の一例にあたる。TDC200は、疑似クリティカルパス回路121から出力された比較クロック信号及び反転比較クロック信号が入力される経路を有する。比較クロック信号及び反転比較クロック信号が入力される経路は、2つに分岐され一方は遅延回路211〜216を経由し、他方は遅延回路241を経由する。
【0031】
また、TDC200は、疑似クリティカルパス回路122から出力された参照クロック信号及び反転参照クロック信号が入力される経路を有する。参照クロック信号及び反転参照クロック信号が入力される経路は、2つに分岐され一方は遅延回路201及び202を経由し、他方は遅延回路231〜236を経由する。
【0032】
遅延回路201及び202は、入力された参照クロック信号及び反転比較クロック信号に所定の遅延を与え、反転して出力する。すなわち、遅延回路202は、疑似クリティカルパス回路122から出力された信号と同じ値を有する参照クロック信号及び参照比較クロック信号を出力する。
【0033】
遅延回路212〜215は、偶数個配置される。遅延回路211〜216は、入力された比較クロック信号及び反転比較クロック信号に所定の遅延を与え、反転して出力する。すなわち、遅延回路211〜216の内の先頭から奇数番目の回路は、入力された信号と反対の値を有する比較クロック信号及び反転比較クロック信号を出力する。また、遅延回路211〜216の内の先頭から偶数番目の回路は、入力された信号と同じ値を有する比較クロック信号及び反転比較クロック信号を出力する。遅延回路215は、奇数番目の回路なので入力された信号と反対の値を有する比較クロック信号及び反転比較クロック信号を出力する。また、遅延回路216は、偶数番目の回路なので入力された信号と同じ値を有する比較クロック信号及び反転比較クロック信号を出力する。
【0034】
遅延回路232〜235は、偶数個配置される。遅延回路231〜236は、入力された参照クロック信号及び反転参照クロック信号に所定の遅延を与え、反転して出力する。すなわち、遅延回路231〜236の内の先頭から奇数番目の回路は、入力された信号と反対の値を有する参照クロック信号及び反転参照クロック信号を出力する。また、遅延回路231〜236の内の先頭から偶数番目の回路は、入力された信号と同じ値を有する参照クロック信号及び反転参照クロック信号を出力する。遅延回路235は、奇数番目の回路なので入力された信号と反対の値を有する参照クロック信号及び反転参照クロック信号を出力する。また、遅延回路236は、偶数番目の回路なので入力された信号と同じ値を有する参照クロック信号及び反転参照クロック信号を出力する。
【0035】
遅延回路241は、入力された比較クロック信号及び反転比較クロック信号に所定の遅延を与え、反転して出力する。すなわち、遅延回路241は、入力された信号と反対の値を有する比較クロック信号及び反転比較クロック信号を出力する。
【0036】
また、遅延回路211及び216は、REN信号の入力を制御回路11から受ける。遅延回路211は、REN信号が0の場合、通常のインピーダンスの出力を行う。これに対して、REN信号が1の場合、遅延回路211は、ハイインピーダンスの出力を行い、遅延回路211から遅延回路212への信号の入力は遮断される。一方、遅延回路216は、REN信号が0の場合、ハイインピーダンスの出力を行う。この場合、遅延回路216から遅延回路212への経路はハイインピーダンスとなり、遅延回路216から遅延回路212への信号の送信は遮断される。これに対して、REN信号が1の場合、遅延回路216から出力された信号は、遅延回路212へ入力される。遅延回路212〜216は、奇数個であるため、リングオシレータ化し発振する。すなわち、遅延回路216は、一定の発振周期を有する信号をカウンタ261へ出力する。以下では、遅延回路212〜216がリングオシレータ化した状態で、遅延回路216が出力する信号を「第1OSC(Oscillator)信号」とする。
【0037】
また、遅延回路231及び236も同様に、REN信号の入力を制御回路11から受ける。遅延回路231は、REN信号が0の場合、通常のインピーダンスの出力を行う。これに対して、REN信号が1の場合、遅延回路231は、ハイインピーダンスの出力を行い、遅延回路231から遅延回路232への信号の入力は遮断される。一方、遅延回路236は、REN信号が0の場合、ハイインピーダンスの出力を行う。この場合、遅延回路236から遅延回路232への経路はハイインピーダンスとなり、遅延回路236から遅延回路232への信号の送信は遮断される。これに対して、REN信号が1の場合、遅延回路236から出力された信号は、遅延回路232へ入力される。遅延回路232〜236は、奇数個であるため、リングオシレータ化し発振する。すなわち、遅延回路236は、一定の発振周期を有する信号をカウンタ262へ出力する。以下では、遅延回路232〜236がリングオシレータ化した状態で、遅延回路236が出力する信号を「第2OSC信号」とする。
【0038】
カウンタ261は、遅延回路212〜216がリングオシレータ化した状態で、遅延回路216から第1OSC信号の入力を受ける。また、カウンタ261は、第1CEN信号の入力を制御回路11から受ける。CEN信号が0の場合、カウンタ261は、動作を停止する。CEN信号が0の場合、カウンタ261は、第1OSC信号をクロックとしてカウントを行う。そして、CEN信号が0から1に変化すると、カウンタ261は、カウント値を平均化回路270へ出力する。
【0039】
カウンタ262は、遅延回路232〜236がリングオシレータ化した状態で、遅延回路236から第2OSC信号の入力を受ける。また、カウンタ262は、第1CEN信号の入力を制御回路11から受ける。CEN信号が0の場合、カウンタ262は、動作を停止する。CEN信号が0の場合、カウンタ262は、第2OSC信号をクロックとしてカウントを行う。そして、CEN信号が0から1に変化すると、カウンタ262は、カウント値を平均化回路270へ出力する。
【0040】
図5は、TDCにおける発振信号のカウントを説明するためのタイミングダイヤグラムである。グラフ401は、REN信号を示すグラフである。グラフ402は、第1OSC信号を示すグラフである。グラフ403は、第2OSC信号を示すグラフである。グラフ404は、第1CEN信号を示すグラフである。グラフ405は、カウンタ261のカウント値であるCNT(Count)#1を示すグラフである。グラフ406は、カウンタ262のカウント値であるCNT#2を示すグラフである。
【0041】
グラフ401でREN信号がHighになっている間に、グラフ402に示すように遅延回路216は第1OSC信号を出力し、グラフ403に示すように遅延回路236は第2OSC信号を出力する。そして、第1OSC信号及び第2OSC信号の出力が開始された後に、グラフ404に示すように、第1CEN信号がHighとなり、カウンタ261及び262はカウントを開始する。そして、期間TCEN1経過後、第1CEN信号はLowに変化し、カウンタ261及び262はカウントを停止し、その状態でのCNT#1及びCNT#2の値を保持する。この場合、グラフ405及び406は、期間TCEN1の間に、カウンタ261及び262ともに、N個のクロックをカウントする。
【0042】
図4に戻って説明を続ける。平均化回路270は、カウント値の入力をカウンタ261から受ける。また、平均化回路270は、カウント値の入力をカウンタ262から受ける。そして、平均化回路270は、それぞれのカウント値の平均を算出し、算出した値を第1カウント値として制御回路11へ出力する。図4では、平均化回路270が出力するカウント値を第1CNTとして表す。
【0043】
PC(Phase Comparator:比較回路)221〜224は、疑似クリティカルパス回路122から出力された信号と同じ値を有する参照クロック信号が入力される。また、PC221〜224の内の先頭から奇数番目の回路は、遅延回路212〜215の内の奇数番目の回路から、疑似クリティカルパス回路121から出力された信号と同じ値を有する比較クロック信号の入力を受ける。また、PC221〜224の内の先頭から偶数番目の回路は、遅延回路212〜215の内の偶数番目の回路から、インバータ123から出力された信号と反対の値を有する反転比較クロック信号の入力を受ける。
【0044】
PC221〜224の内の先頭から奇数番目の回路は、比較クロック信号と参照クロック信号との立上りの位相を比較し、比較クロックが進んでいると1を出力し、遅れていると0を出力する。また、PC221〜224の内の先頭から偶数番目の回路は、参照クロック信号と反転させられた比較参照クロック信号との立上りの位相を比較し、比較クロックが進んでいると1を出力し、遅れていると0を出力する。すなわち、比較クロック信号が参照クロック信号と同じか又は進んでいる場合、PC221〜224は、全て0を出力する。また、比較クロック信号が参照クロック信号より遅れている場合、PC221〜224の内のタイミングが一致する遅延が比較クロック信号又は反転比較クロック信号に与えられる回路以降の回路は0を出力し、それ以前の回路は1を出力する。すなわち、PC221〜224は、比較クロック信号が参照クロック信号に対して進んでいる分だけ1を出力する。
【0045】
例えば、比較クロック信号と参照クロックとの遅延差が、遅延回路212〜215の2つ分と3つ分の間に相当する場合、PC221及び222が1を出力し、PC223〜224が0を出力する。このように、1の数で比較クロック信号が参照クロック信号に対してどの程度進んでいるかが表される。疑似クリティカルパス回路121の回路遅延が、疑似クリティカルパス回路122の回路遅延よりも短い場合、比較クロック信号が参照クロック信号に対して進む。そこで、PC221〜224が出力する1の数で、疑似クリティカルパス回路121の回路遅延が、疑似クリティカルパス回路122の回路遅延よりもどのくらい短いのか表される。
【0046】
PC251〜254は、疑似クリティカルパス回路121から出力された信号と反対の値を有する比較クロック信号が入力される。また、PC251〜254の内の先頭から奇数番目の回路は、遅延回路232〜235の内の奇数番目の回路から、疑似クリティカルパス回路122から出力された信号と同じ値を有する参照クロック信号の入力を受ける。また、PC251〜254の内の先頭から偶数番目の回路は、遅延回路232〜235の内の偶数番目の回路から、インバータ124から出力された信号と反対の値を有する反転参照クロック信号の入力を受ける。
【0047】
PC251〜254の内の先頭から奇数番目の回路は、参照クロック信号と反転させられた比較クロック信号との立上りの位相を比較し、比較クロックが遅れていると1を出力し、進んでいると0を出力する。また、PC251〜254の内の先頭から偶数番目の回路は、反転させられた反転参照クロック信号と反転させられた比較クロック信号との立上りの位相を比較し、比較クロックが遅れていると1を出力し、進んでいると0を出力する。すなわち、比較クロック信号の位相がと参照クロックの位相と同じか又は進んでいる場合、PC251〜254は、全て1を出力する。また、比較クロック信号の位相が参照クロック信号の位相より進んでいる場合、PC251〜254の内のタイミングが一致する遅延が参照クロック信号又は反転参照クロック信号に与えられる回路以降の回路は0を出力し、それ以前の回路は1を出力する。すなわち、PC251〜254は、比較クロック信号が参照クロック信号に対して遅れている分だけ1を出力する。
【0048】
例えば、比較クロック信号と参照クロック信号との遅延差が遅延回路232〜235の2つ分と3つ分の間に相当する場合、PC251及び252が1を出力し、PC253〜254が0を出力する。このように、0の数で比較クロックが参照クロックに対してどの程度遅れているかが表される。疑似クリティカルパス回路121の回路遅延が、疑似クリティカルパス回路122の回路遅延よりも長い場合、比較クロック信号が参照クロック信号に対して遅れる。そこで、PC251〜254が出力する0の数で、疑似クリティカルパス回路121の回路遅延が、疑似クリティカルパス回路122の回路遅延よりもどの程度長いのか表される。
【0049】
TDC200は、PC221〜224から出力されたデータを順番に並べて下位ビットとし、PC251〜254から出力されたデータを順番に並べて上位ビットとした信号を回路遅延測定値QとしてMASK回路13及び制御回路11へ出力する。例えば、PC221〜224をn個とし、PC251〜254をn個とした場合、TDC200は、2nビットの回路遅延測定値Qを出力する。その場合、2nビットの回路遅延測定値QをQ[2n−1:0]とすると、Q[2n−1:n]が、PC221〜224から出力されたデータを順番に並べた値を有し、Q[n−1:]が、PC251〜254から出力されたデータを順番に並べた値を有する。図4では、Q[2n−1:0]のビット位置に合わせて、PC221〜224が出力するデータをそれぞれQ[n]〜[2n−1]であり、PC251〜254が出力するデータをそれぞれQ[n−1]〜[0]である。
【0050】
疑似クリティカルパス回路121の回路遅延が、疑似クリティカルパス回路122の回路遅延が等しい場合、Q[2n−1:0]の上位nビットが0になり、下位nビットが1になる。この値を有するQ[2n−1:0]を、{n’b00・・・00,n’b11・・・11}={n(1’b0),n(1’b)と表記する。nが例えば、8の場合、疑似クリティカルパス回路122の回路遅延が等しければ、Q[16:0]は、“0000000011111111”となる。また、比較クロック信号が参照信号に対して、所定の遅延の2倍と3倍との間に相当する遅延差で遅れている場合、Q[16:0]は、“0000000000111111”となる。逆に、比較クロック信号が参照信号に対して、所定の遅延の2倍と3倍との間に相当する遅延差で進んでいる場合、Q[16:0]は、“0000001111111111”となる。
【0051】
図1に戻って説明を続ける。MASK回路13及び14は、DDM12から出力された回路遅延測定値Qの所定のビットを特定の値に固定するための回路である。以下に、図6及び7を参照して、MASK回路13及び14の詳細について説明する。
【0052】
図6は、MASK回路13の一例を示す図である。MASK回路13は、OR回路131〜135を有する。OR回路131〜135は、TDC200が出力する回路遅延測定値Qのビット数と同じ数が配置される。そして、OR回路131〜135には、それぞれ回路遅延測定値Qの各ビットの値が入力される。すなわち、PC221〜224及び251〜254がそれぞれn個ずつの場合、OR回路131〜135は、2n個であり、回路遅延測定値Q[0]〜[2n−1]がそれぞれに入力される。
【0053】
また、OR回路131〜135は、それぞれ1ビットの第1マスク信号の入力を制御回路11から受ける。ここでは、OR回路131〜135が2n個の場合で説明する。そして、OR回路131〜135に入力される第1マスク信号の値は、それぞれM1[0]〜[2n−1]である。ここで、第1マスク信号M1[0]〜[2n−1]をまとめた信号を第1マスク信号M1とし、各ビットを表す場合にはM1[2n−1:0]と表記する。
【0054】
OR回路131〜135は、回路遅延測定値Qと第1マスク信号M1との論理和をMASK回路14へ出力する。ここでは、OR回路131〜135のそれぞれが出力する値をA[0]〜[2n−1]と表す。第1マスク信号M1の値が1の場合、OR回路131〜135から出力される値は1に固定される。これに対して、第1マスク信号M1の値が0の場合、OR回路131〜135から出力される値は固定遅延測定値の値となる。すなわち、MASK回路13は、回路遅延測定値Qの各ビットを、対応する第1マスク信号M1の値が1であれば、1に固定するようにマスクする。
【0055】
図7は、MASK回路14の一例を示す図である。MASK回路14は、AND回路141〜145を有する。AND回路141〜145は、MASK回路13のOR回路131〜135と同数が配置される。そして、AND回路141〜145には、それぞれMASK回路13のOR回路131〜135から出力された信号が入力される。すなわち、PC221〜224及び251〜254がそれぞれn個ずつの場合、AND回路141〜145は、2n個であり、A[0]〜[2n−1]がそれぞれに入力される。
【0056】
また、AND回路141〜145は、それぞれ1ビットの第2マスク信号の入力を制御回路11から受ける。ここでは、AND回路141〜145が2n個の場合で説明する。そして、AND回路141〜145に入力される第2マスク信号の値は、それぞれM2[0]〜[2n−1]である。ここで、M2[0]〜[2n−1]をまとめた信号を第2マスク信号M2とし、各ビットを表す場合はM2[2n−1:0]と表記する。
【0057】
AND回路141〜145は、OR回路131〜135から出力された信号と第2マスク信号M2との論理積をPLL回路15へ出力する。ここでは、AND回路141〜145のそれぞれが出力する値をX[0]〜[2n−1]と表す。第2マスク信号M2の値が0の場合、AND回路141〜145から出力される値は0に固定される。これに対して、第2マスク信号M2の値が1の場合、AND回路141〜145から出力される値はOR回路131〜135から出力された信号の値となる。すなわち、MASK回路13は、OR回路131〜135から出力された信号を、対応する第2マスク信号M2の値が0であれば、0に固定するようにマスクする。
【0058】
図1に戻って説明を続ける。PLL回路15は、位相比較器151、ループフィルタ152、正規化部153、加算器154、デジタル制御発振器(DCO)155及び分周器156を有する。
【0059】
位相比較器151は、外部のクロック生成装置3から出力された参照信号の入力を受ける。また、位相比較器151は、後述する分周器156から出力される分周信号の入力を受ける。そして、位相比較器151は、分周信号と参照信号との位相差に応じた位相検出信号を生成する。位相検出信号は、分周信号の位相が参照信号の位相より遅い場合には例えばマイナス値(或いは所定の基準値より小さい値)となり、分周信号の位相が参照信号の位相より早い場合には例えばプラス値(或いは所定の基準値より大きい値)となってよい。また位相検出信号は、その値の大きさ(或いは所定の基準値からの差の大きさ)が、分周信号の位相と参照信号の位相との差に応じたものであってよい。位相検出信号は、例えば、各ビットが0又は1の値をとる複数ビットで表現されたデジタルコードであってよい。
【0060】
ループフィルタ152は、位相比較器151から出力される位相検出信号の低周波成分を通過させ高周波成分を遮断又は抑制する低域通過フィルタであり、例えばデジタルフィルタにより実現されてよい。ループフィルタ152は、位相比較器151から出力された位相検出信号を低域通過フィルタ処理することにより、一時的な細かい変動に影響されずにある程度長い期間に亘る位相差の傾向を示す位相差情報を生成し、生成した位相差情報を正規化部153に供給する。位相差情報は、例えば、各ビットが0又は1の値をとる複数ビットで表現されたデジタルコードであってよい。
【0061】
正規化部153は、位相差情報の入力をループフィルタ152から受ける。正規化部153は、供給された位相差情報に所定の係数を乗算することにより、DCO155の入力信号として適切な値を有する位相差コードを生成する。DCO155において、入力信号のLSB(Least Significant Bit)の1ビット変化に対する発振周波数の変化の大きさ(感度)は、発振周波数によって異なる。正規化部153により、DCO155の発振周波数に応じた感度の違いを相殺するような係数を位相差情報に乗算することで、DCO155の感度の周波数依存の影響をなくすことができる。DCO155の感度の周波数依存の影響を無視してよい場合には、正規化部153は設けなくともよい。正規化部153により生成された位相差コードは、加算器154に供給される。位相差コードは、例えば、各ビットが0又は1の値をとる複数ビットで表現されたデジタルコードであってよい。
【0062】
加算器154は、分周信号と参照信号との位相差に応じた信号である位相差コードの入力を正規化部153から受ける。さらに、加算器154は、回路遅延測定値Qに対してMASK回路13及び14によりマスクが行われた信号を検出信号としてMASK回路14から取得する。検出信号は、回路遅延測定値Qがマスクされた信号であり、同じビット数を有するので、以下では、回路遅延測定値Qと同様に、Q[2n−1:0]と表し、個々のビットをQ[0]〜[2n−1]と表す。
【0063】
さらに、加算器154は、オンする駆動ゲートの数を調整するための制御信号CS(Control Signal)の入力を制御回路11から受ける。この制御信号CSは、例えば、検出信号のビット数と同じ数だけ存在する。例えば、検出信号が2nビットの場合、加算器154は、2n個の制御信号CSの入力を受ける。さらに、制御信号CSのビット数は、そのビット数と検出信号のビット数とを乗算した場合にDCO155が有するオンオフ可能な駆動ゲート数以下となる値である。以下では、制御信号CSのビット数をhとし検出信号のビット数を2nとした場合の制御信号CSを、制御信号CS[h−1:0]〜CS2n−1[h−1:0]と表す。
【0064】
そして、加算器154は、検出信号Q[1]〜[2n−1]と制御信号CS[h−1:0]〜CS2n−1[h−1:0]とを1つずつ対応させて組を作る。さらに、加算器154は、作成した検出信号及び制御信号を組とした信号及び位相コードをDCO155に入力信号として供給する。加算器154により位相差コードと加算される信号は、MASK回路14の出力である検出信号そのものであってもよいし、DCO155の入力として適切なサイズとなるよう検出信号を定数倍して正規化した信号であってもよい。
【0065】
DCO155は、検出信Q号及び制御信号CSが組とされた信号の入力を加算器154から受ける。そして、DCO155は、入力信号に応じた周期(又は周波数)の発振信号を生成する。DCO155の発振する発振信号は分周器156に供給される。このDCO155が、「発振器」の一例にあたる。
【0066】
また、DCO155が発振する発振信号は、クロック信号として論理回路16に供給される。例えば、DCO155への入力信号の値が増加すると、DCO155の発振信号の周期の長さが増加する。逆に、DCO155の入力信号の値が減少すると、DCO155の発振信号の周期の長さが減少する。この場合、電源電圧VDDが下降するとDDM12の出力信号である回路遅延測定値Qを用いた検出信号Qの値が大きくなる。逆に、電源電圧VDDが上昇するとDDM12の出力信号である回路遅延測定値Qを用いたMASK回路14から入力される検出信号の値が小さくなる。仮にDCO155の入力信号の値の増減とDCO155の発振信号の周期の長さの増減との関係が上記とは逆であれば、電源電圧VDDの下降に応答して、MASK回路14から入力される検出信号の値が大きくなってよい。
【0067】
ただし、DCO155は、PLL回路15におけるクロックの同期が完了すると、一旦、制御回路11により適応的周波数制御を停止される。その後、制御回路11により、TDC200の測定時間分解能とDCO155の周期変調時間分解能を一致させるためにオンする駆動ゲートの数を調整する制御信号CSの決定が行われる。この制御信号CSは、駆動ゲートの駆動数を変更する制御信号である。その後、決定された制御信号CSが制御回路11から出力され、DCO155は、その制御信号CSを用いて、適応的周波数制御を行い、入力信号に応じた周期数の発振信号が生成し出力する。
【0068】
ここで、図8を参照して、DCO155の駆動ゲートのオンオフの処理の詳細について説明する。図8は、DCOの詳細を表す回路図である。
【0069】
DCO155は、オシレータを構成する駆動ゲート301及び302を有する。駆動ゲート301は、値が1の信号FCが入力され、常にオンの状態である。これに対して、駆動ゲート302は、入力される信号の値が1又は0であり、信号の値が1の場合はオンとなり、信号の値が0の場合はオフとなる。すなわち、駆動ゲート301は、常にオシレータとして使用されるが、駆動ゲート302はオシレータに使用されない物が存在し、その数により発振周波数が調整される。
【0070】
さらに、DCO155は、オンオフ制御回路311〜316を有する。オンオフ制御回路311〜316は、検出信号のビット数と同数が配置される。例えば、検出信号のビット数が2nビットであれば、オンオフ制御回路311〜316は、2n個配置される。
【0071】
2n個のオンオフ制御回路311〜316は、それぞれ検出信号の各ビットの値であるQ[0]〜[2n−1]の入力を受ける。また、オンオフ制御回路311〜316は、それぞれ入力された検出信号のビットに対応する制御信号CS[h−1:0]〜CS2n−1[h−1:0]の入力を受ける。以下では、オンオフ制御回路311〜316を区別せずに、「オンオフ回路310」とし、入力された2つの信号をそれぞれ検出信号Q及び制御信号CS[h−1:0]として説明する。検出信号Qは、Q[0]〜[2n−1]の何れかである。また、制御信号CS[h−1:0]は、CS[h−1:0]〜CS2n−1[h−1:0]の何れかである。
【0072】
図9は、オンオフ回路の回路図である。オンオフ回路310は、OR回路321〜325を有する。OR回路321〜325は、制御信号CSのビット数と同数が配置される。ここでは、制御信号CSのビット数をhとした場合で説明する。OR回路321〜325は、それぞれ、検出信号Qが入力される。さらに、OR回路321〜325は、それぞれ、制御信号CS[h−1:0]の各ビットの値である制御信号CS[0]〜CS[h−1]が入力される。そして、OR回路321〜325は、それぞれに入力された信号の論理和を求め、算出結果を出力する。ここでは、OR回路321〜325のそれぞれが出力する信号をOUT[0]〜OUT[h−1]と表す。
【0073】
回路遅延測定値Qのビットの値が1であれば、制御信号CS[0]〜CS[h−1]の値に関わらず、OR回路321〜325は、値が1の信号を出力する。これに対して、回路遅延測定値Qのビットの値が0の場合、OR回路321〜325は、制御信号CS[0]〜CS[h−1]の値が0であれば0を出力し、制御信号CS[0]〜CS[h−1]の値が1であれば1を出力する。そして、オンオフ制御回路311〜316から出力された1の値を有する信号の数の駆動ゲート302がオンされ、オンオフ制御回路311〜316から出力された0の値を有する信号の数の駆動ゲート302がオフされる。
【0074】
カウンタ320は、第2CEN信号の入力を制御回路11から受ける。第2CEN信号の値が0の場合、カウンタ320はカウントを停止する。そして、第2CEN信号の値が0から1に変わると、カウンタ320は、いったん0にリセットされる。そして、カウンタ320は、駆動ゲート301及び302で形成されるオシレータから出力される発振信号をクロックとしてカウントを行う。その後、第2CEN信号の値が1から0に変わると、カウンタ320は、カウントを停止し、その時点でのカウント値を保持し第2CNTとして制御回路11へ出力する。
【0075】
図10は、DCOにおける発振信号のカウントを説明するためのタイミングダイヤグラムである。グラフ411は、駆動ゲート301及び302で形成されるオシレータから出力される発振信号であるDCOOSC信号を示すグラフである。グラフ412は、第2CEN信号を示すグラフである。グラフ413は、カウンタ320のカウント値である第2CNTを示すグラフである。
【0076】
グラフ411に示すように、駆動ゲート301及び302で形成されるオシレータは、発振信号であるDCOOSC信号を出力する。カウンタ320は、制御回路11から入力される第1CEN信号の値が0である場合、カウントを行わない。すなわち、グラフ412の第2CENの値が1になる前の0の値の部分では、グラフ413に示すように、カウンタ320のカウント値である第2CNTは不定である。そして、制御回路11から入力される第2CENの値が0から1に変わると、カウンタ320は、カウント値をリセットした上で、カウントを開始する。すなわち、グラフ412の第2CENの値が0から1に変わったタイミングで、グラフ413に示すように、カウンタ320はカウントを開始する。その後、制御回路11から入力される第2CENの値が1から0に変わると、カウンタ320は、カウントを停止し、その時点のカウント値を第2CNTとして保持する。図10では、第2CENは、期間TCEN2の間は値が1である。すなわち、グラフ412に示すように、第2CENの値が1になってから期間TCEN2に0に変わる。そして、第2CENの値が1から0に変わったタイミングで、グラフ413に示すように、カウンタ320はカウントを停止し、その後、そのタイミングでのカウント値を第2CNTとして保持する。図10では、カウンタ320は、Nを第2CENとして保持する。
【0077】
図1に戻って説明を続ける。分周器156が、分周率設定コードに応じた分周率(即ち検出信号Qに応じた分周率)で発振信号を分周して分周信号を生成する。分周器156は、生成した分周信号を位相比較器151へ出力する。
【0078】
次に、制御回路11について説明する。制御回路11は、例えば、マイクロコンピュータなどで実現してもよい。制御回路11は、以下に説明する処理を実現するためのプログラムを含む各種プログラムをメモリなどに格納し、それら各種プログラムを読み出して実行することで以下に説明する機能を実現する。ここでは、PC221〜224及びPC251〜254がそれぞれn個存在する場合、すなわち回路遅延測定値Qが2nビットの場合で説明する。
【0079】
制御回路11は、CPU1が動作開始しPLL回路15におけるクロックの同期が完了するまで待機する。例えば、制御回路11は、PLL回路15におけるクロックの同期が完了するのに十分な時間を記憶しておき、CPU1の動作開始後にその時間待機してもよい。
【0080】
次に、制御回路11は、第1マスク信号M1として2nビット全てが1である信号(M1={2n(1’b1)})をMASK回路13へ出力する。また、制御回路11は、第2マスク信号M2として2nビット全てが1である信号(M2={2n(1’b1)})をMASK回路14へ出力する。これにより、MASK回路13は、DDM12が出力する回路遅延測定値Qの全てのビットを1に設定する。また、MASK回路14は、MASK回路13が出力する信号として全てのビットが1である信号の入力を受け、さらに全てのビットが1である第2マスク信号M2の入力を受けるので、全てのビットが1の信号をPLL回路15の加算器154へ出力する。これにより、制御回路11は、PLL回路15に対する適応的周波数制御を停止する。
【0081】
この状態では、制御回路11は、値が0のREN信号をDDM12へ出力しており、TDC200の遅延回路212〜216及び231〜236はいずれもリングオシレータ化されていない。また、制御回路11は、値が0の第1CEN信号をDDM12へ出力しており、カウンタ261及262はカウントを行わない状態である。また、制御回路11は、値が0の第2CEN信号をPLL回路15のDCO155へ出力しており、DCO155のカウンタ320はカウントを行わない状態である。また、この状態ではDCO155の制御を行っていないので、制御回路11は、制御信号CSとして適当な値を出力してよい。
【0082】
その後、制御回路11は、DDM12へ出力するREN信号の値を1に変更する。そして、制御回路11は、5Gクロックサイクル待機する。ここで、REN信号の値が1に変化すると、TDC200の遅延回路212〜216及び231〜236はいずれもリングオシレータ化し発振する。そこで、制御回路11は、リングオシレータ化された遅延回路212〜216及び231〜236の発振が安定するまで待機する。そのため、制御回路11が待機する時間は、リングオシレータ化された遅延回路212〜216及び231〜236の発振が安定するまでの時間であれば他の時間でもよい。
【0083】
次に、制御回路11は、DDM12へ出力する第1CEN信号を1に変更する。その後、制御回路11は、予め決められたGGクロックサイクル待機する。このGGクロックサイクルは、第1CEN信号の値が1となる期間であり、カウンタ261及び262にリングオシレータ化された遅延回路212〜216及び231〜236の発振信号のカウントを行わせる期間である。すなわち、GGクロックサイクルは、図5における期間TCEN1にあたる。
【0084】
そして、GGクロックサイクル待機後、制御回路11は、DDM12へ出力する第1CEN信号を0に変更しカウンタ261及び262のカウントを停止した後、1Gクロックサイクル待機する。その後、制御回路11は、DDM12へ出力するREN信号の値を1に変更し、遅延回路212〜216及び231〜236のリングオシレータ化を解除して、電圧変動を遅延変動に変換して時間差を測定するという通常動作にTDC200を戻す。
【0085】
そして、制御回路11は、GGクロックサイクルにおけるカウンタ261及び262カウント値の平均である第1CNTをDDM12の平均化回路270から取得する。次に、制御回路11は、第1CEN信号を出力する期間TCEN1を第1CNTで除算してリングオシレータ化された遅延回路212〜216及び231〜236の発振周期を求める。さらに、制御回路11は、求めた発振周期を遅延回路212〜216及び231〜236の数で除算する。これにより、制御回路11は、遅延回路212〜216及び231〜236の1つ分の遅延時間を求める。遅延回路212〜216及び231〜236の1つ分の遅延時間は、PC221〜224間の1つ分の遅延時間であり、TDC200の測定時間分解能TTDCにあたる。
【0086】
例えば、1Gクロックサイクルの時間がTGCLKの場合、期間TCEN1は、G×TGCLKである。そこで、制御回路11は、遅延回路212〜216及び231〜236の発振周期を、G×TGCLK/第1CNTとして求める。次に、制御回路11は、遅延回路212〜216及び231〜236の1つ分の遅延時間を、(G×TGCLK/第1CNT)/2(n+1)として求める。すなわち、制御回路11は、TDC200の測定時間分解能を、TTDC=(G×TGCLK/第1CNT)/2(n+1)として求める。
【0087】
次に、制御回路11は、制御信号CS[h−1:0]〜CS2n−1[h−1:0]のいずれもを全てのh個のビットが1の信号とし、加算器154へ出力する。これにより、制御回路11は、制御信号CSによるオンする駆動ゲートの数の調整が解除された状態、すなわち制御信号CSの初期状態に設定する。
【0088】
次に、制御回路11は、第2マスク信号M2の上位nビットを1とし、下位nビットを0とする。すなわち、制御回路11は、第2マスク信号M2をM2={n(1’b1),n(1’b0)}とする。これにより、MASK回路14は、MASK回路13から出力された全てのビットが1の信号の下位nビットを0にして出力する。すなわち、MASK回路14は、上位nビットが1であり、下位nビットが0である信号を検出信号として加算器154へ出力する。これにより、制御回路11は、比較クロック信号の位相と参照クロック信号の位相とが一致している状態の検出信号が加算器154へ入力されるようにする。
【0089】
次に、制御回路11は、1の値のフィードバック制御停止(FB(Feedback)STOP)信号をPLL回路15へ入力し、PLL回路15のフィードバック制御をオフに設定にする。これにより、制御回路11は、制御信号CSの調整時にPLL回路15においてフィードバック制御が行われないようにする。
【0090】
次に、制御回路11は、PLL回路15のDCO155へ出力する第2CEN信号の値を0から1に変更する。これにより、制御回路11は、カウンタ320のカウントを開始させる。その後、制御回路11は、GGクロックサイクル待機する。このGGクロックサイクルは、第2CEN信号の値が1となる期間であり、駆動ゲート301及び302で形成されるオシレータから出力される発振信号のカウントをカウンタ320に行わせる期間である。すなわち、GGクロックサイクルは、図10における期間TCEN2にあたる。
【0091】
第2CEN信号の値を1に変更後に期間TCEN2が経過すると、制御回路11は、第2CEN信号の値を1から0に変更する。これにより、制御回路11は、カウンタ320のカウントを停止させる。その後、制御回路11は、駆動ゲート301及び302で形成されるオシレータから出力される発振信号のカウント数である第2CNTを、DCO155のカウンタ320から取得する。
【0092】
次に、制御回路11は、第2CEN信号の値が1となる期間を第2CNTで除算して駆動ゲート301及び302で形成されるオシレータの発振周期であるTDCOを算出する。例えば、1Gクロックサイクルの時間がTGCLKの場合、期間TCEN2は、G×TGCLKである。そこで、制御回路11は、駆動ゲート301及び302で形成されるオシレータの発振周期を、TDCO=G×TGCLK/第2CNTとして求める。
【0093】
次に、制御回路11は、制御信号CS[h−1:0]〜CS2n−1[h−1:0]の中から1つ調整対象を選択する。次に、制御回路11は、選択した制御信号CSの最上位の1ビットの値を0に変更する。
【0094】
次に、制御回路11は、PLL回路15のDCO155へ出力する第2CEN信号の値を0から1に変更する。その後、制御回路11は、GGクロックサイクル待機する。期間TCEN2が経過後、制御回路11は、第2CEN信号の値を1から0に変更する。その後、制御回路11は、駆動ゲート301及び302で形成されるオシレータから出力される発振信号のカウント数である第2CNTを、DCO155のカウンタ320から取得する。そして、制御回路11は、駆動ゲート301及び302で形成されるオシレータの発振周期であるTDCOを算出する。次に、制御回路11は、選択した制御信号CSの最上位の1ビットの値を0にした場合の発振周期からビット全てが1の場合の発振周期を減算する。そして、制御回路11は、減算結果がTDC200の測定時間分解能であるTTDC以上か否かを判定する。
【0095】
制御回路11は、調整対象とした制御信号CSの最上位のビットから順に値が0であるビット数を増やすことを繰り返し、第2CNTの取得及びTDCOの算出を行う。そして、制御回路11は、算出したTDCOから選択した制御信号CSのビット全てが1の場合の発振周期を減算する処理を、減算結果がTDC200の測定時間分解能であるTTDC以上になるまで繰り返す。ここで、制御信号CSの中に値が0であるビットが増えると、検出信号の値が0の場合に0を出力するオンオフ回路310が増える。すなわち、制御信号CSの中に値が0であるビットが増えると、停止する駆動ゲート302が増えることになる。そのため、制御回路11は、制御信号CSの中に値が0であるビットが増やすことで、DCO155の周期変調時間分解能は粗くなる。
【0096】
減算結果がTDC200の測定時間分解能であるTTDC以上となった場合、制御回路11は、次の調整対象を制御信号CS[h−1:0]〜CS2n−1[h−1:0]の中から1つ選択し、同様に選択した制御信号CSのビットの中で値を0とするビットの決定処理を行う。制御回路11は、制御信号CS[h−1:0]〜CS2n−1[h−1:0]の全てに対して、値を0とするビットの決定処理を繰り返す。
【0097】
このように、制御回路11は、各制御信号CSにより駆動ゲート301及び302で形成されるオシレータに付加される遅延時間がPC221〜224及び251〜254が出力する信号間の遅延時間に一致するように調整する。ここで、TDC200の測定時間分解能はPC221〜224が出力する信号間の遅延時間である。そして、制御信号CSの数は、PC221〜224及び251〜254が出力する信号の数に一致する。したがって、制御回路11は、各制御信号CSによる発振周期の調整をおこなうことで、DCO155の周期変調時間分解能をTDC200の測定時間分解能に一致させることができる。すなわち、制御回路11は、DCO155の周期変調時間分解能を最大に設定しておき、制御信号CSの中に値が0であるビットが増やすことで徐々に粗くしDCO155の周期変調時間分解能に一致させる処理を行う。
【0098】
図11は、DCOの周期変調時間分解能がTDCの測定時間分解能より低い場合の時間分解能の調整を説明するための図である。図11は、縦軸で時間を表し、横軸で制御信号CS[h−1:0]〜CS2n−1[h−1:0]の中の0の値を有するビットの数を表す。図11の縦軸で時間を表しているが、駆動ゲート301及び302で形成されるオシレータの発振周期に応じて時間分解能が決定されるので、縦軸は時間分解能を表すともいえる。
【0099】
時間分解能501は、制御信号CSの全てのビットが1の場合のDCO155の周期変調時間分解能である。時間分解能501が、DCO155の周期変調時間分解能が最も高い場合である。また、時間分解能502は、制御信号CSの全てのビットが0の場合のDCO155の周期変調時間分解能である。時間分解能501が、DCO155の周期変調時間分解能が最も低い場合である。
【0100】
制御回路11は、制御信号CSの0の値を有するビットの数を増やすことで、時間分解能501から時間分解能502に向けてDCO155の周期変調時間分解能を粗くして、DCO155の周期変調時間分解能がTDC200の測定時間分解能に一致させる。この場合、制御回路11は、TDC200の測定時間分解能に一致するDCO155の周期変調時間分解能として、時間分解能503を取得する。ここで、時間分解能504は、制御信号CSを用いない場合のDCO155の周期変調時間分解能である。すなわち、制御回路11は、プロセスが基準条件の場合よりも早い場合、制御信号CSを与えることで、DCO155の周期変調時間分解能を細かくして時間分解能503から時間分解能504へ変化させる。
【0101】
図12は、DCOの周期変調時間分解能がTDCの測定時間分解能より高い場合の時間分解能の調整を説明するための図である。図12は、縦軸で時間を表し、横軸で制御信号CS[h−1:0]〜CS2n−1[h−1:0]の中の0の値を有するビットの数を表す。
【0102】
制御回路11は、制御信号CSの0の値を有するビットの数を増やすことで、時間分解能501から時間分解能502に向けてDCO155の周期変調時間分解能を粗くし、DCO155の周期変調時間分解能をTDC200の測定時間分解能に一致させる。この場合、制御回路11は、TDC200の測定時間分解能に一致するDCO155の周期変調時間分解能として、時間分解能505を取得する。ここで、時間分解能506は、制御信号CSを用いない場合のDCO155の周期変調時間分解能である。すなわち、制御回路11は、プロセスが基準条件の場合よりも遅い場合、制御信号CSをあたえることで、DCO155の周期変調時間分解能を時間分解能506から時間分解能505へと粗くする。
【0103】
図1に戻って説明を続ける。制御回路11は、第2マスク信号M2として全てのビットが1の信号(M2={2n(1’b1)})をMASK回路14へ出力する。これにより、制御回路11は、MASK回路13から出力された信号をMASK回路14がマスクを行わずにそのまま出力する状態に設定する。次に、制御回路11は、PLL回路15へ入力するフィードバック制御停止(FB(Feedback)STOP)信号の値を1から0に変更し、PLL回路15のフィードバック制御をオンに設定にする。これにより、制御回路11は、PLL回路15のフィードバック制御を再開させる。その後、制御回路11は、第1MASK信号として上位nビットが1であり下位nビットが0である信号(M1={n(1’b1),n(1’b0)})をMASK回路13へ出力する。これにより、制御回路11は、DDM12から出力された信号をMASK回路13がマスクを行わずにそのまま出力する状態に設定する。
【0104】
次に、図13を参照して、本実施例に係るDCO周期変調時間分解能キャリブレーションの処理の概略について説明する。図13は、実施例1に係るDCO周期変調時間分解能キャリブレーションのフローチャートである。
【0105】
制御回路11は、第1マスク信号M1及び第2マスク信号M2の全てのビットを1にしてそれぞれMASK回路13及び14へ出力し、DDM12による適応的周波数制御を無効にする(ステップS101)。この場合、第1マスク信号M1及び第2マスク信号M2は、M1=M2={2n(1’b1)}と表される。
【0106】
次に、制御回路11は、TDC200の測定時間分解能を取得する(ステップS102)。
【0107】
次に、制御回路11は、PLL回路15のフィードバック制御をオフに設定する(ステップS103)。
【0108】
次に、制御回路11は、制御信号CSの0の値を有するビットの数を増やし、時間分解能501から時間分解能502に向けてDCO155の周期変調時間分解能を粗くする。そして、制御回路11は、DCO155の周期変調時間分解能をTDC200の測定時間分解能に一致させる(ステップS104)。
【0109】
その後、制御回路11は、PLL回路15のフィードバック制御をオンに設定する(ステップS105)。
【0110】
さらに、制御回路11は、DDM12による適応的周波数制御を有効にする(ステップS106)。その後、制御回路11は、DCO155の周期変調時間分解能をTDC200の測定時間分解能に一致させた状態の制御信号CSを加算器154へ出力し、適応的周波数制御が加えられたPLL回路15を動作させる。すなわち、PLL回路15は、DCO155の周期変調時間分解能をTDC200の測定時間分解能に一致させた状態で、適応的周波数制御が加えられたクロック信号をデータパス回路160へ供給する。
【0111】
次に、図14を参照して、TDC200の測定時間分解能の取得処理の流れについて詳細に説明する。図14は、TDCの測定時間分解能の取得処理のフローチャートである。図14の各処理は図13のステップS102において行われる処理を具体化した一例である。
【0112】
制御回路11は、0の値のREN信号及び0の値の第1CEN信号をDDM12へ出力し、0の値の第2CEN信号をDCO155へ出力する。また、制御回路11は、任意の値を有する制御信号CSを加算器154へ出力する(ステップS201)。
【0113】
次に、制御回路11は、REN信号の値を0から1に変化させた後、5Gクロックサイクル待機する(ステップS202)。これにより、制御回路11は、遅延回路212〜216及び232〜236がリングオシレータ化し、安定するまで待機する。
【0114】
次に、制御回路11は、第1CEN信号の値を0から1に変化させカウンタ261及び262のカウントを開始させた後、GGクロックサイクル待機する(ステップS203)。制御回路11が待機している間、カウンタ261及び262は、リングオシレータ化された遅延回路212〜216及び232〜236の発振信号をクロックとしてカウントを行う。
【0115】
次に制御回路11は、第1CEN信号の値を1から0に変化させカウンタ261及び262のカウントを停止させた後、1Gクロックサイクル待機する(ステップS204)。
【0116】
次に、制御回路11は、REN信号を1から0に変化させ、遅延回路212〜216及び232〜236のリングオシレータ化を解除する(ステップS205)。
【0117】
その後、制御回路11は、カウンタ261及び262のカウント値の平均値である第1CNTを平均化回路270から取得する(ステップS206)。
【0118】
次に、制御回路11は、カウンタ261及び262のカウント期間を第1CNTで除算し、リングオシレータ化された遅延回路212〜216及び232〜236の発振周期を算出する。そして、制御回路11は、算出した発振周期を遅延回路212〜216及び232〜236の数で除算することでTDC200の測定時間分解能であるTTDCを取得する。この場合、制御回路11は、TTDC=(G/第1CNT)×TGCLK/2(n+1)としてTDC200の測定時間分解能であるTTDCを算出する(ステップS207)。
【0119】
次に、図15を参照して、DCO155の周期変調時間分解能とTDC200の測定時間分解能とを一致させる処理の流れについて詳細に説明する。図15は、DCOの周期変調時間分解能とTDCの測定時間分解能とを一致させる処理のフローチャートである。図15の各処理は図13のステップS104において行われる処理を具体化した一例である。
【0120】
制御回路11は、制御信号CS[h−1:0]〜CS2n−1[h−1:0]の全てのビットを1に設定する。すなわち、制御回路11は、CS[h−1:0]={h(1’b1)}(k=2n−1,2n−2,・・・,0)とする(ステップS301)。
【0121】
次に、制御回路11は、上位nビットが1で下位nビットが0の第2マスク信号M2をMASK回路14へ出力する。すなわち、制御回路11は、M2={n(1’b1),n(1’b0)}である第2マスク信号M2を出力する(ステップS302)。これにより、PLL回路15は、疑似クリティカルパス回路121の回路遅延が、疑似クリティカルパス回路122の回路遅延が一致する場合の検出信号の入力を受けることになる。
【0122】
次に、制御回路11は、調査対象の制御信号CSの番号をiとし、番号iが2nの制御信号を調査対象の制御信号CSとして選択する。すなわち、制御回路11は、i=2nとする(ステップS303)。ここで、制御信号CSは、検出信号の各ビットの位置に応じた番号が、図8に示すように振られているものとする。
【0123】
次に、制御回路11は、第2CEN信号の値を0から1に変化させてカウンタ320にカウントを開始させた後、GGクロックサイクル待機する(ステップS304)。制御回路11が待機している間、カウンタ320は、駆動ゲート301及び302で形成されるオシレータから出力される発振信号をクロックとしてカウントを行う。
【0124】
次に、制御回路11は、第2CEN信号を1から0に変化させ、カウンタ320にカウントを停止させる(ステップS305)。
【0125】
その後、制御回路11は、第2CENをカウンタ320から取得する(ステップS306)。
【0126】
次に、制御回路11は、調査対象の制御信号CSの全てのビットが1の場合の発振周期であるTDCO_0を算出する。具体的には、制御回路11は、TDCO_0=(G/第2CNT)×TGCKLとして調査対象の制御信号CSの全てのビットが1の場合の発振周期を算出する(ステップS307)。
【0127】
次に、制御回路11は、調査対象の制御信号CSの中で値を1とするビットの数をjとし、j=h−1と設定する(ステップS308)。
【0128】
次に、制御回路11は、調査対象の制御信号CSの下位jビットの値を1とし、残りを0とする。すなわち、制御回路11は、CSi[h−1:0]={h−j(1’b0),j(1’b1)とする(ステップS309)。
【0129】
次に、制御回路11は、第2CEN信号の値を0から1に変化させてカウンタ320にカウントを開始させた後、GGクロックサイクル待機する(ステップS310)。制御回路11が待機している間、カウンタ320は、駆動ゲート301及び302で形成されるオシレータから出力される発振信号をクロックとしてカウントを行う。
【0130】
次に、制御回路11は、第2CEN信号を1から0に変化させ、カウンタ320にカウントを停止させる(ステップS311)。
【0131】
その後、制御回路11は、第2CENをカウンタ320から取得する(ステップS312)。
【0132】
次に、制御回路11は、調査対象の制御信号CSのJビットを1とした場合の発振周期であるTDCO_jを算出する。具体的には、制御回路11は、TDCO_j=(G/第2CNT)×TGCKLとして調査対象の制御信号CSのjビットが1の場合の発振周期を算出する(ステップS313)。
【0133】
そして、制御回路11は、調査対象の制御信号のjビットが1の場合の発振周期であるTDCO_jから調査対象の制御信号の全てのビットが1の場合の発振周期であるTDCO_0減算した値を算出する。次に、制御回路11は、除算結果がTDC200の測定時間分解能であるTTDC以上か否かを判定する。すなわち、制御回路11は、TDCO_j−TDCO_0≧TTDCか否かを判定する。(ステップS314)。TDCO_j−TDCO_0≧TTDCの場合(ステップS314:肯定)、制御回路11は、調査対象の制御信号CSにおける値を1とするビット数をjとして記憶し、ステップS317へ進む。
【0134】
これに対して、TDCO_j−TDCO_0<TTDCの場合(ステップS314:否定)、制御回路11は、jが0より大きいかを判定する(ステップS315)。jが0より大きい場合(ステップS315:肯定)、制御回路11は、jを1つデクリメントして(ステップS316)、ステップS309へ戻る。
【0135】
これに対して、jが0以下の場合(ステップS315:否定)、制御回路11は、iが0以上かを判定する(ステップS317)。この場合、制御回路11は、調査対象の制御信号CSにおける値を1とするビット数を制御信号CSの全てのビットの数であるhとして記憶する。そして、iが0以上の場合(ステップS317:肯定)、制御回路11は、iを1つデクリメントして(ステップS318)、ステップS304へ戻る。
【0136】
これに対して、iが0未満の場合(ステップS317:否定)、制御回路11は、全てのビットが1の第2マスク信号M2をMASK回路14へ出力する。すなわち、制御回路11は、M2={2n(1’b1)}である第2マスク信号M2を出力する(ステップS319)。
【0137】
次に、制御回路11は、上位nビットが1で下位ビットが0の第1マスク信号M1をMASK回路13へ出力する。すなわち、制御回路11は、M1={n(1’b1),n(1’b0)}である第1マスク信号M1を出力する(ステップS320)。これにより、制御回路11は、DDM12によるPLL回路15に対する適応的周波数制御を再開させる。この後、制御回路11は、決定した数のビットが1となるように制御信号CS[h−1:0]〜CS2n−1[h−1:0]を設定し、加算器154へ出力する。
【0138】
以上に説明したように、本実施例に係るCPU1は、適応的周波数制御に用いるTDC200とDCO155のそれぞれの測定時間分解能と周期変調時間分解能とが一致するように制御信号CSを決定しDCO155へ入力する。
【0139】
ここで、図16を参照して、プロセス又は電圧が変化した場合の、TDC200の測定時間分解能とDCO155の周期変調時間分解能との関係を説明する。図16は、プロセスのバラつき及び電圧の変化の時間分解能への影響を表す図である。図16の縦軸は時間分解能を表し、上に向かうにつれて時間分解能が粗くなることを示す。また、図16の横軸は、プロセス又は電圧を表す。
【0140】
時間分解能610が、VPT条件が基準条件の場合のDCO155の周期変調時間分解能である。また、時間分解能620が、VPT条件が基準条件の場合のTDC200の測定時間分解能である。そして、DCO155の周期変調時間分解能は、プロセスが遅くなる又は電圧が低くなると粗くなり時間分解能611となる。これに対して、TDC200の測定時間分解能は、プロセスが遅くなる又は電圧が低くなると細かくなり時間分解能621となる。一方、プロセスが早くなる又は電圧が高くなると、DCO155の周期変調時間分解能は、細かくなり時間分解能612となる。これに対して、TDC200の測定時間分解能は、プロセスが早くなる又は電圧が高くなると粗くなり時間分解能622となる。
【0141】
このように、時間分解能はプロセスのバラつきや電圧の変化に対してTDC200の測定時間分解能の精度とDCO155の周期変調時間分解能の精度は逆方向に動く。そのため、従来の適応的周波数制御を行うCPUでは、時間分解能はプロセスのバラつきや電圧の変化により適応的周波数制御の精度が低下した。
【0142】
これに対して、本実施例に係るCPU1は、TDC200の測定時間分解能の精度とDCO155の周期変調時間分解能の精度を一致させる。これにより、本実施例に係るCPU1は、プロセスのバラつきや電圧の変化によるTDC200の測定時間分解能とDCO155の周期変調時間分解能の差の拡大を抑制することができる。したがって、本実施例に係るCPU1は、プロセスのバラつきや電圧の変化が発生した場合における適応周波数制御の精度を向上させることができる。
【0143】
(変形例)
図17は、変形例に係るTDCの詳細を表す回路図である。本変形例は、TDC200に配置される遅延回路201〜202、211〜216、231〜236及び241として、バッファを用いた場合の構成である。
【0144】
バッファを用いて構成された遅延回路212〜216は、それぞれ比較クロック信号に遅延を与える。PC221〜224は、遅延が与えられた比較クロック信号と参照クロック信号とを比較し、比較結果を出力する。PC221〜224は、比較クロック信号が参照クロック信号より進んでいる場合には1を出力し、比較クロック信号が参照クロック信号より遅れている場合には0を出力する。
【0145】
バッファを用いて構成された遅延回路232〜236は、それぞれ参照クロック信号に遅延を与える。PC251〜254は、比較クロック信号と遅延が与えられた参照クロック信号とを比較し、比較結果を出力する。PC251〜254は、比較クロック信号が参照クロック信号より進んでいる場合には1を出力し、比較クロック信号が参照クロック信号より遅れた場合には0を出力する。
【0146】
このように、TDC200は、遅延回路201〜202、211〜216、231〜236及び241にバッファを用いた場合も実施例1と同様に比較クロック信号が参照クロック信号に対して遅れているか進んでいるかを表す回路遅延測定値Qを出力する。
【0147】
以上に説明したように、遅延回路201〜202、211〜216、231〜236及び241を用いてTDC200を構成した場合にも適応的周波数制御を実現することができる。したがって、このTDC200を用いても、CPU1は、プロセスのバラつきや電圧の変化が発生した場合における適応周波数制御の精度を向上させることができる。
【実施例2】
【0148】
図18は、実施例2に係るCPUのブロック図である。本実施例に係るCPU1は、プロセスが、基準条件の場合よりも遅い場合と早い場合とに応じて、DCO155の周期変調時間分解能とTDC200の測定時間分解能とを一致させる方法を、制御信号CSの中の0の値のビットを増やすか減らすかのいずれかに決定する。以下では、実施例1と同様の各部の機能については説明を省略する。
【0149】
本実施例に係るCPU1は、制御回路11にプロセスセンサ111が搭載される。プロセスセンサ111は、CPU1の製造バラつきを判定する。具体的には、プロセスセンサ111は、CPU1のプロセスが基準条件の場合よりも遅いか早いかを判定する。ここで、本実施例では、制御回路11にプロセスセンサ111が搭載された場合で説明したが、プロセスセンサ111は、制御回路11外に配置され、プロセスセンサ111が、CPU1の製造バラつきの判定結果を制御回路11へ送信する構成でもよい。
【0150】
制御回路11は、プロセスセンサ111からCPU1の製造バラつきの判定結果を取得する。次に、制御回路11は、第1CNTをDDM12の平均化回路270から取得する。そして、制御回路11は、TDC200の測定時間分解能であるTTDCを用いて算出する。
【0151】
プロセスが基準条件の場合よりも早い場合、制御回路11は、制御信号CSの全てのビットを1にした場合の第2CNTを、DCO155のカウンタ320から取得する。そして、制御回路11は、駆動ゲート301及び302で形成されるオシレータの発振周期であるTDCOを算出する。その後、制御回路11は、制御信号CSの最上位ビットから0の数を増やしながら、第2CNTを、DCO155のカウンタ320から取得する。そして、制御回路11は、駆動ゲート301及び302で形成されるオシレータの発振周期であるTDCOを算出する。そして、制御回路11は、0を増やした制御信号CSを用いた場合のTDCOから全のビットが1の制御信号CSを用いた場合のTDCOを減算し、減算結果がTDC200の測定時間分解能であるTTDC以上になる場合の制御信号CSを特定する。制御回路11は、全ての制御信号CSに対して上記処理を繰り返して、DCO155の周期変調時間分解能とTDC200の測定時間分解能とを一致させる制御信号CSを決定する。
【0152】
これに対して、プロセスが基準条件の場合よりも遅い場合、制御回路11は、制御信号CSの全てのビットを0にした場合の第2CNTを、DCO155のカウンタ320から取得する。そして、制御回路11は、駆動ゲート301及び302で形成されるオシレータの発振周期であるTDCOを算出する。その後、制御回路11は、制御信号CSの最下位ビットから1の数を増やしながら、第2CNTを、DCO155のカウンタ320から取得する。そして、制御回路11は、駆動ゲート301及び302で形成されるオシレータの発振周期であるTDCOを算出する。そして、制御回路11は、全のビットが0の制御信号CSを用いた場合のTDCOから1を増やした制御信号CSを用いた場合のTDCOを減算し、減算結果がTDC200の測定時間分解能であるTTDC以上となる制御信号CSであって、最も短いTDCOとなる制御信号CSを特定する。制御回路11は、全ての制御信号CSに対して上記処理を繰り返して、DCO155の周期変調時間分解能とTDC200の測定時間分解能とを一致させる制御信号CSを決定する。
【0153】
図19は、実施例2に係るDCOの周期変調時間分解能がTDCの測定時間分解能より高い場合の時間分解能の調整を説明するための図である。図19は、縦軸で時間を表し、横軸で制御信号CS[h−1:0]〜CS2n−1[h−1:0]の中の0の値を有するビットの数を表す。
【0154】
制御回路11は、制御信号CSの1の値を有するビットの数を増やすことで、時間分解能502から時間分解能501に向けてDCO155の周期変調時間分解能を細かくし、DCO155の周期変調時間分解能をTDC200の測定時間分解能に一致させる。この場合、制御回路11は、TDC200の測定時間分解能に一致するDCO155の周期変調時間分解能として、時間分解能507を取得する。ここで、時間分解能508は、制御信号CSを用いない場合のDCO155の周期変調時間分解能である。すなわち、制御回路11は、プロセスが基準条件の場合よりも遅い場合、制御信号CSをあたえることで、DCO155の周期変調時間分解能を時間分解能508から時間分解能507へと粗くする。
【0155】
次に、図20を参照して、本実施例に係るDCO周期変調時間分解能キャリブレーションの処理の概略について説明する。図20は、実施例2に係るDCO周期変調時間分解能キャリブレーションのフローチャートである。
【0156】
プロセスセンサ111は、CPU1のプロセスのバラつきを判定する(ステップS401)。そして、制御回路11は、CPU1のプロセスのバラつきの判定結果をプロセスセンサ111から取得する。
【0157】
制御回路11は、第1マスク信号M1及び第2マスク信号M2の全てのビットを1にしてそれぞれMASK回路13及び14へ出力し、DDM12による適応的周波数制御を無効にする(ステップS402)。
【0158】
次に、制御回路11は、TDC200の測定時間分解能を取得する(ステップS403)。
【0159】
次に、制御回路11は、PLL回路15のフィードバック制御をオフに設定する(ステップS404)。
【0160】
次に、制御回路11は、プロセスセンサ111による判定結果から、CPU1のプロセスが基準条件より早いか否かを判定する(ステップS405)。
【0161】
プロセスが基準条件より早い場合(ステップS405:肯定)、制御回路11は、制御信号CSの0の値を有するビットの数を増やす方向で0とするビットの数を決定する処理を実行する。そして、制御回路11は、DCO155の周期変調時間分解能をTDC200の測定時間分解能に一致させる(ステップS406)。
【0162】
これに対して、プロセスが基準条件より遅い場合(ステップS405:否定)、制御回路11は、制御信号CSの0の値を有するビットの数を減らす方向で0とするビットの数を決定する処理を実行する。そして、制御回路11は、DCO155の周期変調時間分解能をTDC200の測定時間分解能に一致させる(ステップS407)。
【0163】
その後、制御回路11は、PLL回路15のフィードバック制御をオンに設定する(ステップS408)。
【0164】
さらに、制御回路11は、DDM12による適応的周波数制御を有効にする(ステップS409)。その後、制御回路11は、DCO155の周期変調時間分解能をTDC200の測定時間分解能に一致させた状態の制御信号CSを加算器154へ出力し、適応的周波数制御が加えられたPLL回路15を動作させる。すなわち、PLL回路15は、DCO155の周期変調時間分解能をTDC200の測定時間分解能に一致させた状態で、適応的周波数制御が加えられたクロック信号をデータパス回路160へ供給する。
【0165】
以上に説明したように、本実施例に係るCPU1は、プロセスが基準条件より早い場合、DCO155の周期変調時間分解能が粗くなるように制御信号CSを変化させて、DCO155の周期変調時間分解能をTDC200の測定時間分解能に一致させる。また、プロセスが基準条件より遅い場合、本実施例に係るCPU1は、DCO155の周期変調時間分解能が細かくなるように制御信号CSを変化させて、DCO155の周期変調時間分解能をTDC200の測定時間分解能に一致させる。
【0166】
ここで、プロセスが基準条件よりも早い場合、DCO155の周期変調時間分解能が粗くなるように制御信号CSを変化させた方が、細かくなるように制御信号CSを変化させた場合に比べて収束が早い。これに対して、プロセスが基準条件よりも遅い場合、DCO155の周期変調時間分解能が細かくなるように制御信号CSを変化させた方が、粗くなるように制御信号CSを変化させた場合に比べて収束が早い。したがって、本実施例に係る制御回路11は、DCO155の周期変調時間分解能をTDC200の測定時間分解能に一致させる制御信号CSの決定の時間を実施例1の場合に比べて短縮することができる。
【符号の説明】
【0167】
1 CPU
2 プロセッサ電源
3 クロック生成装置
11 制御回路
12 DDM
13 MASK回路
14 MASK回路
15 PLL回路
16 論理回路
111 プロセスセンサ
121,122 疑似クリティカルパス回路
123〜125 インバータ
151 位相比較器
152 ループフィルタ
153 正規化部
154 加算器
155 DCO
156 分周器
160 データパス回路
161,162 フリップフロップ
163 回路素子群
200 TDC
201〜202,211〜216,231〜236,241 遅延回路
221〜224,251〜254 PC
261,262 カウンタ
270 平均化回路
301,302 駆動ゲート
311〜316 オンオフ制御回路
320 カウンタ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20