JP3719865B2 - High-speed data transfer system - Google Patents

High-speed data transfer system Download PDF

Info

Publication number
JP3719865B2
JP3719865B2 JP01172599A JP1172599A JP3719865B2 JP 3719865 B2 JP3719865 B2 JP 3719865B2 JP 01172599 A JP01172599 A JP 01172599A JP 1172599 A JP1172599 A JP 1172599A JP 3719865 B2 JP3719865 B2 JP 3719865B2
Authority
JP
Japan
Prior art keywords
clock
cycle
timing
circuit
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP01172599A
Other languages
Japanese (ja)
Other versions
JPH11353268A (en
Inventor
春希 戸田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP01172599A priority Critical patent/JP3719865B2/en
Publication of JPH11353268A publication Critical patent/JPH11353268A/en
Application granted granted Critical
Publication of JP3719865B2 publication Critical patent/JP3719865B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Dram (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、複数のメモリモジュールと、これら複数のメモリモジュールにおけるデータの読み出し書き込み動作を制御するコントローラとを有し、複数の各メモリモジュール及びコントローラ相互で同期型データ転送を行なうデータ転送システムに関する。
【0002】
さらに、この発明は、特に、クロックの伝播遅延差によって生じるデータバス上の空きサイクルを無くし、書き込みデータと読み出しデータの両方を同じバスで同時に転送することによって、データ転送効率を格段に向上させる技術に関する。
【0003】
【従来の技術】
制御システムで使用されるマイクロ・プロセッサ・ユニット(MPU)の性能が向上し、それに伴って、制御システムで使用されるICメモリの容量も256Mビット、1Gビットと増大している。このような状況において、大量のデータを如何に効率良く転送するかということが益々重要になってきている。
【0004】
米国特許第 5,432,823号公報には、高速なデータ転送を実現するデータ転送システムが開示されている。
【0005】
図52は、この米国特許第 5,432,823号公報に開示されているデータ転送システムの概略的なブロック図を示している。このシステムには、クロック発生器(CG)301と、複数のメモリモジュール302と、1個のコントローラ303とが設けられている。複数のメモリモジュール302と、1個のコントローラ303は並列に配列されている。また、これら複数のメモリモジュール302とコントローラ303の配列に沿って、往復するようにクロック配線304が設けられている。さらに、複数のメモリモジュール302とコントローラ303の配列に沿ってデータバス305が設けられている。
【0006】
クロック発生器301によってクロックが作られる。このクロックは、クロック配線304の往路部分を経由して複数のメモリモジュール302及びコントローラ303にクロックTCLKとして順次転送される。クロック配線304の往路部分から復路部分への折り返し地点を経た後、先のクロックは、クロックRCLKとしてコントローラ303及び複数のメモリモジュール302の配列に対し、往路部分とは逆方向に転送され、最終的にクロック発生器301の近くの位置まで転送される。この場合、コントローラ303は折り返し地点に近いところに配置されている。
【0007】
また、複数のメモリモジュール302とコントローラ303との間のデータの授受は、データバス305を介して行われる。
【0008】
一般に、クロックに同期した制御を行う場合、クロックの伝播遅延が存在するために、異なる場所のメモリモジュールと、コントローラとの間でデータをやり取りするには、この伝播遅延を予め考慮しておかないと、データバス上でデータの衝突が起こる。
【0009】
図52の従来システムでは、これをコントローラ303及び複数の各メモリモジュール302でクロックTCLK、RCLKをモニタし、以下のように対処することによってデータバス上でデータの衝突を避けるようにしている。
【0010】
すなわち、図53のタイミングチャートに示すように、クロック配線304の折り返し地点の付近ではクロックTCLKとRCLKの位相は一致する。これに対して、クロック発生器301の近くでは両クロックの位相がずれ、クロックTCLKに対してクロックRCLKが遅れる。そこで、両クロックTCLK、RCLKの中間のタイミングAを取ると、このタイミングAはクロック配線304上の位置に依存せず、常にその位置でクロックTCLKとRCLKとの中間タイミングとなる。従って、この中間タイミングAとクロックTCLK、RCLKとの位相差を各メモリモジュール302やコントローラ303が考慮してデータ転送を行えば、データバス305でのデータの衝突を避けることができる。
【0011】
【発明が解決しようとする課題】
しかし、さらにデータ転送効率を上げるため、より周期の短い(周波数の高い)クロックを使用したり、システムのメモリ容量を増やすために多くのメモリモジュールを接続した結果データバス長が長くなると、クロックの伝播遅延がクロックの1周期以上になることが起こる。
【0012】
この場合、図54のタイミングチャートに示すように、本来、必要とするクロックTCLKとRCLKの中間タイミングであるタイミングBは得られず、誤ったタイミングAが得られる。例えば、コントローラ303がクロック発生器301の付近に配置される場合、クロックTCLKがクロック配線304を転送されて1周期以上遅れ、図中のクロックTCLKの立ち上がりタイミングt1に対応するクロックRCLKの立ち上がりタイミングがt3となったとする。このとき、単純にクロックTCLKとRCLKの中間タイミングを取ると、タイミングt1とこのタイミングt1の直後にクロックRCLKが立ち上がるタイミングとの間の中間タイミングAがとられるために、タイミングAは誤ったタイミングとなる。この場合の正しい中間タイミングBは、タイミングt1とタイミングt3との間のタイミングt2である。
【0013】
このように、クロックTCLKとRCLKの関係を用いただけでは、クロックTCLK、RCLK相互間にクロックの1周期以上の位相ずれが生じたか否かの判定ができず、誤った中間タイミングが得られる。
【0014】
また、データバスは、メモリモジュールからの読み出しデータ、メモリモジュールへの書き込みデータの双方の転送に利用される。しかし、一般にはデータの“1”、“0”を電位レベルの高低で表現しているために、読み出しデータと書き込みデータの両データの転送を時間的に明確に分ける必要がある。このため、両者のデータ転送を同時に行い、データ転送効率を一気に倍近くに上げようとするためには、図55に示すようにデータバス(DATA BUS)をリードデータバス(READ DATA BUS)306とライトデータバス(WRITE DATA BUS)307とに分ける必要がある。
【0015】
しかし、こうすると、データバスの配線本数が倍に増えるので、メモリモジュールやコントローラのピン数が倍増し、面積コスト的に損をすることになる。
【0016】
この発明は上記のような事情を考慮してなされたものであり、その目的は、データバスの配線本数を増やさずにデータ転送を高速に行うことができるデータ高速転送システムを提供することである。
【0017】
【課題を解決するための手段】
この発明によれば、複数のメモリモジュールと、上記複数のメモリモジュールと共に配列され、上記複数のメモリモジュールとの間でデータの授受を行うコントローラと、第1基本クロック及びこの第1基本クロックの周期のn倍(nは2及び4のいずれか一方の値)の周期を有する第2基本クロックを発生するクロック発生器と、上記配列された複数のメモリモジュール及びコントローラに沿って往復するように往路部分及び復路部分の配線をそれぞれ有し、上記クロック発生器で発生される上記第1及び第2基本クロックが上記各往路部分の先端からそれぞれ入力され、この入力された第1及び第2基本クロックをそれぞれ順次転送し、各往路部分及び各復路部分の配線を転送される第1及び第2基本クロックを上記複数のメモリモジュール及びコントローラに対し、これら複数のメモリモジュール及びコントローラがデータ授受の際に使用する同期信号として与える2本のクロック配線と、上記複数の各メモリモジュール内及びコントローラ内にそれぞれ設けられ、上記2本のクロック配線の各往路部分から与えられる行きの第1及び第2基本クロックと、上記2本のクロック配線の各復路部分から与えられる帰りの第1及び第2基本クロックとを受けて、行きの第1基本クロックと帰りの第1基本クロックとの間に生じる第1基本クロックの周期のn倍(nは2及び4のいずれか一方の値)の周期以内の位相ずれに対して、その中間タイミングを検出する中間タイミング検出回路を含む制御回路とを具備したデータ高速転送システムが提供されている。
【0018】
また、この発明によれば、複数のメモリモジュールと、上記複数の各メモリモジュールとの間でデータの授受を行うコントローラと、上記複数のメモリモジュールとコントローラとを接続するデータバスとを具備し、上記複数の各メモリモジュール及びコントローラはそれぞれ、授受データに応じて上記データバスに流れる電流の値及び電流の方向を異ならせるデータ入出力回路を有するデータ高速転送システムが提供されている。
【0019】
【発明の実施の形態】
以下、図面を参照してこの発明を実施の形態により説明する。
【0020】
図1及び図2は、この発明の第1の実施の形態によるデータ高速転送システムの全体の構成を示すブロック図である。
【0021】
図1のシステムには、クロック発生器(CG)1、複数のメモリモジュール2、1個のコントローラ3、2本のクロック配線4A,4B及びデータバス5が設けられている。複数のメモリモジュール2と1個のコントローラ3は並列に配列されている。また、これら複数のメモリモジュール2とコントローラ3の配列に沿って、往復するように上記2本のクロック配線4A、4Bが配置されている。さらに、複数のメモリモジュール2とコントローラ3の配列に沿って上記データバス5及びコマンド/アドレスバス6が設けられている。
【0022】
クロック発生器1は、本来のデータ転送をコントロールするための第1の基本クロックTCLKと、この第1の基本クロックの2倍の周期を持つ第2の基本クロックTCLK2とを出力する。この第1、第2の基本クロックTCLK、TCLK2は、上記2本のクロック配線4A、4Bの往路部分の先端部から入力され、そして往路部分を経由して、複数のメモリモジュール2とコントローラ3の配列に沿って順次転送される。往路部分から復路部分への折り返し地点を経た後、先の第1、第2の基本クロックは、クロックRCLK、RCLK2としてコントローラ3と複数のメモリモジュール2とからなる配列に対し、往路部分とは逆方向に順次転送され、最終的にクロック発生器1の近くの位置まで転送される。
【0023】
上記2本のクロック配線4A、4B上を伝播する往路部分の第1、第2の基本クロックTCLK、TCLK2及び復路部分の第1、第2の基本クロックRCLK、RCLK2は、複数のメモリモジュール2及びコントローラ3に取り込まれる。複数のメモリモジュール2及びコントローラ3は、これら取り込んだクロックに同期してそれぞれのデータの入出力動作が制御される。
【0024】
上記複数のメモリモジュール2とコントローラ3はデータバス5に接続されている。このデータバス5は、書き込みデータと読み出しデータを同時に双方向に転送できるように、所定の値の電流を流すことによってデータ転送を行う。また、データ転送の際には、コントローラ3からアドレス及びコマンドが出力される。このアドレス及びコマンドは、アドレス/コマンドバス6を介して複数のメモリモジュール2に入力する。
【0025】
図1では、コントローラ3が折り返し地点の付近に配置されている場合を示しているが、必ずしもそのように配置する必要は無く、図2に示すように、コントローラ3がクロック発生器1の付近に配置されていてもよい。
【0026】
このような構成のシステムにおいて、上記クロックがクロック配線4A上を転送される際に、往路部分におけるクロックTCLKと、復路部分におけるクロックRCLKとの間の位相差が360度*2の範囲内、つまりクロックTCLKの2周期以内の範囲でずれたとしても、データバス上でデータの衝突を起こさずに、かつギャップが発生すること無くデータの転送を行うことができるかについて説明する。そのためには、互いに位相がずれたクロックTCLKとRCLKとの間の中間タイミングMを設定すればよい。この中間タイミングMを設定することにより、対応する周期のクロックTCLKとRCLKとを関連付けることができ、それによりデータバス上で位置の異なるメモリモジュールが、データバス上でデータの衝突を起こさずにかつデータ転送のギャップが無くデータの転送を行うことができる。なお、中間タイミングMを設定するための具体的な方法及び回路については後に詳述する。
【0027】
図3に、クロック配線4A、4B上の異なる二つの場所におけるクロックTCLKとRCLKの位相関係を示す。同じクロックサイクルにおける往路部分におけるクロックTCLKの立上がりタイミングAの位置は、復路部分ではクロックRCLKの立上がりタイミングBの位置に対応している。クロック配線4A、4B上の折り返し点に近い場所と遠い場所とで、それぞれの場所のクロックTCLKを基準にしてみれば、タイミングA、M、B相互の位相関係は、図3に示したようになる。
【0028】
先に述べたように、コントローラ3が、図1に示すように折り返し点の付近に置かれる場合と、図2に示すようクロック発生器1の付近に置かれる場合とがある。
【0029】
コントローラ3が折り返し点の付近に置かれる場合、複数のメモリモジュール2からコントローラ3の方向に転送されるクロックは往路部分を伝送されるクロックTCLKであり、逆にコントローラ3から複数のメモリモジュール2の方向に転送されるクロックは復路部分を伝送されるクロックRCLKである。そこで、コントローラ3は、往路部分に転送されるクロックTCLKを受けた後に、メモリモジュール2に対するアクセス(アドレス/コマンドの出力等)を開始する。他方、各メモリモジュール2は、復路部分に転送されるクロックRCLKを受けた後に、データの出力動作を開始する。すなわち、各メモリモジュール2が、クロックRCLKの立上がりタイミングであるタイミングBで受けたアドレス/コマンドに対して、クロックTCLKの立上がりタイミングであるタイミングAを起点にして、データをクロックTCLKに同期してデータバス5に出力すれば、データのバスでの衝突は起きないし、コントローラ3が受け取るデータに空きサイクルが生じることもない。これについては、後程、図4及び図5のフローチャートを用いて説明する。
【0030】
一方、各メモリモジュール2は、タイミングBでアドレス/コマンドを受け、タイミングAから一定のクロックサイクルの後、所謂レイテンシイ(latency)の後にデータをデータバス5に出力する。その場合、各メモリモジュール2は、一連のデータを出し終わり、新たなデータ出力サイクルを始める際に、そのレイテンシイを設定するために、カウンタによってクロックTCLKをそのレイテンシイに応じた数だけカウントする必要がある。後述するが、各メモリモジュール2にはレイテンシイを設定するためのカウンタが設けられており、そのカウンタの動作を制御するための制御手順について、以下に図4を参照して説明する。
(1) まず、タイミングMの直後に、カウンタで、サイクル数のカウントが可能状態に設定される(ステップS1)。
(2) 次に、タイミングMの直後から入力するクロックTCLKの立上がり及び立ち下がりに同期して、カウンタでサイクル数がカウントされる(ステップS2)。
(3) タイミングMの直後に入力するクロックRCLKに同期して取り込またれたコマンドが新たなサイクル数カウントコマンドかどうかが判定される(ステップS3)。このとき、新たなサイクル数カウントコマンドであれば、この後、ステップS2に戻り、再びクロックTCLKの立上がり及び立ち下がりに同期して、レイテンシイを設定するために必要な数だけクロックTCLKがカウンタでカウントされる。
(4) 一方、ステップS3で、タイミングMの直後に入力するクロックRCLKに同期して取り込まれたコマンドが、コマンドが無い状態も含めて新たなサイクル数カウントコマンドでなければ、カウントがリセットされ、カウント可能状態が解除され、カウント動作が不活性にされる(ステップS4)。
【0031】
上記の制御手順でクロックTCLKのサイクルを、クロックRCLKに同期してコマンドを受けた後にカウントすれば、折り返し点の近くに配置されたメモリモジュール2でもクロック発生器1の近くに配置されたメモリモジュール2でも、タイミングAから同じレイテンシイで、データをクロックTCLKに同期してデータバス5に出力することが出来る。
【0032】
例えば、各メモリモジュール2がダブル・データ・レート(DDR:Double Data Rate)でデータを出力するものとし、かつレイテンシイが2である場合、クロックTCLKのタイミングA1に対応するコマンドがクロックRCLKのタイミングB1で、あるメモリモジュール2に取り込まれたとする。このコマンドを受けてこのメモリモジュール2は、タイミングA1の後にクロックTCLKが始めて立ち上がるタイミングt1から数えてクロックTCLKが2回変化した後、すなわちクロックTCLKのタイミングt2の後にデータを出力する。次に、クロックTCLKのタイミングt1(タイミングA2)に対応するコマンドがクロックRCLKのタイミングB2で、別のメモリモジュール2に取り込まれたとする。このコマンドを受けてこのメモリモジュール2は、タイミングA2の後にクロックTCLKが始めて立ち上がるクロックTCLKのタイミングt3から数えてクロックTCLKが2回変化した後、すなわちクロックTCLKのタイミングt4の後にデータを出力する。
【0033】
このようにしてデータの読み出しが行なわれると、読み出しデータのバス上での衝突は起きず、コントローラ3が受け取るデータに空きサイクルが生じることもない。
【0034】
これによって、コントローラ3が、コマンドを出力し、このコマンドに対応するデータを受け取るという動作を行なう場合に、複数のメモリモジュール2のデータバス5上での位置の差の影響は全くなくなる。
【0035】
次に、コントローラ3が、図2に示すように、クロック発生器1の近くに置かれる場合を説明する。この場合、コントローラ3から複数のメモリモジュール2の方向に転送されるクロックは往路部分を転送されるクロックTCLKであり、逆に複数のメモリモジュール2からコントローラ3の方向に転送されるクロックは復路部分を転送されるクロックRCLKである。コントローラ3は往路部分を転送されるクロックTCLKを受けた後に、メモリモジュール2に対するアクセス(アドレス/コマンドの出力等)を開始する。また、各メモリモジュール2は、クロックTCLKの立上がりタイミングであるタイミングAで受けたコマンドに対して、クロックRCLKの立上がりタイミングであるタイミングBを起点にして、データをクロックRCLKに同期してデータバス5に出力すれば、データのバスでの衝突は起きないし、コントローラ3が受け取るデータに空きサイクルが生じることもない。
【0036】
各メモリモジュール2は、一連のデータを出し終わり、新たなデータ出力サイクルを始める際に、レイテンシイを設定するために、カウンタによってクロックRCLKをレイテンシイに応じた数だけカウントする必要がある。このカウンタの動作を制御するための制御手順について、以下、図5を参照して説明する。
(1) 各メモリモジュール2で、クロックTCLKに同期してコマンドが取り込まれる(ステップS11)。
(2) ステップS11で取り込まれたコマンドが新たなサイクル数カウントコマンドであるかどうかが判断される(ステップS12)。
(3) ステップS12で、新たなサイクル数カウントコマンドであると判断されれば、この直後のタイミングMに、カウンタでサイクル数カウントが可能状態にされ、タイミングMの直後から入力するクロックRCLKの立上がり及び立ち下がりに同期して、レイテンシイを設定するために必要な数だけクロックRCLKがカウンタでカウントされる(ステップS13)。
【0037】
例えば、先の場合と同様に、各メモリモジュール2がDDRでデータを出力するものとし、かつレイテンシイが2である場合、コントローラ3から出力されたコマンドが、クロックTCLKのタイミングA1で、あるメモリモジュール2に取り込まれたとする。このコマンドを受けて、このメモリモジュール2は、タイミングA1の後にクロックRCLKが始めて立ち上がるタイミングt5から数えてクロックRCLKが4回変化した後、すなわちクロックRCLKのタイミングt8の後にデータを出力する。次に、クロックTCLKのタイミングA2で、コントローラ3から出力されたコマンドが、別のメモリモジュール2に取り込まれたとする。このコマンドを受けて、このメモリモジュール2は、タイミングA2の後にクロックRCLKが始めて立ち上がるタイミングt7から数えてクロックRCLKが4回変化した後、すなわちクロックRCLKのタイミングt10の後にデータを出力する。
【0038】
このようにしてデータの読み出しが行なわれると、データのバスでの衝突は起きず、コントローラ3が受け取るデータに空きサイクルが生じることもない。
【0039】
一方、コントローラ3側でも、クロックTCLKのタイミングA(例えば、図3中のタイミングA1)とクロックRCLKのタイミングB(例えば、図3中のクロックRCLKのタイミングB1)が、中間タイミングMの存在により同じサイクルのクロックTCLKとクロックRCLKとして対応づけられている。このため、コントローラ3がコマンドを出して、対応するデータを受け取るという動作を行なう際に、メモリモジュールのバス上の位置の差の影響はなくなる。
【0040】
次にメモリモジュール2やコントローラ3で上記中間タイミングMを設定するための具体的な方法及び回路について説明する。
【0041】
図1及び図2に示したように、第1の基本クロックTCLK、RCLKと第2のクロックTCLK2、RCLK2とが、クロック配線4A、4B上を転送され、各メモリモジュール2とコントローラ3とに供給される。
【0042】
図6は、クロック配線4A、4B上の、ある位置での、クロックTCLK、RCLK、TCLK2、RCLK2の位相状態を示している。図示のように、例えば上向きの矢印で示したサイクルが、折り返し点の前後で対応するサイクル、すなわち上向きの矢印で示した信号が互いに同一サイクルの信号である。第1の基本クロックTCLK、RCLKに対してそれぞれ2倍の周期を有する第2の基本クロックTCLK2、RCLK2が転送されるので、メモリモジュール2やコントローラ3が受け取る第1の基本クロックTCLK、RCLKを、偶数サイクルのクロックと奇数サイクルのクロックとに分けることが出来る。なお、ここでは便宜上、図6中の0、2、4、…番目のクロックを偶数サイクルクロックと称し、同様に1、3、5、…番目のクロックを奇数サイクルクロックと称する。
【0043】
上記クロックTCLK、RCLK、TCLK2、RCLK2から各種内部クロックが作られるが、以後、偶数サイクルクロックに関係した各内部クロックにはe、奇数サイクルクロックに関係した各内部クロックにはo、基本クロックの立ち上がりに同期した各内部クロックにはu、立ち上がり周期に180度位相がずれたタイミングに同期した各内部クロックにはdという添え字をそれぞれ付けて表す。
【0044】
図7は、クロックTCLKまたはRCLKに同期して作られた偶数サイクルの内部クロックTeuまたはReu、奇数サイクルの内部クロックTouまたはRouの位相関係を示す。これらの内部クロックが各メモリモジュール2やコントローラ3内でそれぞれ作られるならば、これらを用いて先のタイミングMを、各メモリモジュール2内のメモリチップまたはコントローラ3内のコントローラチップでそれぞれ作ることができる。
【0045】
タイミングMは、内部クロックTouまたはクロックTCLKのいずれかのサイクル(これを例えばCLK1と称する)に対して、δだけ遅れた内部クロックRouまたはクロックRCLKのいずれかのサイクル(これを例えばCLK2と称する)が存在するときに、CLK1からδ/2だけ遅れたタイミングに相当している。このタイミングMは以下のような方法で作られる。
【0046】
ます、CLK1またはCLK2の2周期の期間2τと、CLK2のCLK1に対する遅れ(δ)との間の位相差(2τ−δ)を生成する。次に、この位相差(2τ−δ)の半分の期間(τ−δ/2)だけ遅れたタイミングをCLK1から作る。そして、このタイミングからあるCLK1サイクルまでの遅れ(τ+δ/2)を生成し、この遅れだけ上記のあるCLK1サイクルから遅れたタイミングを作り、このタイミングをCLK1に対してδ/2遅れたタイミングとする。
【0047】
次に、シンクロナス・アジャスタブル・ディレイ(Synchronous Adjustable Delay、略してSAD)と称される回路を用いて上記タイミングMを作る具体的な方法を、図8を用いて説明する。このシンクロナス・アジャスタブル・ディレイについては、本発明者による日本国特許出願、特願平9-100490号の明細書及び図面で詳しく述べられているが、その具体的構成については後に詳述する。
【0048】
クロックTCLKが、図1及び図2中のクロック配線4Aの折り返し点を経由してクロックRCLKとして復路部分側に転送されていくことにより、クロックTCLKとRCLKとの間にδなる位相差が生じたとする。この位相差δは、0から(360*2)度の範囲内、つまりクロックTCLKの2周期以内であるとする。
【0049】
図8中に示されるクロックを偶数サイクルクロックeと奇数サイクルクロックoに区別している。図8では、上向きの矢印の付いた偶数サイクルクロックの立上がりタイミングから、対応した中間タイミングMeが作られる様子を示している。なお、奇数サイクルクロックの場合にも同様に考えることが出来るので、その説明は省略する。
【0050】
まず内部クロックRouが立ち上がるタイミングt1から始まる。シンクロナス・アジャスタブル・ディレイを用いて、内部クロックRouの立上がりから、その直後に発生する内部クロックTouの立上がりまでの遅延量を、内部クロックTouが立ち上がるタイミングt2で測定する。次に、この遅延量の半分の遅延時間の後に、内部クロックΦeをタイミングt3で発生する。基本クロックの周期をτとすれば、内部クロックRouとTouとの間の遅延量は2τ−δであるから、t2とt3のタイミングの間の期間すなわち内部クロックTouとΦeとの間の遅延量はτ−δ/2となる。さらにシンクロナス・アジャスタブル・ディレイを用いて、内部クロックΦeの立上がりタイミングからその直後の内部クロックTouの立上がりタイミングまでの間の遅延量を、内部クロックTouの立上がりタイミングt4で測定する。そして、この遅延量と同じ遅延時間の後に、内部クロックMeをタイミングt5で発生する。タイミングt2からt4までの間の遅延量は、内部クロックTouの1周期に等しく、2τであるから、タイミングt3からt4までの間の遅延量、すなわち内部クロックΦeとTouの間の遅延量は、タイミングt2からt4までの間の遅延量から、タイミングt2からt3までの間の遅延量を引いてτ+δ/2となり、タイミングt4からt5までの間の遅延量もこれに等しくτ+δ/2となる。
【0051】
従って、内部クロックTouの立上がりからτ+δ/2だけ位相がずれた内部クロックMeのタイミングは、内部クロックTeuの立上がりからδ/2だけ位相がずれたタイミングとなり、内部クロックMeが立ち上がるタイミングが、求める内部クロックTeuとReuの中間タイミングとなる。
【0052】
このように基本クロックの5サイクル分の期間で、必要な中間タイミング信号が得られる。図8中及び上記説明で使用したクロックに対する添え字eをoに替えれば、内部クロックTouの立上がりからδ/2だけ位相がずれた立上がりタイミングを有する中間タイミング信号Moが得られる。そして、中間タイミング信号MeとMoを合成すれば、図3中に示される中間タイミング信号Mが得られる。
【0053】
図9は、図1及び図2中の複数のメモリモジュール2及びコントローラ3内にそれぞれ設けられ、上記タイミング信号Mを発生すると共に、この発生されたタイミング信号Mに基づいて先のサイクル数をカウントするカウンタ及びこのカウンタのカウント出力に基づいてレイテンシイを設定する回路を含む制御回路の構成を示している。この制御回路は、クロックTCLK、RCLK、TCLK2、RCLK2を受けて、先のタイミング信号Mを発生するタイミング信号発生回路401と、クロックTCLK、RCLK、TCLK2、RCLK2、先のコントローラ3から出力されるコマンド及び上記タイミング信号発生回路401から出力されるタイミング信号Mを受け、先の図4及び図5に示した制御手順を実現し、その結果としてカウンタのセット/リセット信号を発生する内部コントローラ402と、上記内部コントローラ402で発生されるセット/リセット信号を受け、クロックTCLKまたはRCLKをカウントしてサイクル数カウントを行なうカウンタ403と、このカウンタ403のカウント出力Nを受けてレイテンシイの設定を行なうレイテンシイ制御回路404とを有する。
【0054】
なお、レイテンシイ制御回路404の出力は図示しないデータ入力/出力回路に送られ、このデータ入力/出力回路でデータの入力/出力制御が行なわれる。
【0055】
図10は、タイミング信号Mを発生する図9中のタイミング信号発生回路401の詳細なブロック図である。図10において、内部クロックT2/R2発生回路501は、クロックTCLK/RCLKとクロックTCLK2/RCLK2を受け、内部クロックT2/R2を発生する。内部クロックTou/Rou発生回路502は、クロックTCLK/RCLKとクロックTCLK2/RCLK2及び内部クロックT2/R2を受け、内部クロッククロックTou/Rouを発生する。内部クロックTeu/Reu発生回路503は、クロックTCLK/RCLKとクロックTCLK2/RCLK2及び内部クロックT2/R2を受け、内部クロッククロックTeu/Reuを発生する。内部クロックΦo/Φe発生回路504は、内部クロックTou/RouとTeu/Reuを受け、内部クロックΦo/Φeを発生する。
【0056】
タイミングM発生回路505は、内部クロックTou/RouとTeu/Reu及び内部クロックΦo/Φeを受け、タイミングM(Me及びMo)を発生する。
【0057】
次に、図10中の各回路のより詳細な構成及びその動作について、以下に説明する。
【0058】
図11は、基本クロックの偶数サイクルと奇数サイクルを分けるための制御信号T2またはR2を発生する、図10中の制御信号T2/R2発生回路501の具体的な構成を示している。制御信号T2発生回路と制御信号R2発生回路の基本的な構成は同じであリ、入力信号のみが異なるだけである。
【0059】
この回路は、クロックTCLKもしくはRCLKが入力されるバッファ11と、クロックTCLK2もしくはRCLK2が入力される縦続接続された奇数段(本例では3段)のバッファ12と、4個のNANDゲート13〜16とから構成されている。
【0060】
すなわち、バッファ11の出力は、NANDゲート13の反転入力端に入力されると共に、NANDゲート14の一方の反転入力端に入力される。縦続接続された3段のバッファ12のうちの後段のバッファ12の出力は、NANDゲート13の非反転入力端とNANDゲート14の他方の反転入力端にそれぞれ供給される。上記NANDゲート13の出力は、NANDゲート15の一方の入力端に供給され、上記NANDゲート14の出力は、NANDゲート16の一方の入力端に供給され、上記NANDゲート15、16の他方の入力端は互いに異なるNANDゲートの出力端に接続されている。
【0061】
すなわち、図11に示した回路では、2個のNANDゲート15、16からなるフリップフロップによって、基本クロックの偶数クロックと奇数クロックを分けるための制御信号T2またはR2が作られる。
【0062】
制御信号T2/R2は、図14のタイミングチャートに示すように、第2の基本クロックTCLK2(RCLK2)が“H”のときに第1の基本クロックTCLK(RCLK)が“H”から“L”へ変化する遷移時に“H”となり、第2の基本クロックTCLK2(RCLK2)が“L”のときに第1の基本クロックTCLK(RCLK)が“L”から“H”へ変化する遷移時に“L”となる。
【0063】
図12は、内部クロックTouまたはRouを発生する、図10中の内部クロックTou/Rou発生回路502の詳細な構成を、図13は、内部クロックTeuまたはReuを発生する、図10中の内部クロックTeu/Reu発生回路503の詳細な構成をそれぞれ示している。内部クロックTou発生回路と内部クロックRou発生回路の基本的な構成は同じであリ、入力信号のみが異なるだけである。
【0064】
図12の回路において、第1の基本クロックTCLKもしくはRCLKは、バッファ21を介してANDゲート22の一方の入力端に供給される。このANDゲート22の他方の入力端には図11の回路で作られる信号T2またはR2が供給される。上記ANDゲート22の出力はバッファ23を介してANDゲート24の一方の入力端に供給される。このANDゲート24の他方の入力端には高レベルの論理信号“H”が常時供給されている。上記ANDゲート24の出力は、バッファ25を介してシンクロナス・アジャスタブル・ディレイ(Synchronous Adjustable Delay)26の前進遅延回路(Forward Delay Circuit)FDに供給される。また、ANDゲート22の出力は、制御クロックとして上記SAD26に供給される。上記SAD26には、上記前進遅延回路FDの他に後退遅延回路(Backward Delay Circuit)BDが設けられている。
【0065】
シンクロナス・アジャスタブル・ディレイ26の前進遅延回路FDには複数の遅延ユニットが設けられている。この前進遅延回路FDに入力された信号は、この複数の遅延ユニットを通過することによって順次遅延される。そして、シンクロナス・アジャスタブル・ディレイ26では、前進遅延回路FDにバッファ25からの信号が供給され、次のサイクルのANDゲート22からの出力が立ち上がる時点までの遅延時間Δが、前進遅延回路FDに供給された入力信号が通過した遅延ユニットの数に対応して測定される。さらに、この測定された信号の遅延時間Δに相当する遅延量が、前進遅延回路FDで保持される。後退遅延回路BDは、前進遅延回路FDで保持された遅延時間Δに相当する遅延量だけ信号を遅延する。そして、後退遅延回路BDの出力は、バッファ27を介して内部クロックTouまたはRouとして出力される。
【0066】
ここで、第1の基本クロックTCLKもしくはRCLKに対する、上記バッファ21及びANDゲート22からなる回路における遅延時間をD1、後退遅延回路BDの出力に対する上記バッファ27おける遅延時間をD2とすると、ANDゲート22の出力に対する上記バッファ23、ANDゲート24及びバッファ25からなる回路における遅延時間AがD1+D2となるように、バッファ23、ANDゲート24及びバッファ25の回路定数が設定されている。
【0067】
このようなシンクロナス・アジャスタブル・ディレイを用いた信号発生回路の動作原理については、本発明者による特願平9-100490号の出願で詳しく説明されている。
【0068】
図12中のバッファ23、ANDゲート24及びバッファ25からなる回路における遅延時間Aが、D1+D2に等しくなるように設定されていれば、内部クロックTouまたはRouの立ち上がりは、第1の基本クロックTCLKまたはRCLKの奇数クロックの立ち上がりに一致する。これはA+Δの遅延量が丁度、奇数クロックサイクルの第1の基本クロックの周期2τに等しくなるからである。
【0069】
図13の回路が、図12のものと異なる点は、ANDゲート24の他方の入力端に接地電位に対応した論理レベル“L”を常時供給することによって、偶数クロックサイクルの第1の基本クロックに基づいて動作するようにしただけである。
【0070】
図15及び図16は、図10に示した内部クロックΦe発生回路及び内部クロックΦo発生回路の具体的な構成を示している。この場合にも、両回路の基本的な構成は同じであり、入力信号のみが異なるので、内部クロックΦo発生回路で代表して説明する。
【0071】
内部クロックRouは、縦続接続された2段のバッファ31による遅延時間A(=2*D2)を経た後に、SAD32の前進遅延回路FDに供給される。このシンクロナス・アジャスタブル・ディレイ(SAD)32には内部クロックTouが供給されている。このSAD32では、内部クロックRouが入力した後、次に内部クロックTouが入力するまでの間の遅延量Δが前進遅延回路FDで測定される。後退遅延回路BDでは、遅延量が常にFDの半分になるように遅延ユニットの数がFDの半分に間引かれている。内部クロックTouが入力したタイミングから、Δ/2の遅延を経てSAD32から出力される信号は、バッファ33による遅延時間D2を経た後に内部クロックΦeとして出力される。
【0072】
すなわち、内部クロックRouと内部クロックTouとの間の遅延量が2*D2+Δで、内部クロックTouと内部クロックΦeとの間の遅延量がその半分のD2+Δ/2となる。
【0073】
図16の回路でも、上記と同様にして、内部クロックReuと内部クロックTeuとから内部クロックΦoが得られる。
【0074】
図8に示したように、内部クロックΦeが立ち上がるタイミングから内部クロックTouが立ち上がるタイミングまでの遅延量を、内部クロックTouが入力するタイミングから測定を開始することによりタイミング信号Meが得られる。また内部クロックΦoが立ち上がるタイミングから内部クロックTeuが立ち上がるタイミングまでの遅延量を、内部クロックTeuが入力するタイミングから測定を開始することによりタイミング信号Moが得られる。
【0075】
さらに、タイミング信号MeとMoとを合成することによって、最終的なタイミング信号Mが得られるが、このタイミング信号Mを発生する回路の構成を図17に示す。
【0076】
図17の回路の機能は、先の図11及び図12に示した回路と基本的に同じである。ここでは、それぞれ前進遅延回路FD及び後退遅延回路BDが設けられた二つのシンクロナス・アジャスタブル・ディレイ(SAD)34、35の出力のOR論理を、出力段のORゲート36でとることによってタイミング信号M(Me及びMo)を得るようにしている。このため、入出力段における遅延量を合わせるために、両SAD34、35の入力段にもORゲート37、38が設けられている。そして、一方のORゲート37には内部クロックΦeと“L”レベルの論理信号が供給され、他方のORゲート38には内部クロックΦoと“L”レベルの論理信号が供給されている。また、一方のSAD34には内部クロックTouが、他方のSAD35には内部クロックTeuが、それぞれ制御信号として供給されている。
【0077】
さて、前記図3のタイミングチャート中の中間タイミングMが決まれば、データバス上の位置に左右されずにデータ転送が可能なことは既に説明したが、偶数サイクル、奇数サイクルなどの基本クロックのサイクルの区別が付けばサイクル数カウントの手順を工夫することによって、より回路規模を少なくした方式が可能である。さらに、クロックRCLKとTCLKの位相差が2周期以上ずれた場合への拡張も容易になる。
【0078】
次にこのサイクル数カウントの手順を変えた、この発明の第2の実施の形態について説明する。
【0079】
図18は、基本クロックの偶数サイクルであるeサイクルでのみ、クロックTCLKとRCLKの位相差を測定し、その中間のタイミングMeのみを発生し、それを用いる方法を示したタイミングチャートである。タイミングMeの発生方法は、いままでに説明してきた通りであり、他方のタイミングMoが必要でないことから、タイミングMoを発生する機能を有する図15、図16及び図17に示した回路に比べて、回路規模が半減できるという効果がある。
【0080】
このタイミングチャートでは、各サイクル毎にタイミングMを設定する必要がない。図中で、A1サイクルとB1サイクル、A2サイクルとB2サイクルが対応する同一サイクルであり、この2つのサイクルがタイミングMeの発生に利用される。
【0081】
この実施の形態において、図1に示すように、コントローラ3が折り返し点の付近にある場合について、まず説明する。この場合、コントローラ3からメモリモジュール2に対し、コマンドがクロックRCLKのB1及びB2サイクルに同期して転送される。また、メモリモジュール2からデータをデータバス5に乗せる場合には、クロックTCLKに同期してA1サイクル及びA2サイクルからサイクル数がカウントされ、A1サイクル及びA2サイクルから数えて一定サイクル数目にデータがデータバス5上に出力されなければならない。一連のデータを出し終えて新たなデータ出力サイクルを始める際、レイテンシイを設定するために、カウンタによってクロックTCLKがレイテンシイに応じた数だけカウントされる必要がある。
【0082】
前記のように各メモリモジュール2内にはレイテンシイを設定するためのカウンタ(図9中のカウンタ403)が設けられており、このカウンタの動作を制御するための制御手順について、図19を参照して説明する。
(1) A1サイクルにおけるクロックTCLKの立ち上がりタイミングの直後に発生される第1のタイミング信号Meに対し、その次に発生する第2のタイミング信号Meに対応するクロックTCLKのeサイクルから、カウンタでクロックTCLKがカウントされ、サイクル数のカウントが開始される(S21)。
(2) クロックRCLKに同期してコマンドが取り込まれる(S22)。
(3) コマンドが取り込まれたかどうが判断される(S23)。
(4) 第1のタイミング信号Meの直後の、この第1のタイミング信号Meに対応するクロックRCLKのB1サイクルの立ち上がりから、第2のタイミング信号Meに対応するクロックRCLKのサイクル(B2の次のe)の立ち上がりまでの間の期間に、クロックRCLKに同期して取り込まれたコマンドが、コマンドがない状態も含めて新たなサイクル数カウントコマンドでなければ、カウント動作が止められて、次のカウント動作に備えられる(S24)。
(5) 一方、(a)第1のタイミング信号Meの直後の、その第1のタイミング信号Meに対応するクロックRCLKのB1サイクルの立ち上がりから、第2のタイミング信号Meに対応するクロックRCLKのサイクル(B2の次のe)の立ち上がりまでの間の期間に、クロックRCLKに同期して取り込まれたコマンドに新たなサイクル数カウントコマンドがあれば、一定サイクル数がカウントされ、そのサイクルからTCLKに同期してデータがデータバスに出力される。
【0083】
また、(b)第1のタイミング信号Meの直後の、その第1のタイミング信号Meと対応するクロックRCLKのB1サイクルから第2のタイミング信号Meと対応するサイクル(B2の次のe)の間で、第1のタイミング信号Meの直後の、その第1のタイミング信号Meと対応するクロックRCLKのサイクルを1番目としてi番目(iは正の整数)のサイクルに新たなサイクル数コマンドがあれば、i−1サイクルに対応するサイクル数カウントを余分に加えた一定サイクル数がカウンタでカウントされ、そのカウント終了後のサイクルからクロックTCLKに同期してデータがデータバスに出力される(図18で例えばB2サイクルにコマンドがあれば、カウント終了の数が2だけ増やされる)(S25)。
【0084】
以上の手順により、クロックTCLKの立上がり時及び立ち下がり時に、カウンタでカウントが行なわれることにより、各メモリモジュール2から所定のレイテンシイでデータの読み出しが行なわれる。例えば、シングル・データ・レート(Single Data Rate、略してSDR)でコントローラ3がコマンドを出力したサイクルから数えて6サイクル目の立上がりでデータがデータバスに乗って欲しいとき、コントローラ3がA1サイクルに対応するコマンドを出力すれば、メモリモジュール2はB1サイクルでこのコマンドを受け、クロックTCLKのタイミングt3でデータを出力する。また、コントローラ3がA2サイクルでコマンドを出力すれば、メモリモジュール2はB2サイクルでこのコマンドを受け、クロックTCLKのタイミングt4でデータを出力する。
【0085】
他方、図2に示すように、コントローラ3がクロック発生器1の近くにある場合、各メモリモジュール2に対し、コマンドはクロックTCLKのA1及びA2サイクルに同期して転送される。また、各メモリモジュール2が、データをデータバス5に出力する際は、クロックRCLKに同期してカウンタでB1及びB2サイクルからサイクル数のカウントが開始され、一定サイクル数目に各メモリモジュール2からデータが出力される。一連のデータを出し終わり、新たなデータ出力サイクルを始める際、レイテンシイを設定するために、カウンタによってクロックTCLKがレイテンシイに応じた数だけカウントされる必要がある。
【0086】
前記のように各メモリモジュール2内にはレイテンシイを設定するためのカウンタ(図9中のカウンタ403)が設けられており、このカウンタの動作を制御するための制御手順について、図20を参照して説明する。
(1) 第1のタイミング信号Meに対応するクロックTCLKのA1サイクルにコマンドが取り込まれる(S31)。
(2) 第1のタイミング信号Meの直後の、この第1のタイミング信号Meに対応するクロックRCLKのB1サイクルから、カウンタでサイクル数のカウントが開始される(S32)。
(3) コマンドが取り込まれたかどうが判断される(S33)。
(4) 第2のタイミング信号Meに対応するクロックTCLKのサイクル(A2の次のe)までの期間に、クロックTCLKに同期して取り込まれたコマンドが、コマンドがない状態も含めて新たなサイクル数カウントコマンドでなければ、カウント動作が止められ、次のカウント動作に備えられる(S34)。
(5) 一方、(a)第1のタイミング信号Meに対応するクロックTCLKのA1サイクルから、第2のタイミング信号Meに対応するクロックTCLKのA2の次のeサイクルまでの間に、クロックTCLKに同期して取り込まれたコマンドに新たなサイクル数カウントコマンドがあれば、一定サイクル数がカウントされ、そのサイクルからRCLKに同期してデータがデータバスに出力される。
【0087】
また、(b)第2のタイミング信号Meに対応するクロックTCLKのA2の次のeサイクルで、第1のタイミング信号Meに対応するクロックTCLKのA1サイクルを1番目としてi番目(iは正の整数)のサイクルに新たなサイクル数コマンドがあれば、i−1サイクルに対応するサイクル数カウントを余分に加えた一定サイクル数がカウンタでカウントされ、そのカウント終了後のサイクルからクロックRCLKに同期して、データがデータバスに出力される(図18で例えばA2サイクルにコマンドがあれば、カウント終了の数が2だけ増やされる)(S35)。
【0088】
これにより、例えば、コントローラ3がコマンドを出したサイクルに対応したサイクルから4サイクル目の立上がりでデータがデータバスに乗って欲しいとき、コントローラ3がA1サイクルでコマンドを出せば、メモリモジュール2がA1サイクルでこのコマンドを受け、タイミングt5でデータを出力する。また、コントローラ3がA2サイクルでコマンドを出せば、メモリモジュール2はA2サイクルでこのコマンドを受け、タイミングt6でデータを出力する。
【0089】
図18の例は、図3中に示すクロックTCLKとRCLKが2周期まで位相がずれてもよい場合であった。ところが、システムがさらに高速化されたり、大規模になり、バス上での伝播遅延が基本クロックの周期に比べてさらに長くなってくると、例えば4周期までの位相のずれにも対応できることが要求される。このとき、第2の基本クロックとしては当然、周期が第1の基本クロックの4倍である、第1の基本クロックの4分周信号が使用される。
【0090】
図21に、4分周された第2の基本クロックを用いて、第1の基本クロックの4つのサイクルをa、b、c、dのように区別して、4周期の位相のずれまで対応可能にした場合の、図18に相当する、この発明の第3の実施の形態によるタイミングチャートを示す。
【0091】
この場合、第1の基本クロックの4つのサイクルに対し、aサイクルに対応したタイミングMaのみが発生される。このタイミングMaの発生方法は後程詳細に説明する。図21に示したタイミングMaの発生手順は図18の場合と同様であり、以下の通りである。
【0092】
まず、図1に示すように、コントローラ3が折り返し点の近くにある場合、メモリモジュール2に対し、コマンドがクロックRCLKのB1、B2、B3、B4からなる4サイクルに同期して転送される。また、データをデータバス5に乗せるサイクルは、クロックTCLKに同期してA1、A2、A3、A4各サイクルからカウンタによってサイクル数をカウントした結果の一定サイクル数目である。一連のデータを出し終わり、新たなデータ出力サイクルを始める際、レイテンシイを設定するために、カウンタによってクロックTCLKがレイテンシイに応じた数だけカウントされる必要がある。カウンタにおけるレイテンシイに応じた数のクロックTCLKでのカウントの手順が図22に示されている。
(1) 第1のタイミングMaの直後の第2のタイミングMaに対応するクロックTCLKのサイクル(aサイクル)から、カウンタによるサイクル数のカウントが開始される(S41)。
(2) クロックRCLKに同期してコマンドが取り込まれる(S42)。
(3) コマンドが取り込まれたかどうが判断される(S43)。
(4) 第1のタイミングMaの直後の、この第1のタイミングMaに対応するクロックRCLKのサイクル(B1、aサイクル)から、第2のタイミングMaに対応するクロックRCLKのサイクル(次のaサイクル)までの期間に、クロックRCLKに同期して取り込まれたコマンドが、コマンドがない状態も含めて新たなサイクル数カウントコマンドでなければ、カウント動作が止められ、次のカウント動作に備えられる(S44)。
(5) 一方、(a)第1のタイミングMaの直後の、この第1のタイミングMaに対応するクロックRCLKのB1サイクル(aサイクル)から、第2のタイミングMaに対応するクロックRCLKのB4の次のaサイクルまでの間の期間に、クロックRCLKに同期して取り込まれたコマンドに新たなサイクル数カウントコマンドがあれば、一定サイクル数がカウントされ、そのサイクルからTCLKに同期してデータがデータバスに出力される。
【0093】
また、(b)第1のタイミングMaの直後の、この第1のタイミングMaと対応するクロックRCLKのB1サイクルから次の対応するサイクル(B4サイクルの次のaサイクル)までの間で、第1のタイミングMaの直後の、この第1のタイミングMaと対応するクロックRCLKのサイクル(B1サイクル)を1番目として、i番目(iは正の整数)のサイクルに新たなサイクル数コマンドがあれば、i−1サイクルに対応するサイクル数カウントを余分に加えた一定サイクル数がカウンタでカウントされ、そのカウント終了後のサイクルからクロックTCLKに同期してデータがデータバスに出力される(図21で例えばB3サイクルにコマンドがあれば、カウント終了の数が4だけ増やされる)(S45)。
【0094】
例えば、SDR方式でコントローラ3がコマンドを出したサイクルから6サイクル目の立上がりでデータがデータバスに乗って欲しいとき、コントローラ3がA1サイクルに対応するコマンドを出力すれば、メモリモジュール2はB1サイクルでそのコマンドを受け、クロックTCLKのタイミングt3でデータを出力する。また、コントローラ3がA3サイクルでコマンドを出力すれば、メモリモジュール2はB3サイクルでそのコマンドを受け、クロックTCLKのタイミングt4でデータを出力する。
【0095】
一方、図2に示すように、コントローラ3がクロック発生器1の近くにある場合、メモリモジュール2に対し、コマンドがクロックTCLKのA1、A2、A3、A4からなる4サイクルに同期して転送される。また、データをデータバス5に乗せるサイクルは、クロックRCLKに同期してB1、B2、B3、B4サイクルからカウンタによってサイクル数をカウントした結果の一定サイクル数目である。一連のデータを出し終わり、新たなデータ出力サイクルを始める際、レイテンシイを設定するために、カウンタによってクロックRCLKがレイテンシイに応じた数だけカウントされる必要がある。カウンタにおけるレイテンシイに応じた数のクロックRCLKでのカウントの手順が図23に示されている。
(1) 第1のタイミングMaと対応するクロックTCLKのA1サイクル(aサイクル)からコマンドの取り込みが開始される(S51)。
(2) 第1のタイミングMaの直後の、この第1のタイミングMaと対応するクロックRCLKのB1サイクル(aサイクル)から、サイクル数のカウントが開始される(S52)。
(3) コマンドが取り込まれたかどうが判断される(S53)。
(4) 第2のタイミングMaに対応するクロックTCLKのサイクルまでのサイクル(A4サイクルの次のaサイクル)で、クロックTCLKに同期して取り込まれたコマンドが、コマンドがない状態も含めて新たなサイクル数カウントコマンドでなければ、カウント動作が止められて、次のカウント動作に備えられる(S54)。
(5) 一方、(a)第1のタイミングMaに対応するクロックTCLKのA1サイクルから、第2のタイミングMaに対応するクロックTCLKのサイクル(A4サイクルの次のaサイクル)までの間の期間に、クロックTCLKに同期して取り込まれたコマンドに新たなサイクル数カウントコマンドがあれば、一定サイクル数がカウントされ、そのサイクルからクロックRCLKに同期してデータがデータバスに出力される。
【0096】
また、(b)第2のタイミングMaに対応するクロックTCLKサイクルまでのサイクル(A4サイクル)で、第1のタイミングMaに対応するクロックTCLKのサイクル(A1サイクル)を1番目として、i番目(iは正の整数)のサイクルに新たなサイクル数コマンドがあれば、i−1サイクルに対応するサイクル数カウントを余分に加えた一定サイクル数がカウンタでカウントされ、そのカウント終了後のサイクルからクロックRCLKに同期して、データがデータバスに出力される(図21で例えばA3サイクルにコマンドがあれば、カウント終了の数が4だけ増やされる)(S55)。
【0097】
これにより、例えば、コントローラ3がコマンドを出したサイクルに対応したサイクルから3サイクル目の立上がりでデータがデータバスに乗って欲しいとき、コントローラ3がA1サイクルでコマンドを出せば、メモリモジュール2がA1サイクルでこのコマンドを受け、タイミングt5でデータを出力する。また、コントローラ3がA3サイクルでコマンドを出せば、メモリモジュール2はA3サイクルでこのコマンドを受け、タイミングt6でデータを出力する。
【0098】
図18のタイミングチャートに示した、2分周クロックを用いた第2の基本クロック、図21のタイミングチャートに示した、4分周クロックを用いた第2の基本クロックを合わせてタイミングMeやMaを発生する回路について以下に説明する。
【0099】
先の図11、12では、2分周クロックを用いた場合の、基本クロックの奇数番目oサイクルを選択する場合の回路の構成を示した。第3の実施の形態において、図11の回路に相当するのが図24の回路である。この図24に示した回路が先の図11の回路と異なる点は、先の2入力NANDゲート13、14を用いる代わりに、3入力NANDゲート17、18が用いられており、この両NANDゲート17、18のそれぞれ一つの入力端に前記NANDゲート15、16の出力が帰還されていることである。
【0100】
このような構成の回路では、クロックTCLK2(RCLK2)の“H”の状態でクロックTCLK(RCLK)の“L”への遷移によって制御信号T2(R2)が状態を変えるので、図25のタイミングチャートに示すような制御信号T2(R2)の変化状態を作ることができる。
【0101】
図26、図27及び図28は、第3の実施の形態における先の図11、図15及び図17にそれぞれ相当する回路の構成を示している。なお、図26、図27及び図28それぞれで対応する箇所には同じ符号を付してその説明は省略する。そして、これらの各回路において、各信号の添字のxの代わりにoを、yの代わりにeをそれぞれ付ければ、図18に示した2分周クロックを使用する場合に対応した信号が得られる。また、添字のxの代わりにcを、yの代わりにaをそれぞれ付ければ、図21に示した4分周クロックを使用する場合に対応する信号が得られる。
【0102】
なお、先の図17の回路ではタイミングMとして、タイミングMe及びMoの二つを得るようにしている。これに対して、図28の場合には、タイミングMy一つを作ればよいので、一つのSAD34のみを用いることができる。また、このSAD34の出力側では、前記ORゲート36の代わりに、遅延時間D2を有するバッファ39が用いられており、これに伴いSAD34の入力側では前記ORゲート37の代わりに遅延時間D2を有するバッファ40が用いられている。
【0103】
以上の説明は、この発明に係るデータ高速転送システムにおいて、コントローラが、メモリモジュールのデータバス上の位置を考慮しなくてもデータが効率良く無駄なサイクルギャップも必要なく転送できるようにする技術に関するものである。次に、データをデータバスに出力する方法について説明する。
【0104】
以下の説明は、第2の基本クロックTCLK2として、例えば第1の基本クロックTCLKを2分周して得られる、第1の基本クロックTCLKの2倍の周期を持つクロックを用いる場合である。しかし、第1の基本クロックTCLKの4倍の周期を持つクロックを第2の基本クロックとして用いる場合に対しても拡張は容易なので特に説明はしない。なお、データの転送はクロックの1周期に2つのデータを転送する所謂DDR(Double Data Rate)であるとする。
【0105】
図29は、第1の基本クロックTCLK、RCLK、第2の基本クロックTCLK2、RCLK2及びデータの入出力を制御するための基本クロックに同期した複数の内部クロックの関係を示すタイミングチャートである。ここで、クロックTCLKの偶数サイクル及び奇数サイクルの立上がりに同期した内部クロックTeu、Tou、これらの内部クロックに対して位相が180度ずれた内部クロックTed、Tod、同様にクロックRCLKに対応した内部クロックReu、Rou、Red、Rodがデータの入出力を制御するために使用される。なお、基本クロックの立上がりに同期した内部クロックの発生方法については図11、図12、図13及び図14で既に説明したので、これらと180度位相がずれたクロックの発生方法について図30及び図31を参照して説明する。
【0106】
図30及び図31に示した回路の構成は図15及び図16のものと同様であり、入出力信号が異なるだけなので、図15及び図16と対応する箇所には同じ符号を付してその説明は省略する。
【0107】
図30は、偶数番目(偶数サイクル)のクロックで180度位相がずれたクロックを作る回路であり、図31は奇数番目(奇数サイクル)のクロックで180度位相がずれたクロックを作る回路である。
まず、図30の回路における内部クロックTodの発生方法について簡単に説明する。内部クロックTeuとTouは、基本クロックTCLKまたはRCLKと同位相なので、その位相差は360度である。図30中のSAD32のFDでは、この遅延量に相当するΔが測定される。図30中のSAD32の後退遅延回路(Half Backward Delay Circuit)HBDは、遅延量Δ/2を作るものである。内部クロックTouから後退遅延回路HBDを経て発生された内部クロックTodは、内部クロックTouから180度位相が遅れている。データの入力は基本クロックの立上がりのタイミングと、さらにこれと180度位相がずれたタイミングに対して、あるデータウィンドウを持って転送されてくる。従って、図30の回路で発生されたタイミングでデータを取り込むことができる。
【0108】
データの出力は、このタイミングに対して、あるデータウィンドウを持たせて出力しなければならない。従って、これらのタイミングの中間のタイミングでデータを出力することが望ましく、基本クロックに対して90度と270度位相がずれた内部タイミングを作ることが必要である。
【0109】
クロックTCLKでデータを出力する場合の、内部タイミングの発生方法を図32のタイミングチャートに示す。内部クロックTeu、Tou、Ted、Todは既に発生されているものが使用される。
【0110】
図32中、Qは出力データの状態を示しているが、データの切り替わりが内部クロックTeu、Tou、Ted、Todの立上がりと立ち下がりの期間の中間にあるようにする。
【0111】
内部クロックTeuとTodとの間の遅延量が測定され、内部クロックTodからこの測定された遅延量の半分の遅延量を持つタイミングt1が作られれば、基本クロックの周期が2nS(周波数が500MHz)の場合でも、測定すべき遅延量を3nS以上にできる。この遅延量3nSは極端に小さくはなく、かつ基本クロックと90度位相差のずれたタイミングを発生させることができる。
【0112】
同様に、内部クロックTedとTeuとの間の遅延量が測定され、内部クロックTeuから、測定された遅延量の半分の遅延量を持つタイミング2が作られれば、基本クロックと270度位相がずれたタイミングを発生することができる。さらに、内部クロックTouからTedまでの遅延量が測定され、内部クロックTedから測定された遅延量の半分の遅延量を持つタイミングt3を作られれば、基本クロックと90度位相がずれたタイミングを発生することができる。
【0113】
またさらに、内部クロックTodからTouまでの間の遅延量が測定され、内部クロックTouから、測定された遅延量の半分の遅延量を持つタイミングt4が作られれば、基本クロックと270度位相がずれたタイミングを発生できる。
【0114】
具体的にこれらのタイミングを発生する回路の構成を図33〜図36に示す。これらの回路の動作は基本的に図15及び図16の回路と同じであるので、その詳しい説明は省略する。内部クロックTeu、Ted、Tou、Todがそれぞれ供給される2段縦続接続された各2個のバッファ41は、データを出力するための出力バッファに相当するものである。これら各バッファ41は、出力バッファの遅延量に相当する遅延時間D2をそれぞれ有している。
【0115】
各シンクロナス・アジャスタブル・ディレイ(SAD)42は、それぞれ前進遅延回路FDと後退遅延回路HBDとを有しており、各後退遅延回路HBDの出力であるcl1、cl2、cl3、cl4は、実際のデータを出力するバッファを駆動する信号として使用される。そして、これらの信号から遅延時間D1の後に、データがデータバスに出力される。
【0116】
これらの具体的な説明は、後述するが、書き込みデータと読み出しデータを同時に双方向に転送できるように、電流を用いてデータ転送を行うデータバスの説明の際に合わせて行う。
【0117】
いままでの説明では、シンクロナス・アジャスタブル・ディレイSADの詳細な構成については述べなかったが、図37及び図38に、SADの一つの具体的な内部回路の構成を示す。
【0118】
図37はSADを論理ゲートレベルで表現したものであるが、図38は図37の回路をシンボルで表現したものである。なお、図37及び図38において対応する箇所には同じ符号を付してその説明は省略する。
【0119】
図37中、51は遅延時間D(D1+D2)を有し、例えば前記図28中のバッファ40に相当する入力バッファであり、52は同様の遅延時間Dを有し、例えば前記図28中のバッファ39に相当する出力バッファである。従って、上記入力バッファ51の入力Aは、例えば前記図28中の信号Φyに相当している。
【0120】
SAD内には、縦続接続された2個のインバータ53、54と、それぞれNANDゲート55及びこのNANDゲート55の出力が一方入力端に供給されるNORゲート56からなり、多段縦続接続された複数個の遅延ユニットDU1と、それぞれNANDゲート57及びこのNANDゲート57の出力が一方入力端に供給されるNORゲート58からなり、多段縦続接続され上記遅延ユニットDU1と同数の遅延ユニットDU2と、上記インバータ53の出力と例えば前記図28中の内部クロックTxuに相当する入力Bとが供給されるNANDゲート59と、このNANDゲート59の出力を反転して制御信号Sを出力するインバータ60と、上記インバータ60から出力される信号Sとタイミングを合わせるために入力Bからの遅延時間が同等になるように遅延を行うパスゲート61と、上記一方の遅延ユニットDU1と他方の遅延ユニットDU2との間にそれぞれ挿入された各NORゲート62及びNANDゲート63とが設けられている。
【0121】
ここで、多段縦続接続された複数個の遅延ユニットDU1で前進遅延回路FDが構成され、同様に多段縦続接続された複数個の遅延ユニットDU2で後退遅延回路BDが構成されている。
【0122】
前記各NORゲート62及びNANDゲート63からなる回路はそれぞれ、前進遅延回路FDで遅延された信号を、信号Bのタイミングで後退遅延回路BDに移す制御を行うものである。そして、各NORゲート62には前記制御信号/S及び対応する遅延ユニットDU1内のNANDゲート55の出力が供給され、その出力は対応する遅延ユニットDU2内のNORゲート58に供給される。前記各NANDゲート63には、前記制御信号S及び対応する遅延ユニットDU1内のNORゲート56の出力が供給され、その出力は対応する遅延ユニットDU2内のNANDゲート57に供給されている。
【0123】
次に図37の回路の動作を説明する。入力Aとして正方向に立ち上がるパルスが入ると、このパルスは、遅延時間Dを経た後に、前進遅延回路FD内のそれぞれ複数のNANDゲート55及びNORゲート56を交互に伝播されて行く。他方、入力Bには、前進遅延回路FDを進行するパルスを、後退遅延回路BDに対して立ち下がりのパルスとして移すタイミングを設定するためのパルスが入力される。入力Aと入力Bの、パルスの立ち上がり相互間に相当する遅延時間が、前進遅延回路FDを進行するパルスの立ち上がり位置(NORゲート56の出力の立ち上がり位置またはNANDゲート55の出力の立ち下がり位置)として測定され、後退遅延回路BDに対してパルスの立ち上がり位置として移される。このパルスを移動させる際の移動用ゲートとなるのが前進遅延回路FDと後退遅延回路BDとの間に設けられているNORゲート62とNANDゲート63とからなる回路である。入力Aとして入るパルスと入力Bとして入るパルスが同じパルスの場合、前サイクルに前進遅延回路FDに入ったパルスが先ず後退遅延回路BDに移され、遅延時間Dを経て前進遅延回路FDに入るパルスが後退遅延回路BDへ移動されないように、入力Bから信号Sの経路の途中に、入力Aのパルスとの論理をとるNANDゲート59が挿入されている。これにより、信号Sの出力が禁止される。
【0124】
なお、前進遅延回路FDで遅延されるパルスは、各NANDゲート55、NORゲート56のどの位置からでも後退遅延回路BD側に移ることができる。この結果、遅延時間の精度は、NANDゲート55もしくはNORゲート56の論理ゲート1個分になる。
【0125】
図39、図40及び図41はそれぞれ、入力に対して180度位相がずれた信号を作る、前進遅延回路FDと後退遅延回路HBDとからなるSADの詳細な回路構成を示している。図39と図40はそれぞれ異なる構成の詳細回路であり、図41が両回路をシンボルで示したものである。
【0126】
図39に示したシンクロナス・アジャスタブル・ディレイは、図37のものと基本的には同じであるが、図37の後退遅延回路BDに対して遅延ユニットDU2の数が半分に間引かれた後退遅延回路HBDに置き換えられている点が異なっている。従って、前進遅延回路FDを伝播されたパルスは後退遅延回路HBDに移動してから半分の伝播時間で後退遅延回路HBDを伝播され、信号Cとして出力される。この結果、入力Aに対して180度位相が遅れた信号が発生される。また、この場合、出力バッファ52は1個のバッファ回路で構成されている。
【0127】
図40のシンクロナス・アジャスタブル・ディレイは、図39のシンクロナス・アジャスタブル・ディレイにおいて、前進遅延回路FDから後退遅延回路HBDへ対してパルスが移動する際に、前進遅延回路FDからのパルスの移動の位置が荒いという問題点を補う工夫を施したものである。すなわち、この例では、後退遅延回路HBDを2組設け、この2組の後退遅延回路HBDの出力のOR論理またはAND論理をとって出力することにより、遅延時間の精度を上げるようにしたものである。
【0128】
次に、この発明の大きな特徴の一つである、読み出し/書き込み共通のデータバスを用いて、リード/ライトデータを同時に転送するリード/ライト同時双方向データバス(R/W Concurrent Bi-Directional Data Bus、略してCBDB)について説明する。
【0129】
図42は、メモリに対してデータの読み書きを同時に行う一般的なシステムの構成例を示す。図示しないコントローラから出力されるクロックに位相を同期させて、アドレスやコマンドがアドレス/コマンドバス( Add/Command Bus)71を通して、書き込みデータがライトデータバス(Write Data Bus)72を通して、各メモリ73に供給される。
【0130】
一方、各メモリ73からは、コントローラに向かうクロックに合わせて、データがリードデータバス( Read Data Bus)74に乗せて送られる。勿論データのやり取りは選択された一つのメモリとコントローラとの間でのみ行われる。
【0131】
従来の電位レベル、すなわち“1”、“0”のデータを電位の高低に対応して転送するデータ転送方式では、ライトデータバスとリードデータバスを共用して、メモリとコントローラとの間でデータを双方向に転送する場合、バスを時分割的に分ける必要があった。
【0132】
ところが、電圧レベルの高低ではなく、電流の値及び電流が流れる方向によってデータ転送を行なうこの発明の方式では、図43に示すようにデータバスを時分割的に分けることなしで共用できる。すなわち、図43に示したシステムでは、図42のシステムにおけるライトデータバス72とリードデータバス74の代わりに、リード/ライト同時双方向データバス(R/W Concurrent Bi-Directional Data Bus)75が用いられる。
【0133】
電流の値及び電流が流れる方向によってデータ転送を行なう双方向データ転送方式は、例えば、「1997 Symposium on VLSI Circuit 」の16-2頁に「1 Gb/s Current-Mode Bidirectional I/O buffer」として発表されている。しかし、この文献記載のものでは、データ転送を行うバスには何も接続されておらず、この発明ではこれをコントローラと複数のメモリモジュールからなるシステムに応用できるように改良したものである。
【0134】
図44及び図45は、それぞれ図1及び図2中の各メモリモジュール2及びコントローラ3内にそれぞれ設けられ、データの入出力制御を行う電流モードのデータ入出力回路の異なる構成を示している。
【0135】
図44に示したデータ入出力回路はデータ出力回路部を有し、このデータ出力回路部に常にαIの値の電流を流しておき、αIの電流捨て流し口をオンオフする方式である。また、図45に示したデータ入出力回路は、電流源αIそのものをオンオフ制御する方式である。
【0136】
図44の方式は、データ入出力回路で消費する電流値の、出力データに依存した変化はなく、電流のパスが切り替わるのみである。従って、ノイズが発生する原因となる電流源における電流値の変化はないが、図45の方式のものに比べて電流消費量が大きい。これに対し、図45の方式は、データ入出力回路に流れる電流の電流値が出力データに依存するが、電流消費量の平均値は図44のものに比べて小さい。
【0137】
まず図44の方式の回路について説明する。81は基準電流Iを発生する基準電流源である。電源電圧のノードと、この基準電流源81との間にはPチャネルMOSトランジスタP1とNチャネルMOSトランジスタN1の各ソース、ドレイン間が直列に挿入されている。この両トランジスタP1、N1のゲートにはイネーブル信号ENABLEがそれぞれ供給される。また、電源電圧のノードと、上記トランジスタP1、N1の直列接続点82との間には、PチャネルMOSトランジスタP2のソース、ドレイン間が挿入されている。このトランジスタP2のゲートは上記接続点82に接続されている。さらに電源電圧のノードと端子DQとの間には、2個のPチャネルMOSトランジスタP3、P4の各ソース、ドレイン間が並列に挿入されている。この両トランジスタP3、P4のゲートは上記接続点82に接続されている。また、上記端子DQと、接地電圧のノードとの間には、2個のNチャネルMOSトランジスタN2、N3の各ソース、ドレイン間が直列接続されている。そして、一方のトランジスタN2のゲートは上記端子DQに接続され、他方のトランジスタN3のゲートには上記イネーブル信号ENABLEが供給されている。
【0138】
同様に、上記端子DQと、接地電圧のノードとの間には、2個のNチャネルMOSトランジスタN4、N5の各ソース、ドレイン間が直列接続されている。そして、トランジスタN5のゲートには上記イネーブル信号ENABLEが供給されている。
【0139】
また、電源電圧のノードと、接地電圧のノードとの間には、1個のPチャネルMOSトランジスタP5と2個のNチャネルMOSトランジスタN6、N7の各ソース、ドレイン間が直列接続されている。上記トランジスタP5のゲートは上記接続点82に接続され、上記トランジスタN6のゲートは上記端子DQに接続されている。また、上記トランジスタN7のゲートには上記イネーブル信号ENABLEが供給されている。上記トランジスタP5と、N6の直列接続点には、インバータ83の入力端が接続されている。同様に、電源電圧のノードと、接地電圧のノードとの間には、1個のPチャネルMOSトランジスタP6と2個のNチャネルMOSトランジスタN8、N9の各ソース、ドレイン間が直列接続されている。上記トランジスタP6のゲートは上記接続点82に接続され、上記トランジスタN8のゲートは上記端子DQに接続されている。また、上記トランジスタN9のゲートには上記イネーブル信号ENABLEが供給されている。上記トランジスタP6とN8の直列接続点にはインバータ84の入力端が接続されている。
【0140】
また、電源電圧のノードと、接地電圧のノードとの間には、1個のPチャネルMOSトランジスタP7と2個のNチャネルMOSトランジスタN10、N11の各ソース、ドレイン間が直列接続されている。上記トランジスタP7のゲートは直列接続点82に接続され、トランジスタN10のゲートは上記トランジスタP7とこのトランジスタN10との直列接続点85に接続されている。上記トランジスタN11のゲートには上記イネーブル信号ENABLEが供給されている。前記トランジスタN4のゲートは上記接続点85に接続されている。さらに、上記接続点85と、接地電圧のノードとの間には、NチャネルMOSトランジスタN12のソース、ドレイン間が接続されており、このトランジスタN12のゲートには出力データQが供給される。
【0141】
ここで、前記トランジスタP3、P4、P5、P6は、それぞれトランジスタP2と共にカレントミラー回路を構成している。そして、トランジスタP2に基準電流源81の基準電流Iが流れた時に、それぞれ図示のようにI、αI、(1+0.25α)I、(1+0.75α)Iの電流が流れるように、それぞれのトランジスタのサイズが設定されている。また、データの入力時に、イネーブル信号ENABLEが“H”にされて、上記トランジスタN7、N9がオンする際に、両トランジスタN7、N9には、端子DQに流れ込むレシーバ電流に比例した電流が流れる。そして、上記インバータ83、84は、上記トランジスタP5、P6に流れる電流(1+0.25α)I、(1+0.75α)Iをレファレンス電流として、トランジスタN7、N9に流れるレシーバ電流と比較して、データOl、Ohを出力する。すなわち、Olはレシーバ電流が(1+0.25α)Iより多ければ“H”となり、Ohはレシーバ電流が(1+0.75α)Iより多ければ“H”となる。
【0142】
Qは出力するデータを表す信号であり、このデータQが“H”のときには、トランジスタN12がオンし、接続点85が接地電圧となり、トランジスタN4がオフするために、電流αIがDQ端子から見えるようになる。他方、データQが“L”のときには、トランジスタN4、N5を介して接地電圧のノードに電流が流れるために、電流αIは入出力回路内で流れて、DQ端子からは見えなくなる。
【0143】
ここで、データをやり取りしている二つのデータ入出力回路それぞれ流れる電流は、基準電流源81の電流I、トランジスタP3に流れる電流I、トランジスタP4に流れる電流αI、トランジスタP5に流れる電流(1+0.25α)I、トランジスタP6に流れる電流(1+0.75α)I、トランジスタP7に流れる電流αI及びその他の各ゲートに流れる電流の総和となる。従って、データをやり取りしている二つのデータ入出力回路で消費される電流は、データによらずに一定である。
【0144】
上記端子DQはデータバスに直接つながっているが、電流をやり取りしている二つのデータ入出力回路端子の端子DQ以外に電流のパスができてはならない。また、DQ端子とデータバスとは低インピーダンスで接続されている必要があるので、その相互間にはスイッチ素子などを直列に挿入することもできない。そこで、データバスにデータを出力せずかつデータバスからデータも受け取らないデータ入出力回路では、イネーブル信号ENABLEが“L”にされる。これにより、トランジスタN1がオフし、基準電流源81の基準電流IがトランジスタP2に流れなくなり、これによりトランジスタP3〜P6にも電流が流れなくなるので、DQ端子には電流パスができなくなる。
【0145】
さらに、図44のデータ入出力回路には、3個のCMOS型のトランスファゲート86、87、88が設けられている。上記トランスファゲート86には入力として、インバータ89を介してデータQが供給される。このトランスファゲート86の動作は、データOhが反転入力端に、データOlが非反転入力端にそれぞれ供給されるNANDゲート90及びこのNANDゲート90の出力を反転するインバータ91とからなる回路の出力で制御される。上記トランスファゲート87には入力として電源電圧(“H”)が供給される。このトランスファゲート87の動作は、データOh、Olが共に非反転入力端にそれぞれ供給されるNANDゲート92及びこのNANDゲート92の出力を反転するインバータ93からなる回路の出力で制御される。上記トランスファゲート88には入力として接地電圧(“L”)が供給される。このトランスファゲート88の動作は、データOh、Olが共に反転入力端にそれぞれ供給されるNANDゲート94及びこのNANDゲート94の出力を反転するインバータ95からなる回路の出力で制御される。そして、これら各トランスファゲート86、87、88の出力ノードは共通に接続され、この共通接続ノードにデータDが得られる。
【0146】
すなわち、データDは、Ol=“H”、Oh=“L”ならばQを反転したものに等しく、Ol=“H”、Oh=“H”ならば“H”、Ol=“L”、Oh=“L”ならば“L”である。
【0147】
なお、図44中に破線で囲んだ回路CC1の代わりに、2個のPチャネルMOSトランジスタP8、P9と、2個のNチャネルMOSトランジスタN13、N14と及び2個のインバータ96、97からなる回路CC2を用いることもできる。
【0148】
回路CC2における各2個のPチャネル及びNチャネルMOSトランジスタP8、P9、N13、N14は、電源電圧のノードと、接地電圧のノードとの間に直列接続されている。上記インバータ96には信号Ohが入力され、このインバータ96の出力が上記トランジスタP8、N13の各ゲートに供給される。上記インバータ97には信号Olが入力され、このインバータ97の出力は上記トランジスタP9、N14の各ゲートに供給される。
【0149】
このような回路CC2を用いても、先と同様な入力データDを得ることができる。
【0150】
図45に示したデータ入出力回路は、先にも述べたように、電流源αIそのものをオンオフ制御する方式であり、図44のものと異なる箇所は、トランジスタP4、N4、N5、P7、N10、N11、N12からなる回路に代えて、基準電流Iを有する基準電流源98と、4個のPチャネルMOSトランジスタP10〜P13と、1個のNチャネルMOSトランジスタN15からなる回路が設けられている点であり、これ以外の回路の構成は図44と同様である。
【0151】
ここで、上記トランジスタP10は、電源電圧のノードと端子DQとの間に挿入されている。また、上記3個のトランジスタP11、P12、P13のソース、ドレイン間の各一端は電源電圧ノードに接続されており、これら3個のトランジスタP11、P12、P13の各他端は共通に接続されている。上記トランジスタN15のソース、ドレイン間は、上記3個のトランジスタP11〜P13の他端共通接続点と、基準電流源98との間に挿入されている。上記トランジスタP12のゲートとドレインは短絡されており、かつトランジスタP10のゲートがトランジスタP12のゲートとドレイン短絡点に接続されている。従って、上記両トランジスタP10、P12はカレントミラー回路を構成している。また、上記トランジスタP11、N15の各ゲートにはイネーブル信号ENABLEが供給され、上記トランジスタP13のゲートにはデータQが供給される。
【0152】
このような構成の入出力回路では、イネーブル信号ENABLEが“H”のとき、トランジスタP11がオフし、トランジスタN15がオンするので、基準電流源98の基準電流IはトランジスタP12及びP13のいずれか一方に流れる。例えば、出力データQが“H”のときは、トランジスタP13がオフするので、基準電流IはトランジスタP12を流れる。このとき、予めトランジスタP10とP12のサイズを調整しておくことにより、トランジスタP10に電流αIが流れ、この電流αIが端子DQを介してデータバスに出力される。
【0153】
なお、この図45の回路の場合にも、図中に破線で囲んだ回路CC3の代わりに、図44の場合と同様に、2個のPチャネルMOSトランジスタP8、P9と、2個のNチャネルMOSトランジスタN13、N14と及び2個のインバータ96、97からなる回路CC4を用いても、先と同様な入力データDを得ることができる。
【0154】
図44または図45のような構成のデータ入出力回路を、コントローラ3と複数のメモリモジュール2とを有するデータ転送システムに組み込んだ場合の構成を図46に示す。ここで、100は前記コントローラ3に相当するコントローラであり、101と102はそれぞれ前記メモリモジュール2に相当するメモリモジュールであり、103はコントローラ100及びメモリ101、102それぞれに設けられるデータ入出力回路であり、104はコントローラ100及びメモリモジュール101、102それぞれに設けられているコマンドデコーダ(command dec.)であり、105はリード/ライト同時双方向データバス(CBDB)であり、 106はコマンド/アドレスバス(command/add.Bus )である。
【0155】
コントローラ100内では、イネーブル信号ENABLE0は常に“L”にされている。このため、コントローラ100内のデータ入出力回路103は常に動作可能状態にされており、コマンドデコーダ104からコマンド/アドレスバス106を通して一つのメモリモジュールが選択される。例えばメモリモジュール102が選択されると、この選択されたメモリモジュール102のイネーブル信号ENABLE2が“L”となり、コントローラ100と、選択されたメモリモジュール102とが、リード/ライト同時双方向データバス105を介してデータの授受を電流によりやり取りする。すなわち、このバス105を通して、電流 0.5αIがどちらかの方向に流れるか、または電流が流れないかでデータが転送される。
【0156】
図47は、上記バス105に流れる電流の電流値と電流の方向と、上記バス105で転送されるデータとの関係をまとめて示したものである。
【0157】
図47において、自分のQは、各メモリモジュールもしくはコントローラがコントローラもしくは各メモリモジュールに出力すべきデータを意味する。また、自分のソース電流は、端子DQに接続されているトランジスタN2及びN4(図44)またはトランジスタP3及びP10(図45)を介して各メモリモジュール内もしくはコントローラ内に流れる電流を意味する。また、相手のQは、データバスを介して接続され、互いにデータの授受を行なおうとする他方のコントローラもしくは各メモリモジュールから出力すべきデータを意味する。同様に、相手のソース電流は、データバスを介して接続され、互いにデータの授受を行なおうとする他方のコントローラもしくは各メモリモジュールにおいて、端子DQに接続されているトランジスタN2及びN4(図44)またはトランジスタP3及びP10(図45)を介して各メモリモジュール内もしくはコントローラ内に流れる電流を意味する。合計ソース電流は、データバスを介して接続され、互いにデータの授受を行なおうとする1つのメモリモジュールとコントローラにおけるソース電流の和を意味する。バス電流は、データバスに流れる電流を意味し、バス電流の0.5 αIin はデータバスから入力される方向の電流であり、0.5 αIout はデータバスへ出力される方向の電流である。レシーバ電流は、自分のソース電流とデータバスを介して流れる電流との和もしくは差の電流を意味する。
【0158】
図47によれば、相手のデータQが自分のデータDとして転送されていることが分かる。
【0159】
ここで、コントローラ100が、前記のように折り返し点の付近に配置されている場合、すなわち、メモリモジュールに対するデータ書き込み時には、クロックRCLKに同期してコントローラからメモリモジュールに対してデータが転送され、メモリモジュールからのデータ読み出し時には、クロックTCLKに同期してデータがコントローラに転送される場合の、上記リード/ライト同時双方向データバスを用いたデータ入出力回路におけるデータ転送状態を図48のタイミングチャートに示す。
【0160】
図47に従って作成されるデータDの論理値は、種々のケースの場合にコントローラが受け取るデータまたはコントローラが出力するデータの論理値と一致していることが分かる。なお、図48中、太線で示したデータDの位置は、自分が出力しているデータに関係なく、Ol、Ohで決まるデータDの状態を示している。そして、このデータDを、内部クロックReu、Red、Rou、Rodに同期して内部に取り込めばよい。
【0161】
最後に、データ入出力回路として、図44もしくは図45に示すような構成のものを用いた場合に、遅延時間D2を有するバッファの具体的な回路構成について説明する。
【0162】
図49の回路は、図33〜図36の各回路で作られるバッファ駆動信号cl1〜cl4を用いて、図32のタイミングチャートに示すようにデータQを順次出力していくデータ選択出力回路の構成を示している。この回路は、入力端にデータ Data1〜 Data4が供給され、出力端が共通に接続され、信号cl1〜cl4(及びそれぞれの反転信号)で制御される4個のクロックドインバータ111〜114と、入出力端が逆並列接続された2個のインバータ115、116からなり上記クロックドインバータ111〜114の出力をラッチし、データQとして出力するラッチ回路とから構成されている。
【0163】
図50は、データ入出力回路として図44の構成のものを用いた場合に、遅延時間D2を有するバッファの1個分の具体的な回路構成を示している。この回路は、図49の回路に相当するデータ選択出力回路部と、所定の遅延時間を有する遅延回路部とから構成されている。データ選択出力回路部は、図49の回路中のクロックドインバータ111〜114に相当する、入力が接地電圧ノードもしくは電源電圧ノードに接続された2個のクロックドインバータ211、212と、入力を反転して上記クロックドインバータ211のNチャネル側のクロックゲート(NチャネルMOSトランジスタ)及びクロックドインバータ212のPチャネル側のクロックゲート(PチャネルMOSトランジスタ)に供給するインバータ213と、ラッチ回路を構成する2個のインバータ115、116に相当するインバータ214、215とから構成されている。
【0164】
そして、上記クロックドインバータ211のPチャネル側のクロックゲート及びクロックドインバータ212のNチャネル側のクロックゲートには、インバータ213に入力されるものと同じ信号が入力される。
【0165】
遅延回路部は、図44の回路内のトランジスタP1、P2、N1及び基準電流源81に相当するPチャネルMOSトランジスタP21、P22、NチャネルMOSトランジスタN21、基準電流源216とからなる回路と、データQを電流値の大小に変換する回路に相当するPチャネルMOSトランジスタP23〜P25及びNチャネルMOSトランジスタN22〜N26とで構成されている。
【0166】
図50に示した回路はバッファ1個分の構成なので、2個分のバッファを構成するには、図中破線で囲んだ部分の回路CC5を2個用意し、回路CC6に示すように直列接続すればよい。
【0167】
図51は、データ入出力回路として図45の構成のものを用いた場合に、遅延時間D2を有するバッファ1個分の具体的な回路構成を示している。この回路は、図49の回路に相当するデータ選択出力回路部と、所定の遅延時間を有する遅延回路部とから構成されている。データ選択出力回路部は、上記図50のものと同様に、2個のクロックドインバータ211、212と、インバータ213、214、215とから構成されている。
【0168】
遅延回路部は、データQを電流値の大小に変換する回路に相当するPチャネルMOSトランジスタP26〜P28及びNチャネルMOSトランジスタN27、N28と、基準電流源216とで構成されている。
【0169】
図51に示した回路はバッファ1個分の構成なので、2個分のバッファを構成するには、図示の回路を2個用意し、回路CC7に示すように直列接続すればよい。
【0170】
このようにデータバスで双方向にかつ同時にデータの転送を行なうので、データバスをリードデータバスとライトデータバスとに分ける場合と比べて、データバスの本数を少なくすることができる。さらに、メモリモジュールやコントローラのピン数を減らすことができるので、面積及び製造コスト的に有利である。
【0171】
【発明の効果】
以上説明したようにこの発明によれば、データバス上でデータの衝突をなくすことができ、クロックサイクルのギャップを生じることなくデータ転送を行なうことができ、また、データの読み書きが同時に同じ端子を用いて行なうことができるので、バスの配線数が少ないデータ高速転送システムを実現することができる。
【図面の簡単な説明】
【図1】この発明のデータ高速転送システムの第1の実施の形態によるブロック図。
【図2】この発明のデータ高速転送システムの第1の実施の形態によるブロック図。
【図3】図1及び図2のシステムにおいてクロック配線上の異なる二つの場所のクロックTCLKとRCLKの位相関係を示すタイミングチャート。
【図4】図1のシステムの動作手順を示すフローチャート。
【図5】図2のシステムの動作手順を示すフローチャート。
【図6】図1及び図2のシステムで第1の基本クロックTCLKとRCLKのクロック配線上の任意の位置での位相状態を示すタイミングチャート。
【図7】図1及び図2のシステムで第1の基本クロックTCLKまたはRCLKに同期して作られる偶数内部クロックTeuまたはReu、奇数内部クロックTouまたはRouを示すタイミングチャート。
【図8】図1及び図2のシステムでシンクロナス・アジャスタブル・ディレイを用いて図3中に示された中間タイミングMを作る方法を説明するためのタイミングチャート。
【図9】図1及び図2のシステムに設けられる複数の各メモリモジュール及びコントローラの内部構成の一部を示すブロック図。
【図10】図9の回路の一部の詳細な構成を示すブロック図。
【図11】図10の回路において制御信号T2,R2を発生する回路の具体的な構成を示す回路図。
【図12】図10の回路において内部クロックTou、Rouを発生する回路の具体的な構成を示す回路図。
【図13】図10の回路において内部クロックTeu、Reuを発生する回路の具体的な構成を示す回路図。
【図14】図11の回路で発生される制御信号T2またはR2の位相関係を示すタイミングチャート。
【図15】図10の回路に設けられる内部タイミングクロックΦoを発生する回路の回路図。
【図16】図10の回路に設けられる内部タイミングクロックΦeを発生する回路の回路図。
【図17】図15と図16の回路で得られる内部タイミングクロックΦo、Φeを用いてタイミングMを発生する回路の回路図。
【図18】図1及び図2のシステムにおいて、基本クロックの偶数サイクルであるeサイクルでのみ位相差を見てその中間のタイミングMeのみを用いるこの発明の第2の実施の形態による動作例を示すタイミングチャート。
【図19】図18の方法に基づく図1のシステムの動作の制御手順を示すフローチャート。
【図20】図18の方法に基づく図2のシステムの動作の制御手順を示すフローチャート。
【図21】この発明の第3の実施の形態によるデータ高速転送システムの動作例を示すタイミングチャート。
【図22】第3の実施の形態によるデータ高速転送システムの動作の制御手順を示すフローチャート。
【図23】第3の実施の形態によるデータ高速転送システムの図22とは異なる制御手順を示すフローチャート。
【図24】上記第3の実施の形態において先の図11の回路に相当する回路の構成を示す回路図。
【図25】図24の回路で作られる制御信号T2またはR2の位相関係を示すタイミングチャート。
【図26】上記第3の実施の形態において先の図12または図13に相当する回路の構成を示す回路図。
【図27】上記第3の実施の形態において先の図15または図16に相当する回路の構成を示す回路図。
【図28】上記第3の実施の形態において先の図17に相当する回路の構成を示す回路図。
【図29】上記第3の実施の形態において第1の基本クロックTCLK、RCLK、第2の基本クロックTCLK2、RCLK2及びデータの入出力を制御するために使用される内部クロックの位相関係を示すタイミングチャート。
【図30】上記第3の実施の形態において内部クロックTodまたはRodを発生する回路の回路図。
【図31】上記第3の実施の形態において内部クロックTedまたはRedを発生する回路の回路図。
【図32】上記第3の実施の形態においてクロックTCLKのタイミングでデータを出力する場合の内部タイミングの発生方法を説明するためのタイミングチャート。
【図33】上記第3の実施の形態においてタイミング信号cl1を発生する回路の回路図。
【図34】上記第3の実施の形態においてタイミング信号cl2を発生する回路の回路図。
【図35】上記第3の実施の形態においてタイミング信号cl3を発生する回路の回路図。
【図36】上記第3の実施の形態においてタイミング信号cl4を発生する回路の回路図。
【図37】前記各実施の形態のシステムで使用されるシンクロナス・アジャスタブル・ディレイを実現する一具体的回路を示す回路図。
【図38】図37の回路をシンボルで表現した回路図。
【図39】入力に対して180度位相がずれた信号を作るシンクロナス・アジャスタブル・ディレイを実現する他の具体的回路の回路図。
【図40】入力に対して180度位相がずれた信号を作るシンクロナス・アジャスタブル・ディレイを実現する他の具体的回路の回路図。
【図41】図39及び図40の回路をシンボルで表現した回路図。
【図42】メモリに対してデータの読み書きを同時に行う一般的なデータ転送システムの構成例を示す回路図。
【図43】データ転送に電流を用いてデータの読み書きを同時に行う、この発明に係るデータ転送システムの構成を示す回路図。
【図44】図1及び図2中の各メモリモジュール及びコントローラに設けられ、データの入出力を行う電流モードのデータ入出力回路の構成を示す回路図。
【図45】図1及び図2中の各メモリモジュール及びコントローラに設けられ、データの入出力を行う電流モードのデータ入出力回路の図44とは異なる構成を示す回路図。
【図46】図44または図45のデータ入出力回路を図1または図2中のコントローラと複数のメモリモジュールを有するデータ転送システムに組み込んだ場合の構成を示すブロック図。
【図47】図46に示すデータ転送システムにおける電流値と双方向データバスで転送されるデータとの関係をまとめて示す図。
【図48】双方向データバスを用いたデータ入出力回路におけるデータ転送状態を示すタイミングチャート。
【図49】図33〜図36の回路で作られるバッファ駆動信号を用いてデータQを順次出力していくデータ選択出力回路の具体的な回路構成を示す回路図。
【図50】データ入出力回路として図44の構成のものを用いた場合の遅延時間D2を有するバッファの具体的な回路構成を示す回路図。
【図51】データ入出力回路として図45の構成のものを用いた場合の遅延時間D2を有するバッファの具体的な回路構成を示す回路図。
【図52】従来のデータ転送システムの構成を示すブロック図。
【図53】図52の従来システムにおける動作の一例を示すタイミングチャート。
【図54】図52の従来システムにおける図2とは異なる動作の一例を示すタイミングチャート。
【図55】図52とは異なる従来のデータ転送システムの構成を示すブロック図。
【符号の説明】
1…クロック発生器(CG)、
2…メモリモジュール、
3…コントローラ、
4A,4B…クロック配線、
5…データバス、
6…コマンド/アドレスバス、
11、12…バッファ、
13〜16…NANDゲート、
21、23、25、27…バッファ、
22、24…ANDゲート、
26…シンクロナス・アジャスタブル・ディレイ(Synchronous Adjustable Delay)、
31、33、39、40、41…バッファ、
32、34、35、42…シンクロナス・アジャスタブル・ディレイ(Synchronous Adjustable Delay)、
36、37、38…ORゲート。
FD…前進遅延回路(Forward Delay Circuit)、
BD…後退遅延回路(Backward Delay Circuit)、
HBD…後退遅延回路(Half Backward Delay Circuit)、
51…入力バッファ、
52…出力バッファ、
53、54、60…インバータ、
55、57、59…NANDゲート、
56、58、62…NORゲート、
61…パスゲート、
DU1、DU2…遅延ユニット、
71…アドレス/コマンドバス( Add/Command Bus)、
72…ライトデータバス(Write Data Bus)、
73…メモリ、
75…リード/ライト同時双方向データバス(R/W Concurrent Bi-Directional Data Bus)、
81…基準電流源、
N1、N2、N3、N4、N5、N6、N7、N8、N9、N10、N11、N12、N13、N14、N15…NチャネルMOSトランジスタ、
P1、P2、P3、P4、P5、P6、P7、P8、P9、P10、P11、P12、P13…PチャネルMOSトランジスタ、
83、84、89、91、93、95…インバータ、
86、87、88…CMOS型のトランスファゲート、
90、92、94…NANDゲート、
100…コントローラ、
101、102…メモリモジュール、
103…データ入出力回路、
104…コマンドデコーダ(command dec.)、
105…リード/ライト同時双方向データバス(CBDB)、
106…コマンド/アドレスバス(command/add.Bus )、
111〜114…クロックドインバータ、
115、116、213、214、215…インバータ、
211、212…クロックドインバータ、
P21、P22、P23〜P25…PチャネルMOSトランジスタ、
N21、N22〜N26…NチャネルMOSトランジスタ、
216…基準電流源、
401…タイミング信号発生回路、
402…内部コントローラ、
403…カウンタ、
404…レイテンシイ制御回路、
501…内部クロックT2/R2発生回路、
502…内部クロックTou/Rou発生回路、
503…内部クロックTeu/Reu発生回路、
504…内部クロックΦo/Φe発生回路、
505…タイミングM発生回路。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a data transfer system that includes a plurality of memory modules and a controller that controls data read / write operations in the plurality of memory modules, and performs synchronous data transfer between the plurality of memory modules and the controllers.
[0002]
In addition, the present invention eliminates the empty cycle on the data bus caused by the difference in clock propagation delay and transfers both the write data and the read data simultaneously on the same bus, thereby significantly improving the data transfer efficiency. About.
[0003]
[Prior art]
The performance of the micro processor unit (MPU) used in the control system has been improved, and accordingly, the capacity of the IC memory used in the control system has increased to 256 Mbit and 1 Gbit. In such a situation, how efficiently a large amount of data is transferred has become increasingly important.
[0004]
US Pat. No. 5,432,823 discloses a data transfer system that realizes high-speed data transfer.
[0005]
FIG. 52 shows a schematic block diagram of the data transfer system disclosed in US Pat. No. 5,432,823. In this system, a clock generator (CG) 301, a plurality of memory modules 302, and one controller 303 are provided. A plurality of memory modules 302 and one controller 303 are arranged in parallel. A clock wiring 304 is provided so as to reciprocate along the array of the plurality of memory modules 302 and the controller 303. Further, a data bus 305 is provided along an array of a plurality of memory modules 302 and a controller 303.
[0006]
A clock is generated by the clock generator 301. This clock is sequentially transferred as a clock TCLK to the plurality of memory modules 302 and the controller 303 via the forward path portion of the clock wiring 304. After passing through the turning point from the forward path part to the return path part of the clock wiring 304, the previous clock is transferred as the clock RCLK to the arrangement of the controller 303 and the plurality of memory modules 302 in the opposite direction to the forward path part, and finally To a position near the clock generator 301. In this case, the controller 303 is arranged near the turning point.
[0007]
Data exchange between the plurality of memory modules 302 and the controller 303 is performed via the data bus 305.
[0008]
In general, when performing control in synchronization with a clock, there is a propagation delay of the clock. Therefore, in order to exchange data between a memory module at a different location and the controller, this propagation delay is not considered in advance. A data collision occurs on the data bus.
[0009]
In the conventional system shown in FIG. 52, the clocks TCLK and RCLK are monitored by the controller 303 and each of the plurality of memory modules 302, and data collision on the data bus is avoided by taking the following measures.
[0010]
That is, as shown in the timing chart of FIG. 53, the phases of the clocks TCLK and RCLK match in the vicinity of the turning point of the clock wiring 304. On the other hand, the phases of both clocks are shifted near the clock generator 301, and the clock RCLK is delayed with respect to the clock TCLK. Therefore, when the intermediate timing A between the two clocks TCLK and RCLK is taken, this timing A does not depend on the position on the clock wiring 304 and is always the intermediate timing between the clocks TCLK and RCLK. Accordingly, if the memory module 302 or the controller 303 performs data transfer considering the phase difference between the intermediate timing A and the clocks TCLK and RCLK, data collision on the data bus 305 can be avoided.
[0011]
[Problems to be solved by the invention]
However, if the data bus length becomes longer as a result of using a clock with a shorter cycle (higher frequency) to increase the data transfer efficiency or connecting many memory modules to increase the memory capacity of the system, Propagation delay can occur for more than one clock period.
[0012]
In this case, as shown in the timing chart of FIG. 54, the timing B which is originally an intermediate timing between the necessary clocks TCLK and RCLK cannot be obtained, and an incorrect timing A is obtained. For example, when the controller 303 is arranged near the clock generator 301, the clock TCLK is transferred through the clock wiring 304 and delayed by one cycle or more, and the rising timing of the clock RCLK corresponding to the rising timing t1 of the clock TCLK in the figure is Suppose t3 is reached. At this time, if the intermediate timing between the clocks TCLK and RCLK is simply taken, an intermediate timing A between the timing t1 and the timing at which the clock RCLK rises immediately after the timing t1 is taken. Become. The correct intermediate timing B in this case is the timing t2 between the timing t1 and the timing t3.
[0013]
In this way, if only the relationship between the clocks TCLK and RCLK is used, it cannot be determined whether or not a phase shift of one or more clock cycles has occurred between the clocks TCLK and RCLK, and an erroneous intermediate timing can be obtained.
[0014]
The data bus is used to transfer both read data from the memory module and write data to the memory module. However, since data “1” and “0” are generally expressed by high and low potential levels, it is necessary to clearly separate the transfer of both read data and write data in terms of time. Therefore, in order to perform both data transfers at the same time and increase the data transfer efficiency at a stroke, the data bus (DATA BUS) is replaced with a read data bus (READ DATA BUS) 306 as shown in FIG. It is necessary to divide it into a write data bus (WRITE DATA BUS) 307.
[0015]
However, if this is done, the number of wirings of the data bus is doubled, so that the number of pins of the memory module and controller is doubled, and the area cost is lost.
[0016]
The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a high-speed data transfer system capable of performing data transfer at high speed without increasing the number of data bus lines. .
[0017]
[Means for Solving the Problems]
According to the present invention, a plurality of memory modules, a controller that is arranged together with the plurality of memory modules and exchanges data with the plurality of memory modules, the first basic clock, and the cycle of the first basic clock. And a clock generator for generating a second basic clock having a period of n times (n is one of values 2 and 4), and a forward path so as to reciprocate along the plurality of arranged memory modules and controllers. And the first and second basic clocks generated by the clock generator are respectively input from the tips of the forward path portions, and the input first and second basic clocks are respectively provided. Are sequentially transferred, and the first and second basic clocks to which the wiring of each forward path portion and each backward path portion are transferred are transferred to the plurality of memory modules. Two clock wirings provided as synchronization signals to be used by the plurality of memory modules and the controller for data exchange, and each of the plurality of memory modules and the controller. Receiving the first and second basic clocks given from each forward path portion of the clock wiring and the first and second basic clocks returning from the respective backward path portions of the two clock wirings, Intermediate phase with respect to a phase shift within a period of n times (n is one of values 2 and 4) of the period of the first basic clock generated between the first basic clock and the return first basic clock. There is provided a data high-speed transfer system including a control circuit including an intermediate timing detection circuit for detecting timing.
[0018]
Further, according to the present invention, it comprises a plurality of memory modules, a controller that exchanges data with each of the plurality of memory modules, and a data bus that connects the plurality of memory modules and the controller, Each of the plurality of memory modules and the controller is provided with a high-speed data transfer system having a data input / output circuit that varies the value of the current flowing in the data bus and the direction of the current according to the exchanged data.
[0019]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings.
[0020]
1 and 2 are block diagrams showing the overall configuration of the high-speed data transfer system according to the first embodiment of the present invention.
[0021]
The system shown in FIG. 1 includes a clock generator (CG) 1, a plurality of memory modules 2, one controller 3, two clock wires 4A and 4B, and a data bus 5. A plurality of memory modules 2 and one controller 3 are arranged in parallel. The two clock wires 4A and 4B are arranged so as to reciprocate along the array of the plurality of memory modules 2 and the controller 3. Further, the data bus 5 and the command / address bus 6 are provided along the array of the plurality of memory modules 2 and the controller 3.
[0022]
The clock generator 1 outputs a first basic clock TCLK for controlling the original data transfer and a second basic clock TCLK2 having a cycle twice that of the first basic clock. The first and second basic clocks TCLK and TCLK2 are input from the forward end portions of the two clock wires 4A and 4B, and the plurality of memory modules 2 and the controller 3 are connected via the forward portion. Sequentially transferred along the array. After passing through the turning point from the forward part to the return part, the first and second basic clocks are opposite to the forward part with respect to the arrangement of the controller 3 and the plurality of memory modules 2 as clocks RCLK and RCLK2. The data is sequentially transferred in the direction and finally transferred to a position near the clock generator 1.
[0023]
The first and second basic clocks TCLK and TCLK2 of the forward path that propagate on the two clock wirings 4A and 4B and the first and second basic clocks RCLK and RCLK2 of the backward path include the memory modules 2 and Captured by the controller 3. The plurality of memory modules 2 and the controller 3 control the input / output operations of the respective data in synchronization with the fetched clocks.
[0024]
The plurality of memory modules 2 and the controller 3 are connected to a data bus 5. The data bus 5 performs data transfer by passing a current of a predetermined value so that write data and read data can be transferred in both directions simultaneously. Further, an address and a command are output from the controller 3 at the time of data transfer. The address and command are input to the plurality of memory modules 2 via the address / command bus 6.
[0025]
Although FIG. 1 shows the case where the controller 3 is arranged in the vicinity of the turn-back point, it is not always necessary to arrange it in such a manner, and the controller 3 is located in the vicinity of the clock generator 1 as shown in FIG. It may be arranged.
[0026]
In the system having such a configuration, when the clock is transferred on the clock wiring 4A, the phase difference between the clock TCLK in the forward path portion and the clock RCLK in the backward path portion is within a range of 360 degrees * 2, that is, A description will be given of whether data can be transferred without causing a data collision on the data bus and without generating a gap even if the clock TCLK is deviated within a range of two cycles or less. For this purpose, an intermediate timing M between the clocks TCLK and RCLK that are out of phase with each other may be set. By setting the intermediate timing M, the clocks TCLK and RCLK having the corresponding periods can be associated with each other, so that the memory modules having different positions on the data bus do not cause data collision on the data bus and Data transfer can be performed without a data transfer gap. A specific method and circuit for setting the intermediate timing M will be described in detail later.
[0027]
FIG. 3 shows the phase relationship between the clocks TCLK and RCLK at two different locations on the clock wirings 4A and 4B. The position of the rising timing A of the clock TCLK in the forward path portion in the same clock cycle corresponds to the position of the rising timing B of the clock RCLK in the backward path portion. The phase relationship between the timings A, M, and B is as shown in FIG. 3 when the clock TCLK at each location is taken as a reference at a location near and far from the turning point on the clock wirings 4A and 4B. Become.
[0028]
As described above, the controller 3 may be placed near the turning point as shown in FIG. 1 or may be placed near the clock generator 1 as shown in FIG.
[0029]
When the controller 3 is placed in the vicinity of the turning point, the clock transferred from the plurality of memory modules 2 to the controller 3 is the clock TCLK transmitted through the forward path portion. The clock transferred in the direction is the clock RCLK transmitted through the return path. Therefore, after receiving the clock TCLK transferred to the forward path portion, the controller 3 starts access (address / command output, etc.) to the memory module 2. On the other hand, each memory module 2 starts a data output operation after receiving the clock RCLK transferred to the return path portion. That is, for each address / command received by each memory module 2 at timing B which is the rising timing of the clock RCLK, the data is synchronized with the clock TCLK from the timing A which is the rising timing of the clock TCLK. If the data is output to the bus 5, no data collision occurs on the bus, and no empty cycle occurs in the data received by the controller 3. This will be described later with reference to the flowcharts of FIGS.
[0030]
On the other hand, each memory module 2 receives an address / command at timing B, and outputs data to the data bus 5 after a certain clock cycle from timing A, after so-called latency. In that case, each memory module 2 finishes outputting a series of data, and when starting a new data output cycle, in order to set the latency, the counter counts the clock TCLK by the number corresponding to the latency. There is a need. As will be described later, each memory module 2 is provided with a counter for setting latency, and a control procedure for controlling the operation of the counter will be described below with reference to FIG.
(1) First, immediately after the timing M, the counter is set to be capable of counting the number of cycles (step S1).
(2) Next, the number of cycles is counted by the counter in synchronization with the rise and fall of the clock TCLK input immediately after the timing M (step S2).
(3) It is determined whether or not the command fetched in synchronization with the clock RCLK input immediately after the timing M is a new cycle count command (step S3). At this time, if the command is a new cycle number count command, the process returns to step S2, and the clock TCLK is counted by the counter as many times as necessary to set the latency in synchronization with the rise and fall of the clock TCLK. Be counted.
(4) On the other hand, if the command fetched in synchronization with the clock RCLK input immediately after the timing M is not a new cycle count command including a state where there is no command in step S3, the count is reset, The countable state is released, and the count operation is deactivated (step S4).
[0031]
If the cycle of the clock TCLK is counted after receiving the command in synchronization with the clock RCLK in the above control procedure, the memory module 2 arranged near the turn-around point is also arranged near the clock generator 1. 2, data can be output to the data bus 5 in synchronism with the clock TCLK with the same latency from the timing A.
[0032]
For example, when each memory module 2 outputs data at a double data rate (DDR) and the latency is 2, the command corresponding to the timing A1 of the clock TCLK is the timing of the clock RCLK. It is assumed that the memory module 2 has taken in B1. In response to this command, the memory module 2 outputs data after the clock TCLK changes twice from the timing t1 when the clock TCLK first rises after the timing A1, that is, after the timing t2 of the clock TCLK. Next, it is assumed that a command corresponding to the timing t1 (timing A2) of the clock TCLK is taken into another memory module 2 at the timing B2 of the clock RCLK. In response to this command, the memory module 2 outputs data after the clock TCLK changes twice from the timing t3 of the clock TCLK that rises for the first time after the timing A2, that is, after the timing t4 of the clock TCLK.
[0033]
When data is read in this way, the read data does not collide on the bus, and no empty cycle occurs in the data received by the controller 3.
[0034]
As a result, when the controller 3 performs an operation of outputting a command and receiving data corresponding to the command, the influence of the position difference on the data bus 5 of the plurality of memory modules 2 is completely eliminated.
[0035]
Next, the case where the controller 3 is placed near the clock generator 1 as shown in FIG. 2 will be described. In this case, the clock transferred from the controller 3 in the direction of the plurality of memory modules 2 is the clock TCLK transferred in the forward path portion. Conversely, the clock transferred from the plurality of memory modules 2 in the direction of the controller 3 is the backward path portion. Is the clock RCLK transferred. The controller 3 starts access to the memory module 2 (address / command output, etc.) after receiving the clock TCLK transferred in the forward path portion. Further, each memory module 2 starts the timing B which is the rising timing of the clock RCLK with respect to the command received at the timing A which is the rising timing of the clock TCLK, and the data is synchronized with the clock RCLK. If the data is output to, the data bus collision does not occur and the data received by the controller 3 does not have an empty cycle.
[0036]
When each memory module 2 finishes outputting a series of data and starts a new data output cycle, in order to set the latency, it is necessary to count the clock RCLK by the counter according to the number corresponding to the latency. A control procedure for controlling the operation of the counter will be described below with reference to FIG.
(1) In each memory module 2, a command is fetched in synchronization with the clock TCLK (step S11).
(2) It is determined whether or not the command fetched in step S11 is a new cycle number count command (step S12).
(3) If it is determined in step S12 that the command is a new cycle number count command, the counter is enabled to count the number of cycles at the timing M immediately after this, and the rising edge of the clock RCLK input immediately after the timing M In synchronization with the fall, the clock RCLK is counted by the counter as many times as necessary to set the latency (step S13).
[0037]
For example, as in the previous case, when each memory module 2 outputs data by DDR and the latency is 2, the command output from the controller 3 is a memory at a timing A1 of the clock TCLK. Suppose that it was taken into module 2. In response to this command, the memory module 2 outputs data after the clock RCLK changes four times from the timing t5 when the clock RCLK first rises after the timing A1, that is, after the timing t8 of the clock RCLK. Next, it is assumed that the command output from the controller 3 is taken into another memory module 2 at the timing A2 of the clock TCLK. In response to this command, the memory module 2 outputs data after the clock RCLK changes four times from the timing t7 when the clock RCLK first rises after the timing A2, that is, after the timing t10 of the clock RCLK.
[0038]
When data is read in this way, data collisions do not occur, and no empty cycle occurs in the data received by the controller 3.
[0039]
On the other hand, on the controller 3 side, the timing A of the clock TCLK (for example, the timing A1 in FIG. 3) and the timing B of the clock RCLK (for example, the timing B1 of the clock RCLK in FIG. 3) are the same due to the presence of the intermediate timing M. The cycle clock TCLK is associated with the clock RCLK. For this reason, when the controller 3 issues a command and receives the corresponding data, the influence of the difference in the position of the memory module on the bus is eliminated.
[0040]
Next, a specific method and circuit for setting the intermediate timing M by the memory module 2 or the controller 3 will be described.
[0041]
As shown in FIGS. 1 and 2, the first basic clocks TCLK and RCLK and the second clocks TCLK2 and RCLK2 are transferred on the clock wirings 4A and 4B and supplied to the memory modules 2 and the controller 3. Is done.
[0042]
FIG. 6 shows the phase states of the clocks TCLK, RCLK, TCLK2, and RCLK2 at certain positions on the clock wirings 4A and 4B. As shown in the figure, for example, cycles indicated by upward arrows correspond to cycles before and after the turning point, that is, signals indicated by upward arrows are signals of the same cycle. Since the second basic clocks TCLK2 and RCLK2 each having a period twice that of the first basic clocks TCLK and RCLK are transferred, the first basic clocks TCLK and RCLK received by the memory module 2 and the controller 3 are It can be divided into an even cycle clock and an odd cycle clock. Here, for convenience, the 0th, 2nd, 4th,... Clocks in FIG. 6 are referred to as even cycle clocks, and the 1st, 3rd, 5th,.
[0043]
Various internal clocks are generated from the clocks TCLK, RCLK, TCLK2, and RCLK2, and thereafter, e is used for each internal clock related to the even cycle clock, o is used for each internal clock related to the odd cycle clock, and the rising edge of the basic clock. Each internal clock synchronized with is subscripted by u, and each internal clock synchronized with a timing shifted by 180 degrees in the rising period is denoted by a suffix d.
[0044]
FIG. 7 shows the phase relationship between the even-cycle internal clock Teu or Reu and the odd-cycle internal clock Tou or Rou generated in synchronization with the clock TCLK or RCLK. If these internal clocks are generated in each memory module 2 or controller 3, the above timing M can be generated by the memory chip in each memory module 2 or the controller chip in the controller 3 by using these internal clocks. it can.
[0045]
Timing M is either cycle of internal clock Rou or clock RCLK delayed by δ with respect to either cycle of internal clock Tou or clock TCLK (referred to as, for example, CLK1) (referred to as CLK2, for example). Corresponds to the timing delayed by δ / 2 from CLK1. This timing M is generated by the following method.
[0046]
First, a phase difference (2τ−δ) between a period 2τ of two periods of CLK1 or CLK2 and a delay (δ) of CLK2 with respect to CLK1 is generated. Next, a timing delayed by a period (τ−δ / 2) which is half of the phase difference (2τ−δ) is generated from CLK1. Then, a delay (τ + δ / 2) from this timing to a certain CLK1 cycle is generated, a timing delayed from the above-mentioned certain CLK1 cycle by this delay is created, and this timing is set as a timing delayed by δ / 2 with respect to CLK1. .
[0047]
Next, a specific method of creating the timing M using a circuit called a Synchronous Adjustable Delay (abbreviated as SAD) will be described with reference to FIG. The synchronous adjustable delay is described in detail in the specification and drawings of Japanese Patent Application No. 9-100490 filed by the present inventor, and the specific configuration thereof will be described in detail later.
[0048]
The clock TCLK is transferred to the return path side as the clock RCLK via the turning point of the clock wiring 4A in FIG. 1 and FIG. 2, and a phase difference of δ is generated between the clocks TCLK and RCLK. To do. This phase difference δ is assumed to be within a range of 0 to (360 * 2) degrees, that is, within two cycles of the clock TCLK.
[0049]
The clocks shown in FIG. 8 are classified into an even cycle clock e and an odd cycle clock o. FIG. 8 shows a state in which the corresponding intermediate timing Me is created from the rising timing of the even cycle clock with an upward arrow. In addition, since it can be considered similarly in the case of an odd cycle clock, the description thereof is omitted.
[0050]
First, it starts from the timing t1 when the internal clock Rou rises. Using a synchronous adjustable delay, the amount of delay from the rise of the internal clock Rou to the rise of the internal clock Tou that occurs immediately after that is measured at the timing t2 when the internal clock Tou rises. Next, an internal clock Φe is generated at timing t3 after a delay time that is half the delay amount. If the period of the basic clock is τ, the delay amount between the internal clocks Rou and Tou is 2τ−δ, so the period between the timings t2 and t3, that is, the delay amount between the internal clocks Tou and Φe. Becomes τ−δ / 2. Further, using a synchronous adjustable delay, the delay amount from the rising timing of the internal clock Φe to the rising timing of the internal clock Tou immediately after that is measured at the rising timing t4 of the internal clock Tou. Then, after the same delay time as this delay amount, the internal clock Me is generated at timing t5. The delay amount between timings t2 and t4 is equal to one period of the internal clock Tou and is 2τ. Therefore, the delay amount between timings t3 and t4, that is, the delay amount between the internal clocks Φe and Tou, is By subtracting the delay amount from timing t2 to t3 from the delay amount from timing t2 to t4, τ + δ / 2 is obtained, and the delay amount from timing t4 to t5 is also equal to τ + δ / 2.
[0051]
Therefore, the timing of the internal clock Me whose phase is shifted by τ + δ / 2 from the rising edge of the internal clock Tou is the timing whose phase is shifted by δ / 2 from the rising edge of the internal clock Teu. This is an intermediate timing between the clocks Teu and Reu.
[0052]
In this way, a necessary intermediate timing signal can be obtained in a period of five cycles of the basic clock. If the subscript e for the clock used in FIG. 8 and the above description is replaced with o, an intermediate timing signal Mo having a rising timing shifted in phase by δ / 2 from the rising of the internal clock Tou can be obtained. Then, by synthesizing the intermediate timing signal Me and Mo, the intermediate timing signal M shown in FIG. 3 is obtained.
[0053]
FIG. 9 is provided in each of the plurality of memory modules 2 and the controller 3 in FIGS. 1 and 2, and generates the timing signal M and counts the previous number of cycles based on the generated timing signal M. 1 shows a configuration of a control circuit including a counter for setting the latency based on the counter to be output and a count output of the counter. The control circuit receives the clocks TCLK, RCLK, TCLK2, and RCLK2, and generates a timing signal M from the previous timing signal M401, and the commands output from the clocks TCLK, RCLK, TCLK2, and RCLK2, and the previous controller 3. And an internal controller 402 that receives the timing signal M output from the timing signal generation circuit 401 and realizes the control procedure shown in FIGS. 4 and 5 and generates a counter set / reset signal as a result. The counter 403 that receives the set / reset signal generated by the internal controller 402 and counts the clock TCLK or RCLK to count the number of cycles, and the latency that receives the count output N of the counter 403 and sets the latency. Control times And a 404.
[0054]
The output of the latency control circuit 404 is sent to a data input / output circuit (not shown), and data input / output control is performed by this data input / output circuit.
[0055]
FIG. 10 is a detailed block diagram of the timing signal generation circuit 401 in FIG. In FIG. 10, internal clock T2 / R2 generation circuit 501 receives clock TCLK / RCLK and clock TCLK2 / RCLK2, and generates internal clock T2 / R2. Internal clock Tou / Rou generation circuit 502 receives clock TCLK / RCLK, clock TCLK2 / RCLK2, and internal clock T2 / R2, and generates internal clock clock Tou / Rou. Internal clock Teu / Reu generation circuit 503 receives clock TCLK / RCLK, clock TCLK2 / RCLK2, and internal clock T2 / R2, and generates internal clock clock Teu / Reu. An internal clock Φo / Φe generation circuit 504 receives the internal clocks Tou / Rou and Teu / Reu and generates an internal clock Φo / Φe.
[0056]
The timing M generation circuit 505 receives the internal clocks Tou / Rou, Teu / Reu, and the internal clocks Φo / Φe, and generates a timing M (Me and Mo).
[0057]
Next, a more detailed configuration and operation of each circuit in FIG. 10 will be described below.
[0058]
FIG. 11 shows a specific configuration of the control signal T2 / R2 generation circuit 501 in FIG. 10 that generates the control signal T2 or R2 for dividing the even-numbered cycle and the odd-numbered cycle of the basic clock. The basic configuration of the control signal T2 generation circuit and the control signal R2 generation circuit is the same, only the input signal is different.
[0059]
This circuit includes a buffer 11 to which a clock TCLK or RCLK is input, an odd-numbered (12 in this example) buffer 12 to which a clock TCLK2 or RCLK2 is input, and four NAND gates 13 to 16. It consists of and.
[0060]
That is, the output of the buffer 11 is input to the inverting input terminal of the NAND gate 13 and to one inverting input terminal of the NAND gate 14. The output of the downstream buffer 12 of the cascaded three-stage buffers 12 is supplied to the non-inverting input terminal of the NAND gate 13 and the other inverting input terminal of the NAND gate 14, respectively. The output of the NAND gate 13 is supplied to one input terminal of the NAND gate 15, the output of the NAND gate 14 is supplied to one input terminal of the NAND gate 16, and the other input of the NAND gates 15 and 16 is supplied. The ends are connected to the output ends of different NAND gates.
[0061]
That is, in the circuit shown in FIG. 11, the control signal T2 or R2 for dividing the even-numbered clock and the odd-numbered clock of the basic clock is generated by the flip-flop composed of the two NAND gates 15 and 16.
[0062]
As shown in the timing chart of FIG. 14, when the second basic clock TCLK2 (RCLK2) is “H”, the control signal T2 / R2 is changed from “H” to “L” when the first basic clock TCLK (RCLK) is “H”. “H” at the time of transition to “L”, and “L” at the time of transition at which the first basic clock TCLK (RCLK) changes from “L” to “H” when the second basic clock TCLK2 (RCLK2) is “L”. "
[0063]
12 shows a detailed configuration of the internal clock Tou / Rou generation circuit 502 in FIG. 10 for generating the internal clock Tou or Lou, and FIG. 13 shows the internal clock in FIG. 10 for generating the internal clock Teu or Reu. A detailed configuration of the Teu / Reu generation circuit 503 is shown. The basic configuration of the internal clock Tou generation circuit and the internal clock Rou generation circuit is the same, only the input signal is different.
[0064]
In the circuit of FIG. 12, the first basic clock TCLK or RCLK is supplied to one input terminal of the AND gate 22 via the buffer 21. The other input terminal of the AND gate 22 is supplied with a signal T2 or R2 generated by the circuit of FIG. The output of the AND gate 22 is supplied to one input terminal of the AND gate 24 through the buffer 23. A high level logic signal “H” is constantly supplied to the other input terminal of the AND gate 24. The output of the AND gate 24 is supplied to a forward delay circuit FD of a synchronous adjustable delay 26 through a buffer 25. The output of the AND gate 22 is supplied to the SAD 26 as a control clock. The SAD 26 is provided with a backward delay circuit BD in addition to the forward delay circuit FD.
[0065]
The forward delay circuit FD of the synchronous adjustable delay 26 is provided with a plurality of delay units. The signal input to the forward delay circuit FD is sequentially delayed by passing through the plurality of delay units. In the synchronous adjustable delay 26, the signal from the buffer 25 is supplied to the forward delay circuit FD, and the delay time Δ until the output from the AND gate 22 rises to the forward delay circuit FD. The supplied input signal is measured corresponding to the number of delay units passed. Further, a delay amount corresponding to the measured signal delay time Δ is held in the forward delay circuit FD. The backward delay circuit BD delays the signal by a delay amount corresponding to the delay time Δ held by the forward delay circuit FD. The output of the backward delay circuit BD is output as an internal clock Tou or Rou through the buffer 27.
[0066]
Here, assuming that the delay time in the circuit comprising the buffer 21 and the AND gate 22 with respect to the first basic clock TCLK or RCLK is D1, and the delay time in the buffer 27 with respect to the output of the backward delay circuit BD is D2, the AND gate 22 The circuit constants of the buffer 23, the AND gate 24, and the buffer 25 are set so that the delay time A in the circuit composed of the buffer 23, the AND gate 24, and the buffer 25 with respect to the output of D1 becomes D1 + D2.
[0067]
The operation principle of the signal generation circuit using such a synchronous adjustable delay is described in detail in the application of Japanese Patent Application No. 9-100490 by the present inventor.
[0068]
If the delay time A in the circuit composed of the buffer 23, the AND gate 24, and the buffer 25 in FIG. 12 is set to be equal to D1 + D2, the rising of the internal clock Tou or Rou is the first basic clock TCLK or This coincides with the rising edge of the odd clock of RCLK. This is because the delay amount of A + Δ is just equal to the period 2τ of the first basic clock of the odd clock cycle.
[0069]
The circuit of FIG. 13 is different from that of FIG. 12 in that the logic level “L” corresponding to the ground potential is constantly supplied to the other input terminal of the AND gate 24, so that the first basic clock of the even clock cycle is supplied. It just made it work based on.
[0070]
15 and 16 show specific configurations of the internal clock Φe generation circuit and the internal clock Φo generation circuit shown in FIG. Also in this case, the basic configuration of both circuits is the same, and only the input signal is different. Therefore, the internal clock Φo generating circuit will be described as a representative.
[0071]
The internal clock Rou is supplied to the forward delay circuit FD of the SAD 32 after passing through a delay time A (= 2 * D2) by two cascaded buffers 31. An internal clock Tou is supplied to the synchronous adjustable delay (SAD) 32. In this SAD 32, after the internal clock Rou is input, the delay amount Δ until the next input of the internal clock Tou is measured by the forward delay circuit FD. In the backward delay circuit BD, the number of delay units is thinned out to half of the FD so that the delay amount is always half of the FD. A signal output from the SAD 32 after a delay of Δ / 2 from the timing at which the internal clock Tou is input is output as an internal clock Φe after a delay time D2 by the buffer 33.
[0072]
That is, the delay amount between the internal clock Rou and the internal clock Tou is 2 * D2 + Δ, and the delay amount between the internal clock Tou and the internal clock Φe is half that of D2 + Δ / 2.
[0073]
Also in the circuit of FIG. 16, the internal clock Φo can be obtained from the internal clock Reu and the internal clock Teu in the same manner as described above.
[0074]
As shown in FIG. 8, the timing signal Me is obtained by starting the measurement of the delay amount from the timing when the internal clock Φe rises to the timing when the internal clock Tou rises from the timing when the internal clock Tou is input. The timing signal Mo is obtained by starting the measurement of the delay amount from the timing at which the internal clock Φo rises to the timing at which the internal clock Teu rises from the timing at which the internal clock Teu is input.
[0075]
Furthermore, the final timing signal M is obtained by combining the timing signals Me and Mo. FIG. 17 shows a circuit configuration for generating the timing signal M.
[0076]
The function of the circuit of FIG. 17 is basically the same as that of the circuits shown in FIGS. Here, a timing signal is obtained by taking the OR logic of the outputs of two synchronous and adjustable delays (SAD) 34 and 35 provided with a forward delay circuit FD and a backward delay circuit BD, respectively, by an OR gate 36 of the output stage. M (Me and Mo) is obtained. Therefore, OR gates 37 and 38 are also provided in the input stages of both SADs 34 and 35 in order to match the delay amount in the input / output stage. One OR gate 37 is supplied with an internal clock Φe and an “L” level logic signal, and the other OR gate 38 is supplied with an internal clock Φo and an “L” level logic signal. One SAD 34 is supplied with an internal clock Tou, and the other SAD 35 is supplied with an internal clock Teu as a control signal.
[0077]
As described above, if the intermediate timing M in the timing chart of FIG. 3 is determined, data transfer can be performed regardless of the position on the data bus. However, basic clock cycles such as even cycles and odd cycles have been described. Therefore, a scheme with a smaller circuit scale is possible by devising a procedure for counting the number of cycles. Furthermore, expansion to a case where the phase difference between the clocks RCLK and TCLK is shifted by two cycles or more is facilitated.
[0078]
Next, a second embodiment of the present invention in which the procedure for counting the number of cycles is changed will be described.
[0079]
FIG. 18 is a timing chart showing a method of measuring the phase difference between the clocks TCLK and RCLK and generating only the intermediate timing Me and using it only in the e cycle which is an even cycle of the basic clock. The method of generating the timing Me is as described above. Since the other timing Mo is not necessary, it is compared with the circuits shown in FIGS. 15, 16 and 17 having the function of generating the timing Mo. The circuit scale can be halved.
[0080]
In this timing chart, it is not necessary to set the timing M for each cycle. In the figure, the A1 cycle and the B1 cycle, and the A2 cycle and the B2 cycle correspond to the same cycle, and these two cycles are used for generating the timing Me.
[0081]
In this embodiment, the case where the controller 3 is in the vicinity of the turning point as shown in FIG. 1 will be described first. In this case, the command is transferred from the controller 3 to the memory module 2 in synchronization with the B1 and B2 cycles of the clock RCLK. Further, when data is transferred from the memory module 2 to the data bus 5, the number of cycles is counted from the A1 cycle and the A2 cycle in synchronization with the clock TCLK, and the data is counted at a fixed number of cycles from the A1 cycle and the A2 cycle. Must be output on bus 5. When a series of data is output and a new data output cycle is started, in order to set the latency, the counter needs to count the clock TCLK by the number corresponding to the latency.
[0082]
As described above, each memory module 2 is provided with a counter (counter 403 in FIG. 9) for setting the latency. For the control procedure for controlling the operation of this counter, refer to FIG. To explain.
(1) With respect to the first timing signal Me generated immediately after the rising timing of the clock TCLK in the A1 cycle, the counter clocks from the e cycle of the clock TCLK corresponding to the second timing signal Me generated next. TCLK is counted and counting of the number of cycles is started (S21).
(2) A command is fetched in synchronization with the clock RCLK (S22).
(3) It is determined whether or not a command has been fetched (S23).
(4) Immediately after the first timing signal Me, from the rising edge of the B1 cycle of the clock RCLK corresponding to the first timing signal Me, the cycle of the clock RCLK corresponding to the second timing signal Me (next to B2) e) If the command fetched in synchronization with the clock RCLK is not a new cycle count command including the state where there is no command during the period until the rise of e), the count operation is stopped and the next count Prepared for operation (S24).
(5) On the other hand, (a) the cycle of the clock RCLK corresponding to the second timing signal Me from the rise of the B1 cycle of the clock RCLK corresponding to the first timing signal Me immediately after the first timing signal Me. If there is a new cycle number count command in the command fetched in synchronization with the clock RCLK during the period up to the rise of (next e of B2), a certain number of cycles is counted, and the cycle is synchronized with TCLK from that cycle. Data is output to the data bus.
[0083]
(B) Immediately after the first timing signal Me, between the cycle B1 of the clock RCLK corresponding to the first timing signal Me and the cycle corresponding to the second timing signal Me (e following B2). If the cycle of the clock RCLK corresponding to the first timing signal Me immediately after the first timing signal Me is first, and there is a new cycle number command in the i-th cycle (i is a positive integer). A constant cycle number obtained by adding an extra cycle number count corresponding to the i-1 cycle is counted by the counter, and data is output to the data bus in synchronization with the clock TCLK from the cycle after the count ends (in FIG. 18). For example, if there is a command in the B2 cycle, the count end count is increased by 2) (S25).
[0084]
According to the above procedure, data is read from each memory module 2 with a predetermined latency by counting by the counter at the rise and fall of the clock TCLK. For example, when the controller 3 wants data to get on the data bus at the rising edge of the sixth cycle counting from the cycle in which the controller 3 outputs a command at a single data rate (SDR for short), the controller 3 switches to the A1 cycle. If the corresponding command is output, the memory module 2 receives this command in the B1 cycle and outputs data at the timing t3 of the clock TCLK. If the controller 3 outputs a command in the A2 cycle, the memory module 2 receives this command in the B2 cycle and outputs data at the timing t4 of the clock TCLK.
[0085]
On the other hand, as shown in FIG. 2, when the controller 3 is near the clock generator 1, the command is transferred to each memory module 2 in synchronization with the A1 and A2 cycles of the clock TCLK. When each memory module 2 outputs data to the data bus 5, the counter starts counting the number of cycles from the B1 and B2 cycles in synchronization with the clock RCLK. Is output. When outputting a series of data and starting a new data output cycle, in order to set the latency, the counter needs to count the clock TCLK by the number corresponding to the latency.
[0086]
As described above, each memory module 2 is provided with a counter (counter 403 in FIG. 9) for setting the latency. For the control procedure for controlling the operation of this counter, refer to FIG. To explain.
(1) A command is taken into the A1 cycle of the clock TCLK corresponding to the first timing signal Me (S31).
(2) From the B1 cycle of the clock RCLK corresponding to the first timing signal Me immediately after the first timing signal Me, the counter starts counting the number of cycles (S32).
(3) It is determined whether or not a command has been fetched (S33).
(4) A new cycle including a state in which a command taken in synchronization with the clock TCLK in the period up to the cycle of the clock TCLK corresponding to the second timing signal Me (e next to A2) does not include the command. If it is not a number count command, the count operation is stopped and prepared for the next count operation (S34).
(5) On the other hand, (a) the clock TCLK is changed from the A1 cycle of the clock TCLK corresponding to the first timing signal Me to the next e cycle of A2 of the clock TCLK corresponding to the second timing signal Me. If there is a new cycle number count command in the command fetched synchronously, a certain number of cycles is counted, and data is output to the data bus in synchronization with RCLK from that cycle.
[0087]
(B) In the e cycle next to A2 of the clock TCLK corresponding to the second timing signal Me, the A1 cycle of the clock TCLK corresponding to the first timing signal Me is set as the first, i-th (i is positive) If there is a new cycle number command in the (integer) cycle, the counter counts a fixed cycle number obtained by adding an extra cycle number count corresponding to the i-1 cycle, and synchronizes with the clock RCLK from the cycle after the count ends. Then, the data is output to the data bus (for example, if there is a command in the A2 cycle in FIG. 18, the count end count is increased by 2) (S35).
[0088]
As a result, for example, when the controller 3 issues a command in the A1 cycle when data is to be placed on the data bus at the rise of the fourth cycle from the cycle corresponding to the cycle in which the controller 3 has issued the command, This command is received in a cycle, and data is output at timing t5. If the controller 3 issues a command in the A2 cycle, the memory module 2 receives this command in the A2 cycle and outputs data at timing t6.
[0089]
The example of FIG. 18 is a case where the phases of the clocks TCLK and RCLK shown in FIG. However, if the system is further increased in speed or scaled and the propagation delay on the bus becomes longer than the period of the basic clock, it is required to be able to cope with, for example, a phase shift of up to 4 periods. Is done. At this time, the second basic clock is naturally a frequency-divided signal of the first basic clock whose frequency is four times that of the first basic clock.
[0090]
In FIG. 21, using the second basic clock divided by four, the four cycles of the first basic clock can be distinguished as a, b, c, d, and a phase shift of four periods can be handled. FIG. 19 shows a timing chart according to the third embodiment of the present invention corresponding to FIG.
[0091]
In this case, only the timing Ma corresponding to the a cycle is generated for the four cycles of the first basic clock. The generation method of the timing Ma will be described in detail later. The generation procedure of the timing Ma shown in FIG. 21 is the same as that in FIG. 18, and is as follows.
[0092]
First, as shown in FIG. 1, when the controller 3 is near the turning point, the command is transferred to the memory module 2 in synchronization with the four cycles of the clocks RCLK B1, B2, B3, and B4. The cycle for putting data on the data bus 5 is the fixed cycle number as a result of counting the number of cycles by the counter from each cycle of A1, A2, A3, and A4 in synchronization with the clock TCLK. When outputting a series of data and starting a new data output cycle, in order to set the latency, the counter needs to count the clock TCLK by the number corresponding to the latency. FIG. 22 shows a counting procedure with a number of clocks TCLK corresponding to the latency in the counter.
(1) The counter starts counting the number of cycles from the cycle (a cycle) of the clock TCLK corresponding to the second timing Ma immediately after the first timing Ma (S41).
(2) A command is fetched in synchronization with the clock RCLK (S42).
(3) It is determined whether or not a command has been fetched (S43).
(4) From the cycle of the clock RCLK (B1, a cycle) corresponding to the first timing Ma immediately after the first timing Ma, the cycle of the clock RCLK corresponding to the second timing Ma (next a cycle) ) Until the command fetched in synchronization with the clock RCLK is not a new cycle count command including a state in which there is no command, the count operation is stopped to prepare for the next count operation (S44). ).
(5) On the other hand, (a) From B1 cycle (a cycle) of the clock RCLK corresponding to the first timing Ma immediately after the first timing Ma, B4 of the clock RCLK corresponding to the second timing Ma is changed. If there is a new cycle number count command in the command taken in synchronization with the clock RCLK during the period up to the next a cycle, a certain number of cycles is counted, and the data is synchronized with TCLK from that cycle. Output to the bus.
[0093]
(B) Immediately after the first timing Ma, the first timing Ma is between the B1 cycle of the clock RCLK corresponding to the first timing Ma and the next corresponding cycle (the a cycle next to the B4 cycle). If the cycle (B1 cycle) of the clock RCLK corresponding to the first timing Ma immediately after the timing Ma is the first, and there is a new cycle number command in the i-th (i is a positive integer) cycle, A constant cycle number obtained by adding an extra cycle number count corresponding to the i-1 cycle is counted by the counter, and data is output to the data bus in synchronization with the clock TCLK from the cycle after the count ends (for example, in FIG. If there is a command in the B3 cycle, the count end count is increased by 4) (S45).
[0094]
For example, when the controller 3 outputs a command corresponding to the A1 cycle when data is to be put on the data bus at the rising edge of the sixth cycle from the cycle in which the controller 3 issues a command in the SDR method, the memory module 2 is in the B1 cycle. In response to the command, data is output at timing t3 of the clock TCLK. If the controller 3 outputs a command in the A3 cycle, the memory module 2 receives the command in the B3 cycle and outputs data at the timing t4 of the clock TCLK.
[0095]
On the other hand, as shown in FIG. 2, when the controller 3 is near the clock generator 1, the command is transferred to the memory module 2 in synchronization with the four cycles of the clocks TCLK including A1, A2, A3, and A4. The The cycle for putting data on the data bus 5 is the fixed cycle number as a result of counting the cycle number from the B1, B2, B3, B4 cycle by the counter in synchronization with the clock RCLK. When outputting a series of data and starting a new data output cycle, in order to set the latency, the clock RCLK needs to be counted by a number corresponding to the latency. FIG. 23 shows a counting procedure with a number of clocks RCLK corresponding to the latency in the counter.
(1) Command fetching is started from the A1 cycle (a cycle) of the clock TCLK corresponding to the first timing Ma (S51).
(2) Immediately after the first timing Ma, counting of the number of cycles starts from the B1 cycle (a cycle) of the clock RCLK corresponding to the first timing Ma (S52).
(3) It is determined whether or not a command has been fetched (S53).
(4) In the cycle up to the cycle of the clock TCLK corresponding to the second timing Ma (a cycle after the A4 cycle), a command fetched in synchronization with the clock TCLK is new, including a state where there is no command. If it is not the cycle number count command, the count operation is stopped and the next count operation is prepared (S54).
(5) On the other hand, (a) In a period from the A1 cycle of the clock TCLK corresponding to the first timing Ma to the cycle of the clock TCLK corresponding to the second timing Ma (a cycle next to the A4 cycle). If there is a new cycle number count command in the command fetched in synchronization with the clock TCLK, a certain number of cycles is counted, and data is output to the data bus from that cycle in synchronization with the clock RCLK.
[0096]
(B) In the cycle up to the clock TCLK cycle corresponding to the second timing Ma (A4 cycle), the cycle (A1 cycle) of the clock TCLK corresponding to the first timing Ma is set as the first, i-th (i Is a positive integer) cycle, if there is a new cycle number command, the counter counts a fixed cycle number obtained by adding an extra cycle number count corresponding to the i-1 cycle, and the clock RCLK from the cycle after the count ends. In synchronization with the data, the data is output to the data bus (in FIG. 21, for example, if there is a command in the A3 cycle, the count end count is increased by 4) (S55).
[0097]
As a result, for example, when the controller 3 issues a command in the A1 cycle when data is to be placed on the data bus at the rising edge of the third cycle from the cycle corresponding to the cycle in which the controller 3 issues a command, This command is received in a cycle, and data is output at timing t5. If the controller 3 issues a command in the A3 cycle, the memory module 2 receives this command in the A3 cycle and outputs data at timing t6.
[0098]
The second basic clock using the divided-by-2 clock shown in the timing chart of FIG. 18 and the second basic clock using the divided-by-4 clock shown in the timing chart of FIG. A circuit for generating the above will be described below.
[0099]
In FIGS. 11 and 12, the configuration of the circuit when the odd-numbered o-th cycle of the basic clock is selected when the divide-by-2 clock is used is shown. In the third embodiment, the circuit of FIG. 24 corresponds to the circuit of FIG. The circuit shown in FIG. 24 is different from the circuit shown in FIG. 11 in that instead of using the previous two-input NAND gates 13 and 14, three-input NAND gates 17 and 18 are used. That is, the outputs of the NAND gates 15 and 16 are fed back to input terminals 17 and 18, respectively.
[0100]
In the circuit having such a configuration, the state of the control signal T2 (R2) is changed by the transition of the clock TCLK (RCLK) to “L” in the “H” state of the clock TCLK2 (RCLK2). A change state of the control signal T2 (R2) as shown in FIG.
[0101]
FIGS. 26, 27, and 28 show circuit configurations corresponding to FIGS. 11, 15, and 17, respectively, in the third embodiment. In addition, the same code | symbol is attached | subjected to the location corresponding in each of FIG.26, FIG27 and FIG.28, and the description is abbreviate | omitted. In each of these circuits, a signal corresponding to the case of using the divide-by-two clock shown in FIG. 18 can be obtained by adding o instead of x as the subscript of each signal and e instead of y. . If c is substituted for the subscript x and a is substituted for y, a signal corresponding to the case of using the divided-by-4 clock shown in FIG. 21 can be obtained.
[0102]
In the circuit of FIG. 17, two timings Me and Mo are obtained as the timing M. On the other hand, in the case of FIG. 28, since only one timing My needs to be created, only one SAD 34 can be used. Further, on the output side of the SAD 34, a buffer 39 having a delay time D2 is used instead of the OR gate 36, and accordingly, on the input side of the SAD 34, a delay time D2 is provided instead of the OR gate 37. A buffer 40 is used.
[0103]
The above description relates to a technique for enabling a controller to efficiently transfer data without needing a useless cycle gap without considering the position of the memory module on the data bus in the data high-speed transfer system according to the present invention. Is. Next, a method for outputting data to the data bus will be described.
[0104]
In the following description, a clock having a cycle twice that of the first basic clock TCLK obtained by dividing the first basic clock TCLK by 2, for example, is used as the second basic clock TCLK2. However, since the expansion is easy even when a clock having a period four times that of the first basic clock TCLK is used as the second basic clock, no particular description will be given. The data transfer is assumed to be a so-called DDR (Double Data Rate) in which two data are transferred in one cycle of the clock.
[0105]
FIG. 29 is a timing chart showing the relationship between the first basic clocks TCLK and RCLK, the second basic clocks TCLK2 and RCLK2, and a plurality of internal clocks synchronized with the basic clock for controlling data input / output. Here, the internal clocks Teu and Tou synchronized with the rising of the even and odd cycles of the clock TCLK, the internal clocks Ted and Tod whose phases are shifted by 180 degrees with respect to these internal clocks, and the internal clock corresponding to the clock RCLK. Reu, Rou, Red, and Rod are used to control data input / output. Since the generation method of the internal clock synchronized with the rising edge of the basic clock has already been described with reference to FIGS. 11, 12, 13, and 14, the generation method of the clock that is 180 degrees out of phase with these is shown in FIGS. This will be described with reference to FIG.
[0106]
The configuration of the circuit shown in FIGS. 30 and 31 is the same as that of FIGS. 15 and 16, and only the input / output signals are different. Therefore, the parts corresponding to those in FIGS. Description is omitted.
[0107]
FIG. 30 is a circuit that creates a clock that is 180 degrees out of phase with an even-numbered (even cycle) clock, and FIG. 31 is a circuit that creates a clock that is 180 degrees out of phase with an odd-numbered (odd cycle) clock. .
First, a method for generating the internal clock Tod in the circuit of FIG. 30 will be briefly described. Since the internal clocks Teu and Tou are in phase with the basic clock TCLK or RCLK, the phase difference is 360 degrees. In the FD of the SAD 32 in FIG. 30, Δ corresponding to this delay amount is measured. The backward delay circuit (Half Backward Delay Circuit) HBD of the SAD 32 in FIG. 30 creates a delay amount Δ / 2. The internal clock Tod generated from the internal clock Tou through the backward delay circuit HBD is 180 degrees out of phase with the internal clock Tou. The data input is transferred with a certain data window with respect to the rising timing of the basic clock and the timing shifted by 180 degrees from this timing. Therefore, data can be captured at the timing generated by the circuit of FIG.
[0108]
The data must be output with a certain data window at this timing. Therefore, it is desirable to output data at an intermediate timing between these timings, and it is necessary to create an internal timing that is 90 degrees and 270 degrees out of phase with the basic clock.
[0109]
FIG. 32 is a timing chart showing how internal timing is generated when data is output using the clock TCLK. The internal clocks Teu, Tou, Ted, Tod are already generated.
[0110]
In FIG. 32, Q indicates the state of the output data, but the data is switched between the rising and falling periods of the internal clocks Teu, Tou, Ted, Tod.
[0111]
If a delay amount between the internal clocks Teu and Tod is measured and a timing t1 having a delay amount half of the measured delay amount is generated from the internal clock Tod, the basic clock period is 2 nS (frequency is 500 MHz). Even in this case, the delay amount to be measured can be 3 nS or more. This delay amount 3nS is not extremely small and can generate a timing that is 90 degrees out of phase with the basic clock.
[0112]
Similarly, if the delay amount between the internal clocks Ted and Teu is measured and a timing 2 having a delay amount that is half the measured delay amount is generated from the internal clock Teu, the phase is shifted by 270 degrees from the basic clock. Timing can be generated. Furthermore, if the delay amount from the internal clock Tou to Ted is measured and a timing t3 having a delay amount half of the measured delay amount is generated from the internal clock Ted, a timing that is 90 degrees out of phase with the basic clock is generated. can do.
[0113]
Furthermore, if the delay amount between the internal clock Tod and Tou is measured and a timing t4 having a delay amount half the measured delay amount is generated from the internal clock Tou, the phase is shifted by 270 degrees from the basic clock. Timing can be generated.
[0114]
Specific configurations of circuits for generating these timings are shown in FIGS. Since the operation of these circuits is basically the same as that of the circuits of FIGS. 15 and 16, detailed description thereof is omitted. Each of the two buffers 41 connected in cascade in two stages to which the internal clocks Teu, Ted, Tou, and Tod are respectively supplied corresponds to an output buffer for outputting data. Each of these buffers 41 has a delay time D2 corresponding to the delay amount of the output buffer.
[0115]
Each synchronous adjustable delay (SAD) 42 has a forward delay circuit FD and a backward delay circuit HBD, and the outputs cl1, cl2, cl3, and cl4, which are the outputs of the backward delay circuits HBD, It is used as a signal for driving a buffer that outputs data. Data is output to the data bus from these signals after the delay time D1.
[0116]
Although specific description thereof will be described later, the description will be made in conjunction with the description of the data bus that performs data transfer using current so that write data and read data can be simultaneously transferred in both directions.
[0117]
Although the detailed description of the synchronous adjustable delay SAD has not been described so far, FIGS. 37 and 38 show a specific internal circuit configuration of the SAD.
[0118]
FIG. 37 represents SAD at the logic gate level, while FIG. 38 represents the circuit of FIG. 37 with symbols. In FIGS. 37 and 38, corresponding portions are denoted by the same reference numerals, and description thereof is omitted.
[0119]
37, 51 has a delay time D (D1 + D2), for example, an input buffer corresponding to the buffer 40 in FIG. 28, and 52 has a similar delay time D, for example, the buffer in FIG. 39 is an output buffer corresponding to 39. Therefore, the input A of the input buffer 51 corresponds to, for example, the signal Φy in FIG.
[0120]
In the SAD, there are two cascaded inverters 53, 54, a NAND gate 55 and a NOR gate 56 to which the output of the NAND gate 55 is supplied to one input terminal. Each of the delay units DU1, a NAND gate 57 and a NOR gate 58 to which the output of the NAND gate 57 is supplied to one input terminal. The delay units DU2 of the same number as the delay units DU1 connected in cascade are connected to the inverter 53. 28 and an input B corresponding to the internal clock Txu in FIG. 28, an inverter 60 that inverts the output of the NAND gate 59 and outputs a control signal S, and the inverter 60 Delay from input B to match timing with signal S output from There the pass gates 61 for the delay to be equal, and the NOR gate 62 and NAND gate 63 which is inserted respectively between one of the delay units DU1 and other delay unit DU2 above is provided.
[0121]
Here, a plurality of delay units DU1 cascaded together constitute a forward delay circuit FD, and similarly, a plurality of delay units DU2 cascaded together constitute a backward delay circuit BD.
[0122]
Each of the circuits including the NOR gate 62 and the NAND gate 63 performs control for transferring the signal delayed by the forward delay circuit FD to the backward delay circuit BD at the timing of the signal B. Each NOR gate 62 is supplied with the control signal / S and the output of the NAND gate 55 in the corresponding delay unit DU1, and the output is supplied to the NOR gate 58 in the corresponding delay unit DU2. Each NAND gate 63 is supplied with the control signal S and the output of the NOR gate 56 in the corresponding delay unit DU1, and its output is supplied to the NAND gate 57 in the corresponding delay unit DU2.
[0123]
Next, the operation of the circuit of FIG. 37 will be described. When a pulse rising in the positive direction is input as the input A, this pulse is propagated alternately through a plurality of NAND gates 55 and NOR gates 56 in the forward delay circuit FD after a delay time D. On the other hand, the input B is input with a pulse for setting the timing for shifting the pulse traveling in the forward delay circuit FD as a falling pulse to the backward delay circuit BD. The delay time corresponding to the rising edges of the pulses of input A and input B is the rising position of the pulse traveling through the forward delay circuit FD (the rising position of the output of the NOR gate 56 or the falling position of the output of the NAND gate 55). And is transferred as the rising position of the pulse to the backward delay circuit BD. A moving gate for moving the pulse is a circuit including a NOR gate 62 and a NAND gate 63 provided between the forward delay circuit FD and the backward delay circuit BD. When the pulse input as the input A and the pulse input as the input B are the same pulse, the pulse that has entered the forward delay circuit FD in the previous cycle is first transferred to the backward delay circuit BD, and the pulse that enters the forward delay circuit FD after the delay time D Is not moved to the backward delay circuit BD, a NAND gate 59 that takes the logic of the pulse of the input A is inserted in the middle of the path from the input B to the signal S. Thereby, the output of the signal S is prohibited.
[0124]
Note that the pulse delayed by the forward delay circuit FD can move from any position of each NAND gate 55 and NOR gate 56 to the backward delay circuit BD. As a result, the accuracy of the delay time is equivalent to one logic gate of the NAND gate 55 or the NOR gate 56.
[0125]
FIG. 39, FIG. 40, and FIG. 41 each show a detailed circuit configuration of the SAD composed of the forward delay circuit FD and the backward delay circuit HBD that generates a signal that is 180 degrees out of phase with the input. FIG. 39 and FIG. 40 are detailed circuits having different configurations, respectively, and FIG. 41 shows both circuits as symbols.
[0126]
The synchronous adjustable delay shown in FIG. 39 is basically the same as that shown in FIG. 37, but the backward delay circuit BD of FIG. 37 has the number of delay units DU2 thinned out by half. The difference is that the delay circuit HBD is replaced. Therefore, the pulse propagated through the forward delay circuit FD is propagated through the backward delay circuit HBD in half the propagation time after moving to the backward delay circuit HBD, and is output as the signal C. As a result, a signal whose phase is 180 degrees behind the input A is generated. In this case, the output buffer 52 is composed of one buffer circuit.
[0127]
The synchronous adjustable delay shown in FIG. 40 is the same as the synchronous adjustable delay shown in FIG. 39, when the pulse moves from the forward delay circuit FD to the backward delay circuit HBD. The device is designed to compensate for the problem of the rough position. That is, in this example, two sets of backward delay circuits HBD are provided, and the OR logic or AND logic of the outputs of the two sets of backward delay circuits HBD is output to improve the accuracy of the delay time. is there.
[0128]
Next, a read / write simultaneous bidirectional data bus (R / W Concurrent Bi-Directional Data bus) that simultaneously transfers read / write data using a common data bus for reading / writing, which is one of the major features of the present invention. Bus (abbreviated CBDB) will be explained.
[0129]
FIG. 42 shows a configuration example of a general system that simultaneously reads and writes data from and to the memory. Synchronizing the phase with a clock output from a controller (not shown), addresses and commands pass through an address / command bus 71 and write data pass through a write data bus 72 to each memory 73. Supplied.
[0130]
On the other hand, from each memory 73, data is sent on a read data bus 74 in accordance with a clock toward the controller. Of course, data is exchanged only between the selected one memory and the controller.
[0131]
In the conventional data transfer method in which data of “1” and “0” is transferred according to the potential level, the write data bus and the read data bus are shared, and the data is transferred between the memory and the controller. When transferring the bus in both directions, it was necessary to divide the bus in a time-sharing manner.
[0132]
However, in the method of the present invention in which data transfer is performed according to the value of current and the direction in which the current flows, instead of the level of the voltage level, the data bus can be shared without time division as shown in FIG. That is, in the system shown in FIG. 43, a read / write simultaneous bi-directional data bus 75 is used instead of the write data bus 72 and the read data bus 74 in the system of FIG. It is done.
[0133]
A bidirectional data transfer method that performs data transfer according to the current value and the direction in which the current flows is, for example, “1 Gb / s Current-Mode Bidirectional I / O buffer” on page 16-2 of “1997 Symposium on VLSI Circuit”. It has been announced. However, in this publication, nothing is connected to the bus for data transfer, and the present invention is improved so that it can be applied to a system composed of a controller and a plurality of memory modules.
[0134]
FIGS. 44 and 45 show different configurations of current mode data input / output circuits that are provided in the memory modules 2 and the controller 3 in FIGS. 1 and 2, respectively, and perform data input / output control.
[0135]
The data input / output circuit shown in FIG. 44 has a data output circuit unit, and a current having a value of αI is always supplied to the data output circuit unit, and the current drain outlet of αI is turned on / off. In addition, the data input / output circuit shown in FIG. 45 is a system that performs on / off control of the current source αI itself.
[0136]
In the method of FIG. 44, the current value consumed in the data input / output circuit does not change depending on the output data, and only the current path is switched. Therefore, although there is no change in the current value in the current source causing noise, the current consumption is larger than that of the method of FIG. In contrast, in the method of FIG. 45, the current value of the current flowing in the data input / output circuit depends on the output data, but the average value of the current consumption is smaller than that of FIG.
[0137]
First, the circuit of the system shown in FIG. 44 will be described. A reference current source 81 generates a reference current I. Between the node of the power supply voltage and the reference current source 81, the sources and drains of the P channel MOS transistor P1 and the N channel MOS transistor N1 are inserted in series. An enable signal ENABLE is supplied to the gates of both transistors P1 and N1, respectively. Further, the source and drain of the P-channel MOS transistor P2 are inserted between the node of the power supply voltage and the series connection point 82 of the transistors P1 and N1. The gate of the transistor P2 is connected to the connection point 82. Further, between the source and drain of the two P-channel MOS transistors P3 and P4 are inserted in parallel between the node of the power supply voltage and the terminal DQ. The gates of both transistors P3 and P4 are connected to the connection point 82. Between the terminal DQ and the ground voltage node, the sources and drains of the two N-channel MOS transistors N2 and N3 are connected in series. The gate of one transistor N2 is connected to the terminal DQ, and the enable signal ENABLE is supplied to the gate of the other transistor N3.
[0138]
Similarly, the sources and drains of two N-channel MOS transistors N4 and N5 are connected in series between the terminal DQ and the ground voltage node. The enable signal ENABLE is supplied to the gate of the transistor N5.
[0139]
The source and drain of one P-channel MOS transistor P5 and two N-channel MOS transistors N6 and N7 are connected in series between the power supply voltage node and the ground voltage node. The gate of the transistor P5 is connected to the connection point 82, and the gate of the transistor N6 is connected to the terminal DQ. The enable signal ENABLE is supplied to the gate of the transistor N7. The input terminal of the inverter 83 is connected to the series connection point of the transistors P5 and N6. Similarly, the source and drain of one P-channel MOS transistor P6 and two N-channel MOS transistors N8 and N9 are connected in series between the power supply voltage node and the ground voltage node. . The gate of the transistor P6 is connected to the connection point 82, and the gate of the transistor N8 is connected to the terminal DQ. The enable signal ENABLE is supplied to the gate of the transistor N9. The input terminal of the inverter 84 is connected to the series connection point of the transistors P6 and N8.
[0140]
Further, between the node of the power supply voltage and the node of the ground voltage, the sources and drains of one P channel MOS transistor P7 and two N channel MOS transistors N10 and N11 are connected in series. The gate of the transistor P7 is connected to the series connection point 82, and the gate of the transistor N10 is connected to the series connection point 85 between the transistor P7 and the transistor N10. The enable signal ENABLE is supplied to the gate of the transistor N11. The gate of the transistor N4 is connected to the connection point 85. Further, the source and drain of an N-channel MOS transistor N12 are connected between the connection point 85 and the ground voltage node, and output data Q is supplied to the gate of the transistor N12.
[0141]
Here, the transistors P3, P4, P5, and P6 constitute a current mirror circuit together with the transistor P2. Then, when the reference current I of the reference current source 81 flows to the transistor P2, the currents I, αI, (1 + 0.25α) I, and (1 + 0.75α) I flow as shown in the drawings, respectively. The size of is set. Further, when the enable signal ENABLE is set to “H” at the time of data input and the transistors N7 and N9 are turned on, a current proportional to the receiver current flowing into the terminal DQ flows through the transistors N7 and N9. The inverters 83 and 84 use the currents (1 + 0.25α) I and (1 + 0.75α) I flowing through the transistors P5 and P6 as reference currents, and compare them with the receiver currents flowing through the transistors N7 and N9. , Oh. That is, Ol is “H” if the receiver current is greater than (1 + 0.25α) I, and Oh is “H” if the receiver current is greater than (1 + 0.75α) I.
[0142]
Q is a signal representing data to be output. When the data Q is “H”, the transistor N12 is turned on, the connection point 85 becomes the ground voltage, and the transistor N4 is turned off, so that the current αI can be seen from the DQ terminal. It becomes like this. On the other hand, when data Q is “L”, current flows to the node of the ground voltage via transistors N4 and N5, so that current αI flows in the input / output circuit and cannot be seen from the DQ terminal.
[0143]
Here, the current flowing through each of the two data input / output circuits exchanging data includes the current I of the reference current source 81, the current I flowing through the transistor P3, the current αI flowing through the transistor P4, and the current flowing through the transistor P5 (1 + 0. 25α) I, the current (1 + 0.75α) I flowing through the transistor P6, the current αI flowing through the transistor P7, and the current flowing through the other gates. Therefore, the current consumed by the two data input / output circuits that exchange data is constant regardless of the data.
[0144]
The terminal DQ is directly connected to the data bus, but a current path must not be made other than the terminals DQ of the two data input / output circuit terminals that exchange current. In addition, since the DQ terminal and the data bus need to be connected with low impedance, a switch element or the like cannot be inserted in series between them. Therefore, in a data input / output circuit that does not output data to the data bus and does not receive data from the data bus, the enable signal ENABLE is set to “L”. As a result, the transistor N1 is turned off, and the reference current I of the reference current source 81 does not flow to the transistor P2. As a result, no current flows to the transistors P3 to P6, so that no current path can be made at the DQ terminal.
[0145]
Further, the data input / output circuit of FIG. 44 is provided with three CMOS type transfer gates 86, 87 and 88. Data Q is supplied to the transfer gate 86 via an inverter 89 as an input. The operation of the transfer gate 86 is the output of a circuit comprising a NAND gate 90 to which data Oh is supplied to the inverting input terminal and data Ol to the non-inverting input terminal, and an inverter 91 for inverting the output of the NAND gate 90. Be controlled. The transfer gate 87 is supplied with a power supply voltage (“H”) as an input. The operation of the transfer gate 87 is controlled by the output of a circuit comprising a NAND gate 92 to which both data Oh and Ol are supplied to the non-inverting input terminal and an inverter 93 for inverting the output of the NAND gate 92. The transfer gate 88 is supplied with a ground voltage (“L”) as an input. The operation of the transfer gate 88 is controlled by the output of a circuit comprising a NAND gate 94 to which both data Oh and Ol are supplied to the inverting input terminals and an inverter 95 for inverting the output of the NAND gate 94. The output nodes of these transfer gates 86, 87, 88 are connected in common, and data D is obtained at the common connection node.
[0146]
That is, the data D is equal to the inverted version of Q if Ol = “H” and Oh = “L”. If Ol = “H” and Oh = “H”, “H”, Ol = “L”, If Oh = “L”, it is “L”.
[0147]
44, instead of the circuit CC1 surrounded by a broken line, a circuit comprising two P-channel MOS transistors P8 and P9, two N-channel MOS transistors N13 and N14, and two inverters 96 and 97. CC2 can also be used.
[0148]
Each of the two P-channel and N-channel MOS transistors P8, P9, N13, and N14 in the circuit CC2 is connected in series between a power supply voltage node and a ground voltage node. A signal Oh is input to the inverter 96, and the output of the inverter 96 is supplied to the gates of the transistors P8 and N13. A signal Ol is input to the inverter 97, and the output of the inverter 97 is supplied to the gates of the transistors P9 and N14.
[0149]
Even if such a circuit CC2 is used, the same input data D as before can be obtained.
[0150]
As described above, the data input / output circuit shown in FIG. 45 is a system that performs on / off control of the current source αI itself, and the points different from those in FIG. 44 are transistors P4, N4, N5, P7, N10. , N11 and N12 are replaced by a reference current source 98 having a reference current I, four P-channel MOS transistors P10 to P13, and one N-channel MOS transistor N15. In other respects, the circuit configuration is the same as that shown in FIG.
[0151]
Here, the transistor P10 is inserted between the node of the power supply voltage and the terminal DQ. One end between the sources and drains of the three transistors P11, P12, and P13 is connected to a power supply voltage node, and the other ends of the three transistors P11, P12, and P13 are connected in common. Yes. The source and drain of the transistor N15 are inserted between the other common connection point of the three transistors P11 to P13 and the reference current source 98. The gate and drain of the transistor P12 are short-circuited, and the gate of the transistor P10 is connected to the gate and drain short-circuit point of the transistor P12. Therefore, the transistors P10 and P12 constitute a current mirror circuit. An enable signal ENABLE is supplied to the gates of the transistors P11 and N15, and data Q is supplied to the gate of the transistor P13.
[0152]
In the input / output circuit having such a configuration, when the enable signal ENABLE is “H”, the transistor P11 is turned off and the transistor N15 is turned on. Therefore, the reference current I of the reference current source 98 is one of the transistors P12 and P13. Flowing into. For example, when the output data Q is “H”, the transistor P13 is turned off, so that the reference current I flows through the transistor P12. At this time, by adjusting the sizes of the transistors P10 and P12 in advance, the current αI flows through the transistor P10, and this current αI is output to the data bus via the terminal DQ.
[0153]
45, two P-channel MOS transistors P8 and P9 and two N-channel transistors are used in the same manner as in FIG. 44, instead of the circuit CC3 surrounded by a broken line in the figure. Even when the circuit CC4 including the MOS transistors N13 and N14 and the two inverters 96 and 97 is used, the same input data D can be obtained.
[0154]
FIG. 46 shows a configuration when the data input / output circuit having the configuration as shown in FIG. 44 or 45 is incorporated in a data transfer system having the controller 3 and the plurality of memory modules 2. Here, 100 is a controller corresponding to the controller 3, 101 and 102 are memory modules corresponding to the memory module 2, and 103 is a data input / output circuit provided in each of the controller 100 and the memories 101 and 102. 104 is a command decoder (command dec.) Provided in each of the controller 100 and the memory modules 101 and 102, 105 is a simultaneous read / write bidirectional data bus (CBDB), and 106 is a command / address bus. (Command / add.Bus).
[0155]
In the controller 100, the enable signal ENABLE0 is always set to “L”. Therefore, the data input / output circuit 103 in the controller 100 is always operable, and one memory module is selected from the command decoder 104 through the command / address bus 106. For example, when the memory module 102 is selected, the enable signal ENABLE2 of the selected memory module 102 becomes “L”, and the controller 100 and the selected memory module 102 use the simultaneous read / write bidirectional data bus 105. The exchange of data is exchanged by means of current. That is, data is transferred through this bus 105 depending on whether current 0.5αI flows in either direction or no current flows.
[0156]
FIG. 47 collectively shows the relationship between the current value and current direction of the current flowing through the bus 105 and the data transferred by the bus 105.
[0157]
In FIG. 47, own Q means data that each memory module or controller should output to the controller or each memory module. Further, the source current of itself means a current that flows in each memory module or controller via the transistors N2 and N4 (FIG. 44) or the transistors P3 and P10 (FIG. 45) connected to the terminal DQ. The partner Q means data to be output from the other controller or each memory module that is connected via the data bus and is trying to exchange data with each other. Similarly, transistors N2 and N4 connected to terminal DQ in the other controller or each memory module connected to each other via the data bus and trying to exchange data with each other (FIG. 44) Or, it means a current flowing in each memory module or controller via the transistors P3 and P10 (FIG. 45). The total source current means the sum of the source currents in one memory module and the controller that are connected via the data bus and attempt to exchange data with each other. The bus current means a current flowing through the data bus, where 0.5 αIin of the bus current is a current in a direction input from the data bus, and 0.5 αIout is a current in a direction output to the data bus. The receiver current means a sum or difference between its own source current and the current flowing through the data bus.
[0158]
According to FIG. 47, it can be seen that the other party's data Q is transferred as its own data D.
[0159]
Here, when the controller 100 is arranged in the vicinity of the turning point as described above, that is, when data is written to the memory module, data is transferred from the controller to the memory module in synchronization with the clock RCLK, and the memory When data is read from the module, the data transfer state in the data input / output circuit using the read / write simultaneous bidirectional data bus when the data is transferred to the controller in synchronization with the clock TCLK is shown in the timing chart of FIG. Show.
[0160]
It can be seen that the logical value of the data D created according to FIG. 47 matches the logical value of the data received by the controller or the data output by the controller in various cases. In FIG. 48, the position of the data D indicated by the bold line indicates the state of the data D determined by Ol and Oh regardless of the data output by itself. Then, the data D may be taken in in synchronization with the internal clocks Reu, Red, Rou, and Rod.
[0161]
Finally, a specific circuit configuration of the buffer having the delay time D2 when the data input / output circuit having the configuration shown in FIG. 44 or 45 is used will be described.
[0162]
The circuit of FIG. 49 has a configuration of a data selection output circuit that sequentially outputs data Q as shown in the timing chart of FIG. 32 using the buffer drive signals cl1 to cl4 generated by the circuits of FIGS. Is shown. In this circuit, data Data1 to Data4 are supplied to input terminals, output terminals are connected in common, and four clocked inverters 111 to 114 controlled by signals cl1 to cl4 (and their inverted signals), The output terminal is composed of two inverters 115 and 116 that are connected in reverse parallel. The output of the clocked inverters 111 to 114 is latched and output as data Q.
[0163]
FIG. 50 shows a specific circuit configuration for one buffer having a delay time D2 when the data input / output circuit having the configuration shown in FIG. 44 is used. This circuit comprises a data selection output circuit unit corresponding to the circuit of FIG. 49 and a delay circuit unit having a predetermined delay time. The data selection output circuit section inverts the input with two clocked inverters 211 and 212 whose inputs are connected to the ground voltage node or the power supply voltage node, corresponding to the clocked inverters 111 to 114 in the circuit of FIG. Thus, a latch circuit is configured with the N-channel clock gate (N-channel MOS transistor) of the clocked inverter 211 and the inverter 213 supplied to the P-channel clock gate (P-channel MOS transistor) of the clocked inverter 212. The inverters 214 and 215 correspond to the two inverters 115 and 116.
[0164]
The same signal as that input to the inverter 213 is input to the clock gate on the P channel side of the clocked inverter 211 and the clock gate on the N channel side of the clocked inverter 212.
[0165]
The delay circuit section includes transistors P1, P2, and N1 in the circuit of FIG. 44, P-channel MOS transistors P21 and P22 corresponding to the reference current source 81, an N-channel MOS transistor N21, and a reference current source 216, and data P channel MOS transistors P23 to P25 and N channel MOS transistors N22 to N26 corresponding to a circuit for converting Q into a current value are constituted.
[0166]
Since the circuit shown in FIG. 50 is configured for one buffer, two buffers CC5 surrounded by a broken line in the figure are prepared to connect two buffers, and are connected in series as shown by a circuit CC6. do it.
[0167]
FIG. 51 shows a specific circuit configuration for one buffer having a delay time D2 when the data input / output circuit having the configuration shown in FIG. 45 is used. This circuit comprises a data selection output circuit unit corresponding to the circuit of FIG. 49 and a delay circuit unit having a predetermined delay time. The data selection output circuit section is composed of two clocked inverters 211 and 212 and inverters 213, 214 and 215, as in the case of FIG.
[0168]
The delay circuit section includes P-channel MOS transistors P26 to P28 and N-channel MOS transistors N27 and N28 corresponding to a circuit for converting data Q into a current value, and a reference current source 216.
[0169]
Since the circuit shown in FIG. 51 is configured for one buffer, two buffers shown in the figure may be prepared and connected in series as shown in the circuit CC7 in order to configure two buffers.
[0170]
As described above, since data is transferred bidirectionally and simultaneously on the data bus, the number of data buses can be reduced as compared with the case where the data bus is divided into a read data bus and a write data bus. Furthermore, the number of pins of the memory module and controller can be reduced, which is advantageous in terms of area and manufacturing cost.
[0171]
【The invention's effect】
As described above, according to the present invention, it is possible to eliminate data collision on the data bus, to perform data transfer without generating a clock cycle gap, and to simultaneously read and write data at the same terminal. Therefore, a high-speed data transfer system with a small number of bus lines can be realized.
[Brief description of the drawings]
FIG. 1 is a block diagram according to a first embodiment of a high-speed data transfer system of the present invention.
FIG. 2 is a block diagram according to the first embodiment of the high-speed data transfer system of the present invention;
3 is a timing chart showing the phase relationship between clocks TCLK and RCLK at two different locations on the clock wiring in the system of FIGS. 1 and 2. FIG.
FIG. 4 is a flowchart showing an operation procedure of the system of FIG. 1;
FIG. 5 is a flowchart showing an operation procedure of the system of FIG. 2;
6 is a timing chart showing the phase states of the first basic clocks TCLK and RCLK at arbitrary positions on the clock wiring in the system of FIGS. 1 and 2. FIG.
7 is a timing chart showing an even internal clock Teu or Reu and an odd internal clock Tou or Rou that are generated in synchronization with the first basic clock TCLK or RCLK in the system of FIGS. 1 and 2; FIG.
8 is a timing chart for explaining a method of creating the intermediate timing M shown in FIG. 3 by using a synchronous adjustable delay in the system of FIGS. 1 and 2. FIG.
9 is a block diagram showing a part of an internal configuration of each of a plurality of memory modules and a controller provided in the system of FIGS. 1 and 2. FIG.
10 is a block diagram showing a detailed configuration of part of the circuit of FIG. 9;
11 is a circuit diagram showing a specific configuration of a circuit for generating control signals T2 and R2 in the circuit of FIG.
12 is a circuit diagram showing a specific configuration of a circuit that generates internal clocks Tou and Rou in the circuit of FIG. 10;
13 is a circuit diagram showing a specific configuration of a circuit for generating internal clocks Teu and Reu in the circuit of FIG.
14 is a timing chart showing the phase relationship of the control signal T2 or R2 generated by the circuit of FIG.
15 is a circuit diagram of a circuit for generating an internal timing clock Φo provided in the circuit of FIG.
16 is a circuit diagram of a circuit for generating an internal timing clock Φe provided in the circuit of FIG.
17 is a circuit diagram of a circuit that generates timing M using internal timing clocks Φo and Φe obtained by the circuits of FIGS. 15 and 16. FIG.
FIG. 18 shows an example of operation according to the second embodiment of the present invention in which the phase difference is seen only in e cycles that are even cycles of the basic clock and only the intermediate timing Me is used in the system of FIGS. The timing chart which shows.
FIG. 19 is a flowchart showing a control procedure of the operation of the system of FIG. 1 based on the method of FIG. 18;
20 is a flowchart showing a control procedure of the operation of the system of FIG. 2 based on the method of FIG. 18;
FIG. 21 is a timing chart showing an operation example of the high-speed data transfer system according to the third embodiment of the present invention;
FIG. 22 is a flowchart showing a control procedure of operation of the high-speed data transfer system according to the third embodiment.
FIG. 23 is a flowchart showing a control procedure different from that in FIG. 22 of the high-speed data transfer system according to the third embodiment;
24 is a circuit diagram showing a configuration of a circuit corresponding to the circuit of FIG. 11 in the third embodiment. FIG.
FIG. 25 is a timing chart showing the phase relationship of the control signal T2 or R2 produced by the circuit of FIG.
26 is a circuit diagram showing a circuit configuration corresponding to FIG. 12 or FIG. 13 in the third embodiment. FIG.
FIG. 27 is a circuit diagram showing a circuit configuration corresponding to FIG. 15 or FIG. 16 in the third embodiment;
28 is a circuit diagram showing a circuit configuration corresponding to FIG. 17 in the third embodiment. FIG.
FIG. 29 is a timing chart showing the phase relationship of the first basic clocks TCLK and RCLK, the second basic clocks TCLK2 and RCLK2, and the internal clock used for controlling the input / output of data in the third embodiment. chart.
30 is a circuit diagram of a circuit for generating an internal clock Tod or Rod in the third embodiment. FIG.
FIG. 31 is a circuit diagram of a circuit for generating an internal clock Ted or Red in the third embodiment.
FIG. 32 is a timing chart for explaining an internal timing generation method when data is output at the timing of the clock TCLK in the third embodiment;
FIG. 33 is a circuit diagram of a circuit for generating a timing signal cl1 in the third embodiment.
34 is a circuit diagram of a circuit for generating a timing signal cl2 in the third embodiment. FIG.
FIG. 35 is a circuit diagram of a circuit for generating a timing signal cl3 in the third embodiment.
FIG. 36 is a circuit diagram of a circuit for generating a timing signal cl4 in the third embodiment.
FIG. 37 is a circuit diagram showing a specific circuit for realizing a synchronous and adjustable delay used in the system of each of the embodiments.
38 is a circuit diagram expressing the circuit of FIG. 37 with symbols.
FIG. 39 is a circuit diagram of another specific circuit for realizing a synchronous and adjustable delay that creates a signal that is 180 degrees out of phase with respect to the input.
FIG. 40 is a circuit diagram of another specific circuit that realizes a synchronous adjustable delay that creates a signal that is 180 degrees out of phase with the input.
41 is a circuit diagram expressing the circuits of FIGS. 39 and 40 with symbols.
FIG. 42 is a circuit diagram showing a configuration example of a general data transfer system that simultaneously reads and writes data from and to a memory.
FIG. 43 is a circuit diagram showing a configuration of a data transfer system according to the present invention that simultaneously reads and writes data using current for data transfer;
44 is a circuit diagram showing a configuration of a current mode data input / output circuit which is provided in each memory module and controller in FIGS. 1 and 2 and performs data input / output.
45 is a circuit diagram showing a configuration different from that of FIG. 44 of a current mode data input / output circuit that is provided in each memory module and controller in FIGS. 1 and 2 and that inputs and outputs data;
46 is a block diagram showing a configuration when the data input / output circuit of FIG. 44 or 45 is incorporated in a data transfer system having a controller and a plurality of memory modules in FIG. 1 or FIG.
47 is a diagram collectively showing the relationship between the current value and the data transferred on the bidirectional data bus in the data transfer system shown in FIG. 46;
FIG. 48 is a timing chart showing a data transfer state in a data input / output circuit using a bidirectional data bus.
49 is a circuit diagram showing a specific circuit configuration of a data selection output circuit that sequentially outputs data Q using a buffer drive signal generated by the circuits of FIGS. 33 to 36. FIG.
50 is a circuit diagram showing a specific circuit configuration of a buffer having a delay time D2 when the data input / output circuit having the configuration shown in FIG. 44 is used.
51 is a circuit diagram showing a specific circuit configuration of a buffer having a delay time D2 when the data input / output circuit having the configuration of FIG. 45 is used.
FIG. 52 is a block diagram showing a configuration of a conventional data transfer system.
FIG. 53 is a timing chart showing an example of operation in the conventional system of FIG. 52;
54 is a timing chart showing an example of an operation different from that in FIG. 2 in the conventional system in FIG. 52;
FIG. 55 is a block diagram showing the configuration of a conventional data transfer system different from FIG.
[Explanation of symbols]
1 ... Clock generator (CG),
2 ... Memory module,
3 ... Controller,
4A, 4B ... Clock wiring,
5 ... Data bus,
6 ... Command / address bus,
11, 12 ... buffer,
13-16 ... NAND gate,
21, 23, 25, 27 ... buffer,
22, 24 ... AND gate,
26 ... Synchronous Adjustable Delay,
31, 33, 39, 40, 41 ... buffer,
32, 34, 35, 42 ... Synchronous Adjustable Delay,
36, 37, 38 ... OR gate.
FD ... Forward Delay Circuit,
BD: Backward delay circuit,
HBD ... Half Backward Delay Circuit,
51 ... Input buffer,
52 ... Output buffer,
53, 54, 60 ... inverter,
55, 57, 59 ... NAND gate,
56, 58, 62 ... NOR gate,
61 ... Passgate,
DU1, DU2, ... delay units,
71: Address / Command Bus,
72: Write Data Bus,
73 ... Memory,
75: Simultaneous read / write bi-directional data bus (R / W Concurrent Bi-Directional Data Bus),
81: Reference current source,
N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15... N-channel MOS transistors,
P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13... P channel MOS transistor,
83, 84, 89, 91, 93, 95 ... inverter,
86, 87, 88 ... CMOS type transfer gates,
90, 92, 94 ... NAND gate,
100 ... Controller,
101, 102 ... memory modules,
103 Data input / output circuit,
104 ... command decoder (command dec.),
105: Simultaneous read / write bidirectional data bus (CBDB),
106: Command / address bus (command / add.Bus),
111-114 ... Clocked inverter,
115, 116, 213, 214, 215 ... inverter,
211, 212 ... clocked inverter,
P21, P22, P23 to P25... P channel MOS transistor,
N21, N22 to N26... N channel MOS transistor,
216 ... a reference current source,
401... Timing signal generation circuit,
402: Internal controller,
403 ... Counter
404 ... Latency control circuit,
501... Internal clock T2 / R2 generation circuit,
502 ... Internal clock Tou / Rou generating circuit,
503... Internal clock Teu / Reu generation circuit,
504 ... Internal clock Φo / Φe generation circuit,
505: Timing M generation circuit.

Claims (22)

複数のメモリモジュールと、
上記複数のメモリモジュールと共に配列され、上記複数のメモリモジュールとの間でデータの授受を行うコントローラと、
第1基本クロック及びこの第1基本クロックの周期のn倍(nは2及び4のいずれか一方の値)の周期を有する第2基本クロックを発生するクロック発生器と、
上記配列された複数のメモリモジュール及びコントローラに沿って往復するように往路部分及び復路部分の配線をそれぞれ有し、上記クロック発生器で発生される上記第1及び第2基本クロックが上記各往路部分の先端からそれぞれ入力され、この入力された第1及び第2基本クロックをそれぞれ順次転送し、各往路部分及び各復路部分の配線を転送される第1及び第2基本クロックを上記複数のメモリモジュール及びコントローラに対し、これら複数のメモリモジュール及びコントローラがデータ授受の際に使用する同期信号として与える2本のクロック配線と、
上記複数の各メモリモジュール内及びコントローラ内にそれぞれ設けられ、上記2本のクロック配線の各往路部分から与えられる行きの第1及び第2基本クロックと、上記2本のクロック配線の各復路部分から与えられる帰りの第1及び第2基本クロックとを受けて、行きの第1基本クロックと帰りの第1基本クロックとの間に生じる第1基本クロックの周期のn倍(nは2及び4のいずれか一方の値)の周期以内の位相ずれに対して、その中間タイミングを検出する中間タイミング検出回路を含む制御回路と、
を具備したことを特徴とするデータ高速転送システム。
Multiple memory modules;
A controller that is arranged together with the plurality of memory modules and exchanges data with the plurality of memory modules;
A clock generator for generating a first basic clock and a second basic clock having a period n times as long as the period of the first basic clock (n is one of values 2 and 4);
Each of the first and second basic clocks generated by the clock generator has a wiring for a forward path portion and a backward path portion so as to reciprocate along the plurality of arranged memory modules and controllers. The first and second basic clocks that are input from the leading ends of the first and second input clocks are sequentially transferred, and the first and second basic clocks that are transferred through the wirings of the forward path portions and the backward path portions are transferred to the memory modules. And two clock wirings that are given to the controller as a synchronization signal used when the plurality of memory modules and the controller exchange data,
The first and second basic clocks provided from the forward path portions of the two clock wirings and the return path portions of the two clock wiring lines provided in the memory modules and the controller, respectively. In response to a given first and second basic clock, n times the period of the first basic clock that occurs between the first basic clock and the first basic clock to be returned (n is 2 and 4) A control circuit including an intermediate timing detection circuit for detecting an intermediate timing with respect to a phase shift within a period of any one value);
A high-speed data transfer system comprising:
前記複数のメモリモジュール及びコントローラに沿って設けられ、これら複数のメモリモジュール及びコントローラ相互間で授受されるデータが転送されるデータバスと、
前記複数のメモリモジュール及びコントローラに沿って設けられ、コントローラから複数のメモリモジュールに対して与えるべきコマンド及びアドレスが転送されるコマンド/アドレスバスとをさらに有することを特徴とする請求項1に記載のデータ高速転送システム。
A data bus provided along the plurality of memory modules and the controller, to which data exchanged between the plurality of memory modules and the controller is transferred;
2. The command / address bus according to claim 1, further comprising a command / address bus provided along the plurality of memory modules and the controller, to which a command and an address to be given from the controller to the plurality of memory modules are transferred. High-speed data transfer system.
前記制御回路は、さらに、
前記行きの第1基本クロック及び帰りの第1基本クロックのいずれか一方をカウントして、データ出力サイクル数を設定するカウンタを有することを特徴とする請求項2に記載のデータ高速転送システム。
The control circuit further includes:
3. The high-speed data transfer system according to claim 2, further comprising a counter that counts either one of the first basic clock to go and the first basic clock to return and sets the number of data output cycles.
前記カウンタのカウント動作が、前記コマンド/アドレスバスを転送されるコマンドに基づいて制御されることを特徴とする請求項3に記載のデータ高速転送システム。  4. The high-speed data transfer system according to claim 3, wherein the count operation of the counter is controlled based on a command transferred through the command / address bus. 前記中間タイミング検出回路は、
前記2本のクロック配線のうち一方のクロック配線の往路部分を転送される行きの第1基本クロックの第1サイクルの開始時に同期した第1制御クロックを発生する第1の内部クロック発生回路と、
前記一方のクロック配線の復路部分を転送される帰りの第1基本クロックの、上記第1サイクルの開始時に同期した第2制御クロックを発生する第2の内部クロック発生回路と、
前記一方のクロック配線の往路部分を転送される行きの第1基本クロックの、上記第1サイクルに続く第2サイクルの開始時に同期した第3制御クロックを発生する第3の内部クロック発生回路と、
前記一方のクロック配線の復路部分を転送される帰りの第1基本クロックの、上記第1サイクルに続く第2サイクルの開始時に同期した第4制御クロックを発生する第4の内部クロック発生回路と、
上記第2制御クロックと上記第1制御クロックとを受け、第2制御クロックと第1制御クロックとの間の遅延量の半分だけ第1制御クロックから遅れたタイミングに相当する第1制御信号を発生する第1の制御信号発生回路と、
上記第4制御クロックと上記第3制御クロックとを受け、第4制御クロックと第3制御クロックとの間の遅延量の半分だけ第3制御クロックから遅れたタイミングに相当する第2制御信号を発生する第2の制御信号発生回路と、
上記第1制御信号、第2制御信号、第3制御クロック及び第1制御クロックを受け、前記2本のクロック配線の各往路部分から与えられる行きの第1及び第2基本クロックそれぞれと、前記2本のクロック配線の各復路部分から与えられる帰りの第1及び第2基本クロックそれぞれとの間の中間タイミング相当する第3制御信号及び第4制御信号を発生する第3の制御信号発生回路とを含むことを特徴とする請求項1に記載のデータ高速転送システム。
The intermediate timing detection circuit
A first internal clock generating circuit for generating a first control clock synchronized with the start of the first cycle of the first basic clock to be transferred on the forward path portion of one of the two clock wirings;
A second internal clock generation circuit for generating a second control clock synchronized with the start of the first cycle of the return first basic clock transferred through the return path portion of the one clock wiring;
A third internal clock generation circuit for generating a third control clock synchronized with the start of the second cycle following the first cycle of the first basic clock to be transferred on the forward path portion of the one clock wiring;
A fourth internal clock generating circuit for generating a fourth control clock synchronized with the start of the second cycle following the first cycle of the return first basic clock transferred through the return portion of the one clock wiring;
Receives the second control clock and the first control clock, and generates a first control signal corresponding to a timing delayed from the first control clock by half the amount of delay between the second control clock and the first control clock. A first control signal generating circuit that
Receives the fourth control clock and the third control clock, and generates a second control signal corresponding to a timing delayed from the third control clock by half the amount of delay between the fourth control clock and the third control clock. A second control signal generating circuit that
Receiving the first control signal, the second control signal, the third control clock, and the first control clock, respectively, the first and second basic clocks to be provided from the forward portions of the two clock lines; a third control signal generating circuit for generating a third control signal and a fourth control signal corresponding to the intermediate timing between the respective first and second reference clock of return applied from the backward portion of the clock line The high-speed data transfer system according to claim 1, comprising:
前記中間タイミング検出回路は、
前記2本のクロック配線の往路部分を転送される行きの第1及び第2基本クロックを受け、前記一方のクロック配線の往路部分を転送される行きの第1基本クロックの第1サイクルとこの第1サイクルに続く第2サイクルとを区分するための第5制御信号を発生する第4の制御信号発生回路と、
前記2本のクロック配線の復路部分を転送される帰りの第1及び第2基本クロックを受け、前記一方のクロック配線の復路部分を転送される帰りの第1基本クロックの第1サイクルとこの第1サイクルに続く第2サイクルとを区分するための第6制御信号を発生する第5の制御信号発生回路とをさらに含むことを特徴とする請求項5に記載のデータ高速転送システム。
The intermediate timing detection circuit
The first and second basic clocks to be transferred through the forward part of the two clock lines are received, and the first cycle of the first basic clock to be transferred through the forward part of the one clock line and the first basic clock are transferred. A fourth control signal generating circuit for generating a fifth control signal for distinguishing from the second cycle following one cycle;
The first cycle of the first basic clock and the first cycle of the first basic clock that is transferred along the return path portion of the one clock wiring are received, and the first and second basic clocks that are transferred along the return path portion of the two clock wirings are received. 6. The high-speed data transfer system according to claim 5, further comprising a fifth control signal generation circuit for generating a sixth control signal for distinguishing from a second cycle following one cycle.
前記第1ないし第4の内部クロック発生回路はそれぞれシンクロナス・アジャスタブル・ディレイ(Synchronous Adjustable Delay)を有し、前記第1ないし第4の内部クロック発生回路はそれぞれこれらのシンクロナス・アジャスタブル・ディレイを用いて前記第1制御クロックないし第4制御クロックを発生することを特徴とする請求項5に記載のデータ高速転送システム。  Each of the first to fourth internal clock generation circuits has a synchronous adjustable delay, and each of the first to fourth internal clock generation circuits has a synchronous adjustable delay. 6. The high-speed data transfer system according to claim 5, wherein the first control clock to the fourth control clock are used to generate the data. 前記シンクロナス・アジャスタブル・ディレイは、
NANDゲート及びこのNANDゲートの出力が入力されるNORゲートからなる組合せ回路を1ユニットとし、縦続接続された複数のユニットにより構成され、入力信号を遅延する前進遅延回路(Forward Delay Circuit)と、
NANDゲート及びこのNANDゲートの出力が入力されるNORゲートからなる組合せ回路を1ユニットとし、上記前進遅延回路に対して同数の縦続接続された複数のユニットにより構成され、上記前進遅延回路で遅延される信号が移され、この移された信号を遅延することによって上記前進遅延回路への入力信号に対して360度位相がずれた信号を出力する後退遅延回路(Backward Delay Circuit)とを有することを特徴とする請求項7に記載のデータ高速転送システム。
The synchronous adjustable delay is
A combinational circuit composed of a NAND gate and a NOR gate to which the output of the NAND gate is input is defined as one unit, and includes a plurality of units connected in cascade, and a forward delay circuit (Forward Delay Circuit) that delays an input signal;
A combination circuit composed of a NAND gate and a NOR gate to which the output of the NAND gate is input is defined as one unit, and is composed of a plurality of units connected in cascade with the forward delay circuit, and is delayed by the forward delay circuit. And a backward delay circuit that outputs a signal that is 360 degrees out of phase with the input signal to the forward delay circuit by delaying the shifted signal. The high-speed data transfer system according to claim 7, wherein:
前記第1及び第2の制御信号発生回路はそれぞれシンクロナス・アジャスタブル・ディレイ(Synchronous Adjustable Delay)を有し、前記第1及び第2の制御信号発生回路はそれぞれこれらのシンクロナス・アジャスタブル・ディレイを用いて前記第1及び第2制御信号を発生することを特徴とする請求項5に記載のデータ高速転送システム。  Each of the first and second control signal generation circuits has a synchronous adjustable delay, and each of the first and second control signal generation circuits has a synchronous adjustable delay. 6. The high-speed data transfer system according to claim 5, wherein the first and second control signals are used to generate the first and second control signals. 前記シンクロナス・アジャスタブル・ディレイ(Synchronous Adjustable Delay)は、
NANDゲート及びこのNANDゲートの出力が入力されるNORゲートからなる組合せ回路を1ユニットとし、縦続接続された複数のユニットにより構成され、入力信号を遅延する前進遅延回路(Forward Delay Circuit)と、
NANDゲート及びこのNANDゲートの出力が入力されるNORゲートからなる組合せ回路を1ユニットとし、上記前進遅延回路に対して半数の縦続接続された複数のユニットにより構成され、上記前進遅延回路で遅延される信号が移され、この移された信号を遅延することによって上記前進遅延回路への入力信号に対して180度位相がずれた信号を出力する後退遅延回路(Half Backward Delay Circuit)とを有することを特徴とする請求項9に記載のデータ高速転送システム。
The Synchronous Adjustable Delay (Synchronous Adjustable Delay)
A combinational circuit composed of a NAND gate and a NOR gate to which the output of the NAND gate is input is defined as one unit, and includes a plurality of units connected in cascade, and a forward delay circuit (Forward Delay Circuit) that delays an input signal;
A combinational circuit composed of a NAND gate and a NOR gate to which the output of the NAND gate is input is defined as one unit, and is composed of a plurality of cascaded units of half the forward delay circuit, and is delayed by the forward delay circuit. And a backward delay circuit (Half Backward Delay Circuit) that outputs a signal that is 180 degrees out of phase with the input signal to the forward delay circuit by delaying the shifted signal. The high-speed data transfer system according to claim 9.
前記制御回路は、前記中間タイミング検出回路で検出された前記中間タイミング、前記行きと帰りの第1基本クロック、及び前記コマンド/アドレスバスを転送されるコマンドを受ける内部コントローラをさらに有し、
上記内部コントローラは、対応するサイクルの行きと帰りの第1基本クロックの中間のタイミングをMとしたときに、前の必要なサイクル数のカウントが終了していれば、下記の(1)から(4)のステップにより第1基本クロックのサイクル数のカウントを前記カウンタで行なわせてデータ出力サイクル数を設定することを特徴とする請求項4に記載のデータ高速転送システム。
(1) タイミングMの直後にサイクル数カウントを可能状態とする。
(2) (1)の直後の行きの第1基本クロックからサイクル数をカウントさせる。
(3) (1)の直後の帰りの第1基本クロックに同期して取り込まれたコマンドがサイクル数カウントコマンドであれば行きの第1基本クロックでのサイクル数カウントを必要なサイクル数継続させる。
(4) (1)の直後の帰りの第1基本クロックに同期して取り込まれたコマンドがサイクル数カウントに関連したコマンドでなければカウントをリセットしてカウント不可状態にさせる。
The control circuit further includes an internal controller that receives the intermediate timing detected by the intermediate timing detection circuit, the first basic clock for going and returning, and a command transferred on the command / address bus;
The internal controller, if the intermediate timing between the corresponding first cycle of the cycle and the return of the first basic clock is M, if the previous necessary number of cycles has been counted, the following (1) to ( 5. The data high-speed transfer system according to claim 4, wherein the number of cycles of the first basic clock is counted by the counter in step 4) to set the number of data output cycles.
(1) Immediately after timing M, the count of cycles is made possible.
(2) The number of cycles is counted from the first basic clock immediately after (1).
(3) If the command fetched in synchronization with the first basic clock returned immediately after (1) is a cycle number count command, the cycle number count in the first basic clock is continued for the necessary number of cycles.
(4) If the command fetched in synchronization with the first basic clock returned immediately after (1) is not a command related to the cycle number count, the count is reset to make it impossible to count.
前記制御回路は、
前記中間タイミング検出回路で検出された前記中間タイミング、前記行きと帰りの第1基本クロック、及び前記コマンド/アドレスバスを転送されるコマンドを受ける内部コントローラをさらに有し、
上記内部コントローラは、対応するサイクルの行きと帰りの第1基本クロックの中間のタイミングをMとしたときに、下記の(1)と(2)のステップにより第1基本クロックのサイクル数のカウントを前記カウンタで行なわせてデータ出力サイクル数を設定することを特徴とする請求項4に記載のデータ高速転送システム。
(1) 行きの第1基本クロックに同期して取り込まれたコマンドがサイクル数カウントに関連したコマンドであれば、この直後のタイミングMでサイクル数カウントを可能状態にさせる。
(2) タイミングMの直後の帰りの第1基本クロックからサイクル数をカウントさせ、必要なサイクル数継続させる。
The control circuit includes:
An internal controller for receiving the intermediate timing detected by the intermediate timing detection circuit, the first basic clock for going and returning, and a command transferred on the command / address bus;
The internal controller counts the number of cycles of the first basic clock by the following steps (1) and (2), where M is the intermediate timing between the corresponding first cycle and the first cycle. 5. The high-speed data transfer system according to claim 4, wherein the number of data output cycles is set by the counter.
(1) If the command fetched in synchronization with the first basic clock is a command related to the cycle count, the cycle count is enabled at the timing M immediately thereafter.
(2) The number of cycles is counted from the first basic clock returned immediately after the timing M, and the necessary number of cycles is continued.
前記制御回路は、
前記中間タイミング検出回路で検出された前記中間タイミング、前記行きと帰りの第1基本クロック、及び前記コマンド/アドレスバスを転送されるコマンドを受ける内部コントローラと、
上記内部コントローラによって制御され、データを出力するデータ出力回路とをさらに有し、
上記内部コントローラは、対応するサイクルの行きと帰りの第1基本クロックの中間のタイミングをMとしたときに、下記の(1)から(4)のステップにより第1基本クロックのサイクル数のカウントを前記カウンタで行なわせてデータ出力サイクル数を設定すると共に、上記データ出力回路からデータを出力させることを特徴とする請求項4に記載のデータ高速転送システム。
(1) 第1のタイミングMの直後の第2のタイミングMと対応する行きの第1基本クロックのサイクルからサイクル数のカウントを開始させる。
(2) 第1のタイミングMの直後の、この第1のタイミングMと対応する帰りの第1基本クロックのサイクルから、第2のタイミングMと対応するサイクルまでのサイクルで、帰りの第1基本クロックに同期して取り込まれたコマンドがコマンドが無い状態も含めて新たなサイクル数カウントコマンドでなければカウント動作を止めて次のカウント動作に備えさせる。
(3) 第1のタイミングMの直後の、この第1のタイミングMと対応する帰りの第1基本クロックのサイクルから、第2のタイミングMと対応するサイクルまでのサイクルで、帰りの第1基本クロックに同期して取り込まれたコマンドに新たなサイクル数カウントコマンドがあれば、一定サイクル数をカウントさせて、そのサイクルから行きの第1基本クロックに同期して上記データ出力回路からデータを出力させる。
(4) 第1のタイミングMの直後の、この第1のタイミングMと対応する帰りの第1基本クロックのサイクルから、第2のタイミングMと対応するサイクルまでのサイクルで、第1のタイミングMの直後の、この第1のタイミングMと対応する帰りの第1基本クロックのサイクルを1番目として、i番目(iは正の整数)のサイクルに新たなサイクル数コマンドがあれば(i−1)サイクルに対応するサイクル数カウントを余分に加えた一定サイクル数をカウントさせて、そのサイクルから行きの第1基本クロックに同期して上記データ出力回路からデータを出力させる。
The control circuit includes:
An internal controller for receiving the intermediate timing detected by the intermediate timing detection circuit, the first basic clock for going and returning, and a command transferred on the command / address bus;
A data output circuit controlled by the internal controller and outputting data;
The internal controller counts the number of cycles of the first basic clock according to the following steps (1) to (4), where M is the intermediate timing between the corresponding first cycle and the return of the first basic clock. 5. The high-speed data transfer system according to claim 4, wherein the counter is used to set the number of data output cycles and to output data from the data output circuit.
(1) The count of the number of cycles is started from the first basic clock cycle corresponding to the second timing M immediately after the first timing M.
(2) Immediately after the first timing M, in the cycle from the cycle of the return first basic clock corresponding to the first timing M to the cycle corresponding to the second timing M, the return first basic If the command fetched in synchronization with the clock is not a new cycle count command including the state where there is no command, the count operation is stopped to prepare for the next count operation.
(3) Immediately after the first timing M, in the cycle from the cycle of the return first basic clock corresponding to the first timing M to the cycle corresponding to the second timing M, the return first basic If there is a new cycle number count command in the command fetched in synchronization with the clock, a certain number of cycles are counted, and data is output from the data output circuit in synchronization with the first basic clock going from that cycle. .
(4) Immediately after the first timing M, the first timing M is the cycle from the return first basic clock cycle corresponding to the first timing M to the cycle corresponding to the second timing M. If the cycle of the return first basic clock corresponding to the first timing M immediately after the first is the first, and there is a new cycle number command in the i-th (i is a positive integer) cycle (i−1) ) A certain number of cycles obtained by adding an extra cycle number count corresponding to the cycle is counted, and data is output from the data output circuit in synchronization with the first basic clock going from that cycle.
前記制御回路は、
前記中間タイミング検出回路で検出された前記中間タイミング、前記行きと帰りの第1基本クロック、及び前記コマンド/アドレスバスを転送されるコマンドを受ける内部コントローラと、
上記内部コントローラによって制御され、データを出力するデータ出力回路とをさらに有し、
上記内部コントローラは、対応するサイクルの行きと帰りの第1基本クロックの中間のタイミングをMとしたときに、下記の(1)から(5)のステップにより第1基本クロックのサイクル数のカウントを前記カウンタで行なわせてデータ出力サイクル数をカウント設定すると共に、上記データ出力回路からデータを出力させることを特徴とする請求項4に記載のデータ高速転送システム。
(1) 第1のタイミングMに対応する行きの第1基本クロックのサイクルからコマンドの取り込みを開始させる。
(2) 第1のタイミングMの直後の、この第1のタイミングMと対応する帰りの第1基本クロックのサイクルからサイクル数のカウントを開始させる。
(3) 第2のタイミングMと対応する行きの第1基本クロックのサイクルまでのサイクルで、行きの第1基本クロックに同期して取り込まれたコマンドがコマンドが無い状態も含めて新たなサイクル数カウントコマンドでなければカウント動作を止めて次のカウント動作に備えさせる。
(4) 第1のタイミングMと対応する行きの第1基本クロックのサイクルから第2のタイミングMと対応する行きの第1の基本クロックのサイクルまでのサイクルで、行きの第1基本クロックに同期して取り込まれたコマンドに新たなサイクル数カウントコマンドがあれば、一定サイクル数をカウントさせて、そのサイクルから帰りの第1基本クロックに同期して上記データ出力回路からデータを出力させる。
(5) 第2のタイミングMと対応する行きの第1基本クロックのサイクルまでのサイクルで、第1のタイミングMと対応する行きの第1基本クロックのサイクルを1番目としてi番目(iは正の整数)のサイクルに新たなサイクル数カウントコマンドがあれば(i−1)サイクルに対応するサイクル数カウントを余分に加えた一定サイクル数をカウントさせて、そのサイクルから帰りの第1基本クロックに同期して上記データ出力回路からデータを出力させる。
The control circuit includes:
An internal controller for receiving the intermediate timing detected by the intermediate timing detection circuit, the first basic clock for going and returning, and a command transferred on the command / address bus;
A data output circuit controlled by the internal controller and outputting data;
The internal controller counts the number of cycles of the first basic clock in the following steps (1) to (5), where M is the intermediate timing between the corresponding first cycle and the first cycle of the return cycle. 5. The high-speed data transfer system according to claim 4, wherein the data output cycle number is set by counting by the counter and data is output from the data output circuit.
(1) Command fetching is started from the first basic clock cycle corresponding to the first timing M.
(2) Immediately after the first timing M, the counting of the number of cycles is started from the return first basic clock cycle corresponding to the first timing M.
(3) The number of new cycles including the state in which no command is received in synchronization with the first basic clock in the cycle until the first basic clock cycle corresponding to the second timing M. If it is not a count command, the count operation is stopped to prepare for the next count operation.
(4) Synchronized with the first basic clock for the cycle in the cycle from the cycle of the first basic clock for the first corresponding to the first timing M to the cycle of the first basic clock for the second corresponding to the second timing M If there is a new cycle count command in the fetched command, a certain number of cycles is counted, and data is output from the data output circuit in synchronization with the first basic clock returned from that cycle.
(5) In the cycle up to the cycle of the first basic clock corresponding to the second timing M, the cycle of the first basic clock corresponding to the first timing M is set as the first, i-th (i is positive) (I-1) If a new cycle number count command is included in the cycle of (i), a fixed cycle number obtained by adding an extra cycle number count corresponding to the cycle is counted, and the first basic clock returned from that cycle is counted. Data is output from the data output circuit in synchronization.
前記複数の各メモリモジュール及びコントローラはそれぞれデータ入出力ポートをさらに有し、
前記複数の各メモリモジュールはそれぞれ前記コマンドを前記行き及び帰りのいずれか一方の第1基本クロックに同期して取り込み、この取り込まれたコマンドによりそのメモリモジュールが選択されたことが判別したら、各メモリモジュールに設けられたデータ入出力ポートがイネーブルにされて前記データバスに接続されることを特徴とする請求項2に記載のデータ高速転送システム。
Each of the plurality of memory modules and the controller further has a data input / output port,
Each of the plurality of memory modules fetches the command in synchronization with the first basic clock of either the return or return, and when it is determined that the memory module is selected by the fetched command, 3. The high-speed data transfer system according to claim 2, wherein a data input / output port provided in the module is enabled and connected to the data bus.
前記データバスは、前記メモリモジュールに対して転送されるデータと、メモリモジュールから転送されるデータを同時に双方向に転送する双方向バスであることを特徴とする請求項15に記載のデータ高速転送システム。  16. The high-speed data transfer according to claim 15, wherein the data bus is a bidirectional bus that bidirectionally transfers data transferred to the memory module and data transferred from the memory module simultaneously. system. 前記双方向バスは、データを転送する側の前記コントローラもしくは複数の各メモリモジュールと、データが転送される側の前記コントローラもしくは複数の各メモリモジュールとの間で、電流を分配することによってデータの転送を行い、前記双方向バスへ出力されるデータの“0”と“1”が、定電流Iと、この定電流Iの(1+α)倍の電流に対応していることを特徴とする請求項16に記載のデータ高速転送システム。  The bi-directional bus distributes current between the controller or the plurality of memory modules on the data transfer side and the controller or the plurality of memory modules on the data transfer side by distributing current. The data “0” and “1” of the data that are transferred and output to the bidirectional bus correspond to a constant current I and a current that is (1 + α) times the constant current I. Item 17. The high-speed data transfer system according to Item 16. 前記定電流Iと、定電流(1+α)Iとの切り替えを、前記行き及び帰りのいずれか一方の第1基本クロックに同期して行なう定電流切り替え回路をさらに有することを特徴とする請求項17に記載のデータ高速転送システム。  18. A constant current switching circuit that further switches between the constant current I and the constant current (1 + α) I in synchronization with the first basic clock of either the return or return. High-speed data transfer system described in 1. 前記複数の各メモリモジュールからのデータ出力が、前記行き及び帰りのいずれか一方の第1基本クロックの立ち上がり及び立ち下がりのいずれか一方に対して180度位相のずれたタイミングを基準として行われることを特徴とする請求項18に記載のデータ高速転送システム。  Data output from each of the plurality of memory modules is performed with reference to a timing that is 180 degrees out of phase with respect to either the rising or falling edge of the first basic clock of either the return or return. The high-speed data transfer system according to claim 18. 前記行き及び帰りのいずれか一方の第1基本クロックの立ち上がり及び立ち下がりのいずれか一方に対して180度位相のずれたタイミングが、シンクロナス・アジャスタブル・ディレイ(Synchronous Adjustable Delay)を用いて作られることを特徴とする請求項19に記載のデータ高速転送システム。  A timing that is 180 degrees out of phase with respect to either the rising or falling edge of the first basic clock of either one of the going and returning directions is created using a Synchronous Adjustable Delay (Synchronous Adjustable Delay). The high-speed data transfer system according to claim 19. 前記シンクロナス・アジャスタブル・ディレイは遅延部を有し、この遅延部には前記定電流切り替え回路と等価な構成を有する回路が設けられていることを特徴とする請求項20に記載のデータ高速転送システム。  The high-speed data transfer according to claim 20, wherein the synchronous adjustable delay includes a delay unit, and a circuit having a configuration equivalent to the constant current switching circuit is provided in the delay unit. system. 前記複数のメモリモジュール及びコントローラはそれぞれ、前記データ入出ポートに流れる電流をモニタし、大小2つの参照電流に対するこの電流値の大小を判定して、2つの電流比較結果が共に同じ“L”または“H”の時には一方を“0”、他方を“1”に対応させて入力データとし、2つの電流比較結果が共に異なるときには入出力ポートから出力中のデータまたはその反転値を入力値とする回路をさらに有することを特徴とする請求項15に記載のデータ高速転送システム。  Each of the plurality of memory modules and the controller monitors the current flowing through the data input / output port, determines the magnitude of this current value with respect to the two reference currents of large and small, and the two current comparison results are the same “L” or “ When “H”, one corresponds to “0” and the other corresponds to “1”, and when the two current comparison results are different, the circuit outputs the data being output from the input / output port or its inverted value as the input value The high-speed data transfer system according to claim 15, further comprising:
JP01172599A 1998-01-20 1999-01-20 High-speed data transfer system Expired - Fee Related JP3719865B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP01172599A JP3719865B2 (en) 1998-01-20 1999-01-20 High-speed data transfer system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP10-8279 1998-01-20
JP827998 1998-01-20
JP01172599A JP3719865B2 (en) 1998-01-20 1999-01-20 High-speed data transfer system

Publications (2)

Publication Number Publication Date
JPH11353268A JPH11353268A (en) 1999-12-24
JP3719865B2 true JP3719865B2 (en) 2005-11-24

Family

ID=26342767

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01172599A Expired - Fee Related JP3719865B2 (en) 1998-01-20 1999-01-20 High-speed data transfer system

Country Status (1)

Country Link
JP (1) JP3719865B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3498069B2 (en) 2000-04-27 2004-02-16 Necエレクトロニクス株式会社 Clock control circuit and method
US6617894B2 (en) * 2001-05-14 2003-09-09 Samsung Electronics Co., Ltd. Circuits and methods for generating internal clock signal of intermediate phase relative to external clock
JP4159415B2 (en) 2002-08-23 2008-10-01 エルピーダメモリ株式会社 Memory module and memory system
JP2009033617A (en) * 2007-07-30 2009-02-12 Yokogawa Electric Corp Communication system
CN110610021A (en) * 2019-07-31 2019-12-24 贵州省广播电视信息网络股份有限公司 Method for quickly designing DDR wiring by LAYOUT

Also Published As

Publication number Publication date
JPH11353268A (en) 1999-12-24

Similar Documents

Publication Publication Date Title
KR100311334B1 (en) Data high speed transferring system with a plurality of memory modules and controllers
JP3727778B2 (en) Data high-speed transfer synchronization system and data high-speed transfer synchronization method
JP3769940B2 (en) Semiconductor device
US6965648B1 (en) Source synchronous link integrity validation
US7404018B2 (en) Read latency control circuit
JP4315552B2 (en) Semiconductor integrated circuit device
JP3730898B2 (en) Main storage using data strobe protocol
US7239576B2 (en) Memory device and method of controlling the same
JP2007317016A (en) Interface circuit and memory control device
JP4387371B2 (en) Memory device, its use, and data word synchronization method
JP3386031B2 (en) Synchronous delay circuit and semiconductor integrated circuit device
JP4748896B2 (en) Synchronous data transfer processing device
US7178048B2 (en) System and method for signal synchronization based on plural clock signals
JP3719865B2 (en) High-speed data transfer system
US6608514B1 (en) Clock signal generator circuit and semiconductor integrated circuit with the same circuit
US6388484B1 (en) Clock control circuit
US20150256184A1 (en) Semiconductor apparatus and semiconductor system including the same, and method of operating the same
US8222931B2 (en) Semiconductor device and driving method thereof
KR100728556B1 (en) Circuit for Outputting Data in Semiconductor Memory Apparatus
KR100389038B1 (en) Synchronous sram device with late write function
KR19990023621A (en) Semiconductor memory device
JP3783890B2 (en) Internal column address generation circuit of semiconductor memory device
JP4272149B2 (en) Data transfer method using directional coupler
JP4649064B2 (en) Output circuit
JP4599485B2 (en) Method and apparatus for logic synchronization

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050531

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050729

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050830

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050906

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080916

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090916

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees