(57)【要約】【課題】周期の短い高速データの伝送において、並列データ配線間の経路長差や寄生素子を含めた負荷容量の相違等がある場合にも、誤りなく並列データ伝送を行うことのできる半導体装置およびデータ伝送システムを提供する。【解決手段】複数ビットで構成されるデータ信号を並列信号として受信する第１のレシーバと、並列信号の取り込みのための基準信号を受信する第２のレシーバと、並列信号の全部または一部の位相を基準信号と比較しその比較結果を並列信号および基準信号の送り手側に送信する同着判定回路とを備える。【選択図】図１
2008278518.tif 000002
【特許請求の範囲】
【請求項１】
複数ビットで構成されるデータ信号を並列信号として受信する第１のレシーバと、前記並列信号の取り込みのための基準信号を受信する第２のレシーバと、前記並列信号の全部または一部の位相を前記基準信号と比較しその比較結果を前記並列信号および前記基準信号の送り手側に送信する同着判定回路とを備えることを特徴とする半導体装置。
【請求項２】
請求項１に記載の半導体装置と、
前記並列信号を送信するドライバ回路を備える第２の半導体装置が信号線路を介して相互接続されたデータ伝送システムにおいて、
前記第２の半導体装置はさらに前記判定信号に基づいて前記ドライバ回路の出力時間を調整する遅延量調整回路をもつことを特徴とするデータ伝送システム。
【請求項３】
請求項２に記載のデータ伝送システムにおいて、
前記第２の半導体装置はさらにカウンタ回路を備え、前記カウンタ回路は前記判定信号によりカウントアップまたはカウントダウンを行い前記ドライバ回路の出力時間を調整することを特徴とするデータ伝送システム。
【請求項４】
複数ビットで構成されるデータ信号を第１の並列信号として受信する第１のレシーバと、前記並列信号の取り込みのための基準信号を受信する第２のレシーバと、前記第１の並列信号の全部または一部の位相を前記基準信号と比較しその比較結果を前記並列信号および前記基準信号の送り手側に送信する同着判定回路とを備え、さらに、
複数ビットで構成されるデータ信号を第２の並列信号として出力するドライバ回路と、前記ドライバ回路の出力時間を制御する制御信号を受信する第３のレシーバと、前記制御信号により前記第２の並列信号の出力時間を調整する遅延量調整回路とを備えることを特徴とする半導体装置。
【請求項５】
請求項４に記載の半導体装置において
前記遅延量調整回路はレジスタを含み、前記レジスタが保持する情報は前記制御信号により制御されることを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列データを伝送するデータ伝送システムに関し、特にメモリシステムにおける高速データ伝送に好適なデータ伝送システムに関する。
【背景技術】
【０００２】
高速なデータ伝送を行う装置では、伝送経路によるデータ伝播遅延時間がデータ伝送周期に対して無視できない値にまで大きくなってきている。高速なデータ伝送速度が要求される装置の一例として、マイクロプロセッサ（ＭＰＵ）と、メモリコントローラＬＳＩと、複数のメモリモジュールとからなり、パーソナルコンピュータなどで使用されるメモリシステムがある。各メモリモジュールには、メモリチップであるシンクロナスＤＲＡＭ（ＳＤＲＡＭ）が複数個搭載されている。このようなメモリシステムでは、データの読出しの際は、メモリモジュール上のＳＤＲＡＭがデータを送信するドライバとなり、メモリコントローラがデータを受信するレシーバとなる。
【０００３】
各メモリモジュール上で同位置のメモリは、バス上のデータ信号配線を共有する。このとき、メモリコントローラＬＳＩ側に近いメモリモジュール上のＳＤＲＡＭからのデータ読出しと、メモリコントローラＬＳＩから遠いメモリモジュール上のＳＤＲＡＭからのデータ読出しでは、メモリモジュールとメモリコントローラＬＳＩ間の配線長が異なる。このため、メモリコントローラＬＳＩが、遠いメモリモジュール上のＳＤＲＡＭからのデータ読出しを行う場合には、近いメモリモジュール上のＳＤＲＡＭからのデータ読出しを行う場合と比較して、両メモリモジュール間の伝播遅延時間の差分だけデータの到着が遅れる。
【０００４】
このように、モジュールの位置の相違によって異なるタイミングで到着する信号に対し、レシーバが一定タイミングの基準信号を用いてデータ取込みを行うと、データの有効な時間が減少し、データ取込みのためのセットアップ時間とホールド時間が確保できなくなるという問題がある。
【０００５】
こうした問題を解決するために、例えば、特開平３−１５７０３０号公報（特許文献１）に開示されている方法がある。これは、データを出力するドライバが、自データを取り込むための基準信号をデータ信号とともに送出して、伝送遅延時間差を吸収する方法である。
【０００６】
ここで、前述したメモリシステムで使用されるデータビット幅６４ビットのメモリモジュールの典型的な構成例を、図３に模式的に示す。図３（ａ）は、×１６ビット出力のＳＤＲＡＭを４個搭載するメモリモジュールであり、図３（ｂ）は、×４ビット出力のＳＤＲＡＭを１６個搭載するメモリモジュールである。ただし、図３（ｂ）はメモリモジュールの片面を示してある。
【０００７】
図３（ａ），（ｂ）の両メモリモジュールは統一されたピン配置を用いており、データ信号ＤＱｉ（ｉ＝０−６３）、メモリコントローラＬＳＩからＳＤＲＡＭにデータを書込む際に基準とする信号ＣＬＫｊ（ｊ＝０−３）、およびＳＤＲＡＭからメモリコントローラＬＳＩにデータを読出す際の基準信号ＤＱＳｊ（ｊ＝０−３）を４本ずつ有する。データ信号ＤＱｉは６４ビットあるから、基準信号ＣＬＫｊおよびＤＱＳｊは、それぞれ１６本のデータ信号の取込み基準とする。
【０００８】
以下、基準信号ＣＬＫ０およびＤＱＳ０はそれぞれデータ信号ＤＱ０−ＤＱ１５、基準信号ＣＬＫ１およびＤＱＳ１はそれぞれデータ信号ＤＱ１６−ＤＱ３１、基準信号ＣＬＫ２およびＤＱＳ２はそれぞれデータ信号ＤＱ３２−ＤＱ４７、基準信号ＣＬＫ３およびＤＱＳ３はそれぞれデータ信号ＤＱ４８−ＤＱ６３の信号の書込み動作および読出し動作の取込み基準とする。
【０００９】
ここで、図３（ａ）のメモリモジュールでは、搭載するＳＤＲＡＭが４個であるため、基準信号とそれに対応する１６本のデータ信号は同一のＳＤＲＡＭに接続する。一方、図３（ｂ）のメモリモジュールでは、ＳＤＲＡＭが１６個あるため、基準信号ＣＬＫｉはメモリモジュール上で４分岐させて各ＳＤＲＡＭに信号を分配する。また、基準信号ＤＱＳｊは、１つのＳＤＲＡＭからの出力を４チップ分のデータ取込み基準として代表させて用いる。
【００１０】
図４は、ある一つのモジュール上のドライバＤＲＶが、データ信号ＤＱｉ（ｉ＝Ａ，Ｂ，Ｃ）とデータ取り込みのための基準信号ＣＬＫの位相を揃えて信号の送出を行い、レシーバＲＣＶが基準信号ＣＬＫの位相を１／２周期（Ｔ／２）遅らせてデータの取込みを行う例を単純化して示したものである。
【００１１】
ここで、参照符号４０１，４０２，４０３はそれぞれ信号ＤＱＡ，ＤＱＢ，ＤＱＣの出力位相を決めるフリップフロップ、４１１，４１２，４１３，４１４はそれぞれ信号ＤＱＡ，ＤＱＢ，ＤＱＣ，ＣＬＫの出力バッファ、４２１，４２２，４２３，４２４はドライバとレシーバを結ぶ信号配線であり、例えばメモリモジュールとメモリコントローラＬＳＩ間のバス配線等に相当する。また、４３１，４３２，４３３，４３４はレシーバにおける各信号の入力バッファであり、４４１，４４２，４４３は伝送データを取り込むフリップフロップである。
【００１２】
伝送すべきデータ信号ＤＱｉ（ｉ＝Ａ，Ｂ，Ｃ）と基準信号ＣＬＫを有するドライバは、例えば、図３（ａ）のように１チップの場合もあるし、図３（ｂ）の信号ＤＱＳのように異なる複数のチップで構成する場合もある。いずれの場合でも、メモリモジュール毎に異なる伝送経路長の相違は、データ取込みのための基準信号を特開平３−１５７０３０号公報（特許文献１）に記載されたように、データ信号と同時に送出することにより吸収可能である。
【００１３】
但し、このためには、データ信号と基準信号の各配線４２１−４２４を等長に配線し、かつ、これらの負荷を等しくすることが必要である。並列に送出するデータ信号と基準信号の間で、こうした等長・等負荷配線が実現されていれば、図４（ｂ）のタイミング図に示すように、ドライバＤＲＶ内のフリップフロップ４０１−４０３でのデータ信号ＤＱＡ−ＤＱＣと基準信号ＣＬＫの位相関係は、レシーバＲＣＶの入力バッファ４３１−４３４を通過しても相対的に同じに保たれるからである。
【００１４】
したがって、ドライバとレシーバ間の配線４２１−４２４、すなわちメモリコントローラＬＳＩとメモリモジュール間の線路の伝送経路長によらず、ドライバが同一タイミングで送出した基準信号とデータ信号は、レシーバにすべて同一タイミングで到着する。レシーバがこの基準信号を用いてデータ取込みを行えば、十分なセットアップ時間（ｔＤＳ）４５１とホールド時間（ｔＤＨ）４５２を確保することができる。
【００１５】
また、従来技術の別の例として、データ送信側にトレーニングデータ発生回路と、トレーニングモード信号により通常データとトレーニングデータを切り替えるセレクタを設け、データ受信側にトレーニングモード時に動作して自動的に各ビットデータ間の位相を同期化するビット位相同期回路と、このビット位相同期回路に接続して自動的に各ビットデータ間の位相を同期化するビット間位相同期回路からなるパラレルビット同期方式が特開平５−７５５９４号公報（特許文献２）に開示されている。
【特許文献１】特開平３−１５７０３０号公報
【特許文献２】特開平５−７５５９４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかし、ドライバが基準信号をデータ信号とともに送出する第１の従来技術では、図５（ａ）に示すように、プリント基板やメモリモジュール基板には配線を引くことのできない領域５０１が存在する。このため、基準信号ＣＬＫとデータ信号ＤＱＡ−ＤＱＣの配線の等長配線が困難となる場合がある。また、等長配線が実現できた場合でも、他の配線との並走・交差による寄生容量の存在や、チップ間のプロセスばらつき等によって、入力・出力バッファの特性が揃わないなど、各配線の負荷を等しくすることが必ずしも可能ではない。このような場合、各信号配線間で伝播遅延時間がそれぞれ異なるため、ドライバＤＲＶから同一の位相で送出された信号であっても、必ずしもレシーバＲＣＶに同着するとは限らない。
【００１７】
図５（ａ）に示した例では、データ信号ＤＱＡの配線５２１が他の配線よりも長く、かつ寄生容量５２２が付加されているために、信号ＤＱＡの伝播遅延時間は大きくなる。また、データ信号ＤＱＣは、レシーバＲＣＶの入力バッファ５３３の入力容量が、他の信号の入力バッファと比べて小さくなっている。このような場合、図５（ｂ）のタイミング図に示すように、信号ＤＱＢと信号ＣＬＫのレシーバへの到着タイミングに対し、信号ＤＱＡは到着タイミングが遅く、信号ＤＱＣは到着タイミングが早くなる。その結果、セットアップ時間（ｔＤＳ）５５１とホールド時間（ｔＤＨ）５５２がともに短くなる。
【００１８】
更に図３（ｂ）のように、データ信号ＤＱｉと基準信号ＤＱＳｊを異なるチップで構成する場合には、出力バッファの遅延時間のばらつきも加わる。
【００１９】
周期の短い高速データ伝送では、こうした並列データ間の伝播遅延時間差が無視できない大きさとなり、データ取込みのためのセットアップ時間とホールド時間が確保できずに、データが正常に伝送できなくなるという問題がある。
【００２０】
また、パラレルビットを同期化する第２の従来技術では、トレーニングデータ発生回路と通常動作時のデータ発生回路とのデータの経路が異なる。このため、トレーニングによりデータ信号とクロック信号およびデータ信号間の同期を確立しても、通常データ送信時には遅延時間差が生じてしまう問題がある。
【００２１】
本発明の目的は、上記の問題点を解決し、周期の短い高速データの伝送において、並列データ配線間の経路長差や寄生素子を含めた負荷容量の相違等がある場合にも、誤りなく並列データ伝送を行うことのできる半導体装置およびデータ伝送システムを提供することにある。
【課題を解決するための手段】
【００２２】
この目的を達成するため、本発明では、並列データを受信するレシーバに、受信データの一部または全部のデータの位相を比較する同着判定回路を設ける。そして、この同着判定回路の判定結果に基づいてレシーバのデータ取込み点での位相を調整するタイミング調整機構を設けることにより、各データ信号をレシーバに同着させて、データ取込みのためのセットアップ時間とホールド時間を確保する。ここで、データ取込みの基準とする信号は、ドライバからレシーバへデータ信号とともに送出しても良いし、レシーバ内部の基準信号を用いても良い。
【００２３】
この際のタイミング調整機構は、データまたは基準信号の位相を可変とする回路か、またはドライバの出力バッファの駆動力を可変とする回路とすればよい。
【００２４】
さらに、データ系列に依存する信号間の遅延時間差を吸収するためには、タイミング調整機構は、送出するデータビットの時系列に応じてもタイミングを可変とすることができるように構成する。
【００２５】
また、このタイミング調整機構は、ドライバチップ内、またはレシーバチップ内、またはドライバチップとレシーバチップの間に設けられたドライバともレシーバとも異なるチップに設けることができる。
【００２６】
特に、ドライバが送出し、レシーバが受信する上記２ビット以上の並列データは、異なる複数のドライバチップにより出力されてもよい。この際、レシーバが同着を判定する際の基準とする信号として、上記異なる複数のドライバチップ間で共通の信号を用いれば好適である。
【発明の効果】
【００２７】
本発明によれば、周期の短い高速データの伝送において、並列データ配線間の経路長差や寄生素子を含めた負荷容量の相違等がある場合にも、誤りなく並列データ伝送を行うことができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の望ましい実施形態の一例を、メモリシステムを例に具体的に説明する。
【００２９】
図２は、本発明に係るデータ伝送装置を適用した第１の実施例であるメモリシステムの簡略化した構成図である。このメモリシステムは、マイクロプロセッサ（ＭＰＵ）２０１とメモリコントローラＬＳＩ２０２、およびメモリモジュール（ＤＩＭＭ）２０３−２０６から構成される。
【００３０】
データの読出しの際は、メモリモジュール２０３−２０６上のメモリチップであるシンクロナスＤＲＡＭ（ＳＤＲＡＭ）がデータを送信するドライバとなり、メモリコントローラＬＳＩ２０２がデータを受信するレシーバとなる。図２に示した例では、各メモリモジュール上で同位置のメモリチップ、例えばＳＤＲＡＭ２１０，２１１，２１２，２１３，は、バス上のデータ信号配線２０７を共有する。
【００３１】
ここで、ＳＤＲＡＭおよびメモリコントローラＬＳＩには後述するように、並列データの送信または受信タイミングを調整するために、同着判定回路とタイミング調整機構を含むデータ入出力ブロック２３０，２３３が設けられている。なお、図２ではさらにＭＰＵ２０１およびメモリコントローラＬＳＩ２０２に、同様のデータ入出力ブロック２３１，２３２がそれぞれ設けられている。
【００３２】
しかし、ＭＰＵ２０１およびメモリコントローラＬＳＩ２０２間でのデータ伝送速度がメモリシステムの処理動作速度を制限していない場合には、それぞれデータ入出力ブロック２３１，２３２を搭載しないメモリコントローラＬＳＩおよび従来のマイクロプロセッサを使用してもよい。ここでは、本発明をメモリコントローラＬＳＩ２０２とＭＰＵ２０１間のデータ伝送にも単に適用可能なことを示したものである。このデータ入出力ブロック２３１，２３２のそれぞれの動作は、データ入出力ブロック２３０，２３３と基本的に同じであるので、以下の説明ではメモリモジュール上のＳＤＲＡＭとメモリコントローラＬＳＩ間の並列データ送受信のために設けたデータ入出力ブロック２３０，２３３に関して説明する。
【００３３】
図２４は、本発明を適用したメモリモジュールの概念図である。同図（ａ）は×１６ビット出力のＳＤＲＡＭを４個搭載するメモリモジュールの例であり、（ｂ）は×４ビット出力のＳＤＲＡＭを１６個搭載するメモリモジュールの例である。なお、図２４において、従来例の図３で示した構成要素と同じ構成部分については、同じ参照符号を付してその詳細な説明は省略する。すなわち、本実施例のメモリモジュールでは、並列データの送信または受信タイミングを調整するために、図３の（ａ），（ｂ）に示したメモリモジュールに対して、同着判定回路とタイミング調整機構を含むデータ入出力ブロック２５１および２５２をそれぞれメモリチップ内に設けている点が従来例と相違する。なお、ここでデータ入出力ブロック２５１，２５２は、それぞれ図２で示したデータ入出力ブロック２３０に相当する。
【００３４】
本発明に係るデータ伝送装置はメモリモジュールの構成によらずに実施できるから、以下、図６を用いて、詳細に説明する。
【００３５】
図６は、本発明を適用した×４ビット出力のＳＤＲＡＭを１６個搭載し、６４ビットの並列データ転送を行うように構成したメモリモジュールの例である。このメモリモジュール６００は、メモリモジュール基板の両面を使用するが、図には片面分の構成を模式的に示した。図３（ｂ）と比較すると、図６に示したメモリモジュール６００では、タイミング調整を行うためのデータビットを選択するデータビットセレクタ（ＤＢＳ）デコーダ回路６０１と、各ＳＤＲＡＭへの信号ＤＢＳｉ（ｉ＝０−５），ＣＵＰ，ＣＤＮ，ＣＲ，ＣＷ，ＴＢ０，ＴＢ１およびＣＥＮｊ（ｊ＝０−５）の配線が追加されている。また、各ＳＤＲＡＭ内には、同着判定回路とタイミング調整機構を含むデータ入出力ブロック６１０が追加されている。
【００３６】
ＤＢＳデコーダ回路６０１は、信号ＤＢＳｉをデコードする。これにより、６４ビットのデータ信号中からメモリコントローラＬＳＩが指定する１ビットと、その信号が接続されているＳＤＲＡＭを選択して、そのＳＤＲＡＭでの選択ビット信号ＴＢｉ（ｉ＝０−１）として出力する機能を持つ。また、ＤＢＳデコーダ回路６０１は、ＳＤＲＡＭ−メモリコントローラＬＳＩ間でタイミング調整のために授受する信号ＣＵＰ，ＣＤＮを、選択されたＳＤＲＡＭに接続する機能を持つ。さらに、タイミング調整のためにＳＤＲＡＭが選択された状態に有るか否かを示す信号ＣＥＮｊを、各ＳＤＲＡＭに出力する。このＤＢＳデコーダ回路６０１は、図示したように独立したＬＳＩとして作成しても良いし、コントロール・アドレス信号用バッファＬＳＩ６０２内に組み込んでもよい。
【００３７】
以下、これらの機能を実現するためのＤＢＳデコーダ回路チップの構成の一例を、図７と図８を用いて説明する。図７は、ＤＢＳｉ信号のデコード表である。ＤＢＳｉ信号のデコード表は、メモリモジュールＤＩＭＭ上でのＤＱピン番号０−６３に対応した６４本のデータ信号ＤＱ０−６３のそれぞれが、どのＳＤＲＡＭにおけるＤＱ出力ピン０−３の中のどれに対応しているかを示している。この図７に示した例では、例えば、ＤＢＳｉ＝００００００は６４本のデータ信号ＤＱ０−ＤＱ６３の中の信号ＤＱ０を意味し、ＳＤＲＡＭ０におけるＤＱ出力ピン０−３の中のＤＱ出力ピン０に対応している。同様に、ＤＢＳｉ＝１１１１１１は信号ＤＱ６３を意味し、メモリモジュール基板の裏面にある図示されていないＳＤＲＡＭ１５のＤＱ出力ピン３に対応している。
【００３８】
図８に、図７のデコード表の機能を実現するＤＢＳデコーダ回路の具体的な構成例を示す。図８中で、参照符号８００として示したブロックは、図示されていないＳＤＲＡＭ０とメモリコントローラＬＳＩとの通信を制御するブロックである。以下、８００のブロックを例に回路の説明を行うが、他の破線で示したブロックについても全く同様にしてＳＤＲＡＭ１−１５に対するＤＢＳデコーダ回路を構成できる。
【００３９】
図７のデコード表から、ＤＢＳｉ信号の上位４ビットＤＢＳ２−ＤＢＳ５が全て０のときに、ＳＤＲＡＭ０とメモリコントローラＬＳＩが通信を行うので、この４ビットに対して論理８０１をとることにより、ＳＤＲＡＭ０を選択する信号ＣＥＮ０（８０２）を作成できる。ＤＢＳｉ信号の下位２ビットＤＢＳ０，ＤＢＳ１は、ＳＤＲＡＭ０におけるＤＱ出力ピンを選択するから、信号ＣＥＮ０によりイネーブルされる３ステートバッファ８０４，８０５を介して、ＤＱ出力ピン選択信号ＴＢ０（８０７），ＴＢ１（８０８）として出力する。
【００４０】
タイミング調整信号ＣＵＰ，ＣＤＮは双方向信号であるから、メモリコントローラＬＳＩが出力してタイミング調整を行うチップを示す信号ＣＲ，ＣＷと、信号ＣＥＮ０の論理積を制御信号８０９，８１０として、３ステートバッファ８１１−８１４で相互接続する。ここで、タイミング調整を行うチップを示す信号ＣＲ，ＣＷの意味は、図９に示すように定義できる。さらに、本例では、ＣＲ，ＣＷ信号をＳＤＲＡＭ内部でも使用するため、図示しないバッファを介して全ＳＤＲＡＭへ供給する。
【００４１】
図１０に、本発明を適用した×４ビット出力のＳＤＲＡＭのブロック図を示す。また、図１１に、本発明を適用したメモリコントローラＬＳＩのブロック図を示す。図１０におけるＳＤＲＡＭは、ＤＲＡＭコア部１０５０と、入力ブロック１０２０および出力ブロック１０１０等を含む入出力ブロック１０００から構成される。ここで、ＤＲＡＭコアの動作を簡単に説明しておく。
【００４２】
ＤＲＡＭコア部１０５０は、行アドレスバッファ、行デコーダ、列アドレスバッファ、列デコーダ、センスアンプ、メモリセルアレイ等からなり、メモリ内容読出し動作においては、データ入出力ブロック１０００を介して外部からアドレス（Ａｄｄｒｅｓｓ）信号を入力する。まず、行アドレスバッファにより行アドレス信号を増幅し、行アドレスに対応するメモリセルアレイ上の行位置を、行デコーダにより活性化する。同様に、列アドレスバッファにより列アドレス信号を増幅し、列アドレスに対応するメモリセルアレイ上の列位置を、列デコーダにより選択する。こうして選択された、行・列アドレスの交点にあるメモリセルの内容を、センスアンプを通じて、データ出力ブロック１０１０へ送出する。
【００４３】
ＤＲＡＭコア部１０５０のメモリ内容書込み動作でも、行アドレスおよび列アドレスに対応するメモリセルアレイ上の位置を行デコーダおよび列デコーダで選択する。その後データ入力ブロック１１２０から入力されたデータを、センスアンプを通じて行・列アドレスの交点にあるメモリセルへ書き込む。
【００４４】
図１１におけるメモリコントローラＬＳＩは、メモリコントローラコア部１１５０と、データ出力ブロック１１１０およびデータ入力ブロック１１２０等を含むデータ入出力ブロック１１００から構成される。さらにメモリコントローラコア部１１５０は、ＭＰＵ向けＩ／Ｏインタフェース、データ／アドレス変換回路、主クロック発生器、およびデータバッファ等よりなる。ここで、メモリコントローラコア部１１５０の動作を簡単に説明しておく。ＭＰＵが、メモリコントローラＬＳＩを通じて或るアドレスに対応するメモリ値を書き込む場合および読み出す場合には、メモリコントローラコア部１１５０は次のように動作する。
【００４５】
データ入出力ブロック１１００を介してＭＰＵから指定されたアドレスと命令をＭＰＵ向けＩ／Ｏインタフェースで受け取り、データ／アドレス変換回路を用いて解釈し、メモリシステム上での対応するアドレスに変換する。この変換されたアドレスを用いて、メモリモジュールの指定、アドレスの指定、読出し／書込みタイミングの指定などを行い、データ入出力ブロック１１００を通じてこれらの制御信号を出力する。また、同時に、データ出力ブロック１１１０を通じて、データ信号を出力する。
【００４６】
データ読出しの場合には、制御信号出力の後、指定した時間が経過したときにメモリからデータが送信されてくるから、データ入力ブロック１１２０でこのデータを受信し、データ・アドレス変換回路、ＭＰＵ向けＩ／Ｏインタフェースを通じて、読み出したデータをＭＰＵへ送出する。
【００４７】
メモリコントローラコア部１１５０内のデータ信号用バッファは、こうした読出し・書込み動作をより高速に行うために、およびデータの送受信のタイミングを調整するために設ける。
【００４８】
さらに、図１０、図１１の例では、ＳＤＲＡＭおよびメモリコントローラＬＳＩの双方に対して、それぞれの入出力ブロック１０００，１１００に、同着判定回路と、遅延量調整回路および可変遅延回路からなるタイミング調整回路を追加してある。以下、（１）−（３）の順で、上述したコア部以外の本実施例の説明を行う。
（１）ＳＤＲＡＭ、メモリコントローラＬＳＩの入出力信号と主要回路ブロックの機能を説明する。
（２）これら主要回路ブロックの詳細な回路図を用いて、その動作を個別に説明する。
（３）主要な信号のタイミング図を用いて、タイミング調整の例を具体的に説明する。
【００４９】
まず、図１０を用いてＳＤＲＡＭの入出力信号と、データ入出力ブロック１０００内の主要回路ブロックの機能を説明する。入力信号ＴＢ０，ＴＢ１は、メモリコントローラＬＳＩにより出力されるＤＢＳｉ（ｉ＝０−５）信号を、ＤＢＳデコーダ回路でデコードした信号であり、図７で示したように両信号の組み合わせにより、タイミング制御対象であるＳＤＲＡＭのＤＱ信号ピンを示す。
【００５０】
入力信号ＣＲ，ＣＷは、メモリコントローラＬＳＩにより出力されるＣＲ，ＣＷ信号を、ＤＢＳデコーダ回路内のバッファを介して入力した信号である。ここで、信号ＣＲ＝"１"はＳＤＲＡＭが出力するデータをメモリコントローラＬＳＩ上で同着させるよう調整するモードにあることを示し、信号ＣＷ＝"１"は、メモリコントローラＬＳＩが出力するデータをＳＤＲＡＭ上で同着させるように調整するモードにあることを示す。信号ＣＲ，ＣＷの論理値割り当ての一例は、図９に示した。
【００５１】
ＣＥＮｉ（ｉ＝０−１５）信号は、どのＳＤＲＡＭのＤＱ信号が、タイミング調整のために選択されているかを示す信号である。
【００５２】
またＣＵＰ，ＣＤＮ信号は、同着判定回路による位相比較結果を示す信号であり、信号ＣＲ＝"１"の場合には、メモリコントローラＬＳＩから送出されるＣＵＰ，ＣＤＮ信号を用いてＳＤＲＡＭの遅延量調整回路１００６内の遅延量記憶レジスタを増減し、可変遅延回路１００１−１００５の遅延量を変えることによりデータ出力のタイミング調整を行う。ＣＵＰ，ＣＤＮ信号の論理値割り当ての一例を、図１２に示す。
【００５３】
図１０におけるデータ出力のタイミング調整は、データ出力時の位相を決定する最終段フリップフロップ回路１０１１−１０１４を動作させるためのクロック信号１００８のタイミングを、可変遅延回路１００１−１００５を用いて変化させることにより行う。この例では、ＳＤＲＡＭの可変遅延回路の遅延量調整は、６ビットすなわち６４段階に調整可能であるとした。これは例えば、周波数２００ＭＨｚの速度でデータ伝送を行い、可変遅延回路の最大遅延調整量を１周期分である５ｎｓとする場合、１段階分の遅延調整量は約７８ｐｓとなる。以上がデータ出力ブロック１０１０の動作である。
【００５４】
一方、データ入力ブロック１０２０において、信号ＣＷ＝"１"の場合には、メモリコントローラＬＳＩから送出されたデータ信号と基準信号であるＣＬＫの位相を同着判定回路１０２６により比較して、その比較結果を信号ＣＵＰおよびＣＤＮとしてメモリコントローラＬＳＩへ送出する。
【００５５】
次に、図１１を用いて、メモリコントローラＬＳＩが入出力する信号と、データ入出力ブロック１１００内の主要回路ブロックの機能について説明する。ＤＢＳｉ（ｉ＝０−５）信号は、同着判定を行い、タイミングを調整する対象となるデータ信号を選択する信号である。後述するように、本実施例では、メモリモジュールＤＩＭＭ０からＤＩＭＭ３まで、およびデータ信号ＤＱ０からＤＱ６３まで１ビットずつ順次タイミング調整を行うため、この順序を発生するカウンタ回路１１０６により、ＤＢＳｉ信号を作成する。
【００５６】
ＣＲおよびＣＷ信号は、ＳＤＲＡＭとメモリコントローラＬＳＩのうち、どちらの出力タイミング調整を行う状態にあるかを示す。
【００５７】
／ＣＳｉ（ｉ＝０−３）信号はメモリモジュールを選択する信号であり、４本中のいずれか１本が排他的に選択される。この信号により選択されているメモリモジュールのみが、動作およびタイミング調整の対象となる。
【００５８】
ＤＱＳｉ（ｉ＝０−３）信号は、データ信号取込みの基準信号として、ＳＤＲＡＭがデータ信号とともに送出する信号である。但し、基準信号ＤＱＳ０，ＤＱＳ１，ＤＱＳ２，ＤＱＳ３は、それぞれデータ信号ＤＱ０−ＤＱ１５，ＤＱ１６−ＤＱ３１，ＤＱ３２−ＤＱ４７，ＤＱ４８−ＤＱ６３のデータ取込みの基準である。
【００５９】
信号ＣＲ＝"１"の場合には、データ入力ブロック１１２０において、基準信号ＤＱＳｉとデータ信号ＤＱｊの位相を１信号対ずつ順次同着判定回路１１２６で比較する。同着判定回路１１２６は、図１２に示した論理値割り当てに従い、位相比較の結果を信号ＣＵＰ，ＣＤＮを用いてＳＤＲＡＭへ送出する。ＳＤＲＡＭは、この結果を参照してタイミング調整を行う。
【００６０】
一方、信号ＣＷ＝"１"の場合には、データ出力ブロック１１１０においてＳＤＲＡＭから送出される信号ＣＵＰ，ＣＤＮを受信し、遅延量調整回路１１１６内の遅延量レジスタを増減することにより、可変遅延回路１１０１−１１０４のクロック出力のタイミング調整を行う。ＳＤＲＡＭと同様に、メモリコントローラＬＳＩでも可変遅延回路の調整は、６ビット６４段階とした。図１１に示した可変遅延回路１１０１−１１０４と位相制御用フリップフロップ１１１１−１１１４は、それぞれ１６ビット分ずつまとめて記述してあるが、ここではデータ信号６４ビット全てのクロック入力に対し、６ビットの可変遅延回路を接続しているものとする。
【００６１】
この実施例では、レシーバのデータ取込み節点での並列ビットの位相を揃えるタイミング調整機構は、遅延量調整回路と可変遅延回路により構成されていることが分かる。
【００６２】
図１３に、ＤＱＳ信号を出力しないＳＤＲＡＭ内の遅延量調整回路１００６の構成例を示す。この例では、遅延量を６ビットの遅延量記憶レジスタ１３００−１３０３に保持し、信号ＣＵＰ，ＣＤＮにより加減算される２進アップダウンカウンタとして構成した。ここで、例えば回路ブロック１３００は、信号ＤＱ０のための遅延量記憶レジスタである。同様に、回路ブロック１３０１，１３０２，１３０３は、それぞれ信号ＤＱ１，ＤＱ２，ＤＱ３のための遅延量記憶レジスタである。
【００６３】
信号ＤＱ０においては、レジスタのＬＳＢ（最下位ビット）−ＭＳＢ（最上位ビット）がそれぞれ１３１０−１３１５に対応する。遅延量記憶レジスタ１３０１−１３０３についても、遅延量記憶レジスタ１３００と同様に構成できるため、内部構造は省略して記述していない。
【００６４】
信号ＣＴＥｉは、現在、このＳＤＲＡＭ上のデータ信号がタイミング調整の対象となっていることを示す信号であり、例えば信号ＣＴＥｉは、信号ＣＲ，ＣＳ，ＣＥＮｉを用いて、ＣＴＥｉ＝ＣＲ・ＣＳ・ＣＥＮｉとして作成できる。信号ＣＴＥｉ＝"１"のとき、信号ＴＢ０，ＴＢ１によりタイミングを制御すべき出力データ信号を選択する。
【００６５】
例えば、信号ＴＢ０＝ＴＢ１＝"０"のときには、このＳＤＲＡＭのデータ信号ＤＱ０がタイミングの制御対象として選択される。このとき、ＵＰｉ，ＤＮｉ（ｉ＝０−３）信号のうち、ＵＰ０とＤＮ０信号のみが信号配線ＣＵＰ，ＣＤＮと接続するから、クロック信号ＣＬＫの立上りで信号ＣＵＰ＝"１"または信号ＣＤＮ＝"１"の時に、データ信号ＤＱ０の遅延量記憶レジスタがインクリメントまたはデクリメントされる。ここで、抵抗１３３１−１３３４は、ＴＢ０，ＴＢ１，ＣＵＰ，ＣＤＮの各信号が非選択となっているときに中間的な電圧を取らないように、接地電位１３３５に弱く接続するための抵抗である。
【００６６】
また、この例でのアップダウンカウンタは、Ｔ型フリップフロップにより構成し、ブロック１３１０内の配線１３２１および１３２２は信号ＣＴＥｉと接続し、ブロック１３１１−１３１５内で配線１３２１および１３２２に相当する配線は、１ビット下位のブロックにおける配線１３２３および１３２４にあたる配線にそれぞれ接続する。また、ブロック１３１１−１３１５におけるＴ型フリップフロップのＴ入力は、それぞれ１ビット下位のブロックで配線１３２５に相当する配線に接続する。
【００６７】
図１３の遅延量調整回路によってタイミングの調整を行うことができる可変遅延回路の構成の一例を、図１４に示す。この可変遅延回路は、インバータＩＮＶ０，ＩＮＶ１間に、２倍ずつ容量値の異なる容量Ｃ０−Ｃ５を、スイッチＭＯＳトランジスタを介して負荷として接続した構成である。これらのＭＯＳスイッチＳＷ０−ＳＷ５を、遅延量記憶レジスタに設定された値ｂ０−ｂ５で開閉することにより、インバータＩＮＶ０からインバータＩＮＶ１間の遅延時間を６４段階に単調に変化させることができる。
【００６８】
例えば、レジスタの値ｂ０−ｂ５が全て"０"の時の遅延時間ｔ０は、ＭＯＳスイッチＳＷ０−ＳＷ５が全て非導通となるので、インバータＩＮＶ０が駆動すべき容量は、次段のインバータＩＮＶ１のゲート容量だけであり、インバータＩＮＶ０とＩＮＶ１間の遅延時間は最短となる。
【００６９】
一方、レジスタの値ｂ０−ｂ５が全て"１"の時の遅延時間ｔ６３は、ＭＯＳスイッチＳＷ０−ＳＷ５が全て導通となるので、インバータＩＮＶ０が駆動すべき容量は、次段のインバータＩＮＶ１のゲート容量とＭＯＳスイッチを介して接続する６個の容量の和（Ｃ０＋Ｃ１＋Ｃ２＋Ｃ３＋Ｃ４＋Ｃ５）である。従って、容量Ｃ０による遅延時間をΔｔとすると、インバータＩＮＶ０と１ＮＶ１間の遅延時間は最大で、ｔ６３＝ｔ０＋６３Δｔとなる。
【００７０】
図１５は、メモリコントローラＬＳＩ内の遅延量調整回路１１１６の構成の一例を示したものである。データ信号ＤＱ０からＤＱ６３まで、同一回路の繰り返しとして構成されているため、図１５においてはデータ信号ＤＱ０用の遅延量調整回路ＤＣＲ００のみ簡略化した内部構造を示し、他のデータ信号ＤＱ０１−ＤＱ６３用の遅延量調整回路ＤＣＲ０１−ＤＣＲ６３については、内部構造の記述を省略してある。ブロック１５１０，１５１１，１５１２，１５１３はそれぞれ、メモリモジュールＤＩＭＭ０，ＤＩＭＭ１，ＤＩＭＭ２，ＤＩＭＭ３用の遅延量を記憶する遅延量記憶レジスタである。遅延量記憶レジスタ１５１０，１５１１，１５１２，１５１３は、いずれもデータ信号ＤＱ０のメモリモジュール位置に対応した遅延調整に用いる。同様に、データ信号ＤＱ１，ＤＱ２，…の遅延調整のために、この図では省略したメモリモジュール位置に応じた遅延量記憶レジスタを設ける。
【００７１】
メモリコントローラＬＳＩが送出するデータ信号ＤＱｉは、４つあるメモリモジュール（ＤＩＭＭ）スロットのいずれかに搭載されているＳＤＲＡＭに書き込まれる。このため、メモリコントローラＬＳＩでは、１本のデータ信号に対してＤＩＭＭスロットに対応する４つの遅延量記憶レジスタ１５１０−１５１３を持つ。ここで、図１３の遅延量記憶レジスタ１３００にそれぞれ相当する６ビットの２進アップダウンカウンタ回路１５１０−１５１３を、図１５ではｂ０−ｂ５の箱として示してある。レジスタ値を変更する際には、まず図７に示したＤＢＳｉ信号のデコード表に従ってＤＢＳ０−ＤＢＳ５の信号によりデータ信号ＤＱ０−ＤＱ６３を選択し、次にＣＳｉ信号によりＭＯＳスイッチ１５２０−１５２３を開閉してＤＩＭＭスロットに対応するレジスタを選択する。こうしてメモリモジュールとデータ信号ＤＱを選択し、ＳＤＲＡＭからのＣＵＰ，ＣＤＮ信号を受けてレジスタ値を１ビットずつインクリメントまたはデクリメントする。
【００７２】
また、図１１に示した可変遅延回路１１０１−１１０４は、ＣＳｉ信号により選択されたＤＩＭＭスロットの遅延量ｂ０−ｂ５を、それぞれ参照する。メモリコントローラＬＳＩ内の可変遅延回路１１０１−１１０４は、例えば、ＳＤＲＡＭと同様に図１４に示した構成の可変遅延回路を用いればよい。
【００７３】
この実施例では、遅延量記憶レジスタセット数は、「タイミングを調整する信号数」×「各送出信号を受信するチップ数」となる。例えば、基準信号ＤＱＳを出力しないＳＤＲＡＭは、４ビットのデータ信号を送出し、これを受信するのはメモリコントローラＬＳＩだけであるから、４×１＝４セットの遅延量記憶レジスタセットを持つ。一方、メモリコントローラＬＳＩは、データ信号６４ビットを送出し、これを受信するのは第０から第３のメモリモジュールに搭載されたＳＤＲＡＭであるから、６４×４＝２５６セットの遅延量記憶レジスタセットを持つ。
【００７４】
さらに、基準信号の立上りだけでなく基準信号の立下りについてもデータの取り込みを行う場合には、立上りと立下りのそれぞれについて１セットずつ遅延量記憶レジスタセットを持たせることが望ましい。特に、最終段の出力バッファ回路をＣＭＯＳ構成にする場合には、ＰＭＯＳトランジスタとＮＭＯＳトランジスタの電流供給量や、その温度特性などが対称にならない場合が多く、また、基準信号の立上り時と立下り時の波形が完全には対称でないことがその理由である。
【００７５】
しかし、精度は劣るが、立上りと立下りでのレジスタ値を平均することにより遅延量を決めるなどして、遅延量記憶レジスタセット数の増加を抑えることも可能である。
【００７６】
また、出力バッファ回路の同時動作による電源電圧変動によって、信号間に遅延時間差が生じる場合が有る。この遅延時間差は、パッケージの電源ピンのインダクタンス成分に出力バッファが時間変化の大きな電流を流すことにより生じる電源電圧の変動に起因する。さらに、データ信号が伝送周期の間に十分整定しないような場合にも、やはり、過去に出力した論理値に応じて遅延時間差が生じる。
【００７７】
こうした過去のデータ系列に依存して発生する遅延時間差を低減するためには、例えば、１周期分過去の出力論理値とこれから出力する論理値とを比較し、論理変化"０"→"１"，論理変化"１"→"０"および論理変化なしの３通りの状態に対応する遅延量記憶レジスタを持ち、それぞれに対応するデータ系列を送受信し、同着判定することにより、これらのレジスタ値を設定すればよい。
【００７８】
また、過去の信号系列だけでなく、パッケージや基板上の信号配線間の相互結合による信号の遅延時間差についても、例えば同時刻の隣接信号の論理変化を考慮して遅延レジスタ値を設定するなどの方法により、こうした信号間の遅延時間差を低減することが可能である。
【００７９】
図１６は、図１０に示したＳＤＲＡＭ内の同着判定回路１０２６の一構成例を示す回路図である。判定の基準はＣＬＫ信号を２分周した信号ＣＬＫ２であり、一度に１本のデータ信号との同着判定を行う。信号ＣＬＫ２と同着を判定するデータ信号は、ビット選択信号ＴＢ０，ＴＢ１を用いてセレクタ１６０１により選択されるデータ信号ＤＱ０−ＤＱ３の内の１ビットである。図７に示したデコード表を参照すれば、例えば信号ＴＢ０，ＴＢ１が、ＴＢ０＝"１"，ＴＢ１＝"０"の場合には、信号ＤＱ１が比較対象のデータ信号となる。基準信号とデータ信号の同着を正確に判定するために、必要ならば基準信号ＣＬＫ２側には、セレクタ１６０１の遅延時間とほぼ等価な遅延回路１６０２を挿入しておく。また、１６０２の等価遅延回路の代わりに、基準信号とデータ信号とを所望の位相差とするための任意の遅延回路を挿入することも可能である。なお、信号ＰＨＩは節点ＤＢｘ，ＤＢｙの信号を、後段に順次送るタイミングを決める信号である。
【００８０】
この同着判定回路例では、節点ＣｘおよびＣｙでの信号の立上りで、ＤＱ信号を取り込む回路となっている。このため、信号ＣＬＫ２は、一定の遅延ｔａを持つ回路１６０３を通じて、節点Ｃｙに接続する。この実施例の構成では、一定遅延ｔａが基準信号ＣＬＫ２とデータ信号ＤＱｉ（ｉ＝０−３）の同着判定における最大誤差を規定するから、場合によっては、この遅延時間をチップ外部から制御できるように構成するとよい。
【００８１】
一定遅延回路１６０３は、例えば、配線をメモリチップ内で引き回すか、または偶数段のインバータ回路を直列に接続するなどして実現することができる。
【００８２】
次に、図１６の同着判定回路の動作を、図１７に示したタイミングチャートを参照しながら説明する。図１７の（ａ）（ｂ）（ｃ）各図において、参照符号Ｃｘ，Ｃｙ，ＤＡ，ＤＢｘ，ＤＢｙは、それぞれ図１６における同符号で示した節点の電圧に対応する。
【００８３】
同図（ａ）は信号ＤＱの位相が信号ＣＬＫ２よりもｔｅ早い場合：節点ＤＡでの信号は、節点Ｃｘでの信号よりもｔｅだけ位相が早く、各節点Ｃｘ，Ｃｙで取り込まれる信号は、節点ＤＢＸ，ＤＢｙでは、斜線で示した時刻ｔの範囲ｔａ＜ｔ＜Ｔにおいて、いずれも０となる。
【００８４】
同図（ｂ）は信号ＤＱが信号ＣＬＫ２とほぼ同着する場合：この例では、節点ＤＡでの信号は、節点Ｃｘよりも微小時間ｔｅだけ位相が遅い。ただし、微小時間ｔｅは遅延ｔａよりも小さいものとする。この場合、各節点Ｃｘ，Ｃｙで取り込まれる信号は、節点ＤＢｘ，ＤＢｙでは、斜線で示した時刻ｔ、の範囲ｔａ＜ｔ＜Ｔにおいて、それぞれ１，０となる。
【００８５】
同図（ｃ）は信号ＣＬＫ２が信号ＤＱよりも位相が早い場合：節点ＤＡでの信号は、節点Ｃｘで取り込まれる信号よりも時間ｔｅだけ位相が遅く、各節点Ｃｘ，Ｃｙで取り込まれる信号は、節点ＤＢｘ，ＤＢｙでは、斜線で示した時刻ｔの範囲ｔａ＜ｔ＜Ｔにおいて、いずれも１となる。
【００８６】
以上の３ケースそれぞれについて、時刻ｔが、ｔａ＜ｔ＜Ｔの範囲のときに取り込まれる信号の、節点ＤＢｘ，ＤＢｙにおける組合わせは異なっているから、例えば、論理ゲートＮＯＲとＡＮＤにより、信号ＤＱが信号ＣＬＫ２よりも早い場合には、信号ＣＵＰとＣＤＮのそれぞれをＣＵＰ＝"１"，ＣＤＮ"０"（遅延カウンタを増加させて信号ＤＱの到着を遅らせる）とし、信号ＤＱが信号ＣＬＫ２とほぼ同着する場合には、ＣＵＰ＝ＣＤＮ＝"０"とし、信号ＣＬＫ２が信号ＤＱよりも早い場合には、ＣＵＰ＝"０"，ＣＤＮ＝"１"（遅延カウンタを減少させて信号ＤＱの到着を早める）とすることができる。
【００８７】
逆に、この同着判定回路例で同着と判断される許容範囲は、信号ＤＱの信号ＣＬＫ２に対する遅延が０からｔａまでである。
【００８８】
また、この例では同着判定を基準信号と１本のデータ信号の一組ずつで行うとしているが、この同着判定回路を複数並べて、複数ビットを同時に比較するように構成しても良い。
【００８９】
図１８は、図１１で示したメモリコントローラＬＳＩ内の同着判定回路１１２６の具体的な構成例である。同着を判定する回路は、図１６と同様にして構成できる。但し、この実施例では、同着判定を一組ずつ行っていることから、判定を行う組はセレクタにより選択する必要が有る。
【００９０】
はじめに、メモリモジュールのスロット位置による同着判定回路への入力信号の到着時間差をなくすために、同着判定回路１８１０−１８１３に入力されるＤＱＳｉ（ｉ＝０−３）信号を、メモリコントローラＬＳＩ内の基準信号ＣＬＫに対し同着させる。次に、各ＤＱＳ信号に対してデータ信号ＤＱを同着させる。このようにするため、基準信号としてＤＱＳｉ信号とＣＬＫ信号をセレクタ１８０１により選択し、基準信号に同着させる信号として、データ信号ＤＱ０−ＤＱ１５など信号ＤＱＳｉに対応する１６本のデータ信号のうちから１本を別のセレクタ１８０２により選択できるように構成する。但し、セレクタ１８０１がＣＬＫ信号を選択しているときには、セレクタ１８０２はＤＱＳｉ信号を選択する。
【００９１】
同様に、同着判定回路１８１０−１８１３の出力信号についても、現在判定を行っている結果を出力するように、セレクタ１８０３，１８０４を介してＣＵＰ，ＣＤＮ信号の配線に接続する。この例でのセレクタ１８０３，１８０４の制御信号はともに、信号ＤＢＳ４およびＤＢＳ５である。ここで、信号ＣＲ＝"０"のときに図１２での定義通りにＣＵＰ＝ＣＤＮ＝"０"となるよう、セレクタの制御信号にＣＲ信号を加えるか、または図１６と同様、出力信号に対し信号ＣＲと論理積をとっておく必要が有る。
【００９２】
以上、回路動作を個別に説明してきたが、次に前述した同着判定回路とタイミング調整回路を含む本発明に係るデータ伝送装置を適用したメモリシステムのタイミング調整の大まかな手順を、図１９を用いて説明する。
【００９３】
図１９（ａ）は、データ書込みのためのタイミング調整手順を示したもので、メモリコントローラＬＳＩから基準信号ＣＬＫとデータ信号ＤＱを送出し、ＳＤＲＡＭ内部で生成する基準信号ＣＬＫ２とデータ信号ＤＱを比較する手順を示したものである。
【００９４】
まず、メモリコントローラＬＳＩからメモリモジュールＤＩＭＭ０への書込みについて、タイミング調整を行う。例えば、図６で示した×４ビット出力のＳＤＲＡＭを用いたメモリモジュールでは、ＣＳｉ信号によりメモリモジュールＤＩＭＭ０を選択して、ＤＩＭＭ０上のＳＤＲＡＭ０で信号ＣＬＫ２と信号ＤＱ０のタイミング調整を行う。以後、順次信号ＣＬＫ２と信号ＤＱ１，ＤＱ２，ＤＱ３のタイミング調整を行い、次にＳＤＲＡＭ１で信号ＣＬＫ２と信号ＤＱ４，ＤＱ５，ＤＱ６，ＤＱ７のタイミング調整を行う。同様にして、ＳＤＲＡＭ１５の信号ＣＬＫ２と信号ＤＱ６０−ＤＱ６３のタイミング調整を終了した時点で、ＤＩＭＭ０でのタイミング調整を終了する。
【００９５】
同じ手順で、ＣＳｉ信号を変えながらメモリモジュールＤＩＭＭ１，ＤＩＭＭ２，ＤＩＭＭ３上のデータ信号ＤＱ０−ＤＱ６３について、基準信号ＣＬＫ２とのタイミング調整を行う。すべてのメモリモジュール上で、すべてのＤＱ信号についてタイミング調整を行った時点で、データ書込みのためのタイミング調整を終了する。
【００９６】
次に、図１９（ｂ）を用いて、ＳＤＲＡＭからメモリコントローラＬＳＩへのデータ読出し動作のためのタイミング調整手順を説明する。
【００９７】
メモリコントローラＬＳＩに到着するデータ信号の位相を、読出し対象のメモリモジュール位置によらず全て揃えるために、まず、各メモリモジュールから出力される基準信号ＤＱＳをメモリコントローラＬＳＩ内の基準信号ＣＬＫに同期させる。この同期化は、データ取込みのためには必ずしも必要ではない。しかし、メモリコントローラＬＳＩ内のタイミング設計を容易化するために、行っておくことが望ましい。
【００９８】
また、同期化の対象は、メモリコントローラＬＳＩ内の信号に限らず、例えば、メモリコントローラＬＳＩに最も近いメモリモジュール（ＤＩＭＭ０）から送出する信号ＤＱＳを基準信号として、他のスロットから送出される信号ＤＱＳのタイミング調整を行っても良い。
【００９９】
また、基準信号を常にレシーバであるメモリコントローラＬＳＩ内の基準信号ＣＬＫに固定すれば、各メモリモジュールは基準信号ＤＱＳを送出する必要がなくなり、ピン数を削減できる。いま、この例では４本のＤＱＳ信号ＤＱＳ０−ＤＱＳ３を、メモリモジュールのスロット位置毎に順次基準信号に同期化させる。この操作により、どの位置のメモリモジュールからの読出しであっても、基準信号ＤＱＳｉ（ｉ＝０−３）は、メモリコントローラＬＳＩに全て同着する。
【０１００】
次に、各メモリモジュール上のＳＤＲＡＭについて順次、基準信号ＤＱＳとデータ信号ＤＱを同期化させる。この例では、基準信号ＤＱＳ０にデータ信号ＤＱ０−ＤＱ１５を、基準信号ＤＱＳ１にデータ信号ＤＱ１６−ＤＱ３１を、基準信号ＤＱＳ２にデータ信号ＤＱ３２−ＤＱ４７を、基準信号ＤＱＳ３にデータ信号ＤＱ４８−ＤＱ６３をそれぞれ同期化させている。
【０１０１】
この同期化も、必ずしもすべてのＤＱ信号について行う必要はない。同期化精度とのトレードオフになるが、レジスタやセレクタの回路素子数を削減するために、例えば物理的に近い２本の信号は、そのうちの１本のＤＱ信号を代表させて基準信号ＤＱＳとの同期化を行うなどすれば、同期化する信号数を減らすことができる。
【０１０２】
図２０に、データ読出し動作におけるタイミング調整の具体例を示す。この例は、メモリモジュールＤＩＭＭ０上のＳＤＲＡＭ０が出力するデータ信号ＤＱ０−ＤＱ３を、信号ＤＱＳ０に対して同期化させる例である。
【０１０３】
この時点では既に、信号ＤＱＳのメモリコントローラＬＳＩ内部の基準信号ＣＬＫへの同期化は終了し同位相となっているため、信号ＤＱＳ０−ＤＱＳ３は一つの行に記述してある。ＤＱｉカウンタは、データ信号ＤＱｉの６ビット遅延カウンタの値であり、６ビットを１０進数に変換した数値を示している。初期値は、いずれも中間値３２に設定してある。なお、図には、信号ＤＱ３およびＤＱ３カウンタを省略してある。また、この例は、メモリモジュールＤＩＭＭ０上の同期化の例であるため、メモリモジュールの選択信号／ＣＳは、ＤＩＭＭ０上のＳＤＲＡＭのタイミング調整を示す選択信号／ＣＳ０のみ"０"となり、選択信号／ＣＳ１−／ＣＳ３が"１"となっている。信号ＤＢＳ０−ＤＢＳ５は、メモリコントローラＬＳＩが順次送出するタイミング調整の対象ビットの選択信号であり、これも６ビットを１０進数で示した。信号ＤＱＳ０−ＤＱＳ３，ＤＱ０，ＤＱ１，ＤＱ２は、メモリコントローラＬＳＩの同着判定回路直前での信号を示している。
【０１０４】
データ読出し動作のためのタイミング調整モードを示すＣＲ＝"１"となったら、すべての基準信号ＤＱＳとデータ信号ＤＱは０１０１．．．が連続する交互パターンを送る。
【０１０５】
まず、タイムスロット２において、メモリコントローラＬＳＩの同着判定回路で、ＤＢＳ信号で選択されるデータ信号ＤＱ０と基準信号ＤＱＳ０を比較する。その結果、データ信号ＤＱ０の位相が遅れていることがわかるので、タイムスロット３で信号ＣＤＮ＝"１"をＳＤＲＡＭへ向けて送信する。これを、ＤＢＳ信号で選択されるＳＤＲＡＭ０だけが受信して、データ信号ＤＱ０が遅れていたことを知り、信号ＤＱ０の遅延カウンタを３２から３１へデクリメントする。
【０１０６】
タイムスロット４で、データ信号ＤＱ０と基準信号ＤＱＳ０を比較し、まだデータ信号ＤＱ０の位相が遅れているため、タイムスロット５で信号ＣＤＮ＝"１"を送信する。ＳＤＲＡＭ０はカウンタを３１から３０へデクリメントして、データ信号ＤＱ０の出力タイミングを早める。
【０１０７】
タイムスロット６で、データ信号ＤＱ０と基準信号ＤＱＳ０が同着したと見なされたため、位相比較結果がＣＵＰ＝ＣＤＮ＝"０"となり、信号ＤＢＳがインクリメントされてデータ信号ＤＱ１と基準信号ＤＱＳ０の比較に移る。
【０１０８】
以下、同様に、タイムスロット８，１０，１２での同着判定により、データ信号ＤＱ１が基準信号ＤＱＳ０よりも位相がすすんでいるために、ＳＤＲＡＭ０ではデータ信号ＤＱ１の遅延カウンタ（ＤＱ１カウンタ）の値を１ビットずつインクリメントさせ、タイムスロット１４で、データ信号ＤＱ１と基準信号ＤＱＳ０の同着が得られた。
【０１０９】
こうした手順を順次繰り返せば、すべてのメモリモジュールから送出されるすべてのＤＱ信号について、信号ＤＱＳとメモリコントローラＬＳＩ内の基準信号ＣＬＫとの同着を実現することができる。
【０１１０】
以上説明してきたように、本発明のデータ伝送装置を適用した第１の実施例のメモリシステムによれば、並列に送信されるデータ信号の受信点での位相を、ある許容誤差範囲内に合わせることができる。このため、並列データ配線間の経路長差や寄生素子を含めた負荷容量の相違がある場合にも、伝播遅延時間差に起因するデータ取込みウィンドウの減少を防止することができる。
【０１１１】
こうしたタイミング調整は、例えば、電源投入後の起動手順の一環として一度行い、その後、メモリシステム動作中に適当な間隔で行って、遅延量記憶レジスタを更新するとよい。動作中の温度変動や電源電圧の変動などを補償するためである。
【０１１２】
メモリシステム動作中のタイミング調整は、メモリシステムの動作効率を下げるので、全ビット一度に行わず、数ビットずつに分けて分散して行っても良い。
【０１１３】
また、伝送効率を低下させないよう、一回の更新処理に多くの時間をさけない場合には、完全な同着が得られなくても、数ビット分の遅延記憶レジスタ値の更新を行うだけでも、データ信号取込みのセットアップ・ホールド時間改善に効果がある。
【０１１４】
また、温度変動が大きいと考えられるスリープ状態からの復帰直後には、システム起動直後と同様のタイミング調整を行うことが望ましい。
【０１１５】
また、この実施例では、ＤＢＳ信号やＣＲ，ＣＷ信号などを独立した配線にして同着判定を行うビットの選択として用いたが、ＤＢＳ信号のようにメモリコントローラＬＳＩからＳＤＲＡＭへの単一方向にのみ伝送される信号は、例えば、アドレス信号を用いて伝送することができる。通常、ＳＤＲＡＭは、モードレジスタを持つので、このモードとして、本実施例のＣＲ，ＣＷ信号で指定される状態を割り当てることが可能である。例えば、ＣＲ＝"１"または、ＣＷ＝"１"に相当するモードに入った際には、アドレス信号の任意の６本を第１の実施例における信号ＤＢＳ０−ＤＢＳ５などに割り当て、ＳＤＲＡＭ内でこの信号をデコードして用いればよい。信号ＣＵＰ，ＣＤＮについては、双方向の伝送が必要となるが、これは例えばＤＱ信号を時分割して信号ＣＵＰ，ＣＤＮとしても用いることができる。このようにすれば、新規に配線を設けることなく、本発明を実施することができる。
【０１１６】
以上述べてきた第１の実施例は、図１に示すように要約して書くことができる。すなわち、並列データ信号を受信するレシーバＲＣＶが同着判定回路１２６を持ち、並列データを送信するドライバＤＲＶがタイミング調整機構を持つ。
【０１１７】
第１の実施例は、メモリコントローラＬＳＩとＳＤＲＡＭが相互にドライバとレシーバとなった例であり、ドライバ側にタイミング調整機構が設けてあった。こうした構成を取る場合には、レシーバＲＣＶが、データ取り込みのための基準信号ＣＬＫ＿Ｒと、データ取込みのためのフリップフロップ１３１−１３４に入力される直前の並列データ信号１２１−１２４との同着判定を同着判定回路１２６で行い、位相比較結果１２７をドライバＤＲＶに送信する。ここで、同着判定回路１２６の三角形の記号は、基準信号ＣＬＫ＿Ｒの入力端子であることを示す。
【０１１８】
ドライバＤＲＶは、レシーバＲＣＶからの位相比較結果１２７を受けて、遅延量調整回路１０６と可変遅延回路１０１−１０４からなるタイミング調整機構により、レシーバＲＣＶのデータ取込み点での並列データ１２１−１２４の位相を揃える。図１では、可変遅延回路１０１−１０４により、データ信号の位相を決めるフリップフロップ１１１−１１４に入力される基準信号ＣＬＫ＿Ｄのタイミングを変えているが、データ出力経路中に可変遅延回路をおいてタイミング調整を行うことも可能である。
【０１１９】
また、図１では、データ出力のための基準信号ＣＬＫ＿Ｄと、データ取り込みのための基準信号ＣＬＫ＿Ｒを別々の信号として記述してあるが、第１の実施例で述べたように、ドライバＤＲＶは基準信号ＣＬＫ＿Ｄをデータ信号とともに送出して、レシーバＲＣＶは受信した基準信号ＣＬＫ＿Ｄを基準信号ＣＬＫ＿Ｒとして用いることもできる。
【０１２０】
さらに、受信したデータ信号のうちの一つを基準信号ＣＬＫ＿Ｒとして用いても良い。こうした場合には、同着判定回路１２６の基準信号入力端子には、データ取込みのために適切な位相となるよう、例えば図１６に示した遅延回路１６０２のような遅延回路を通過させた後に、同着判定を行うとよい。
【０１２１】
図２１は、レシーバＲＣＶに同着判定回路とタイミング調整機構をともに設けた第２の実施例を示す構成図である。このような構成は、例えば、ドライバＤＲＶ側の回路素子数の増加を抑えたい場合で、かつ、レシーバ側での回路素子数の増加を許容できる場合に好適である。
【０１２２】
同図（ａ）は、可変遅延回路２１０１−２１０４と遅延量調整回路２１０６からなるタイミング調整機構などをレシーバＲＣＶ側に持つ例の一つであり、可変遅延回路２１０１−２１０４をデータ取込みの基準信号ＣＬＫ＿Ｒの経路上に設けている。従って、位相比較結果を伝達する信号２１２７も、レシーバＲＣＶの内部信号となる。このとき、同着判定回路２１２６において、データ信号２１１１−２１１４と、これらのデータ信号のそれぞれに対応するタイミング調整後の基準信号２１２１−２１２４の位相比較が出来るように、セレクタ２１２５を設ける。具体的には、データ信号２１１１と基準信号２１２１、データ信号２１１２と基準信号２１２２、データ信号２１１３と基準信号２１２３、データ信号２１１４と基準信号２１２４の同着をそれぞれ判定するように、セレクタ２１２５により基準信号を選択する。
【０１２３】
一方、図２１（ｂ）は、レシーバＲＣＶ側にタイミング調整機構を持つ別の例であり、データ信号を遅延させる構成例である。なお、同図（ｂ）において、同図（ａ）に示した構成要素と同じ構成部分については、同一の参照符号を付してある。この構成の場合、可変遅延回路２１０１−２１０４を遅延量調整回路２１０６により制御して、データ信号２１１１−２１１４と基準信号ＣＬＫ＿Ｒと同着させる。同図（ａ）の構成と比べると、基準信号ＣＬＫ＿Ｒを選択するためのセレクタ２１２５が不要となり、構成を簡略にできる。
【０１２４】
図２２は、タイミング調整機構を、ドライバＤＲＶでもレシーバＲＣＶでもない別チップ上に設けた第３の実施例を示す構成図である。これは、レシーバＲＣＶ上の同着判定回路２２２６で、データ信号２２１１−２２１４と基準信号ＣＬＫ＿Ｒとの同着判定を行った結果を、信号２２２７を用いてタイミング調整チップ２２０５に伝達する。この信号２２２７を受けて、遅延調整回路２２０６は、可変遅延回路２２０１−２２０４の遅延量を調整することにより、レシーバ上でのデータ信号２２１１−２２１４と基準信号ＣＬＫ＿Ｒの同着を可能とすることが出来る。
【０１２５】
図２３に、タイミング調整機構の別の構成例を示す。図中、インバータＩＮＶ１と、これに並列に接続している３ステートバッファ２３１０−２３１５により、各データ信号の最終段の出力バッファ回路を形成する。特に、第１の実施例のようにドライバ側チップ上でタイミング調整を行う場合には、ドライバの出力バッファの駆動力を可変とすることにより、タイミングを有効に調整できる。
【０１２６】
ここで、３ステートバッファの制御信号ｂ０−ｂ５は、例えば図１３に示した遅延量調整回路の出力である。３ステートバッファ２３１０−２３１５は、信号ｂｉ＝"０"のときにドライバとして機能し、ｂｉ＝"１"のときにハイインピーダンス（Ｈｉ−Ｚ）となるようにすれば、第１の実施例における図１４に示した可変遅延回路と論理的に同様の動作となる。
【０１２７】
また、信号ｂｉ（ｉ＝０−５）の値に応じて、遅延時間を出来るだけ単調に変化させるためには、例えばｂ０−ｂ５により制御されるバッファのＭＯＳトランジスタサイズＷ／Ｌを、バッファ２３１０から出発して２３１１，…，２３１５の順に大きくなるように設計するとよい。
【０１２８】
以上、本発明に係るデータ伝送装置の好適な実施例について、ドライバ・レシーバのうち、一方はメモリコントローラＬＳＩ（一つの半導体チップ）で、他方はメモリモジュール（複数の半導体チップから構成される半導体装置）間の並列データ伝送に適用した場合を説明したが、本発明は前記実施例に限定されるものではなく、並列データの伝送を行う場合には全て適用可能であり、本発明の精神を逸脱しない範囲内で種々の設計変更を為し得ることは勿論である。
【０１２９】
例えば、図２で示した、メモリコントローラＬＳＩとＭＰＵ間の並列データ伝送のように、ドライバ・レシーバ共にそれぞれ一つの半導体チップで構成されたチップ間の並列データ伝送に適用できる。また、ドライバ・レシーバ共に複数の半導体装置から構成される装置間の並列データ伝送にも本発明を適用できる。さらには、半導体チップ内の高速並列データ伝送が必要な回路ブロック間のスキュー防止のために適用出来ることは言うまでもない。
【産業上の利用可能性】
【０１３０】
これまで述べてきたように、本発明によってデータ信号をレシーバに同着させることが可能となるため、周期の短い高速データの伝送において、データ配線間の経路長差や寄生素子を含めた負荷容量の相違等がある場合にも、誤りなくデータ伝送を行うことのできる並列データ伝送装置が実現可能となる。
【０１３１】
また、本発明の副次的な効果として、並列データの配線長や負荷容量の相違が許容されることになるために、プリント基板やメモリモジュール、およびドライバ・レシーバチップ内のレイアウト制約が緩和され、設計を容易化できる。
【０１３２】
さらに、装置動作中の温度等の環境変動や伝送データパターンに依存する電源変動に起因するスキューに強い並列データ伝送装置を実現することが可能となる。
【図面の簡単な説明】
【０１３３】
【図１】図１は、ドライバでタイミング調整を行う第１の実施例の概念を示す図である。
【図２】図２は、本発明に係るデータ伝送装置を適用したメモリシステムの構成例である。
【図３】図３は、従来のメモリシステムで用いるメモリモジュールの構成例である。
【図４】図４は、配線長差により生じるデータ配線間のスキューを説明するための図であり、スキューが生じない例である。
【図５】図５は、配線長差により生じるデータ配線間のスキューを説明するための図であり、等長・等負荷配線が出来ないためにスキューが生じる例である。
【図６】図６は、本発明の一実施例を示す×４ビット出力のＳＤＲＡＭを用いたメモリモジュールの構成図である。
【図７】図７は、図６に示したメモリモジュールに搭載されるＤＢＳ信号デコーダ回路のデコード論理表である。
【図８】図８は、図７に示したデコード論理を実現する具体な構成例を示すブロック図である。
【図９】図９は、タイミング調整を行うチップを指定するＣＲ，ＣＷ信号の定義の一例を示す表である。
【図１０】図１０は、×４ビット構成のメモリに本発明に係るデータ伝送装置を適用した実施例を示すブロック図である。
【図１１】図１１は、メモリコントローラＬＳＩに本発明に係るデータ伝送装置を適用した実施例を示すブロック図である。
【図１２】図１２は、同着判定の結果を伝達するＣＵＰ，ＣＤＮ信号の定義の一例を示す表である。
【図１３】図１３は、メモリ内の遅延量調整回路の具体的な構成例を示すブロック図である。
【図１４】図１４は、メモリ内の可変遅延回路の具体的な構成例を示すブロック図である。
【図１５】図１５は、メモリコントローラＬＳＩ内の遅延量調整回路の構成例を示すブロック図である。
【図１６】図１６は、メモリ内の同着判定回路の具体的な構成例を示すブロック図である。
【図１７】図１７は、図１６に示した同着判定回路の動作タイミング図である。
【図１８】図１８は、メモリコントローラＬＳＩの同着判定回路の具体的な構成例を示すブロック図である。
【図１９】図１９は、タイミング調整の手順の概念を（ａ）データ書込みと、（ｂ）データ読出しに分けて示したものである。
【図２０】図２０は、データ信号のタイミング調整手順を示すタイミング図である。
【図２１】図２１は、本発明の第２の実施例であり、同着判定とタイミング調整をともにレシーバチップで行う構成例である。
【図２２】図２２は、本発明の第３の実施例であり、同着判定をレシーバで、タイミング調整機構をドライバおよびレシーバのいずれでもないチップに設けた構成例を示すブロック図である。
【図２３】図２３は、タイミング調整機構の別の構成例を示すブロック図である。
【図２４】図２４は、本発明を適用したメモリモジュールの構成例を示す図である。
【図１】
2008278518.tif 000003
【図２】
2008278518.tif 000004
【図３】
2008278518.tif 000005
【図４】
2008278518.tif 000006
【図５】
2008278518.tif 000007
【図６】
2008278518.tif 000008
【図７】
2008278518.tif 000009
【図８】
2008278518.tif 000010
【図９】
2008278518.tif 000011
【図１０】
2008278518.tif 000012
【図１１】
2008278518.tif 000013
【図１２】
2008278518.tif 000014
【図１３】
2008278518.tif 000015
【図１４】
2008278518.tif 000016
【図１５】
2008278518.tif 000017
【図１６】
2008278518.tif 000018
【図１７】
2008278518.tif 000019
【図１８】
2008278518.tif 000020
【図１９】
2008278518.tif 000021
【図２０】
2008278518.tif 000022
【図２１】
2008278518.tif 000023
【図２２】
2008278518.tif 000024
【図２３】
2008278518.tif 000025
【図２４】
2008278518.tif 000026