(57)【特許請求の範囲】
【請求項１】
複数のメモリモジュールと、
上記複数のメモリモジュールと共に配列され、上記複数のメモリモジュールとの間でデータの授受を行うコントローラと、
第１基本クロック及びこの第１基本クロックの周期のｎ倍（ｎは２及び４のいずれか一方の値）の周期を有する第２基本クロックを発生するクロック発生器と、
上記配列された複数のメモリモジュール及びコントローラに沿って往復するように往路部分及び復路部分の配線をそれぞれ有し、上記クロック発生器で発生される上記第１及び第２基本クロックが上記各往路部分の先端からそれぞれ入力され、この入力された第１及び第２基本クロックをそれぞれ順次転送し、各往路部分及び各復路部分の配線を転送される第１及び第２基本クロックを上記複数のメモリモジュール及びコントローラに対し、これら複数のメモリモジュール及びコントローラがデータ授受の際に使用する同期信号として与える２本のクロック配線と、
上記複数の各メモリモジュール内及びコントローラ内にそれぞれ設けられ、上記２本のクロック配線の各往路部分から与えられる行きの第１及び第２基本クロックと、上記２本のクロック配線の各復路部分から与えられる帰りの第１及び第２基本クロックとを受けて、行きの第１基本クロックと帰りの第１基本クロックとの間に生じる第１基本クロックの周期のｎ倍（ｎは２及び４のいずれか一方の値）の周期以内の位相ずれに対して、その中間タイミングを検出する中間タイミング検出回路を含む制御回路と、
を具備したことを特徴とするデータ高速転送システム。
【請求項２】
前記複数のメモリモジュール及びコントローラに沿って設けられ、これら複数のメモリモジュール及びコントローラ相互間で授受されるデータが転送されるデータバスと、
前記複数のメモリモジュール及びコントローラに沿って設けられ、コントローラから複数のメモリモジュールに対して与えるべきコマンド及びアドレスが転送されるコマンド／アドレスバスとをさらに有することを特徴とする請求項１に記載のデータ高速転送システム。
【請求項３】
前記制御回路は、さらに、
前記行きの第１基本クロック及び帰りの第１基本クロックのいずれか一方をカウントして、データ出力サイクル数を設定するカウンタを有することを特徴とする請求項２に記載のデータ高速転送システム。
【請求項４】
前記カウンタのカウント動作が、前記コマンド／アドレスバスを転送されるコマンドに基づいて制御されることを特徴とする請求項３に記載のデータ高速転送システム。
【請求項５】
前記中間タイミング検出回路は、
前記２本のクロック配線のうち一方のクロック配線の往路部分を転送される行きの第１基本クロックの第１サイクルの開始時に同期した第１制御クロックを発生する第１の内部クロック発生回路と、
前記一方のクロック配線の復路部分を転送される帰りの第１基本クロックの、上記第１サイクルの開始時に同期した第２制御クロックを発生する第２の内部クロック発生回路と、
前記一方のクロック配線の往路部分を転送される行きの第１基本クロックの、上記第１サイクルに続く第２サイクルの開始時に同期した第３制御クロックを発生する第３の内部クロック発生回路と、
前記一方のクロック配線の復路部分を転送される帰りの第１基本クロックの、上記第１サイクルに続く第２サイクルの開始時に同期した第４制御クロックを発生する第４の内部クロック発生回路と、
上記第２制御クロックと上記第１制御クロックとを受け、第２制御クロックと第１制御クロックとの間の遅延量の半分だけ第１制御クロックから遅れたタイミングに相当する第１制御信号を発生する第１の制御信号発生回路と、
上記第４制御クロックと上記第３制御クロックとを受け、第４制御クロックと第３制御クロックとの間の遅延量の半分だけ第３制御クロックから遅れたタイミングに相当する第２制御信号を発生する第２の制御信号発生回路と、
上記第１制御信号、第２制御信号、第３制御クロック及び第１制御クロックを受け、前記２本のクロック配線の各往路部分から与えられる行きの第１及び第２基本クロックそれぞれと、前記２本のクロック配線の各復路部分から与えられる帰りの第１及び第２基本クロックそれぞれとの間の中間タイミングに相当する第３制御信号及び第４制御信号を発生する第３の制御信号発生回路とを含むことを特徴とする請求項１に記載のデータ高速転送システム。
【請求項６】
前記中間タイミング検出回路は、
前記２本のクロック配線の往路部分を転送される行きの第１及び第２基本クロックを受け、前記一方のクロック配線の往路部分を転送される行きの第１基本クロックの第１サイクルとこの第１サイクルに続く第２サイクルとを区分するための第５制御信号を発生する第４の制御信号発生回路と、
前記２本のクロック配線の復路部分を転送される帰りの第１及び第２基本クロックを受け、前記一方のクロック配線の復路部分を転送される帰りの第１基本クロックの第１サイクルとこの第１サイクルに続く第２サイクルとを区分するための第６制御信号を発生する第５の制御信号発生回路とをさらに含むことを特徴とする請求項５に記載のデータ高速転送システム。
【請求項７】
前記第１ないし第４の内部クロック発生回路はそれぞれシンクロナス・アジャスタブル・ディレイ（Synchronous Adjustable Delay）を有し、前記第１ないし第４の内部クロック発生回路はそれぞれこれらのシンクロナス・アジャスタブル・ディレイを用いて前記第１制御クロックないし第４制御クロックを発生することを特徴とする請求項５に記載のデータ高速転送システム。
【請求項８】
前記シンクロナス・アジャスタブル・ディレイは、
ＮＡＮＤゲート及びこのＮＡＮＤゲートの出力が入力されるＮＯＲゲートからなる組合せ回路を１ユニットとし、縦続接続された複数のユニットにより構成され、入力信号を遅延する前進遅延回路（Forward Delay Circuit）と、
ＮＡＮＤゲート及びこのＮＡＮＤゲートの出力が入力されるＮＯＲゲートからなる組合せ回路を１ユニットとし、上記前進遅延回路に対して同数の縦続接続された複数のユニットにより構成され、上記前進遅延回路で遅延される信号が移され、この移された信号を遅延することによって上記前進遅延回路への入力信号に対して３６０度位相がずれた信号を出力する後退遅延回路（Backward Delay Circuit）とを有することを特徴とする請求項７に記載のデータ高速転送システム。
【請求項９】
前記第１及び第２の制御信号発生回路はそれぞれシンクロナス・アジャスタブル・ディレイ（Synchronous Adjustable Delay）を有し、前記第１及び第２の制御信号発生回路はそれぞれこれらのシンクロナス・アジャスタブル・ディレイを用いて前記第１及び第２制御信号を発生することを特徴とする請求項５に記載のデータ高速転送システム。
【請求項１０】
前記シンクロナス・アジャスタブル・ディレイ（Synchronous Adjustable Delay）は、
ＮＡＮＤゲート及びこのＮＡＮＤゲートの出力が入力されるＮＯＲゲートからなる組合せ回路を１ユニットとし、縦続接続された複数のユニットにより構成され、入力信号を遅延する前進遅延回路（Forward Delay Circuit）と、
ＮＡＮＤゲート及びこのＮＡＮＤゲートの出力が入力されるＮＯＲゲートからなる組合せ回路を１ユニットとし、上記前進遅延回路に対して半数の縦続接続された複数のユニットにより構成され、上記前進遅延回路で遅延される信号が移され、この移された信号を遅延することによって上記前進遅延回路への入力信号に対して１８０度位相がずれた信号を出力する後退遅延回路（Half Backward Delay Circuit）とを有することを特徴とする請求項９に記載のデータ高速転送システム。
【請求項１１】
前記制御回路は、前記中間タイミング検出回路で検出された前記中間タイミング、前記行きと帰りの第１基本クロック、及び前記コマンド／アドレスバスを転送されるコマンドを受ける内部コントローラをさらに有し、
上記内部コントローラは、対応するサイクルの行きと帰りの第１基本クロックの中間のタイミングをＭとしたときに、前の必要なサイクル数のカウントが終了していれば、下記の（１）から（４）のステップにより第１基本クロックのサイクル数のカウントを前記カウンタで行なわせてデータ出力サイクル数を設定することを特徴とする請求項４に記載のデータ高速転送システム。
（１）  タイミングＭの直後にサイクル数カウントを可能状態とする。
（２）  （１）の直後の行きの第１基本クロックからサイクル数をカウントさせる。
（３）  （１）の直後の帰りの第１基本クロックに同期して取り込まれたコマンドがサイクル数カウントコマンドであれば行きの第１基本クロックでのサイクル数カウントを必要なサイクル数継続させる。
（４）  （１）の直後の帰りの第１基本クロックに同期して取り込まれたコマンドがサイクル数カウントに関連したコマンドでなければカウントをリセットしてカウント不可状態にさせる。
【請求項１２】
前記制御回路は、
前記中間タイミング検出回路で検出された前記中間タイミング、前記行きと帰りの第１基本クロック、及び前記コマンド／アドレスバスを転送されるコマンドを受ける内部コントローラをさらに有し、
上記内部コントローラは、対応するサイクルの行きと帰りの第１基本クロックの中間のタイミングをＭとしたときに、下記の（１）と（２）のステップにより第１基本クロックのサイクル数のカウントを前記カウンタで行なわせてデータ出力サイクル数を設定することを特徴とする請求項４に記載のデータ高速転送システム。
（１）  行きの第１基本クロックに同期して取り込まれたコマンドがサイクル数カウントに関連したコマンドであれば、この直後のタイミングＭでサイクル数カウントを可能状態にさせる。
（２）  タイミングＭの直後の帰りの第１基本クロックからサイクル数をカウントさせ、必要なサイクル数継続させる。
【請求項１３】
前記制御回路は、
前記中間タイミング検出回路で検出された前記中間タイミング、前記行きと帰りの第１基本クロック、及び前記コマンド／アドレスバスを転送されるコマンドを受ける内部コントローラと、
上記内部コントローラによって制御され、データを出力するデータ出力回路とをさらに有し、
上記内部コントローラは、対応するサイクルの行きと帰りの第１基本クロックの中間のタイミングをＭとしたときに、下記の（１）から（４）のステップにより第１基本クロックのサイクル数のカウントを前記カウンタで行なわせてデータ出力サイクル数を設定すると共に、上記データ出力回路からデータを出力させることを特徴とする請求項４に記載のデータ高速転送システム。
（１）  第１のタイミングＭの直後の第２のタイミングＭと対応する行きの第１基本クロックのサイクルからサイクル数のカウントを開始させる。
（２）  第１のタイミングＭの直後の、この第１のタイミングＭと対応する帰りの第１基本クロックのサイクルから、第２のタイミングＭと対応するサイクルまでのサイクルで、帰りの第１基本クロックに同期して取り込まれたコマンドがコマンドが無い状態も含めて新たなサイクル数カウントコマンドでなければカウント動作を止めて次のカウント動作に備えさせる。
（３）  第１のタイミングＭの直後の、この第１のタイミングＭと対応する帰りの第１基本クロックのサイクルから、第２のタイミングＭと対応するサイクルまでのサイクルで、帰りの第１基本クロックに同期して取り込まれたコマンドに新たなサイクル数カウントコマンドがあれば、一定サイクル数をカウントさせて、そのサイクルから行きの第１基本クロックに同期して上記データ出力回路からデータを出力させる。
（４）  第１のタイミングＭの直後の、この第１のタイミングＭと対応する帰りの第１基本クロックのサイクルから、第２のタイミングＭと対応するサイクルまでのサイクルで、第１のタイミングＭの直後の、この第１のタイミングＭと対応する帰りの第１基本クロックのサイクルを１番目として、ｉ番目（ｉは正の整数）のサイクルに新たなサイクル数コマンドがあれば（ｉ−１）サイクルに対応するサイクル数カウントを余分に加えた一定サイクル数をカウントさせて、そのサイクルから行きの第１基本クロックに同期して上記データ出力回路からデータを出力させる。
【請求項１４】
前記制御回路は、
前記中間タイミング検出回路で検出された前記中間タイミング、前記行きと帰りの第１基本クロック、及び前記コマンド／アドレスバスを転送されるコマンドを受ける内部コントローラと、
上記内部コントローラによって制御され、データを出力するデータ出力回路とをさらに有し、
上記内部コントローラは、対応するサイクルの行きと帰りの第１基本クロックの中間のタイミングをＭとしたときに、下記の（１）から（５）のステップにより第１基本クロックのサイクル数のカウントを前記カウンタで行なわせてデータ出力サイクル数をカウント設定すると共に、上記データ出力回路からデータを出力させることを特徴とする請求項４に記載のデータ高速転送システム。
（１）  第１のタイミングＭに対応する行きの第１基本クロックのサイクルからコマンドの取り込みを開始させる。
（２）  第１のタイミングＭの直後の、この第１のタイミングＭと対応する帰りの第１基本クロックのサイクルからサイクル数のカウントを開始させる。
（３）  第２のタイミングＭと対応する行きの第１基本クロックのサイクルまでのサイクルで、行きの第１基本クロックに同期して取り込まれたコマンドがコマンドが無い状態も含めて新たなサイクル数カウントコマンドでなければカウント動作を止めて次のカウント動作に備えさせる。
（４）  第１のタイミングＭと対応する行きの第１基本クロックのサイクルから第２のタイミングＭと対応する行きの第１の基本クロックのサイクルまでのサイクルで、行きの第１基本クロックに同期して取り込まれたコマンドに新たなサイクル数カウントコマンドがあれば、一定サイクル数をカウントさせて、そのサイクルから帰りの第１基本クロックに同期して上記データ出力回路からデータを出力させる。
（５）  第２のタイミングＭと対応する行きの第１基本クロックのサイクルまでのサイクルで、第１のタイミングＭと対応する行きの第１基本クロックのサイクルを１番目としてｉ番目（ｉは正の整数）のサイクルに新たなサイクル数カウントコマンドがあれば（ｉ−１）サイクルに対応するサイクル数カウントを余分に加えた一定サイクル数をカウントさせて、そのサイクルから帰りの第１基本クロックに同期して上記データ出力回路からデータを出力させる。
【請求項１５】
前記複数の各メモリモジュール及びコントローラはそれぞれデータ入出力ポートをさらに有し、
前記複数の各メモリモジュールはそれぞれ前記コマンドを前記行き及び帰りのいずれか一方の第１基本クロックに同期して取り込み、この取り込まれたコマンドによりそのメモリモジュールが選択されたことが判別したら、各メモリモジュールに設けられたデータ入出力ポートがイネーブルにされて前記データバスに接続されることを特徴とする請求項２に記載のデータ高速転送システム。
【請求項１６】
前記データバスは、前記メモリモジュールに対して転送されるデータと、メモリモジュールから転送されるデータを同時に双方向に転送する双方向バスであることを特徴とする請求項１５に記載のデータ高速転送システム。
【請求項１７】
前記双方向バスは、データを転送する側の前記コントローラもしくは複数の各メモリモジュールと、データが転送される側の前記コントローラもしくは複数の各メモリモジュールとの間で、電流を分配することによってデータの転送を行い、前記双方向バスへ出力されるデータの“０”と“１”が、定電流Ｉと、この定電流Ｉの（１＋α）倍の電流に対応していることを特徴とする請求項１６に記載のデータ高速転送システム。
【請求項１８】
前記定電流Ｉと、定電流（１＋α）Ｉとの切り替えを、前記行き及び帰りのいずれか一方の第１基本クロックに同期して行なう定電流切り替え回路をさらに有することを特徴とする請求項１７に記載のデータ高速転送システム。
【請求項１９】
前記複数の各メモリモジュールからのデータ出力が、前記行き及び帰りのいずれか一方の第１基本クロックの立ち上がり及び立ち下がりのいずれか一方に対して１８０度位相のずれたタイミングを基準として行われることを特徴とする請求項１８に記載のデータ高速転送システム。
【請求項２０】
前記行き及び帰りのいずれか一方の第１基本クロックの立ち上がり及び立ち下がりのいずれか一方に対して１８０度位相のずれたタイミングが、シンクロナス・アジャスタブル・ディレイ（Synchronous Adjustable Delay）を用いて作られることを特徴とする請求項１９に記載のデータ高速転送システム。
【請求項２１】
前記シンクロナス・アジャスタブル・ディレイは遅延部を有し、この遅延部には前記定電流切り替え回路と等価な構成を有する回路が設けられていることを特徴とする請求項２０に記載のデータ高速転送システム。
【請求項２２】
前記複数のメモリモジュール及びコントローラはそれぞれ、前記データ入出ポートに流れる電流をモニタし、大小２つの参照電流に対するこの電流値の大小を判定して、２つの電流比較結果が共に同じ“Ｌ”または“Ｈ”の時には一方を“０”、他方を“１”に対応させて入力データとし、２つの電流比較結果が共に異なるときには入出力ポートから出力中のデータまたはその反転値を入力値とする回路をさらに有することを特徴とする請求項１５に記載のデータ高速転送システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、複数のメモリモジュールと、これら複数のメモリモジュールにおけるデータの読み出し書き込み動作を制御するコントローラとを有し、複数の各メモリモジュール及びコントローラ相互で同期型データ転送を行なうデータ転送システムに関する。
【０００２】
さらに、この発明は、特に、クロックの伝播遅延差によって生じるデータバス上の空きサイクルを無くし、書き込みデータと読み出しデータの両方を同じバスで同時に転送することによって、データ転送効率を格段に向上させる技術に関する。
【０００３】
【従来の技術】
制御システムで使用されるマイクロ・プロセッサ・ユニット（ＭＰＵ）の性能が向上し、それに伴って、制御システムで使用されるＩＣメモリの容量も２５６Ｍビット、１Ｇビットと増大している。このような状況において、大量のデータを如何に効率良く転送するかということが益々重要になってきている。
【０００４】
米国特許第 5,432,823号公報には、高速なデータ転送を実現するデータ転送システムが開示されている。
【０００５】
図５２は、この米国特許第 5,432,823号公報に開示されているデータ転送システムの概略的なブロック図を示している。このシステムには、クロック発生器（ＣＧ）３０１と、複数のメモリモジュール３０２と、１個のコントローラ３０３とが設けられている。複数のメモリモジュール３０２と、１個のコントローラ３０３は並列に配列されている。また、これら複数のメモリモジュール３０２とコントローラ３０３の配列に沿って、往復するようにクロック配線３０４が設けられている。さらに、複数のメモリモジュール３０２とコントローラ３０３の配列に沿ってデータバス３０５が設けられている。
【０００６】
クロック発生器３０１によってクロックが作られる。このクロックは、クロック配線３０４の往路部分を経由して複数のメモリモジュール３０２及びコントローラ３０３にクロックＴＣＬＫとして順次転送される。クロック配線３０４の往路部分から復路部分への折り返し地点を経た後、先のクロックは、クロックＲＣＬＫとしてコントローラ３０３及び複数のメモリモジュール３０２の配列に対し、往路部分とは逆方向に転送され、最終的にクロック発生器３０１の近くの位置まで転送される。この場合、コントローラ３０３は折り返し地点に近いところに配置されている。
【０００７】
また、複数のメモリモジュール３０２とコントローラ３０３との間のデータの授受は、データバス３０５を介して行われる。
【０００８】
一般に、クロックに同期した制御を行う場合、クロックの伝播遅延が存在するために、異なる場所のメモリモジュールと、コントローラとの間でデータをやり取りするには、この伝播遅延を予め考慮しておかないと、データバス上でデータの衝突が起こる。
【０００９】
図５２の従来システムでは、これをコントローラ３０３及び複数の各メモリモジュール３０２でクロックＴＣＬＫ、ＲＣＬＫをモニタし、以下のように対処することによってデータバス上でデータの衝突を避けるようにしている。
【００１０】
すなわち、図５３のタイミングチャートに示すように、クロック配線３０４の折り返し地点の付近ではクロックＴＣＬＫとＲＣＬＫの位相は一致する。これに対して、クロック発生器３０１の近くでは両クロックの位相がずれ、クロックＴＣＬＫに対してクロックＲＣＬＫが遅れる。そこで、両クロックＴＣＬＫ、ＲＣＬＫの中間のタイミングＡを取ると、このタイミングＡはクロック配線３０４上の位置に依存せず、常にその位置でクロックＴＣＬＫとＲＣＬＫとの中間タイミングとなる。従って、この中間タイミングＡとクロックＴＣＬＫ、ＲＣＬＫとの位相差を各メモリモジュール３０２やコントローラ３０３が考慮してデータ転送を行えば、データバス３０５でのデータの衝突を避けることができる。
【００１１】
【発明が解決しようとする課題】
しかし、さらにデータ転送効率を上げるため、より周期の短い（周波数の高い）クロックを使用したり、システムのメモリ容量を増やすために多くのメモリモジュールを接続した結果データバス長が長くなると、クロックの伝播遅延がクロックの１周期以上になることが起こる。
【００１２】
この場合、図５４のタイミングチャートに示すように、本来、必要とするクロックＴＣＬＫとＲＣＬＫの中間タイミングであるタイミングＢは得られず、誤ったタイミングＡが得られる。例えば、コントローラ３０３がクロック発生器３０１の付近に配置される場合、クロックＴＣＬＫがクロック配線３０４を転送されて１周期以上遅れ、図中のクロックＴＣＬＫの立ち上がりタイミングｔ１に対応するクロックＲＣＬＫの立ち上がりタイミングがｔ３となったとする。このとき、単純にクロックＴＣＬＫとＲＣＬＫの中間タイミングを取ると、タイミングｔ１とこのタイミングｔ１の直後にクロックＲＣＬＫが立ち上がるタイミングとの間の中間タイミングＡがとられるために、タイミングＡは誤ったタイミングとなる。この場合の正しい中間タイミングＢは、タイミングｔ１とタイミングｔ３との間のタイミングｔ２である。
【００１３】
このように、クロックＴＣＬＫとＲＣＬＫの関係を用いただけでは、クロックＴＣＬＫ、ＲＣＬＫ相互間にクロックの１周期以上の位相ずれが生じたか否かの判定ができず、誤った中間タイミングが得られる。
【００１４】
また、データバスは、メモリモジュールからの読み出しデータ、メモリモジュールへの書き込みデータの双方の転送に利用される。しかし、一般にはデータの“１”、“０”を電位レベルの高低で表現しているために、読み出しデータと書き込みデータの両データの転送を時間的に明確に分ける必要がある。このため、両者のデータ転送を同時に行い、データ転送効率を一気に倍近くに上げようとするためには、図５５に示すようにデータバス（DATA BUS）をリードデータバス（READ DATA BUS）３０６とライトデータバス（WRITE DATA BUS）３０７とに分ける必要がある。
【００１５】
しかし、こうすると、データバスの配線本数が倍に増えるので、メモリモジュールやコントローラのピン数が倍増し、面積コスト的に損をすることになる。
【００１６】
この発明は上記のような事情を考慮してなされたものであり、その目的は、データバスの配線本数を増やさずにデータ転送を高速に行うことができるデータ高速転送システムを提供することである。
【００１７】
【課題を解決するための手段】
この発明によれば、複数のメモリモジュールと、上記複数のメモリモジュールと共に配列され、上記複数のメモリモジュールとの間でデータの授受を行うコントローラと、第１基本クロック及びこの第１基本クロックの周期のｎ倍（ｎは２及び４のいずれか一方の値）の周期を有する第２基本クロックを発生するクロック発生器と、上記配列された複数のメモリモジュール及びコントローラに沿って往復するように往路部分及び復路部分の配線をそれぞれ有し、上記クロック発生器で発生される上記第１及び第２基本クロックが上記各往路部分の先端からそれぞれ入力され、この入力された第１及び第２基本クロックをそれぞれ順次転送し、各往路部分及び各復路部分の配線を転送される第１及び第２基本クロックを上記複数のメモリモジュール及びコントローラに対し、これら複数のメモリモジュール及びコントローラがデータ授受の際に使用する同期信号として与える２本のクロック配線と、上記複数の各メモリモジュール内及びコントローラ内にそれぞれ設けられ、上記２本のクロック配線の各往路部分から与えられる行きの第１及び第２基本クロックと、上記２本のクロック配線の各復路部分から与えられる帰りの第１及び第２基本クロックとを受けて、行きの第１基本クロックと帰りの第１基本クロックとの間に生じる第１基本クロックの周期のｎ倍（ｎは２及び４のいずれか一方の値）の周期以内の位相ずれに対して、その中間タイミングを検出する中間タイミング検出回路を含む制御回路とを具備したデータ高速転送システムが提供されている。
【００１８】
また、この発明によれば、複数のメモリモジュールと、上記複数の各メモリモジュールとの間でデータの授受を行うコントローラと、上記複数のメモリモジュールとコントローラとを接続するデータバスとを具備し、上記複数の各メモリモジュール及びコントローラはそれぞれ、授受データに応じて上記データバスに流れる電流の値及び電流の方向を異ならせるデータ入出力回路を有するデータ高速転送システムが提供されている。
【００１９】
【発明の実施の形態】
以下、図面を参照してこの発明を実施の形態により説明する。
【００２０】
図１及び図２は、この発明の第１の実施の形態によるデータ高速転送システムの全体の構成を示すブロック図である。
【００２１】
図１のシステムには、クロック発生器（ＣＧ）１、複数のメモリモジュール２、１個のコントローラ３、２本のクロック配線４Ａ，４Ｂ及びデータバス５が設けられている。複数のメモリモジュール２と１個のコントローラ３は並列に配列されている。また、これら複数のメモリモジュール２とコントローラ３の配列に沿って、往復するように上記２本のクロック配線４Ａ、４Ｂが配置されている。さらに、複数のメモリモジュール２とコントローラ３の配列に沿って上記データバス５及びコマンド／アドレスバス６が設けられている。
【００２２】
クロック発生器１は、本来のデータ転送をコントロールするための第１の基本クロックＴＣＬＫと、この第１の基本クロックの２倍の周期を持つ第２の基本クロックＴＣＬＫ２とを出力する。この第１、第２の基本クロックＴＣＬＫ、ＴＣＬＫ２は、上記２本のクロック配線４Ａ、４Ｂの往路部分の先端部から入力され、そして往路部分を経由して、複数のメモリモジュール２とコントローラ３の配列に沿って順次転送される。往路部分から復路部分への折り返し地点を経た後、先の第１、第２の基本クロックは、クロックＲＣＬＫ、ＲＣＬＫ２としてコントローラ３と複数のメモリモジュール２とからなる配列に対し、往路部分とは逆方向に順次転送され、最終的にクロック発生器１の近くの位置まで転送される。
【００２３】
上記２本のクロック配線４Ａ、４Ｂ上を伝播する往路部分の第１、第２の基本クロックＴＣＬＫ、ＴＣＬＫ２及び復路部分の第１、第２の基本クロックＲＣＬＫ、ＲＣＬＫ２は、複数のメモリモジュール２及びコントローラ３に取り込まれる。複数のメモリモジュール２及びコントローラ３は、これら取り込んだクロックに同期してそれぞれのデータの入出力動作が制御される。
【００２４】
上記複数のメモリモジュール２とコントローラ３はデータバス５に接続されている。このデータバス５は、書き込みデータと読み出しデータを同時に双方向に転送できるように、所定の値の電流を流すことによってデータ転送を行う。また、データ転送の際には、コントローラ３からアドレス及びコマンドが出力される。このアドレス及びコマンドは、アドレス／コマンドバス６を介して複数のメモリモジュール２に入力する。
【００２５】
図１では、コントローラ３が折り返し地点の付近に配置されている場合を示しているが、必ずしもそのように配置する必要は無く、図２に示すように、コントローラ３がクロック発生器１の付近に配置されていてもよい。
【００２６】
このような構成のシステムにおいて、上記クロックがクロック配線４Ａ上を転送される際に、往路部分におけるクロックＴＣＬＫと、復路部分におけるクロックＲＣＬＫとの間の位相差が３６０度＊２の範囲内、つまりクロックＴＣＬＫの２周期以内の範囲でずれたとしても、データバス上でデータの衝突を起こさずに、かつギャップが発生すること無くデータの転送を行うことができるかについて説明する。そのためには、互いに位相がずれたクロックＴＣＬＫとＲＣＬＫとの間の中間タイミングＭを設定すればよい。この中間タイミングＭを設定することにより、対応する周期のクロックＴＣＬＫとＲＣＬＫとを関連付けることができ、それによりデータバス上で位置の異なるメモリモジュールが、データバス上でデータの衝突を起こさずにかつデータ転送のギャップが無くデータの転送を行うことができる。なお、中間タイミングＭを設定するための具体的な方法及び回路については後に詳述する。
【００２７】
図３に、クロック配線４Ａ、４Ｂ上の異なる二つの場所におけるクロックＴＣＬＫとＲＣＬＫの位相関係を示す。同じクロックサイクルにおける往路部分におけるクロックＴＣＬＫの立上がりタイミングＡの位置は、復路部分ではクロックＲＣＬＫの立上がりタイミングＢの位置に対応している。クロック配線４Ａ、４Ｂ上の折り返し点に近い場所と遠い場所とで、それぞれの場所のクロックＴＣＬＫを基準にしてみれば、タイミングＡ、Ｍ、Ｂ相互の位相関係は、図３に示したようになる。
【００２８】
先に述べたように、コントローラ３が、図１に示すように折り返し点の付近に置かれる場合と、図２に示すようクロック発生器１の付近に置かれる場合とがある。
【００２９】
コントローラ３が折り返し点の付近に置かれる場合、複数のメモリモジュール２からコントローラ３の方向に転送されるクロックは往路部分を伝送されるクロックＴＣＬＫであり、逆にコントローラ３から複数のメモリモジュール２の方向に転送されるクロックは復路部分を伝送されるクロックＲＣＬＫである。そこで、コントローラ３は、往路部分に転送されるクロックＴＣＬＫを受けた後に、メモリモジュール２に対するアクセス（アドレス／コマンドの出力等）を開始する。他方、各メモリモジュール２は、復路部分に転送されるクロックＲＣＬＫを受けた後に、データの出力動作を開始する。すなわち、各メモリモジュール２が、クロックＲＣＬＫの立上がりタイミングであるタイミングＢで受けたアドレス／コマンドに対して、クロックＴＣＬＫの立上がりタイミングであるタイミングＡを起点にして、データをクロックＴＣＬＫに同期してデータバス５に出力すれば、データのバスでの衝突は起きないし、コントローラ３が受け取るデータに空きサイクルが生じることもない。これについては、後程、図４及び図５のフローチャートを用いて説明する。
【００３０】
一方、各メモリモジュール２は、タイミングＢでアドレス／コマンドを受け、タイミングＡから一定のクロックサイクルの後、所謂レイテンシイ（latency）の後にデータをデータバス５に出力する。その場合、各メモリモジュール２は、一連のデータを出し終わり、新たなデータ出力サイクルを始める際に、そのレイテンシイを設定するために、カウンタによってクロックＴＣＬＫをそのレイテンシイに応じた数だけカウントする必要がある。後述するが、各メモリモジュール２にはレイテンシイを設定するためのカウンタが設けられており、そのカウンタの動作を制御するための制御手順について、以下に図４を参照して説明する。
（１）  まず、タイミングＭの直後に、カウンタで、サイクル数のカウントが可能状態に設定される（ステップＳ１）。
（２）  次に、タイミングＭの直後から入力するクロックＴＣＬＫの立上がり及び立ち下がりに同期して、カウンタでサイクル数がカウントされる（ステップＳ２）。
（３）  タイミングＭの直後に入力するクロックＲＣＬＫに同期して取り込またれたコマンドが新たなサイクル数カウントコマンドかどうかが判定される（ステップＳ３）。このとき、新たなサイクル数カウントコマンドであれば、この後、ステップＳ２に戻り、再びクロックＴＣＬＫの立上がり及び立ち下がりに同期して、レイテンシイを設定するために必要な数だけクロックＴＣＬＫがカウンタでカウントされる。
（４）  一方、ステップＳ３で、タイミングＭの直後に入力するクロックＲＣＬＫに同期して取り込まれたコマンドが、コマンドが無い状態も含めて新たなサイクル数カウントコマンドでなければ、カウントがリセットされ、カウント可能状態が解除され、カウント動作が不活性にされる（ステップＳ４）。
【００３１】
上記の制御手順でクロックＴＣＬＫのサイクルを、クロックＲＣＬＫに同期してコマンドを受けた後にカウントすれば、折り返し点の近くに配置されたメモリモジュール２でもクロック発生器１の近くに配置されたメモリモジュール２でも、タイミングＡから同じレイテンシイで、データをクロックＴＣＬＫに同期してデータバス５に出力することが出来る。
【００３２】
例えば、各メモリモジュール２がダブル・データ・レート（ＤＤＲ：Double Data Rate）でデータを出力するものとし、かつレイテンシイが２である場合、クロックＴＣＬＫのタイミングＡ１に対応するコマンドがクロックＲＣＬＫのタイミングＢ１で、あるメモリモジュール２に取り込まれたとする。このコマンドを受けてこのメモリモジュール２は、タイミングＡ１の後にクロックＴＣＬＫが始めて立ち上がるタイミングｔ１から数えてクロックＴＣＬＫが２回変化した後、すなわちクロックＴＣＬＫのタイミングｔ２の後にデータを出力する。次に、クロックＴＣＬＫのタイミングｔ１（タイミングＡ２）に対応するコマンドがクロックＲＣＬＫのタイミングＢ２で、別のメモリモジュール２に取り込まれたとする。このコマンドを受けてこのメモリモジュール２は、タイミングＡ２の後にクロックＴＣＬＫが始めて立ち上がるクロックＴＣＬＫのタイミングｔ３から数えてクロックＴＣＬＫが２回変化した後、すなわちクロックＴＣＬＫのタイミングｔ４の後にデータを出力する。
【００３３】
このようにしてデータの読み出しが行なわれると、読み出しデータのバス上での衝突は起きず、コントローラ３が受け取るデータに空きサイクルが生じることもない。
【００３４】
これによって、コントローラ３が、コマンドを出力し、このコマンドに対応するデータを受け取るという動作を行なう場合に、複数のメモリモジュール２のデータバス５上での位置の差の影響は全くなくなる。
【００３５】
次に、コントローラ３が、図２に示すように、クロック発生器１の近くに置かれる場合を説明する。この場合、コントローラ３から複数のメモリモジュール２の方向に転送されるクロックは往路部分を転送されるクロックＴＣＬＫであり、逆に複数のメモリモジュール２からコントローラ３の方向に転送されるクロックは復路部分を転送されるクロックＲＣＬＫである。コントローラ３は往路部分を転送されるクロックＴＣＬＫを受けた後に、メモリモジュール２に対するアクセス（アドレス／コマンドの出力等）を開始する。また、各メモリモジュール２は、クロックＴＣＬＫの立上がりタイミングであるタイミングＡで受けたコマンドに対して、クロックＲＣＬＫの立上がりタイミングであるタイミングＢを起点にして、データをクロックＲＣＬＫに同期してデータバス５に出力すれば、データのバスでの衝突は起きないし、コントローラ３が受け取るデータに空きサイクルが生じることもない。
【００３６】
各メモリモジュール２は、一連のデータを出し終わり、新たなデータ出力サイクルを始める際に、レイテンシイを設定するために、カウンタによってクロックＲＣＬＫをレイテンシイに応じた数だけカウントする必要がある。このカウンタの動作を制御するための制御手順について、以下、図５を参照して説明する。
（１）  各メモリモジュール２で、クロックＴＣＬＫに同期してコマンドが取り込まれる（ステップＳ１１）。
（２）  ステップＳ１１で取り込まれたコマンドが新たなサイクル数カウントコマンドであるかどうかが判断される（ステップＳ１２）。
（３）  ステップＳ１２で、新たなサイクル数カウントコマンドであると判断されれば、この直後のタイミングＭに、カウンタでサイクル数カウントが可能状態にされ、タイミングＭの直後から入力するクロックＲＣＬＫの立上がり及び立ち下がりに同期して、レイテンシイを設定するために必要な数だけクロックＲＣＬＫがカウンタでカウントされる（ステップＳ１３）。
【００３７】
例えば、先の場合と同様に、各メモリモジュール２がＤＤＲでデータを出力するものとし、かつレイテンシイが２である場合、コントローラ３から出力されたコマンドが、クロックＴＣＬＫのタイミングＡ１で、あるメモリモジュール２に取り込まれたとする。このコマンドを受けて、このメモリモジュール２は、タイミングＡ１の後にクロックＲＣＬＫが始めて立ち上がるタイミングｔ５から数えてクロックＲＣＬＫが４回変化した後、すなわちクロックＲＣＬＫのタイミングｔ８の後にデータを出力する。次に、クロックＴＣＬＫのタイミングＡ２で、コントローラ３から出力されたコマンドが、別のメモリモジュール２に取り込まれたとする。このコマンドを受けて、このメモリモジュール２は、タイミングＡ２の後にクロックＲＣＬＫが始めて立ち上がるタイミングｔ７から数えてクロックＲＣＬＫが４回変化した後、すなわちクロックＲＣＬＫのタイミングｔ１０の後にデータを出力する。
【００３８】
このようにしてデータの読み出しが行なわれると、データのバスでの衝突は起きず、コントローラ３が受け取るデータに空きサイクルが生じることもない。
【００３９】
一方、コントローラ３側でも、クロックＴＣＬＫのタイミングＡ（例えば、図３中のタイミングＡ１）とクロックＲＣＬＫのタイミングＢ（例えば、図３中のクロックＲＣＬＫのタイミングＢ１）が、中間タイミングＭの存在により同じサイクルのクロックＴＣＬＫとクロックＲＣＬＫとして対応づけられている。このため、コントローラ３がコマンドを出して、対応するデータを受け取るという動作を行なう際に、メモリモジュールのバス上の位置の差の影響はなくなる。
【００４０】
次にメモリモジュール２やコントローラ３で上記中間タイミングＭを設定するための具体的な方法及び回路について説明する。
【００４１】
図１及び図２に示したように、第１の基本クロックＴＣＬＫ、ＲＣＬＫと第２のクロックＴＣＬＫ２、ＲＣＬＫ２とが、クロック配線４Ａ、４Ｂ上を転送され、各メモリモジュール２とコントローラ３とに供給される。
【００４２】
図６は、クロック配線４Ａ、４Ｂ上の、ある位置での、クロックＴＣＬＫ、ＲＣＬＫ、ＴＣＬＫ２、ＲＣＬＫ２の位相状態を示している。図示のように、例えば上向きの矢印で示したサイクルが、折り返し点の前後で対応するサイクル、すなわち上向きの矢印で示した信号が互いに同一サイクルの信号である。第１の基本クロックＴＣＬＫ、ＲＣＬＫに対してそれぞれ２倍の周期を有する第２の基本クロックＴＣＬＫ２、ＲＣＬＫ２が転送されるので、メモリモジュール２やコントローラ３が受け取る第１の基本クロックＴＣＬＫ、ＲＣＬＫを、偶数サイクルのクロックと奇数サイクルのクロックとに分けることが出来る。なお、ここでは便宜上、図６中の０、２、４、…番目のクロックを偶数サイクルクロックと称し、同様に１、３、５、…番目のクロックを奇数サイクルクロックと称する。
【００４３】
上記クロックＴＣＬＫ、ＲＣＬＫ、ＴＣＬＫ２、ＲＣＬＫ２から各種内部クロックが作られるが、以後、偶数サイクルクロックに関係した各内部クロックにはｅ、奇数サイクルクロックに関係した各内部クロックにはｏ、基本クロックの立ち上がりに同期した各内部クロックにはｕ、立ち上がり周期に１８０度位相がずれたタイミングに同期した各内部クロックにはｄという添え字をそれぞれ付けて表す。
【００４４】
図７は、クロックＴＣＬＫまたはＲＣＬＫに同期して作られた偶数サイクルの内部クロックＴｅｕまたはＲｅｕ、奇数サイクルの内部クロックＴｏｕまたはＲｏｕの位相関係を示す。これらの内部クロックが各メモリモジュール２やコントローラ３内でそれぞれ作られるならば、これらを用いて先のタイミングＭを、各メモリモジュール２内のメモリチップまたはコントローラ３内のコントローラチップでそれぞれ作ることができる。
【００４５】
タイミングＭは、内部クロックＴｏｕまたはクロックＴＣＬＫのいずれかのサイクル（これを例えばＣＬＫ１と称する）に対して、δだけ遅れた内部クロックＲｏｕまたはクロックＲＣＬＫのいずれかのサイクル（これを例えばＣＬＫ２と称する）が存在するときに、ＣＬＫ１からδ／２だけ遅れたタイミングに相当している。このタイミングＭは以下のような方法で作られる。
【００４６】
ます、ＣＬＫ１またはＣＬＫ２の２周期の期間２τと、ＣＬＫ２のＣＬＫ１に対する遅れ（δ）との間の位相差（２τ−δ）を生成する。次に、この位相差（２τ−δ）の半分の期間（τ−δ／２）だけ遅れたタイミングをＣＬＫ１から作る。そして、このタイミングからあるＣＬＫ１サイクルまでの遅れ（τ＋δ／２）を生成し、この遅れだけ上記のあるＣＬＫ１サイクルから遅れたタイミングを作り、このタイミングをＣＬＫ１に対してδ／２遅れたタイミングとする。
【００４７】
次に、シンクロナス・アジャスタブル・ディレイ（Synchronous Adjustable Delay、略してＳＡＤ）と称される回路を用いて上記タイミングＭを作る具体的な方法を、図８を用いて説明する。このシンクロナス・アジャスタブル・ディレイについては、本発明者による日本国特許出願、特願平9-100490号の明細書及び図面で詳しく述べられているが、その具体的構成については後に詳述する。
【００４８】
クロックＴＣＬＫが、図１及び図２中のクロック配線４Ａの折り返し点を経由してクロックＲＣＬＫとして復路部分側に転送されていくことにより、クロックＴＣＬＫとＲＣＬＫとの間にδなる位相差が生じたとする。この位相差δは、０から（３６０＊２）度の範囲内、つまりクロックＴＣＬＫの２周期以内であるとする。
【００４９】
図８中に示されるクロックを偶数サイクルクロックｅと奇数サイクルクロックｏに区別している。図８では、上向きの矢印の付いた偶数サイクルクロックの立上がりタイミングから、対応した中間タイミングＭｅが作られる様子を示している。なお、奇数サイクルクロックの場合にも同様に考えることが出来るので、その説明は省略する。
【００５０】
まず内部クロックＲｏｕが立ち上がるタイミングｔ１から始まる。シンクロナス・アジャスタブル・ディレイを用いて、内部クロックＲｏｕの立上がりから、その直後に発生する内部クロックＴｏｕの立上がりまでの遅延量を、内部クロックＴｏｕが立ち上がるタイミングｔ２で測定する。次に、この遅延量の半分の遅延時間の後に、内部クロックΦｅをタイミングｔ３で発生する。基本クロックの周期をτとすれば、内部クロックＲｏｕとＴｏｕとの間の遅延量は２τ−δであるから、ｔ２とｔ３のタイミングの間の期間すなわち内部クロックＴｏｕとΦｅとの間の遅延量はτ−δ／２となる。さらにシンクロナス・アジャスタブル・ディレイを用いて、内部クロックΦｅの立上がりタイミングからその直後の内部クロックＴｏｕの立上がりタイミングまでの間の遅延量を、内部クロックＴｏｕの立上がりタイミングｔ４で測定する。そして、この遅延量と同じ遅延時間の後に、内部クロックＭｅをタイミングｔ５で発生する。タイミングｔ２からｔ４までの間の遅延量は、内部クロックＴｏｕの１周期に等しく、２τであるから、タイミングｔ３からｔ４までの間の遅延量、すなわち内部クロックΦｅとＴｏｕの間の遅延量は、タイミングｔ２からｔ４までの間の遅延量から、タイミングｔ２からｔ３までの間の遅延量を引いてτ＋δ／２となり、タイミングｔ４からｔ５までの間の遅延量もこれに等しくτ＋δ／２となる。
【００５１】
従って、内部クロックＴｏｕの立上がりからτ＋δ／２だけ位相がずれた内部クロックＭｅのタイミングは、内部クロックＴｅｕの立上がりからδ／２だけ位相がずれたタイミングとなり、内部クロックＭｅが立ち上がるタイミングが、求める内部クロックＴｅｕとＲｅｕの中間タイミングとなる。
【００５２】
このように基本クロックの５サイクル分の期間で、必要な中間タイミング信号が得られる。図８中及び上記説明で使用したクロックに対する添え字ｅをｏに替えれば、内部クロックＴｏｕの立上がりからδ／２だけ位相がずれた立上がりタイミングを有する中間タイミング信号Ｍｏが得られる。そして、中間タイミング信号ＭｅとＭｏを合成すれば、図３中に示される中間タイミング信号Ｍが得られる。
【００５３】
図９は、図１及び図２中の複数のメモリモジュール２及びコントローラ３内にそれぞれ設けられ、上記タイミング信号Ｍを発生すると共に、この発生されたタイミング信号Ｍに基づいて先のサイクル数をカウントするカウンタ及びこのカウンタのカウント出力に基づいてレイテンシイを設定する回路を含む制御回路の構成を示している。この制御回路は、クロックＴＣＬＫ、ＲＣＬＫ、ＴＣＬＫ２、ＲＣＬＫ２を受けて、先のタイミング信号Ｍを発生するタイミング信号発生回路４０１と、クロックＴＣＬＫ、ＲＣＬＫ、ＴＣＬＫ２、ＲＣＬＫ２、先のコントローラ３から出力されるコマンド及び上記タイミング信号発生回路４０１から出力されるタイミング信号Ｍを受け、先の図４及び図５に示した制御手順を実現し、その結果としてカウンタのセット／リセット信号を発生する内部コントローラ４０２と、上記内部コントローラ４０２で発生されるセット／リセット信号を受け、クロックＴＣＬＫまたはＲＣＬＫをカウントしてサイクル数カウントを行なうカウンタ４０３と、このカウンタ４０３のカウント出力Ｎを受けてレイテンシイの設定を行なうレイテンシイ制御回路４０４とを有する。
【００５４】
なお、レイテンシイ制御回路４０４の出力は図示しないデータ入力／出力回路に送られ、このデータ入力／出力回路でデータの入力／出力制御が行なわれる。
【００５５】
図１０は、タイミング信号Ｍを発生する図９中のタイミング信号発生回路４０１の詳細なブロック図である。図１０において、内部クロックＴ２／Ｒ２発生回路５０１は、クロックＴＣＬＫ／ＲＣＬＫとクロックＴＣＬＫ２／ＲＣＬＫ２を受け、内部クロックＴ２／Ｒ２を発生する。内部クロックＴｏｕ／Ｒｏｕ発生回路５０２は、クロックＴＣＬＫ／ＲＣＬＫとクロックＴＣＬＫ２／ＲＣＬＫ２及び内部クロックＴ２／Ｒ２を受け、内部クロッククロックＴｏｕ／Ｒｏｕを発生する。内部クロックＴｅｕ／Ｒｅｕ発生回路５０３は、クロックＴＣＬＫ／ＲＣＬＫとクロックＴＣＬＫ２／ＲＣＬＫ２及び内部クロックＴ２／Ｒ２を受け、内部クロッククロックＴｅｕ／Ｒｅｕを発生する。内部クロックΦｏ／Φｅ発生回路５０４は、内部クロックＴｏｕ／ＲｏｕとＴｅｕ／Ｒｅｕを受け、内部クロックΦｏ／Φｅを発生する。
【００５６】
タイミングＭ発生回路５０５は、内部クロックＴｏｕ／ＲｏｕとＴｅｕ／Ｒｅｕ及び内部クロックΦｏ／Φｅを受け、タイミングＭ（Ｍｅ及びＭｏ）を発生する。
【００５７】
次に、図１０中の各回路のより詳細な構成及びその動作について、以下に説明する。
【００５８】
図１１は、基本クロックの偶数サイクルと奇数サイクルを分けるための制御信号Ｔ２またはＲ２を発生する、図１０中の制御信号Ｔ２／Ｒ２発生回路５０１の具体的な構成を示している。制御信号Ｔ２発生回路と制御信号Ｒ２発生回路の基本的な構成は同じであリ、入力信号のみが異なるだけである。
【００５９】
この回路は、クロックＴＣＬＫもしくはＲＣＬＫが入力されるバッファ１１と、クロックＴＣＬＫ２もしくはＲＣＬＫ２が入力される縦続接続された奇数段（本例では３段）のバッファ１２と、４個のＮＡＮＤゲート１３〜１６とから構成されている。
【００６０】
すなわち、バッファ１１の出力は、ＮＡＮＤゲート１３の反転入力端に入力されると共に、ＮＡＮＤゲート１４の一方の反転入力端に入力される。縦続接続された３段のバッファ１２のうちの後段のバッファ１２の出力は、ＮＡＮＤゲート１３の非反転入力端とＮＡＮＤゲート１４の他方の反転入力端にそれぞれ供給される。上記ＮＡＮＤゲート１３の出力は、ＮＡＮＤゲート１５の一方の入力端に供給され、上記ＮＡＮＤゲート１４の出力は、ＮＡＮＤゲート１６の一方の入力端に供給され、上記ＮＡＮＤゲート１５、１６の他方の入力端は互いに異なるＮＡＮＤゲートの出力端に接続されている。
【００６１】
すなわち、図１１に示した回路では、２個のＮＡＮＤゲート１５、１６からなるフリップフロップによって、基本クロックの偶数クロックと奇数クロックを分けるための制御信号Ｔ２またはＲ２が作られる。
【００６２】
制御信号Ｔ２／Ｒ２は、図１４のタイミングチャートに示すように、第２の基本クロックＴＣＬＫ２（ＲＣＬＫ２）が“Ｈ”のときに第１の基本クロックＴＣＬＫ（ＲＣＬＫ）が“Ｈ”から“Ｌ”へ変化する遷移時に“Ｈ”となり、第２の基本クロックＴＣＬＫ２（ＲＣＬＫ２）が“Ｌ”のときに第１の基本クロックＴＣＬＫ（ＲＣＬＫ）が“Ｌ”から“Ｈ”へ変化する遷移時に“Ｌ”となる。
【００６３】
図１２は、内部クロックＴｏｕまたはＲｏｕを発生する、図１０中の内部クロックＴｏｕ／Ｒｏｕ発生回路５０２の詳細な構成を、図１３は、内部クロックＴｅｕまたはＲｅｕを発生する、図１０中の内部クロックＴｅｕ／Ｒｅｕ発生回路５０3の詳細な構成をそれぞれ示している。内部クロックＴｏｕ発生回路と内部クロックＲｏｕ発生回路の基本的な構成は同じであリ、入力信号のみが異なるだけである。
【００６４】
図１２の回路において、第１の基本クロックＴＣＬＫもしくはＲＣＬＫは、バッファ２１を介してＡＮＤゲート２２の一方の入力端に供給される。このＡＮＤゲート２２の他方の入力端には図１１の回路で作られる信号Ｔ２またはＲ２が供給される。上記ＡＮＤゲート２２の出力はバッファ２３を介してＡＮＤゲート２４の一方の入力端に供給される。このＡＮＤゲート２４の他方の入力端には高レベルの論理信号“Ｈ”が常時供給されている。上記ＡＮＤゲート２４の出力は、バッファ２５を介してシンクロナス・アジャスタブル・ディレイ（Synchronous Adjustable Delay）２６の前進遅延回路（Forward Delay Circuit）ＦＤに供給される。また、ＡＮＤゲート２２の出力は、制御クロックとして上記ＳＡＤ２６に供給される。上記ＳＡＤ２６には、上記前進遅延回路ＦＤの他に後退遅延回路（Backward Delay Circuit）ＢＤが設けられている。
【００６５】
シンクロナス・アジャスタブル・ディレイ２６の前進遅延回路ＦＤには複数の遅延ユニットが設けられている。この前進遅延回路ＦＤに入力された信号は、この複数の遅延ユニットを通過することによって順次遅延される。そして、シンクロナス・アジャスタブル・ディレイ２６では、前進遅延回路ＦＤにバッファ２５からの信号が供給され、次のサイクルのＡＮＤゲート２２からの出力が立ち上がる時点までの遅延時間Δが、前進遅延回路ＦＤに供給された入力信号が通過した遅延ユニットの数に対応して測定される。さらに、この測定された信号の遅延時間Δに相当する遅延量が、前進遅延回路ＦＤで保持される。後退遅延回路ＢＤは、前進遅延回路ＦＤで保持された遅延時間Δに相当する遅延量だけ信号を遅延する。そして、後退遅延回路ＢＤの出力は、バッファ２７を介して内部クロックＴｏｕまたはＲｏｕとして出力される。
【００６６】
ここで、第１の基本クロックＴＣＬＫもしくはＲＣＬＫに対する、上記バッファ２１及びＡＮＤゲート２２からなる回路における遅延時間をＤ１、後退遅延回路ＢＤの出力に対する上記バッファ２７おける遅延時間をＤ２とすると、ＡＮＤゲート２２の出力に対する上記バッファ２３、ＡＮＤゲート２４及びバッファ２５からなる回路における遅延時間ＡがＤ１＋Ｄ２となるように、バッファ２３、ＡＮＤゲート２４及びバッファ２５の回路定数が設定されている。
【００６７】
このようなシンクロナス・アジャスタブル・ディレイを用いた信号発生回路の動作原理については、本発明者による特願平9-100490号の出願で詳しく説明されている。
【００６８】
図１２中のバッファ２３、ＡＮＤゲート２４及びバッファ２５からなる回路における遅延時間Ａが、Ｄ１＋Ｄ２に等しくなるように設定されていれば、内部クロックＴｏｕまたはＲｏｕの立ち上がりは、第１の基本クロックＴＣＬＫまたはＲＣＬＫの奇数クロックの立ち上がりに一致する。これはＡ＋Δの遅延量が丁度、奇数クロックサイクルの第１の基本クロックの周期２τに等しくなるからである。
【００６９】
図１３の回路が、図１２のものと異なる点は、ＡＮＤゲート２４の他方の入力端に接地電位に対応した論理レベル“Ｌ”を常時供給することによって、偶数クロックサイクルの第１の基本クロックに基づいて動作するようにしただけである。
【００７０】
図１５及び図１６は、図１０に示した内部クロックΦｅ発生回路及び内部クロックΦｏ発生回路の具体的な構成を示している。この場合にも、両回路の基本的な構成は同じであり、入力信号のみが異なるので、内部クロックΦｏ発生回路で代表して説明する。
【００７１】
内部クロックＲｏｕは、縦続接続された２段のバッファ３１による遅延時間Ａ（＝２＊Ｄ２）を経た後に、ＳＡＤ３２の前進遅延回路ＦＤに供給される。このシンクロナス・アジャスタブル・ディレイ（ＳＡＤ）３２には内部クロックＴｏｕが供給されている。このＳＡＤ３２では、内部クロックＲｏｕが入力した後、次に内部クロックＴｏｕが入力するまでの間の遅延量Δが前進遅延回路ＦＤで測定される。後退遅延回路ＢＤでは、遅延量が常にＦＤの半分になるように遅延ユニットの数がＦＤの半分に間引かれている。内部クロックＴｏｕが入力したタイミングから、Δ／２の遅延を経てＳＡＤ３２から出力される信号は、バッファ３３による遅延時間Ｄ２を経た後に内部クロックΦｅとして出力される。
【００７２】
すなわち、内部クロックＲｏｕと内部クロックＴｏｕとの間の遅延量が２＊Ｄ２＋Δで、内部クロックＴｏｕと内部クロックΦｅとの間の遅延量がその半分のＤ２＋Δ／２となる。
【００７３】
図１６の回路でも、上記と同様にして、内部クロックＲｅｕと内部クロックＴｅｕとから内部クロックΦｏが得られる。
【００７４】
図８に示したように、内部クロックΦｅが立ち上がるタイミングから内部クロックＴｏｕが立ち上がるタイミングまでの遅延量を、内部クロックＴｏｕが入力するタイミングから測定を開始することによりタイミング信号Ｍｅが得られる。また内部クロックΦｏが立ち上がるタイミングから内部クロックＴｅｕが立ち上がるタイミングまでの遅延量を、内部クロックＴｅｕが入力するタイミングから測定を開始することによりタイミング信号Ｍｏが得られる。
【００７５】
さらに、タイミング信号ＭｅとＭｏとを合成することによって、最終的なタイミング信号Ｍが得られるが、このタイミング信号Ｍを発生する回路の構成を図１７に示す。
【００７６】
図１７の回路の機能は、先の図１１及び図１２に示した回路と基本的に同じである。ここでは、それぞれ前進遅延回路ＦＤ及び後退遅延回路ＢＤが設けられた二つのシンクロナス・アジャスタブル・ディレイ（ＳＡＤ）３４、３５の出力のＯＲ論理を、出力段のＯＲゲート３６でとることによってタイミング信号Ｍ（Ｍｅ及びＭｏ）を得るようにしている。このため、入出力段における遅延量を合わせるために、両ＳＡＤ３４、３５の入力段にもＯＲゲート３７、３８が設けられている。そして、一方のＯＲゲート３７には内部クロックΦｅと“Ｌ”レベルの論理信号が供給され、他方のＯＲゲート３８には内部クロックΦｏと“Ｌ”レベルの論理信号が供給されている。また、一方のＳＡＤ３４には内部クロックＴｏｕが、他方のＳＡＤ３５には内部クロックＴｅｕが、それぞれ制御信号として供給されている。
【００７７】
さて、前記図３のタイミングチャート中の中間タイミングＭが決まれば、データバス上の位置に左右されずにデータ転送が可能なことは既に説明したが、偶数サイクル、奇数サイクルなどの基本クロックのサイクルの区別が付けばサイクル数カウントの手順を工夫することによって、より回路規模を少なくした方式が可能である。さらに、クロックＲＣＬＫとＴＣＬＫの位相差が２周期以上ずれた場合への拡張も容易になる。
【００７８】
次にこのサイクル数カウントの手順を変えた、この発明の第２の実施の形態について説明する。
【００７９】
図１８は、基本クロックの偶数サイクルであるｅサイクルでのみ、クロックＴＣＬＫとＲＣＬＫの位相差を測定し、その中間のタイミングＭｅのみを発生し、それを用いる方法を示したタイミングチャートである。タイミングＭｅの発生方法は、いままでに説明してきた通りであり、他方のタイミングＭｏが必要でないことから、タイミングＭｏを発生する機能を有する図１５、図１６及び図１７に示した回路に比べて、回路規模が半減できるという効果がある。
【００８０】
このタイミングチャートでは、各サイクル毎にタイミングＭを設定する必要がない。図中で、Ａ１サイクルとＢ１サイクル、Ａ２サイクルとＢ２サイクルが対応する同一サイクルであり、この２つのサイクルがタイミングＭｅの発生に利用される。
【００８１】
この実施の形態において、図１に示すように、コントローラ３が折り返し点の付近にある場合について、まず説明する。この場合、コントローラ３からメモリモジュール２に対し、コマンドがクロックＲＣＬＫのＢ１及びＢ２サイクルに同期して転送される。また、メモリモジュール２からデータをデータバス５に乗せる場合には、クロックＴＣＬＫに同期してＡ１サイクル及びＡ２サイクルからサイクル数がカウントされ、Ａ１サイクル及びＡ２サイクルから数えて一定サイクル数目にデータがデータバス５上に出力されなければならない。一連のデータを出し終えて新たなデータ出力サイクルを始める際、レイテンシイを設定するために、カウンタによってクロックＴＣＬＫがレイテンシイに応じた数だけカウントされる必要がある。
【００８２】
前記のように各メモリモジュール２内にはレイテンシイを設定するためのカウンタ（図9中のカウンタ４０３）が設けられており、このカウンタの動作を制御するための制御手順について、図１９を参照して説明する。
（１）  Ａ１サイクルにおけるクロックＴＣＬＫの立ち上がりタイミングの直後に発生される第１のタイミング信号Ｍｅに対し、その次に発生する第２のタイミング信号Ｍｅに対応するクロックＴＣＬＫのｅサイクルから、カウンタでクロックＴＣＬＫがカウントされ、サイクル数のカウントが開始される（Ｓ２１）。
（２）  クロックＲＣＬＫに同期してコマンドが取り込まれる（Ｓ２２）。
（３）  コマンドが取り込まれたかどうが判断される（Ｓ２３）。
（４）  第１のタイミング信号Ｍｅの直後の、この第１のタイミング信号Ｍｅに対応するクロックＲＣＬＫのＢ１サイクルの立ち上がりから、第２のタイミング信号Ｍｅに対応するクロックＲＣＬＫのサイクル（Ｂ２の次のｅ）の立ち上がりまでの間の期間に、クロックＲＣＬＫに同期して取り込まれたコマンドが、コマンドがない状態も含めて新たなサイクル数カウントコマンドでなければ、カウント動作が止められて、次のカウント動作に備えられる（Ｓ２４）。
（５）  一方、（ａ）第１のタイミング信号Ｍｅの直後の、その第１のタイミング信号Ｍｅに対応するクロックＲＣＬＫのＢ１サイクルの立ち上がりから、第２のタイミング信号Ｍｅに対応するクロックＲＣＬＫのサイクル（Ｂ２の次のｅ）の立ち上がりまでの間の期間に、クロックＲＣＬＫに同期して取り込まれたコマンドに新たなサイクル数カウントコマンドがあれば、一定サイクル数がカウントされ、そのサイクルからＴＣＬＫに同期してデータがデータバスに出力される。
【００８３】
また、（ｂ）第１のタイミング信号Ｍｅの直後の、その第１のタイミング信号Ｍｅと対応するクロックＲＣＬＫのＢ１サイクルから第２のタイミング信号Ｍｅと対応するサイクル（Ｂ２の次のｅ）の間で、第１のタイミング信号Ｍｅの直後の、その第１のタイミング信号Ｍｅと対応するクロックＲＣＬＫのサイクルを１番目としてｉ番目（ｉは正の整数）のサイクルに新たなサイクル数コマンドがあれば、ｉ−１サイクルに対応するサイクル数カウントを余分に加えた一定サイクル数がカウンタでカウントされ、そのカウント終了後のサイクルからクロックＴＣＬＫに同期してデータがデータバスに出力される（図１８で例えばＢ２サイクルにコマンドがあれば、カウント終了の数が２だけ増やされる）（Ｓ２５）。
【００８４】
以上の手順により、クロックＴＣＬＫの立上がり時及び立ち下がり時に、カウンタでカウントが行なわれることにより、各メモリモジュール２から所定のレイテンシイでデータの読み出しが行なわれる。例えば、シングル・データ・レート（Single Data Rate、略してＳＤＲ）でコントローラ３がコマンドを出力したサイクルから数えて６サイクル目の立上がりでデータがデータバスに乗って欲しいとき、コントローラ３がＡ１サイクルに対応するコマンドを出力すれば、メモリモジュール２はＢ１サイクルでこのコマンドを受け、クロックＴＣＬＫのタイミングｔ３でデータを出力する。また、コントローラ３がＡ２サイクルでコマンドを出力すれば、メモリモジュール２はＢ２サイクルでこのコマンドを受け、クロックＴＣＬＫのタイミングｔ４でデータを出力する。
【００８５】
他方、図２に示すように、コントローラ３がクロック発生器１の近くにある場合、各メモリモジュール２に対し、コマンドはクロックＴＣＬＫのＡ１及びＡ２サイクルに同期して転送される。また、各メモリモジュール２が、データをデータバス５に出力する際は、クロックＲＣＬＫに同期してカウンタでＢ１及びＢ２サイクルからサイクル数のカウントが開始され、一定サイクル数目に各メモリモジュール２からデータが出力される。一連のデータを出し終わり、新たなデータ出力サイクルを始める際、レイテンシイを設定するために、カウンタによってクロックＴＣＬＫがレイテンシイに応じた数だけカウントされる必要がある。
【００８６】
前記のように各メモリモジュール２内にはレイテンシイを設定するためのカウンタ（図９中のカウンタ４０３）が設けられており、このカウンタの動作を制御するための制御手順について、図２０を参照して説明する。
（１）  第１のタイミング信号Ｍｅに対応するクロックＴＣＬＫのＡ１サイクルにコマンドが取り込まれる（Ｓ３１）。
（２）  第１のタイミング信号Ｍｅの直後の、この第１のタイミング信号Ｍｅに対応するクロックＲＣＬＫのＢ１サイクルから、カウンタでサイクル数のカウントが開始される（Ｓ３２）。
（３）  コマンドが取り込まれたかどうが判断される（Ｓ３３）。
（４）  第２のタイミング信号Ｍｅに対応するクロックＴＣＬＫのサイクル（Ａ２の次のｅ）までの期間に、クロックＴＣＬＫに同期して取り込まれたコマンドが、コマンドがない状態も含めて新たなサイクル数カウントコマンドでなければ、カウント動作が止められ、次のカウント動作に備えられる（Ｓ３４）。
（５）  一方、（ａ）第１のタイミング信号Ｍｅに対応するクロックＴＣＬＫのＡ１サイクルから、第２のタイミング信号Ｍｅに対応するクロックＴＣＬＫのＡ２の次のｅサイクルまでの間に、クロックＴＣＬＫに同期して取り込まれたコマンドに新たなサイクル数カウントコマンドがあれば、一定サイクル数がカウントされ、そのサイクルからＲＣＬＫに同期してデータがデータバスに出力される。
【００８７】
また、（ｂ）第２のタイミング信号Ｍｅに対応するクロックＴＣＬＫのＡ２の次のｅサイクルで、第１のタイミング信号Ｍｅに対応するクロックＴＣＬＫのＡ１サイクルを１番目としてｉ番目（ｉは正の整数）のサイクルに新たなサイクル数コマンドがあれば、ｉ−１サイクルに対応するサイクル数カウントを余分に加えた一定サイクル数がカウンタでカウントされ、そのカウント終了後のサイクルからクロックＲＣＬＫに同期して、データがデータバスに出力される（図１８で例えばＡ２サイクルにコマンドがあれば、カウント終了の数が２だけ増やされる）（Ｓ３５）。
【００８８】
これにより、例えば、コントローラ３がコマンドを出したサイクルに対応したサイクルから４サイクル目の立上がりでデータがデータバスに乗って欲しいとき、コントローラ３がＡ１サイクルでコマンドを出せば、メモリモジュール２がＡ１サイクルでこのコマンドを受け、タイミングｔ５でデータを出力する。また、コントローラ３がＡ２サイクルでコマンドを出せば、メモリモジュール２はＡ２サイクルでこのコマンドを受け、タイミングｔ６でデータを出力する。
【００８９】
図１８の例は、図３中に示すクロックＴＣＬＫとＲＣＬＫが２周期まで位相がずれてもよい場合であった。ところが、システムがさらに高速化されたり、大規模になり、バス上での伝播遅延が基本クロックの周期に比べてさらに長くなってくると、例えば４周期までの位相のずれにも対応できることが要求される。このとき、第２の基本クロックとしては当然、周期が第１の基本クロックの４倍である、第１の基本クロックの４分周信号が使用される。
【００９０】
図２１に、４分周された第２の基本クロックを用いて、第１の基本クロックの４つのサイクルをａ、ｂ、ｃ、ｄのように区別して、４周期の位相のずれまで対応可能にした場合の、図１８に相当する、この発明の第３の実施の形態によるタイミングチャートを示す。
【００９１】
この場合、第１の基本クロックの４つのサイクルに対し、ａサイクルに対応したタイミングＭａのみが発生される。このタイミングＭａの発生方法は後程詳細に説明する。図２１に示したタイミングＭａの発生手順は図１８の場合と同様であり、以下の通りである。
【００９２】
まず、図１に示すように、コントローラ３が折り返し点の近くにある場合、メモリモジュール２に対し、コマンドがクロックＲＣＬＫのＢ１、Ｂ２、Ｂ３、Ｂ４からなる４サイクルに同期して転送される。また、データをデータバス５に乗せるサイクルは、クロックＴＣＬＫに同期してＡ１、Ａ２、Ａ３、Ａ４各サイクルからカウンタによってサイクル数をカウントした結果の一定サイクル数目である。一連のデータを出し終わり、新たなデータ出力サイクルを始める際、レイテンシイを設定するために、カウンタによってクロックＴＣＬＫがレイテンシイに応じた数だけカウントされる必要がある。カウンタにおけるレイテンシイに応じた数のクロックＴＣＬＫでのカウントの手順が図２２に示されている。
（１）  第１のタイミングＭａの直後の第２のタイミングＭａに対応するクロックＴＣＬＫのサイクル（ａサイクル）から、カウンタによるサイクル数のカウントが開始される（Ｓ４１）。
（２）  クロックＲＣＬＫに同期してコマンドが取り込まれる（Ｓ４２）。
（３）  コマンドが取り込まれたかどうが判断される（Ｓ４３）。
（４）  第１のタイミングＭａの直後の、この第１のタイミングＭａに対応するクロックＲＣＬＫのサイクル（Ｂ１、ａサイクル）から、第２のタイミングＭａに対応するクロックＲＣＬＫのサイクル（次のａサイクル）までの期間に、クロックＲＣＬＫに同期して取り込まれたコマンドが、コマンドがない状態も含めて新たなサイクル数カウントコマンドでなければ、カウント動作が止められ、次のカウント動作に備えられる（Ｓ４４）。
（５）  一方、（ａ）第１のタイミングＭａの直後の、この第１のタイミングＭａに対応するクロックＲＣＬＫのＢ１サイクル（ａサイクル）から、第２のタイミングＭａに対応するクロックＲＣＬＫのＢ４の次のａサイクルまでの間の期間に、クロックＲＣＬＫに同期して取り込まれたコマンドに新たなサイクル数カウントコマンドがあれば、一定サイクル数がカウントされ、そのサイクルからＴＣＬＫに同期してデータがデータバスに出力される。
【００９３】
また、（ｂ）第１のタイミングＭａの直後の、この第１のタイミングＭａと対応するクロックＲＣＬＫのＢ１サイクルから次の対応するサイクル（Ｂ４サイクルの次のａサイクル）までの間で、第１のタイミングＭａの直後の、この第１のタイミングＭａと対応するクロックＲＣＬＫのサイクル（Ｂ１サイクル）を１番目として、ｉ番目（ｉは正の整数）のサイクルに新たなサイクル数コマンドがあれば、ｉ−１サイクルに対応するサイクル数カウントを余分に加えた一定サイクル数がカウンタでカウントされ、そのカウント終了後のサイクルからクロックＴＣＬＫに同期してデータがデータバスに出力される（図２１で例えばＢ３サイクルにコマンドがあれば、カウント終了の数が４だけ増やされる）（Ｓ４５）。
【００９４】
例えば、ＳＤＲ方式でコントローラ３がコマンドを出したサイクルから６サイクル目の立上がりでデータがデータバスに乗って欲しいとき、コントローラ３がＡ１サイクルに対応するコマンドを出力すれば、メモリモジュール２はＢ１サイクルでそのコマンドを受け、クロックＴＣＬＫのタイミングｔ３でデータを出力する。また、コントローラ３がＡ３サイクルでコマンドを出力すれば、メモリモジュール２はＢ３サイクルでそのコマンドを受け、クロックＴＣＬＫのタイミングｔ４でデータを出力する。
【００９５】
一方、図２に示すように、コントローラ３がクロック発生器１の近くにある場合、メモリモジュール２に対し、コマンドがクロックＴＣＬＫのＡ１、Ａ２、Ａ３、Ａ４からなる４サイクルに同期して転送される。また、データをデータバス５に乗せるサイクルは、クロックＲＣＬＫに同期してＢ１、Ｂ２、Ｂ３、Ｂ４サイクルからカウンタによってサイクル数をカウントした結果の一定サイクル数目である。一連のデータを出し終わり、新たなデータ出力サイクルを始める際、レイテンシイを設定するために、カウンタによってクロックＲＣＬＫがレイテンシイに応じた数だけカウントされる必要がある。カウンタにおけるレイテンシイに応じた数のクロックＲＣＬＫでのカウントの手順が図２３に示されている。
（１）  第１のタイミングＭａと対応するクロックＴＣＬＫのＡ１サイクル（ａサイクル）からコマンドの取り込みが開始される（Ｓ５１）。
（２）  第１のタイミングＭａの直後の、この第１のタイミングＭａと対応するクロックＲＣＬＫのＢ１サイクル（ａサイクル）から、サイクル数のカウントが開始される（Ｓ５２）。
（３）  コマンドが取り込まれたかどうが判断される（Ｓ５３）。
（４）  第２のタイミングＭａに対応するクロックＴＣＬＫのサイクルまでのサイクル（Ａ４サイクルの次のａサイクル）で、クロックＴＣＬＫに同期して取り込まれたコマンドが、コマンドがない状態も含めて新たなサイクル数カウントコマンドでなければ、カウント動作が止められて、次のカウント動作に備えられる（Ｓ５４）。
（５）  一方、（ａ）第１のタイミングＭａに対応するクロックＴＣＬＫのＡ１サイクルから、第２のタイミングＭａに対応するクロックＴＣＬＫのサイクル（Ａ４サイクルの次のａサイクル）までの間の期間に、クロックＴＣＬＫに同期して取り込まれたコマンドに新たなサイクル数カウントコマンドがあれば、一定サイクル数がカウントされ、そのサイクルからクロックＲＣＬＫに同期してデータがデータバスに出力される。
【００９６】
また、（ｂ）第２のタイミングＭａに対応するクロックＴＣＬＫサイクルまでのサイクル（Ａ４サイクル）で、第１のタイミングＭａに対応するクロックＴＣＬＫのサイクル（Ａ１サイクル）を１番目として、ｉ番目（ｉは正の整数）のサイクルに新たなサイクル数コマンドがあれば、ｉ−１サイクルに対応するサイクル数カウントを余分に加えた一定サイクル数がカウンタでカウントされ、そのカウント終了後のサイクルからクロックＲＣＬＫに同期して、データがデータバスに出力される（図２１で例えばＡ３サイクルにコマンドがあれば、カウント終了の数が４だけ増やされる）（Ｓ５５）。
【００９７】
これにより、例えば、コントローラ３がコマンドを出したサイクルに対応したサイクルから３サイクル目の立上がりでデータがデータバスに乗って欲しいとき、コントローラ３がＡ１サイクルでコマンドを出せば、メモリモジュール２がＡ１サイクルでこのコマンドを受け、タイミングｔ５でデータを出力する。また、コントローラ３がＡ３サイクルでコマンドを出せば、メモリモジュール２はＡ３サイクルでこのコマンドを受け、タイミングｔ６でデータを出力する。
【００９８】
図１８のタイミングチャートに示した、２分周クロックを用いた第２の基本クロック、図２１のタイミングチャートに示した、４分周クロックを用いた第２の基本クロックを合わせてタイミングＭｅやＭａを発生する回路について以下に説明する。
【００９９】
先の図１１、１２では、２分周クロックを用いた場合の、基本クロックの奇数番目ｏサイクルを選択する場合の回路の構成を示した。第３の実施の形態において、図１１の回路に相当するのが図２４の回路である。この図２４に示した回路が先の図１１の回路と異なる点は、先の２入力ＮＡＮＤゲート１３、１４を用いる代わりに、３入力ＮＡＮＤゲート１７、１８が用いられており、この両ＮＡＮＤゲート１７、１８のそれぞれ一つの入力端に前記ＮＡＮＤゲート１５、１６の出力が帰還されていることである。
【０１００】
このような構成の回路では、クロックＴＣＬＫ２（ＲＣＬＫ２）の“Ｈ”の状態でクロックＴＣＬＫ（ＲＣＬＫ）の“Ｌ”への遷移によって制御信号Ｔ２（Ｒ２）が状態を変えるので、図２５のタイミングチャートに示すような制御信号Ｔ２（Ｒ２）の変化状態を作ることができる。
【０１０１】
図２６、図２７及び図２８は、第３の実施の形態における先の図１１、図１５及び図１７にそれぞれ相当する回路の構成を示している。なお、図２６、図２７及び図２８それぞれで対応する箇所には同じ符号を付してその説明は省略する。そして、これらの各回路において、各信号の添字のｘの代わりにｏを、ｙの代わりにｅをそれぞれ付ければ、図１８に示した２分周クロックを使用する場合に対応した信号が得られる。また、添字のｘの代わりにｃを、ｙの代わりにａをそれぞれ付ければ、図２１に示した４分周クロックを使用する場合に対応する信号が得られる。
【０１０２】
なお、先の図１７の回路ではタイミングＭとして、タイミングＭｅ及びＭｏの二つを得るようにしている。これに対して、図２８の場合には、タイミングＭｙ一つを作ればよいので、一つのＳＡＤ３４のみを用いることができる。また、このＳＡＤ３４の出力側では、前記ＯＲゲート３６の代わりに、遅延時間Ｄ２を有するバッファ３９が用いられており、これに伴いＳＡＤ３４の入力側では前記ＯＲゲート３７の代わりに遅延時間Ｄ２を有するバッファ４０が用いられている。
【０１０３】
以上の説明は、この発明に係るデータ高速転送システムにおいて、コントローラが、メモリモジュールのデータバス上の位置を考慮しなくてもデータが効率良く無駄なサイクルギャップも必要なく転送できるようにする技術に関するものである。次に、データをデータバスに出力する方法について説明する。
【０１０４】
以下の説明は、第２の基本クロックＴＣＬＫ２として、例えば第１の基本クロックＴＣＬＫを２分周して得られる、第１の基本クロックＴＣＬＫの２倍の周期を持つクロックを用いる場合である。しかし、第１の基本クロックＴＣＬＫの４倍の周期を持つクロックを第２の基本クロックとして用いる場合に対しても拡張は容易なので特に説明はしない。なお、データの転送はクロックの１周期に２つのデータを転送する所謂ＤＤＲ（Double Data Rate）であるとする。
【０１０５】
図２９は、第１の基本クロックＴＣＬＫ、ＲＣＬＫ、第２の基本クロックＴＣＬＫ２、ＲＣＬＫ２及びデータの入出力を制御するための基本クロックに同期した複数の内部クロックの関係を示すタイミングチャートである。ここで、クロックＴＣＬＫの偶数サイクル及び奇数サイクルの立上がりに同期した内部クロックＴｅｕ、Ｔｏｕ、これらの内部クロックに対して位相が１８０度ずれた内部クロックＴｅｄ、Ｔｏｄ、同様にクロックＲＣＬＫに対応した内部クロックＲｅｕ、Ｒｏｕ、Ｒｅｄ、Ｒｏｄがデータの入出力を制御するために使用される。なお、基本クロックの立上がりに同期した内部クロックの発生方法については図１１、図１２、図１３及び図１４で既に説明したので、これらと１８０度位相がずれたクロックの発生方法について図３０及び図３１を参照して説明する。
【０１０６】
図３０及び図３１に示した回路の構成は図１５及び図１６のものと同様であり、入出力信号が異なるだけなので、図１５及び図１６と対応する箇所には同じ符号を付してその説明は省略する。
【０１０７】
図３０は、偶数番目（偶数サイクル）のクロックで１８０度位相がずれたクロックを作る回路であり、図３１は奇数番目（奇数サイクル）のクロックで１８０度位相がずれたクロックを作る回路である。
まず、図３０の回路における内部クロックＴｏｄの発生方法について簡単に説明する。内部クロックＴｅｕとＴｏｕは、基本クロックＴＣＬＫまたはＲＣＬＫと同位相なので、その位相差は３６０度である。図３０中のＳＡＤ３２のＦＤでは、この遅延量に相当するΔが測定される。図３０中のＳＡＤ３２の後退遅延回路（Half Backward Delay Circuit）ＨＢＤは、遅延量Δ／２を作るものである。内部クロックＴｏｕから後退遅延回路ＨＢＤを経て発生された内部クロックＴｏｄは、内部クロックＴｏｕから１８０度位相が遅れている。データの入力は基本クロックの立上がりのタイミングと、さらにこれと１８０度位相がずれたタイミングに対して、あるデータウィンドウを持って転送されてくる。従って、図３０の回路で発生されたタイミングでデータを取り込むことができる。
【０１０８】
データの出力は、このタイミングに対して、あるデータウィンドウを持たせて出力しなければならない。従って、これらのタイミングの中間のタイミングでデータを出力することが望ましく、基本クロックに対して９０度と２７０度位相がずれた内部タイミングを作ることが必要である。
【０１０９】
クロックＴＣＬＫでデータを出力する場合の、内部タイミングの発生方法を図３２のタイミングチャートに示す。内部クロックＴｅｕ、Ｔｏｕ、Ｔｅｄ、Ｔｏｄは既に発生されているものが使用される。
【０１１０】
図３２中、Ｑは出力データの状態を示しているが、データの切り替わりが内部クロックＴｅｕ、Ｔｏｕ、Ｔｅｄ、Ｔｏｄの立上がりと立ち下がりの期間の中間にあるようにする。
【０１１１】
内部クロックＴｅｕとＴｏｄとの間の遅延量が測定され、内部クロックＴｏｄからこの測定された遅延量の半分の遅延量を持つタイミングｔ１が作られれば、基本クロックの周期が２ｎＳ（周波数が５００ＭＨｚ）の場合でも、測定すべき遅延量を３ｎＳ以上にできる。この遅延量３ｎＳは極端に小さくはなく、かつ基本クロックと９０度位相差のずれたタイミングを発生させることができる。
【０１１２】
同様に、内部クロックＴｅｄとＴｅｕとの間の遅延量が測定され、内部クロックＴｅｕから、測定された遅延量の半分の遅延量を持つタイミング２が作られれば、基本クロックと２７０度位相がずれたタイミングを発生することができる。さらに、内部クロックＴｏｕからＴｅｄまでの遅延量が測定され、内部クロックＴｅｄから測定された遅延量の半分の遅延量を持つタイミングｔ３を作られれば、基本クロックと９０度位相がずれたタイミングを発生することができる。
【０１１３】
またさらに、内部クロックＴｏｄからＴｏｕまでの間の遅延量が測定され、内部クロックＴｏｕから、測定された遅延量の半分の遅延量を持つタイミングｔ４が作られれば、基本クロックと２７０度位相がずれたタイミングを発生できる。
【０１１４】
具体的にこれらのタイミングを発生する回路の構成を図３３〜図３６に示す。これらの回路の動作は基本的に図１５及び図１６の回路と同じであるので、その詳しい説明は省略する。内部クロックＴｅｕ、Ｔｅｄ、Ｔｏｕ、Ｔｏｄがそれぞれ供給される２段縦続接続された各２個のバッファ４１は、データを出力するための出力バッファに相当するものである。これら各バッファ４１は、出力バッファの遅延量に相当する遅延時間Ｄ２をそれぞれ有している。
【０１１５】
各シンクロナス・アジャスタブル・ディレイ（ＳＡＤ）４２は、それぞれ前進遅延回路ＦＤと後退遅延回路ＨＢＤとを有しており、各後退遅延回路ＨＢＤの出力であるｃｌ１、ｃｌ２、ｃｌ３、ｃｌ４は、実際のデータを出力するバッファを駆動する信号として使用される。そして、これらの信号から遅延時間Ｄ１の後に、データがデータバスに出力される。
【０１１６】
これらの具体的な説明は、後述するが、書き込みデータと読み出しデータを同時に双方向に転送できるように、電流を用いてデータ転送を行うデータバスの説明の際に合わせて行う。
【０１１７】
いままでの説明では、シンクロナス・アジャスタブル・ディレイＳＡＤの詳細な構成については述べなかったが、図３７及び図３８に、ＳＡＤの一つの具体的な内部回路の構成を示す。
【０１１８】
図３７はＳＡＤを論理ゲートレベルで表現したものであるが、図３８は図３７の回路をシンボルで表現したものである。なお、図３７及び図３８において対応する箇所には同じ符号を付してその説明は省略する。
【０１１９】
図３７中、５１は遅延時間Ｄ（Ｄ１＋Ｄ２）を有し、例えば前記図２８中のバッファ４０に相当する入力バッファであり、５２は同様の遅延時間Ｄを有し、例えば前記図２８中のバッファ３９に相当する出力バッファである。従って、上記入力バッファ５１の入力Ａは、例えば前記図２８中の信号Φｙに相当している。
【０１２０】
ＳＡＤ内には、縦続接続された２個のインバータ５３、５４と、それぞれＮＡＮＤゲート５５及びこのＮＡＮＤゲート５５の出力が一方入力端に供給されるＮＯＲゲート５６からなり、多段縦続接続された複数個の遅延ユニットＤＵ１と、それぞれＮＡＮＤゲート５７及びこのＮＡＮＤゲート５７の出力が一方入力端に供給されるＮＯＲゲート５８からなり、多段縦続接続され上記遅延ユニットＤＵ１と同数の遅延ユニットＤＵ２と、上記インバータ５３の出力と例えば前記図２８中の内部クロックＴｘｕに相当する入力Ｂとが供給されるＮＡＮＤゲート５９と、このＮＡＮＤゲート５９の出力を反転して制御信号Ｓを出力するインバータ６０と、上記インバータ６０から出力される信号Ｓとタイミングを合わせるために入力Ｂからの遅延時間が同等になるように遅延を行うパスゲート６１と、上記一方の遅延ユニットＤＵ１と他方の遅延ユニットＤＵ２との間にそれぞれ挿入された各ＮＯＲゲート６２及びＮＡＮＤゲート６３とが設けられている。
【０１２１】
ここで、多段縦続接続された複数個の遅延ユニットＤＵ１で前進遅延回路ＦＤが構成され、同様に多段縦続接続された複数個の遅延ユニットＤＵ２で後退遅延回路ＢＤが構成されている。
【０１２２】
前記各ＮＯＲゲート６２及びＮＡＮＤゲート６３からなる回路はそれぞれ、前進遅延回路ＦＤで遅延された信号を、信号Ｂのタイミングで後退遅延回路ＢＤに移す制御を行うものである。そして、各ＮＯＲゲート６２には前記制御信号／Ｓ及び対応する遅延ユニットＤＵ１内のＮＡＮＤゲート５５の出力が供給され、その出力は対応する遅延ユニットＤＵ２内のＮＯＲゲート５８に供給される。前記各ＮＡＮＤゲート６３には、前記制御信号Ｓ及び対応する遅延ユニットＤＵ１内のＮＯＲゲート５６の出力が供給され、その出力は対応する遅延ユニットＤＵ２内のＮＡＮＤゲート５７に供給されている。
【０１２３】
次に図３７の回路の動作を説明する。入力Ａとして正方向に立ち上がるパルスが入ると、このパルスは、遅延時間Ｄを経た後に、前進遅延回路ＦＤ内のそれぞれ複数のＮＡＮＤゲート５５及びＮＯＲゲート５６を交互に伝播されて行く。他方、入力Ｂには、前進遅延回路ＦＤを進行するパルスを、後退遅延回路ＢＤに対して立ち下がりのパルスとして移すタイミングを設定するためのパルスが入力される。入力Ａと入力Ｂの、パルスの立ち上がり相互間に相当する遅延時間が、前進遅延回路ＦＤを進行するパルスの立ち上がり位置（ＮＯＲゲート５６の出力の立ち上がり位置またはＮＡＮＤゲート５５の出力の立ち下がり位置）として測定され、後退遅延回路ＢＤに対してパルスの立ち上がり位置として移される。このパルスを移動させる際の移動用ゲートとなるのが前進遅延回路ＦＤと後退遅延回路ＢＤとの間に設けられているＮＯＲゲート６２とＮＡＮＤゲート６３とからなる回路である。入力Ａとして入るパルスと入力Ｂとして入るパルスが同じパルスの場合、前サイクルに前進遅延回路ＦＤに入ったパルスが先ず後退遅延回路ＢＤに移され、遅延時間Ｄを経て前進遅延回路ＦＤに入るパルスが後退遅延回路ＢＤへ移動されないように、入力Ｂから信号Ｓの経路の途中に、入力Ａのパルスとの論理をとるＮＡＮＤゲート５９が挿入されている。これにより、信号Ｓの出力が禁止される。
【０１２４】
なお、前進遅延回路ＦＤで遅延されるパルスは、各ＮＡＮＤゲート５５、ＮＯＲゲート５６のどの位置からでも後退遅延回路ＢＤ側に移ることができる。この結果、遅延時間の精度は、ＮＡＮＤゲート５５もしくはＮＯＲゲート５６の論理ゲート１個分になる。
【０１２５】
図３９、図４０及び図４１はそれぞれ、入力に対して１８０度位相がずれた信号を作る、前進遅延回路ＦＤと後退遅延回路ＨＢＤとからなるＳＡＤの詳細な回路構成を示している。図３９と図４０はそれぞれ異なる構成の詳細回路であり、図４１が両回路をシンボルで示したものである。
【０１２６】
図３９に示したシンクロナス・アジャスタブル・ディレイは、図３７のものと基本的には同じであるが、図３７の後退遅延回路ＢＤに対して遅延ユニットＤＵ２の数が半分に間引かれた後退遅延回路ＨＢＤに置き換えられている点が異なっている。従って、前進遅延回路ＦＤを伝播されたパルスは後退遅延回路ＨＢＤに移動してから半分の伝播時間で後退遅延回路ＨＢＤを伝播され、信号Ｃとして出力される。この結果、入力Ａに対して１８０度位相が遅れた信号が発生される。また、この場合、出力バッファ５２は１個のバッファ回路で構成されている。
【０１２７】
図４０のシンクロナス・アジャスタブル・ディレイは、図３９のシンクロナス・アジャスタブル・ディレイにおいて、前進遅延回路ＦＤから後退遅延回路ＨＢＤへ対してパルスが移動する際に、前進遅延回路ＦＤからのパルスの移動の位置が荒いという問題点を補う工夫を施したものである。すなわち、この例では、後退遅延回路ＨＢＤを２組設け、この２組の後退遅延回路ＨＢＤの出力のＯＲ論理またはＡＮＤ論理をとって出力することにより、遅延時間の精度を上げるようにしたものである。
【０１２８】
次に、この発明の大きな特徴の一つである、読み出し／書き込み共通のデータバスを用いて、リード／ライトデータを同時に転送するリード／ライト同時双方向データバス（R/W Concurrent Bi-Directional Data Bus、略してCBDB）について説明する。
【０１２９】
図４２は、メモリに対してデータの読み書きを同時に行う一般的なシステムの構成例を示す。図示しないコントローラから出力されるクロックに位相を同期させて、アドレスやコマンドがアドレス／コマンドバス（ Add/Command Bus）７１を通して、書き込みデータがライトデータバス（Write Data Bus）７２を通して、各メモリ７３に供給される。
【０１３０】
一方、各メモリ７３からは、コントローラに向かうクロックに合わせて、データがリードデータバス（ Read Data Bus）７４に乗せて送られる。勿論データのやり取りは選択された一つのメモリとコントローラとの間でのみ行われる。
【０１３１】
従来の電位レベル、すなわち“１”、“０”のデータを電位の高低に対応して転送するデータ転送方式では、ライトデータバスとリードデータバスを共用して、メモリとコントローラとの間でデータを双方向に転送する場合、バスを時分割的に分ける必要があった。
【０１３２】
ところが、電圧レベルの高低ではなく、電流の値及び電流が流れる方向によってデータ転送を行なうこの発明の方式では、図４３に示すようにデータバスを時分割的に分けることなしで共用できる。すなわち、図４３に示したシステムでは、図４２のシステムにおけるライトデータバス７２とリードデータバス７４の代わりに、リード／ライト同時双方向データバス（R/W Concurrent Bi-Directional Data Bus）７５が用いられる。
【０１３３】
電流の値及び電流が流れる方向によってデータ転送を行なう双方向データ転送方式は、例えば、「1997 Symposium on  VLSI Circuit 」の16-2頁に「1 Gb/s Current-Mode Bidirectional I/O buffer」として発表されている。しかし、この文献記載のものでは、データ転送を行うバスには何も接続されておらず、この発明ではこれをコントローラと複数のメモリモジュールからなるシステムに応用できるように改良したものである。
【０１３４】
図４４及び図４５は、それぞれ図１及び図２中の各メモリモジュール２及びコントローラ３内にそれぞれ設けられ、データの入出力制御を行う電流モードのデータ入出力回路の異なる構成を示している。
【０１３５】
図４４に示したデータ入出力回路はデータ出力回路部を有し、このデータ出力回路部に常にαＩの値の電流を流しておき、αＩの電流捨て流し口をオンオフする方式である。また、図４５に示したデータ入出力回路は、電流源αＩそのものをオンオフ制御する方式である。
【０１３６】
図４４の方式は、データ入出力回路で消費する電流値の、出力データに依存した変化はなく、電流のパスが切り替わるのみである。従って、ノイズが発生する原因となる電流源における電流値の変化はないが、図４５の方式のものに比べて電流消費量が大きい。これに対し、図４５の方式は、データ入出力回路に流れる電流の電流値が出力データに依存するが、電流消費量の平均値は図４４のものに比べて小さい。
【０１３７】
まず図４４の方式の回路について説明する。８１は基準電流Ｉを発生する基準電流源である。電源電圧のノードと、この基準電流源８１との間にはＰチャネルＭＯＳトランジスタＰ１とＮチャネルＭＯＳトランジスタＮ１の各ソース、ドレイン間が直列に挿入されている。この両トランジスタＰ１、Ｎ１のゲートにはイネーブル信号ＥＮＡＢＬＥがそれぞれ供給される。また、電源電圧のノードと、上記トランジスタＰ１、Ｎ１の直列接続点８２との間には、ＰチャネルＭＯＳトランジスタＰ２のソース、ドレイン間が挿入されている。このトランジスタＰ２のゲートは上記接続点８２に接続されている。さらに電源電圧のノードと端子ＤＱとの間には、２個のＰチャネルＭＯＳトランジスタＰ３、Ｐ４の各ソース、ドレイン間が並列に挿入されている。この両トランジスタＰ３、Ｐ４のゲートは上記接続点８２に接続されている。また、上記端子ＤＱと、接地電圧のノードとの間には、２個のＮチャネルＭＯＳトランジスタＮ２、Ｎ３の各ソース、ドレイン間が直列接続されている。そして、一方のトランジスタＮ２のゲートは上記端子ＤＱに接続され、他方のトランジスタＮ３のゲートには上記イネーブル信号ＥＮＡＢＬＥが供給されている。
【０１３８】
同様に、上記端子ＤＱと、接地電圧のノードとの間には、２個のＮチャネルＭＯＳトランジスタＮ４、Ｎ５の各ソース、ドレイン間が直列接続されている。そして、トランジスタＮ５のゲートには上記イネーブル信号ＥＮＡＢＬＥが供給されている。
【０１３９】
また、電源電圧のノードと、接地電圧のノードとの間には、１個のＰチャネルＭＯＳトランジスタＰ５と２個のＮチャネルＭＯＳトランジスタＮ６、Ｎ７の各ソース、ドレイン間が直列接続されている。上記トランジスタＰ５のゲートは上記接続点８２に接続され、上記トランジスタＮ６のゲートは上記端子ＤＱに接続されている。また、上記トランジスタＮ７のゲートには上記イネーブル信号ＥＮＡＢＬＥが供給されている。上記トランジスタＰ５と、Ｎ６の直列接続点には、インバータ８３の入力端が接続されている。同様に、電源電圧のノードと、接地電圧のノードとの間には、１個のＰチャネルＭＯＳトランジスタＰ６と２個のＮチャネルＭＯＳトランジスタＮ８、Ｎ９の各ソース、ドレイン間が直列接続されている。上記トランジスタＰ６のゲートは上記接続点８２に接続され、上記トランジスタＮ８のゲートは上記端子ＤＱに接続されている。また、上記トランジスタＮ９のゲートには上記イネーブル信号ＥＮＡＢＬＥが供給されている。上記トランジスタＰ６とＮ８の直列接続点にはインバータ８４の入力端が接続されている。
【０１４０】
また、電源電圧のノードと、接地電圧のノードとの間には、１個のＰチャネルＭＯＳトランジスタＰ７と２個のＮチャネルＭＯＳトランジスタＮ１０、Ｎ１１の各ソース、ドレイン間が直列接続されている。上記トランジスタＰ７のゲートは直列接続点８２に接続され、トランジスタＮ１０のゲートは上記トランジスタＰ７とこのトランジスタＮ１０との直列接続点８５に接続されている。上記トランジスタＮ１１のゲートには上記イネーブル信号ＥＮＡＢＬＥが供給されている。前記トランジスタＮ４のゲートは上記接続点８５に接続されている。さらに、上記接続点８５と、接地電圧のノードとの間には、ＮチャネルＭＯＳトランジスタＮ１２のソース、ドレイン間が接続されており、このトランジスタＮ１２のゲートには出力データＱが供給される。
【０１４１】
ここで、前記トランジスタＰ３、Ｐ４、Ｐ５、Ｐ６は、それぞれトランジスタＰ２と共にカレントミラー回路を構成している。そして、トランジスタＰ２に基準電流源８１の基準電流Ｉが流れた時に、それぞれ図示のようにＩ、αＩ、（１＋0.25α）Ｉ、（１＋0.75α）Ｉの電流が流れるように、それぞれのトランジスタのサイズが設定されている。また、データの入力時に、イネーブル信号ＥＮＡＢＬＥが“Ｈ”にされて、上記トランジスタＮ７、Ｎ９がオンする際に、両トランジスタＮ７、Ｎ９には、端子ＤＱに流れ込むレシーバ電流に比例した電流が流れる。そして、上記インバータ８３、８４は、上記トランジスタＰ５、Ｐ６に流れる電流（１＋0.25α）Ｉ、（１＋0.75α）Ｉをレファレンス電流として、トランジスタＮ７、Ｎ９に流れるレシーバ電流と比較して、データＯｌ、Ｏｈを出力する。すなわち、Ｏｌはレシーバ電流が（１＋0.25α）Ｉより多ければ“Ｈ”となり、Ｏｈはレシーバ電流が（１＋0.75α）Ｉより多ければ“Ｈ”となる。
【０１４２】
Ｑは出力するデータを表す信号であり、このデータＱが“Ｈ”のときには、トランジスタＮ１２がオンし、接続点８５が接地電圧となり、トランジスタＮ４がオフするために、電流αＩがＤＱ端子から見えるようになる。他方、データＱが“Ｌ”のときには、トランジスタＮ４、Ｎ５を介して接地電圧のノードに電流が流れるために、電流αＩは入出力回路内で流れて、ＤＱ端子からは見えなくなる。
【０１４３】
ここで、データをやり取りしている二つのデータ入出力回路それぞれ流れる電流は、基準電流源８１の電流Ｉ、トランジスタＰ３に流れる電流Ｉ、トランジスタＰ４に流れる電流αＩ、トランジスタＰ５に流れる電流（１＋0.25α）Ｉ、トランジスタＰ６に流れる電流（１＋0.75α）Ｉ、トランジスタＰ７に流れる電流αＩ及びその他の各ゲートに流れる電流の総和となる。従って、データをやり取りしている二つのデータ入出力回路で消費される電流は、データによらずに一定である。
【０１４４】
上記端子ＤＱはデータバスに直接つながっているが、電流をやり取りしている二つのデータ入出力回路端子の端子ＤＱ以外に電流のパスができてはならない。また、ＤＱ端子とデータバスとは低インピーダンスで接続されている必要があるので、その相互間にはスイッチ素子などを直列に挿入することもできない。そこで、データバスにデータを出力せずかつデータバスからデータも受け取らないデータ入出力回路では、イネーブル信号ＥＮＡＢＬＥが“Ｌ”にされる。これにより、トランジスタＮ１がオフし、基準電流源８１の基準電流ＩがトランジスタＰ２に流れなくなり、これによりトランジスタＰ３〜Ｐ６にも電流が流れなくなるので、ＤＱ端子には電流パスができなくなる。
【０１４５】
さらに、図４４のデータ入出力回路には、３個のＣＭＯＳ型のトランスファゲート８６、８７、８８が設けられている。上記トランスファゲート８６には入力として、インバータ８９を介してデータＱが供給される。このトランスファゲート８６の動作は、データＯｈが反転入力端に、データＯｌが非反転入力端にそれぞれ供給されるＮＡＮＤゲート９０及びこのＮＡＮＤゲート９０の出力を反転するインバータ９１とからなる回路の出力で制御される。上記トランスファゲート８７には入力として電源電圧（“Ｈ”）が供給される。このトランスファゲート８７の動作は、データＯｈ、Ｏｌが共に非反転入力端にそれぞれ供給されるＮＡＮＤゲート９２及びこのＮＡＮＤゲート９２の出力を反転するインバータ９３からなる回路の出力で制御される。上記トランスファゲート８８には入力として接地電圧（“Ｌ”）が供給される。このトランスファゲート８８の動作は、データＯｈ、Ｏｌが共に反転入力端にそれぞれ供給されるＮＡＮＤゲート９４及びこのＮＡＮＤゲート９４の出力を反転するインバータ９５からなる回路の出力で制御される。そして、これら各トランスファゲート８６、８７、８８の出力ノードは共通に接続され、この共通接続ノードにデータＤが得られる。
【０１４６】
すなわち、データＤは、Ｏｌ＝“Ｈ”、Ｏｈ＝“Ｌ”ならばＱを反転したものに等しく、Ｏｌ＝“Ｈ”、Ｏｈ＝“Ｈ”ならば“Ｈ”、Ｏｌ＝“Ｌ”、Ｏｈ＝“Ｌ”ならば“Ｌ”である。
【０１４７】
なお、図４４中に破線で囲んだ回路ＣＣ１の代わりに、２個のＰチャネルＭＯＳトランジスタＰ８、Ｐ９と、２個のＮチャネルＭＯＳトランジスタＮ１３、Ｎ１４と及び２個のインバータ９６、９７からなる回路ＣＣ２を用いることもできる。
【０１４８】
回路ＣＣ２における各２個のＰチャネル及びＮチャネルＭＯＳトランジスタＰ８、Ｐ９、Ｎ１３、Ｎ１４は、電源電圧のノードと、接地電圧のノードとの間に直列接続されている。上記インバータ９６には信号Ｏｈが入力され、このインバータ９６の出力が上記トランジスタＰ８、Ｎ１３の各ゲートに供給される。上記インバータ９７には信号Ｏｌが入力され、このインバータ９７の出力は上記トランジスタＰ９、Ｎ１４の各ゲートに供給される。
【０１４９】
このような回路ＣＣ２を用いても、先と同様な入力データＤを得ることができる。
【０１５０】
図４５に示したデータ入出力回路は、先にも述べたように、電流源αＩそのものをオンオフ制御する方式であり、図４４のものと異なる箇所は、トランジスタＰ４、Ｎ４、Ｎ５、Ｐ７、Ｎ１０、Ｎ１１、Ｎ１２からなる回路に代えて、基準電流Ｉを有する基準電流源９８と、４個のＰチャネルＭＯＳトランジスタＰ１０〜Ｐ１３と、１個のＮチャネルＭＯＳトランジスタＮ１５からなる回路が設けられている点であり、これ以外の回路の構成は図４４と同様である。
【０１５１】
ここで、上記トランジスタＰ１０は、電源電圧のノードと端子ＤＱとの間に挿入されている。また、上記３個のトランジスタＰ１１、Ｐ１２、Ｐ１３のソース、ドレイン間の各一端は電源電圧ノードに接続されており、これら３個のトランジスタＰ１１、Ｐ１２、Ｐ１３の各他端は共通に接続されている。上記トランジスタＮ１５のソース、ドレイン間は、上記３個のトランジスタＰ１１〜Ｐ１３の他端共通接続点と、基準電流源９８との間に挿入されている。上記トランジスタＰ１２のゲートとドレインは短絡されており、かつトランジスタＰ１０のゲートがトランジスタＰ１２のゲートとドレイン短絡点に接続されている。従って、上記両トランジスタＰ１０、Ｐ１２はカレントミラー回路を構成している。また、上記トランジスタＰ１１、Ｎ１５の各ゲートにはイネーブル信号ＥＮＡＢＬＥが供給され、上記トランジスタＰ１３のゲートにはデータＱが供給される。
【０１５２】
このような構成の入出力回路では、イネーブル信号ＥＮＡＢＬＥが“Ｈ”のとき、トランジスタＰ１１がオフし、トランジスタＮ１５がオンするので、基準電流源９８の基準電流ＩはトランジスタＰ１２及びＰ１３のいずれか一方に流れる。例えば、出力データＱが“Ｈ”のときは、トランジスタＰ１３がオフするので、基準電流ＩはトランジスタＰ１２を流れる。このとき、予めトランジスタＰ１０とＰ１２のサイズを調整しておくことにより、トランジスタＰ１０に電流αＩが流れ、この電流αＩが端子ＤＱを介してデータバスに出力される。
【０１５３】
なお、この図４５の回路の場合にも、図中に破線で囲んだ回路ＣＣ３の代わりに、図４４の場合と同様に、２個のＰチャネルＭＯＳトランジスタＰ８、Ｐ９と、２個のＮチャネルＭＯＳトランジスタＮ１３、Ｎ１４と及び２個のインバータ９６、９７からなる回路ＣＣ４を用いても、先と同様な入力データＤを得ることができる。
【０１５４】
図４４または図４５のような構成のデータ入出力回路を、コントローラ３と複数のメモリモジュール２とを有するデータ転送システムに組み込んだ場合の構成を図４６に示す。ここで、１００は前記コントローラ３に相当するコントローラであり、１０１と１０２はそれぞれ前記メモリモジュール２に相当するメモリモジュールであり、１０３はコントローラ１００及びメモリ１０１、１０２それぞれに設けられるデータ入出力回路であり、１０４はコントローラ１００及びメモリモジュール１０１、１０２それぞれに設けられているコマンドデコーダ（command dec.）であり、１０５はリード／ライト同時双方向データバス（CBDB）であり、 １０６はコマンド／アドレスバス（command/add.Bus ）である。
【０１５５】
コントローラ１００内では、イネーブル信号ＥＮＡＢＬＥ０は常に“Ｌ”にされている。このため、コントローラ１００内のデータ入出力回路１０３は常に動作可能状態にされており、コマンドデコーダ１０４からコマンド／アドレスバス１０６を通して一つのメモリモジュールが選択される。例えばメモリモジュール１０２が選択されると、この選択されたメモリモジュール１０２のイネーブル信号ＥＮＡＢＬＥ２が“Ｌ”となり、コントローラ１００と、選択されたメモリモジュール１０２とが、リード／ライト同時双方向データバス１０５を介してデータの授受を電流によりやり取りする。すなわち、このバス１０５を通して、電流 0.5αＩがどちらかの方向に流れるか、または電流が流れないかでデータが転送される。
【０１５６】
図４７は、上記バス１０５に流れる電流の電流値と電流の方向と、上記バス１０５で転送されるデータとの関係をまとめて示したものである。
【０１５７】
図４７において、自分のＱは、各メモリモジュールもしくはコントローラがコントローラもしくは各メモリモジュールに出力すべきデータを意味する。また、自分のソース電流は、端子ＤＱに接続されているトランジスタＮ２及びＮ４（図４４）またはトランジスタＰ３及びＰ１０（図４５）を介して各メモリモジュール内もしくはコントローラ内に流れる電流を意味する。また、相手のＱは、データバスを介して接続され、互いにデータの授受を行なおうとする他方のコントローラもしくは各メモリモジュールから出力すべきデータを意味する。同様に、相手のソース電流は、データバスを介して接続され、互いにデータの授受を行なおうとする他方のコントローラもしくは各メモリモジュールにおいて、端子ＤＱに接続されているトランジスタＮ２及びＮ４（図４４）またはトランジスタＰ３及びＰ１０（図４５）を介して各メモリモジュール内もしくはコントローラ内に流れる電流を意味する。合計ソース電流は、データバスを介して接続され、互いにデータの授受を行なおうとする１つのメモリモジュールとコントローラにおけるソース電流の和を意味する。バス電流は、データバスに流れる電流を意味し、バス電流の0.5 αＩin  はデータバスから入力される方向の電流であり、0.5 αＩout はデータバスへ出力される方向の電流である。レシーバ電流は、自分のソース電流とデータバスを介して流れる電流との和もしくは差の電流を意味する。
【０１５８】
図４７によれば、相手のデータＱが自分のデータＤとして転送されていることが分かる。
【０１５９】
ここで、コントローラ１００が、前記のように折り返し点の付近に配置されている場合、すなわち、メモリモジュールに対するデータ書き込み時には、クロックＲＣＬＫに同期してコントローラからメモリモジュールに対してデータが転送され、メモリモジュールからのデータ読み出し時には、クロックＴＣＬＫに同期してデータがコントローラに転送される場合の、上記リード／ライト同時双方向データバスを用いたデータ入出力回路におけるデータ転送状態を図４８のタイミングチャートに示す。
【０１６０】
図４７に従って作成されるデータＤの論理値は、種々のケースの場合にコントローラが受け取るデータまたはコントローラが出力するデータの論理値と一致していることが分かる。なお、図４８中、太線で示したデータＤの位置は、自分が出力しているデータに関係なく、Ｏｌ、Ｏｈで決まるデータＤの状態を示している。そして、このデータＤを、内部クロックＲｅｕ、Ｒｅｄ、Ｒｏｕ、Ｒｏｄに同期して内部に取り込めばよい。
【０１６１】
最後に、データ入出力回路として、図４４もしくは図４５に示すような構成のものを用いた場合に、遅延時間Ｄ２を有するバッファの具体的な回路構成について説明する。
【０１６２】
図４９の回路は、図３３〜図３６の各回路で作られるバッファ駆動信号ｃｌ１〜ｃｌ４を用いて、図３２のタイミングチャートに示すようにデータＱを順次出力していくデータ選択出力回路の構成を示している。この回路は、入力端にデータ Data1〜 Data4が供給され、出力端が共通に接続され、信号ｃｌ１〜ｃｌ４（及びそれぞれの反転信号）で制御される４個のクロックドインバータ１１１〜１１４と、入出力端が逆並列接続された２個のインバータ１１５、１１６からなり上記クロックドインバータ１１１〜１１４の出力をラッチし、データＱとして出力するラッチ回路とから構成されている。
【０１６３】
図５０は、データ入出力回路として図４４の構成のものを用いた場合に、遅延時間Ｄ２を有するバッファの１個分の具体的な回路構成を示している。この回路は、図４９の回路に相当するデータ選択出力回路部と、所定の遅延時間を有する遅延回路部とから構成されている。データ選択出力回路部は、図４９の回路中のクロックドインバータ１１１〜１１４に相当する、入力が接地電圧ノードもしくは電源電圧ノードに接続された２個のクロックドインバータ２１１、２１２と、入力を反転して上記クロックドインバータ２１１のＮチャネル側のクロックゲート（ＮチャネルＭＯＳトランジスタ）及びクロックドインバータ２１２のＰチャネル側のクロックゲート（ＰチャネルＭＯＳトランジスタ）に供給するインバータ２１３と、ラッチ回路を構成する２個のインバータ１１５、１１６に相当するインバータ２１４、２１５とから構成されている。
【０１６４】
そして、上記クロックドインバータ２１１のＰチャネル側のクロックゲート及びクロックドインバータ２１２のＮチャネル側のクロックゲートには、インバータ２１３に入力されるものと同じ信号が入力される。
【０１６５】
遅延回路部は、図４４の回路内のトランジスタＰ１、Ｐ２、Ｎ１及び基準電流源８１に相当するＰチャネルＭＯＳトランジスタＰ２１、Ｐ２２、ＮチャネルＭＯＳトランジスタＮ２１、基準電流源２１６とからなる回路と、データＱを電流値の大小に変換する回路に相当するＰチャネルＭＯＳトランジスタＰ２３〜Ｐ２５及びＮチャネルＭＯＳトランジスタＮ２２〜Ｎ２６とで構成されている。
【０１６６】
図５０に示した回路はバッファ１個分の構成なので、２個分のバッファを構成するには、図中破線で囲んだ部分の回路ＣＣ５を２個用意し、回路ＣＣ６に示すように直列接続すればよい。
【０１６７】
図５１は、データ入出力回路として図４５の構成のものを用いた場合に、遅延時間Ｄ２を有するバッファ１個分の具体的な回路構成を示している。この回路は、図４９の回路に相当するデータ選択出力回路部と、所定の遅延時間を有する遅延回路部とから構成されている。データ選択出力回路部は、上記図５０のものと同様に、２個のクロックドインバータ２１１、２１２と、インバータ２１３、２１４、２１５とから構成されている。
【０１６８】
遅延回路部は、データＱを電流値の大小に変換する回路に相当するＰチャネルＭＯＳトランジスタＰ２６〜Ｐ２８及びＮチャネルＭＯＳトランジスタＮ２７、Ｎ２８と、基準電流源２１６とで構成されている。
【０１６９】
図５１に示した回路はバッファ１個分の構成なので、２個分のバッファを構成するには、図示の回路を２個用意し、回路ＣＣ７に示すように直列接続すればよい。
【０１７０】
このようにデータバスで双方向にかつ同時にデータの転送を行なうので、データバスをリードデータバスとライトデータバスとに分ける場合と比べて、データバスの本数を少なくすることができる。さらに、メモリモジュールやコントローラのピン数を減らすことができるので、面積及び製造コスト的に有利である。
【０１７１】
【発明の効果】
以上説明したようにこの発明によれば、データバス上でデータの衝突をなくすことができ、クロックサイクルのギャップを生じることなくデータ転送を行なうことができ、また、データの読み書きが同時に同じ端子を用いて行なうことができるので、バスの配線数が少ないデータ高速転送システムを実現することができる。
【図面の簡単な説明】
【図１】この発明のデータ高速転送システムの第１の実施の形態によるブロック図。
【図２】この発明のデータ高速転送システムの第１の実施の形態によるブロック図。
【図３】図１及び図２のシステムにおいてクロック配線上の異なる二つの場所のクロックＴＣＬＫとＲＣＬＫの位相関係を示すタイミングチャート。
【図４】図１のシステムの動作手順を示すフローチャート。
【図５】図２のシステムの動作手順を示すフローチャート。
【図６】図１及び図２のシステムで第１の基本クロックＴＣＬＫとＲＣＬＫのクロック配線上の任意の位置での位相状態を示すタイミングチャート。
【図７】図１及び図２のシステムで第１の基本クロックＴＣＬＫまたはＲＣＬＫに同期して作られる偶数内部クロックＴｅｕまたはＲｅｕ、奇数内部クロックＴｏｕまたはＲｏｕを示すタイミングチャート。
【図８】図１及び図２のシステムでシンクロナス・アジャスタブル・ディレイを用いて図３中に示された中間タイミングＭを作る方法を説明するためのタイミングチャート。
【図９】図１及び図２のシステムに設けられる複数の各メモリモジュール及びコントローラの内部構成の一部を示すブロック図。
【図１０】図９の回路の一部の詳細な構成を示すブロック図。
【図１１】図１０の回路において制御信号Ｔ２，Ｒ２を発生する回路の具体的な構成を示す回路図。
【図１２】図１０の回路において内部クロックＴｏｕ、Ｒｏｕを発生する回路の具体的な構成を示す回路図。
【図１３】図１０の回路において内部クロックＴｅｕ、Ｒｅｕを発生する回路の具体的な構成を示す回路図。
【図１４】図１１の回路で発生される制御信号Ｔ２またはＲ２の位相関係を示すタイミングチャート。
【図１５】図１０の回路に設けられる内部タイミングクロックΦｏを発生する回路の回路図。
【図１６】図１０の回路に設けられる内部タイミングクロックΦｅを発生する回路の回路図。
【図１７】図１５と図１６の回路で得られる内部タイミングクロックΦｏ、Φｅを用いてタイミングＭを発生する回路の回路図。
【図１８】図１及び図２のシステムにおいて、基本クロックの偶数サイクルであるｅサイクルでのみ位相差を見てその中間のタイミングＭｅのみを用いるこの発明の第２の実施の形態による動作例を示すタイミングチャート。
【図１９】図１８の方法に基づく図１のシステムの動作の制御手順を示すフローチャート。
【図２０】図１８の方法に基づく図２のシステムの動作の制御手順を示すフローチャート。
【図２１】この発明の第３の実施の形態によるデータ高速転送システムの動作例を示すタイミングチャート。
【図２２】第３の実施の形態によるデータ高速転送システムの動作の制御手順を示すフローチャート。
【図２３】第３の実施の形態によるデータ高速転送システムの図２２とは異なる制御手順を示すフローチャート。
【図２４】上記第３の実施の形態において先の図１１の回路に相当する回路の構成を示す回路図。
【図２５】図２４の回路で作られる制御信号Ｔ２またはＲ２の位相関係を示すタイミングチャート。
【図２６】上記第３の実施の形態において先の図１２または図１３に相当する回路の構成を示す回路図。
【図２７】上記第３の実施の形態において先の図１５または図１６に相当する回路の構成を示す回路図。
【図２８】上記第３の実施の形態において先の図１７に相当する回路の構成を示す回路図。
【図２９】上記第３の実施の形態において第１の基本クロックＴＣＬＫ、ＲＣＬＫ、第２の基本クロックＴＣＬＫ２、ＲＣＬＫ２及びデータの入出力を制御するために使用される内部クロックの位相関係を示すタイミングチャート。
【図３０】上記第３の実施の形態において内部クロックＴｏｄまたはＲｏｄを発生する回路の回路図。
【図３１】上記第３の実施の形態において内部クロックＴｅｄまたはＲｅｄを発生する回路の回路図。
【図３２】上記第３の実施の形態においてクロックＴＣＬＫのタイミングでデータを出力する場合の内部タイミングの発生方法を説明するためのタイミングチャート。
【図３３】上記第３の実施の形態においてタイミング信号ｃｌ１を発生する回路の回路図。
【図３４】上記第３の実施の形態においてタイミング信号ｃｌ２を発生する回路の回路図。
【図３５】上記第３の実施の形態においてタイミング信号ｃｌ３を発生する回路の回路図。
【図３６】上記第３の実施の形態においてタイミング信号ｃｌ４を発生する回路の回路図。
【図３７】前記各実施の形態のシステムで使用されるシンクロナス・アジャスタブル・ディレイを実現する一具体的回路を示す回路図。
【図３８】図３７の回路をシンボルで表現した回路図。
【図３９】入力に対して１８０度位相がずれた信号を作るシンクロナス・アジャスタブル・ディレイを実現する他の具体的回路の回路図。
【図４０】入力に対して１８０度位相がずれた信号を作るシンクロナス・アジャスタブル・ディレイを実現する他の具体的回路の回路図。
【図４１】図３９及び図４０の回路をシンボルで表現した回路図。
【図４２】メモリに対してデータの読み書きを同時に行う一般的なデータ転送システムの構成例を示す回路図。
【図４３】データ転送に電流を用いてデータの読み書きを同時に行う、この発明に係るデータ転送システムの構成を示す回路図。
【図４４】図１及び図２中の各メモリモジュール及びコントローラに設けられ、データの入出力を行う電流モードのデータ入出力回路の構成を示す回路図。
【図４５】図１及び図２中の各メモリモジュール及びコントローラに設けられ、データの入出力を行う電流モードのデータ入出力回路の図４４とは異なる構成を示す回路図。
【図４６】図４４または図４５のデータ入出力回路を図１または図２中のコントローラと複数のメモリモジュールを有するデータ転送システムに組み込んだ場合の構成を示すブロック図。
【図４７】図４６に示すデータ転送システムにおける電流値と双方向データバスで転送されるデータとの関係をまとめて示す図。
【図４８】双方向データバスを用いたデータ入出力回路におけるデータ転送状態を示すタイミングチャート。
【図４９】図３３〜図３６の回路で作られるバッファ駆動信号を用いてデータＱを順次出力していくデータ選択出力回路の具体的な回路構成を示す回路図。
【図５０】データ入出力回路として図４４の構成のものを用いた場合の遅延時間Ｄ２を有するバッファの具体的な回路構成を示す回路図。
【図５１】データ入出力回路として図４５の構成のものを用いた場合の遅延時間Ｄ２を有するバッファの具体的な回路構成を示す回路図。
【図５２】従来のデータ転送システムの構成を示すブロック図。
【図５３】図５２の従来システムにおける動作の一例を示すタイミングチャート。
【図５４】図５２の従来システムにおける図２とは異なる動作の一例を示すタイミングチャート。
【図５５】図５２とは異なる従来のデータ転送システムの構成を示すブロック図。
【符号の説明】
１…クロック発生器（ＣＧ）、
２…メモリモジュール、
３…コントローラ、
４Ａ，４Ｂ…クロック配線、
５…データバス、
６…コマンド／アドレスバス、
１１、１２…バッファ、
１３〜１６…ＮＡＮＤゲート、
２１、２３、２５、２７…バッファ、
２２、２４…ＡＮＤゲート、
２６…シンクロナス・アジャスタブル・ディレイ（Synchronous Adjustable Delay）、
３１、３３、３９、４０、４１…バッファ、
３２、３４、３５、４２…シンクロナス・アジャスタブル・ディレイ（Synchronous Adjustable Delay）、
３６、３７、３８…ＯＲゲート。
ＦＤ…前進遅延回路（Forward Delay Circuit）、
ＢＤ…後退遅延回路（Backward Delay Circuit）、
ＨＢＤ…後退遅延回路（Half Backward Delay Circuit）、
５１…入力バッファ、
５２…出力バッファ、
５３、５４、６０…インバータ、
５５、５７、５９…ＮＡＮＤゲート、
５６、５８、６２…ＮＯＲゲート、
６１…パスゲート、
ＤＵ１、ＤＵ２…遅延ユニット、
７１…アドレス／コマンドバス（ Add/Command Bus）、
７２…ライトデータバス（Write Data Bus）、
７３…メモリ、
７５…リード／ライト同時双方向データバス（R/W Concurrent Bi-Directional Data Bus）、
８１…基準電流源、
Ｎ１、Ｎ２、Ｎ３、Ｎ４、Ｎ５、Ｎ６、Ｎ７、Ｎ８、Ｎ９、Ｎ１０、Ｎ１１、Ｎ１２、Ｎ１３、Ｎ１４、Ｎ１５…ＮチャネルＭＯＳトランジスタ、
Ｐ１、Ｐ２、Ｐ３、Ｐ４、Ｐ５、Ｐ６、Ｐ７、Ｐ８、Ｐ９、Ｐ１０、Ｐ１１、Ｐ１２、Ｐ１３…ＰチャネルＭＯＳトランジスタ、
８３、８４、８９、９１、９３、９５…インバータ、
８６、８７、８８…ＣＭＯＳ型のトランスファゲート、
９０、９２、９４…ＮＡＮＤゲート、
１００…コントローラ、
１０１、１０２…メモリモジュール、
１０３…データ入出力回路、
１０４…コマンドデコーダ（command dec.）、
１０５…リード／ライト同時双方向データバス（CBDB）、
１０６…コマンド／アドレスバス（command/add.Bus ）、
１１１〜１１４…クロックドインバータ、
１１５、１１６、２１３、２１４、２１５…インバータ、
２１１、２１２…クロックドインバータ、
Ｐ２１、Ｐ２２、Ｐ２３〜Ｐ２５…ＰチャネルＭＯＳトランジスタ、
Ｎ２１、Ｎ２２〜Ｎ２６…ＮチャネルＭＯＳトランジスタ、
２１６…基準電流源、
４０１…タイミング信号発生回路、
４０２…内部コントローラ、
４０３…カウンタ、
４０４…レイテンシイ制御回路、
５０１…内部クロックＴ２／Ｒ２発生回路、
５０２…内部クロックＴｏｕ／Ｒｏｕ発生回路、
５０３…内部クロックＴｅｕ／Ｒｅｕ発生回路、
５０４…内部クロックΦｏ／Φｅ発生回路、
５０５…タイミングＭ発生回路。
【図１】
0003719865.tif 000002
【図２】
0003719865.tif 000003
【図３】
0003719865.tif 000004
【図４】
0003719865.tif 000005
【図５】
0003719865.tif 000006
【図６】
0003719865.tif 000007
【図７】
0003719865.tif 000008
【図８】
0003719865.tif 000009
【図９】
0003719865.tif 000010
【図１０】
0003719865.tif 000011
【図１１】
0003719865.tif 000012
【図１２】
0003719865.tif 000013
【図１３】
0003719865.tif 000014
【図１４】
0003719865.tif 000015
【図１５】
0003719865.tif 000016
【図１６】
0003719865.tif 000017
【図１７】
0003719865.tif 000018
【図１８】
0003719865.tif 000019
【図１９】
0003719865.tif 000020
【図２０】
0003719865.tif 000021
【図２１】
0003719865.tif 000022
【図２２】
0003719865.tif 000023
【図２３】
0003719865.tif 000024
【図２４】
0003719865.tif 000025
【図２５】
0003719865.tif 000026
【図２６】
0003719865.tif 000027
【図２７】
0003719865.tif 000028
【図２８】
0003719865.tif 000029
【図２９】
0003719865.tif 000030
【図３０】
0003719865.tif 000031
【図３１】
0003719865.tif 000032
【図３２】
0003719865.tif 000033
【図３３】
0003719865.tif 000034
【図３４】
0003719865.tif 000035
【図３５】
0003719865.tif 000036
【図３６】
0003719865.tif 000037
【図３７】
0003719865.tif 000038
【図３８】
0003719865.tif 000039
【図３９】
0003719865.tif 000040
【図４０】
0003719865.tif 000041
【図４１】
0003719865.tif 000042
【図４２】
0003719865.tif 000043
【図４３】
0003719865.tif 000044
【図４４】
0003719865.tif 000045
【図４５】
0003719865.tif 000046
【図４６】
0003719865.tif 000047
【図４７】
0003719865.tif 000048
【図４８】
0003719865.tif 000049
【図４９】
0003719865.tif 000050
【図５０】
0003719865.tif 000051
【図５１】
0003719865.tif 000052
【図５２】
0003719865.tif 000053
【図５３】
0003719865.tif 000054
【図５４】
0003719865.tif 000055
【図５５】
0003719865.tif 000056