(57)【特許請求の範囲】
【請求項１】
メモリを複数個搭載するメモリモジュールと、前記メモリに対してデータをリードあるいはライトするメモリコントローラと、クロック発生器とを備えたメモリシステムにおいて、
前記クロック発生器から、互いに等間隔の位置に配置された該メモリモジュールへ順にバス接続され、前記メモリコントローラに終端されて接続されたクロック信号配線と、
前記メモリコントローラと前記メモリモジュール間の信号伝搬遅延時間が前記メモリモジュールのそれぞれに対応する前記クロック信号配線の信号伝搬遅延時間と同じとなる、前記メモリコントローラと前記メモリモジュールとを接続するデータ信号バス配線とを備え、
前記メモリモジュールから前記メモリコントローラまでのリードデータの伝搬遅延時間が、前記メモリモジュールから前記メモリコントローラまでのクロック信号到達時間差に等しく、
前記クロック信号配線と前記データ信号バス配線とは別に、１対１配線によって、前記メモリコントローラと前記メモリモジュールとを、前記リードデータの伝搬遅延時間と同じになる配線長で接続し、
前記メモリコントローラは、前記１対１配線に対して、前記１対１配線が持つ特性インピーダンスと同じ出力インピーダンスを持つドライバと、ヒステリシス特性を持つレシーバを有し、
前記ドライバから発生したパルスの前記メモリモジュールからの反射波を前記レシーバにより検出し、パルス出力時から反射波入力時までの前記１対１配線の往復の伝播遅延時間を計測し、
前記メモリコントローラからのライトデータのタイミングを、前記メモリコントローラから前記ライトデータを書き込む対象のメモリモジュールまでの前記１対１配線の往復の伝搬遅延時間によって可変することを特徴とするメモリシステム。
【請求項２】
前記ライトデータのタイミングの可変量は、前記１対１配線の往復の伝搬遅延時間をＴｗとし、前記メモリのライトデータのクロックに対する規定された書き込み時間をＴｄｒａｍとし、前記メモリモジュール内の配線遅延時間をＴ２とすると、
Ｔｗｖ＝Ｔｄｒａｍ＋２＊Ｔ２−Ｔｗ
で表された遅延量Ｔｗｖであることを特徴とする請求項１記載のメモリシステム。
【請求項３】
前記メモリコントローラから送信するライトデータ生成のための内部クロックの周期をＴｃｌｋとすると、
前記ライトデータのタイミングを前記遅延量Ｔｗｖに対し前記内部クロックの周期Ｔｃｌｋの剰余としたことを特徴とする請求項２記載のメモリシステム。
【請求項４】
メモリを複数個搭載するメモリモジュールと、前記メモリに対してデータをリードあるいはライトするメモリコントローラと、クロック発生器とを備えたメモリシステムにおいて、
前記クロック発生器から、互いに等間隔の位置に配置された該メモリモジュールへ順にバス接続され、前記メモリコントローラに終端されて接続されたクロック信号配線と、
前記メモリコントローラと前記メモリモジュール間の信号伝搬遅延時間が前記メモリモジュールのそれぞれに対応する前記クロック信号配線の信号伝搬遅延時間と同じとなる、前記メモリコントローラと前記メモリモジュールとを接続するデータ信号バス配線とを備え、
前記メモリモジュールから前記メモリコントローラまでのリードデータの伝搬遅延時間が、前記メモリモジュールから前記メモリコントローラまでのクロック信号到達時間差に等しく、
前記クロック信号配線と前記データ信号バス配線とは別に、１対１配線によって、前記メモリコントローラと前記メモリモジュールとを、前記リードデータの伝搬遅延時間と同じになる配線長で接続し、
前記メモリコントローラは、ライトデータのタイミングを前記メモリモジュール毎に可変し、
前記メモリコントローラは、前記１対１配線に接続された前記メモリコントローラ内のドライバからのパルス送信から反射波を、前記メモリコントローラ内のヒステリシスレシーバにより受信するまでの往復の伝搬遅延時間をＴｗとし、前記メモリのライトデータのクロックに対する規定された書き込み時間をＴｄｒａｍとし、前記メモリモジュール内の配線遅延時間をＴ２とすると、
Ｔｗｖ＝Ｔｄｒａｍ＋２＊Ｔ２−Ｔｗ
で表された遅延量Ｔｗｖに調整する可変遅延手段を有し、
前記メモリコントローラは、前記可変遅延手段の遅延量Ｔｗｖを示す遅延情報を格納するレジスタを前記メモリモジュールの個数だけ有し、
ライトデータ送信の際にライトアドレスで示されたメモリモジュールに対応する前記レジスタ内に保持されている遅延情報によりライトデータのタイミングを遅延させることを特徴とするメモリシステム。
【請求項５】
前記１対１配線をメモリ制御信号のチップセレクトと共用にした請求項４記載のメモリシステム。
【請求項６】
前記メモリモジュールと前記メモリコントローラ間の接続の際に、前記クロック信号配線と前記データ信号バス配線を他方が整合終端された方向性結合器を用いて接続し、
前記１対１配線を直接ピン同士で接続し、
前記方向性結合器の向きを前記クロック信号配線と前記データ信号バス配線で反対となるように構成した請求項１〜５の何れかに記載のメモリシステム。
【請求項７】
メモリを複数個搭載するメモリモジュールと、前記メモリに対してデータをリードあるいはライトするメモリコントローラと、クロック発生器とを備えたメモリシステムにおいて、
前記クロック発生器から、互いに等間隔の位置に配置された該メモリモジュールへ順にバス接続され、前記メモリコントローラに終端されて接続されたクロック信号配線と、
前記メモリコントローラと前記メモリモジュール間の信号伝搬遅延時間が前記メモリモジュールのそれぞれに対応する前記クロック信号配線の信号伝搬遅延時間と同じとなる、前記メモリコントローラと前記メモリモジュールとを接続するデータ信号バス配線とを備え、
前記メモリモジュールから前記メモリコントローラまでのリードデータの伝搬遅延時間が、前記メモリモジュールから前記メモリコントローラまでのクロック信号到達時間差に等しく、
前記メモリモジュールは、前記メモリのそれぞれにクロック信号を分配するクロック分配器を搭載し、
前記クロック分配器は、クロック安定化回路を有し、
前記クロック分配器からの出力を前記クロック分配器から前記メモリまでの配線長と前記メモリモジュールから前記メモリ分配器までの配線長の倍の配線長の和の遅延を持たせて前記クロック安定化回路への参照信号とし、前記メモリモジュールのデータ信号ピンから前記メモリのデータピンまでの配線長を前記クロック分配器の入力配線長と同じにしたことを特徴とするメモリシステム。
【請求項８】
前記メモリコントローラからのライトデータのタイミングを前記メモリコントローラから前記ライトデータを書き込む対象のメモリモジュールまでの往復の伝搬遅延時間によって可変とし、
前記ライトデータのタイミングの可変量は、前記往復の伝搬遅延時間をＴｗとし、前記メモリのライトデータのクロックに対する規定された書き込み時間をＴｄｒａｍとすると、
Ｔｗｖ＝Ｔｄｒａｍ−Ｔｗ
で表された遅延量Ｔｗｖであることを特徴とする請求項７記載のメモリシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は情報処理装置においてマルチプロセッサやメモリ等の素子間（例えばＣＭＯＳ等により構成されたデジタル回路間又はその機能ブロック間）での信号伝送のための技術に関し、特に、同一の伝送線に接続された複数の素子がデータ転送を行うバス伝送の高速化技術に関する。特に、複数のメモリモジュールとメモリコントローラを接続するバスとこれを用いるシステムに関する。
【０００２】
【従来の技術】
多数のノードが接続されたバス上で高速にデータを転送するためには配線の伝搬遅延時間が無視できなくなっている。これを解決するメモリバス方式として" SynchLink : A Proposal for an Implementation of IEEEE P1596.4 (Ramlink) Optimized for small (single bord) Memory Systems" March 23, 1995がある。この従来技術の基本方式の１形態を図２に示す。
【０００３】
図２は、メモリコントローラ（以下ＭＣと表記する）１とＤＲＡＭ(Dynamic Random Access  Memory) １０−１〜１０−４間のデータ転送を行うための配線形態を示し、クロック信号配線３０とデータ信号配線３１によってＭＣ１とＤＲＡＭ１０−１〜１０−４間がバス接続されている。クロック信号はクロック信号配線３０を介してＭＣ１からＤＲＡＭ１０−１〜１０−４に一方向に供給されている。データ信号はデータ信号配線３１をライト動作の場合はＭＣ１からＤＲＡＭ１０−１〜１０−４へ伝搬し、リード動作の場合はＤＲＡＭ１０−１〜１０−４からＭＣ１の方向へ伝搬する。ここで、クロック信号配線３０とデータ信号配線３１は配線長が同じであり、ＤＲＡＭ１０−１〜１０−４からみてＭＣ１からのライトデータはクロック信号と同じ伝搬遅延時間を持つ。その結果、どのＤＲＡＭに対してもクロック信号との位相差が同じくなるように、ライトデータは各ＤＲＡＭ１０−１〜１０−４に到達出来る。このため、クロック信号配線３０とデータ信号配線３１の配線長差のバラツキを小さく抑えることで、ライトデータのタイミング設計は非常に容易となる。
【０００４】
他方、リードデータに関してはクロック信号とデータ信号のそれぞれの伝搬遅延方向が異なるため、ＭＣ１でのクロック信号に対してデータ信号の到達時間が異なりＭＣ１でのデータの読み取りが困難である。このＭＣ１でのクロック信号に対するデータ信号の時間差は、クロック信号配線３０とデータ信号配線３１の伝搬時間の和にほぼ等しく、リードデータを送信するＤＲＡＭ１０−１〜１０−４の場所に依存して異なる。すなわち、ＤＲＡＭがＭＣ１に近ければクロック信号とリードデータ信号との時間差は短いが、遠いければリードデータは時間遅れが大きいことになる。
【０００５】
このようにＤＲＡＭ１０−１〜１０−４の場所によりクロック信号に対するデータ信号の到達時間が異なるので、ＭＣ１がＤＲＡＭ１０−１〜１０−４からのデータ信号を取り込むのは困難であるため、位相調整（read vernier）回路４０で位相差を吸収してデータ信号を取り込んでいた。このread vernier回路４０はＤＲＡＭ１０−１〜１０−４の場所による時間差を吸収する。例えば、read vernier回路４０は、リードデータ信号がクロック信号に同期するようにＤＲＡＭ１０−１〜１０−４の位置によりリードデータの遅延量を変える。この意味で、この従来例はライトデータアクセスを優先する配線方式である。
【０００６】
Betty Prince "High Performance Memories"; John Wiley & Sons Ltd. 1995 p205-20に記載されている第２の従来例を、図３を用いて説明する。図２との大きな差異はクロック信号（ＣＬＫ）３０の配線方法にある。クロック発生回路である水晶発信器２の出力が各ＤＲＡＭ１０−４〜１０−１の各チップに入力され、その後ＭＣ１に入力され、更に配線３０は折り返されて再び各ＤＲＡＭ１０−１〜１０−４に入力され、終端抵抗により整合終端されている。すなわち、各ＤＲＡＭ１０−１〜１０−４はクロック入力を２本持つ。また、ＤＲＡＭ１０−１〜１０−４内にはこの２本のクロック信号から配線位置に依らないクロックを生成する位相調整回路４０を持っている。
【０００７】
【発明が解決しようとする課題】
第一の従来例は、リードデータに対して位相調整用の遅延がread vernier回路４０で付加されるためリードデータの処理時間が長くなる。これはリードデータに対してシステム性能が充分でないことを意味する。一般的なプロセッサ、メモリ、I/Oからなる情報処理装置においてはメモリに対するライトアクセスよりもリードアクセスの方が大幅に多い。このことはメモリに対してはライトアクセスよりもリードアクセスを優先するようなメモリシステムを構築する方がシステム性能が向上することを意味するが、図２で示したメモリシステムではライトアクセスを優先しているのでシステム性能を充分に高めていない。すなわち、性能が高くないと言える。すなわち、第１の従来例では、システムのメモリアクセスでリードアクセスを優先していないのでシステム性能が高くないという第１の課題があった。
【０００８】
第２の従来例では位相調整回路４０をＤＲＡＭの全てに持たなければならない。このため、チップ面積が拡大し、ＤＲＡＭの個数だけ面積が増加するのでシステムの価格が高くなるという第２の課題があった。
【０００９】
また、全てのＤＲＡＭ１０−１〜１０−４が２本のクロック入力信号を持っており、パッケージのコストも高くなると言う第３の課題があった。
【００１０】
本発明の目的は、低コストで、リード優先メモリシステムを実現することにある。
【００１１】
【課題を解決するための手段】
第１の課題を解決して、本発明の目的を達成するために、本発明のリード優先メモリシステムでは、リードアクセスを優先するために、クロック信号の伝搬方向をＭＣ（メモリコントローラ）からでなく、ＭＣから最遠端に位置するＤＲＡＭからデータ信号と同じ伝搬遅延時間になるようにクロック信号を配線する。これによりＭＣにおいてクロック信号とリードデータ信号のそれぞれの伝搬遅延時間が同じとなるため、ＭＣでのリードデータの処理が待ち時間無しで出来る。そのためリードアクセス性能がシステムとして向上する。もちろん、ライトデータに対してはクロック信号とデータ信号は伝搬方向が互いに逆となるのでライトデータのタイミングを各ＤＲＡＭの位置に応じた遅延量でアクセスする必要がある。すなわち、位相調整回路をＭＣのライトデータ側に持たせることでリードアクセス優先配線であってもライトデータも問題なくＤＲＡＭに書き込める。
【００１２】
本発明では、リードアクセスを優先する方式を採用しているので、ライトデータのタイミング生成に必要な位相調整用の位置情報を得る必要がある。即ち、図２の第１の従来例とは違って、本発明では、ＭＣはクロック信号とリードデータ信号の位相差が殆ど無いので別の方法でモジュールの位置情報を得る必要がある。
【００１３】
この課題を解決するため、本発明では、以下の機構を設ける。
【００１４】
ＭＣから各ＤＲＡＭの位置情報を検出するため、１対１配線の信号を用いて矩形パルスをＭＣからドライブする。ＤＲＡＭの入力インピーダンスは極めて高いため１対１配線を伝搬する信号はＤＲＡＭの位置で全反射するので、ＭＣで波形観測すると全反射のパルスが配線長に応じた時間遅れで戻ってくる。これにより、ＭＣでは配線上の往復の伝搬遅延時間である各ＤＲＡＭ位置の情報が得られる。
【００１５】
第２、３の課題を解決して、本発明の目的を達成するために、本発明のリード優先メモリシステムでは、従来技術のようにクロック信号配線を折り返すのではなく、リードアクセス優先になるようにクロック信号配線に単一方向をもたせるために、各ＤＲＡＭ側でなくＭＣ側にただ一つの位相調整回路を設ける。その結果、メモリシステムとして総チップ面積が小さくなり、ＤＲＡＭの総ピン数も減るので価格が低くなる。
【００１６】
【発明の実施の形態】
第１の実施例を図１を用いて説明する。
【００１７】
メモリコントローラ制御機構を有するＬＳＩチップ(以下MC: Memory Controllor)１は、メモリチップ(ＤＲＡＭ)１０を複数個搭載したメモリモジュール２０−１〜２０−２を制御する。図１には示されてないプリント配線板(Printed Circuit Board)上に形成された信号伝達用の配線３０〜３２，３３−１，３３−２は、ＭＣ１とメモリモジュール２０−１〜２０−２間で各種の信号を伝達する。図１では、メモリモジュールは２個しか記載していないが、もちろんこれ以上でもこれ以下でも以下述べる目的・効果は同じである。
【００１８】
配線３０はクロック信号用である。クロック信号は水晶発振器などのパルス発生器２から出力されてクロック信号配線３０を伝搬し各メモリモジュール２０−１〜２０−２内のＤＲＡＭに分配される。図１においてはＤＲＡＭ モジュール２０−１〜２０−２内にＤＲＡＭ１０を複数個搭載しており、これらのＤＲＡＭ１０に同位相で信号を伝達させるために、モジュール２０−１内のクロック分配器３を介している。
【００１９】
クロック信号配線３０には図中英字の”Ｃ”の様な記号で表記された２本の配線からなる方向性結合器５が設けられている。方向性結合器５はクロック信号配線３０などの配線をパルス信号などの信号が伝搬すると他方の終端された配線に微分様波形の信号を生成する回路である。方向性結合器については、例えば、特開平７ー１４１０７９の「非接触バス配線」などに詳細が示されている。
【００２０】
この方向性結合器５では２本の配線が互いに接触・分岐しておらず、一定の間隔で平行に布線されている。そのため、一方の配線の持つ特性インピーダンスはこの区間で一定であるという特徴を持つ。このため、パルス発生器２からのクロック信号は特性インピーダンスが一定であることから波形歪みが非常に少なく信号を伝達できる。
【００２１】
この方向性結合器５を介してクロック信号配線３０を伝搬するクロック信号（ＣＬＫ）がＤＲＡＭモジュール２０−１〜２０−２に伝達され、クロック分配器３に入力される。そして、全てのＤＲＡＭモジュールを通過した後、ＭＣ１に入力され、パルス発生器２から見て最遠端で整合終端されている。この整合終端はクロック配線３０を伝搬する信号の反射波を吸収することが目的であり、ＭＣ１内のクロック信号に対する入力インピーダンスが配線３０の特性インピーダンスと同じでも良い。この場合、終端抵抗は必要ない。
【００２２】
ここで、バス配線のための信号伝達に方向性結合器５を用いて説明したが、ＳＳＴＬ（Stub Series terminated Transceiver Logic）などのインタフェース方式を用いても同じ効果がある。この場合、全ての方向性結合器５をＳＳＴＬで用いられているシリーズ抵抗に依る分岐に置き換えればよい。
【００２３】
更に、データ信号配線（ＤＱ）３１とこれに結合する方向性結合器５を介して、ＤＲＡＭモジュール２０−１〜２０−２内の各ＤＲＡＭとＭＣ１との間で信号の送受信が行われる。同様に、データ用のストローブ信号（ＤＱＳ）も配線３２、方向性結合器を介して信号を送受信できる。これらクロック信号配線３０、データ信号配線３１、データストローブ信号配線３２はそれぞれ１本の信号配線に複数の素子が接続されている構成のバス接続がなされている。
【００２４】
ＤＲＡＭモジュールの位置検出信号配線３３−１，３３−２は、ＭＣ１と各ＤＲＡＭモジュール２０−１〜２０−２を１対１（point-to-point）に接続している。通常メモリシステムではＭＣからのチップセレクト（ＣＳ）信号はこの１対１配線によって伝達されるので、位置検出信号をＣＳ信号と兼ねても良い。図１ではモジュール位置検出用配線３３−１，３３−２はＣＳ信号と共用されている。モジュール２０ー１内でＣＳ信号は各ＤＲＡＭ１０にバッファ４によって分配されている。このバッファ４は当然、他のアドレス信号や制御信号の分配を行うこともできる。ここで、ＤＲＡＭモジュール位置検出信号配線３３ー１〜３３ー２の配線長は、図１には記載していないＭＣ１の信号ピンからモジュール２０ー１〜２０ー２内のバッファ４の入力ピンまでの長さであり、この配線長はＤＱＳ配線３２、ＤＱ信号３１、クロック配線３０の各配線のＭＣ１からモジュール２０ー１内の各ＤＲＡＭ１０までの入力ピンまでの配線長にほぼ等しく、このため、データ信号伝搬遅延時間も等しい構成になっている。その結果、これらの配線では、ＭＣ１とＤＲＡＭ１０間の配線長のうち、モジュール内の配線部分の長さは各モジュールで同じであり、ＭＣ１とモジュール間で異なる。
【００２５】
ＭＣ１の内部はアドレスの計算やメモリアドレスの制御などの演算・制御を行うコアロジックの他、クロック信号安定化回路(例えば、ＰＬＬ：Phase Locked LoopやＤＬＬ：Delay Locked Loopなど)５１を有している。ＤＲＡＭ１０との信号の送受信はＤＱ、ＤＱＳ信号に接続されたドライバ５３とレシーバ５４を介して行われる。また、当然クロック信号安定化回路５１の入力回路としてレシーバ５３と同じ特性のものを用いても良い。ＤＲＡＭモジュールの位置検出は、位置検出信号配線３３ー１〜３３ー２に接続されたドライバ５６、レシーバ５７を介して行われる。
【００２６】
ＭＣ１内にはこの他にライトデータのタイミングを生成する位相調整回路（write vernier）５２を有している。ＤＲＡＭ１０は一般的にクロック信号に対してライトデータを書き込むための時間規定があり、これを満たすようにメモリコントローラＭＣ１はタイミング調整する必要があるが、ＭＣ１内の位相調整回路５２はこれを行うための回路である。また、ＭＣ１からモジュール２０ー１、モジュール２０ー２までの信号配線３０、３１、３２の配線長がそれぞれ異なるため、この配線上を伝搬する信号の伝搬遅延時間もモジュール毎に異なり、この伝搬時間差も位相調整回路５２で吸収される。その結果、ＭＣ１は、どのモジュールに搭載されているＤＲＡＭ１０に対しも余裕を持ったタイミングで書き込み（ライト）データを送信できる。
【００２７】
更に、ＭＣ１にはモジュール２０ー１〜２０ー２の位置検出のための回路５５を有している。この位置検出回路５５はドライバ５６とレシーバ５７と配線３３ー１〜３３ー２を用いてモジュール２０ー１までの距離を測定する。この配線３３ー１〜３３ー２はＤＱ信号やＤＱＳ信号、あるいはクロック信号のＭＣ１からモジュール２０ー１までの配線長に等しい長さ、あるいは信号伝搬遅延時間が等しい長さの１対１配線で接続されており、この配線を用いて伝搬遅延時間を測定できる。
【００２８】
伝搬遅延時間の測定の原理は次の通りである。配線３３ー１に接続されているモジュール２０ー１内のバッファ４の入力インピーダンスは、回路をＣ−ＭＯＳで構成した場合、非常に高いのでここで全反射が生じる。このため、ドライバ５６が出力した時間と、バッファ４で全反射したパルスをレシーバ５７で観測した時間との差を観測すればＭＣ１からモジュール２０ー１までの往復の伝搬時間が分かる。観測された時間差は配線３３ー１の往復の伝搬遅延時間とドライバ５６、レシーバ５７の伝搬遅延時間の和に等しい。一般に、ドライバ５６、レシーバ５７の遅延時間は配線３３ー１の往復の遅延時間に比べて短いので、上記の動作によって位置検出回路５５はＭＣ１からモジュールまでの往復の伝搬遅延時間を測定できる。もちろん、モジュール２０ー２に対してもＣＳ−２信号の配線３３ー２に対しても同じ方法で往復の伝搬遅延時間を測定できる。
【００２９】
モジュール２０ー１〜２０ー２毎の測定された伝搬遅延時間である位置情報はライトデータの書き込みタイミングを生成する位相調整回路５２に送られ、書き込み対象のモジュール毎に位相調整される。これはもちろんコアロジックを介して設定しても良い。
【００３０】
次に、図４を用いて位置検出の方式の詳細について述べる。図１に於ける位置検出に関する部分（１回路分）を抜き出したのが図４である。図１と同じ機能の部分には同じ番号を振ってある。
【００３１】
図４の構成では、ＭＣ１内の位置検出回路５５にドライバ５６の入力とレシーバ５７の出力が接続されており、ドライバ５６の出力とレシーバ５７の入力がＭＣ１に設けられたＩ／Ｏピンで接続され、ＭＣ１の外部とＭＣ１のＩ／Ｏピンを介して接続される。レシーバ５７は、このＩ／Ｏピンの電圧をモニターすることでＩ／Ｏピンに接続された配線の電圧状態をモニターしている。メモリモジュール内２０のバッファ４とＭＣ１のＩ／Ｏピンとが、配線３３、コネクタ１５及び配線３６を介して接続されている。配線３３の持つ特性インピーダンスをＺｏ、配線長をＬ０、配線３６の持つ特性インピーダンスをＺｏ’、配線長をＬ１とする。
【００３２】
位置検出回路５５はドライバ５６を介してパルスをドライブする。ドライブパルスは配線３３、コネクタ１５及び配線３６を通ってバッファ４に到達する。バッファ４の入力インピーダンスは高いので、バッファ４の入力部でパルスは全反射する。この反射波は到達した経路を逆順にＭＣ１に伝搬する。ドライバ５６の出力インピーダンスを配線３３の特性インピーダンスＺｏに合わせることで反射波を吸収でき、ＭＣ１のＩ／Ｏピンでの再反射を防ぐことが出来る。
【００３３】
レシーバ５７はＩ／Ｏピンでの電圧の変化を監視することで反射波を捉えることが出来き、ドライバ５６が出力した時刻から反射波が戻った時刻までが観測できる。
【００３４】
図５に示す等価回路を用いて、Ｉ／Ｏピンでの電圧波形シミュレーションを行った。電圧源５８と、それに直列接続された抵抗Ｒｓとでドライバ５６を近似した。配線３３の配線長１００ｍｍ、Ｚｏを７５Ω、モジュール２０内の配線３６の配線長２５ｍｍ、Ｚｏ’を６０Ωとした。このインピーダンスの違いは実際のシステムで配線３３が構成されるプリント基板とモジュール２０とが別部品であることを考慮した事による。また、バッファ４の入力インピーダンスをキャパシタンスＣｌで近似し、その静電容量を典型的な値の３ｐＦとした。観測点をＰ１，Ｐ２，Ｐ３で表した。配線の持つ信号伝搬速度をガラスエポキシ樹脂系のＰＣＢを想定して１３８ｍｍ／ｎｓとした。
【００３５】
電圧源５８を０．５Ｖから１．５Ｖまでの１Ｖ振幅で、０．５ｎｓの遷移時間でドライブしたときの各点での波形をシミュレーションした結果、図６のようになった。実線が電圧源５８の出力点であるＰ１での電圧波形、点線がＩ／Ｏピンに対応するＰ２の電圧波形、破線がバッファ４の入力に対応するＰ３での電圧波形である。Ｐ２では、時刻１ｎｓから０．５Ｖから立上り、１Ｖで一度安定する。この電圧は、ドライバ５６のインピーダンスであるＲｓ＝Ｚｏと配線の特性インピーダンスＺｏの分圧比で決まる。そして、約３．４ｎｓの時点から反射波のため電圧が１．５Ｖまで立上り出す。この２つの立上りの時間差が配線３３と配線３６を往復伝搬する時間である。ちなみに、Ｐ３では、Ｐ２におけるこの２つの立上りが起きる時刻の中間の時刻２ｎｓあたりで電圧が立ち上がり、この時刻がＰ３にパルスが伝搬してきた時刻である。図６では配線３３、３６の伝搬遅延時間をＴｆｌｉｇｈｔ（flight  ｔｉｍｅ）で表した。また、ドライブ側に抵抗Ｒｓがあるため、Ｐ２側での再反射はない。
【００３６】
図６から分かるようにＩ／Ｏピン（Ｐ２）での電圧はＬレベル、中間レベル、Ｈレベルの３値をとり、この３値間の遷移時間が配線３３、３６の往復伝搬遅延時間（２＊Ｔｆｌｉｇｈｔ）であることが分かる。このため、Ｐ１でのドライブパルスからＰ２でのＶｒｅｆ＋を横切った時刻までの時間差がほぼこの往復時間に等しいといえる。すなわち、ドライブパルスとＩ／Ｏピン位置であるＰ２を観測するだけでモジュール２０までの配線遅延時間を測定でき、モジュール２０の位置情報を得ることができる。これはＴＤＲ（Time Domain Reflection)法と呼ばれている方式と同じである。
【００３７】
図４においてレシーバ５７にヒステリシス特性を持たせることで、この２つの遷移を、耐ノイズ性を更に高めて測定できる。レシーバ５７の基準電圧をＶｒｅｆとすると、ヒステリシス特性によりＶｒｅｆに対して、わずかにオフセットを持ってレシーバ５７出力が反転する。この電圧をＶｒｅｆ＋，Ｖｒｅｆ−と表すことにする。図６において、Ｖｒｅｆを１Ｖ、Ｖｒｅｆ＋を１．２Ｖ、Ｖｒｅｆ−を０．８Ｖとした場合、横棒の点線で示された位置でレシーバ５７が反応する。図６の様に立ち上がりパルスに対してはＶｒｅｆ＋の電圧を横切った時点で、立下がりパルスの場合はＶｒｅｆ−を横切った時点でそれぞれレシーバ出力が切り替わる。また、伝送線路上の特性インピーダンスの乱れ、例えば２つの配線３３、３６のＺｏの差、あるいはコネクタ１５などが異なるインピーダンスを持つことでＰ２点での波形が歪む場合でも、レシーバ５７のヒステリシスのオフセット電圧だけノイズ耐性が向上する。つまり、ノイズ耐性が高いと言える。このようにヒステリシス特性を持ったレシーバ５７を用いることで多少のインピーダンス不整合による波形の乱れを受けても安定して反射波を捉えることができる。
【００３８】
次に、図７を用いて位置検出回路５５の動作を示す。
【００３９】
位置検出回路５５はクロックエッジに同期するＦＦ（Ｆｌｉｐ  Ｆｌｏｐ）５０と排他的論理和（ＸＯＲ）５９、及び遅延整合(delay matching)回路７０、遅延レジスタ(delay register)７１とからなり、ＦＦ５０の出力がドライバ５６の入力に、ヒステリシス特性を持つレシーバ５７の出力がＸＯＲ５９の入力にそれぞれ接続されている。ＦＦ５０のクロック端子に入力されるパルス信号６１は、被測定対象である往復の配線遅延時間より長いパルス幅を持っている。同様に、Ｉ／Ｏピン６２、ヒステリシスレシーバ５７の出力信号６３、及びＸＯＲ５９の出力６４を示す。
【００４０】
各信号の波形は図８のようになる。図８はＰＵＬＳＥ信号６１の入力でＦＦ５０の出力が立上がった状態の時の各信号状態を示している。
【００４１】
ＦＦ５０のＰＵＬＳＥ信号６１の入力からドライバ５６の出力までの時間差をＴｃｏとすると、Ｉ／Ｏピンでの信号６２は信号６１に対してＴｃｏ遅延して、図６で示したように電圧が上昇する。レシーバ５７の遅延時間をＴ１とすると、反射波がＩ／Ｏピンに戻ってきてＶｒｅｆ＋を横切った時刻からＴｉｎ遅れて出力信号６３が反転する。この２つの信号６１と６３を排他的論理和（ＸＯＲ）演算する事で信号６４が得られる。このパルス幅（Ｔｗ）は以下の式で表される。
【００４２】
Ｔｗ＝Ｔｃｏ＋２＊Ｔｆｌｉｇｈｔ＋Ｔｉｎ                  （数１）
同様に、立下がりのＰＵＬＳＥ信号６１でも同じパルス幅Ｔｗの信号６４を得ることが出来る。この信号６４を用いることで遅延整合(delay matching)回路７０により、以下に述べるように遅延時間Ｔｗを写す、すなわち、Ｔｃｏ，Ｔｉｎを含んで往復の遅延時間Ｔ１を読めることになる。
【００４３】
遅延整合（delay matching）回路７０の構成の１例を図９に示す。
【００４４】
delay matching回路７０は微少な遅延素子７０ａを多段並べてこれをセレクタ７０ｃにより選択し、切替手段７０ｂで伝送通路を切り換えることで可変遅延素子として動作する。遅延時間が図８で示した位置検出信号６４のパルス幅Ｔｗと同じになるようにこの可変遅延素子の段数を調整する。その基本動作では、遅延の短い順に０、１、２、３・・・とするとｉ番目の可変遅延時間はｉ＊Ｔｄとなる。遅延後の信号とパルス信号６１との排他的論理和の演算によって信号６５が得られるが、この信号６５と位置検出信号６４を位相比較することで可変量の過不足が分かる。遅延量が少ない場合は、位相比較器７０ｄは遅延量を増やすＵ信号が出力される。遅延が短い場合は遅延量を減らすＤ信号を出力するように位相比較器７０ｄは動作する。この段数の調整と位相比較を繰り返すことで、この遅延素子７０ａの遅延量Ｔｄを最少分解能とするＴｗと同じ長さの遅延回路が得られる。
【００４５】
このようにｉ段の遅延素子７０ａは信号６４の遅延量Ｔｗと同じ長さとなり、すなわち、段数ｉがＴｗと等価になる。この値はセレクタ７０ｃの設定値そのままであるので、この設定値をセレクタ７０ｃから図７のレジスタ７１に格納することでＴｗの遅延量に等しい情報がえられる。ＭＣ１内に同じ構成の可変遅延回路７０ｅを用いて同じ段数ｉを設定すれば、同じ遅延量Ｔｗを持つ回路をＭＣ１内の何処にでも配置できる。当然、レジスタ７１はモジュール毎に設定・保持できるようになっている。
【００４６】
また、図１０のように位置検出用と他の信号を共用しても良い。先に述べたように、位置検出回路５５の信号はＭＣ１からメモリモジュール２０への１対１接続された一方向信号であり、また、チップセレクト（ＣＳ）信号も１対１接続された一方向信号である。このことから、位置検出回路５５の信号とＣＳ信号を兼ねることが出来る。このため、ＣＳ制御系のドライバ５３と位置検出ドライバ５６を切り換えることでＩ／Ｏピンを共有できる。これらの切替は出力のイネーブル制御（ＯＥ制御）によって簡単に達成できる。
【００４７】
２つのドライバ５３と５６を設け、これらを切替える必要がある。なぜならば、ＣＳ制御系のドライバ５３の出力インピーダンスは、一般的に配線の特性インピーダンスＺｏに対して低く、Ｚｏに等しい出力インピーダンスを持つ位置検出用のドライバ５６とはインピーダンスが異なるためである。当然出力インピーダンスをＣＳ信号用には低く、位置検出用には高く可変できる単一のドライバを用いても同じ効果が得られる。
【００４８】
ドライバ５３はメモリアクセスに用いられ、ドライバ５６はモジュール位置検出時に用いられ、これらの動作間でドライバが切り換えられる。当然、メモリモジュール位置検出はシステムのメモリアクセルに先立って行われ、通常はパワーオン後に行われる。但し、活線挿抜に対応したメモリモジュールの場合は、システム動作中であってもメモリモジュール挿入直後に位置検出を行う必要がある。モジュールの位置検出は動作中に、一定間隔を置いて行っても良い。この場合、ＭＣ１内の電圧変動、温度変動に対する遅延素子７０ａの遅延量を補正することが出来る。これはシステムの要求による。
【００４９】
次に、図１のようにＭＣ１に接続されている全てのモジュール２０ー１〜２０ー２に対する位置検出のシーケンスを図１１に示す。このシーケンスをモージュール位置検出モードと呼ぶことにする。
【００５０】
まず、ステップ１１０１でドライバを切り換える。ステップ１１０１は、図１０で示したようなＣＳ信号と位置検出用信号を兼用にしたシステムを対象にしており、ＣＳ制御系ドライバ５３から位置検出用のドライバ５６に切り換える。
【００５１】
次に、ステップ１１０２では、初期化を行う。ドライバ５６の出力インピーダンスをこれに接続されている配線の特性インピーダンスにあわせる。例えば、配線のインピーダンスに等しい抵抗器を電圧Ｖｃｃに接続し、他方の端を別に設けられたドライバ５６に接続する。ドライバがＬ出力するときこのドライバの出力電圧が１／２Ｖｃｃとなるようにドライバのインピーダンスを調整することで配線インピーダンスに整合した出力インピーダンスを持つドライバが得られる。Ｈ側のインピーダンスにいても同様である。
【００５２】
また、ステップ１１０２では、モジュール選択のレジスタｋに１を設定する。このレジスタｋはモジュール番号を示している。
【００５３】
次に、ステップ１１０３では、メモリバスに接続されたｋ番目のモジュールを１つ選択し、位置検出回路５５内の可変遅延回路７０ｅを初期化する。すなわち、遅延量を最小あるいは最大に設定する。遅延量を最小に設定する場合、遅延素子７０ａの切替の段数に対応する値をｉとすると、ｉ＝１とする事と等価になる。
【００５４】
ステップ１１０４では、位置検出信号６４を生成する。
【００５５】
次に、ステップ１１０５では、可変遅延回路７０ｅが信号６４のパルス幅Ｔｗと等しいか判定し、等しくなければステップ１１０６に移る。
【００５６】
ステップ１１０６では、可変遅延回路７０ｅ内の遅延量を１段長く（あるいは短く）する。すなわち、ｉの値をｉ＋１にする。そして、ステップ１１０４に戻り同じ手順を繰り返す。
【００５７】
ディレーが整合したならば、ステップ１１０５からステップ１１０７へ移る。
【００５８】
ステップ１１０７では可変遅延回路７０ｅで整合を取った遅延量である段数ｉをディレーレジスタ７１に格納する。ステップ１１０８でモジュール選択が終了したかを判断し、終わってなければステップ１１０９でモジュールの選択レジスタ値を１つ進めてステップ１１０３以降を繰り返す。
【００５９】
上記のシーケンスによって、全モジュールに対してＭＣ１からの往復の伝搬遅延時間がディレーレジスタ７１に設定され、すなわち各モジュール毎に（数１）に示した可変遅延素子の遅延量に相当する情報がdelay register７１に格納される。これにより、ＭＣ１はモジュールの位置情報である遅延量を知ることが出来る。この方式によれば、ＭＣ１の温度に関わらず遅延量の正確な測定が可能である。何故ならば、回路がＣ−ＭＯＳで構成される場合、ジャンクション温度により遅延素子７０ａの遅延量が大きく変動するが、この測定に使用される検出回路５５、遅延整合回路７０とＭＣ１内の他の可変遅延素子は、局所的な温度勾配があっても、同一チップ内では殆ど同じ温度と考えられるためである。また、動作中に設定されたdelay register７１の設定時と異なる温度になった場合でも、再測定すれば温度の影響を排することが出来る。
【００６０】
次に、図１２を用いて図１に示した位相調整回路５２の動作について述べる。図１２はＭＣ１からモジュールにデータを書き込む際の各種時間の関係を示す図である。
【００６１】
位相調整回路５２の目的は、ライト時にモジュール２０に入力されるクロック信号とデータ信号（ＤＱ信号、ＤＱＳ信号）あるいは制御信号を、モジュール２０の位置に関わらずクロック信号に対して一定の位相関係にすることである。即ち、モジュール２０内のＤＲＡＭ１０がクロック信号に対するＤＱ，ＤＱＳ信号のタイミング規定を満足するように、ＭＣ１が送信信号であるライトデータのタイミングを調整することである。
【００６２】
このため、位相調整回路５２は、モジュール２０の遠近に関わらずデータの送信タイミングをモジュールに入力されるクロックに対して一定になるように、モジュールの距離に応じてライトデータのタイミングを制御することを目的としている。
【００６３】
まず、モジュール位置でのタイミングの計算方法について述べる。
【００６４】
図１２では簡単のため、１つのメモリモジュール２０とＭＣ１とが接続されている場合を示す。配線形態は時間計算のためのパラメータである配線長だけを示しており、結合器や終端抵抗は省略されている。他のモジュールについても配線長を変えるだけで同じように計算できる。また、データ信号ＤＱとデータストローブ信号ＤＱＳは同じ配線長を持つように設計されるので、図１２ではＤＱＳを代表させて記載している。ＤＱ信号やバス接続される制御線に対しても同様である。
【００６５】
パルス発生器２からのクロック信号はモジュール２０を介してＭＣ１に入力される。この時のモジュール２０とＭＣ１とのクロック信号のパルスエッジの位相差（時間差）はクロック配線３０の配線長を伝搬する時間と等しく、配線長に伝搬速度を掛けた伝搬遅延時間をＴ１，ｃｌｋで表す。同様に、信号ＤＱＳがＭＣ１とモジュール２０の間の配線３１を伝搬する際の伝搬遅延時間をＴ１，ｄｑｓで表わし、位置検出用の信号であるＣＳ信号が配線３３を伝搬する際の伝搬遅延時間をＴ１，ｃｓで表す。また、モジュール内においてクロック信号が配線３４を伝搬する際の伝搬遅延時間をＴ２，ｃｌｋで表わし、ＤＱＳ信号が配線３５を伝搬する際の伝搬遅延時間をＴ２，ｄｑｓで表わし、ＣＳ信号が配線３６を伝搬する際の伝搬遅延時間をＴ２，ｃｓで表す。
【００６６】
ここで、ＭＣ１内でクロック入力からデータ出力までの遅延時間（Ｔｍｃ）を計算する。
【００６７】
Ｔｍｃ＝Ｔｉｎ＋Ｔｓｋｅｗ，ｍｃ＋Ｔｗｖ＋Ｔｃｏ          （数２）
ここで、Ｔｉｎはクロック入力からレシーバ５４’の出力である内部信号６５までのスキュー、Ｔｓｋｅｗ，ｍｃはクロック安定化回路（ＤＬＬ）５３のスキュー、Ｔｗｖは位相調整回路(write vernier)５２の遅延時間、Ｔｃｏは位相調整回路５２からの信号６６からＦＦを介してドライバ５３の出力までの遅延時間である。
【００６８】
次に、モジュール２０内のDRAM１０の入力クロックに対するデータDQS信号の時間差（Ｔｄｒａｍ）を計算する。モジュール２０のクロック信号が入力された信号６７を基準に考えると以下のようになる。
【００６９】
0003757757.tif 000002
ここで、Ｔｓｋｅｗ，ｄｒａｍは位相安定化回路（ＤＬＬ）３のクロック入力からＤＲＡＭ１０のクロック入力までのスキューである。配線３４、３５の配線長差が無視できるとするとＴｄｒａｍは（数４）で表わされる。同様に、配線３０、３１の配線長差を無視できるぐらいに設計すればＴｄｒａｍは以下の式となる。
【００７０】
0003757757.tif 000003
ここで、以下のように近似を行なった。
【００７１】
Ｔ１＝Ｔ１，ｃｌｋ〜Ｔ１，ｄｑｓ〜Ｔ１，ｃｓ                  （数７）
一方、位置検出回路５５による整合される可変遅延時間（Ｔｗ）は（数１）より次式となる。
【００７２】
Ｔｗ＝Ｔｉｎ＋２＊（Ｔ１，ｃｓ＋Ｔ２，ｃｓ）＋Ｔｃｏ          （数８）
ここで、位置検出用のレシーバ５７はクロック信号用のレシーバ５４’と同じ遅延時間Ｔｉｎを持つものとしている。この（数８）を（数６）に代入すると次式となる。
【００７３】
0003757757.tif 000004
ＤＲＡＭ１０の入力クロックに対するデータDQS信号の時間差（Ｔｄｒａｍ）は、制御できないスキュー分を差し引くと次式となる。
【００７４】
Ｔｄｒａｍ＝Ｔｗ＋Ｔｗｖ−２＊Ｔ２，ｃｓ                    （数１０）
Ｔ２，ｃｓはモジュール２０内の配線３６の伝搬遅延時間であり、配線３６はモジュール２０の位置に依らない固定長である。そのため、ＭＣ１では、モジュール２０の位置情報である観測されたＴｗを元に位相調整回路５２で遅延量Ｔｗｖを制御することで、全てのＤＲＡＭ１０に対してＤＲＡＭ１０が規定するタイミングを生成できることになる。
【００７５】
また、図７のように位置検出回路５５を構成することでＴｃｏ，Ｔｉｎを含んだ形でモジュール２０の位置による遅延量Ｔｗを写し取ることができる。すなわち、より精度の高い補正が可能となる。
【００７６】
以上に述べたように、次式で表わされる遅延量Ｔｗｖを位相調整回路５２によってモジュール毎に生成することで、全ＤＲＡＭ１０に対して同じタイミング（Ｔｄｒａｍ）を生成できる。
【００７７】
Ｔｗｖ＝Ｔｄｒａｍ＋２＊Ｔ２，ｃｓ−Ｔｗ                    （数１１）
ＤＲＡＭ１０の仕様であるＴｄｒａｍと固定値の２＊Ｔ２，ｃｓをオフセットにしてモジュール毎の”−Ｔｗ”を生成できればよい。
【００７８】
ここで、Ｔｗは負の値”−Ｔｗ”になっているが、負の値を持つＴｗは図１３のように実現できる。”−Ｔｗ”をＴｗｖ’と置く。システムクロック６０に対しても図９の可変遅延回路７０ｅを用いて遅延素子の段数を計測できる。クロック信号６０の半周期（Ｔｃｋ）に対して今Ｊ段で遅延量（Ｊ＊Ｔｄ）があったとする。図１３（ａ）のＴｗ＞Ｔｃｋの場合、Ｔｗはｉ段だったので、Ｔｗｖ'は次式となる。
【００７９】
Ｔｗｖ’＝（Ｊ−ｉ）＊Ｔｄ                                  （数１２）
図１３では大文字のＩを用いており、本文では小文字のｉを用いているがいずれも同じ意味で用いている。図１３（ｂ）のＴｗ＜Ｔｃｋの場合でも、Ｔｗｖ'は次式で与えられる。
【００８０】
Ｔｗｖ’＝ＭＯＤ（ｉ，Ｊ）＊Ｔｄ                            （数１３）
ここで、ＭＯＤは剰余関数であり、例えば、ＭＯＤ（１０，３）は１である。（数１２）は商が０の場合の剰余を表わし、（数１３）と等価である。同様に、（数１１）の代わりに、次式のように遅延量を設定しても良い。
【００８１】
Ｔｗｖ＝ＭＯＤ（Ｔｄｒａｍ＋２＊Ｔ２，ｃｓ−Ｔｗ，Ｔｃｌｋ）（数１４）
上式はそれぞれの量が遅延素子７０ａの遅延時間によって離散化されていれば簡単な算術演算となる。この場合、オフセットのための遅延回路（Ｔｄｒａｍ＋２＊Ｔ２，ｃｓ）を持たなくて済み回路が簡単になる。
【００８２】
このように動作するためのdelay register７１の構成の一例を図１４に示す。
【００８３】
図１４はレジスタ７１のマップであり、レジスタはモジュールの最大搭載数（ｋ個）用意されている。各レジスタは、このモジュールの順番をアドレスとして持ち、（数１３）で計算された遅延段数をデータとして持っている。図１４では（数１３）のＭＯＤ［ｉ（ｋ），Ｊ］が遅延段数として格納されており、その内容はｋ番目のモジュールに対し位置検出回路５５により求まった遅延素子段数ｉ（ｋ）とシステムクロックの等価段数Ｊとの剰余計算結果である。同様に、（数１４）の計算結果であっても良い。
【００８４】
位相調整回路５２の出力信号であるデータ出力用クロック信号６６は、クロック安定化回路５３の出力であるシステムクロックから、（数１３）で表される遅延量Ｔｗｖ’とオフセット（＝Ｔｄｒａｍ＋Ｔ２，ｃｓ）の和の遅延量として生成される。その結果、何れのＤＲＡＭ１０に対しても、ＦＦからドライバ５３の遅延時間Ｔｃｏ，配線３１の往復の遅延時間Ｔ１、レシーバ５４’の入力遅延時間Ｔｉｎをキャンセルすることができ、ＤＲＡＭ１０の仕様であるクロック信号とライトデータの位相関係を示すＴｄｒａｍによってライトデータを全てのメモリモジュールに書き込むことが出来る。また、ＭＣ１とメモリモジュール２０間の配線長が長い場合、ＴｗがＴｃｋに対して何倍も大きい場合があるが、この場合でも（数１３）の遅延量で構わない。その理由は、データ用クロック信号６６がシステムクロック６４の周期で剰余を求めてあるからである。また、図１３ではシステムクロックＴｃｋは半周期であるので、データ信号がＤＲＡＭ１０に到達するタイミングはクロック信号に対し半周期ずれていることになるが、メモリの仕様が例えばダブルデータレート同期ＤＲＡＭ（ＤＤＲ−ＳＤＲＡＭ）ならば問題ない。シングルデータレートの場合は基準とするクロック信号を分周してクロック周期をＴｃｋとすれば同相となり、クロック周期は選択するメモリに応じて調整することが出来る。
【００８５】
図１５にライトアクセス時のシーケンスを示す。
【００８６】
ＤＲＡＭに対してライトアクセスする場合、ＭＣ１はプロセッサやＩ／Ｏからライトアクセス要求を先行して受け付ける。ＭＣ１では論理アドレスから実際のＤＲＡＭの物理的なアドレスへ変換するする必要があり、これをステップ１５０１で行っている。次に、ステップ１５０２では、計算された物理アドレスに対応するライトアクセス対象のモジュールを選択する。選択されたモジュールをｋとする。モジュールの選択はチップ選択（ＣＳ）信号を用いて行われる。モジュールが選択されると図１４のレジスタ７１のマップに基づいて位相調整回路５２にレジスタ７１の遅延段数を設定する（１５０４）。ステップ１５０２，１５０４と並行してメモリにライトアクセス制御信号を送信する（１５０３）。ライトアクセス制御信号はライトデータに先立ちＭＣ１から出力される。その後、位相調整回路５２により適正に遅延したライトデータが出力される（１５０５）。以上でライトアクセスは終了する。もちろん、連続アドレスに対するバーストデータライトもステップ１５０５と同様に行えば良い。
【００８７】
上記のシーケンスにより、モジュールに配られるクロック信号に確実に同期してライトデータを送信できる。
【００８８】
次に、図１６を用いて第２の実施例を説明する。
【００８９】
図１６と図１２とでは、メモリモジュール２０内のクロック安定化回路（ＤＬＬ）３で生成・分配するクロックタイミングが異なる。図１６では、ＤＬＬ３の出力を遅延配線３７によって遅延させた信号をＤＬＬ３の参照として入力している。
【００９０】
図１２の信号６５、６６、６７の他に、モジュール２０内のＤＬＬ３の入力信号６８、ＤＲＡＭ１０のクロック入力信号６９、モジュール２０のピンでのＤＱＳ信号６Ａ、ＤＲＡＭ１０のピンでのＤＱＳ信号６Ｂ、ＭＣ１のピンでのＤＱＳ信号６Ｃ、ＭＣ１のピンでのクロック入力信号６Ｄが追加される。
【００９１】
遅延配線３７は、その遅延量がＤＬＬ３のクロック出力からＤＲＡＭ１０のクロック入力信号６９の配線遅延と配線３４の２倍の伝搬遅延時間Ｔ２の和となるような配線長を持つ。このように配線することで、ＤＲＡＭ１０のクロックは信号６７からＴ２前の位相に合うことになる。その結果、メモリシステムとして時間精度が更に増す。その理由を、図１７を用いて説明する。
【００９２】
図１７（ａ）はリードデータのタイミングを示す図である。
【００９３】
図１６においてクロック信号はまず信号６７に到達し、クロック配線３０の伝搬遅延時間Ｔ１、ｃｌｋだけ遅延後に信号６Ｄに到達する。また、ＤＬＬ３の働きにより信号６７よりもＴ２だけ早くＤＲＡＭ１０にクロック信号が入力される。
【００９４】
ＤＲＡＭ１０はクロック信号６９に応じて所定の仕様でデータ信号６Ｂを出力する。図１７ではこの時間差を便宜上、ゼロとする。この時間差がゼロでなくても以下の議論に影響はない。ＤＲＡＭ１０から送信されたデータは、信号６Ｂから配線３５の遅延時間Ｔ２後に信号６Ａに到達し、その後、配線３１の遅延時間Ｔ１経過後にＭＣ１のＤＱＳ入力信号６Ｃに到達する。
【００９５】
ＭＣ１側から見ると、クロック入力信号６ＤとＤＱＳ信号入力６Ｃは全く同じタイミングになっている。このように遅延配線３７に配線３４の２倍のＴ２分のオフセットを設けることで、ＭＣ１ではクロック信号とデータ信号が同着となる。その結果、モジュール２０内の配線３４、３５の長さが同じであればクロック信号とデータ信号の遅延をキャンセルできる。ここで、図１７でのＤＱＳ信号はＬからＨへの遷移のみを記載しているが、逆の場合でも同様である。同様に、ＤＲＡＭ１０に入力されるクロック信号６９に対してＤＱＳ信号の出力６Ｂがある一定な値を持っていても、この値を保持したままＭＣ１に到達することは明らかである。
【００９６】
次に、図１７（ｂ）を用いてライトデータのタイミングを説明する。クロック信号６Ｄ，６７，６９は図１７（ａ）と同じである。
【００９７】
ＭＣ１からＤＱＳ信号６６が出力されるのはクロック信号６５に対して（数１１）で表される遅延時間後である。ここで、ＭＣ１内の位置調整回路５２によってオフセット時間である２＊Ｔ２，ｃｓをゼロに設定する以上のことを式で表わすと以下のようになる。
【００９８】
0003757757.tif 000005
ここで、モジュール２０内の配線３４、３５、３６はそれぞれ殆ど同じ長さＴ２であるとした。（数１５）をＭＣ１のピンで定義されたクロック信号６ＤとピンでのＤＱＳ信号６Ｃとの間の遅延時間として書き直すと次式となる。
【００９９】
0003757757.tif 000006
（数１６）の関係を図示したものが図１７（ｂ）の信号６Ｃである。すなわち、ＭＣ１のクロック入力信号６Ｄに対する遅延時間は２＊Ｔ１＋２＊Ｔ２になっている。ＤＱＳ信号６６が配線３１を伝搬しＴ１時間後に信号６Ａに到達する。そして、ＤＲＡＭ１０のＤＱＳ信号入力６ＢにはＴ２後に到達する。ＤＱＳ信号６６はＤＲＡＭ１０のクロック入力信号６９と全く同じ位相である。すなわち、ライトデータに対しても、ＤＬＬ３の配線差を設け、かつＭＣ１内の位相調整回路５２によってオフセットをＴｄｒａｍに設定するだけで時間調整が可能である。
【０１００】
図１６のように回路を構成することで、リードデータ及びライトデータのいずれに対してもＤＲＡＭ１０の仕様をオフセットとしてクロック信号とＤＱＳ信号を同位相に出来るので時間精度を向上できる。また、ＭＣ１内の位相調整回路５２内に２＊Ｔ２のオフセット遅延回路を持つ必要がないので、回路の構成が簡単になると共にスキューが低減する。その結果、更なる高速化が可能である。
【０１０１】
図１８に第３の実施例を示す。
【０１０２】
図１８は、ＭＣ１からメモリから直接アクセスするメモリシステムを示す。メモリ１０−１〜１０−４はクロック配線３０とデータ信号３１を介して直接ＭＣ１とデータ送受信する。配線３０、３１がリード優先配線となるようにクロックパルス発生器２が接続されている。ＭＣ１はライトデータに対する位相調整回路（ｗｒｉｔｅ  ｖｅｒｎｉｅｒ）５２を有している。リードデータはクロック信号３０によって位相差無しで取り込まれる。また、ＭＣ１とＤＲＡＭ１０−１〜１０−４と間のデータの送受信を説明したが、メモリシステムが他の機能を持つＬＳＩであっても時間関係は変わらないので同じ効果が得られる。
【０１０３】
また、図１９に本発明を情報処理装置に応用した実施例を示す。情報処理装置は、プロセッサ８０−１〜８０−４、メモリを搭載したメモリモジュール２０、及びＩ／Ｏポート９０−１〜９０−４からなり、システムブリッジがこれらの間のデータフローを制御している。システムブリッジに内蔵されたメモリコントローラ１はメモリバスを介してメモリモジュール２０を制御している。このメモリバスに第１から第３の実施例で説明した技術を適用することでシステムとしてリードアクセルレイテンシが改善し、システム性能が向上する。
【０１０４】
【発明の効果】
メモリシステムをリード優先の配線にすることで、リードアクセスの方がライトアクセスより大幅に多い情報処理装置におけるリードアクセスのアクセスレイテンシィが短くでき、システム性能が向上する。また、メモリコントローラ（ＭＣ）と複数あるメモリモジュール間を１対１配線し、これを用いて矩形パルスをドライブして反射波が戻ってくる時間を計測することでモジュールまでの伝搬遅延時間が分かり、この時間を用いてリードアクセス優先配線を用いてもライトアクセスが高速に動作できる。その結果、図２の従来例よりも性能を向上でき、図３の従来例と比べて、メモリ内に位相調整回路４０を持たずに済み、さらに、パッケージのクロック信号用のピンが１本ですむのでコストを下げることができる。
【図面の簡単な説明】
【図１】  第１の実施例を説明する図である。
【図２】  第１の従来例である。
【図３】  第２の従来例である。
【図４】  モジュール位置検出回路配線である。
【図５】  モジュール位置検出の原理の説明図である。
【図６】  モジュール位置検出のシミュレーション波形である。
【図７】  モジュール位置検出回路の第１の例である。
【図８】  モジュール位置検出回路のタイミング説明図である。
【図９】  遅延整合回路と時間関係説明図である。
【図１０】  モジュール位置検出回路の第２の例である。
【図１１】  モジュ−ル位置検出シーケンスである。
【図１２】  ライトデータタイミング調整の説明図である。
【図１３】  ライトタイミング説明図である。
【図１４】    delayレジスタのマップである。
【図１５】  ライトアクセスシーケンスである。
【図１６】  ライトデータタイミング調整の説明図（第２の実施例）である。
【図１７】  第２の実施例のタイミング説明図である。
【図１８】  リード優先配線メモリシステムである。
【図１９】  リード優先配線メモリシステムを用いた情報処理装置である。
【符号の説明】
１・・・メモリコントローラ、２・・・クロック信号生成器（水晶発振器）、
３・・・クロック分配器、４・・・制御信号用バッファ、５・・・方向性結合器、
１０・・ＤＲＡＭチップ、１５・・コネクタ、２０・・ＤＲＡＭモジュール、
３０・・クロック信号配線、３１・・データ信号配線（ＤＱ）、
３２・・データストローブ信号配線（ＤＱＳ）、
３３，３３−１，３３−２・・・位置検出用の信号配線、
３４、３５、３６・・・配線、
４０・・・Read vernier回路、４１・・・位相調整回路、
５０・・・Ｆｌｉｐ  Ｆｌｏｐ、５１・・・クロック安定化回路、
５２・・・位相調整回路(write vernier)、
５３・・・出力回路、５４・・・入力回路、５５・・・位置情報検出回路、
５６・・・位置検出用ドライバ、５７・・・位置検出用レシーバ、
５８・・・パルス電源、５９・・・排他的論理和回路
【図１】
0003757757.tif 000007
【図２】
0003757757.tif 000008
【図３】
0003757757.tif 000009
【図４】
0003757757.tif 000010
【図５】
0003757757.tif 000011
【図６】
0003757757.tif 000012
【図７】
0003757757.tif 000013
【図８】
0003757757.tif 000014
【図９】
0003757757.tif 000015
【図１０】
0003757757.tif 000016
【図１１】
0003757757.tif 000017
【図１２】
0003757757.tif 000018
【図１３】
0003757757.tif 000019
【図１４】
0003757757.tif 000020
【図１５】
0003757757.tif 000021
【図１６】
0003757757.tif 000022
【図１７】
0003757757.tif 000023
【図１８】
0003757757.tif 000024
【図１９】
0003757757.tif 000025