(57)【要約】【課題】参照クロックの生成のために、３６０度の位相差の素子数が特定される際に、遅延素子の温度等が変化しても、特定時間が長くならないこと。【解決手段】遅延素子の温度等の動作状況情報を取得する動作状況認識部１１０と、前記動作状況情報に対応する遅延制御情報を生成する初期遅延決定部１２０と、前記遅延制御情報による遅延クロックを生成する可変遅延回路１３０と、位相差を検出する位相比較回路１４０と、検出に応じ、３６０度の位相差の遅延制御情報を特定する遅延制御回路１５０とを含むＤＬＬ回路。【選択図】図１
2011049660.tif 000002
【特許請求の範囲】
【請求項１】
基準クロックに対して、遅延素子により遅延を付加した参照クロックを生成するのに先立って、前記基準クロックに対して所定角度の位相差の遅延を付加するための遅延制御情報を生成するＤＬＬ（Delay Lock Loop）回路であって、
前記ＤＬＬ回路が動作している状況を示す動作状況情報を取得する動作状況取得部と、
前記基準クロックに対して最初に付加する遅延の長さを特定する遅延制御情報として、前記動作状況取得部の取得する前記動作状況情報に対応する長さを特定する遅延制御情報を生成する初期遅延決定部と、
前記基準クロックが入力され、入力された前記基準クロックに対して、前記初期遅延決定部により生成された前記遅延制御情報、または、フィードバックされた遅延制御情報により特定される長さの遅延を前記遅延素子により付加した遅延クロックを生成する可変遅延回路と、
前記可変遅延回路によって生成された前記遅延クロックと、前記基準クロックとの間の位相差を検出する位相比較回路と、
前記位相比較回路によって検出された前記位相差が、前記所定角度の位相差である場合、前記初期遅延決定部により生成された前記遅延制御情報を、前記所定角度の前記遅延制御情報と特定し、前記所定角度の位相差ではない場合、検出された前記位相差から遅延制御情報を生成して、生成された当該遅延制御情報を前記可変遅延回路にフィードバックする遅延制御回路とを含むＤＬＬ回路。
【請求項２】
請求項１に記載のＤＬＬ回路であって、
前記動作状況情報は、前記遅延素子の温度を特定する温度情報と、前記遅延素子の電圧を特定する電圧情報と、前記基準クロックの周波数を特定する周波数情報とのうちの１つであるＤＬＬ回路。
【請求項３】
請求項１に記載のＤＬＬ回路であって、
前記所定角度は、３６０度であるＤＬＬ回路。
【請求項４】
請求項１に記載のＤＬＬ回路であって、
前記動作状況取得部は、前記遅延素子の温度を検知し、
前記初期遅延決定部は、前記動作状況取得部の検知した前記温度に応じて、検知された前記温度が、第１の温度よりも高い第２の温度である場合、前記第１の温度が検知された場合に生成する第１の前記遅延制御情報により特定される長さよりも短い長さを特定する第２の前記遅延制御情報を生成するＤＬＬ回路。
【請求項５】
請求項１に記載のＤＬＬ回路であって、
前記動作状況取得部は、前記遅延素子の電圧を検知し、
前記初期遅延決定部は、前記動作状況取得部の検知した前記電圧に応じて、検知された前記電圧が、第１の電圧よりも低い第２の電圧である場合、前記第１の電圧が検知された場合に生成する第１の前記遅延制御情報により特定される長さよりも短い長さを特定する第２の前記遅延制御情報を生成するＤＬＬ回路。
【請求項６】
請求項１に記載のＤＬＬ回路であって、
前記動作状況取得部は、前記遅延素子の周波数を検知し、
前記初期遅延決定部は、前記動作状況取得部の検知した前記周波数に応じて、検知された前記周波数が、第１の周波数よりも低い第２の周波数である場合、前記第１の周波数が検知された場合に生成する第１の前記遅延制御情報により特定される長さよりも短い長さを特定する第２の前記遅延制御情報を生成するＤＬＬ回路。
【請求項７】
請求項１に記載のＤＬＬ回路であって、
前記可変遅延回路は、付加する遅延の長さに対応する素子数の前記遅延素子による遅延を前記基準クロックに付加したクロックを、前記遅延クロックとして生成し、
前記動作状況取得部は、前記基準クロックよりも高速な高速クロックをロックさせ、前記高速クロックのロックにより特定された、前記高速クロックが前記所定角度の位相差だけ遅延される、前記遅延素子の素子数を検知し、
前記初期遅延決定部は、前記動作状況取得部の検知した、前記高速クロックの前記素子数に、前記高速クロックと前記基準クロックとの間の周波数比を乗算した結果に応じて、前記結果に対応する長さを特定する前記遅延制御情報を生成するＤＬＬ回路。
【請求項８】
請求項１に記載のＤＬＬ回路であって、
前記可変遅延回路は、前記可変遅延回路によって前記基準クロックに付加する最初の遅延の長さとして、前記初期遅延決定部により生成された前記遅延制御情報により特定される長さを決定するＤＬＬ回路。
【請求項９】
請求項１に記載のＤＬＬ回路であって、
前記遅延制御回路は、前記位相比較回路によって検出した、前記遅延クロックと前記基準クロックとの間の前記位相差により、当該位相差に対応する遅延制御情報を前記可変遅延回路にフィードバックし、
前記可変遅延回路は、最初以外の遅延クロックの生成に際して、前記遅延制御回路の生成する、フィードバックの前記遅延制御情報によって、前記基準クロックに遅延を付加するＤＬＬ回路。
【請求項１０】
請求項１に記載のＤＬＬ回路であって、
前記遅延制御回路は、前記動作状況取得部によって取得された前記動作状況情報に応じて、取得された前記動作状況情報に対応する遅延制御情報に、生成する前記遅延制御情報を更新し、
前記可変遅延回路は、最初以外の遅延クロックの生成に際して、前記遅延制御回路により更新された後の前記遅延制御情報によって、前記基準クロックに遅延を付加するＤＬＬ回路。
【請求項１１】
請求項１に記載のＤＬＬ回路であって、
前記動作状況取得部は、
前記ＤＬＬ回路における、前記遅延素子の温度と、前記遅延素子の電圧と、前記基準クロックの周波数とのうちの少なくとも１つの値を示し、前記ＤＬＬ回路が動作するうちに、示される前記値が変化し、前記基準クロックの波長に対する、前記遅延素子による遅延の相対的な遅延時間が、示される前記値に対応する時間である情報を、前記動作状況情報として取得し、
第１の前記動作状況情報と、第１の前記動作状況情報により示される前記値に対応する第１の前記遅延時間よりも長い第２の前記遅延時間に対応する前記値を示す第２の前記動作状況情報とを取得し、
前記初期遅延決定部は、前記動作状況取得部により第１の前記動作状況情報が取得された場合、第１の素子数を特定する第１の前記遅延制御情報を生成し、第２の前記動作状況情報が取得された場合、前記第１の素子数よりも少ない第２の素子数を特定する第２の前記遅延制御情報を生成し、
前記可変遅延回路は、第１の前記遅延制御情報および第２の前記遅延制御情報のうち、前記初期遅延決定部により生成された方の前記遅延制御情報により特定される素子数の遅延素子による遅延により、前記遅延クロックを生成するＤＬＬ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）のように、クロックに同期して高速に動作するメモリにアクセスするシステムなどにおいて使用されるＤＬＬ（Delay Lock Loop）回路に関する。より具体的には、本発明は、ＤＬＬ回路における、位相差検出を行う時間（以下、ロック時間という）を短縮する装置および方法に関する。
【背景技術】
【０００２】
一般に、ＳＤＲＡＭなどのメモリと、同期通信によって高速なデータ転送を行うシステムでは、データの送受信のために、クロック信号をタイミング基準として使用する。このようなシステムでは、プロセス、電圧または温度に変化が生じると、クロック信号とデータ信号の位相差が変化するため、高速になるほど、安定してデータ転送を行うためのタイミングマージンが減少する。ＤＬＬ回路は、このプロセス、電圧および温度に変化が生じる環境において、クロック信号とデータ信号間の信号間の位相差を維持して、安定したデータ転送を行うために用いられる。つまり、ＤＬＬ回路では、刻々と変化する位相関係を、継続的に比較し、比較結果をフィードバックしながら位相差を維持するように動作する。この位相関係の比較には、基準となるクロック（以下、基準クロックという）から、所定位相だけ遅らさせたクロック（以下、参照クロックという）が使用され、参照クロックとデータ信号とを同期、あるいは単位遅延時間以内の遅延差に収めることで、基準クロックとデータ信号間に所定の位相差を持たせることを実現する。
【０００３】
可変遅延回路は、基準クロックに対して付加する遅延量を制御することよって、３６０度位相差検出用クロックを生成する。そして、ＤＬＬ回路は、この３６０度位相差検出用クロックを、基準クロックのエッジ検出に使用して、参照クロックを生成する。具体的には、可変遅延回路にて、３６０度位相差検出用クロックを生成するための遅延量を変化させながら、基準クロックの立ち上がり（位相差０度）から、基準クロックの次の立ち上がり（位相差３６０度）まで遅延させるために必要な、可変遅延回路の遅延素子数を割り出す。そして、さらにその結果から、所定の位相差を付けるために必要な遅延素子数を算出することで、基準クロックに対して所定の位相遅れた参照クロックを生成する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２０７０５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
参照クロックを生成するためには、上述のように、基準クロックの立ち上がり（位相差０度）から３６０度の位相差がついた、次のクロックの立ち上がりを検出する必要がある。
【０００６】
従来は、基準クロックに対して一定の単位遅延のみを反復的に与えた３６０度位相差検出用クロックの立ち上がりと、基準クロックの次の立ち上がり（位相差３６０度）との位相差が単位遅延量より小さくなるまで、３６０度位相差検出用クロックへの単位遅延の付加と比較動作を繰り返す。そして、比較動作を繰り返しながら、基準クロックの次の立ち上がり（位相差３６０度）を検出して、基準クロックの立ち上がり（位相差０度）から３６０度の位相差となるまでに、可変遅延回路の単位遅延素子をどの程度必要かを決定する（以下、ＤＬＬロックするという）。
【０００７】
しかし、遅延素子を利用して、ＤＬＬロックするまで、反復的に基準クロックを遅延させた３６０度位相差検出用クロックと、基準クロックの位相差を比較していくこの方法は、反復回数が多いため、ＤＬＬロックするまでの時間（以下、ロック時間という）が長時間になってしまう。
【０００８】
特許文献１によれば、基準クロックに対して、単位遅延だけでなく、多段遅延を反復的に併行して実行しながら、補正結果を確認して、短い時間内にＤＬＬの初期動作を完了することが可能な、遅延固定ループの初期ロックタイム短縮装置及び方法を提供している。
【０００９】
しかしながら、特許文献１においても、基準クロックに対して、単位遅延に加えて多段遅延も付加されることにより、付加される遅延の粒度は増しているが、次の問題が残る。つまり、最初に基準クロックに付加する遅延素子数と、ＤＬＬロックする遅延素子数が大きく離れていた場合は、ロック時間が、なお長時間になってしまうという問題が残る。また、一旦ＤＬＬロックしても、電圧、温度またはシステム設定により周波数に変化が生じて、再度ＤＬＬロックさせるときに、それまでＤＬＬロックに要していた遅延素子数からかけ離れていた場合も同様である。
【００１０】
すなわち、従来より、ＤＬＬ回路がある。ＤＬＬ回路では、１以上の素子数の遅延素子により基準クロックが遅延されたクロックが生成される。
【００１１】
具体的には、ＳＲＡＭなどのメモリのデータ信号の通信において、その通信のタイミングの基準にされる参照クロックが生成される。参照クロックは、基準クロックが、第２の所定角度の位相差だけ遅延されたクロックである。
【００１２】
そして、この参照クロックを生成するために、その生成に先立って、３６０度（第１の所定角度）の位相差が生じるだけの、遅延素子の素子数が特定される。ここで、特定される、第１の所定角度（３６０度）の素子数は、基準クロックの第１の立ち上がり（位相差０度）から、第１の立ち上がりの次の、第２の立ち上がりまでの遅延がされる、遅延素子の素子数である。このため、この第１の所定角度（３６０度）の素子数は、比較的容易に特定される。そして、特定された第１の所定角度の素子数と、第１の所定角度および第２の所定角度の間の比となどから、第２の所定角度の位相差が生じるだけの素子数が特定される。これにより、その素子数による遅延により、参照クロックが生成される。
【００１３】
そして、ＤＬＬ回路では、３６０度（第１の所定角度）の素子数を特定するために、素子数を特定する遅延制御情報が生成されて、生成された遅延制御情報により特定される素子数での遅延がされた遅延クロックが生成される。そして、生成された遅延クロックの位相差が検出され、検出された位相差が、第１の所定角度（３６０度）の位相差か否かが判定される。
【００１４】
これにより、第１の所定角度の位相差と判定された場合、その遅延クロックが生成された遅延制御情報が、参照クロックの生成のための、第１の所定角度の素子数を特定する遅延制御情報として特定される。
【００１５】
他方、検出された位相差が、第１の所定角度の位相差ではないと判定された場合、上述のフィードバックの動作をすることにより、検出された位相差から、第１の所定角度（３６０度）の位相差の遅延制御情報を特定する。この後続の処理により、第１の所定角度（３６０度）の位相差の遅延制御情報が特定される。
【００１６】
しかしながら、基準クロックの波長に対する、遅延素子による遅延の、相対的な遅延時間（相対遅延時間）は、遅延素子の温度、遅延素子の電圧、基準クロックの周波数などにより、変化してしまう。そして、相対遅延時間が変化すると、第１の所定角度（３６０度）の素子数も変化して、生成される遅延クロックの位相差が、第１の所定角度（３６０度）から離れてしまうことがある。
【００１７】
このため、遅延素子の温度等の変化により、上記された後続の処理が余計に必要になったり、後続の処理の時間が長くなったりしてしまう。これにより、遅延クロックの生成から、第１の所定角度（３６０度）の位相差の素子数の特定までの特定時間、つまり、ＤＬＬロックまでに要するロック時間が、長くなってしまう。そして、ひいては、参照クロックの生成が遅くなったり、データ信号の通信が遅れたりしてしまう。
【００１８】
なお、ここで、後続の処理は、その後続の処理の基となる、検出された位相差が、第１の所定角度（３６０度）に近いほど短い。
【００１９】
また、ここで、第１の所定角度（３６０度）の位相差とは、第１の所定角度（３６０度）の位相差と同一又は近傍の位相差であると理解されてもよい。
【００２０】
本発明の目的は、上記問題を鑑み、最初に基準クロックに付加する遅延素子数（以下、初期遅延素子数という）が、ＤＬＬロックする遅延素子数（以下、ロック遅延素子数という）から大きく離れないようにすることで、ロック時間を短縮することである。また、本発明の目的は、さらに、周波数に大きな変化が生じた場合に、基準クロックに付加する遅延素子数を、電圧、温度またはシステム設定を監視して追随させ、再度ＤＬＬロックするために要するロック時間を短縮するＤＬＬ回路を提供することである。
【００２１】
つまり、本発明は、遅延素子の温度等が変化しても、３６０度（所定角度）の素子数を特定する遅延制御情報が迅速に生成できることを目的とする。そして、本発明は、ひいては、温度等が変化しても、参照クロックが迅速に生成でき、データ信号の通信が迅速にできることを目的とする。
【課題を解決するための手段】
【００２２】
前記の目的を達成するために、本発明のＤＬＬ回路は、基準クロックに対して、遅延素子により遅延を付加した参照クロックを生成するのに先立って、前記基準クロックに対して所定角度（３６０度など）の位相差の遅延を付加するための遅延制御情報（遅延素子の素子数など）を生成するＤＬＬ（Delay Lock Loop）回路であって、前記ＤＬＬ回路が動作している状況を示す動作状況情報（遅延素子の温度、電圧、基準クロックの周波数のうちの少なくとも１つ）を取得する動作状況取得部と、前記基準クロックに対して最初に付加する遅延の長さ（遅延素子の素子数等）を特定する遅延制御情報として、前記動作状況取得部の取得する前記動作状況情報に対応する長さを特定する遅延制御情報を生成する初期遅延決定部と、前記基準クロックが入力され、入力された前記基準クロックに対して、前記初期遅延決定部により生成された前記遅延制御情報、または、フィードバックされた遅延制御情報により特定される長さの遅延（その長さの素子数による遅延）を前記遅延素子により付加した遅延クロックを生成する可変遅延回路と、前記可変遅延回路によって生成された前記遅延クロックと、前記基準クロックとの間の位相差を検出する位相比較回路と、前記位相比較回路によって検出された前記位相差が、前記所定角度（３６０度等）の位相差である場合、前記初期遅延決定部により生成された前記遅延制御情報を、前記所定角度の前記遅延制御情報と特定し、前記所定角度の位相差ではない場合、検出された前記位相差から遅延制御情報を生成して、生成された当該遅延制御情報を前記可変遅延回路にフィードバックする遅延制御回路とを含むＤＬＬ回路である。
【００２３】
すなわち、このＤＬＬ回路においては、参照クロックが生成されるのに先立ち、その生成の基準とされるための、３６０度等の所定角度の遅延のための遅延制御情報が特定される。そして、特定された遅延制御情報によって、適切な参照クロックが生成される。
【００２４】
なお、ここで、動作状況情報は、例えば、基準クロックの波長に対する相対的な、遅延素子の遅延時間（相対遅延時間）が、その状況に対応する時間である、ＤＬＬ回路の状況を示す情報である。ここで、動作状況情報は、前記ＤＬＬ回路が動作する間に変化する状況の情報である。
【００２５】
また、遅延制御回路は、例えば、前記可変遅延回路にフィードバックをすることにより、フィードバックがされた前記可変遅延回路により生成される後続の遅延クロックについて位相比較回路により検出された後続の位相差から、３６０度等の遅延制御情報を特定してもよい。
【００２６】
すなわち、このＤＬＬ回路においては、前記ＤＬＬ回路における、前記遅延素子の温度と、前記遅延素子の電圧と、前記基準クロックの周波数とのうちの少なくとも１つの値を示し、前記ＤＬＬ回路が動作するうちに、示される前記値が変化し、前記基準クロックの波長に対する、前記遅延素子による遅延の相対的な遅延時間が、示される前記値に対応する時間である情報が、前記動作状況情報として前記動作状況取得部により取得される。そして、第１の前記動作状況情報（低い温度の情報など）と、第１の前記動作状況情報により示される前記値に対応する第１の前記遅延時間よりも長い第２の前記遅延時間に対応する前記値を示す第２の前記動作状況情報（高い温度の情報など）とが前記動作状況取得部により取得される。そして、前記動作状況取得部により第１の前記動作状況情報が取得された場合、第１の素子数を特定する第１の前記遅延制御情報が前記初期遅延決定部により生成され、第２の前記動作状況情報が取得された場合、前記第１の素子数よりも少ない第２の素子数を特定する第２の前記遅延制御情報が前記初期遅延決定部により生成される。そして、第１の前記遅延制御情報および第２の前記遅延制御情報のうち、前記初期遅延決定部により生成された方の前記遅延制御情報により特定される素子数の遅延素子による遅延で、前記遅延クロックが前記可変遅延回路により生成される。
【００２７】
このＤＬＬ回路によれば、遅延素子の温度等が変化しても、その変化に対応した適切な動作状況情報が取得され、適切な遅延制御情報により遅延クロックが生成される。これにより、３６０度の素子数を特定する遅延制御情報が迅速に特定され、つまり、迅速にＤＬＬロックがされる。このため、温度等が変化しても、参照クロックが迅速に生成でき、ひいては、データ信号の通信が迅速にできる。
【００２８】
なお、例えば、前記遅延制御回路は、特定された３６０度の素子数から、前記参照クロックのための素子数を算出し、算出された前記素子数による遅延で、前記参照クロックを生成し、生成された前記参照クロックでの通信を行わせる。
【００２９】
また、ここで、例えば、このＤＬＬ回路は、クロックに同期したアクセスを行うメモリを有するシステムにおいて、前記メモリにアクセスするために使用されるＤＬＬ回路であって、温度、電圧またはクロック周波数などを検知する動作状況認識手段と、基準クロックに対して最初にどの程度遅延素子を付加するかを決定する初期遅延決定手段と、基準クロックを遅延させる可変遅延回路と、基準クロックを可変遅延回路により遅延させた３６０度位相差検出用クロックと基準クロックとの位相差を比較する位相比較回路と、位相比較回路の検出した位相差に応じて可変遅延回路にフィードバックする遅延の程度を制御する遅延制御回路を有し、前記動作状況認識手段で検出した温度、電圧または周波数などの情報を元に、前記初期遅延決定手段にて前記ロック遅延素子数に近いと思われる初期遅延素子数を決定し、前記初期遅延素子数で指定された前記可変遅延回路の遅延素子を使用して基準クロックを遅延させた３６０度位相差検出用クロックと基準クロックとを前記位相比較回路にて位相比較し、位相比較結果を元に遅延制御回路で生成した遅延制御情報を前記可変遅延回路にフィードバックしながらＤＬＬロックするまで基準クロックに付加する遅延素子数を制御することで初期ロック時間を短縮してもよい。
【００３０】
さらに、例えば、ロック遅延素子数を探索している最中に、温度、電圧または周波数などの情報を取得して、前記初期遅延決定手段や前記遅延制御回路を通して、前記遅延制御回路にて付加する遅延阻止数を制御することにより、リアルタイムで変化する電圧、温度または周波数に追随させ再度ロックするために要するロック時間を短縮してもよい。
【発明の効果】
【００３１】
本発明によれば、動作状況認識手段で取得した温度、電圧またはクロック周波数の少なくともいずれか一つに応じて、初期遅延決定手段によって決定された初期遅延素子数、位相比較回路の位相比較結果、および遅延制御回路の遅延制御情報を、可変遅延回路にフィードバックする。このことにより、温度、電圧またはクロック周波数に応じた最適な初期遅延からのエッジ検出が可能となり、さらに温度、電圧またはクロック周波数の変化に対応して、ロック時間を短縮することが可能となる。
【図面の簡単な説明】
【００３２】
【図１】図１は、ＤＬＬ回路の構成の例を示すブロック図である。
【図２】図２は、動作状況認識部と初期遅延決定部の一実施例を説明するための図である。
【図３】図３は、ＤＬＬ回路を使用してＤＬＬロックするためのフローチャートの一実施例を説明するための図である。
【図４】図４は、ＤＬＬ回路の構成の例を示すブロック図である。
【図５】図５は、ＤＬＬ回路の構成の例を示すブロック図である。
【図６】図６は、ＤＬＬ回路の構成の例を示すブロック図である。
【発明を実施するための形態】
【００３３】
以下、本発明の実施の形態について、図を用いて説明する。
【００３４】
実施の形態のＤＬＬ回路（ＤＬＬ回路１００）は、基準クロック（基準クロックＳ０１）に対して、遅延素子により遅延を付加した参照クロックを生成するのに先立って、前記基準クロックに対して所定角度（３６０度）の位相差の遅延を付加するための遅延制御情報（ロック素子数情報Ｓ０２）を生成するＤＬＬ回路であって、前記ＤＬＬ回路が動作している状況を示す動作状況情報（動作状況情報Ｓ１１：遅延素子の温度、電圧、基準クロックＳ０１の周波数など）を取得する動作状況取得部（動作状況認識部１１０）と、前記基準クロックに対して最初に付加する遅延の長さを特定する遅延制御情報として、前記動作状況取得部の取得する前記動作状況情報に対応する長さを特定する遅延制御情報（素子数情報Ｓ１２）を生成する初期遅延決定部（初期遅延決定部１２０）と、前記基準クロックが入力され、入力された前記基準クロックに対して、前記初期遅延決定部により生成された前記遅延制御情報（素子数情報Ｓ１２）、または、フィードバックされた遅延制御情報（素子数情報Ｓ１５）により特定される長さの遅延（その素子数による遅延）を前記遅延素子により付加した遅延クロック（遅延クロックＳ１３）を生成する可変遅延回路（可変遅延回路１３０）と、前記可変遅延回路によって生成された前記遅延クロックと、前記基準クロックとの間の位相差（位相差情報Ｓ１４）を検出する位相比較回路（位相比較回路１４０）と、前記位相比較回路によって検出された前記位相差が、前記所定角度の位相差（と同一又は近傍）である場合（ステップ３４：ｙｅｓ）、前記初期遅延決定部により生成された前記遅延制御情報を、前記所定角度の前記遅延制御情報と特定し、前記所定角度の位相差ではない場合（ステップ３４：ｎｏ）、検出された前記位相差から遅延制御情報（素子数情報Ｓ１５）を生成して、生成された当該遅延制御情報をフィードバック遅延制御回路（遅延制御回路１５０）とを含むＤＬＬ回路である。
【００３５】
すなわち、このＤＬＬ回路は、前記動作状況取得部が、前記ＤＬＬ回路における、前記遅延素子の温度と、前記遅延素子の電圧と、前記基準クロックの周波数とのうちの少なくとも１つの値を示し、前記ＤＬＬ回路が動作するうちに、示される前記値が変化し、前記基準クロックの波長に対する、前記遅延素子による遅延の相対的な遅延時間が、示される前記値に対応する時間である情報を、前記動作状況情報として取得し、第１の前記動作状況情報（低い温度の情報など）と、第１の前記動作状況情報により示される前記値に対応する第１の前記遅延時間よりも長い第２の前記遅延時間に対応する前記値を示す第２の前記動作状況情報（高い温度の情報など）とを取得し、前記初期遅延決定部が、前記動作状況取得部により第１の前記動作状況情報が取得された場合、第１の素子数を特定する第１の前記遅延制御情報を生成し、第２の前記動作状況情報が取得された場合、前記第１の素子数よりも少ない第２の素子数を特定する第２の前記遅延制御情報を生成し、前記可変遅延回路が、第１の前記遅延制御情報および第２の前記遅延制御情報のうち、前記初期遅延決定部により生成された方の前記遅延制御情報により特定される素子数の遅延素子による遅延により、前記遅延クロックを生成するＤＬＬ回路である。
【００３６】
このＤＬＬ回路によれば、遅延素子の温度等の変化により、基準クロックの波長に対する相対的な、遅延素子の遅延時間（相対遅延時間）が変化しても、変化後の相対遅延時間に対応した動作状況情報が取得される。これにより、変化後の相対遅延時間に対応した（素子数による）遅延クロックが生成される。これにより、生成される遅延クロックの位相差が、所定角度（３６０度）の位相差から離れないようにできる。これにより、フィードバックにより、所定角度の位相差の素子数を特定する後続の処理が不要になったり、後続の処理の時間が短くなったりする。これにより、温度等の変化により相対遅延時間が変化しても、所定角度の位相差の素子数の特定時間が長くならず、短い時間に維持できる。これにより、ひいては、特定された所定角度の素子数から、参照クロックが、容易、迅速に生成できる。これにより、さらには、メモリのデータ信号の通信が、容易、迅速にできる。
【００３７】
以下、詳しく説明される。
【００３８】
図１は、ＤＬＬ回路の構成例（ＤＬＬ回路１００）を示している。
【００３９】
なお、図示されていないブロックの有無および、その構成については任意とする。また、以下の各図面において、同一の符号を付したブロックや情報等は、同様の機能または情報の内容のブロック等を表すものとする。
【００４０】
ＤＬＬ回路１００は、図１に示したように、温度、電圧またはクロック周波数などを検知する動作状況認識部１１０と、動作状況認識部１１０によって生成された動作状況情報（回路情報）Ｓ１１を元に、基準クロックＳ０１に対して最初にどの程度、遅延素子による遅延を付加するかを決定する初期遅延情報（素子数情報）Ｓ１２を生成する初期遅延決定部１２０と、ＤＬＬ回路１００の外部から当該ＤＬＬ回路１００に入力された基準クロックＳ０１を、後述する初期遅延情報Ｓ１２または遅延制御情報Ｓ１５によって指定された遅延素子数分だけ遅延させる可変遅延回路１３０と、可変遅延回路１３０によって遅延した３６０度位相差検出用クロック（遅延クロック）Ｓ１３と、基準クロックＳ０１との位相差を検出する位相比較回路１４０と、位相比較回路１４０によって生成される位相差情報Ｓ１４によって、可変遅延回路１３０にフィードバックする、可変遅延回路１３０による遅延の程度を制御するための遅延制御情報（素子数情報）Ｓ１５を生成する遅延制御回路１５０とを具備する。
【００４１】
さらにＤＬＬ回路１００において、可変遅延回路１３０は、初期遅延情報Ｓ１２または遅延制御情報Ｓ１５を元に、基準クロックＳ０１を遅延させて、ＤＬＬロックするまで繰り返し、３６０度位相差検出用クロックＳ１３を生成する。つまり、可変遅延回路１３０は、最後の３６０度位相差検出用クロックＳ１３によりＤＬＬロックするまでの間に、複数の３６０度位相差検出用クロックＳ１３をそれぞれ生成する。ＤＬＬロックすると、遅延制御回路１５０が、遅延ロック素子数情報（ロック素子数情報）Ｓ０２を出力する。
【００４２】
なお、遅延制御回路１５０は、例えば、動作状況認識部１１０から動作状況情報Ｓ１１を取得してもよい。この場合、遅延制御回路１５０は、温度、電圧もしくはクロック周波数が所定のレベルを超えて変動した場合または常に、温度、電圧もしくはクロック周波数の情報の少なくともいずれか一つを使用して、ロック遅延素子数を推定する。そして、遅延制御回路１５０は、推定した遅延素子数と、位相差情報Ｓ１４より得られる遅延素子数との差が、基準Ａより大きいか否かを判定する。
【００４３】
なお、例えば、動作状況情報Ｓ１１として温度情報を動作状況認識部１１０が取得するときにおいて、その動作状況情報Ｓ１１が、温度が高いことを示したならば、１遅延素子あたりの遅延量は増加するため、ＤＬＬロックに必要な遅延素子数は少なくなる。逆に動作状況情報Ｓ１１が、温度が低いことを示したならば、１遅延素子あたりの遅延量は減少するため、ＤＬＬロックに必要な遅延素子数は多くなる。つまり、基準クロックの波長に対応する相対的な、遅延素子による遅延時間（相対遅延時間）は、低い第１の温度では長く、第１の温度よりも高い第２の温度では、短い。これにより、３６０度の位相差が生じる素子数は、低い第１の温度では少なく、高い第２の温度では多い。
【００４４】
同様に、動作状況情報Ｓ１１として電圧情報を取得するときにおいて、動作状況情報Ｓ１１が、電圧が低いことを示したならば、１遅延素子あたりの遅延量は増加するため、ＤＬＬロックに必要な遅延素子数は少なくなる。逆に、動作状況情報Ｓ１１が、電圧が高いことを示したならば、１遅延素子あたりの遅延量は減少するため、ＤＬＬロックに必要な遅延素子数は多くなる。つまり、相対遅延時間は、低い第１の電圧では長く、高い第２の電圧では短い。これにより、３６０度の位相差の素子数は、低い第１の電圧では少なく、高い第２の電圧では多い。
【００４５】
また、同様に、動作状況情報Ｓ１１としてクロック周波数情報を取得するときにおいて、動作状況情報Ｓ１１が、クロック周波数が高いことを示したならば、ＤＬＬロックに要する遅延素子数は少なくなる。逆に、動作状況情報Ｓ１１が、クロック周波数が低いことを示したならば、ＤＬＬロックに要する遅延素子数は多くなる。つまり、相対遅延時間は、高い第１の周波数では長く、低い第２の周波数では短い。これにより、３６０度の位相差の素子数は、高い第１の周波数では少なく、低い第２の周波数では多い。
【００４６】
この動作状況情報Ｓ１１により得られる、ＤＬＬロックに要する遅延素子数についての大まかな基準を設ける。そして、遅延制御回路１５０は、この基準を、基準Ａ（後述）として、判断をする。遅延制御回路１５０は、動作状況情報Ｓ１１から推定したロック遅延素子数と、位相差情報Ｓ１４とによって、可変遅延回路１３０にフィードバックする、可変遅延回路１３０による遅延の程度を制御するための遅延制御情報Ｓ１５を生成する。
【００４７】
なお、例えば、上記の基準Ａは、次の閾値である。つまり、基準Ａによる判断は、動作状況情報Ｓ１１から特定される、遅延素子の素子数が、位相差情報Ｓ１４から特定される素子数から、閾値以上、離れているか否かの判断である。そして、遅延制御回路１５０は、例えば、閾値以上離れている場合、動作状況情報Ｓ１１及び位相差情報Ｓ１４の両方から特定される個数に対応する遅延制御情報Ｓ１５を生成し、閾値以上離れていない場合、位相差情報Ｓ１４のみから特定される個数に対応する遅延制御情報Ｓ１５を生成してもよい。
【００４８】
なお、動作状況情報Ｓ１１は、ＤＬＬ回路１００内で生成せず、ＤＬＬ回路１００の外部からＤＬＬ回路１００に入力してもよい。また、初期遅延情報Ｓ１２も、ＤＬＬ回路１００内で生成せず、ＤＬＬ回路１００の外部から入力してもよい。この場合、動作状況情報Ｓ１１のみ、ＤＬＬ回路１００の外部から入力してもよく、動作状況情報Ｓ１１および初期遅延情報Ｓ１２の両方をＤＬＬ回路１００の外部から入力してもよい。
【００４９】
図４は、ＤＬＬ回路４００を示す図である。
【００５０】
さらに、図４に示すように、ＤＬＬ回路４００（ＤＬＬ回路１００）は、図１における、可変遅延回路１３０および位相比較回路１４０の両方の機能を有した回路１６０を有してもよい。この場合、回路１６０は、基準クロックＳ０１を当該回路１６０に入力し、初期遅延情報Ｓ１２または遅延制御情報Ｓ１５を元に、基準クロックＳ０１を遅延させる。そして、回路１６０は、ＤＬＬロックするまで繰り返し、基準クロックＳ０１と、遅延させた基準クロックＳ０１（遅延クロック）との位相差を表す位相差情報Ｓ１４を生成する。つまり、生成することが繰り返される。
【００５１】
図５は、ＤＬＬ回路５００を示す図である。
【００５２】
また、図５に示すように、ＤＬＬ回路５００（ＤＬＬ回路１００）は、図１における位相比較回路１４０および遅延制御回路１５０の両方の機能を有した回路１７０を有してもよい。この場合、回路１７０は、基準クロックＳ０１および３６０度位相差検出用クロックＳ１３を元に、可変遅延回路１３０の遅延の程度を制御するために遅延制御情報Ｓ１５を、可変遅延回路１３０へとフィードバックする。そして、回路１７０は、ＤＬＬロックすると、遅延ロック素子数情報（ロック素子数情報）Ｓ０２を出力する。
【００５３】
図６は、ＤＬＬ回路６００を示す図である。
【００５４】
また、図６に示すように、ＤＬＬ回路６００（ＤＬＬ回路１００）は、図１における、可変遅延回路１３０および遅延制御回路１５０の両方の機能を有した回路１８０を有してもよい。この場合、回路１８０は、基準クロックＳ０１と、初期遅延情報Ｓ１２または位相差情報Ｓ１４とを元に、基準クロックＳ０１を遅延させる。そして、回路１８０は、ＤＬＬロックするまで、繰り返し、３６０度位相差検出用クロックＳ１３を生成する。つまり、生成することが繰り返される。そして、回路１８０は、ＤＬＬロックすると、遅延ロック素子数情報Ｓ０２を出力する。
【００５５】
図２は、図１の動作状況認識部１１０と初期遅延決定部１２０の一実施例を示した図である。
【００５６】
なお、図示されていないブロックの有無および構成については任意とする。
【００５７】
図２において、動作状況認識部１１０は、図１の基準クロックＳ０１より高速なクロック（高速クロック）Ｓ２１を生成する高速クロック生成部２１０と、高速クロック用の初期遅延素子数を決定する高速クロック用初期遅延決定部（制御用レジスタ）２２０と、入力された高速クロックＳ２１を、高速クロック用初期遅延決定部２２０にて生成（決定）された高速クロック用初期遅延情報（高速クロック用素子数情報）Ｓ２２に応じて遅延させる高速クロック用可変遅延回路２３０と、高速クロック用可変遅延回路２３０によって遅延した高速３６０度位相差検出用クロックＳ２３と、高速クロックＳ２１との位相差を検出して、高速クロック用位相差情報Ｓ２４を生成する高速クロック用位相比較回路２４０と、高速クロック用位相比較回路２４０によって生成される高速クロック用位相差情報Ｓ２４によって、高速クロック用可変遅延回路２３０にフィードバックする、高速クロック用可変遅延回路２３０による遅延の程度を制御するための高速クロック用遅延制御情報（高速クロック用素子数情報）Ｓ２５を生成する高速クロック用遅延制御回路２５０とを具備する。
【００５８】
高速クロック用初期遅延決定部２２０は、例えば、ユーザ設定可能な制御用レジスタであってもよい。そして、高速クロックＳ２１に対して一定の単位遅延のみを反復的に与えた高速３６０度位相差検出用クロックＳ２３と、高速クロックＳ２１との位相差が、単位遅延量より小さくなるまで、高速クロック用可変遅延回路２３０が、単位遅延の付加を行ってもよい。すなわち、高速クロックがロックするまで、高速クロック用位相比較回路２４０が、高速３６０度位相差検出用クロックＳ２３と、高速クロックＳ２１との比較動作を繰り返す。高速クロックの処理について、この従来の方法を採ったとしても、基準クロックの処理を、この従来の方法で行う場合に比べて、３６０度の位相差を有する素子数の特定がされるまでの特定時間が、基準クロックでの特定時間よりも、高速クロックでの特定時間の方が、高速クロックの基準クロックに対する周波数比分だけ短い。つまり、特定される時刻は、その分だけ早い時刻である。これにより、ひいては、迅速に特定された、高速クロックでの素子数から、基準クロックでの素子数が迅速に特定できる。
【００５９】
例えば、基準クロックが１００ＭＨｚ、高速クロックが基準クロックの２倍の周波数の２００ＭＨｚとしたとき、高速クロックのロック時間は、基準クロックのロック時間の約半分のオーダーである。動作状況認識部１１０は、高速クロックがロックに要したロック遅延素子数を、動作状況情報Ｓ１１として、初期遅延決定部１２０に入力する。
【００６０】
なお、高速クロックＳ２１は、動作状況認識部１１０内で生成せず、動作状況認識部１１０の外部から動作状況認識部１１０に入力してもよい。また、高速クロック用初期遅延情報Ｓ２２も、動作状況認識部１１０内ではなく、動作状況認識部１１０の外部から入力してもよい。
【００６１】
また、初期遅延決定部１２０は、例えば、乗算器３１０（図２）を具備してもよい。乗算器３１０は、動作状況認識部１１０によって初期遅延決定部１２０に与えられた動作状況情報Ｓ１１が、高速クロックのロック遅延素子数であったときに、高速クロックＳ２１および基準クロックＳ０１の周波数比と、高速クロックのロック遅延素子数との積を、初期遅延情報Ｓ１２として、出力する。
【００６２】
例えば、基準クロックが１００ＭＨｚ、高速クロックが、基準クロックの２倍の周波数の２００ＭＨｚ、２００ＭＨｚの高速クロックのロック遅延素子数をαとしたとき、「（上記の周波数比）×α」＝「２００ＭＨｚ／１００ＭＨｚ×α」を、初期遅延情報Ｓ１２とする。なお、高速クロックＳ２１と、基準クロックとの周波数比は、乗算器３１０の被乗数として予め乗算器３１０が保持していても良いし、初期遅延決定部１２０の外部から入力しても良い。
【００６３】
なお、動作状況認識部１１０の別の形態としては、次の形態が採られてもよい。動作状況認識部１１０は、例えば、ＤＬＬ回路１００を含んだデータ処理システムが置かれた温度を検知する温度検知部、ＤＬＬ回路を含んだデータ処理システムの電圧を検知する電圧検知部、もしくはＤＬＬ回路を含んだデータ処理システムが意図的にクロック周波数を変動する場合に、当該データ処理システムがシステム情報として持つクロック周波数を取得するクロック周波数検知部のいずれか、または複数を具備する。また、初期遅延決定部１２０の別の形態としては、初期遅延決定部１２０は、例えば、温度、電圧もしくはクロック周波数の値または範囲に応じて、チップの評価に基づいた初期遅延情報Ｓ１２を生成するものとしてもよい。
【００６４】
なお、図２の動作状況認識部１１０は、具体的には、例えば、図４〜図６の方式のうちの何れかの方式が採用された構成でもよい。
【００６５】
つまり、動作状況認識部１１０は、例えば、図４のＤＬＬ回路４００の方式が採用されて、高速クロック用可変遅延回路２３０および高速クロック用位相比較回路２４０の両方の機能を有した回路を有してもよい。その回路は、ＤＬＬ回路４００の回路１６０に対応する。この場合、その回路は、高速クロックＳ２１を入力し、高速クロック用初期遅延情報Ｓ２２または高速クロック用遅延制御情報Ｓ２５を元に、高速クロックＳ２１を遅延させる。そして、その回路は、ＤＬＬロックするまで繰り返し、高速クロックＳ２１と、遅延させた後の高速クロック、つまり高速３６０度位相差検出用クロックＳ２３との位相差を表す高速クロック用位相差情報Ｓ２４を生成する。つまり、生成することが繰り返される。
【００６６】
また、動作状況認識部１１０は、例えば、図５のＤＬＬ回路５００の方式が採用されて、高速クロック用位相比較回路２４０および高速クロック用遅延制御回路２５０の両方の機能を有した回路（回路１７０）を有してもよい。この場合、その回路は、高速クロックＳ２１および高速３６０度位相差検出用クロックＳ２３を元に、高速クロック用可変遅延回路２３０の遅延の程度を制御するために高速クロック用遅延制御情報Ｓ２５を、高速クロック用可変遅延回路２３０へとフィードバックする。そして、その回路は、ＤＬＬロックすると、動作状況情報Ｓ１１（図２）を出力する。
【００６７】
また、動作状況認識部１１０は、例えば、図６のＤＬＬ回路６００の方式が採用されて、高速クロック用可変遅延回路２３０および高速クロック用遅延制御回路２５０の両方の機能を有した回路（回路１８０）を有してもよい。この場合、その回路は、高速クロックＳ２１と、高速クロック用初期遅延情報Ｓ２２または高速クロック用位相差情報Ｓ２４とを元に、高速クロックＳ２１を遅延させる。そして、その回路は、ＤＬＬロックするまで、繰り返し、高速３６０度位相差検出用クロックＳ２３を生成する。つまり、生成することが繰り返される。そして、その回路は、ＤＬＬロックすると、動作状況情報Ｓ１１（図２）を出力する。
【００６８】
図３は、本発明におけるＤＬＬロックの処理のフローチャートの一実施例として示した図である。
【００６９】
まず、温度、電圧またはクロック周波数などを検知する動作状況認識部１１０によって、動作状況情報Ｓ１１を生成する（ステップ３１）。次に、動作状況情報Ｓ１１を元に、初期遅延決定部１２０が、初期遅延情報Ｓ１２を生成する（ステップ３２）。
【００７０】
次に、ＤＬＬ回路１００がロックした状態になく、かつ可変遅延回路１３０による遅延の付加および位相比較回路１４０による位相比較を一度も行っていない一巡目のＤＬＬロック探索である場合において、可変遅延回路１３０が処理を行う。この処理で、可変遅延回路１３０は、初期遅延情報Ｓ１２で指定された分だけ、基準クロックＳ０１に対して遅延を付加した３６０度位相差検出用クロックＳ１３を生成する（ステップ３３）。
【００７１】
続いて、位相比較回路１４０が、可変遅延回路１３０によって基準クロックＳ０１を遅延した３６０度位相差検出用クロックＳ１３と、基準クロックＳ０１との位相差を検出する（ステップ３４）。もし、ステップ３４にて、基準クロックＳ０１と、３６０度位相差検出用クロックＳ１３とが単位遅延の位相差しかない場合（ステップ３４：ｙｅｓ）、ＤＬＬ回路１００はロックしている状態である。そこで、基準クロックＳ０１に対して３６０度位相遅れとなっている３６０度位相差検出用クロックＳ１３を生成するために可変遅延回路１３０が要した遅延素子数を、遅延制御回路１５０が、ロック遅延素子数情報Ｓ０２として出力する（ステップ３５）。
【００７２】
参照クロックまたはロック遅延素子数情報Ｓ０２は、内部制御用のクロックや他の信号を、基準クロックから所定の位相差分だけ遅延させるときに使用される。
【００７３】
ステップ３４において、検出した位相差が単位遅延より大きいと遅延制御回路１５０により判定される場合（ステップ３４：ｎｏ）、その位相差に応じて、遅延制御回路１５０は可変遅延回路１３０で基準クロックに付加されている遅延素子数を増減させる遅延制御情報Ｓ１５を生成する（ステップ３６）。なお、遅延制御情報Ｓ１５は、増減により変化された後の遅延素子数を特定する。
【００７４】
ここで遅延制御回路１５０が増減させる遅延素子数は単位遅延だけでも良いし、位相差の程度に応じて、遅延制御回路１５０が、増減させる遅延素子数を制御できるように、遅延制御回路１５０が実装されていても良い。一方で、遅延制御回路１５０は、動作状況認識部１１０から動作状況情報Ｓ１１を取得し、または動作状況認識部１１０と同じ手法で動作状況情報を生成してもよい。そして、遅延制御回路１５０は、温度、電圧もしくはクロック周波数が所定のレベルを超えて変動した場合または常に、次の処理を行う。行われる処理は、温度、電圧もしくはクロック周波数の情報の少なくとも何れか一つを使用して推定したロック遅延素子数と、ステップ３６にて生成した遅延制御情報（遅延制御情報Ｓ１５）より得られる遅延素子数との差が、基準Ａより大きいか否かを判定する（ステップ３７）処理である。
【００７５】
ここで、基準Ａは固定値であっても、ハード的に自動更新される値であっても、ユーザ設定可能なレジスタなどによって設定可能であっても良い。遅延制御回路１５０は、ステップ３７の上記の差が基準Ａより大きい場合（ステップ３７：ｙｅｓ）、ステップ３６で生成した遅延制御情報を、動作状況情報より得られる遅延素子数に更新して、出力される遅延制御情報Ｓ１５とする（ステップ３８、３９）。そして、遅延制御回路１５０は、ステップ３７で得られる差が基準Ａ以下の場合（ステップ３７：ｎｏ）、ステップ３６で得られた遅延制御情報を、そのまま、出力される遅延制御情報Ｓ１５として使用する（ステップ３９）。
【００７６】
なお、上記の差が基準Ａより大きい場合、ステップ３９で、可変遅延回路１３０は、ステップ３８での遅延制御情報Ｓ１５に応じて基準クロックを遅延させた３６０度位相差検出用クロックを生成する。
【００７７】
以降、ＤＬＬ回路１００は、ステップ３４にてＤＬＬロックしていると判断されるまで、ステップ３４〜ステップ３９の処理を繰り返し（ステップ３４：ｎｏ）、ステップ３４にてＤＬＬロック判定された場合は（ステップ３４：ｙｅｓ）、ステップ３５を実行して、図３の動作を終了する。
【００７８】
ここで、ロック素子数情報Ｓ０２による参照クロックにより、例えば、参照クロックと同期されるなどして、データ信号（ＤＡＴＡ信号）が通信される。つまり、基準となる基準クロックＳ０１に対して、ＤＡＴＡ信号を、例えば位相差５０度の信号にしたいと思ったときに、最初から、基準クロックＳ０１に対して５０度ずれたクロック（参照クロック）を予め作っておいて、ＤＡＴＡ信号と参照クロックを同期させる。これにより、結果として、ＤＡＴＡ信号も、基準クロックに対して５０度の位相差になる。
【００７９】
そのために、使用する参照クロックを、基準クロックに対して５０度ずらすのに際して、どうすれば、ずらされた参照クロックを生成するのが早いかという目的の下で、上記のＤＬＬ回路１００は構成される。つまり、ＤＬＬ回路１００の目的は、「参照クロックを早く作ること」である。
【００８０】
そして、整理すると、基準クロック、参照クロック、及び３６０度位相差検出用クロックのそれぞれについて、次のように説明される。
【００８１】
つまり、基準クロックＳ０１は、基準となるクロックであり、このクロックに対して、参照クロックの位相差の角度を遅延させた参照クロックを生成したいクロックである。
【００８２】
そして、参照クロックは、これに、ＤＡＴＡ信号を同期させることで、結果として、基準クロックＳ０１から、適切な角度だけ、ＤＡＴＡ信号の位相差がずれるクロックである。このＤＬＬ回路１００は、この参照クロックを、早い時間で、つまり、遅れが生じることなく作る目的の下での回路である。
【００８３】
そして、３６０度位相差検出用クロックＳ１３は、参照クロックを作るために必要なクロックである。ここで、基準クロックＳ０１に対して、３６０度の位相差を有するクロックを作るためには、遅延素子の何個分（何素子分）が必要なのかというのを、この「３６０度位相差検出用クロック」（遅延クロックＳ１３）を、互いに異なる複数の素子数のうちのそれぞれの素子数で遅延させていくことで、検出する。ここで、３６０度位相差検出用クロックＳ１３の位相差が、３６０度になることは、ＤＬＬロックと呼ばれる。例えば、３６０度位相差検出用クロックＳ１３を使っているうちに、ＤＬＬロックしたときに、３６０度位相差検出用クロックＳ１３の生成のために、３６０個の遅延素子が必要だったときには、次の通りである。すなわち、参照クロックを、基準クロックＳ０１から５０度遅延させたいと思ったら、３６０個に、５０度／３６０度を乗算して、５０個の遅延素子が特定され、この５０個の遅延素子が必要だということが特定される。
【００８４】
ここで、要約すれば、例えば、次の通りである。つまり、ＤＬＬ回路１００では、遅延素子を利用して、ＤＬＬロックするまで反復的に、基準クロックＳ０１を遅延させた遅延クロック（３６０度位相差検出用クロック）Ｓ１３と、基準クロックＳ０１との位相差を比較する。そして、ＤＬＬ回路１００では、反復回数が多いため、ＤＬＬロックするまでの時間が長時間になることが回避される。すなわち、ＤＬＬ回路１００は、動作状況認識部１１０で取得した温度、電圧、クロック周波数の少なくともいずれか一つに応じて初期遅延決定部１２０によって決定された初期遅延素子数（素子数情報、初期遅延情報）Ｓ１２と、遅延制御回路１５０からの遅延制御情報Ｓ１５とが可変遅延回路１３０にフィードバックされる。このことにより、温度、あるいは電圧、あるいはクロック周波数に応じた最適な初期遅延からのエッジ検出が可能となる。そして、さらに、温度、あるいは電圧、あるいはクロック周波数の変化に対応してロック時間を短縮することが可能である。
【００８５】
このように、実施形態のＤＬＬ回路（ＤＬＬ回路１００）は、次の説明の通りである。ただし、次の説明は、単なる一例である。
【００８６】
前記動作状況情報は、温度情報と、電圧情報と、周波数情報とのうちの少なくとも１つである。ここで、温度情報は、その温度が高いほど、前記相対遅延時間が長い、前記遅延素子の温度を特定する。電圧情報は、その電圧が低いほど、前記相対遅延時間が長い、前記遅延素子の電圧を特定する。周波数情報は、その周波数が高いほど、前記相対遅延時間が長い、前記基準クロックの周波数を特定する。
【００８７】
前記動作状況取得部は、第１の前記動作状況情報（低い温度の動作状況情報Ｓ１１など）と、第１の前記動作状況情報に対応する第１の前記相対遅延時間よりも長い第２の前記相対遅延時間に対応する第２の動作状況情報（高い温度の動作状況情報Ｓ１１など）とを取得する。
【００８８】
前記初期遅延決定部は、前記情報取得部により第１の前記動作状況情報が取得された場合、第１の素子数を特定する第１の前記遅延制御情報（素子数情報Ｓ１２）を生成する。また、前記初期遅延決定部は、第２の前記動作状況情報が取得された場合、前記第１の素子数よりも少ない第２の素子数を特定する第２の前記遅延制御情報（素子数情報Ｓ１２）を生成する。
【００８９】
前記可変遅延回路は、前記初期遅延決定部により生成された前記遅延制御情報により特定される前記素子数の前記遅延素子による遅延が前記基準クロックに付加されたクロックを、前記遅延クロック（遅延クロックＳ１３）として生成する。
【００９０】
第１の前記所定角度は、３６０度である。
【００９１】
前記遅延制御回路は、前記位相比較回路により検出された前記位相差が３６０度の位相差である場合（ステップ３４：ｙｅｓ）、前記遅延クロックの前記遅延制御情報を、３６０度の位相差の前記遅延制御情報と特定する。他方、前記遅延制御回路は、検出された前記位相差が３６０度の位相差ではない場合（ステップ３４：ｎｏ）、フィードバックにより特定された前記遅延制御情報を、３６０度の位相差の前記遅延制御情報と特定する。
【００９２】
前記参照クロックは、メモリのデータ信号が通信されるのに際して、その通信のタイミングの基準として利用される、前記基準クロックに対して、第２の所定角度の位相差の遅延が付加されたクロックである。そして、前記参照クロックは、前記遅延制御回路により特定された、３６０度の前記遅延制御情報により特定される前記素子数（ロック素子数情報Ｓ０２）と、３６０度及び第２の前記所定角度の間の比とに対応する素子数の前記遅延素子による遅延が前記基準クロックに付加されたクロックである。前記参照クロックは、例えば、前記遅延制御回路により生成されてもよい。
【００９３】
なお、前記動作状況情報は、前記ＤＬＬ回路における、前記遅延素子の温度と、前記遅延素子の電圧と、前記基準クロックの周波数とのうちの少なくとも１つの値を示し、前記ＤＬＬ回路が動作するうちに、示される前記値が変化し、前記基準クロックの波長に対する、前記遅延素子による遅延の相対的な遅延時間が、示される前記値に対応する時間である情報であるといえる。
【００９４】
このため、遅延素子の温度等が変化しても、例えば、変化しない場合に取得される、第１の動作状況情報とは異なる、第２の動作状況情報が取得される等する。これにより、より適切な素子数で遅延クロックが生成され、迅速に、３６０度の素子数が特定される。そして、ひいては、迅速に、参照クロックが生成され、データ信号の通信が迅速に行われる。
【００９５】
続けて説明がされる。ただし、次の説明も、単なる一例である。
【００９６】
実施形態のＤＬＬ回路（ＤＬＬ回路１００）は、取得部（動作状況認識部１１０）と、遅延回路（可変遅延回路１３０）と、制御部（位相比較回路１４０、遅延制御回路１５０、初期遅延決定部１２０）との３つの部分を備えると捉えられてもよい。
【００９７】
遅延回路は、遅延素子の素子数が指定され（素子数情報Ｓ１２）、指定された素子数の遅延素子による遅延を基準クロック（基準クロックＳ０１）に付加した遅延クロック（遅延クロックＳ１３）を生成する（ステップ３２）。
【００９８】
取得部は、前記ＤＬＬ回路（遅延回路、遅延素子など）に表れる回路情報（動作状況情報Ｓ１１）を取得する（ステップ３１）。取得される回路情報は、前記遅延回路に指定されることにより、所定角度（３６０度）の位相差の前記遅延クロックが生成される素子数を示す情報である。
【００９９】
制御部は、前記取得部により取得された前記回路情報により示される前記素子数を前記遅延回路に指定する（ステップ３２）。
【０１００】
そして、制御部は、制御部により前記素子数が指定された前記遅延回路により生成される前記遅延クロックが、所定角度のクロックか否かを判定し、所定角度のクロックであると判定した場合（ステップ３４：ｙｅｓ）、参照クロックが生成される際の基準の素子数として、前記遅延回路に指定した前記素子数を特定する。
【０１０１】
他方、制御部は、所定角度のクロックではないと判定した場合（ステップ３４：ｎｏ）、前記遅延回路に指定した前記素子数以外の他の素子数を、所定角度の素子数と特定するための処理をして（ステップ３６〜３９、３４〜３５）、その処理により特定された他の素子数を、上記された基準の素子数として特定する。
【０１０２】
先述のようにして、回路情報が取得されての動作が行われることで、この、他の素子数を特定する処理が不要になったり、短い時間での処理になったりする。これにより、少ない処理で、迅速に、基準となる、３６０度の素子数が特定される。つまり、少ない処理で、迅速に、ＤＬＬロックができる。これにより、ひいては、少ない処理で、迅速に、参照クロックが生成できる。これにより、さらには、少ない処理で、迅速に、メモリのデータ信号の通信ができる。
【０１０３】
なお、回路情報は、当該要素の状態が変化することが原因となって、遅延素子の相対遅延時間が変化する結果が生じる要素（遅延素子の温度等）の前記状態（温度の値等）を示す情報である。ここで、要素とは、例えば、ＤＬＬ回路が動作するうちに変化する、ＤＬＬ回路（遅延回路、遅延素子など）の一部又は全部の属性（温度、電圧、周波数など）である。例えば、回路情報は、その状態の変化を示す。そして、回路情報は、（変化後の）状態を示すことにより、その状態に対応した、適切な素子数を特定する。
【０１０４】
取得部は、例えば、ＤＬＬ回路における、遅延素子以外の他の箇所の温度等を検知することにより、間接的に、遅延素子の温度等を検知してもよい。取得部は、例えば、温度を検知する温度検知器、電圧を検知する電圧検知器、周波数を検知する周波数検知器のうちの少なくとも１つである。
【０１０５】
ＤＬＬ回路は、例えば、複数の遅延素子を備える。そして、複数の遅延素子は、それらの複数の遅延素子のうちで、遅延を付加する遅延素子の素子数に略比例した長さの遅延を、基準クロックに付加する。複数の遅延素子は、例えば、可変遅延回路１３０に含まれてもよい。
【０１０６】
遅延回路は、例えば、当該遅延回路に対して指定された遅延量（遅延の長さ、素子数情報Ｓ１２）が入力され、入力された遅延量の近傍に含まれる長さの遅延を、基準クロックＳ０１に付加してもよい。付加される遅延の長さは、その近傍のうちで、取得された回路情報に対応した長さである。これにより、より適切な長さの遅延が付加できる。
【０１０７】
所定角度（３６０度）の位相差とは、所定角度と同一又は近傍の位相差をいうと理解されてもよい。
【０１０８】
なお、ＤＬＬ回路１００は、上記の説明では言及されない技術事項を更に具備してもよいのは当然である。ここで、ＤＬＬ回路１００は、その技術事項として、例えば、更に他の構成要素を備えてもよいし、上述の動作以外の他の動作を更に行ってもよい。
【０１０９】
また、互いに離れた２箇所で言及された２つの技術事項は、適宜組み合わせられてよい。それらの２つの技術事項の記載は、組み合わせられた形態の技術を開示する。
【産業上の利用可能性】
【０１１０】
以上説明してきた通り、本発明に係る回路はクロックに同期して高速に動作するメモリにアクセスするシステムにおいて、電圧や温度、クロック周波数制御によりメモリアクセスの制御を行うので、複数バンクから成るメモリへアクセスを行うシステムにおいて有用である。
【符号の説明】
【０１１１】
１００  ＤＬＬ回路
１１０  動作状況認識部
１２０  初期遅延決定部
１３０  可変遅延回路
１４０  位相比較回路
１５０  遅延制御回路
２１０  高速クロック生成部
２２０  高速クロック用初期遅延決定部
２３０  高速クロック用可変遅延回路
２４０  高速クロック用位相比較回路
２５０  高速クロック用遅延制御回路
３１０  乗算器
【図１】
2011049660.tif 000003
【図２】
2011049660.tif 000004
【図３】
2011049660.tif 000005
【図４】
2011049660.tif 000006
【図５】
2011049660.tif 000007
【図６】
2011049660.tif 000008