(57)【要約】【課題】電源電圧や温度条件を制限することなく、システム全体の高速動作を可能にする半導体集積回路装置を提供する。【解決手段】メモリコントローラ１は、メモリに制御信号の位相を遅延して出力する遅延回路５、最長のデータ送受信経路に相当する配線長を有する第１の信号線６と最短のデータ送受信経路に相当する配線長を有する第２の信号線７を経由して、メモリにパイロットデータを送信するパイロットデータ設定回路４、および位相調整手段１３を備える。判定手段２は、第１の信号線６、第２の信号線７のそれぞれを経由したパイロットデータを制御信号によって受信するとともに、制御信号の位相を異ならせることによってパイロットデータの読み取り可能な適正位相を判定する。位相調整手段１３では遅延回路５から出力される制御信号をメモリとのデータ送受信に最適な位相に調整する。【選択図】図１
2008225956.tif 000002
【特許請求の範囲】
【請求項１】
メモリに対してのデータ送受信を制御信号によって制御する半導体集積回路装置において、
前記メモリに前記制御信号の位相を遅延して出力する遅延手段と、
最長のデータ送受信経路に相当する配線長を有する第１の信号線、および最短のデータ送受信経路に相当する配線長を有する第２の信号線を経由して、パイロットデータを送信するパイロットデータ設定手段と、
前記第１の信号線、および前記第２の信号線のそれぞれを経由した前記パイロットデータを前記制御信号によって受信するとともに、前記制御信号の位相を異ならせることによって前記パイロットデータの読み取り可能な適正位相を判定する判定手段と、
前記判定手段における前記適正位相の判定結果に基づいて、前記遅延手段から出力される前記制御信号を前記メモリとのデータ送受信に最適な位相に調整する位相調整手段と、
を備えたことを特徴とする半導体集積回路装置。
【請求項２】
前記パイロットデータ設定手段では、前記パイロットデータを出力値が予め確定されたダミー信号として送信することを特徴とする請求項１記載の半導体集積回路装置。
【請求項３】
前記判定手段は、
前記制御信号のタイミングを所定時間だけ遅延させて複数の遅延クロックを生成する遅延クロック生成回路と、
前記第１の信号線を介して送信されたパイロットデータを、前記遅延クロックにそれぞれ同期して複数のタイミングで読み取る第１の読み取り回路と、
前記第２の信号線を介して送信されたパイロットデータを、前記遅延クロックにそれぞれ同期して複数のタイミングで読み取る第２の読み取り回路と、
前記第１、および第２の読み取り回路の出力を比較して、前記パイロットデータが読み取り可能な適正位相範囲を判定するタイミング判定回路と、
を具備することを特徴とする請求項１または２記載の半導体集積回路装置。
【請求項４】
前記遅延手段は、
クロックの位相が異なる複数の遅延クロックを生成する遅延回路と、
前記判定手段の適正位相の判定結果に応じて、前記遅延クロックのいずれか一つを前記制御信号として選択する選択回路と、
を具備したことを特徴とする請求項１乃至３の何れか一項に記載の半導体集積回路装置。
【請求項５】
インタフェースとメモリとの間でのデータ送受信を制御するための制御信号のタイミングを調整するタイミング調整方法において、
遅延手段が、前記メモリに前記制御信号の位相を遅延して出力する際に、
パイロットデータ設定手段が、最長のデータ送受信経路に相当する配線長を有する第１の信号線、および最短のデータ送受信経路に相当する配線長を有する第２の信号線を経由して、前記メモリにパイロットデータを送信し、
判定手段が、前記第１の信号線、および前記第２の信号線のそれぞれを経由した前記パイロットデータを前記制御信号によって受信するとともに、前記制御信号の位相を異ならせることによって前記パイロットデータの読み取り可能な適正位相を判定し、
位相調整手段が、前記判定手段における前記適正位相の判定結果に基づいて、前記遅延手段から出力される前記制御信号を前記メモリとのデータ送受信に最適な位相に調整する、
ことを特徴とするタイミング調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリに対してのデータ送受信を制御信号によって制御する半導体集積回路装置およびタイミング調整方法に関し、とくに大規模集積回路（ＬＳＩ）から外部接続されたメモリにアクセスする際、所定のクロックに同期して制御信号を生成し、制御信号に最適なクロックタイミングを検出して、メモリコントローラから最適な位相に調整された制御信号が出力されるように自動的に調整が可能な半導体集積回路装置およびタイミング調整方法に関する。
【背景技術】
【０００２】
ＬＳＩにメモリを接続してアクセスする場合に、そのデータ線やアドレス線は複数本、しかも長短様々なものが用いられる。ところが、メモリの読み書きに用いられる制御信号については、通常、１本のクロック信号線により同一のクロックタイミングとして与えられる。
【０００３】
近年、ＬＳＩは集積度が高まり回路動作が高速になるに従って、メモリにアクセスする速度も高速になってきている。アクセスが高速になれば、使用されるクロックタイミングの精度も厳しく管理されることになる。ところが、その制御信号はメモリの種類、あるいはメモリをコントロールするための制御回路の配置や配線方法に応じて、様々な長さのデータ線やアドレス線に適合したクロックタイミングに調整されていなければならない。しかも、このデータ線の本数が増えると、配線長のばらつきは大きくなって、クロックタイミングに許容される精度範囲も狭くなる。
【０００４】
また、集積回路基板上で複数本のデータ線を用いる場合は、動作電圧やデバイスの温度など外部環境が変化することで、クロックタイミング自体が大きな影響を受ける。そこで、メモリアクセスを高速にするには、その環境変化の影響も考慮して、最適なタイミングのクロックで制御信号が生成されていることが望ましい。
【０００５】
たとえば、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）などのメモリは、外部から供給されるクロック信号に同期して動作する。データ入力端子へ所定ビット数のデータを入力すると共にアドレス入力端子へ書き込みの先頭アドレスを入力し、クロック信号を供給すると、最初にクロック信号を受けたときに当該データのうちの１ビットを当該先頭アドレスに書き込み、続くクロック信号を受ける度に当該データの他のビットを当該先頭アドレス以下に続くアドレスに順次書き込んでいく。したがって、ＳＤＲＡＭとデータを授受する半導体集積回路は、書き込もうとするデータとその書込アドレスや読み出そうとするデータの読出アドレスをＳＤＲＡＭへ供給するに際し、それらをＳＤＲＡＭにおいて取り込ませるためのクロック信号を併せて供給しなければならない。
【０００６】
ところが、半導体集積回路とＳＤＲＡＭとの接続では、データやアドレスの入出力端子間とクロックの入出力端子間とで距離が異なるので、それぞれの間の配線遅延によって両者間を伝達する信号に時間的なずれが生じる。このため、半導体集積回路においては、ＳＤＲＡＭに対するクロック信号の供給タイミングを調整し、データの授受が確実に行えるようにする構成が必要となる。
【０００７】
そこで、ＳＤＲＡＭに対するクロック信号の供給を自動的に最適なタイミングに調整する半導体集積回路およびクロック遅延調整方法が提案されている（たとえば特許文献１参照。）。こうした半導体集積回路では、煩雑なテストを要せずしてＳＤＲＡＭに対するクロック供給のタイミングを調整することができ、メモリの効率的な使用を実現するクロック遅延調整方法が提供できる。
【特許文献１】特開２０００−２３５５１７号公報（段落番号［００２２］〜［００６３］）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
このように配線遅延に対処する際には、メモリとのデータの受け渡し動作の可能なクロック信号の周波数範囲を決定する必要がある。ところが、動作速度が速くなるほど電源電圧や温度保証の範囲が狭くなり、電源電圧や温度の許容範囲を変えない場合には、システム全体の動作速度に限界が生じるという問題が生じる。
【０００９】
すなわち、メモリモジュールを含む回路システムで、クロック信号のタイミングを設計する際に、高速でデータの読み書き動作を実行するためには、電源電圧や温度範囲を限定しなければならず、回路システムの動作に安定性が失われる。反対に、電源電圧の変動や温度変化に対して安定して動作するようにメモリアクセスの速度を決定すると、システム全体の動作速度が制限されるという問題があった。
【００１０】
本発明はこのような点に鑑みてなされたものであり、電源電圧や温度条件を制限することなく、システム全体の高速動作を可能にする半導体集積回路装置およびタイミング調整方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明では、上記問題を解決するために、図１に示すような、メモリ（図示せず）に対してのデータ送受信を制御信号によって制御する半導体集積回路装置が提供される。この半導体集積回路装置は、制御信号の位相を遅延して出力する遅延手段（遅延回路５）と、最長のデータ送受信経路に相当する配線長を有する第１の信号線６、および最短のデータ送受信経路に相当する配線長を有する第２の信号線７を経由して、メモリにパイロットデータを送信するパイロットデータ設定手段（パイロットデータ設定回路４）と、第１の信号線６、および第２の信号線７のそれぞれを経由したパイロットデータを制御信号によって受信するとともに、制御信号の位相を異ならせることによってパイロットデータの読み取り可能な適正位相を判定する判定手段２と、判定手段２における適正位相の判定結果に基づいて、遅延手段（遅延回路５）から出力される制御信号をメモリとのデータ送受信に最適な位相に調整する位相調整手段１３とを備えたことを特徴とする。
【００１２】
この半導体集積回路装置では、図１に示すように、判定手段２により送受信されるデータと制御信号とのタイミング関係を判定して、制御信号のタイミングがデータに対して早すぎる場合には遅らせ、逆に遅すぎる場合には早めて、常に制御信号のタイミングをデータに対して最適な位相となるように、位相調整手段１３で制御信号の遅延量を調整するようにした。
【００１３】
したがって、配線遅延がデバイス毎にばらついていても、それらの誤差がタイミング調整操作により補正できる。また、システムの動作中に電源電圧や温度変化などの外部要因により制御信号のタイミングに変動が生じた場合でも、最適なタイミングに調整された制御信号を供給することができる。その結果、システムの電源電圧変動や温度マージンが大きくとれるため、システムの安定動作が確保できる。また、きめ細かなタイミング調整が行われるため、より高速でシステムを動作させることが可能になる。
【００１４】
さらに、本発明ではインタフェースとメモリとの間でのデータ送受信を制御するための制御信号のタイミングを調整するタイミング調整方法が提供できる。このタイミング調整方法は、遅延手段が、前記メモリに前記制御信号の位相を遅延して出力する際に、パイロットデータ設定手段が、最長のデータ送受信経路に相当する配線長を有する第１の信号線、および最短のデータ送受信経路に相当する配線長を有する第２の信号線を経由して、前記メモリにパイロットデータを送信し、判定手段が、前記第１の信号線、および前記第２の信号線のそれぞれを経由した前記パイロットデータを前記制御信号によって受信するとともに、前記制御信号の位相を異ならせることによって前記パイロットデータの読み取り可能な適正位相を判定し、位相調整手段が、前記判定手段における前記適正位相の判定結果に基づいて、前記遅延手段から出力される前記制御信号を前記メモリとのデータ送受信に最適な位相に調整する、ことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、メモリのデータ送受信を制御する制御信号をその時点の外部条件下での最適タイミングを検出することによって、その後に外部条件に変動が発生しても、自動的に最適タイミングに調整し直すことにより、電源電圧や温度条件を制限することなくシステム全体の高速動作が可能になる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して、この発明の実施の形態について説明する。まず、本発明の概念について説明して、その後、実施の形態の具体的な内容について説明する。
図１は、本実施の形態の半導体集積回路装置の概略を説明する図である。
【００１７】
図１の半導体集積回路装置は、インタフェース回路を含むシステム側のメモリコントローラ１と、メモリボードなどに配置された判定手段２とによって、メモリに与えられるクロックのタイミング検出、判定、調整を行うためのメモリシステム全体が構成されている。
【００１８】
インタフェース回路側のメモリコントローラ１には、クロック生成回路３、パイロットデータ設定回路４、遅延回路５および位相調整手段１３が配置され、判定手段２との間が第１の信号線６、第２の信号線７、およびクロックライン１４によって接続されている。このとき第１の信号線６はデータ線やアドレス線の中で最も長い配線長に相当するラインとして、第２の信号線７は最も短い配線長に相当するラインとして想定されている。
【００１９】
判定手段２は、パイロットデータ読み取り回路８、遅延クロック生成回路９、タイミング判定回路１０から構成され、メモリ接続端子２ａを介して図示しないメモリと接続されている。この判定手段２は、第１の信号線６、および第２の信号線７のそれぞれを経由したパイロットデータを制御信号によって受信するとともに、制御信号の位相を異ならせることによって、タイミング判定回路１０によりパイロットデータの読み取り可能な適正位相を判定するものである。
【００２０】
クロック生成回路３は、判定手段２に制御信号を出力するためのクロック信号を生成しており、遅延回路５は制御信号の位相を遅延して出力するものである。メモリコントローラ１からは、遅延回路５によって遅延された制御信号がクロックライン１４を介して判定手段２側に出力される。
【００２１】
パイロットデータ設定回路４は、第１の信号線６および第２の信号線７からパイロットデータをメモリボード側の判定手段２に供給している。
パイロットデータ読み取り回路８は、第１の信号線６および第２の信号線７からパイロットデータが供給される第１および第２の読み取り回路８１，８２を備えている。遅延クロック生成回路９は、所定時間だけ遅延させて複数の遅延クロックを生成するものであって、たとえば偶数段のバッファ回路９１〜９ｎを直列に繋げて構成され、遅延量が少しずつ異なるｎ個の遅延クロック信号を生成している。なお、第１、第２の読み取り回路８１，８２は、いずれも後述するように（２ｎ＋１）段のフリップフロップ回路で構成されている。
【００２２】
メモリコントローラ１から出力された制御信号は、クロックライン１４を通って遅延クロック生成回路９の初段のバッファ回路９１とパイロットデータ読み取り回路８に供給されている。パイロットデータ読み取り回路８を構成する第１、第２の読み取り回路８１，８２には、クロックライン１４から直接に制御信号が入力されるだけでなく、その遅延された制御信号がバッファ回路９１〜９ｎから入力している。
【００２３】
第１の読み取り回路８１では、第１の信号線６を介して送信されたパイロットデータが、遅延クロック生成回路９からの遅延クロックにそれぞれ同期して複数のタイミングで読み取られる。同様に、第２の読み取り回路８２では、第２の信号線７を介して送信されたパイロットデータが、遅延クロック生成回路９からの遅延クロックにそれぞれ同期して複数のタイミングで読み取られる。
【００２４】
タイミング判定回路１０は、パイロットデータ読み取り回路８に接続され、第１、および第２の読み取り回路８１，８２からの出力が供給されている。ここでは、２つの読み取り回路８１，８２での読み取り結果を比較して、２つの信号線６，７を介して受信されたパイロットデータの読み取り可能な適正位相範囲が判定される。すなわち、実際にメモリに接続されたデータ線やアドレス線にとって、どのくらいのクロックタイミングが適切であるのかが検証され、その結果に応じてタイミング調整手段１３に制御信号のクロックタイミングの変更を指令している。
【００２５】
メモリコントローラ１の位相調整手段１３は、レジスタ更新回路１１および遅延量設定レジスタ１２から構成されている。レジスタ更新回路１１はタイミング判定回路１０からのタイミング範囲の調整値に応じて、増減いずれかが決定される。また、遅延量設定レジスタ１２の遅延量は、レジスタ更新回路１１によって周期的に更新することで変更される。
【００２６】
遅延回路５は位相調整手段１３に接続されていて、その遅延量が遅延量設定レジスタ１２により設定される。こうして、位相調整手段１３ではタイミング判定回路１０における適正位相の判定結果に基づいて、遅延回路５から出力される制御信号をメモリとのデータ送受信に最適な位相に調整することができる。
【００２７】
つぎに、上述した半導体集積回路装置の詳細について説明する。
図２は、本実施の形態の半導体集積回路装置の詳細な構成を示すブロック図である。
ここでは、図１の場合と同様に、メモリコントローラ１を構成する回路基板は、メモリボード側で判定手段２を構成する回路と第１の信号線６、第２の信号線７、およびクロックライン１４によって接続されている場合を示している。
【００２８】
メモリコントローラ１には、クロック生成回路３、パイロットデータ設定回路４、図１の遅延回路５に相当するｍ段のバッファ回路５１〜５ｍとセレクタ回路５０、遅延量設定レジスタ１２、および図１のレジスタ更新回路１１に相当するインクリメント回路１１ａ、ディクリメント回路１１ｂ、セレクタ回路１１ｃが配置されている。
【００２９】
遅延回路５のバッファ回路５１〜５ｍでは、タイミングの異なる複数のクロックが生成され、それらがすべてセレクタ回路５０に出力される。セレクタ回路５０では、タイミングの異なったクロックの中から１つが選択され、クロックライン１４を介して制御信号としてメモリボード側に出力される。このセレクタ回路５０は、後述する遅延量設定レジスタ１２の設定値に応じて、その出力値が確定されるものであって、遅延量の設定値を書き換えることにより選択されるクロックが切り替えられて、制御信号のタイミングを変化させるようにしている。
【００３０】
メモリボード側には、判定手段２とともにメモリ２０が配置されている。ここでは、第１の読み取り回路８１が７段のフリップフロップ回路８１１〜８１７によって構成され、第２の読み取り回路８２も７段のフリップフロップ回路８２１〜８２７によって構成されている。また、遅延クロック生成回路９は、６個のバッファ回路９１〜９６が直列に接続され、初段のバッファ回路９１がクロックライン１４と接続され、各段から制御信号のタイミングを少しずつ遅延した６つの遅延クロックが出力されるように構成している。
【００３１】
フリップフロップ回路８１１〜８１７とフリップフロップ回路８２１〜８２７は、それぞれ第１、第２の信号線６，７によってメモリコントローラ１と接続されている。たとえば、一方の信号線６は７段のフリップフロップ回路８１１〜８１７のデータ端子（Ｄ）に接続され、他方の信号線７は７個のフリップフロップ回路８２１〜８２７のデータ端子（Ｄ）に接続される。
【００３２】
これらの信号線６，７は、いずれもタイミングの検出を行うためのダミーのデータライン（ダミーライン）であって、その一方の信号線６（第１の信号線）は実際にコントローラ側からメモリに入力されるデータ線のうち、配線長が最も長い最長経路に相当する配線長を有する。また、他方の信号線７（第２の信号線）は、配線長が最も短い最短経路に相当する配線長を有するものである。すなわち、メモリコントローラ１とメモリボード側のメモリ２０とを接続するデータ線やアドレス線は、２本の信号線６，７の中間の長さを有することになる。
【００３３】
ここで、フリップフロップ回路８１１と８２１のクロック端子（ＣＫ）には、クロックライン１４を介して第１のセレクタ回路５０で選択された制御信号が入力している。また、その他のフリップフロップ回路８１２〜８１７、およびフリップフロップ回路８２２〜８２７の対応する段には、６個のバッファ回路９１〜９６から対応する遅延クロックがクロック端子（ＣＫ）に入力されている。また、フリップフロップ回路８１１〜８１７、８２１〜８２７の出力端子Ｒ１〜Ｒ７およびＱ１〜Ｑ７は、タイミング判定回路１０に接続されている。
【００３４】
メモリ２０は、メモリボード上で実際に使用されるものであって、ここでは遅延クロック生成回路９の６個のバッファ回路９１〜９６の中間位置に相当するバッファ、すなわち３番目のバッファ回路９３から出力される遅延クロックが制御信号として使用される。したがって、この制御信号のタイミングは、２組の読み取り回路８１，８２に供給される遅延クロックのうち、中間のクロックタイミングと一致している。
【００３５】
タイミング判定回路１０は、フリップフロップ回路８１１〜８１７，８２１〜８２７の出力端子Ｒ１〜Ｒ７およびＱ１〜Ｑ７と接続され、異なるクロックタイミングの範囲でパイロットデータが適正に読み取られたかを判別することにより、制御信号の適正位相を判定している。
【００３６】
ここでは、パイロットデータをフリップフロップ回路８１１〜８１７，８２１〜８２７で読み取るときに、パイロットデータを正しく読み取る位相範囲が中央となるような判定動作が実行される。そのような制御信号であれば、メモリ２０とのデータの授受において、後述するようにクロックタイミングのマージンが一番大きくなるからである。そこで、タイミング判定回路１０では、複数の読み取り結果のうち、どの範囲のデータが正しく取り込めているかどうかを判断し、クロックのタイミングを早めるか、遅らせるか、あるいは適正なのかに関する読み取り結果の判定信号を第２のセレクタ回路１１ｃに出力するように構成されている。
【００３７】
つぎに、上記構成のタイミング調整回路の動作について説明する。
クロック生成回路３では、基準となるクロック信号が生成され、このクロック信号がシステム全体を動作させるためのクロック、あるいはメモリをアクセスするための基準クロックとなる。したがって、生成されたクロック信号は、パイロットデータ設定回路４、バッファ回路５１、およびセレクタ回路５０に入力される。
【００３８】
パイロットデータ設定回路４のパイロットデータは、その出力値が予め確定されたダミー信号として設定されるものであって、それぞれ２本の信号線６，７に対してクロック信号に同期して出力される。
【００３９】
遅延量設定レジスタ１２では、第１のセレクタ回路５０に対して制御信号として出力するクロック信号を選択している。制御信号の初期値は、電源投入直後に、またはリセット信号を供給することによって確定するものであるが、半導体集積回路装置に規定される条件下でのＳＴＡ（スタティックなタイミング解析）などにより、あらかじめ最適な初期値を設定しておく。これにより補正動作による修正分をできるだけ少なくできる。
【００４０】
いま、フリップフロップ回路８１１〜８１７、８２１〜８２７の各段のクロック端子（ＣＫ）に、特定の制御信号のタイミングを所定時間だけ遅らせた遅延クロックが供給されると、それぞれに異なるタイミングで信号線６および７を経由して受信されたパイロットデータが取り込まれることになる。そこで、タイミング判定回路１０では、データが正しく読み取られたフリップフロップ回路が検知され、メモリ２０に対してクロックタイミングのマージンが一番大きくなるように、制御信号の位相を調整する。
【００４１】
すなわち、タイミング判定回路１０は、データが正しく取り込まれているフリップフロップ回路８１１〜８１７、８２１〜８２７がどの範囲であるかを判断して、クロックのタイミングを早めるか、あるいは遅らせるかの決定を行う。
【００４２】
レジスタ更新回路１１では、タイミング判定回路１０の判断に応じて、遅延量設定レジスタ１２の値を増加する場合はインクリメント回路１１ａを介して逐次更新させ、減少する場合はディクリメント回路１１ｂを介して逐次更新させる。すなわち、タイミング判定回路１０からの指令がアップカウントであれば、第２のセレクタ回路１１ｃではインクリメント回路１１ａの出力を用いて更新を行い、ダウンカウントであれば、ディクリメント回路１１ｂの出力を用いて更新を行う。そして、最適な場合には、遅延量設定レジスタ１２の値を更新しない。
【００４３】
つぎに、上述したタイミング判定回路１０におけるクロックタイミングの判定方法の一例について、具体的に説明する。
図３は、パイロットデータを読み取るために設けたフリップフロップ回路を示す図である。図４（ａ），（ｂ）は、配線長が異なる信号線を経由したパイロットデータの読み取り結果を示す図である。
【００４４】
図３では、図２のタイミング調整回路と同じく、７個ずつのフリップフロップ回路８１１〜８１７、８２１〜８２７を示している。配線長が最長の信号線に相当する第１の信号線６からのパイロットデータは、フリップフロップ回路８１１〜８１７（第１の読み取り回路８１）でデータＲ１〜Ｒ７として読み取られ、配線長が最短の信号線に相当する第２の信号線７からのパイロットデータは、フリップフロップ回路８２１〜８２７（第１の読み取り回路８１）でデータＱ１〜Ｑ７として読み取られる。このとき、６個のバッファ回路９１〜９６で生成される遅延クロックがそれぞれ均等な遅延時間であれば、バッファ回路９３からの遅延クロックのタイミングは、それらの中央のクロックタイミングと一致する。
【００４５】
いま、図４の読み取り結果は、７つのフリップフロップ回路８１１〜８１７，８２１〜８２７のうち、それぞれ読み取りが成功した場合を「○」で示し、失敗した場合を「●」で示すことにする。
【００４６】
図４（ａ）に示す読み取り結果（その１）は、最長経路のパイロットデータについて、初段のバッファ回路９１に入力する制御信号をクロックとするフリップフロップ回路８１１では読み取りに失敗し、初段から４段目のバッファ回路９１〜９４から出力される遅延クロックをクロックとするフリップフロップ回路８１２〜８１５で正しく読み取られており、また、最短経路のパイロットデータについて、初段のバッファ回路９１に入力する制御信号をクロックとするフリップフロップ回路８２１、および３段目のバッファ回路９３から出力される遅延クロックをクロックとするフリップフロップ回路８２４までの間で正しく読み取られている。
【００４７】
したがって、最長経路と最短経路のパイロットデータは、共通して第２段から第４段の範囲でデータ（Ｒ２〜Ｒ４，Ｑ２〜Ｑ４）の読み取りに成功している。そこで、これらの成功したところの読み取りタイミングについては、中間のフリップフロップ回路が第３段であることから、このときの制御信号はクロックのタイミングが遅すぎるものと想定され、この場合にはセレクタ回路５０で選択すべき制御信号は、そのクロックを早める方に調整しなければならない。
【００４８】
図４（ｂ）に示す読み取り結果（その２）においては、最長経路と最短経路のパイロットデータは、共通して第４段から第６段の範囲でデータ（Ｒ４〜Ｒ６，Ｑ４〜Ｑ６）の読み取りに成功している。したがって、成功した読み取りタイミングの中間のフリップフロップ回路は第５段であることから、このときの制御信号はクロックのタイミングが早すぎるものと想定される。そこで、このような場合に、セレクタ回路５０で選択すべき制御信号は、そのクロックを遅らす方に調整する必要がある。
【００４９】
このように、タイミングが少しずつ異なる遅延クロックを用いて、第１、第２の読み取り回路８１，８２を構成するそれぞれ複数のフリップフロップ回路８１１〜８１７，８２１〜８２７でのデータ読み取り結果を比較することによって、クロックのタイミングチェックを行うことができる。すなわち、フリップフロップ回路８１１〜８１７，８２１〜８２７の両方で、適正に読み込まれたクロックタイミングがそれらの中心に来るように調整することにより、メモリ２０にとって最適なクロックタイミングで制御信号を生成することができる。
【００５０】
図５は、タイミング調整回路における調整動作の一例を示すタイムチャートである。
同図（ａ）には、基準になるクロック信号を示す。これは、図２のクロック生成回路３で生成される。
【００５１】
図５（ｂ）には、メモリコントローラ１から出力される遅延クロックを示す。これは、同図（ａ）の基準クロックを基にして、メモリ２０に対する制御信号が作成される。この遅延クロックは、遅延量設定レジスタ１２の遅延設定値に応じてセレクタ回路５０が動作することで、バッファ回路５１〜５ｍで遅延された複数のクロックのいずれかが選択され、遅延量が調整される。
【００５２】
図５（ｃ）には、遅延量設定レジスタ１２の遅延設定値を示している。また、同図（ｄ）には、タイミング判定回路１０の判定信号を示している。
この例では、最初の第１サイクルに先立って遅延設定値が「３」に設定されており、このときの判定信号が「＋１」となっている。これは、メモリコントローラ１側から基準クロックに対してｔａ時間だけ遅延した遅延クロックを制御信号として送出したとき、判定手段２におけるパイロット信号の読み取り結果から、制御信号のクロックタイミングが早すぎると判断されたことを示す。そこで、タイミング判定回路１０の判定信号として出力された「＋１」の指示に基づいて、メモリコントローラ１の遅延量設定レジスタ１２では、その遅延設定値を「３」から「４」に増加することになる。
【００５３】
こうした遅延設定値の更新は、各判定サイクルで基準クロックの立ち下がりタイミングに同期して実行される。図５では、第１サイクルの中間タイミングで「３」から「４」に変更されている。したがって、第２サイクルで送出される制御信号は、第１サイクルよりも遅れて立ち上がることになって、基準クロックに対してｔｂ時間（ｔｂ＞ｔａ）だけ遅延した遅延クロックが選択される。このとき、第２サイクルの判定信号は「＋１」であって、このような制御信号のクロックタイミングでも、なお早すぎると判断されたため、遅延設定値が「４」から「５」に増加される。
【００５４】
２サイクル目と同じように、第３サイクル以降もクロックを遅らす必要があると判断されると、遅延量設定レジスタ１２の遅延設定値が１ずつ増やされ、ｔｂ＜ｔｃ＜ｔｄのように、制御信号のクロックタイミングが少しずつ遅れていく。そして、第４サイクルでクロックの遅延量「６」が最適であると判断されると、判定信号が「０」になって遅延量設定レジスタ１２の更新がストップするから、これ以降のサイクルでは遅延クロックの遅延時間ｔｅ，ｔｆはｔｄに等しくなる。
【００５５】
つぎに、このようなパイロットデータの読み取り結果をタイミング判定回路１０において判定する際の、具体的な手順について説明する。
図６は、タイミング判定回路を実現するための回路構成の一例を示すブロック図である。
【００５６】
タイミング判定回路１０には、パイロットデータ読み取り回路８から読み取り結果Ｒ１〜Ｒｎ，Ｑ１〜Ｑｎが供給されている。これまでの説明と同様に、最長のデータ送受信経路に相当する信号線６に接続された第１の読み取り回路８１から読み取り結果Ｒ１〜Ｒｎが、最短のデータ送受信経路に相当する信号線７に接続された第２の読み取り回路８２から読み取り結果Ｑ１〜Ｑｎが入力する。ここで、正しく読めている場合の読み取り結果Ｒ１〜Ｒｎ，Ｑ１〜Ｑｎは「１」、正しく読めなかった場合は「０」が入力するものとする。
【００５７】
アンドゲート１０１〜１０ｎには、それぞれ同一のクロックタイミングで読み取られた対応するＱ１〜Ｑｎ，Ｒ１〜Ｒｎの論理和演算が行われる。ここでは、第１、第２の読み取り回路８１，８２を構成するフリップフロップ回路の出力のうち、アンドゲート１０１〜１０ｎの順番でクロックの遅延量が大きくなるように接続されている。これらのアンドゲート１０１〜１０ｎでの論理和演算によって、第１、第２の読み取り回路８１，８２の両方で正しく読めたときだけ演算結果が「１」となり、どちらか一方でも正しく読めなかったときには「０」が出力される。
【００５８】
２つのプライオリティエンコーダ１０ａ，１０ｂには、アンドゲート１０１〜１０ｎの各出力信号が対応するビット位置信号１〜ｎが供給されている。このうち、プライオリティエンコーダ１０ａでは、ビット位置信号１〜ｎを昇順でチェックして、最初に「１」となるビット位置を検索する。プライオリティエンコーダ１０ｂでは、ビット位置信号１〜ｎを逆順でチェックして、最初に「１」となるビット位置を検索する。
【００５９】
たとえば、ｎ＝７で、図４（ｂ）のような場合、プライオリティエンコーダ１０ａがビット位置４で「１」を検出し、プライオリティエンコーダ１０ｂはビット位置６で「１」を検出する。このときプライオリティエンコーダ１０ａのエンコード結果「Ａ」は、たとえば、「４」となり、逆にプライオリティエンコーダ１０ｂのエンコード結果「Ｂ」は、「２」となる。
【００６０】
これらプライオリティエンコーダ１０ａ，１０ｂは、エンコード結果「Ａ」、「Ｂ」を比較器１０ｃに入力するように接続されている。比較器１０ｃでは、エンコード結果「Ａ」、「Ｂ」の大小を比較することによりクロックタイミングを判断して、Ａ＞Ｂの場合にはクロックを遅らすための判定値「＋１」を、Ａ＞Ｂの場合にはクロックのタイミングを早めるための判定値「−１」を、Ａ＝Ｂの場合には、クロックのタイミングが適正であることを示す「０」を出力することができる。
【００６１】
本発明によれば、高速メモリを使用したシステム装置において、メモリに与えられる最適なクロックタイミングを作成でき、メモリの動作マージンが大きくなる。このことにより、さらにメモリの高速動作が可能となり、システム装置においても動作の安定性が向上する。また、アクティブにクロックタイミングの検出、調整を行うため、電圧変動や温度変化など外部要因による特性変動を補正でき、結果としてシステムの安定度のさらなる向上につながることにもなる。
【図面の簡単な説明】
【００６２】
【図１】本実施の形態の半導体集積回路装置の概略を説明する図である。
【図２】本実施の形態の半導体集積回路装置の詳細な構成を示すブロック図である。
【図３】パイロットデータを読み取るために設けたフリップフロップ回路を示す図である。
【図４】配線長が異なる信号線を経由したパイロットデータの読み取り結果を示す図である。
【図５】タイミング調整回路における調整動作の一例を示すタイムチャートである。
【図６】タイミング判定回路を実現するための回路構成の一例を示すブロック図である。
【符号の説明】
【００６３】
１  メモリコントローラ
２  判定手段
２ａ  メモリ接続端子
３  クロック生成回路
４  パイロットデータ設定回路
５  遅延回路
６  第１の信号線
７  第２の信号線
８  パイロットデータ読み取り回路
９  遅延クロック生成回路
１０  タイミング判定回路
１１  レジスタ更新回路
１２  遅延量設定レジスタ
１３  位相調整手段
１４  クロックライン
８１  第１の読み取り回路
８２  第２の読み取り回路
９１〜９ｎ  バッファ回路
【図１】
2008225956.tif 000003
【図２】
2008225956.tif 000004
【図３】
2008225956.tif 000005
【図４】
2008225956.tif 000006
【図５】
2008225956.tif 000007
【図６】
2008225956.tif 000008