(57)【特許請求の範囲】
【請求項１】
クロックを受け、このクロックに同期して動作する複数のメモリモジュールと、
上記クロックを発生し、上記複数のメモリモジュールとの間でデータの転送が行われるメモリコントローラと、
上記複数のメモリモジュール内にそれぞれ設けられ、上記クロックからこのクロックに同期しかつ上記クロックと異なる位相を持ち、上記クロックとの位相ずれ量がプログラム可能な内部クロックを発生する内部クロック発生回路とを具備し、
上記内部クロック発生回路は、
一定の遅延時間を有する複数の第１遅延ユニットが縦続接続され、前進パルスを伝達する前進パルス遅延回路と、
一定の遅延時間を有する複数の第２遅延ユニットが縦続接続され、後進パルスを伝達する後進パルス遅延回路と、
上記前進パルス遅延回路の第１遅延ユニットと上記後進パルス遅延回路の第２遅延ユニットとに対応して設けられ、リセット状態とセット状態とを有する複数の状態保持部とを有し、
上記前進パルスが伝達した上記第１遅延ユニットに対応する上記状態保持部がセット状態にされ、セット状態の状態保持部に対応する後進パルス遅延回路の第２遅延ユニットは後段の第２遅延ユニットからの後進パルスをそれよりも前段の第２遅延ユニットに伝達し、
リセット状態の状態保持部に対応する後進パルス遅延回路の第２遅延ユニットは内部クロックを直接、前段の第２遅延ユニットに伝達し、
上記状態保持部は複数のグループに区分され、それぞれのグループに属する状態保持部を一つずつ順番に並べた状態保持部を上記第１、第２遅延ユニットに順番に対応させて、各グループ毎に状態保持部をセットする外部クロックのサイクルを順次ずらして動作させるようにしたことを特徴とするデータ高速転送同期システム。
【請求項２】
クロックを受け、このクロックに同期して動作する複数のメモリモジュールと、
上記クロックを発生し、上記複数のメモリモジュールとの間でデータの転送が行われるメモリコントローラと、
上記複数のメモリモジュール内にそれぞれ設けられ、上記クロックからこのクロックに同期した内部クロックを発生する内部クロック発生回路とを具備し、
上記内部クロック発生回路は、
一定の遅延時間を有する複数の第１遅延ユニットが縦続接続され、前進パルスを伝達する前進パルス遅延回路と、
一定の遅延時間を有する複数の第２遅延ユニットが縦続接続され、後進パルスを伝達する後進パルス遅延回路と、
上記前進パルス遅延回路の第１遅延ユニットと上記後進パルス遅延回路の第２遅延ユニットとに対応して設けられ、リセット状態とセット状態とを有する複数の状態保持部とを備え、
上記前進パルスが伝達した上記第１遅延ユニットに対応する上記状態保持部がセット状態にされ、セット状態の状態保持部に対応する後進パルス遅延回路の第２遅延ユニットは後段の第２遅延ユニットからの後進パルスをそれよりも前段の第２遅延ユニットに伝達し、
リセット状態の状態保持部に対応する後進パルス遅延回路の第２遅延ユニットは内部クロックを直接、前段の第２遅延ユニットに伝達し、
上記状態保持部は複数のグループに区分され、それぞれのグループに属する状態保持部を一つずつ順番に並べた状態保持部を上記第１、第２遅延ユニットに順番に対応させて、各グループ毎に状態保持部をセットする外部クロックのサイクルを順次ずらして動作させるように構成したことを特徴とするデータ高速転送同期システム。
【請求項３】
前記第１、第２遅延ユニットはそれぞれ第１及び第２のクロックドインバータとＮＯＲゲートとから構成され、
第１のクロックドインバータには他の遅延ユニットからの出力が入力として供給され、
第２のクロックドインバータには前記前進パルス遅延回路もしくは後進パルス遅延回路を構成する全ての遅延ユニットに共通の信号が入力として供給され、
上記ＮＯＲゲートには上記第１及び第２のクロックドインバータの出力が入力として供給され、
上記第１のクロックドインバータはセット状態の前記状態保持部の出力に基づいてインバータとして動作し、
上記第２のクロックドインバータはリセット状態の前記状態保持部の出力に基づいてインバータとして動作するを具備することを特徴とする請求項２記載のデータ高速転送同期システム。
【請求項４】
前記状態保持部は、
セット／リセット状態に応じた信号を出力する信号ノードと、
前記後進パルス遅延回路の第２遅延ユニットの出力によって導通制御され、上記信号ノードに電荷を供給する第１チャネルのトランジスタと、
前記前進パルス遅延回路の第１遅延ユニットの出力によって導通制御され、上記信号ノードから電荷を引き抜く第２チャネルのトランジスタとを有し、
上記第２チャネルのトランジスタが導通状態にされたときにセット状態に対応した信号が上記信号ノードに得られ、上記第１チャネルのトランジスタが導通状態にされたときにリセット状態に対応した信号が上記信号ノードに得られ、
上記第１、第２チャネルのトランジスタは同時に導通状態とはならないように制御されることを請求項３に記載のデータ高速転送同期システム。
【請求項５】
前記状態保持部は２つのグループに区分され、各グループに属する状態保持部が交互に並べられ、対応する前記前進パルス遅延回路の第１遅延ユニット及び後進パルス遅延回路の第２遅延ユニットと対応させ、一方のグループに属する状態保持部内の前記第１、第２チャネルのトランジスタの働きを全て無効にする前記クロックのサイクルと、他方のグループに属する状態保持部内の前記第１、第２チャネルのトランジスタの働きを全て無効にする前記クロックのサイクルとが交互になるように制御されることを特徴とする請求項４記載のデータ高速転送同期システム。
【請求項６】
前記状態保持部は第１ないし第４からなる４つのグループに区分され、各グループに属する状態保持部が順番にかつ交互に並べられ、対応する前記前進パルス遅延回路の第１遅延ユニット及び後進パルス遅延回路の第２遅延ユニットと対応させ、第１のグループに属する状態保持部内の前記第１、第２チャネルのトランジスタの働きを全て無効にする前記クロックのサイクルと、第２のグループに属する状態保持部内の前記第１、第２チャネルのトランジスタの働きを全て無効にする前記クロックのサイクルと、第３のグループに属する状態保持部内の前記第１、第２チャネルのトランジスタの働きを全て無効にする前記クロックのサイクルと、第４のグループに属する状態保持部内の前記第１、第２チャネルのトランジスタの働きを全て無効にする前記クロックのサイクルとが順番にかつ交互になるように制御されることを請求項４記載のデータ高速転送同期システム。
【請求項７】
外部クロックを受ける第１のバッファ回路と、
上記第１のバッファ回路における遅延時間と同等の遅延時間を有し、上記第１のバッファ回路の出力を受けてこの第１のバッファ回路の出力を遅延する第１の遅延回路と、
上記第１の遅延回路の出力を受けてこの第１の遅延回路の出力を所定の時間遅延する第２の遅延回路と、
上記第２遅延回路からの出力を受ける第２のバッファ回路と、
多段縦続接続された複数の第１遅延ユニットを有し、上記第２のバッファ回路の出力を上記クロックの周期に応じた期間中、上記複数の第１遅延ユニットで伝達することによって遅延する第３の遅延回路と、
多段縦続接続された複数の第２遅延ユニットを有し、上記第３の遅延回路で遅延された信号が供給され、この遅延された信号を上記第２のバッファ回路の出力が伝達した上記第１遅延ユニットと同じ数の第２遅延ユニットで伝達することによって遅延する第４の遅延回路と、
上記第４の遅延回路からの出力を受け、この第４の遅延回路からの出力を制御信号に応じた時間だけ遅延して出力する可変遅延回路と、
上記第２のバッファ回路における遅延時間と同等の遅延時間を有し、上記可変遅延回路からの出力を受けて内部クロックを発生する第３のバッファ回路と
を具備したことを特徴とするクロック発生回路。
【請求項８】
前記可変遅延回路は、
一端に前記第４の遅延回路の出力が供給される複数の単位遅延素子と、
上記複数の単位遅延素子の各直列接続ノードに接続され、これら各直列接続ノードの信号を前記制御信号に基づいて選択する複数の第１のスイッチ回路
とを含むことを特徴とする請求項７記載のクロック発生回路。
【請求項９】
前記可変遅延回路は、
前記複数の単位遅延素子の各直列接続ノードのうち特定の１つの直列接続ノードの信号を選択する第２のスイッチ回路をさらに含むことを特徴とする請求項８記載のクロック発生回路。
【請求項１０】
クロックを受け、このクロックに同期して動作し、それぞれが上記クロックに同期し、上記クロックとの位相ずれ量がプログラム可能な内部クロックを発生する内部クロック発生回路を有する複数のメモリモジュールと、
上記クロックを発生し、上記複数のメモリモジュールとの間でデータの転送が行われるメモリコントローラとを具備し、
上記内部クロック発生回路は、
上記クロックを受ける第１のバッファ回路と、
上記第１のバッファ回路の出力を受け、上記第１のバッファ回路における遅延時間と同等の遅延時間を有し、第１のバッファ回路の出力を遅延する第１の遅延回路と、
上記第１の遅延回路からの出力を受け、この第１の遅延回路からの出力を固定された一定時間遅延する第２の遅延回路と、
上記第２の遅延回路からの出力を受ける第２のバッファ回路と、
多段縦続接続された複数の第１遅延ユニットを有し、上記第２のバッファ回路の出力を受け、この第２のバッファ回路の出力を上記クロックの周期に応じた期間中、上記複数の第１遅延ユニットで伝達して遅延する第３の遅延回路と、
多段縦続接続された複数の第２遅延ユニットを有し、上記第３の遅延回路で遅延される信号が供給され、この信号を上記第２のバッファ回路の出力が伝達した上記第１遅延ユニットと同じ数の第２遅延ユニットで伝達して遅延する第４の遅延回路と、
上記第４の遅延回路からの出力を受け、この第４の遅延回路からの出力を制御信号に応じた時間だけ遅延して出力する可変遅延回路と、
上記第２のバッファ回路における遅延時間と同等の遅延時間を有し、上記可変遅延回路からの出力を受けて前記内部クロックを発生する第３のバッファ回路とから構成されたデータ高速転送同期システムを有し、
上記複数のメモリモジュールに対して所定のデータパターンを格納させ、
予め各メモリモジュールに格納されているデータパターンを上記複数のメモリモジュールから読み出して上記メモリコントローラに転送させ、
上記メモリコントローラにおいて上記各メモリモジュールから転送されたデータパターンと元の所定のデータパターンとの一致比較を行い、上記両データパターンが一致するように上記制御信号を発生することを特徴とするデータ高速転送同期方法。
【請求項１１】
前記制御信号の発生は、前記メモリコントローラから前記複数の各メモリモジュールに与えられるコマンドに基づいて行われることを特徴とする請求項１０記載のデータ高速転送同期方法。
【請求項１２】
前記複数のメモリモジュールに対して所定のデータパターンを格納させる際に、前記メモリコントローラから上記データパターンを通常動作時の転送タイミングに比べて緩い転送タイミングで転送させ、前記複数のメモリモジュールで格納させるようにしたことを特徴とする請求項１０に記載のデータ高速転送同期方法。
【請求項１３】
前記複数の各メモリモジュールに格納されているデータパターンを読み出して前記メモリコントローラに転送させる際に、各メモリモジュールから通常動作時の転送タイミングでバーストデータとして読み出させることを特徴とする請求項１０記載のデータ高速転送同期方法。
【請求項１４】
前記複数のメモリモジュールに対して所定のデータパターンを格納させる際に、前記メモリコントローラから上記データパターンを通常動作時の転送タイミングで転送させて前記複数のメモリモジュールで格納させ、
前記複数の各メモリモジュールに格納されているデータパターンを読み出して前記メモリコントローラに転送させる際は、各メモリモジュールから通常動作時の転送タイミングでバーストデータとして読み出させることを特徴とする請求項１０記載のデータ高速転送同期方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は複数のメモリモジュールとこれら複数のメモリモジュールを制御して複数のメモリモジュールとの間でデータの授受を行うメモリコントローラとが実装されたメモリボードシステムに係り、特にメモリコントローラとメモリモジュールとからなる環境が異なっていても、クロックに同期したデータの高速転送が確実に行えるようにしたデータ高速転送同期システム及びデータ高速転送同期方法に関する。
【０００２】
【従来の技術】
情報処理装置の分野ではＭＰＵ（マイクロプロセッサユニット）の性能が向上し、使用されるＩＣメモリの容量も２５６Ｍビット、１Ｇビットと飛躍的に増大している。このような状況において、複数個のＩＣメモリが実装されたメモリモジュールとＭＰＵとの間で、大量のデータを如何に効率良く転送するかということが益々重要になってきている。
【０００３】
一般に複数のメモリモジュールはメモリコントローラと組み合わされてメモリボードシステムが構成される。
【０００４】
図３８は一般的なメモリボードシステムの概略的な構成を示している。クロックは、メモリコントローラ（以下、単にコントローラと称する）ＭＥＣ内に設けられたクロック発生器ＣＧによって作られる。クロック発生器ＣＧによって作られたクロックは、複数のメモリモジュールＭＭ１〜ＭＭｎの並びをＴＣＬＫとして順次通過し、コントローラＭＥＣから最も離れたメモリモジュールＭＭｎの位置で折り返し、さらに複数のメモリモジュールの並びを上記とは逆の方向にＲＣＬＫとして順次通過し、コントローラＭＥＣまで伝達される。
【０００５】
一方、コントローラＭＥＣから出力されるコマンドは、コマンドバスを経由して上記複数のメモリモジュールＭＭ１〜ＭＭｎに伝えられる。各メモリモジュールは、クロックＴＣＬＫに同期して上記コマンドバスからコマンドを取り込み、クロックＲＣＬＫに同期してデータをデータバス上に出力する。データバスに出力された各メモリモジュールからの読み出しデータはコントローラＭＥＣに入力される。
【０００６】
各メモリモジュールに書き込むデータはコントローラからデータバス上に出力される。各メモリモジュールは、クロックＴＣＬＫに同期してデータバスからデータを取り込み、その後、データを書き込む。なお、メモリボードシステムには、上記クロックＴＣＬＫ、ＲＣＬＫを転送するクロックバス、コマンドバス及びデータバスの他にアドレスバスが設けられるが、図３８のシステムではこのアドレスバスの図示は省略している。
【０００７】
ところで、各メモリモジュールはそれぞれ、上記クロックＴＣＬＫ、ＲＣＬＫに同期して内部クロックを発生し、この内部クロックに同期してデータの読み出し／書き込み動作を制御している。また、このような内部クロックを作る回路は、本発明者による特願平９−100490号に係る出願でシンクロナス・アジャスタブル・デレイ（ＳＡＤ：Synchronous Adjustable Delay）として提案されている。
【０００８】
【発明が解決しようとする課題】
図３８に示すシステムで正常なデータ転送が行われるための条件は、クロックバス上を伝播するクロックＴＣＬＫ、ＲＣＬＫと、データバス上を伝播するデータとが常に同期していることである。しかし、この条件を完全に満足させることはむずかしい。まず、クロックを伝えるクロックバスと、データを伝えるデータバス及びコマンドを伝えるコマンドバスの物理的条件例えば、抵抗値やキャパシタンスなどの条件を完全に揃えることは困難である。
【０００９】
このため、例えばあるメモリモジュールがクロックＲＣＬＫに同期してデータをデータバス上に出力しても、コントローラにはクロックＲＣＬＫとデータとが僅かなずれを生じて到着する。このずれは当然、メモリモジュールが置かれている位置毎に異なる。クロックの周期がこのずれに対して大きい時はコントローラ側でデータウィンドウ、すなわちデータの取り込み期間を十分確保できるので、このずれは問題とならない。
【００１０】
しかし、クロック周期が小さくなってくると、このずれはクロックバスなどにおける抵抗値などの物理的条件で決まっているので、クロックバスやデータバスの物理的条件をできるだけ同じにして、このずれを小さくして、高速データ転送に対応するしかない。
【００１１】
ところが、このようにするとメモリシステムの自由度が失われる。以下、この点について図３９を用いて説明する。
【００１２】
図３９（ａ）はコントローラＭＥＣと３個のメモリモジュールＭＭ１〜ＭＭ３が実装されたメモリボードシステムの構成を示しており、図３９（ｂ）はコントローラＭＥＣと４個のメモリモジュールＭＭ１〜ＭＭ４が実装されたメモリボードシステムの構成を示している。クロックバスとデータバスに対するメモリモジュールの負荷条件は必ずしも同じではないので、この両システムのいずれか一方でクロックバスとデータバスの物理条件を一致させれば、他方ではこの一致条件から外れてしまうことがある。
【００１３】
そこで例えば図３９（ｂ）のシステムでバス条件を一致させたと仮定し、メモリモジュールＭＭ３からコントローラＭＥＣへ信号が伝播する場合を考える。図４０の（ａ）には、図３９（ａ）及び（ｂ）に記載したシステムにおけるメモリモジュールＭＭ３でのクロックＲＣＬＫとデータのタイミングが示されている。また、図４０の（ｂ）には、図３９（ａ）及び（ｂ）に記載したシステムにおけるコントローラＭＥＣでのクロックＲＣＬＫとデータのタイミングが示されている。
【００１４】
図４０に示すように、図３９（ｂ）のシステムでバス条件を一致させているので、図３９（ｂ）のシステムに対応するデータとコントローラＭＥＣの位置でクロックＲＣＬＫは同期している。これに対し、図３９（ａ）のシステムに対応するデータはクロックＲＣＬＫに対してバス遅延時間が異なるので、図示のようにコントローラの位置で同期が取れなくなる。例えば太線で示したようにずれると、コントローラはクロックＲＣＬＫの立ち上がりのタイミングではもはやデータを取り込むことはできなくなる。
【００１５】
ここで、バスの特性のずれがどの程度タイミングに影響を与えるかを見積もっておく。理想的な場合で考えると、単位長さ（ｃｍ）当たりの容量ＣとインダクタンスＬの信号線では、信号は単位長さを（ＣＬ）1/2 の時間で伝わる。一般的なメモリボードシステムで、Ｃの値が５〜７ｐＦ、Ｌの値が１５〜２０ｎＨ位であるとすると、信号の単位長さ当たりの遅延時間は０．２７〜０．３７ｎＳとなる。従って、単位長さ当たりのばらつきは約０．１ｎＳとなり、メモリモジュール全体の大きさを１０ｃｍとすると、タイミングのばらつきは１ｎＳになる。これは特定のコントローラとメモリモジュールからなるシステムでタイミングを最適化しても、他のシステムでは１ｎＳ程度はずれてしまうことを意味する。
【００１６】
ばらつきと同程度のデータウィンドウ、すなわちデータ取り込み期間が要求されているとすると、２ｎＳの周期すなわち５００ＭＨｚ位までが、バスの物理条件をきちんと揃えるという条件を厳しくせずとも、データ転送を行うことができる。なお、コマンドはクロックＴＣＬＫに対して毎サイクル入るのではなく、２サイクル毎などのようにデータよりタイミング規定が緩くできるので、データ程クロックとの同期性は必要とされない。
【００１７】
【発明が解決しようとする課題】
このように複数のメモリモジュールとメモリコントローラからなる従来のメモリボードシステムでは、データの転送速度を高速化するためにクロックの周期がより短くなってくると、メモリモジュールのバス上での位置やバスシステムの環境によっては正常な動作が期待できなくなるという問題がある。
【００１８】
この発明は上記のような事情を考慮してなされたものであり、その目的は、メモリモジュールとメモリコントローラとの間のバスの物理条件をそれ程厳しく制限しなくても、高速な同期型データ転送が実現できるデータ高速転送同期システム及びデータ高速転送同期方法を提供することにある。
【００１９】
【課題を解決するための手段】
この発明のデータ高速転送同期システムは、クロックを受け、このクロックに同期して動作する複数のメモリモジュールと、上記クロックを発生し、上記複数のメモリモジュールとの間でデータの転送が行われるメモリコントローラと、上記複数のメモリモジュール内にそれぞれ設けられ、上記クロックからこのクロックに同期しかつ上記クロックと異なる位相を持ち、上記クロックとの位相ずれ量がプログラム可能な内部クロックを発生する内部クロック発生回路とを具備し、上記内部クロック発生回路は、一定の遅延時間を有する複数の第１遅延ユニットが縦続接続され、前進パルスを伝達する前進パルス遅延回路と、一定の遅延時間を有する複数の第２遅延ユニットが縦続接続され、後進パルスを伝達する後進パルス遅延回路と、上記前進パルス遅延回路の第１遅延ユニットと上記後進パルス遅延回路の第２遅延ユニットとに対応して設けられ、リセット状態とセット状態とを有する複数の状態保持部とを有し、上記前進パルスが伝達した上記第１遅延ユニットに対応する上記状態保持部がセット状態にされ、セット状態の状態保持部に対応する後進パルス遅延回路の第２遅延ユニットは後段の第２遅延ユニットからの後進パルスをそれよりも前段の第２遅延ユニットに伝達し、リセット状態の状態保持部に対応する後進パルス遅延回路の第２遅延ユニットは内部クロックを直接、前段の第２遅延ユニットに伝達し、上記状態保持部は複数のグループに区分され、それぞれのグループに属する状態保持部を一つずつ順番に並べた状態保持部を上記第１、第２遅延ユニットに順番に対応させて、各グループ毎に状態保持部をセットする外部クロックのサイクルを順次ずらして動作させるようにしたことを特徴とする。
【００２０】
この発明のデータ高速転送同期方法は、クロックを受け、このクロックに同期して動作し、それぞれが上記クロックに同期し、上記クロックとの位相ずれ量がプログラム可能な内部クロックを発生する内部クロック発生回路を有する複数のメモリモジュールと、上記クロックを発生し、上記複数のメモリモジュールとの間でデータの転送が行われるメモリコントローラとを具備し、上記内部クロック発生回路は、上記クロックを受ける第１のバッファ回路と、上記第１のバッファ回路の出力を受け、上記第１のバッファ回路における遅延時間と同等の遅延時間を有し、第１のバッファ回路の出力を遅延する第１の遅延回路と、上記第１の遅延回路からの出力を受け、この第１の遅延回路からの出力を固定された一定時間遅延する第２の遅延回路と、上記第２の遅延回路からの出力を受ける第２のバッファ回路と、多段縦続接続された複数の第１遅延ユニットを有し、上記第２のバッファ回路の出力を受け、この第２のバッファ回路の出力を上記クロックの周期に応じた期間中、上記複数の第１遅延ユニットで伝達して遅延する第３の遅延回路と、多段縦続接続された複数の第２遅延ユニットを有し、上記第３の遅延回路で遅延される信号が供給され、この信号を上記第２のバッファ回路の出力が伝達した上記第１遅延ユニットと同じ数の第２遅延ユニットで伝達して遅延する第４の遅延回路と、上記第４の遅延回路からの出力を受け、この第４の遅延回路からの出力を制御信号に応じた時間だけ遅延して出力する可変遅延回路と、上記第２のバッファ回路における遅延時間と同等の遅延時間を有し、上記可変遅延回路からの出力を受けて前記内部クロックを発生する第３のバッファ回路とから構成されたデータ高速転送同期システムを有し、上記複数のメモリモジュールに対して所定のデータパターンを格納させ、予め各メモリモジュールに格納されているデータパターンを上記複数のメモリモジュールから読み出して上記メモリコントローラに転送させ、上記メモリコントローラにおいて上記各メモリモジュールから転送されたデータパターンと元の所定のデータパターンとの一致比較を行い、上記両データパターンが一致するように上記制御信号を発生することを特徴とする。
【００２１】
【発明の実施の形態】
まず、この発明に係るデータ高速転送同期システム及びデータ高速転送同期方法の原理について説明する。
【００２２】
この発明では、先の図３８に示す一般的なメモリボードシステムにおいて、コントローラと複数のメモリモジュールとの間のバスの物理条件を厳しく制限しなくても、例えば５００ＭＨｚ以上のクロックでデータの同期型転送制御が可能な方式として、各メモリモジュール内で外部クロックに同期した内部クロックを発生させる。そして、この内部クロックに一定の遅延を付加もしくは差し引いて、データの入出力タイミングを調節する方式を採用する。このような方式を用いると、先の図４０に示すようなメモリモジュールの個数の違いよるデータとクロックＲＣＬＫとのタイミングのずれによる影響を、メモリコントローラが受けないようにすることができる。
【００２３】
この発明の方式の原理をさらに詳しく説明する。
【００２４】
図１（ａ）は前記図３８に示すものと同様に、コントローラＭＥＣと３個のメモリモジュールＭＭ１〜ＭＭ３が実装され、これらがクロックバス、データバス及びコマンドバスで接続されたメモリボードシステムの構成を示しており、図１（ｂ）はこのメモリボードシステムにおける一部の信号を抽出したタイミングチャートを示している。
【００２５】
先の図４０中に太線で示すように、コントローラに到着したデータがクロックＲＣＬＫに対して遅れるような場合には、図１に示すようにデータを送る側のメモリモジュール、例えばメモリモジュールＭＭ３ではクロックＲＣＬＫよりも速いタイミング（図１（ｂ）中のｔ１）でデータを出力する。また、先の図４０中に実線で示すように、コントローラにデータが速いタイミングで到着する場合には、図１に示すようにデータを送る側のメモリモジュールではクロックＲＣＬＫよりも遅いタイミング（図１（ｂ）中のｔ２）でデータを出力する。
【００２６】
このように、コントローラにデータが到着するタイミングに応じて、メモリモジュール側からデータを出力するタイミングを調節することにより、コントローラには常にクロックＲＣＬＫに同期してデータが到着し、これによりメモリモジュールとコントローラとの間の高速データ転送を確実に行うことができる。
【００２７】
この発明ではこのようなタイミングの調節を各メモリモジュール毎に行うものであり、さらにこのようなタイミングの調節を先のＳＡＤを用いて行う。
【００２８】
ここで、先の出願（特願平９−100490号）に係る明細書及び図面に記載されているＳＡＤについて説明しておく。
【００２９】
図２は、ＳＡＤを、このＳＡＤに対して信号の入出力を行う入出力バッファと共に示しており、図２（ａ）は回路を論理ゲートレベルで表現したものであり、図２（ｂ）はシンボルで表現したものである。なお、図２（ａ）、（ｂ）において対応する箇所には同じ符号を付して説明を行う。
【００３０】
図２に示したＳＡＤは、外部クロックＲＣＬＫから内部クロックｉｎｔＲＣを発生する場合のものを例示しているが、他方の外部クロックＴＣＬＫから内部クロックｉｎｔＴＣを発生するＳＡＤもこれと同様に構成されているので、その説明は省略する。
【００３１】
図２中、１１は外部クロックＲＣＬＫが入力され、遅延Ｄ１を有する入力バッファである。また、１２は上記入力バッファ１１の出力信号Ａを受けてその出力をＳＡＤ１３に供給し、Ｄ（＝Ｄ１＋Ｄ２）の遅延を有する遅延回路である。１４はＳＡＤ１３の出力信号を受けて内部クロックｉｎｔＲＣを発生し、Ｄ２の遅延を有する出力バッファである。なお、上記入力バッファ１１の出力信号ＡはＳＡＤ１３に信号Ｂとしても供給されている。
【００３２】
上記ＳＡＤ１３内には、直列接続された２個のインバータ１５、１６と、それぞれＮＡＮＤゲート１７及びこのＮＡＮＤゲート１７の出力が一方入力端に供給されるＮＯＲゲート１８からなり、多段縦続接続された複数個の遅延ユニットＤＵ１と、それぞれＮＡＮＤゲート１９及びこのＮＡＮＤゲート１９の出力が一方入力端に供給されるＮＯＲゲート２０からなり、多段縦続接続され上記遅延ユニットＤＵ１と同数の遅延ユニットＤＵ２と、上記インバータ１５の出力Ｃと前記入力バッファ１１からの信号Ｂとが供給されるＮＡＮＤゲート２１と、このＮＡＮＤゲート２１の出力を反転して制御信号Ｓを出力するインバータ２２と、上記インバータ２２から出力される信号Ｓとタイミングを合わせるために、前記入力Ｂからの遅延が同等になるように遅延を行うパスゲート２３と、上記一方の遅延ユニットＤＵ１と他方の遅延ユニットＤＵ２との間にそれぞれ挿入された各ＮＯＲゲート２４及びＮＡＮＤゲート２５とが設けられている。
【００３３】
ここで、多段縦続接続された複数個の一方の遅延ユニットＤＵ１で前進パルス遅延回路（Forward Delay 、以下ＦＤと略称する）が構成され、同様に多段縦続接続された複数個の他方の遅延ユニットＤＵ２で後進パルス遅延回路（Backward Delay、以下ＢＤと略称する）が構成されている。
【００３４】
前記各ＮＯＲゲート２４及びＮＡＮＤゲート２５は、上記ＦＤで遅延された信号を、信号Ｂの立上がりのタイミングでＢＤに伝達する制御を行うものであり、各ＮＯＲゲート２４には前記制御信号／Ｓ及び対応する一方の遅延ユニットＤＵ１内のＮＡＮＤゲート１７の出力が供給され、その出力は対応する他方の遅延ユニットＤＵ２内のＮＯＲゲート２０に供給される。前記各ＮＡＮＤゲート２５には制御信号Ｓ及び対応する一方の遅延ユニットＤＵ１内のＮＯＲゲート１８の出力が供給され、その出力は対応する他方の遅延ユニットＤＵ２内のＮＡＮＤゲート１９に供給されている。
【００３５】
次に図２に示したＳＡＤの動作を簡単に説明する。外部クロックＲＣＬＫが立ち上がると、この正パルスが遅延回路１２において遅延量Ｄ（＝Ｄ１＋Ｄ２）だけ遅延される。その後、正パルスはＳＡＤ１３に入力され、ＦＤのＮＡＮＤゲート１７とＮＯＲゲート１８を交互に伝播して行く。
【００３６】
他方、ＳＡＤ１３には、ＦＤを伝播するパルスを後進パルス遅延回路ＢＤに負のパルスとして転送するタイミングを設定するための信号Ｂが入力される。そして、信号Ａと信号Ｂのパルスの立ち上がり相互間に相当する遅延量Δが、ＦＤを進行する正パルスの立ち上がり位置（ＮＯＲゲート１８の出力の立ち上がり位置またはＮＡＮＤゲート１７の出力の立ち下がり位置）として検出され、ＢＤに負パルスの立ち上がり位置として移動される。このパルスを移動させる際の移動用ゲートとなるのがＦＤとＢＤとの間に設けられているＮＯＲゲート２４とＮＡＮＤゲート２５である。信号Ａと信号Ｂとは同じものなので、前サイクルにＦＤに入ったパルスを先ずＢＤに移し、遅延量Ｄ（＝Ｄ１＋Ｄ２）を経てＦＤに入るパルスにはＢＤへの移動が生じないように、信号Ｂから信号Ｓへの経路に信号ＡからのパルスとのＮＡＮＤゲート２１が挿入されており、信号Ｓの出力が禁止されるようになっている。
【００３７】
このような構成のＳＡＤでは、外部クロックＲＣＬＫの周期Ｔに応じて遅延量Δが変化し、外部クロックＲＣＬＫの一発目と二発目で遅延量Δが決定され、二発目以降からこの遅延量Δを使って内部クロックｉｎｔＲＣが作られる。従って、内部クロックｉｎｔＲＣは三発目のＲＣＬＫから位相が一致するようになる。
【００３８】
ここで外部クロックＲＣＬＫの周期をＴとすれば、Ｄ＋Δ＝Ｔであるから、ＲＣＬＫ入力からＴ後に内部クロックｉｎｔＲＣが出力され、これが外部クロックＲＣＬＫに同期することになる。
【００３９】
このようなＳＡＤを各メモリモジュール毎に設けることにより、そのメモリモジュールが受ける外部クロックＲＣＬＫに同期したタイミングを作ることができる。
【００４０】
なお、ＦＤで遅延されるパルスは各ＮＡＮＤゲート１７、ＮＯＲゲート１８のどこからでもＢＤ側に移ることができるので、得られる内部クロックｉｎｔＲＣのタイミングの精度は論理ゲート１個分になる。
【００４１】
このようにして図２に示す回路では、内部クロックｉｎｔＲＣを外部クロックＲＣＬＫに対して位相差ゼロで同期して発生することができる。
【００４２】
図３は、上記とは異なるＳＡＤの構成を、このＳＡＤに対して信号の入出力を行う入出力バッファと共に示すブロック図である。なお、このＳＡＤでも、外部クロックＲＣＬＫから内部クロックｉｎｔＲＣを発生する場合のものを例示しているが、他方の外部クロックＴＣＬＫから内部クロックｉｎｔＴＣを発生するＳＡＤもこれと同様に構成されているので、その説明は省略する。
【００４３】
外部クロックＲＣＬＫは、遅延量Ｄ１を有する入力バッファ３１に入力される。この入力バッファク３１は、外部クロックＲＣＬＫに対してＤ１のスキュー（遅延量）を有するクロックＣＬＫを出力する。このクロックＣＬＫは、遅延量Ｄ（＝Ｄ１＋Ｄ２）を有する遅延回路３２に入力され、この遅延回路３２は前進パルスＦＣＬ１を出力する。
【００４４】
上記クロックＣＬＫ及びこのクロックＣＬＫをインバータ３３により反転したクロック／ＣＬＫは、それぞれｎ個の遅延回路３４−１〜３４−ｎに入力される。これらｎ個の遅延回路３４−１〜３４−ｎは多段に縦続接続されており、初段の遅延回路３４−１には前進パルスＦＣＬ１が入力され、この遅延回路３４−１から後進パルスＲＣＬ１が出力される。初段の遅延回路３４−１から出力される後進パルスＲＣＬ１は、遅延量Ｄ２を有する出力バッファ３５を経由することにより、内部クロックｉｎｔＲＣとして出力される。
【００４５】
なお、上記各遅延回路３４−ｉ（ｉ＝１〜ｎ）の動作は、上記クロックＣＬＫ、／ＣＬＫが入力される制御パルス発生回路３６から出力される制御パルスＰ、／Ｐに基づいて制御される。
【００４６】
図４は、上記図３に示したＳＡＤにおける各遅延回路３４−ｉの詳細な構成を示している。各遅延回路３４−ｉは、ＦＤ、ＢＤ及び状態保持回路（Sample Hold 、以下ＳＨと略称する）の３つの部分から構成されている。
【００４７】
ＦＤは、２個のクロックドインバータ４１、４２と１個のインバータ４３とから構成された遅延ユニットを有する。一方のクロックドインバータ４１には前段の遅延回路３４からの前進パルスＦＣＬｉが入力され、他方のクロックドインバータ４２には接地電位（“Ｌ”）が入力される。上記一方のクロックドインバータ４１は、制御パルス／Ｐが“Ｈ”のときに動作し、入力される前進パルスＦＣＬｉを反転して出力する。また、上記他方のクロックドインバータ４２は、制御パルスＰが“Ｈ”のときに動作し、入力されている“Ｌ”の信号電位を反転して“Ｈ”の信号電位出力する。上記両クロックドインバータ４１、４２の出力ノードは共通に接続されており、この共通接続ノードに上記インバータ４３の入力ノードが接続されている。そして、このインバータ４３の出力信号が後段の遅延回路３４にＦＣＬi+1 として出力される。
【００４８】
ＢＤは、２個のクロックドインバータ４４、４５と１個のインバータ４６とから構成された遅延ユニットを有する。一方のクロックドインバータ４４には後段遅延回路３４の後進パルスＲＣＬi+1 もしくはクロックＣＬＫが入力され、他方のクロックドインバータ４５にはクロックＣＬＫが入力される。上記一方のクロックドインバータ４４は、ＳＨから出力される制御パルスＱが“Ｈ”のときに動作し、入力される後進パルスＲＣＬi+1 もしくはクロックＣＬＫを反転して出力する。また、上記他方のクロックドインバータ４２は、ＳＨから出力される制御パルス／Ｑが“Ｈ”のときに動作し、入力されるクロックＣＬＫを反転して出力する。上記両クロックドインバータ４４、４５の出力ノードは共通に接続されており、この共通接続ノードには上記インバータ４５の入力ノードが接続されている。そして、このインバータ４５の出力信号が前段の遅延回路３４にＲＣＬｉとして出力される。
【００４９】
ＳＨは、状態保持部４７と２個のＮＡＮＤゲート４８、４９とから構成されている。上記一方のＮＡＮＤゲート４８には、前段の遅延回路３４からの前進パルスＦＣＬｉと反転クロック／ＣＬＫとが入力され、上記他方のＮＡＮＤゲート４９には、対応する段のインバータ４６の出力である前段への後進パルスＲＣＬｉとクロックＣＬＫとが入力される。
【００５０】
上記ＮＡＮＤゲート４８の出力は状態保持部４７にセット信号／Ｓとして入力され、上記ＮＡＮＤゲート４９の出力は状態保持部４７にリセット信号／Ｒとして入力される。
【００５１】
状態保持部４７は、セット／リセット状態に対応して上記制御パルスＱ、／Ｑを発生する。ちなみに、制御パルスＱは状態保持部４７がセット状態のときに“Ｈ”となり、制御パルス／Ｑは状態保持部４７がリセット状態のときに“Ｈ”となる。なお、この状態保持部４７の詳細な構成については後に詳述する。
【００５２】
次に、図３に示したような構成のＳＡＤの動作について、図５のタイミングチャートを参照して説明する。まず、クロックＣＬＫの１つ目のパルスが発生した時点（クロックＣＬＫが立ち上がった時点）から時間Ｄ（＝Ｄ１＋Ｄ２）が経過した後に前進パルスＦＣＬ１が発生する。また、この前進パルスＦＣＬ１が発生した時点から、クロックＣＬＫの２つ目のパルスが発生する時点までの時間はΔｆとなる。
【００５３】
また、この時間ΔｆをコピーしてΔｂを作り、パルスＦＣＬ１が発生した時点から、時間２＊Δ（ただし、Δｆ＝Δｂ＝Δ）が経過した時点でパルスＲＣＬ１が発生する。すると、パルスＲＣＬ１が発生した時点から遅延量Ｄが経過した時点は、クロックＣＬＫの３つ目のパルスが立ち上がる時点と一致する。ただし、（Ａ＋Ｗ）＜Ｔとする。なお、ＷはパルスＦＣＬ１、パルスＲＣＬ１それぞれのパルス幅である。
【００５４】
パルスＲＣＬ１が発生した時点から外部クロックＲＣＬＫの３つ目のパルスが発生する時点までの時間をＤ２とすると、パルスＦＣＬ１をＤ＋２＊Δ＋Ｄ２だけ遅らせれば、外部クロックＲＣＬＫのタイミングに一致した内部クロックｉｎｔＲＣが得られることになる。
【００５５】
なお、Ｄ＝Ｄ１＋Ｄ２という関係が成立するため、遅延量Ｄ２は、Ｄ及びＤ１から求めることができる。また、制御パルスＰ、／Ｐは、パルスＦＣＬｉが初段の遅延回路に入力される前に、全ての遅延回路のＢＤを初期化しておくため、つまり、クロックドインバータ４２を動作させてインバータ４３の入力ノードの信号を“Ｈ”に設定するために使用されるものである。
【００５６】
この発明によるデータ高速転送同期システム及びデータ高速転送同期方法では、各メモリモジュール内で外部クロックに同期した内部クロックを発生させ、この内部クロックを用いてデータの入出力を行う際に、内部クロックに一定の遅延を付加もしくは差し引いて、データの入出力タイミングを調節するために、ＳＡＤとして図６に示すような構成のものが使用される。
【００５７】
なお、この図６に示したＳＡＤは、図２に示したＳＡＤに対してデータの入出力タイミングを調節する機能を付加したものであるが、図３に示したＳＡＤに対してデータの入出力タイミングを調節する機能を付加して使用するようにしてもよい。また、図６のＳＡＤでは、外部クロックＲＣＬＫから内部クロックｉｎｔＲＣを発生する場合のものを例示しているが、他方の外部クロックＴＣＬＫから内部クロックｉｎｔＴＣを発生するＳＡＤもこれと同様に構成されているので、その説明は省略する。
【００５８】
図６に示したこの発明の第１の実施の形態のシステムで使用されるＳＡＤが先の図２のものと異なるところは、内部クロックのタイミングを調節するために、図２中の遅延Ｄ（＝Ｄ１＋Ｄ２）を有する遅延回路１２に変えて、新たな遅延回路２６が設けられている点と、図２中の出力バッファ１４に変えて遅延回路２７が設けられている点の２点である。その他の構成は図２のものと同様なので、以下、図２と異なる点についてのみ説明する。
【００５９】
上記遅延回路２６は、遅延Ｄ１を有するバッファ５１と、このバッファ５１の出力が供給され、このバッファ５１の出力を固定された一定時間ｄ０だけ遅延して第１の遅延出力を得ると共にこの固定された遅延時間ｄ０と同等の時間ｄ０だけバッファ５１の出力を遅延して第２の遅延出力を得る可変遅延部５２と、この可変遅延部５２で得られる第２の遅延出力を受け遅延Ｄ２を有するバッファ５３と、上記可変遅延部５２で得られる第１の遅延出力を受け遅延Ｄ２を有するバッファ５４とから構成されている。そして、上記バッファ５３の出力がＳＡＤ１３のＦＤに供給される。
【００６０】
上記遅延回路２７は、上記ＳＡＤ１３の出力を固定された一定時間ｄ０だけ遅延して第１の遅延出力を得ると共にこの固定された遅延時間ｄ０に対し、外部からの制御により遅延時間がｄ０に対してｄだけ増減される第２の遅延出力を得る可変遅延部５５と、この可変遅延部５５で得られる第２の遅延出力を受け遅延Ｄ２を有するバッファ５６と、上記可変遅延部５５で得られる第１の遅延出力を受け遅延Ｄ２を有するバッファ５７とから構成されている。そして、上記バッファ５６、５７の出力が、外部クロックＲＣＬＫに同期した内部クロックｉｎｔＲＣ′、ｉｎｔＲＣとして出力される。
【００６１】
なお、遅延回路２６に設けられている可変遅延部５２は、第１の遅延出力と第２の遅延出力の遅延時間が共に固定された一定時間ｄ０なので、特に遅延時間を可変させるような構成とする必要はないが、遅延回路２７にも可変遅延部５５が設けられており、この可変遅延部５５と同等の回路条件を持たせるために可変遅延部５２が用いられている。これと同じ理由により、遅延回路２６に設けられているバッファ５４は、その出力が他の回路部に供給されないので、このバッファ５４を省略することも可能である。しかし、内部クロックｉｎｔＲＣを得るために可変遅延部５５にバッファ５６を接続しており、可変遅延部５５に対する負荷条件と同じ負荷条件を持たせるために、可変遅延部５２にもバッファ５４を接続している。
【００６２】
このような構成のＳＡＤの基本的な動作は図２に示したものと同様であり、Ｔ＝Ｄ＋Δ＝Ｄ１＋ｄ０＋Ｄ２であるから、外部クロックＲＣＬＫから内部クロックｉｎｔＲＣ′までの経路ではＤ１＋Δ＋ｄ０±ｄ＋Ｄ２＝Ｔ±ｄとなって、外部クロックＲＣＬＫに対してｄだけずれたタイミングを持つ内部クロックｉｎｔＲＣ′を発生することができる。なお、バッファ５７から出力される内部クロックｉｎｔＲＣは、遅延時間がｄ０のパスを経て出力されるので、外部クロックＲＣＬＫと位相が一致したものとなる。
【００６３】
上記可変遅延部５２、５５は、外部からの制御によって遅延時間が可変できるものであるが、その具体的な回路構成を図７に示す。
【００６４】
この回路は、単位遅延素子６１をｎ段直列に接続し、これらの各直列接続点から信号を取り出すようにしている。信号の取り出しには複数のスイッチ回路６２が用いられる。このスイッチ回路６２には、固定された一定時間ｄ０だけ遅延された先の第１の遅延出力を得るための１個のスイッチ回路６２−１と、遅延時間がｄ０に対してｄだけ増減される先の第２の遅延出力を得るための複数個のスイッチ回路６２−２とからなる。これらのスイッチ回路６２−１、６２−２はそれぞれ、図８に示すように、電源電位と接地電位との間に直列に接続されたそれぞれ２個のＰチャネルＭＯＳトランジスタ６３、６４及びＮチャネルＭＯＳトランジスタ６５、６６とからなり、トランジスタ６４と６５のゲートに上記単位遅延素子６１の対応する直列接続点の信号が供給され、トランジスタ６３のゲートに制御信号／Ｔａｐｉ（ｉ＝０〜ｎ）が供給され、トランジスタ６６のゲートに制御信号Ｔａｐｉが供給されるＣＭＯＳ型のクロックドインバータ６７と、ＰチャネルＭＯＳトランジスタ６８とＮチャネルＭＯＳトランジスタ６９とからなり、上記クロックドインバータ６７の出力を反転して出力するＣＭＯＳ型のインバータ７０とから構成されている。
【００６５】
上記第１の遅延出力を得るためのスイッチ回路６２−１は、全体の最大遅延量のほぼ中間の遅延量ｄ０が得られる単位遅延素子６１の直列接続点に接続されており、このスイッチ回路６２−１には制御信号／Ｔａｐｉに相当する信号として“Ｌ”が、制御信号Ｔａｐｉに相当する信号として“Ｈ”が常時供給されている。従って、このスイッチ回路６２−１は常時動作し、このスイッチ回路６２−１が接続されている単位遅延素子６１の信号が常時選択される。そして、ｎ段直列接続された単位遅延素子６１の一端側に入力される信号ｉｎからこのスイッチ回路６２−１の出力ノード（fixed out ）までの遅延時間が、図６中のｄ０に相当している。
【００６６】
また、上記第２の遅延出力を得るための複数のスイッチ回路６２−２のうちのただ一つに、制御信号／Ｔａｐｉとして“Ｌ”が、制御信号Ｔａｐｉとして“Ｈ”が供給され、この制御信号が供給されたスイッチ回路６２−２が接続されている単位遅延素子６１の直列接続点の信号が選択され、第２の遅延出力（out ）として出力される。そして、入力ｉｎからこのただ一つのスイッチ回路６２−２の出力ノードまでの遅延時間が、図６中のｄ０±ｄに相当している。
【００６７】
上記のように複数のスイッチ回路６２−２は、制御信号／Ｔａｐｉ、Ｔａｐｉに基づいていずれか一つが動作し、単位遅延素子６１で遅延された信号を選択する。
【００６８】
図９は、上記複数個のスイッチ回路６２−２の制御に使用される制御信号／Ｔａｐｉ、Ｔａｐｉを発生する制御信号発生回路の構成を示している。
【００６９】
図９に示される回路では、それぞれが２個のレジスタを含む回路ユニット７１を複数個並べ、各回路ユニット７１からそれぞれ連続する２つの制御信号Ｔａｐｉ（／Ｔａｐｉについては図示を省略している）を出力させている。これら複数個の回路ユニット７１に対し、２種類の同期信号Φ１、Φ２と右シフト信号Ｒｓｆｔ及び左シフト信号Ｌｓｆｔが供給される。
【００７０】
複数個の回路ユニット７１の下部に記載した「“１”」や「“０”」は、各回路ユニット７１に設けられているそれぞれ２個のレジスタの記憶状態を示しており、「“１”」と「“０”」の境目の位置に対応した制御信号Ｔａｐｉのみが  “Ｈ”にされる。例えば、図９では左から４番目の回路ユニット７１内の２個のレジスタの記憶状態が「“１”」と「“０”」なので、その境目の位置に対応した制御信号Ｔａｐ６が“Ｈ”にされている。
【００７１】
また、初期状態では、図７中の「ｍ」の位置のスイッチ回路６２−２に供給される制御信号Ｔａｐが“Ｈ”となるように、各回路ユニット７１内のそれぞれ２個のレジスタがセットされる。セット後は各レジスタの「“１”」、「“０”」の状態が、先の同期信号Φ１、Φ２と右シフト信号Ｒｓｆｔもしくは左シフト信号Ｌｓｆｔに基づいてレジスタ１個分ずつ左右に移動する。
【００７２】
上記同期信号Φ１、Φ２は交互に立ち上がるパルスであり、右シフト信号Ｒｓｆｔ及び左シフト信号Ｌｓｆｔはこれらの信号が“Ｈ”のときに同期信号Φ１またはΦ２に従ってレジスタの「“１”」または「“０”」の状態をそれぞれ右もしくは左方向に一つのレジスタ分移動させる信号である。
【００７３】
図１０は、図９における１個の回路ユニット７１の詳細な回路構成を示している。図において、７２、７３はそれぞれ２個のインバータの入出力端間を逆並列接続して構成されたレジスタであり、一方のレジスタ７２の出力を／ｉ、ｉ、他方のレジスタ７３の出力を／ｉ＋１、ｉ＋１とすると、一方のレジスタ７２の出力／ｉと接地電位との間には３個のＮチャネルＭＯＳトランジスタ７４〜７６が直列に接続され、一方のレジスタ７２の出力ｉと接地電位との間には３個のＮチャネルＭＯＳトランジスタ７７〜７９が直列に接続され、他方のレジスタ７３の出力／ｉ＋１と接地電位との間には３個のＮチャネルＭＯＳトランジスタ８０〜８２が直列に接続され、他方のレジスタ７３の出力ｉ＋１と接地電位との間には３個のＮチャネルＭＯＳトランジスタ８３〜８５が直列に接続されている。
【００７４】
上記トランジスタ７４〜７６のゲートには、隣接する前段の回路ユニット７１内のレジスタ７３の出力ｉ−１、同期信号Φ１及び右シフト信号Ｒｓｆｔがそれぞれ供給される。上記トランジスタ７７〜７９のゲートには、同じ回路ユニット７１内のレジスタ７３の出力／ｉ＋１、同期信号Φ２及び左シフト信号Ｌｓｆｔがそれぞれ供給される。上記トランジスタ８０〜８２のゲートには、同じ回路ユニット７１内のレジスタ７２の出力ｉ、同期信号Φ２及び右シフト信号Ｒｓｆｔがそれぞれ供給される。同様に、上記トランジスタ８３〜８５のゲートには、隣接する後段の回路ユニット７１内のレジスタ７２の出力／ｉ＋２、同期信号Φ１及び左シフト信号Ｌｓｆｔがそれぞれ供給される。
【００７５】
そして、上記レジスタ７２の出力ｉとレジスタ７３の出力／ｉ＋１とがＮＡＮＤゲート８６に供給され、このＮＡＮＤゲート８６から先の制御信号／Ｔａｐｉが出力される。さらにこの制御信号／Ｔａｐｉがインバータ８７に供給され、このインバータ８７から先の制御信号Ｔａｐｉが出力される。
【００７６】
なお、この図１０に示した回路ユニット７１に隣接する前段の回路ユニット７１では、レジスタ７２の出力／ｉとその回路ユニット７１内のレジスタ７３の出力ｉ−１とを用いて制御信号Ｔａｐｉ−１、／Ｔａｐｉ−１が生成され、この図１０に示した回路ユニット７１に隣接する後段の回路ユニット７１では、レジスタ７３の出力ｉ＋１とその回路ユニット７１内のレジスタ７２の出力／ｉ＋２とを用いて制御信号Ｔａｐｉ＋１、／Ｔａｐｉ＋１が生成される。
【００７７】
次に図１０に示す回路ユニット７１の動作を説明する。いま、レジスタ出力ｉまでが“１”で、レジスタ出力ｉ＋１が“０”であると仮定する。このとき、ＮＡＮＤゲート８６の入力は両方とも“１”なので、その出力である制御信号／Ｔａｐｉは“０”、インバータ８７の出力である制御信号Ｔａｐｉは“１”となる。このとき、その他の制御信号Ｔａｐは“０”である。同期信号Φ１、Φ２は交互に立ち上り、いまｉが「“１”」と「“０”」の境目なので、図１０の回路において最後に立ち上がった同期信号はΦ１である。次にΦ２が立ち上がるときに右シフト信号Ｒｓｆｔを“Ｈ”にすると、トランジスタ８１、８２が共にオンする。そして、これらのトランジスタ８１、８２に対して直列接続されているトランジスタ８０がレジスタ７２の出力ｉ（“１”）に応じてオン状態にされ、レジスタ７３の出力／ｉ＋１がこれら３個のトランジスタ８０〜８２を介して接地電位により“０”に設定される。これにより、レジスタ７３の出力ｉ＋１が“１”に反転し、「“１”」の状態が右方向にシフトされたことになる。
【００７８】
上記とは逆に、Φ２が立ち上がるときに左シフト信号Ｌｓｆｔを“Ｈ”にすると、トランジスタ７８、７９が共にオンする。そして、これらのトランジスタ７８、７９に対して直列接続されているトランジスタ７７がレジスタ７３の出力／ｉ＋１（“１”）に応じてオン状態にされ、レジスタ７２の出力ｉがこれら３個のトランジスタ７７〜７９を介して接地電位により“０”に設定される。これにより、レジスタ７２の出力ｉが“０”に反転し、「“０”」の状態が左方向にシフトされたことになる。
【００７９】
シフト後は同期信号Φ１、Φ２を止めるか、右シフト信号Ｒｓｆｔや左シフト信号Ｌｓｆｔを入力しなければ、各レジスタの記憶状態がそのまま保持されるので、設定された制御信号Ｔａｐｉがそのまま維持される。これにより、先の図４の回路で設定された可変の遅延時間が固定され、そのまま保持される。
【００８０】
図１１は上記実施の形態に係るシステムで使用される１個のメモリモジュールの内部構成を示すブロック図である。なお、ここでは、メモリセルアレイなどのコア部やその周辺回路などは図示を省略した。
【００８１】
ＳＡＤ９１は、クロックバス上を伝達される外部クロックＴＣＬＫを受けて内部クロックｉｎｔＴＣ′を出力する。同様に、ＳＡＤ９２は、クロックバス上を伝達される外部クロックＲＣＬＫを受けて内部クロックｉｎｔＲＣ′を出力する。コマンドデコーダ９３は、外部クロックＴＣＬＫ及びコマンドバスを伝達されるコマンドを受け、このコマンドをデコードして、上記両ＳＡＤ９１、９２の動作を制御する制御回路９４、９５にそのデコード出力を供給する。
【００８２】
上記両制御回路９４、９５は、上記各ＳＡＤ９１、９２におけるタイミング調整動作を含む動作を制御するものであり、先の図９に示す制御信号発生回路などを含んでいる。
【００８３】
データ入力制御回路９６は、メモリコントローラから対応するメモリモジュールに対してデータの書き込みを行う際に、上記ＳＡＤ９１から出力される内部クロックｉｎｔＴＣ′に基づいてデータストローブ信号を作り、このデータストローブ信号に同期してデータバス上のデータを取り込み、図示しないメモリ回路に供給する。データ出力制御回路９７は、対応するメモリモジュールからデータを読み出してメモリコントローラに転送する際に、上記ＳＡＤ９２から出力される内部クロックｉｎｔＲＣ′に同期して図示しないメモリ回路からのデータをデータバス上に出力する。
【００８４】
このような構成のメモリモジュールによれば、ＳＡＤ９１、９２それぞれで、外部クロックＴＣＬＫ、ＲＣＬＫから内部クロックｉｎｔＴＣ′、ｉｎｔＲＣ′を発生する際に、個々のＳＡＤで内部クロックｉｎｔＴＣ′、ｉｎｔＲＣ′のタイミング調整を図ることができるので、環境の差などによる転送データのタイミングのずれを、メモリコントローラ側で見えないようにすることができ、高速な同期型データ転送を実現することができる。
【００８５】
次に、図７に示した可変遅延部において遅延量をどのようにして設定するかについて説明する。これは先の図３８に示したシステムにおいて、通常の動作周波数よりも低い周波数のクロックＣＬＫ（ＴＣＬＫ及びＲＣＬＫに相当）に同期して所定のバーストデータを転送し、メモリモジュールなりコントローラなりに格納させることなどにより行われる。
【００８６】
図１２は、上記クロックＣＬＫに同期して例えば「１００１」という４ビットのバーストデータを転送し、これを格納する場合の動作を示すタイミングチャートである。
【００８７】
クロックに同期してデータを出力するのがコントローラなら、データはメモリモジュールのデータバス上の位置には無関係にクロックＣＬＫに同期して一定のタイミングで出力される。このとき、データを取り込むのはメモリモジュールであり、メモリモジュールはクロックＣＬＫに同期したタイミングに基づいて作られる内部クロックからデータストローブ信号を作り、このデータストローブ信号に基づいてデータバス上のデータを取り込む。
【００８８】
他方、クロックに同期してデータを出力するのがメモリモジュールなら、データを取り込む側はコントローラであり、コントローラはクロックＣＬＫに同期した内部信号から作られるストローブ信号を用いて、メモリモジュールのデータバス上の位置に関係なく、データを一定のタイミングで取り込む。
【００８９】
図１２では、データストローブのタイミングが上向きの矢印の位置で示されている。クロックＣＬＫとデータとの位相ずれがなければ、「１００１」の波形で示したように正しくデータが取りまれる。
【００９０】
クロックＣＬＫに対してデータの位相が遅れると、取り込まれるデータは「Ｘ１００」の波形のようになり、読み込まれたデータは「Ｘ１００」となる。なお、「Ｘ」は不定を意味する。このとき、可変遅延量の設定は、データ読み込みに対しては、クロックＣＬＫに同期した内部クロックからデータストローブのタイミングを遅らせるように、先の制御信号Ｔａｐｉの設定をコントローラ側からコマンドで行い、正しく「１００１」とデータが読み込めるようにする。
【００９１】
制御信号Ｔａｐｉの設定はコマンドによって、先の同期信号Φ１、Φ２及び右／左シフト信号Ｒｓｆｔ／Ｌｓｆｔの出力動作を制御すればよい。
【００９２】
データ出力に対しては、クロックＣＬＫよりさらに位相を進めてデータを出力する必要があり、クロックＣＬＫに同期した内部クロックからデータ出力のタイミングを早めるように制御信号Ｔａｐｉの設定をコントローラからのコマンドで行い、メモリコントローラが正しく「１００１」と読み込めるようにする。
【００９３】
クロックＣＬＫに対してデータの位相が進んでいると、取り込まれるデータは「００１Ｘ」の波形のようになり、読み込まれたデータは「００１Ｘ」となる。このとき、メモリモジュールにおける可変遅延量の設定は、データ読み込みに対しては、クロックＣＬＫに同期した内部クロックからデータストローブのタイミングを進めるように、先の制御信号Ｔａｐｉの設定をコントローラ側からコマンドで行い、正しく「１００１」と読み込めるようにする。
【００９４】
データ出力に対しては、クロックＣＬＫよりさらに位相を遅らせてデータを出力する必要があり、クロックＣＬＫに同期した内部クロックからデータ出力のタイミングを遅らせるように制御信号Ｔａｐｉの設定をコントローラからのコマンドで行い、コントローラが正しく「１００１」と読み込めるようにする。
【００９５】
次に、コントローラと各メモリモジュールとの間での、システムとしての上記遅延量の設定の手順について説明する。
【００９６】
コントローラからメモリモジュールが最初にアクセスされたときには可変遅延量は設定されていないので、データの転送タイミングは最適化されておらず、正しいデータの読み書きは保証されない。そこで、先の制御信号Ｔａｐｉの設定の手順が重要になる。
【００９７】
先の「１００１」からなる４ビットのデータパターンを用いれば、制御信号Ｔａｐｉをどのようにしてシフトするかの情報が得られることは先に説明した通りであるが、この手順をまとめると以下のようになる。
【００９８】
（１）「１００１」のようなデータパターンをメモリモジュールにデータとしてセットする。この場合、メモリモジュールに対し、通常の動作時に比べてゆっくりとしたタイミングでデータを与えて、１ビットずつデータを入力する。なお、予めメモリモジュール内に上記データパターンを固定データとして持たせるようにしてもよい。
【００９９】
（２）メモリモジュールのデータ出力タイミングを調節する。メモリモジュールが、上記データパターンをコントローラからのコマンドで正規のクロックに基づいてバーストデータとして出力する。また、コントローラはバーストデータを読み込み、設定したデータパターンが得られる最適な位置に、コマンドによりメモリモジュールの制御信号Ｔａｐｉをずらして設定する。
【０１００】
以上のような手順を全てのメモリモジュールについて行う。これにより、メモリモジュールのデータバス上の位置毎のタイミングの調節が完了し、どのメモリモジュールからのデータもコントローラはクロックから一定のタイミングのストローブで正しく読み込めるようになる。
【０１０１】
（３）メモリモジュールにおけるデータ読み込みタイミングの調節は以下のように行われる。まず、コントローラはメモリモジュールが読み込むデータパターンをバーストデータとして正規のタイミング（通常動作時のタイミング）でメモリモジュールに出力する。次に、メモリモジュールはこれを読み込み、読み込んだデータをコントローラからのコマンドで出力する。コントローラはメモリモジュールから読み出されたデータを読み込み（既に手順２で、出力についてはタイミング調整が完了している）、出力したデータと比較する。コントローラは、コマンドにより、データパターンが一致する最適な位置にメモリモジュールのデータ取り込みタイミングの制御信号Ｔａｐｉをずらして設定する。
【０１０２】
以上のような手順をデータバス上の全てのメモリモジュールに対して行い、この後、コントローラがクロックＴＣＬＫに同期してデータを出力すれば、どのメモリモジュールでも正しくデータを読み込むことができる。
【０１０３】
これにより、メモリモジュールにおける可変遅延の設定が終わり、コントローラはメモリモジュールのバス上の位置やバスシステムの環境による違いを気にすることなく、一定のタイミングでデータの転送を行うことができる。
【０１０４】
次にこの発明の第２の実施の形態について図１３を参照して説明する。
【０１０５】
図１３はこの発明の第２の実施の形態に係るメモリボードシステムの概略的なブロック構成を示す。コントローラＭＥＣがクロックＣＬＫ（ＴＣＬＫ、ＲＣＬＫ）を出力し、このクロックを複数のメモリモジュールＭＭ（図では１個のみ示している）が受け取り、このクロックのタイミングでコマンドやデータをメモリモジュールＭＭが受け、ループバックして戻っていくクロックに同期してメモリモジュールＭＭがコントローラＭＥＣにデータを出力するシステムにおいて、コントローラＭＥＣはクロックＣＬＫとして先のクロックＴＣＬＫ、ＲＣＬＫと共に、これらクロックＴＣＬＫ、ＲＣＬＫの２倍の周期を持つクロックＴＳＩＧＮ、ＲＳＩＧＮを同時に出力する。
【０１０６】
そして、メモリモジュールＭＭのデータバス上での位置に応じたデータ転送時間の差を、２倍周期のクロックＴＳＩＧＮ、ＲＳＩＧＮを使い、クロックＴＣＬＫ、ＲＣＬＫの偶数番目と奇数番目を識別することによって変えて、データバスを有効に利用するようにしている。なお、あるクロックとそのクロックに対して２倍の周期を持つクロックを用いることによって、データバスを有効に利用するようにしたシステムの基本については、本発明者による特願平10−8297号の出願で詳しく説明されている。
【０１０７】
上記クロックＴＣＬＫ、ＲＣＬＫ及びクロックＴＳＩＧＮ、ＲＳＩＧＮの位相関係を図１４のタイミングチャートに示す。図示のように、例えば上向きの矢印のサイクルがクロックの折り返し点前と後の対応するサイクルとなる。２倍周期のクロックを用いているので、メモリモジュールなりコントローラが受け取るクロックＴＣＬＫ、ＲＣＬＫを偶数クロックと奇数クロックに分けることが出来る。以後、偶数クロックに関係したものには「ｅ」、奇数クロックに関係したものには「ｏ」、またクロックＴＣＬＫ、ＲＣＬＫの立ち上がりに同期したものには「ｕ」、立ち上がり周期に１８０度位相がずれたタイミングに同期したものには「ｄ」という添え字を付けて表すことにする。
【０１０８】
このような構成のシステムにおいて、ＴＣＬＫとＲＣＬＫの位相が３６０度＊２までの任意の値ずれた場合に、その中間のタイミングＭを設定することにより、どのように対応するＴＣＬＫとＲＣＬＫとを関連付けてデータバス上の位置の異なるメモリモジュールが、データバス上でデータの衝突を起こさずにかつデータ転送のギャップが無くデータの転送を行うことができるかを説明する。また、中間のタイミングＭを作る具体的な方法については後に詳述する。
【０１０９】
図１５にクロックバス上の異なる二つの場所でのＴＣＬＫとＲＣＬＫの位相関係を示す。ＴＣＬＫのタイミングｔＡが折り返し点で戻り、ＲＣＬＫのタイミングｔＢとなる。折り返し点に近い場所と遠い場所でそれぞれの場所のＴＣＬＫを基準にしてみれば、タイミングｔＡとｔＭとｔＢの関係は図１２に示したようになる。
【０１１０】
コントローラＭＥＣからのクロックはＴＣＬＫ、コントローラＭＥＣへのクロックはＲＣＬＫであるから、メモリモジュールＭＭはタイミングｔＡで受けたコマンドに対してタイミングｔＢを起点にしてデータをＲＣＬＫに同期してデータバスに乗せてやればデータのバス上での衝突は起きないし、コントローラＭＥＣが受け取るデータに空きサイクルが生じることもない。
【０１１１】
各メモリモジュールＭＭはタイミングｔＡでコマンドを受けてタイミングｔＢから一定のサイクルの後所謂レイテンシーの後にデータをデータバスに出力するが、一連のデータを出し終わり新たなデータ出力サイクルを始める際、そのレイテンシーのＲＣＬＫでの数え方の手順は以下の通りである。
【０１１２】
（１）ＴＣＬＫに同期して取り込んだコマンドが新たなサイクル数カウントコマンドであれば、この直後のｔＭのタイミングでサイクル数カウントを可能状態とする。無論、ＴＣＬＫに同期して取り込んだコマンドがコマンドが無い状態も含めて新たなサイクル数カウントコマンドでなければカウント可能状態とすることはない。
【０１１３】
（２）タイミングｔＭの直後のＲＣＬＫからＲＣＬＫに同期してサイクル数をカウントし必要なサイクル数継続する。
【０１１４】
上記の手順でＲＣＬＫのサイクルをＴＣＬＫに同期したコマンドを受けて数えれば、図１５中でＲＣＬＫに付した丸数字のように、折り返し点の近くに配置されたメモリモジュールでもコントローラの近くに配置されたメモリモジュールの場合でも、タイミングｔＡのコマンドに対応するタイミングｔＢから同じレイテンシーでデータをＲＣＬＫに同期してデータバスに乗せることが出来る。
【０１１５】
これによってコントローラもＴＣＬＫのタイミングｔＡとＲＣＬＫのタイミングｔＢがコントローラでの中間タイミングｔＭを介して同様に対応づけられているので、コントローラにとってコマンドを出して対応するデータを受け取るという動作のメモリのデータバス上での位置の差は全くなくなる。
【０１１６】
なお、倍周期のクロックＴＳＩＧＮ、ＲＳＩＧＮによって、図１５中の太線で示したサイクルと細線で示したサイクルが識別できるので、クロックＴＣＬＫ、ＲＣＬＫの位相が１サイクル以上２サイクル未満までずれても、中間タイミングｔＭを確定することができる。すなわち、クロックバスのループがクロック（ＴＣＬＫ、ＲＣＬＫ）の周期に比べて長く、ＴＣＬＫがＲＣＬＫとして戻ってきたときに２サイクルまで転送時間がかかっても良いことになる。
【０１１７】
次にメモリモジュールＭＭやコントローラＭＥＣで上記中間タイミングｔＭを設定する具体的な方法について説明する。
【０１１８】
図１６はＴＣＬＫまたはＲＣＬＫに同期して作られた偶数内部クロックＴｅｕまたはＲｅｕ、奇数内部クロックＴｏｕまたはＲｏｕの変化を示す。これらの内部クロックがメモリモジュールまたはコントローラ内で作られるならば、これらを用いて先のタイミングｔＭをメモリモジュールまたはコントローラで作ることができる。
【０１１９】
このタイミングｔＭは、ＴｏｕまたはＴＣＬＫのいずれかのサイクル（これを例えばＣＬＫ１と称する）に対してδだけ遅れたＲｏｕまたはＲＣＬＫのいずれかのサイクル（これを例えばＣＬＫ２と称する）があるときに、ＣＬＫ１からδ／２だけ遅れたタイミングに相当しており、以下のような方法で作られる。
【０１２０】
すなわち、ＣＬＫ２のＣＬＫ１に対する遅れ（δ）をＣＬＫ１のＣＬＫ２に対する遅れ（２τ−δ）（ただしτはＣＬＫ１またはＣＬＫ２の周期）としてとらえ、この遅れの半分の遅れ（τ−δ／２）の遅れたタイミングをＣＬＫ１から作り、このタイミングからあるＣＬＫ１サイクルまでの遅れ（τ＋δ／２）をとらえ、この遅れだけ上記のあるＣＬＫ１サイクルから遅れたタイミングを作り、このタイミングをＣＬＫ１に対してδ／２遅れたタイミングとする。
【０１２１】
次に、先のＳＡＤを用いて上記タイミングｔＭを作る具体的な方法を図１７のタイミングチャートを用いて説明する。ＴＣＬＫとＲＣＬＫは折り返し点で戻ってくることにより、ＴＣＬＫとＲＣＬＫとの間にδなる位相差が生じたとする。この位相差δは０から（３６０＊２）度である。クロックにｅとｏの区別を示しておいたが、図１７では上向き矢印の付いたｅクロックから対応するｔＭのタイミングｔＭｅが作られる様子を示している。ｏクロックからの場合も同様に考えることが出来るのでこの場合は省略した。
【０１２２】
まずＲｏｕの「１」のタイミングから始まる。ＳＡＤを用いてＲｏｕと直後のＴｏｕの遅延量をＴｏｕの「２」のタイミングで検出し、この遅延量の半分の遅延の後に内部クロックΦｅを「３」のタイミングで発生する。クロックＴＣＬＫ、ＲＣＬＫの周期をτとすれば、ＲｏｕとＴｏｕの間の遅延量は２τ−δであるから「２」と「３」の間すなわちＴｏｕとΦｅの遅延量はτ−δ／２となる。さらにＳＡＤを用いてΦｅのタイミングと直後のＴｏｕとの遅延量をＴｏｕの「４」のタイミングで検出し、この遅延量と同じ遅延の後にｔＭｅを「５」のタイミングで発生する。
【０１２３】
「２」から「４」までの遅延はＴｏｕの周期に等しく２τであるから、「３」から「４」までの、すなわちΦｅとＴｏｕの遅延量は「２」から「４」までの遅延量から、「２」から「３」までの遅延量を引いてτ＋δ／２となり、「４」から「５」までの遅延量もこれに等しくτ＋δ／２となる。従ってＴｏｕからτ＋δ／２のｔＭｅのタイミングはＴｅｕからδ／２のタイミングであり、ＴｅｕとＲｅｕの求める中間のタイミングとなる。
【０１２４】
このようにクロックＴＣＬＫ、ＲＣＬＫの５サイクルで必要なタイミング信号が得られる。図１７中及び上記説明での添え字ｅとｏを交換すれば、Ｔｏｕからδ／２のタイミングであるＭｏが得られ、ｔＭｅとｔＭｏを合わせれば図１２におけるタイミングｔＭが得られる。
【０１２５】
次に上記図１６、図１７で説明した内部クロックＴｏｕ、Ｒｏｕ、Ｔｅｕ、Ｒｅｕを発生する内部クロック発生回路の具体的な構成及びその動作を、図１８を参照して説明する。
【０１２６】
図１８（ａ）はクロックＴＣＬＫ、ＲＣＬＫの偶数ｅと奇数ｏを分けるための信号Ｔ２またはＲ２を作る回路を示しており、ＴＣＬＫもしくはＲＣＬＫが入力されるバッファ１０１と、ＴＳＩＧＮもしくはＲＳＩＧＮが入力される奇数段（本例では３段）縦続接続されたバッファ１０２と、４個のＮＡＮＤゲート１０３〜１０６とから構成されている。
【０１２７】
すなわち、バッファ１０１の出力は、ＮＡＮＤゲート１０３の一方入力端に反転して入力されると共にＮＡＮＤゲート１０４の一方入力端に反転して入力される。３段縦続接続されたバッファ１０２の後段のバッファ１０２の出力は、ＮＡＮＤゲート１０３の他方入力端とＮＡＮＤゲート１０４の他方の反転入力端にそれぞれ供給される。上記ＮＡＮＤゲート１０３の出力はＮＡＮＤゲート１０５の一方入力端に供給される。上記ＮＡＮＤゲート１０４の出力はＮＡＮＤゲート１０６の一方入力端に供給される。上記ＮＡＮＤゲート１０５、１０６の他方入力端は互いに異なるＮＡＮＤゲートの出力端に接続されている。
【０１２８】
すなわち、図１８（ａ）に示した回路は、２個のＮＡＮＤゲート１０５、１０６よりなるフリップフロップによってクロックの偶数ｅと奇数ｏを分けるための信号Ｔ２またはＲ２を作っており、Ｔ２（Ｒ２）は取り込んだクロックＴＳＩＧＮ（ＲＳＩＧＮ）が“Ｈ”のときのクロックＴＣＬＫ（ＲＣＬＫ）の“Ｌ”への遷移で“Ｈ”となり、取り込んだクロックＴＳＩＧＮ（ＲＳＩＧＮ）が“Ｌ”のときのクロックＴＣＬＫ（ＲＣＬＫ）の“Ｌ”への遷移で“Ｌ”となる。なお、クロックＴＣＬＫ（ＲＣＬＫ）、ＴＳＩＧＮ（ＲＳＩＧＮ）とＴ２（Ｒ２）の関係を図１８（ｄ）のタイミングチャートに示す。
【０１２９】
図１８（ｂ）はＴｏｕまたはＲｏｕを作る回路の構成を、同図（ｃ）はＴｅｕまたはＲｅｕを作る回路の構成をそれぞれ示している。各回路の基本的な構成は同じであリ、入力信号のみが異なるので図１８（ｂ）で代表して説明する。
【０１３０】
図１８（ｂ）に示した回路は以下のように構成されている。クロックＴＣＬＫもしくはＲＣＬＫはバッファ１１１を介してＡＮＤゲート１１２の一方入力端に供給される。このＡＮＤゲート１１２の他方入力端には図１８（ａ）の回路で作られる信号Ｔ２またはＲ２が供給される。上記ＡＮＤゲート１１２の出力は、バッファ１１３を介してＡＮＤゲート１１４の一方入力端に供給される。このＡＮＤゲート１１４の他方入力端には“Ｈ”が常時供給されている。上記ＡＮＤゲート１１４の出力は、バッファ１１５を介してＳＡＤ１１６のＦＤに供給される。また、ＡＮＤゲート１１２の出力は制御クロックとして上記ＳＡＤ１１６に供給される。上記ＳＡＤ１１６には、上記ＦＤの他にＢＤが設けられている。
【０１３１】
ＳＡＤ１１６のＦＤ内には複数の遅延ユニットが設けられており、入力された信号はこの複数の遅延ユニットを伝達することによって遅延される。そして、ＳＡＤ１１６では、ＦＤにバッファ１１５からの信号が供給され、次のサイクルのＡＮＤゲート１１２の出力が立ち上がる時点までの遅延時間Δが、ＦＤへの入力信号が伝達した遅延ユニットの数に対応して検出される。さらに、この検出された信号の遅延時間Δに相当する遅延量が保持される。
【０１３２】
ＢＤは、ＦＤで保持された遅延時間Δに相当する遅延量だけ信号を遅延する。そして、ＢＤの出力はバッファ１１７を介して前記ＴｏｕまたはＲｏｕとして出力される。
【０１３３】
ここで、クロックＴＣＬＫもしくはＲＣＬＫに対する上記バッファ１１１及びＡＮＤゲート１１２からなる回路における遅延をＤ１、ＢＤの出力に対する上記バッファ１１７おける遅延をＤ２とすると、ＡＮＤゲート１１２の出力に対する上記バッファ１１３、ＡＮＤゲート１１４及びバッファ１１５からなる遅延回路における遅延ＤはＤ１＋Ｄ２となるように設定されている。
【０１３４】
このＳＡＤを用いた回路の基本的な動作は先に説明した通りであるが、これを簡単に説明すると、図示のようにＤ＝Ｄ１＋Ｄ２とすれば、ＴｏｕまたはＲｏｕの立ち上がりはクロックＴＣＬＫまたはＲＣＬＫの奇数クロックの立ち上がりに一致する。これはＤ＋Δの遅延量が丁度奇数のクロックＴＣＬＫまたはＲＣＬＫの周期２τに等しくなることから分かる。Δは周期τやＤ１、Ｄ２の遅延の時間の変化を検出して補償している。
【０１３５】
図１８（ｃ）の回路が同図（ｂ）のものと異なる点は、ＡＮＤゲート１１４の他方入力端に“Ｌ”を常時供給することによって偶数のクロックＴＣＬＫまたはＲＣＬＫで動作するようにしただけである。
【０１３６】
図１９（ａ）、（ｂ）は、図１７に示した内部タイミングクロックΦｅ（Φｏ）を発生する回路の具体的な構成を示しており、図１９（ａ）はΦｅの、図１９（ｂ）はΦｏの発生回路である。両回路の基本的な構成は同じであるので図１９（ａ）で代表して説明する。
【０１３７】
Ｒｏｕは縦続接続された２段のバッファ１２１からなる遅延回路による遅延Ｄ（＝２＊Ｄ２）を経た後にＳＡＤ１２２のＦＤに供給される。このＳＡＤ１２２にはＴｏｕが供給されており、ＳＡＤ１２２でＴｏｕまでの遅延量ΔがＦＤで検出される。ＨＢＤ（Half  ＢＤ）は、遅延量が常にＦＤの半分になるように遅延ユニットの数がＦＤ（もしくはＢＤ) の半分に間引かれており、ＴｏｕのタイミングからΔ／２の遅延を経てＳＡＤ１２２を出た信号は、バッファ１２３による遅延Ｄ２を経た後にΦｅとなる。
【０１３８】
すなわち、ＲｏｕからＴｏｕの遅延量が２＊Ｄ２＋Δで、ＴｏｕからΦｅまでの遅延量がその半分のＤ２＋Δ／２となる。
【０１３９】
図１９（ｂ）の回路でも、上記と同様にしてＲｅｕとＴｅｕに対してΦｏが得られる。
【０１４０】
図１７に示したように、ΦｅからＴｏｕまでの遅延量をＴｏｕから検出することによりタイミングｔＭｅが得られる。またΦｏからＴｅｕまでの遅延量をＴｅｕから検出することによりタイミングｔＭｏが得られる。さらに、タイミングｔＭｅとｔＭｏを合わせてタイミングｔＭとなるが、これを発生する回路の構成を図２０に示す。
【０１４１】
図２０の回路の機能は図１８（ｂ）、（ｃ）の回路と基本的に同じである。ここではそれぞれＦＤ及びＢＤが設けられた二つのＳＡＤ１２４、１２５の出力のＯＲ論理をＯＲゲート１２６でとることによって、ｔＭ（ｔＭｅまたはｔＭｏ）を得るようにしている。このため、入出力段における遅延量を合わせるために、両ＳＡＤ１２４、１２５の前段にもＯＲゲート１２７、１２８が設けられている。上記一方のＯＲゲート１２７にはΦｅと“Ｌ”が供給され、他方のＯＲゲート１２８にはΦｏと“Ｌ”が供給されている。また、一方のＳＡＤ１２４にはＴｏｕが、他方のＳＡＤ１２５にはＴｅｕがそれぞれ供給されている。
【０１４２】
データの入出力はクロックＴＣＬＫまたはＲＣＬＫの１周期に２つのデータを転送する所謂ＤＤＲ（Double Data Rate）であるとする。また、基準タイミングはＴＣＬＫやＲＣＬＫの立上がりで規定されているとして、クロックのデューティ比に依存しないようにする。その理由は、クロックバスの位置に依らないで、クロックの精度良いデューティを保証するのが困難であると思われるからである。そこで、クロックの立上がりサイクルの丁度中間のタイミングを発生させて、データのＤＤＲ転送に対応する。
【０１４３】
また、図2 １のタイミングチャートに示すように、Ｒｅｕ（Ｔｅｕ）、Ｒｏｕ（Ｔｏｕ）、Ｒｅｄ（Ｔｅｄ）、Ｒｏｄ（Ｔｏｄ）を発生させ、これらの信号に同期させてデータの転送を行う。
【０１４４】
クロックの立上がりに同期した内部クロックの発生方法については、図１８で既に説明したので、これらと１８０度位相がずれたクロックの発生方法について図２２（ａ）、（ｂ）を参照して説明する。
【０１４５】
図２２（ａ）、（ｂ）に示した回路の構成は図１９（ａ）、（ｂ）のものと同様であり入出力信号が異なるだけなので、図１９（ａ）、（ｂ）と対応する箇所には同じ符号を付してその説明は省略する。
【０１４６】
図２２（ａ）は偶数番目のクロックで１８０度位相がずれたクロックを作る回路であり、図２２（ｂ）は奇数番目のクロックで１８０度位相がずれたクロックを作る回路である。
【０１４７】
まず、図２２（ａ）の回路におけるＴｏｄの発生方法について簡単に説明する。ＴｅｕとＴｏｕの位相差は、これはクロックＴＣＬＫ（ＲＣＬＫ）そのものであるので３６０度であり、ＳＡＤ１２２のＦＤではこの遅延量に相当するΔを検出する。ＨＢＤは遅延量Δ／２を作るものであり、ＴｏｕからＨＢＤを経て発生されたタイミングＴｏｄはＴｏｕから１８０度位相が遅れていることになる。データの入力はクロックＴＣＬＫ（ＲＣＬＫ）の立上がりのタイミングと、さらにこれと１８０度位相がずれたタイミングに対して、あるデータウィンドウを持って転送されてくる。このため、図２２の回路で発生された信号のタイミングでデータを取り込むことができる。
【０１４８】
ＲＣＬＫでデータを出力する場合の内部タイミングの発生の方法が、先の図２１のタイミングチャートに示されている。Ｒｅｕ、Ｒｏｕ、Ｒｅｄ、Ｒｏｄは既に発生されているものを使用する。Ｑ（Ｄ）はデータ出力の状態を示しているが、データの切り替わりがこれらのタイミングにある場合を示している。
【０１４９】
ところで、上記した第２の実施の形態では、ＳＡＤを用いて発生する内部クロックのタイミングを、実際のずれに合わせて調節する可変遅延機能については特に説明していないが、回路規模を大きくしないために、Ｔｅｕ、Ｔｏｕ、Ｒｅｕ、Ｒｏｕの発生回路に先の可変遅延機能を持たせるようにする。
【０１５０】
図２３は、Ｔｏｕ、Ｔｅｕ、Ｒｏｕ、Ｒｅｕの発生回路に可変遅延機能を持たせるために、先の図１８（ｂ）、（ｃ）の回路に変えて使用される回路の構成を示している。すなわち、図１８（ｂ）の回路の代わりに図２３（ａ）の回路が使用され、図１８（ｃ）の回路の代わりに図２３（ｂ）の回路が使用される。
【０１５１】
この図２３（ａ）、（ｂ）に示した回路が図１８（ｂ）、（ｃ）ものと異なるところは、内部クロックのタイミングを調節するために、図６に示した回路に設けられている可変遅延部５２と５５と同様の回路が追加されていることである。図中、Ｔｏｕ′、Ｔｅｕ′、Ｒｏｕ′、Ｒｅｕ′が遅延時間の調節を受けた信号であり、Ｔｏｕ、Ｔｅｕ、Ｒｏｕ、ＲｅｕはＴＣＬＫ、ＲＣＬＫと位相が一致した信号である。
【０１５２】
なお、この場合にも、可変遅延部５２における負荷条件を可変遅延部５５と一致させるために、先のバッファ５４と同じバッファ５４が設けられている。
【０１５３】
ところで、図２や図３などに示したＳＡＤに供給されるクロックには、本来の周期の周りに、ある分布で揺いだジッターが存在している。これはクロック発生器における信号の揺らぎが、一定周期であるべきクロックに与える影響であり、当然ながら平均的な周期は一定である。
【０１５４】
いま、外部クロックに対し、図２４に示すように「０」から「５」の番号を付し、それぞれのサイクルが持つジッターに対してはδと共に外部クロックに付された番号と同じ番号を付す。ジッターの統計的な最大値はδとする。
【０１５５】
ジッターの定義は、一定の周期のクロックが本来あるべき時刻から実際のクロックがどれだけ遅れたかを表す量としている。従って、実際のクロックが早まれば、値としては負になることもある。
【０１５６】
図２４において、クロック１から内部信号を発生する場合を考えると、ＳＡＤではクロック２とクロック１の間の遅延を検出して、クロック１からの遅延とするために、クロック２でのジッターが＋δでクロック１でのジッターが−δの場合と、クロック２でのジッターが−δでクロック１でのジッターが＋δの場合が、クロック２とクロック１の間の遅延の両極端となるので、図示のようにクロック０に対する内部信号のジッターは絶対値で３δとなる。
【０１５７】
このようにＳＡＤを用いた方式では、外部クロックのジッターの状況によってはこのジッターが大きく増幅され、外部クロックと同期した内部信号のジッターとなってしまう。
【０１５８】
そこで、先の図２や図３などに示したＳＡＤにおいては、外部クロックのジッターによる影響をできるだけ小さくする必要があり、これを実現するこの発明の第３の実施の形態について以下に説明する。
【０１５９】
まず、ＳＡＤを用いた回路での外部クロックのジッター増幅を抑制する原理についてまず説明を行い、次にこれを実現するための具体的な回路構成について説明を行う。
【０１６０】
図２５に示すように、外部クロックに対し、図２４と同様に「０」から「５」の番号を付し、それぞれのサイクルが持つジッターに対してはδと共に外部クロックに付された番号と同じ番号を付す。クロック１のタイミングから発生されるクロック０に対応する内部信号を発生する際に用いる遅延量を、図２４の場合のようにクロック２とクロック１との間で検出しないで、クロック３とクロック１との間、クロック５とクロック１との間で検出して１サイクル分の平均値を遅延量として用いるようにする。クロック３とクロック１との間の遅延量を用いると、平均されたジッターは±δとなるので、これにクロック１でのジッターが付加されて、内部信号のジッターは±２δとなり、図２４の場合よりは軽減される。
【０１６１】
さらに、クロック５とクロック１との間の遅延量を用いると、１／４に平均化されるので、平均されたジッターは±０．５δとなり、内部信号のジッターは±１．５δとなる。このようにＳＡＤで用いる遅延量を何サイクルかの間で平均すれば、ジッターは平均化されて小さくなる。
【０１６２】
次に、例えば先の図３に示したＳＡＤで、このような平均化をどのようにして行うかを考える。
【０１６３】
図２６は、図３に示したＳＡＤを書き直したものである。なお、説明を簡略化にするために、内部クロックのタイミングを調節するための先の可変遅延部５２、５５等は図示を省略している。また、入力クロックはＣＫとした。このＣＫは先のＴＣＬＫやＲＣＬＫに相当するものである。
【０１６４】
このＳＡＤは、ＦＤ及びＢＤの他にＳＨを持つ。ＦＤ及びＢＤはそれぞれ複数の遅延ユニットによって構成されている。ＳＨは、ＦＤとＢＤの遅延ユニットにそれぞれ対応した複数の状態保持部で構成されている。ＦＤ内を前進パルスＦＣＬｉが伝達すると、伝達した遅延ユニットに対応した状態保持部がリセット状態からセット状態になり、セット状態になった状態保持部に対応するＢＤ内の遅延ユニットが内部のクロックＣＬＫを直接前段に伝達する。このようにして、前進パルスの伝達した遅延ユニット数に相当する遅延量Δを後進パルスが伝達する遅延ユニットの数として遅延量Δがセットできる。
【０１６５】
また、後進パルスは、伝達しながら伝達した遅延ユニットに対応するＳＨの状態保持部をリセット状態に戻す。このようにして、クロックの毎サイクルでＳＨはクロックの１サイクル分の遅延量Δを検出することができる。
【０１６６】
図３のＳＡＤでは、ＳＨがクロックの１サイクル毎にセットされていたが、これを複数サイクルにわたって部分的に行えば、毎サイクルの遅延量Δをこれら複数のサイクルで平均化することができる。
【０１６７】
２サイクルで平均化する場合の、ＳＡＤの構成例を図２７に示す。この例ではＳＨを二つの部分に分け、これらをクロックの交互のサイクルでセット／リセット動作を行わせるものである。
【０１６８】
例えば、図２５中のクロック３とクロック２の間はΔ１として、クロック２とクロック１の間はΔ２として測定される。ＳＨを構成する複数の状態保持部は二つに区分されており、各々のサイクルでΔ１とΔ２の半分に相当する状態保持部がセットされ、クロック１で内部信号を作る時点ではセットされた状態保持部の数はΔ１とΔ２の平均値に対応していることになる。さらに、ＳＨ内の複数の状態保持部を４つに区分して、４クロックサイクルで順番にセットするようにすれば、図２５の４サイクル平均の場合が得られる。
【０１６９】
次に、このセットされた状態保持部をＢＤのパルス遅延に変換する方式について説明する。図２６で説明したように、ＳＨの状態保持部のセット部とリセット部の境目からＣＬＫがＢＤに入り、これがＢＤを伝達していく。従って、図２７に示すように、Δ１とΔ２が共に二つに区分されたＳＨを構成する小ブロックの途中までの状態保持部がセットされていると、図２７の「１」と「２」に見られるような二か所から同時にＣＬＫがＢＤに進入する。従って、「１」から進入した部分のセットされたユニットのいくつかは、ＢＤでの遅延に寄与しない。この無視されるユニットの数をできるだけ少なくする方法を図２８に示す。
【０１７０】
図２８（ａ）、（ｂ）は、図２７のＳＡＤのＢＤのみを模式的に示している。図において、二つに区分されたＳＨの対応する遅延ユニットのブロックを符号１３０で示している。各遅延ユニットのブロック１３０のそれぞれには「ｅ」と「ｏ」を付して、クロックの交互のサイクルで各々のブロックが遅延線としてセットされることを示している。
【０１７１】
また、各遅延ユニットのブロック１３０において、斜線を施した部分は、セットされた遅延ユニットに相当している。ＢＤの小ブロックの伝達した後進パルスは、直接次の小ブロックに伝達されるのではなく、ＡＮＤゲート１３１により、一つ前のブロック１３０の出力とのＡＮＤ論理をとった後に伝達される。このようにすることで、例えば図２８（ａ）に示すように、途中までセットされた小ブロック１３０が隣接している場合は、セットされている領域が多い方が遅延として働き、少ない方は無視される。すなわち、図２８（ａ）中、太枠で囲んだ小ブロック１３０による遅延は無視されて誤差となる。また。図２８（ｂ）に示すように、クロックの揺らぎが大きく、「ｅ」の小ブロック１３０と「ｏ」の小ブロック１３０の間で１小ブロック以上の差ができた場合は、部分的にセットされた小ブロックのうち、よりパルスの進行の方向の先にある、図中、太枠で囲んだ小ブロック１３０による遅延が無視される。
【０１７２】
もし、ＡＮＤゲート１３１によって論理をとらないと、部分的にセットされた小ブロック１３０に挟まれた全ての小ブロック１３０の遅延が無視されてしまう。以上により、小ブロックのセット状態がどのようになろうとも、小ブロックの一つが無視されるのみとなる。
【０１７３】
図２９（ａ）、（ｂ）は、ＳＨを４つの部分に区分して、４サイクルの平均値をとる場合の例を示している。この場合、小ブロック１３０の種類は４種となり、これらに「ａ」、「ｂ」、「ｃ」、「ｄ」を付して区別している。また、各小ブロック１３０は連続した４つの小ブロックの出力のＡＮＤ論理をとるＡＮＤゲート１３１の出力を入力としている。図２９（ａ）では、隣接する小ブロックが部分的にセットされた状態を示しており、このときはセット部分が最大の小ブロックを除いて他の部分的にセットされた小ブロックの遅延は無視される。図では太枠が囲んだ小ブロックの遅延が無視される。
【０１７４】
図２９（ｂ）では、部分的にセットされた状態の小ブロックが隣接しない場合であり、このときフルにセットされた小ブロックよりもパルス進行方向の先にある部分セット状態の小ブロックが無視され、フルにセットされた小ブロックよりパルス進行手前にある部分セット状態の小ブロックのうち最もセット部分が多い部分セットの小ブロックとフルセット小ブロック以外も無視される。
【０１７５】
すなわち、図中、太枠で囲まれた小ブロックが無視されて遅延に寄与しない。ＡＮＤゲート１３１が設けられていないと、部分セットの小ブロックに囲まれたフルセットの小ブロックも無視されることになる。以上により、無視される小ブロックの数は３つを越えることはない。
【０１７６】
このような小ブロックに分けた構成でのジッターの影響を理論的に扱って、小ブロックの規模などを以下に考察する。
【０１７７】
外部クロックの周期をτとし、図２５に示すようにサイクル１を起点に考える。各サイクルでのジッターを考慮すると、各サイクルでの周期は下記の表１に示すような関係となる。
【０１７８】
【表１】
0003727778.tif 000002
【０１７９】
ＳＨを複数の状態保持部で構成し、これらの状態保持部をα個ずつの小ブロックに分けて、図２９の「ａ」、「ｂ」、「ｃ」、「ｄ」…のようにｎ種に分け、各サイクルでの周期を用いてセットを行うと、各サイクル毎にセットされている状態保持部の数は各々の種別毎に１／ｎの個数しかないので、上記各サイクルでの周期が１／ｎされたものとなる。小ブロックはαユニットからなるので、各種別毎に部分的にセットされた小ブロックは一つあり、その小ブロックでのセットされたユニットの数はｉサイクル前の種で、
【数１】
0003727778.tif 000003
【０１８０】
となる。Δｉはαを法としているから、０≦Δｉ＜αを満たす。
【０１８１】
これらの未充足小ブロックの一つを例えばｊを除いて無視されるのが図２８や図２９の方式であるから、サイクル１で発生されてサイクル０に一致すべき内部信号のタイミングは、
【数２】
0003727778.tif 000004
よって、内部信号のジッターＪは、
【数３】
0003727778.tif 000005
【０１８２】
と表される。なお、−δ≦δｉ≦δ、０≦Δｉ＜αである。
【０１８３】
よって、
【数４】
0003727778.tif 000006
【０１８４】
となる。
【０１８５】
図３の従来のＳＡＤは、ｎ＝１の場合で±３δがジッターの最大となる。小ブロックをどの位の大きさにするかを考えると、α＝１とすれば、Δｉ＝０となるので、
【数５】
0003727778.tif 000007
【０１８６】
となり、ジッターを最も小さくできることがわかる。
【０１８７】
すなわち、図２８や図２９に示す小ブロックは、一つずつの遅延ユニットから構成するようにするのが良い。この構成の具体的な方法については後に説明するが、まず、このようにした場合の効果を理論的に見積もっておく。
【０１８８】
さて、各サイクルのジッターは完全にランダムであるわけはなく相関を持っている。次にこの点について考慮する。すなわち、
【数６】
0003727778.tif 000008
【０１８９】
として、相関の強さβを導入する。０≦β≦１であり、ｒはランダムな変数で−δ≦ｒ≦δである。ｃは他のサイクルと相関した変数でやはり−δ≦ｃ≦δであり、サイクル間の相関係数を用いて次のように表される。
【０１９０】
【数７】
0003727778.tif 000009
【０１９１】
上記（７）式において、ζは相関距離に相当するサイクル数で、ｃ（１，ｉ）はサイクル１とｉとの相関係数で、ｃ（１，ｉ）＞０なる条件を満たす。
【０１９２】
また、δｉ＝δのとき、ｃが最大になるので、
【数８】
0003727778.tif 000010
【０１９３】
となる。
【０１９４】
以上を考慮すると、内部信号のジッターＪは、
ζ
Σ  をΣと略記して、以下の式で表される。
【０１９５】
i=2 
【数９】
0003727778.tif 000011
【０１９６】
次にこのＪの範囲を評価する。
【０１９７】
ζ＜ｎ＋１のとき、すなわち相関の距離を越えたサイクルでの平均をとると、最大はｒ＝δ、δｉ＝δ、δn+1 ＝−δのときであり、最小はｒ＝−δ、δｉ＝−δ、δn+1 ＝−δのときであるから、これらを代入して計算すると次式が得られる。
【０１９８】
【数１０】
0003727778.tif 000012
【０１９９】
上記（１０）式で示されるように、図２５に示した場合と同じになり、平均をとるサイクル数を多くすると、ジッター増幅の効果はそれだけ小さくなる。なお、図２５は相関距離が極端に短い場合または相関がない場合に相当している。
【０２００】
ζ≧ｎ＋１のとき、すなわち相関の距離内での平均をとる場合はδn+1 の係数の正負によってＪの最大最小の条件が異なってくる。
【０２０１】
【数１１】
0003727778.tif 000013
【０２０２】
であるから（１１）式の右辺第２項の鉤括弧内の値が正のとき、すなわちβｃ  ｛１，ｎ＋１｝をＡｎと表して、
【数１２】
0003727778.tif 000014
【０２０３】
のとき、最大はｒ＝δ、δｉ＝δ、δn+1 ＝δのときであり、最小はｒ＝−δ、δｉ＝−δ、δn+1 ＝−δで、（８）式から、
【数１３】
0003727778.tif 000015
【０２０４】
てあることを使うと、−δ≦Ｊ≦δとなり、ジッターは増幅されない。
【０２０５】
【数１４】
0003727778.tif 000016
【０２０６】
のときは（１１）式の右辺第２項の鉤括弧内の値は負となり、最大はｒ＝δ、δｉ＝δ、δn+1 ＝−δのときであり、最小はｒ＝−δ、δｉ＝−δ、δn+1 ＝δとなり、
【数１５】
0003727778.tif 000017
【０２０７】
となる。
【０２０８】
以上から、相関距離内で平均をとるとさらにジッターの増幅は小さくなり、相関の量Ａｎによっては全くジッターの増幅がなくなる。例えば２サイクルの平均をとる場合は、Ａｎ＝１／３が条件の分かれ目だから２サイクル前と約３３％以上相関があれば、ジッターは外部クロックのままで変化なく、３３％以下でも  （１５）式でｎ＝２として分かるように、最大δ（１−３Ａｎ）のジッターの増加があるのみである。
【０２０９】
また、４サイクルの平均をとる場合はＡｎ＝１／５が条件の分かれ目だから４サイクル前と２０％以上の相関があれば、ジッターは外部クロックのままで変化なく、２０％以下でも（１５）式でｎ＝４として分かるように、最大δ（１−５Ａｎ）／２のジッターの増加があるのみである。
【０２１０】
何サイクルの平均をとったら最適かは、相関係数のサイクル依存性によるが、２サイクル以上の平均化を行うことによって、ジッターの増加が大幅に押さえられることに変わりはない。無相関の場合のＡｎ＝０とすれば、図２５の場合と同様の効果が得られることはいうまでもない。
【０２１１】
次に上記したような小ブロックが１遅延ユニットからなる場合のＳＡＤの具体的な回路構成を図３０に示す。
【０２１２】
図３０は、先の図２８に示したＢＤを具体的に示したものである。ここで、各遅延ユニットは２個のクロックドインバータ１４１、１４２と１個のＮＯＲゲート１４３とから構成されている。上記２個のクロックドインバータ１４１、１４２は、先の図４に示した２個のクロックドインバータ４４、４５に対応するものであり、それぞれの動作は対応する遅延ユニット内の状態保持部で発生される制御パルスＱ、／Ｑで制御される。上記ＮＯＲゲート１４３は、先の図４に示したインバータ４６と、図２８中のＡＮＤゲート１３１との機能を兼ね備えたものであり、このＮＯＲゲート１４３には上記２個のクロックドインバータ１４１、１４２の出力が供給される。
【０２１３】
このような構成のＢＤにおいて、各遅延ユニット内の２個のクロックドインバータ１４１、１４２は、対応する遅延ユニット内の状態保持部で発生される制御パルスＱ、／Ｑに基づき、後段からのパルスＲＣＬを受けて前段に伝える遅延素子として働くか、クロックＣＬＫを後進パルスの遅延経路に導入する入り口として働く。また、各遅延ユニットは、自分自身の状態と後段からの状態とを受けて、出力ＲＣＬioまたはＲＣＬieを対応する状態保持部に送る。
【０２１４】
この場合のＦＤの基本的な構成は、図３１に示すようにＢＤと同じであり、２個のクロックドインバータ１５１、１５２は、先の図４に示した２個のクロックドインバータ４１、４２に対応している。また、ＮＯＲゲート１５３は、先の図４に示したインバータ４３とＡＮＤゲート１３１との機能を兼ね備えたものであり、このＮＯＲゲート１５３には上記２個のクロックドインバータ１５１、１５２の出力が供給される。
【０２１５】
図３２は、上記各遅延ユニット内に設けられる状態保持部を、そのクロックサイクル毎にセット／リセットのグループ選択を行うための制御部と共に示したものである。図中、破線で囲んだ部分が状態保持部であり、この状態保持部は前進パルスを伝達するＦＤの各遅延ユニット毎に設けられている。
【０２１６】
この状態保持部において、電源電位のノードと接地電位のノードとの間にはそれぞれ２個のＰチャネル及びＮチャネルＭＯＳトランジスタ１６１〜１６４が直列に挿入されている。
【０２１７】
ＰチャネルＭＯＳトランジスタ１６１のゲートには、パルスＲＣＬioもしくはＲＣＬieがインバータ１６５を介して供給される。ＰチャネルＭＯＳトランジスタ１６２のゲートには、後述する制御部から出力される信号／Ｒｏもしくは／Ｒｅが供給される。ＮチャネルＭＯＳトランジスタ１６３のゲートには、後述する制御部から出力される信号ＳｏもしくはＳｅが供給される。ＮチャネルＭＯＳトランジスタ１６４のゲートには、パルスＦＣＬioもしくはＦＣＬieが供給される。
【０２１８】
そして、ＰチャネルＭＯＳトランジスタ１６２とＮチャネルＭＯＳトランジスタ１６３の直列接続ノードから制御パルス／Ｑｋもしくは／Ｑk+1 が出力され、さらにこの制御パルス／Ｑｋもしくは／Ｑk+1 をインバータ１６６で反転することにより、制御パルスＱｋもしくはＱk+1 が出力される。
【０２１９】
状態保持部の制御部は、それぞれ１個のＮＯＲゲート１６７、ＮＡＮＤゲート１６８と、２個のインバータ１６９、１７０とから構成されている。ＮＯＲゲート１６７には、制御信号／Ｆｏもしくは／Ｆｅと制御信号ＢＰＭが供給される。ＮＡＮＤゲート１６８には、制御信号ＦｏもしくはＦｅと制御信号ＢＰＭが供給される。そして、ＮＯＲゲート１６７の出力がインバータ１６９で反転されることによって先の信号／Ｒｏもしくは／Ｒｅが発生され、ＮＡＮＤゲート１６８の出力がインバータ１７０で反転されることによって先の信号ＳｏもしくはＳｅが発生される。
【０２２０】
図３２に示した状態保持部は、トランジスタ１６２と１６３の直列接続ノードがセット／リセット状態に応じた信号を出力する信号ノードとなり、トランジスタ１６１と１６２はこの信号ノードに電荷を供給するためのものであり、トランジスタ１６３と１６４はこの信号ノードから電荷を引き抜くものである。そして、トランジスタ１６３と１６４が共に導通状態にされたときに上記信号ノードにセット出力（／Ｑ＝“Ｌ”、Ｑ＝“Ｈ”）が得られ、トランジスタ１６１と１６２が共に導通状態にされたときに上記信号ノードにリセット出力（／Ｑ＝“Ｈ”、Ｑ＝“Ｌ”）が得られる。
【０２２１】
すなわち、前進パルスＦＣＬioもしくはＦＣＬieによって制御パルスＱｋもしくはＱk+1 が立ち上がることにより、セット状態にされる。しかし、このセット動作を行うのは、ＦＣＬioならばＳｏ、ＦＣＬieならばＳｅがそれぞれ“Ｈ”のときである。
【０２２２】
また、状態保持部は、ＦＤを構成する遅延ユニットからのパルスＲＣＬioもしくはＲＣＬieを受けてリセット状態にされ、制御パルスＱｋもしくはＱk+1 が立ち下がる。しかし、このリセット動作を行うのは、ＲＣＬioならば／Ｒｏ、ＲＣＬieならば／Ｒｅがそれぞれ“Ｌ”のときである。
【０２２３】
信号／Ｒｏ、Ｓｏのレベルは／Ｆｏ、Ｆｏによって制御され、Ｆｏが“Ｌ”のときにはそれぞれ“Ｈ”、“Ｌ”となり、このときは状態保持部のセット／リセットが行われず、以前のＱｋの状態がダイナミック的に維持される。信号／Ｒｅ、Ｓｅと／Ｆｅ、Ｆｅについても同様である。なお、制御信号ＢＰＭは、状態保持部がセット／リセットの受け入れ可能サイクルであれば、そのレベルが“Ｌ”となるタイミングで状態保持部をリセットするための信号である。
【０２２４】
このように、制御信号ＦｏやＦｅを制御することで状態保持部の有効なサイクルを決定することができる。次にこの制御信号Ｆｏ、Ｆｅを発生する制御信号発生回路について図３３を参照して説明する。
【０２２５】
上記のように２サイクルで平均をとる場合は、外部クロックの１サイクル毎にＦｏとＦｅを交互に立てるようにして、遅延ユニットの一つおきに交互に状態保持部のセット／リセット動作を行うようにすれば良い。
【０２２６】
図３３（ａ）に示す回路は、クロックＣＬＫと前進パルスＦＣＬ０の反転信号とが供給されるＡＮＤゲート１７１と、制御信号Ｆｅを所定時間遅延する遅延回路１７２と、制御信号Ｆｏを所定時間遅延する遅延回路１７３と、上記ＡＮＤゲート１７１の出力ａと上記遅延回路１７２の遅延出力とが供給されるＮＡＮＤゲート１７４と、上記ＡＮＤゲート１７１の出力ａと上記遅延回路１７３の遅延出力とが供給されるＮＡＮＤゲート１７５と、それぞれ一方の出力信号が他方の一つ目の入力信号として供給される如くいわゆるたすき掛け接続されてフリップフロップ回路を構成する２個のＮＡＮＤゲート１７６、１７７とを有している。
【０２２７】
ＮＡＮＤゲート１７６、１７７それぞれの二つ目の入力信号として、ＮＡＮＤゲート１７４、１７５の出力信号が供給される。そして、制御信号Ｆｏ、Ｆｅは上記ＮＡＮＤゲート１７６、１７７の出力信号として得られる。ここで得られた制御信号Ｆｏ、Ｆｅは遅延回路１７２、１７３にフィードバックされる。
【０２２８】
図３３（ｂ）は、同図（ａ）中の遅延回路１７２、１７３それぞれの具体的回路構成を示している。両遅延回路は同様に構成されており、上記ＡＮＤゲート１７１の出力信号ａの反転信号／ａが“Ｈ”のときに動作して信号ＦｅもしくはＦｏを反転するクロックドインバータ１８１と、上記信号ａが“Ｈ”のときに動作して上記クロックドインバータ１８１の出力ノードの信号を反転するクロックドインバータ１８２と、直列接続された２個のインバータからなり上記クロックドインバータ１８１の出力ノードの信号を同じノードに正帰還する正帰還回路１８３とから構成されている。
【０２２９】
図３３（ａ）に示された制御信号発生回路は、２個のＮＡＮＤゲート１７６、１７７からなるフリップフロップ回路において、信号Ｆｏ、Ｆｅの両方が同時に同じ状態にならないことを利用している。そして、信号Ｆｏ、Ｆｅの状態は、クロックＣＬＫが立ち上がり、前進パルスがＦＤに入力される前で後進パルスがＢＤ中を伝達されている最中に、毎サイクル交互に切り替わるようになっている。これにより、状態保持部のセットされた総数は毎サイクルで２サイクル分の平均となり、図３０に示すＢＤによって、この総数分のＢＤの遅延ユニットを後進パルスが伝達することになる。
【０２３０】
次に、図２９に対応した４サイクルで平均する場合で、小ブロックが１遅延ユニットからなる場合の具体的な回路構成について説明する。
【０２３１】
図３４は、図２９の場合のＢＤを具体的に示している。この場合、各遅延ユニットは２個のクロックドインバータ１４１、１４２と１個のＮＯＲゲート１４４とから構成されている。このＮＯＲゲート１４４は、先の図３０中のＮＯＲゲート１４３とは異なり、４個の遅延ユニットからの出力信号が供給されるように４入力となっている。その他の構成及び基本的な動作は図３０のものと同様なので、これらの説明は省略する。
【０２３２】
図３５は、図２９の場合のＦＤを具体的に示している。この場合、各遅延ユニットは２個のクロックドインバータ１５１、１５２と１個のＮＯＲゲート１５４とから構成されている。このＮＯＲゲート１５４は、先の図３１中のＮＯＲゲート１５３とは異なり、４個の遅延ユニットからの出力信号が供給されるように４入力となっている。その他の構成及び基本的な動作は図３１のものと同様なので、これらの説明は省略する。
【０２３３】
図３６は、上記のように４サイクルで平均する場合の、上記各遅延ユニット内に設けられる状態保持部を、そのクロックサイクル毎にセット／リセットのグループ選択を行うための制御部と共に示したものである。図中、破線で囲んだ部分が状態保持部である。この状態保持部は、それぞれ２個のＰチャネル、ＮチャネルＭＯＳトランジスタ１９１〜１９４と、２個のインバータ１９５、１９６とで構成されている。ＰチャネルＭＯＳトランジスタ１９１のゲートには、パルスＲＣＬia、ＲＣＬib、ＲＣＬic、ＲＣＬidのうちのいずれか一つの信号がインバータ１９５を介して供給される。
【０２３４】
ＰチャネルＭＯＳトランジスタ１９２のゲートには、後述する制御部から出力される信号／Ｒａ、／Ｒｂ、／Ｒｃ、／Ｒｄのうちいずれか一つの信号が供給される。ＮチャネルＭＯＳトランジスタ１９３のゲートには、後述する制御部から出力される信号Ｓａ、Ｓｂ、Ｓｃ、Ｓｄのうちいずれか一つの信号が供給される。ＮチャネルＭＯＳトランジスタ１９４のゲートには、パルスＦＣＬia、ＦＣＬib、ＦＣＬic、ＦＣＬidのうちいずれか一つのパルスが供給される。
【０２３５】
そして、ＰチャネルＭＯＳトランジスタ１９２とＮチャネルＭＯＳトランジスタ１９３の直列接続ノードから制御パルス／Ｑｋ、／Ｑk+1 、／Ｑk+2 、／Ｑk+3 のうちいずれか一つが出力され、さらにこの制御パルス／Ｑｋ、／Ｑk+1 、／Ｑk+2 、／Ｑk+3 をインバータ１９６で反転することにより、制御パルスＱｋ、Ｑk+1 、Ｑk+2 、Ｑk+3 のうちいずれか一つが出力される。
【０２３６】
状態保持部の制御部は、それぞれ１個のＮＯＲゲート１９７、ＮＡＮＤゲート１９８と、２個のインバータ１９９、２００とから構成されている。ＮＯＲゲート１９７には、制御信号／Ｆａ、／Ｆｂ、／Ｆｃ、／Ｆｄのうちいずれか一つと先の制御信号ＢＰＭとが供給される。ＮＡＮＤゲート１９８には、制御信号Ｆａ、Ｆｂ、Ｆｃ、Ｆｄのうちいずれか一つと先の制御信号ＢＰＭが供給される。そして、ＮＯＲゲート１９７の出力がインバータ１９９で反転されることによって先の信号／Ｒａ、／Ｒｂ、／Ｒｃ、／Ｒｄのうちいずれか一つが発生され、ＮＡＮＤゲート１９８の出力がインバータ２００で反転されることによって先の信号Ｓａ、Ｓｂ、Ｓｃ、Ｓｄのうちいずれか一つが発生される。
【０２３７】
図３６に示した状態保持部は、前進パルスＦＣＬia、ＦＣＬib、ＦＣＬic、ＦＣＬidのいずれかによって制御パルスＱｋ、Ｑk+1 、Ｑk+2 、Ｑk+3 のいずれかが立ち上がることにより、セット状態にされる。しかし、このセット動作を行うのは、ＦＣＬiaならばＳａ、ＦＣＬibならばＳｂ、ＦＣＬicならばＳｃ、ＦＣＬidならばＳｄがそれぞれ“Ｈ”のときである。
【０２３８】
また、状態保持部は、ＦＤを構成する遅延ユニットからのパルスＲＣＬia、ＲＣＬib、ＲＣＬic、ＲＣＬidのいずれかを受けてリセット状態にされ、制御パルスＱｋ、Ｑk+1 、Ｑk+2 、Ｑk+3 のいずれかが立ち下がる。しかし、このリセット動作を行うのは、ＲＣＬiaならば／Ｒａ、ＲＣＬibならば／Ｒｂ、ＲＣＬicならば／Ｒｃ、ＲＣＬidならば／Ｒｄがそれぞれ“Ｌ”のときである。
【０２３９】
例えば、信号／Ｒａ、Ｓａのレベルは／Ｆａ、Ｆａによって制御され、Ｆａが“Ｌ”のときにはそれぞれ“Ｈ”、“Ｌ”となり、このときは状態保持部のセット／リセットが行われず、以前のＱｋの状態がダイナミック的に維持される。信号／Ｒｂ、Ｓｂと／Ｆｂ、Ｆｂ、信号／Ｒｃ、Ｓｃと／Ｆｃ、Ｆｃ、信号／Ｒｄ、Ｓｄと／Ｆｄ、Ｆｄについても同様である。
【０２４０】
このように、制御信号Ｆａ、Ｆｂ、Ｆｃ、Ｆｄを制御することで状態保持部の有効なサイクルを決定することができる。
【０２４１】
次に、これらの制御信号Ｆａ、Ｆｂ、Ｆｃ、Ｆｄを発生する制御信号発生回路について図３７を参照して説明する。
【０２４２】
上記のように４サイクルで平均をとる場合は、外部クロックの４サイクルでＦａ、Ｆｂ、Ｆｃ、Ｆｄを順次立てるようにする。
【０２４３】
図３７（ａ）に示す回路は図３３（ａ）の回路で得られる信号Ｆｏを入力としている。すなわち、この回路は、インバータ２０１、このインバータ２０１の出力を所定時間遅延する遅延回路２０２、この遅延回路２０２の出力と上記信号Ｆｏとが供給されるＮＡＮＤゲート２０３、このＮＡＮＤゲート２０３の出力を反転するインバータ２０４からなり、信号Ｆｏの立ち上がりエッジに同期したパルスを発生するエッジパルス発生回路２０５と、制御信号Ｆeeを所定時間遅延する遅延回路２０６と、制御信号Ｆooを所定時間遅延する遅延回路２０７と、上記エッジパルス発生回路２０５の出力信号ｂと上記遅延回路２０６の遅延出力とが供給されるＮＡＮＤゲート２０８と、上記エッジパルス発生回路２０５の出力信号ｂと上記遅延回路２０７の遅延出力とが供給されるＮＡＮＤゲート２０９と、それぞれ一方の出力信号が他方の一つ目の入力信号として供給される如くいわゆるたすき掛け接続されてフリップフロップ回路を構成する２個のＮＡＮＤゲート２１０、２１１とを有している。
【０２４４】
上記ＮＡＮＤゲート２１０、２１１それぞれの二つ目の入力信号として、上記ＮＡＮＤゲート２０８、２０９の出力信号が供給される。そして、制御信号Ｆoo、Ｆeeは、上記ＮＡＮＤゲート２１０、２１１の出力信号として得られる。ここで得られた制御信号Ｆoo、Ｆeeは、遅延回路２０６、２０７にフィードバックされる。
【０２４５】
図３７（ｂ）は、同図（ａ）中の遅延回路２０６、２０７それぞれの具体的回路構成を示している。両遅延回路は同様に構成されており、上記エッジパルス発生回路２０５の出力信号ｂの反転信号／ｂが“Ｈ”のときに動作して信号ＦeeもしくはＦooを反転するクロックドインバータ２２１と、上記信号ｂが“Ｈ”のときに動作して上記クロックドインバータ２２１の出力ノードの信号を反転するクロックドインバータ２２２と、直列接続された２個のインバータからなり上記クロックドインバータ２２１の出力ノードの信号を同じノードに正帰還する正帰還回路２２３とから構成されている。
【０２４６】
図３７（ｃ）は、先の制御信号Ｆｏ及びＦｅと、同図（ａ）の回路によって得られる制御信号Ｆoo、Ｆeeとから、制御信号Ｆａ、Ｆｂ、Ｆｃ、Ｆｄ及びこれらの反転信号／Ｆａ、／Ｆｂ、／Ｆｃ、／Ｆｄを発生する回路の構成を示している。この図３７（ｃ）に示した回路は、Ｆａと／Ｆａ、Ｆｂと／Ｆｂ、Ｆｃと／Ｆｃ、Ｆｄと／Ｆｄの４種の信号を発生するために４個設けられている。
【０２４７】
この回路はＡＮＤゲート２２４とインバータ２２５とから構成されている。ＡＮＤゲート２２４には制御信号ＦｏとＦoo、ＦｅとＦoo、ＦｏとＦee、ＦｅとＦeeが供給され、このＡＮＤゲート２２４からは制御信号Ｆａ、Ｆｂ、Ｆｃ、Ｆｄが出力される。そして、この制御信号Ｆａ、Ｆｂ、Ｆｃ、Ｆｄがインバータ２２５によって反転されることにより制御信号／Ｆａ、／Ｆｂ、／Ｆｃ、／Ｆｄが出力される。
【０２４８】
図３６（ａ）に示された制御信号発生回路においても、２個のＮＡＮＤゲート２１０、２１１からなるフリップフロップ回路で信号Ｆoo、Ｆeeの両方が同時に同じ状態にならないことを利用している。そして、信号Ｆoo、Ｆeeの状態を変えるために信号Ｆｏの立ち上がりを利用している点が図３３（ａ）のものとは異なっている。すなわち、１サイクルおきに信号Ｆｏが立ち上がるから、信号ＦooとＦeeは２サイクル続けて同じ状態を維持し、２サイクルおきに状態が変化する。これらの信号Ｆoo、Ｆeeを用いて、１サイクル毎に状態を変化させて、４サイクルで一巡する制御信号Ｆａ、Ｆｂ、Ｆｃ、Ｆｄとその反転信号を発生することができる。
【０２４９】
このように、第３の実施の形態によれば、外部クロックのジッターによる影響を外部クロック複数サイクルで平均するようにしたので、内部クロックのタイミング調節により、データ転送を確実に行えるという効果に加えて、外部クロックのジッターによる悪影響を削減することができて、より確実なデータ転送を行うことができるという効果が得られる。
【０２５０】
【発明の効果】
以上説明したようにこの発明によれば、メモリモジュールとメモリコントローラとの間のバスの物理条件をそれ程厳しく制限しなくても、高速な同期型データ転送が実現できるデータ高速転送同期システム及びデータ高速転送同期方法を提供することができる。
【図面の簡単な説明】
【図１】この発明の原理を説明するために使用される一般的なメモリボードシステムの概略的な構成を示すブロック図及びそのタイミングチャート。
【図２】先願に記載されたＳＡＤ（Synchronous Adjustable Delay）を論理ゲートレベル及びシンボルで表現した回路図。
【図３】図２とは異なる従来のＳＡＤの構成を示すブロック図。
【図４】図３に示したＳＡＤの遅延回路の詳細な構成を示す回路図。
【図５】図３に示したＳＡＤの動作の一例を示すタイミングチャート。
【図６】この発明の第１の実施の形態で使用されるＳＡＤの構成を示す回路図。
【図７】図６のＳＡＤ中の可変遅延部の具体的な回路構成図。
【図８】図７の可変遅延部に設けられるスイッチ回路の具体的な構成を示す回路図。
【図９】図８に示すスイッチ回路の制御に使用される制御信号を発生する制御信号発生回路の構成を示すブロック図。
【図１０】図９における１個の回路ユニットの詳細な回路構成を示す図。
【図１１】この発明の第１の実施の形態に係るシステムで使用されるメモリモジュールの内部構成を示すブロック図。
【図１２】この発明の第１の実施の形態において、４ビットのバーストデータを転送して格納する場合の動作を示すタイミングチャート。
【図１３】この発明の第２の実施の形態に係るメモリボードシステムの概略的なブロック構成を示す図。
【図１４】第２の実施の形態における複数のクロック間の位相関係を示すタイミングチャート。
【図１５】第２の実施の形態において、メモリモジュールがデータバス上でデータの衝突を起こさずにかつデータ転送のギャップが無くデータの転送を行うためのタイミングｔＭを作る方法を説明するためのタイミングチャート。
【図１６】第２の実施の形態における複数の内部クロックの関係を示すタイミングチャート。
【図１７】第２の実施の形態において、ＳＡＤを用いてタイミングｔＭを作る具体的な方法を説明するためのタイミングチャート。
【図１８】図１６、図１７中の各種内部クロックを発生する内部クロック発生回路の具体的な構成を示す回路図及びその動作を説明するためのタイミングチャート。
【図１９】図１７に示した内部タイミングクロックを発生する回路の具体的な構成を示す図。
【図２０】第２の実施の形態において、タイミングｔＭを発生する回路の回路図。
【図２１】第２の実施の形態において、クロックＴＣＬＫでデータを出力する場合の内部タイミングの発生の方法を説明するためのタイミングチャート。
【図２２】第２の実施の形態において、クロックの立上がりに同期した内部クロックと１８０度位相がずれたクロックを発生する回路の構成を示す図。
【図２３】第２の実施の形態において、内部クロックＴｏｕ、Ｔｅｕ、Ｒｏｕ、Ｒｅｕに可変遅延機能を持たせるようにした内部クロック発生回路の回路図。
【図２４】外部クロックとこの外部クロックが持つジッターとの関係を示すタイミングチャート。
【図２５】この発明の第３の実施の形態の原理を説明するためのタイミングチャート。
【図２６】図３に示したＳＡＤを書き直して示すブロック図。
【図２７】第３の実施の形態において、外部クロックに含まれるジッターを２サイクルで平均化する場合のＳＡＤの構成を示すブロック図。
【図２８】第３の実施の形態において、外部クロックに含まれるジッターを２サイクルで平均化する場合のＢＤの構成を示すブロック図。
【図２９】第３の実施の形態において、外部クロックに含まれるジッターを４サイクルで平均化する場合のＢＤの構成を示すブロック図。
【図３０】第３の実施の形態において、外部クロックに含まれるジッターを２サイクルで平均化する際にＢＤの小ブロックを１遅延ユニットとした場合のＢＤの具体的な回路構成を示す図。
【図３１】第３の実施の形態において、外部クロックに含まれるジッターを２サイクルで平均化する際にＦＤの小ブロックを１遅延ユニットとした場合のＦＤの具体的な回路構成を示す図。
【図３２】第３の実施の形態において、外部クロックに含まれるジッターを２サイクルで平均化する際の状態保持部をそのクロックサイクル毎にセット／リセットのグループ選択を行うための制御部と共に示す回路図。
【図３３】図３２の回路で使用される制御信号Ｆｏ、Ｆｅを発生する制御信号発生回路の回路図。
【図３４】第３の実施の形態において、外部クロックに含まれるジッターを４サイクルで平均化する際にＦＤの小ブロックを１遅延ユニットとした場合のＦＤの具体的な回路構成を示す図。
【図３５】第３の実施の形態において、外部クロックに含まれるジッターを４サイクルで平均化する際にＦＤの小ブロックを１遅延ユニットとした場合のＦＤの具体的な回路構成を示す図。
【図３６】第３の実施の形態において、外部クロックに含まれるジッターを４サイクルで平均化する際の状態保持部をそのクロックサイクル毎にセット／リセットのグループ選択を行うための制御部と共に示す回路図。
【図３７】図３６の回路で使用される制御信号Ｆａ、Ｆｂ、Ｆｃ、Ｆｄを発生する制御信号発生回路の回路図。
【図３８】一般的なメモリボードシステムの概略的な構成を示すブロック図。
【図３９】メモリコントローラと異なる数のメモリモジュールが実装された種々のメモリボードシステムの構成を示すブロック図。
【図４０】図３９に示した種々のメモリボードシステムにおける動作タイミングの差異を説明するためのタイミングチャート。
【符号の説明】
１１…入力バッファ、
１３…ＳＡＤ（Synchronous Adjustable Delay）、
２６、２７…遅延回路、
５１、５３、５４、５６、５７…バッファ、
５２、５５…可変遅延部、
６１…単位遅延素子、
６２−１、６２−２…スイッチ回路、
６３、６４、６８…ＰチャネルＭＯＳトランジスタ、
６５、６６、６９、７４〜８５…ＮチャネルＭＯＳトランジスタ、
６７…ＣＭＯＳ型のクロックドインバータ、
７０…ＣＭＯＳ型のインバータ、
７１…回路ユニット、
７２、７３…レジスタ、
８６…ＮＡＮＤゲート、
８７…インバータ、
９１、９２…ＳＡＤ、
９３…コマンドデコーダ、
９４、９５…制御回路、
９６…データ入力制御回路、
９７…データ出力制御回路、
１０１、１０２、１１１、１１３、１１５、１１７、１２１、１２３…バッファ、
１０３〜１０６…ＮＡＮＤゲート、
１１４…ＡＮＤゲート、
１１６、１２２、１２４、１２５…ＳＡＤ、
１２６、１２７、１２８…ＯＲゲート、
１３０…遅延ユニットのブロック、
１３１…ＡＮＤゲート、
１４１、１４２、１５１、１５２…クロックドインバータ、
１４３、１４４、１５３、１５４…ＮＯＲゲート、
１６１、１６２、１９１、１９２…ＰチャネルＭＯＳトランジスタ、
１６３、１６４、１９３、１９４…ＮチャネルＭＯＳトランジスタ、
１６５、１６６、１９５、１９６…インバータ、
１６７、１９７…ＮＯＲゲート、
１６８、１９８…ＮＡＮＤゲート、
１６９、１７０、１９９、２００、２０１、２０４、２２５…インバータ、
１７１、２２４…ＡＮＤゲート、
１７２、１７３、２０６、２０７…遅延回路、
１７４〜１７７、２０３、２０８〜２１１…ＮＡＮＤゲート、
１８１、１８２、２２１、２２２…クロックドインバータ、
１８３、２２３…正帰還回路、
２０２…遅延回路、
２０５…エッジパルス発生回路、
ＭＥＣ…メモリコントローラ、
ＭＭ…メモリモジュール。
【図１】
0003727778.tif 000018
【図２】
0003727778.tif 000019
【図３】
0003727778.tif 000020
【図４】
0003727778.tif 000021
【図５】
0003727778.tif 000022
【図６】
0003727778.tif 000023
【図７】
0003727778.tif 000024
【図８】
0003727778.tif 000025
【図９】
0003727778.tif 000026
【図１０】
0003727778.tif 000027
【図１１】
0003727778.tif 000028
【図１２】
0003727778.tif 000029
【図１３】
0003727778.tif 000030
【図１４】
0003727778.tif 000031
【図１５】
0003727778.tif 000032
【図１６】
0003727778.tif 000033
【図１７】
0003727778.tif 000034
【図１８】
0003727778.tif 000035
【図１９】
0003727778.tif 000036
【図２０】
0003727778.tif 000037
【図２１】
0003727778.tif 000038
【図２２】
0003727778.tif 000039
【図２３】
0003727778.tif 000040
【図２４】
0003727778.tif 000041
【図２５】
0003727778.tif 000042
【図２６】
0003727778.tif 000043
【図２７】
0003727778.tif 000044
【図２８】
0003727778.tif 000045
【図２９】
0003727778.tif 000046
【図３０】
0003727778.tif 000047
【図３１】
0003727778.tif 000048
【図３２】
0003727778.tif 000049
【図３３】
0003727778.tif 000050
【図３４】
0003727778.tif 000051
【図３５】
0003727778.tif 000052
【図３６】
0003727778.tif 000053
【図３７】
0003727778.tif 000054
【図３８】
0003727778.tif 000055
【図３９】
0003727778.tif 000056
【図４０】
0003727778.tif 000057