(57)【要約】【課題】Ｌｏａｄ  Ｒｅｄｕｃｅｄ型のメモリモジュールにおいて、ＣＡ信号にＰｒｅ−ｌａｕｎｃｈ、ＣＴＲＬ信号にＰｏｓｔ−ｌａｕｎｃｈ機能を実現し、ＣＡ信号のセットアップマージン、ＣＴＲＬ信号のホールドマージンを確保する。【解決手段】メモリモジュール上のメモリバッファは、アドレス、コマンド信号（ＣＡ）に出力を速める（Ｐｒｅ−ｌａｕｎｃｈ）機能とコントロール信号（ＣＴＲＬ）に出力を遅くする（Ｐｏｓｔ−ｌａｕｎｃｈ）機能を備える。Ｐｒｅ／Ｐｏｓｔ−ｌａｕｎｃｈの時間調整用のステップ時間刻みをｔＣＫ／３２またはそれよりも高精細とする。【選択図】図１３
2011048682.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号に対して、アドレス・コマンド系信号の出力タイミング速めるプリ・ローンチ（Ｐｒｅ−ｌａｕｎｃｈ）手段と、
前記クロック信号に対して、コントロール系信号の出力タイミングを遅くするポスト・ローンチ（Ｐｏｓｔ−ｌａｕｎｃｈ）手段と、
を備え、タイミング調整された前記アドレス・コマンド系信号と前記コントロール系信号とを複数のメモリチップに対して出力する、ことを特徴とする制御装置。
【請求項２】
前記クロック信号に対する、前記アドレス、コマンド系信号の出力タイミング、及び／又は、前記コントロール系信号の出力タイミングに関する最適タイミングを、トレーニングによって求める、ことを特徴とする請求項１記載の制御装置。
【請求項３】
モジュール基板上に搭載され、前記モジュール基板上の複数のメモリチップと信号の送受を行うメモリバッファであって、
請求項１又は２に記載の制御装置を備えたメモリバッファ。
【請求項４】
複数のメモリチップとの間で信号の送受を行うメモリコントローラであって、
請求項１又は２に記載の制御装置を備えたメモリコントローラ。
【請求項５】
モジュール基板と、前記モジュール基板上の複数のメモリチップと、請求項３記載のメモリバッファと、を備えたメモリモジュール。
【請求項６】
モジュール基板と、
前記モジュール基板の上に搭載された複数のメモリチップと、
前記モジュール基板の上に搭載され、上位装置との間及び前記複数のメモリチップとの間で信号の送受を行うメモリバッファと、
を備え、
前記メモリバッファは、
クロック信号に対して、アドレス・コマンド系信号の出力タイミングを速めるプリ・ローンチ（Ｐｒｅ−ｌａｕｎｃｈ）手段と、
前記クロック信号に対して、コントロール系信号の出力タイミングを遅くするポスト・ローンチ（Ｐｏｓｔ−ｌａｕｎｃｈ）手段と、
を備え、タイミング調整された前記アドレス・コマンド系信号と前記コントロール系信号とを複数のメモリチップに対して出力する、ことを特徴とするメモリモジュール。
【請求項７】
前記メモリバッファにおいて、前記プリ・ローンチ、及び／又は、ポスト・ローンチ手段における、タイミング調整用のステップ時間刻みを、１クロックサイクル（ｔＣＫ）の１／６よりも高精細の所定値とする、ことを特徴とする請求項６記載のメモリモジュール。
【請求項８】
前記メモリバッファは、前記クロック信号に対する、前記アドレス、コマンド系信号の出力タイミング、及び／又は、前記コントロール系信号の出力タイミングに関する最適タイミングを、トレーニングによって求める、ことを特徴とする請求項６記載のメモリモジュール。
【請求項９】
前記メモリバッファにおいて、前記プリ・ローンチ、及び／又は、ポスト・ローンチ手段における、タイミング調整用のステップ時間刻みを、１クロックサイクル（ｔＣＫ）の１／３２又はそれよりも高精細とする、ことを特徴とする請求項６記載のメモリモジュール。
【請求項１０】
前記メモリバッファは、前記アドレス・コマンド系信号を受ける第１のフリップフロップと、
前記コントロール系信号を受ける第２のフリップフロップと、
クロック信号を受けるＰＬＬ（位相同期ループ）回路と、
位相進み量（プリローンチ量）と位相遅れ量（ポスト・ローンチ量）を格納する記憶部と、
前記記憶部から、前記位相進み量と前記位相遅れ量を入力し前記ＰＬＬ回路に制御信号を設定するする第１の制御回路と、
を備え、
前記ＰＬＬ回路は、位相進み量、位相遅れ量に対応して前記クロックに対して位相を速めた第１のクロック信号と第２のクロック信号と、前記クロック信号に位相同期した第３のクロック信号を出力し、
前記第１、第２のクロック信号はそれぞれ前記第１、第２のフリップフロップに供給され、前記第３の信号は、前記複数のメモリチップに供給され、前記第１、第２のフリップフロップの出力が、アドレス・コマンド系信号とコントロール系信号として、前記複数のメモリチップに供給される、ことを特徴とする請求項６記載のメモリモジュール。
【請求項１１】
前記メモリバッファは、前記クロック信号に対する、前記アドレス、コマンド系信号の出力タイミング、及び／又は、前記コントロール系信号の出力タイミングに関する最適タイミングをトレーニングによって求め、前記最適タイミングに対応する前記位相進み量（プリローンチ量）と前記位相遅れ量（ポスト・ローンチ量）を前記記憶部に格納する第２の制御回路を備えたことを特徴とする請求項１０記載のメモリモジュール。
【請求項１２】
前記クロック信号に対する前記アドレス・コマンド系信号のタイミング調整にあたり、
前記メモリモジュール上において前記メモリバッファに最も近く配置される第１のメモリチップについて、前記メモリバッファから出力される前記アドレス・コマンド系信号を初期設定から前記ステップ時間（Ｔ）で位相を順次進ませていき、前記第１のメモリチップがホールド時間不足でフェイルする１回前までの時間（Ｔ１Ｈ＝ｍ１ｘＴ）を前記メモリバッファに記憶させ、
前記メモリモジュール上において前記メモリバッファから最も遠く配置される第２のメモリチップについて、前記メモリバッファから出力される前記アドレス・コマンド系信号を初期設定から前記ステップ時間（Ｔ）で位相を順次遅らせていき、前記第２のメモリチップがセットアップ時間不足でフェイルする１回前までの時間（Ｔ５Ｓ＝ｎ５ｘＴ）を前記メインバッファに記憶させ、
（Ｔ１Ｈ−Ｔ５Ｓ）／２＝（ｍ１−ｎ５）Ｔ／２に対応する時間分だけ、前記アドレス・コマンド系信号を初期設定から速めて出力させ、
設定した前記アドレス・コマンド系信号で新たにＴ１Ｈ、Ｔ５Ｓを求め、前記新たなＴ１Ｈと新たなＴ５Ｓの差の絶対値がステップ時間（Ｔ）以下の場合、前記クロック信号に対する前記アドレス・コマンド系信号のタイミング調整トレーニングを終了する、ことを特徴とする請求項６記載のメモリモジュール。
【請求項１３】
前記（Ｔ１Ｈ−Ｔ５Ｓ）／２に対応する時間分だけ、前記アドレス・コマンド系信号を初期設定から速めて出力させる際に、前記（Ｔ１Ｈ−Ｔ５Ｓ）／２が負の場合、その絶対値を分、遅くし、
｜ｍ１−ｎ５｜が奇数の場合は、（ｍ１−ｎ５＋１）Ｔ／２にして処理する、ことを特徴とする請求項１２記載のメモリモジュール。
【請求項１４】
前記クロック信号に対するコントロール系信号のタイミング調整トレーニングに当り、
前記メモリモジュールにおいて前記メモリバッファに最も近く配置される第１のメモリチップについて、前記メモリバッファからの前記コントロール系信号を初期設定から所定のステップ時間（Ｔ）で位相を順次遅らせていき、前記第１のメモリチップがセットアップ時間不足でフェイルする１回前までの時間（Ｔ１Ｓ＝ｎ１ｘＴ）を前記メモリバッファに記憶させ、
前記メモリモジュールにおいて前記メモリバッファから最も遠く配置される第２のメモリチップについて、前記メモリバッファからの前記コントロール系信号を初期設定から前記ステップ時間（Ｔ）で位相を順次進ませていき、前記第２のメモリチップがホールド時間不足でフェイルする１回前までの時間（Ｔ５Ｈ＝ｍ５ｘＴ）を前記メモリバッファに記憶させ、
（Ｔ１Ｓ−Ｔ５Ｈ）／２＝（ｎ１−ｍ５）Ｔ／２だけ、前記コントロール系信号を初期設定から遅らせて出力し、
設定したコントロール系信号で、新たにＴ１Ｓ、Ｔ５Ｈを求め、前記新たなＴ１Ｓ、Ｔ5Ｈの差の絶対値が前記ステップ時間（Ｔ）以下の場合、前記クロック信号に対する前記コントロール系信号のタイミング調整トレーニングを終了する、ことを特徴とする請求項６記載のメモリモジュール。
【請求項１５】
前記（Ｔ１Ｓ−Ｔ５Ｈ）／２に対応する時間分だけ、前記コントロール系信号を初期設定から遅らせて出力させる際に、前記（Ｔ１Ｓ−Ｔ５Ｈ）／２が負の場合、その絶対値分、速めて出力し、
｜ｎ１−ｍ５｜が奇数の場合は、（ｎ１−ｍ５＋１）Ｔ／２にして処理する、ことを特徴とする請求項１４記載のメモリモジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリモジュールに関する。
【０００２】
ＤＩＭＭ（Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）等のメモリモジュールは、モジュール基板上にＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリチップが複数搭載された構成を有している。メモリモジュールは、マザーボード上に設けられたメモリスロットに装着される。メモリモジュールとメモリコントローラ間でデータの転送が行われる。近時、システムに要求されるメモリ容量の増大に伴い、１枚のメモリモジュールで所要のメモリ容量を確保することは困難となってきている。このため、通常、マザーボードが複数のメモリスロットを備え、複数のメモリスロットに複数のメモリモジュールが装着される。複数のメモリモジュールを装着すると、マザーボード上でのデータ配線の負荷容量が大となり信号品質が劣化する。メモリコントローラとメモリモジュール間のデータ転送レートが高くなると、データ配線の負荷容量による信号品質の劣化により正しくデータ転送が行えないという問題が生じる。例えば１．６〜３．２Ｇｂｐｓ程度の高速転送を実現するためには、マザーボード上におけるデータ配線の負荷容量を十分に低減する必要がある。
【０００３】
データ配線の負荷容量を低減することが可能なメモリモジュールとしては、いわゆるＦｕｌｌｙ  Ｂｕｆｆｅｒｅｄ型のメモリモジュールが知られている（特許文献１参照）。Ｆｕｌｌｙ  Ｂｕｆｆｅｒｅｄ型のメモリモジュールにおいては、メモリコントローラから供給されるライトデータを一旦全てアドバンストメモリバッファ（Ａｄｖａｎｃｅｄ  Ｍｅｍｏｒｙ  Ｂｕｆｆｅｒ：ＡＭＢ）と呼ばれる専用チップで受け、ＡＭＢからライトデータを所定のメモリチップに供給する。リード動作はこの逆であり、メモリチップから出力されたリードデータが一旦全てＡＭＢに供給され、ＡＭＢからメモリコントローラへ供給される。
【０００４】
したがって、メモリコントローラからは、各メモリチップの負荷容量が見えない（ＡＭＢしか見えない）。その結果、データ配線の負荷容量が大幅に低減する。
【０００５】
しかしながら、完全バッファ型（Ｆｕｌｌｙ  Ｂｕｆｆｅｒｅｄ型）のメモリモジュールに用いられるＡＭＢは高機能なチップであり、比較的高価であり、消費電力も大きい。このため、メモリモジュールの価格が大幅に高くなるという問題がある。また、Ｆｕｌｌｙ  Ｂｕｆｆｅｒｅｄ型のメモリモジュールでは、メモリコントローラとＡＭＢとの間におけるインターフェース（各モジュール間のインターフェースをシリアル化し、Ｐｏｉｎｔ−ｔｏ−Ｐｏｉｎｔで接続）が、メモリコントローラとメモリチップ間における通常のインターフェースとは異なることから、従来のメモリコントローラをそのまま使用することができないという問題もある。
【０００６】
このような背景から、近年、「Ｌｏａｄ  Ｒｅｄｕｃｅｄ型」と呼ばれるメモリモジュール（「ＬＲ−ＤＩＭＭ」という）が提案されている。Ｌｏａｄ  Ｒｅｄｕｃｅｄ型のメモリモジュールでは、ＡＭＢの代わりにメモリバッファ（Ｍｅｍｏｒｙ  Ｂｕｆｆｅｒ）を用い、転送されたデータ（ＤＱ）や、ＣＡ（コマンド、アドレス）などの信号をバッファリングする。メモリコントローラとメモリバッファとの間におけるインターフェースは、メモリコントローラとメモリチップとの間における通常のインターフェースとは変わらないことから、低消費電力であり、従来のメモリコントローラをそのまま使用することができる。図１にＬＲ−ＤＩＭＭの概略構成を示す。図１（Ａ）には、ＬＲ−ＤＩＭＭの構成が斜視図で示され、メモリバッファ近傍の部分拡大図が示されている。図１（Ｂ）には、ＬＲ−ＤＩＭＭの構成の側面図が示されている。図１に示された構成は、３ＤＰＣ（ＤＩＭＭ  ｐｅｒ  Ｃｈａｎｎｅｌ）  ｘ  ３  ｃｈａｎｎｅｌであり、１チャネルあたり、３ＤＩＭＭ構成の３チャネルとされる。１０１はマザーボード、１０２はメモリコントローラ、１０３はＬＲ−ＤＩＭＭ（ＤＩＭＭ基板）、１０４はＤＩＭＭ１０３上のメモリバッファ、１０５はＤＩＭＭ１０３上のＤＲＡＭ（クロック同期型ＤＲＡＭ）、１０６はマザーボード１０１上のデータ・メインバス（ＤＱ  ＭＡＩＮ  ｂｕｓ）、１０７はＤＩＭＭ１０３上のＤＱスタブ、１０８はＤＩＭＭ１０３上のスタブ抵抗、１０９はコネクタである。
【０００７】
図１において、ＤＩＭＭ（ＬＲ−ＤＩＭＭ）１０３は、複数個のＤＲＡＭチップ１０５が全てＤＩＭＭ基板の両面に搭載される構成のＤＩＭＭとされ、複数のＤＲＡＭチップ１０５に対して１個のメモリバッファ（Ｍｅｍｏｒｙ  Ｂｕｆｆｅｒ）１０４が搭載される。メモリバッファ（Ｍｅｍｏｒｙ  Ｂｕｆｆｅｒ）１０４（レジスタードバッファ）は、メモリコントローラ１０２からのデータ、クロック等を、ＤＩＭＭ１０３上のコネクタ１０９、スタブ抵抗１０８、ＤＱスタブ１０７を介して、取り込みクロック信号とタイミングを合わせ信号波形を整形・増幅（バッファリングして同一ＤＩＭＭ１０３上のＤＲＡＭチップ１０５に供給する。
【０００８】
図２は、図１のＬＲ−ＤＩＭＭ１０３におけるデータＤＱ、データストローブＤＱＳ、ＣＡ信号（アドレス、コマンド）、ＣＴＲＬ（コントロール信号）、ＣＬＫ（クロック信号）の流れを示す図である。実線で示す信号は、メモリバッファ１０４でバッファリングする前（Ｐｒｅ−Ｂｕｆｆｅｒ）の信号、破線はバッファリング後（Ｐｏｓｔ−Ｂｕｆｆｅｒ）の信号である。なお、図２では、例えば２Ｒｘ４構成（２Ｒは２ランク、ｘ４は４ビット構成のチップ）とされる。メモリバッファ１０４は基板裏面のＤＲＡＭ１に重なって配置され、基板表面のＤＲＡＭ２〜５に対してバッファリングされたクロック等を供給するとともに、スルーホールを介して基板裏面側のＤＲＡＭ１、及びＤＲＡＭ２〜５に対してバッファリングされたクロック等を供給する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−１３５５９７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
以下に本発明による関連技術の分析を与える。
【００１１】
図３（Ａ）は、図２におけるメモリバッファの出力信号の遅延状況を説明する図である。横軸のＤＲＡＭの位置は、図２におけるＤＩＭＭ１０３上のＤＲＡＭ１、２、３、４、５に対応し、縦軸は遅延時間（ピコ秒）である。ＣＡ信号、ＣＬＫ信号、ＣＴＲＬ信号（ＣＳ、ＣＫＥ、ＯＤＴ）のＤＲＡＭ１（メモリバッファの出力ピン）からＤＲＡＭ５に到達するまでの時間の遅延の状況が示されている。ＣＴＲＬ信号のＣＳ（Ｃｈｉｐ  Ｓｅｌｅｃｔ）は例えばＨｉｇｈでチップを選択する。ＣＫＥ（Ｃｌｏｃｋ  Ｅｎａｂｌｅ）はＨｉｇｈのとき内部クロックを供給し、Ｌｏｗのとき内部クロック供給を停止する。ＯＤＴ（Ｏｎ  Ｄｉｅ  Ｔｅｒｍｉｎａｔｉｏｎ）はＤＱ、ＤＱＳ等の終端抵抗の設定のオン・オフを制する。ＤＲＡＭ５に到達するまでの遅延として、ＣＡ信号には１０００ｐｓを超えた遅れが生じており、ＣＬＫ信号には７００〜８００ｐｓ程度の遅れが生じ、ＣＴＲＬ信号（ＣＳ、ＣＫＥ、ＯＤＴ）には５００ｐｓ程度の遅れが生じる。
【００１２】
図３（Ｂ）は、メモリバッファ１０４の出力（図２のＤＲＡＭ１の入力）におけるＣＡ、ＣＴＲＬ、ＣＬＫのタイミング波形を示す図である。１クロックサイクルは、ＤＤＲ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）３−２１３３で９３７．５ｐｓとする。ｔ１Ｓ、ｔ１Ｈは、ＤＲＡＭ１の位置でのセットアップ時間とホールド時間である。なお、セットアップ時間（ｓｅｔｕｐ  ｔｉｍｅ）は、ラッチ等で正しく信号が取り込まれるために、ＣＬＫの有効エッジ（例えば立ち上がり）に先立って信号の値を確定、保持しておかなければならない時間であり、ホールド時間（ｈｏｌｄ  ｔｉｍｅ）は、ＣＬＫの有効エッジ（立ち上がり）の後に信号値を保持しておかなければならない時間である。図３（Ｃ）は、遠端（Ｆａｒ）のＤＲＡＭ５の位置におけるＣＡ、ＣＴＲＬ、ＣＬＫのタイミング波形を示す図である（図３（Ｂ）に示したＣＡ、ＣＴＲＬ、ＣＬＫがＤＲＡＭ５にまで伝播した時点でのＣＡ、ＣＴＲＬ、ＣＬＫの波形）。図３（Ｃ）に示すように、ＣＡ信号の遅れにより、ＤＲＡＭ５におけるＣＡ信号のセットアップ時間ｔ５Ｓは、ＤＲＡＭ１におけるセットアップ時間ｔ１Ｓと比較して小さくなり、また、ＤＲＡＭ５におけるＣＴＲＬ信号のホールド時間ｔ５Ｈは、ＤＲＡＭ１におけるホールド時間ｔ１Ｈと比較して小さくなっている。すなわち、各信号の伝播遅延時間の差により、ＤＲＡＭ５におけるＣＡ信号のセットアップ時間のタイムマージンであるセットアップマージン、またＣＴＲＬ信号のホールド時間のタイムマージンであるホールドマージンが無いことが分かる。
【００１３】
こういったマージンが無くなる問題を解決するために、ＣＡ信号の出力を速める（Ｐｒｅ−ｌａｕｎｃｈ）という考えはあったが、ＣＴＲＬ信号については、バッファあるいはレジスタの出力ピンにおいて、ＣＬＫ信号がＣＴＲＬ信号の常にセンタ、あるいは、若干のＰｒｅ−ｌａｕｎｃｈとなっていた。
【００１４】
また、その調整の時間刻み（ｓｔｅｐ）についても、１クロック周期ｔＣＫの１／６や１／４や１００ｐｓ〜１５０ｐｓ程度と粗い刻みであった。
【００１５】
ＬＲ−ＤＩＭＭにおいて、予定されている全カード（Ｒａｗ  ｃａｒｄ）の構成を調査した結果、ＣＴＲＬ信号については、理論的に、出力を遅らせること（Ｐｏｓｔ−ｌａｕｎｃｈ）が必要であることを見出したのでそれを提案する。
【００１６】
なお、Ｌｏａｄ  Ｒｅｄｕｃｅｄ型のメモリモジュールにおいて、ＣＴＲＬ信号のＰｏｓｔ−ｌａｕｎｃｈ機能は存在しない。
【００１７】
また、時間調整の時間刻みステップ（Ｓｔｅｐ）時間も、ｔＣＫ／６やｔＣＫ／４等（ｔＣＫは１クロック周期）と粗く、ＬＲ−ＤＩＭＭには適していなかった。例えばＤＤＲ３−１６００／１８６６／２１３３クラスに、ＬＲ−ＤＩＭＭでは高速化される。このため、Ｐｒｅ／Ｐｏｓｔ−ｌａｕｎｃｈの最適な時間刻み（ｓｔｅｐ）についても提案する。
【００１８】
本発明においては、最適タイミングの自動トレーニングについても提案する。
【課題を解決するための手段】
【００１９】
本発明によれば、上記課題の１つ又は複数の解決を図るため、概略、以下の構成とされる。
【００２０】
本発明によれば、アドレス、コマンド信号（ＣＡ信号）に出力を速める（Ｐｒｅ−ｌａｕｎｃｈ）機能、コントロール信号（ＣＴＲＬ信号）に出力を遅くする（Ｐｏｓｔ−ｌａｕｎｃｈ）機能を備える。
【００２１】
また、本発明においては、Ｐｒｅ／Ｐｏｓｔ−ｌａｕｎｃｈの時間刻をｔＣＫ／３２またはそれよりも高精細としてもよい。
【００２２】
本発明によれば、最適タイミングを求めるトレーニング機能を備える。
【発明の効果】
【００２３】
本発明によれば、Ｌｏａｄ  Ｒｅｄｕｃｅｄ型のメモリモジュールにおいて、ＣＡ信号にＰｒｅ−ｌａｕｎｃｈ、ＣＴＲＬ信号にＰｏｓｔ−ｌａｕｎｃｈ機能を実現し、時間調整の分解能を細かくしたことにより、ＤＩＭＭ上の遠端側のチップにおいて、ＣＡ信号のセットアップマージン、ＣＴＲＬ信号のホールドマージンを確保することを可能とし、高速データ転送の動作安定性、信頼性を向上する。
【００２４】
さらに、本発明によれば、トレーニング機能を実現し、実システム上で最適タイミングを求められるようにしている。
【図面の簡単な説明】
【００２５】
【図１】ＬＲ−ＤＩＭＭシステムの概要を示す図であり、（Ａ）は斜視図と部分拡大図、（Ｂ）は側面図である。
【図２】ＬＲ−ＤＩＭＭの概要を示す図である。
【図３】メモリバッファ（ＭＢ）の出力信号の遅延状況を説明する図である。
【図４】本発明の実施例において、調整後のＣＡ信号の遅延状況を説明する図である。
【図５】本発明の実施例において、調整後のＣＴＲＬ信号の遅延状況を説明する図である。
【図６】各ＬＲ−ＤＩＭＭ  ローカード（Ｒａｗ  Ｃａｒｄ）のトレースロード（Ｔｒａｃｅ  ｌｏａｄ）をまとめて示す図である。
【図７】メモリバッファのピンカウントを示す図である。
【図８】ＶＬＰ／ＬＰ  ２Ｒｘ８とＬＰ  ２Ｒｘ４のトポロジーの概要とトレースロードを示す図である。
【図９】ＬＰ  ４Ｒｘ８とＬＰ  ４Ｒｘ４のトポロジーの概要とトレースロードを示す図である。
【図１０】ＬＰ  ８Ｒｘ８とＬＰ  ８Ｒｘ４のトポロジーの概要とトレースロードを示す図である。
【図１１】ＶＬＰ／ＬＰ  ２Ｒｘ４とＶＬＰ／ＬＰ  ４Ｒｘ８のトポロジーの概要とトレースロードを示す図である。
【図１２】ＶＬＰ  ４Ｒｘ４とＶＬＰ  ８Ｒｘ８のトポロジーの概要とトレースロードを示す図である。
【図１３】本発明の一実施例のＰｒｅ／Ｐｏｓｔ  ｌａｕｎｃｈ回路の構成を示す図である。
【図１４】図１３におけるＣＡ信号のタイムチャートを示す図である。
【図１５】図１３におけるＣＴＲＬ信号のタイムチャートを示す図である。
【図１６】トレーニングによるＣＡ信号のタイミング最適化を説明する図である。
【図１７】ＣＬＫ信号に対するＣＡ信号のタイミング調整のフローチャートである。
【図１８】トレーニングによるＣＴＲＬ信号のタイミング最適化を説明する図である。
【図１９】ＣＬＫ信号に対するＣＴＲＬ信号のタイミング調整のフローチャートである。
【図２０】本発明の別の実施例のＰｒｅ／Ｐｏｓｔ  ｌａｕｎｃｈ回路の構成を示す図である。
【図２１】最適ステップ時間刻みを説明する図である（その１）。
【図２２】最適ステップ時間刻みを説明する図である（その２）。
【図２３】本発明の別の実施例を説明する図である（その２）。
【発明を実施するための形態】
【００２６】
本発明によれば、ＣＡ信号は、Ｐｒｅ−ｌａｕｎｃｈとし、ＣＴＲＬ信号にＰｏｓｔ−ｌａｕｎｃｈ機能を持たせる。図４は、本発明の一実施形態を説明する図である。図４（Ａ）は、調整後のＣＡ信号の遅延状況を説明する図である。横軸は、図２のＤＲＡＭ１からＤＲＡＭ５の位置、縦軸は遅延時間（単位はピコ秒）である。ＤＲＡＭ１からＤＲＡＭ５に到達する時間の遅れの状況が示されている。図４（Ｂ）は、ＤＲＡＭ１（メモリバッファの出力）におけるＣＡ信号、メモリバッファより速めて出力されたＣＡ信号（ｐｒｅ−ｌａｕｎｃｈｅｄ  ＣＡ信号）、及び、ＣＬＫ信号のタイミング波形を示す図である。
【００２７】
図４（Ｃ）は、ＤＲＡＭ５の位置におけるＣＡ信号、メモリバッファより速めて出力されたＣＡ信号（ｐｒｅ−ｌａｕｎｃｈｅｄ  ＣＡ信号）及び、ＣＬＫのタイミング波形を示す図である。メモリバッファ（例えば図１の１０４）においてＣＡ信号を速めて出力し（ｐｒｅ−ｌａｕｎｃｈ）、
ｔ１ＡＨ＝ｔ５ＡＳ
になるようにすれば、ＤＩＭＭ全体でマージンを最大にできる。ｔ１ＡＨはＤＲＡＭ１におけるｐｒｅ−ｌａｕｎｃｈｅｄ  ＣＡ信号（コマンド、アドレス）のホールド時間、ｔ５ＡＳはＤＲＡＭ５におけるｐｒｅ−ｌａｕｎｃｈｅｄ  ＣＡ信号のセットアップ時間である。図４（Ｃ）のＤＲＡＭ５の位置におけるＣＡ信号のセットアップ時間ｔ５Ｓは、図３（Ｃ）のセットアップ時間ｔ５Ｓと同一である。
【００２８】
図５は、本発明の一実施形態を説明する図である。図５（Ａ）は、タイミング調整後のＣＴＲＬ信号の遅延状況を説明する図である。横軸は、図２のＤＲＡＭ１からＤＲＡＭ５の位置、縦軸は遅延時間である。ＤＲＡＭ１からＤＲＡＭ５に到達する時間の遅れの状況が示されている。図５（Ｂ）は、ＤＲＡＭ１におけるＣＴＲＬ信号、メモリバッファより出力タイミングを遅らせて出力されたＣＴＲＬ信号（ｐｏｓｔ−ｌａｕｎｃｈｅｄ  ＣＴＲＬ信号）（ＣＳ、ＣＫＥ、ＯＤＴ）、ＣＬＫのタイミング波形を示す図である。図５（Ｃ）は、ＤＲＡＭ５の位置におけるＣＴＲＬ信号、ｐｏｓｔ−ｌａｕｎｃｈｅｄ  ＣＴＲＬ信号、ＣＬＫ信号のタイミング波形を示す図である。ＣＴＲＬ信号を遅らせて出力し（ｐｏｓｔ−ｌａｕｎｃｈ）、
ｔ１ＣＳ＝ｔ５ＣＨ
になるようにすれば、ＤＩＭＭ全体でマージンを最大にできる。ｔ１ＣＳはＤＲＡＭ１におけるｐｏｓｔ−ｌａｕｎｃｈｅｄ  ＣＴＲＬ信号のセットアップ時間、ｔ５ＣＳは、ＤＲＡＭ５におけるｐｏｓｔ−ｌａｕｎｃｈｅｄ  ＣＴＲＬ信号のホールド時間である。
【００２９】
本実施形態において、メモリバッファ（ＭＢ）から出力されるＣＡ信号は、Ｐｒｅ−ｌａｕｎｃｈ、ＣＴＲＬ信号（ＣＳ、ＯＤＴ、ＣＫＥ）は、Ｐｏｓｔ−ｌａｕｎｃｈとする。また、上記最適タイミングを、トレーニングによって求めることを可能にする。すなわち、本実施形態においては、最適タイミングを求めるトレーニング機能を持たせて、実システム上で最適タイミングを求められるようにしている。本実施形態において、トレーニングによって、最適タイミングを求める際のＰｒｅ／Ｐｏｓｔ−ｌａｕｎｃｈのＳｔｅｐ時間は、例えばｔＣＫ／６４以下とする。
【００３０】
本実施形態において、マニュアルにより、最適タイミングを求める際のＳｔｅｐ時間は、ｔＣＫ／３２以下とする。ＣＡ信号はＰｒｅ−ｌａｕｎｃｈのみ、ＣＴＲＬ信号はＰｏｓｔ−ｌａｕｎｃｈのみで良い理由を以下に説明する。
【００３１】
図６は、各ＬＲ−ＤＩＭＭのＲａｗ  Ｃａｒｄ（Ｔｈｅ  ＪＥＤＥＣ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｓｓｏｃｉａｔｉｏｎ）による標準のＤＩＭＭ基板をいう）のトレースロード（Ｔｒａｃｅ  ｌｏａｄ）をまとめたものである。トレースロード（Ｔｒａｃｅ  ｌｏａｄ）は、１本の配線の単位長当たりに接続されている負荷（Ｌｏａｄ）をいう。なお、レイアウト方法は１通りでないため、図６では、トレースロード８−４（８あるいは４）のように表している。ＬＰ（Ｌｏｗ  Ｐｒｏｆｉｌｅ）のモジュールは、２Ｒｘ８、２Ｒｘ４、４Ｒｘ８、４Ｒｘ４、８Ｒｘ８、８Ｒｘ４の構成がからなる。ＶＬＰ（Ｖｅｒｙ  Ｌｏｗ  Ｐｒｏｆｉｌｅ）は、２Ｒｘ８、２Ｒｘ４、４Ｒｘ８、４Ｒｘ４、８Ｒｘ８構成からなる。ｘ８は８ビット構成のチップ、ｘ４は４ビット構成のチップを表す。２Ｒはデュアルランクを表し１枚のＤＩＭＭで２ランク（ランクはメモリ転送において１度にアクセスされるＤＲＡＭのセット）をサポートする。４Ｒ、８Ｒは１枚のＤＩＭＭで４、８ランクをサポートする。Ｍｏｎｏは単層、ＤＤＰ（Ｄｕａｌ  Ｄｉｅ  Ｐａｃｋａｇｅ）は２個のＤＲＡＭ２を積層、ＱＤＰ（Ｑｕａｄ  Ｄｉｅ  Ｐａｃｋａｇｅ）は４個のＤＲＡＭを積層した構成である。
【００３２】
信号ＱＣＳ、ＱＯＤＴ、ＱＣＫＥの負荷は、信号Ｙ（ＣＬＫ）の負荷以下である。このため、全てのケースでｐｏｓｔ−ｌａｕｎｃｈとなる。ＱＣＡ信号の負荷はＹ（ＣＬＫ）以上である。このため、全てのケースでｐｒｅ−ｌａｕｎｃｈとなる。
【００３３】
信号の伝播遅延時間ｔｐｄ（１ｍ当りの遅延（ナノ秒））は、
2011048682.tif 000003
で表される。
【００３４】
ただし、
Ｌ０は配線単位長当たりのインダクタンス（Ｈ／ｍ）
Ｃ０は配線単位長当たりの容量（Ｆ／ｍ）
Ｃｄは配線単位長当たりのＤＲＡＭ容量（Ｆ／ｍ）である。
【００３５】
１本の配線の単位長当たりにＤＲＡＭが多数接続されていると、配線単位長当たりのＤＲＡＭ容量Ｃｄが大きくなり、伝播遅延時間ｔｐｄが大きくなる。
【００３６】
図７は、ＤＲＡＭ１０５へ向けて出力するメモリバッファ１０４（図１参照）のＣＡ系の信号ピンの例を示す図である。ＱＡＣＡは左側用ＣＡ信号（アドレスＡ０、Ａ１他）、ＱＢＣＡは右側用ＣＡ信号（Ａ０、Ａ１他）、４ピン（ビット）のＱＡＣＳ［３：０］は左側用ＣＳ（Ｃｈｉｐ  Ｓｅｌｅｃｔ）信号、４ピン（ビット）のＱＢＣＳ［３：０］は右側用ＣＳ（Ｃｈｉｐ  Ｓｅｌｅｃｔ）信号、２ピン（ビット）のＱＡＯＤＴ［１：０］は左側用ＯＤＴ（Ｏｎ  ｄｉｅ  Ｔｅｒｍｉｎａｔｉｏｎ）信号、２ピン（ビット）のＱＢＯＤＴ［１：０］は右側用ＣＳＤＴ（Ｏｎ  ｄｉｅ  Ｔｅｒｍｉｎａｔｉｏｎ）信号、４ピン（ビット）のＱＡＯＣＫＥ［３：０］は左側用ＣＫＥ（Ｃｌｏｃｋ  Ｅｎａｂｌｅ）信号、４ピン（ビット）のＱＢＯＣＫＥ［３：０］は右側用ＣＫＥ（Ｃｌｏｃｋ  Ｅｎａｂｌｅ）信号、４対のピンＹ［３：０］／Ｙ［３：０］＃は、４対のＣＬＫ信号対（ＣＬＫ、ＣＬＫ＃）である。
【００３７】
この信号ピン数の例を用いて、ＬＲ−ＤＩＭＭの全てのＲａｗ  Ｃａｒｄのトレースロードを求めた検討結果の例を図８〜図１２に示す。図６はこれらをまとめで示した図である。
【００３８】
図８（Ａ）、（Ｂ）、（Ｃ）はＶＬＰ／ＬＰの２Ｒｘ８構成、単層、ＤＲＡＭの並びが１行（１Ｒｏｗ）のＬＲ−ＤＩＭＭ基板の上面図、側面図、図８（Ａ）の右端又は左端からみた側面図であり、２ランクＲ０、Ｒ１の割当を示す図である。図８（Ｄ）はＣＡ、ＣＴＲＬ（ＣＳ、ＯＤＴ、ＣＫＥ）、Ｙ（ＣＬＫ）のトレースロードである。
【００３９】
図８（Ｅ）、（Ｆ）、（Ｇ）はＬＰの２Ｒｘ４構成、単層、ＤＲＡＭの並びが２行（２ＲＯｗ）のＬＲ−ＤＩＭＭ基板の上面図、側面図、図８（Ｅ）の右端又は左端からみた側面図であり、２ランクＲ０、Ｒ１の割当を示す図である。図８（Ｈ）はＣＡ、ＣＴＲＬ（ＣＳ、ＯＤＴ、ＣＫＥ）、Ｙ（ＣＬＫ）のトレースロードである。
【００４０】
図９（Ａ）、（Ｂ）、（Ｃ）はＬＰの４Ｒｘ８構成、単層、ＤＲＡＭの並びが２行（２Ｒｏｗ）のＬＲ−ＤＩＭＭ基板の上面図、側面図、図９（Ａ）の右端又は左端からみた側面図であり、４ランクＲ０、Ｒ１、Ｒ２、Ｒ３の割当を示す図である。図９（Ｄ）はＣＡ、ＣＴＲＬ（ＣＳ、ＯＤＴ、ＣＫＥ）、Ｙ（ＣＬＫ）のトレースロードである。
【００４１】
図９（Ｅ）、（Ｆ）、（Ｇ）はＬＰの４Ｒｘ４構成、２層（２Ｈ  Ｓｔａｃｋ  ＤＤＰ）、ＤＲＡＭの並びが２行（２Ｒｏｗ）のＬＲ−ＤＩＭＭ基板の上面図、側面図、図９（Ｅ）の右端又は左端からみた側面図であり、４ランクＲ０、Ｒ１、Ｒ２、Ｒ３の割当を示す図である。図９（Ｈ）はＣＡ、ＣＴＲＬ（ＣＳ、ＯＤＴ、ＣＫＥ）、Ｙ（ＣＬＫ）のトレースロードである。
【００４２】
図１０（Ａ）、（Ｂ）、（Ｃ）はＬＰの８Ｒｘ８構成、２層（ＤＤＰ）、ＤＲＡＭの並びが２行（２Ｒｏｗ）のＬＲ−ＤＩＭＭ基板の上面図、側面図、図１０（Ａ）の右端又は左端からみた側面図であり、８ランクＲ０、Ｒ１、Ｒ２、Ｒ３の割当を示す図である。図１０（Ｄ）はＣＡ、ＣＴＲＬ（ＣＳ、ＯＤＴ、ＣＫＥ）、Ｙ（ＣＬＫ）のトレースロードである。
【００４３】
図１０（Ｅ）、（Ｆ）、（Ｇ）はＬＰの８Ｒｘ４構成、４層（４Ｈ  Ｓｔａｃｋ  （ＱＤＰ））、ＤＲＡＭの並びが２行（２Ｒｏｗ）の上面図、側面図、図１０（Ｅ）の右端又は左端からみた側面図であり、８ランクＲ０〜Ｒ７の割当を示す図である。図１０（Ｈ）はＣＡ、ＣＴＲＬ（ＣＳ、ＯＤＴ、ＣＫＥ）、Ｙ（ＣＬＫ）のトレースロードである。CAトレースロード８−４のうちの４は、終端抵抗Ｒｔｔ（図２の１０）に対応する。
【００４４】
図１１（Ａ）、（Ｂ）、（Ｃ）は、ＶＬＰ／ＬＰの２Ｒｘ４構成、２層（ＤＤＰ）、ＤＲＡＭの並びが１行（１Ｒｏｗ）の上面図、側面図、図１１（Ａ）の右端又は左端からみた側面図であり、２ランクＲ０、Ｒ１の割当を示す図である。図１１（Ｄ）はＣＡ、ＣＴＲＬ（ＣＳ、ＯＤＴ、ＣＫＥ）、Ｙ（ＣＬＫ）のトレースロードである。
【００４５】
図１１（Ｅ）、（Ｆ）、（Ｇ）はＶＬＰ／ＬＰの４Ｒｘ８構成、２層（２Ｈ  Ｓｔａｃｋ  ＤＤＰ）、ＤＲＡＭの並びが１行（１Ｒｏｗ）の上面図、側面図、図１１（Ｅ）の右端又は左端からみた側面図であり、８ランクＲ０〜Ｒ７の割当を示す図である。図１１（Ｈ）はＣＡ、ＣＴＲＬ（ＣＳ、ＯＤＴ、ＣＫＥ）、Ｙ（ＣＬＫ）のトレースロードである。
【００４６】
図１２（Ａ）、（Ｂ）、（Ｃ）は、ＶＬＰ  ４Ｒｘ４構成、４層（ＱＤＰ）、ＤＲＡＭの並びが１行（１Ｒｏｗ）の上面図、側面図、図１２（Ａ）の右端又は左端からみた側面図であり、４ランクＲ０、Ｒ１、Ｒ２、Ｒ３の割当を示す図である。図１２（Ｄ）はＣＡ、ＣＴＲＬ（ＣＳ、ＯＤＴ、ＣＫＥ）、Ｙ（ＣＬＫ）のトレースロードである。
【００４７】
図１２（Ｅ）、（Ｆ）、（Ｇ）はＶＬＰ  ８Ｒｘ８構成、４層（４Ｈ  Ｓｔａｃｋ  ＱＤＰ）、ＤＲＡＭの並びが１行（１Ｒｏｗ）の上面図、側面図、図１２（Ｅ）の右端又は左端からみた側面図であり、４ランクＲ０〜Ｒ３の割当を示す図である。図１２（Ｈ）はＣＡ、ＣＴＲＬ（ＣＳ、ＯＤＴ、ＣＫＥ）、Ｙ（ＣＬＫ）のトレースロードである。
【００４８】
図１３は、本実施例のメモリバッファ１０４（図１、図２）におけるＣＡ信号のＰｒｅ−ｌａｕｎｃｈ、ＣＴＲＬ信号のＰｏｓｔ−ｌａｕｎｃｈの回路構成を示す図である。内部ＣＡ信号（内部コマンド、アドレス信号）は、フリップフロップ１１、バッファ１６を介して、ＣＡ信号として出力される。内部ＣＴＲＬ信号（内部コントロール信号）は、フリップフロップ１２、バッファ１７を介して、ＣＴＲＬ信号として出力される。内部クロックφは、ＰＬＬ（位相同期ループ）回路１３に入力され、その出力φが反転バッファ１８を介して、ＣＬＫ信号として出力される。なお、図１３では、簡単のため、内部ＣＡ信号は１本の信号線（ライン）として示され、フリップフロップ１１は１入力、１出力として示されているが、内部ＣＡ信号は複数ビットの信号がパラレルに複数のフリップフロップ１１（レジスタ）に入力され、φ１に同期してパラレルにサンプル出力される。同様に、内部ＣＴＲＬ信号についても、ＣＳ、ＣＫＥ、ＯＤＴ等、複数ビットの信号がパラレルに複数のフリップフロップ１２（レジスタ）に入力され、φ２に同期してパラレルにサンプル出力される。Ｐｒｅ−ｌａｕｎｃｈ量、Ｐｏｓｔ−ｌａｕｎｃｈ量格納レジスタ１５からＰｒｅ−ｌａｕｎｃｈ量（位相進み量）、Ｐｏｓｔ−ｌａｕｎｃｈ量（位相遅れ量）を入力する制御回路１（１４）は、ＰＬＬ回路１３に制御信号を入力し、ＰＬＬ回路１３は、Ｐｒｅ−ｌａｕｎｃｈ量に対応して、内部クロックφに対して位相を速めた信号φ１と、Ｐｏｓｔ−ｌａｕｎｃｈ量に対応して内部クロックφに対して位相を遅らせた信号φ２と、内部クロックφに位相同期した信号φＳを出力する。
【００４９】
ＰＬＬ回路１３は、例えば内部クロックφと出力信号φＳとの位相差を検出する位相検出器（ＰＤ）と、位相検出器（ＰＤ）での位相差の検出結果に対応した電圧を生成するチャージポンプ（ＣＰ）及び、チャージポンプ（ＣＰ）の出力を平滑化するＬＰＦ（Ｌｏｏｐ  Ｆｉｌｔｅｒ）と、ＬＰＦの出力電圧を制御電圧として入力する電圧制御発振器（ＶＣＯ：Ｖｏｌｔａｇｅ  Ｃｏｎｔｒｏｌｌｅｄ  Ｏｓｃｉｌｌａｔｏｒ）を備え（いずれも不図示）、電圧制御発振器（ＶＣＯ）はＬＰＦからの制御電圧に応じて受け発振周波数を可変させ、内部クロックφに位相同期した信号φＳを出力する、という周知の構成が用いられる。本実施例において、ＰＬＬ回路１３は、制御回路１（１４）からの制御信号によって、φＳに対する位相の進み量が可変に設定制御されるφ１を出力するとともに、制御回路１（１４）からの制御信号によってφＳに対する位相の遅れ量が可変に設定制御されるφ２を出力する。ＰＬＬ回路１３の電圧制御発振器（ＶＣＯ）を、制御信号によって遅延が可変されるインバータを奇数段リング接続したリングオシレータ（インバータ２段が単位遅延を構成）において、φＳを取り出す位置（タップ）に対して、前、及び後の単位遅延の整数倍の位置（タップ）の中から、制御信号によって、タップを選択することで、φ１及びφ２を取り出すことで、φＳと、φ１及びφ２を生成するようにしてもよい。
【００５０】
フリップフロップ１１は、内部クロックφの位相を速めた信号φ１に応答して、内部ＣＡ信号をサンプル出力する。フリップフロップ１２は、内部クロックφの位相を遅らせた信号φ２に応答して内部ＣＴＲＬ信号をサンプル出力する。
【００５１】
図１４は、図１３の回路におけるＣＡ信号に関するタイミングチャートである。標準のＣＡ信号は、内部ＣＡ信号をＰＬＬ回路１３の出力クロックφｓの立ち上がりエッジでサンプルする。Ｐｒｅ−ｌａｕｎｃｈされたＣＡ信号は、内部ＣＡ信号を、フリップフロップ１１にて、ＰＬＬ回路１３の出力クロックφ１（φの位相を速めた信号）の立ち上がりエッジでサンプルする。標準のＣＡ信号は、ＣＬＫ信号（φ＃、φの反転）の立ち下がりの時点で変化するが、Ｐｒｅ−ｌａｕｎｃｈされたＣＡ信号はＣＬＫ信号（φ＃、φの反転）の立ち下がりの時点よりも速く変化している。
【００５２】
図１５は、図１３の回路におけるＣＴＲＬ信号に関するタイミングチャートである。標準のＣＴＲＬ信号は、内部ＣＬＲＬ信号をＰＬＬ回路１３の出力クロックφｓの立ち上がりエッジでサンプルする。Ｐｒｅ−ｌａｕｎｃｈされたＣＡ信号は、内部ＣＴＲＬ信号を、フリップフロップ１２にて、ＰＬＬ回路１３の出力クロックφ２（φの位相を遅らせた信号）の立ち上がりエッジでサンプルする。標準のＣＴＲＬ信号は、ＣＬＫ信号（φ＃、φの反転）の立ち下がりの時点で変化するが、Ｐｏｓｔ−ｌａｕｎｃｈされたＣＴＲＬ信号はＣＬＫ信号（φ＃、φの反転）の立ち下がり時点よりも遅れて変化している。
【００５３】
前記した実施例では、ＬＲ−ＤＩＭＭの基板設計（配置、配線）時に、最適のＰｒｅ−ｌａｕｎｃｈ量、あるいは、Ｐｏｓｔ−ｌａｕｎｃｈ量を決めておき、メモリバッファ１０４のＰｒｅ／Ｐｏｓｔ  ｌａｕｎｃｈ量格納レジスタ１５に値を格納する。なお、Ｐｒｅ−ｌａｕｎｃｈ量及びＰｏｓｔ−ｌａｕｎｃｈ量は、書き換え可能な不揮発性メモリ等（不図示）に記憶保持するようにしてもよいことは勿論である。
【００５４】
本発明の別の実施例では、トレーニングによって、最適のＰｒｅ−ｌａｕｎｃｈ量、Ｐｏｓｔ−ｌａｕｎｃｈ量を求める。図１６は、トレーニングによるＣＡ信号のタイミング最適化を説明する図である。図１６（Ａ）、（Ｂ）、（Ｃ）は、図４（Ａ）、（Ｂ）、（Ｃ）に対応する。ＣＡ信号の初期の位置が、図４の例と相違している例である。
【００５５】
図１７は、ＣＬＫ信号に対するＣＡ信号のタイミング調整トレーニングのフローチャートである。
【００５６】
ＣＬＫに対するＣＡ信号のタイミング調整トレーニング開始する（ステップＳ１）。
【００５７】
メモリバッファ１０４に最も近いＤＲＡＭ１（図２参照）について、メモリバッファ１０４から出力されるＣＡ信号を初期設定からあるステップ時間ＴでＰｏｓｔ−ｌａｕｎｃｈさせてＤＲＡＭ１がセットアップ（Ｓｅｔｕｐ）時間不足でＦａｉｌ（フェイル）する１回前までの時間
Ｔ１Ｓ＝ｎ１ｘＴ（図１６（Ｂ）参照）を、メモリバッファ１０４に記憶させる（ステップＳ２、ただし、省略可）。
【００５８】
メモリバッファ１０４に最も近いＤＲＡＭ１について、メモリバッファ１０４から出力されるＣＡ信号を初期設定からあるステップ時間ＴでＰｒｅ−ｌａｕｎｃｈさせてＤＲＡＭ１がホールド（Ｈｏｌｄ）時間不足でＦａｉｌする１回前までの時間
Ｔ１Ｈ＝ｍ１ｘＴ（図１６（Ｂ）参照）
をメモリバッファ１０４に記憶させる（ステップＳ３）。
【００５９】
メモリバッファ１０４から最も遠いＤＲＡＭ５について、メモリバッファ１０４から出力されるＣＡ信号を初期設定からあるステップ時間ＴでＰｏｓｔ−ｌａｕｎｃｈさせてＤＲＡＭ５がＳｅｔｕｐ時間不足でＦａｉｌする１回前までの時間
Ｔ５Ｓ＝ｎ５ｘＴ（図１６（Ｃ）参照）
をメインバッファ１０４に記憶させる（ステップＳ４）。
【００６０】
メモリバッファ１０４から最も遠いＤＲＡＭ５について、メモリバッファ１０４から出力されるＣＡ信号を初期設定からあるステップ時間ＴでＰｒｅ−ｌａｕｎｃｈさせてＤＲＡＭ５がＨｏｌｄ時間不足でＦａｉｌする１回前までの時間Ｔ５Ｈ＝ｍ５ｘＴ（図１６（Ｃ）参照）をメインバッファ１０４に記憶させる（ステップＳ５、ただし、省略可）。
【００６１】
ステップＳ３、ステップＳ４で求めたＴ１Ｈ、Ｔ５Ｓから、
（Ｔ１Ｈ−Ｔ５Ｓ）／２＝（ｍ１−ｎ５）Ｔ／２
だけ、ＣＡ信号を初期設定から速めて出力させる。
【００６２】
（Ｔ１Ｈ−Ｔ５Ｓ）／２がマイナスの場合は、その絶対値分｜ｍ１−ｎ５｜Ｔ／２、遅らせて出力させる。
【００６３】
また、｜ｍ１−ｎ５｜が奇数の場合、
（ｍ１−ｎ５＋１）Ｔ／２
にして処理する（ステップＳ６）。ｍ１−ｎ５が正の奇数の場合、（ｍ１−ｎ５＋１）Ｔ／２だけ、ＣA信号を初期設定から速めて出力させる。ｍ１−ｎ５が負の奇数の場合、｜（ｍ１−ｎ５＋１）｜Ｔ／２だけ、ＣＡ信号を初期設定から遅らせて出力させる。
【００６４】
設定したＣＡ信号で新たにＴ１Ｈ（図１６（Ｂ）のｎｅｗＴ１Ｈ）、
Ｔ５Ｓ（図１６Ｃ（Ｃ)のｎｅｗＴ５Ｓ）を求める（ステップＳ７）。
【００６５】
次に、
｜新たなＴ１Ｈ−新たなＴ５Ｓ｜≦ステップ時間Ｔ
であるか否か判定する（ステップＳ８）。
【００６６】
ステップＳ８での判定結果がＮｏの場合、すなわち、
｜新たなＴ１Ｈ−新たなＴ５Ｓ｜＞ステップ時間Ｔの場合、原因を究明する（ステップＳ９）。
【００６７】
ステップＳ８での判定結果がＹｅｓの場合、ＣＬＫ信号に対するＣＡ信号のタイミング調整トレーニングを終了する（ステップＳ１０）。
【００６８】
次に、ステップＳ８の判定
｜ｎｅｗＴ１Ｈ−ｎｅｗＴ５Ｓ｜≦ステップ時間Ｔ
について説明する。
【００６９】
｜ｍ１−ｎ５｜が偶数の場合、｜ｎｅｗＴ１Ｈ−ｎｅｗＴ５Ｓ｜＝０
となる。
【００７０】
何となれば、
ｎｅｗＴ１Ｈ＝ｍ１ｘＴ−（ｍ１−ｎ５）Ｔ／２
＝（ｎ５＋ｍ１）Ｔ／２
【００７１】
ｎｅｗＴ５Ｓ＝ｎ５ｘＴ＋（ｍ１−ｎ５）Ｔ／２
＝（ｎ５＋ｍ１）Ｔ／２  
【００７２】
一方、｜ｍ１−ｎ５｜が奇数の場合、
｜ｎｅｗＴ１Ｈ−ｎｅｗｔ５Ｓ｜＝Ｔ
となる。
【００７３】
何となれば、
ｎｅｗＴ１Ｈ＝ｍ１ｘＴ−（ｍ１−ｎ５＋１）Ｔ／２
＝（ｎ５＋ｍ１−１）Ｔ／２  
【００７４】
ｎｅｗＴ５Ｓ＝ｎ５ｘＴ＋（ｍ１−ｎ５＋１）Ｔ／２
＝（ｎ５＋ｍ１＋１）Ｔ／２
【００７５】
図１８は、トレーニングによるＣＴＲＬ信号のタイミング最適化を説明する図である。図１８（Ａ）、（Ｂ）、（Ｃ）は、図５（Ａ）、（Ｂ）、（Ｃ）に対応する。ＣＴＲＬ信号の初期の位置が図５の例と同じ例である。
【００７６】
図１９は、ＣＬＫに対するＣＴＲＬ信号のタイミング調整トレーニングのフローチャートである。
【００７７】
ＣＬＫに対するＣＴＲＬ信号のタイミング調整トレーニング開始する（ステップＳ１１）。
【００７８】
メモリバッファ１０４に最も近いＤＲＡＭ１について、メモリバッファ１０４のＣＴＲＬ信号を初期設定からあるステップ時間ＴでＰｏｓｔ−ｌａｕｎｃｈさせてＤＲＡＭ１がＳｅｔｕｐ時間不足でＦａｉｌする１回前までの時間Ｔ１Ｓ＝ｎ１ｘＴ（図１８（Ｂ）参照）をメモリバッファ１０４に記憶させる（ステップＳ１２）。
【００７９】
メモリバッファ１０４に最も近いＤＲＡＭ１について、メモリバッファ１０４のＣＴＲＬ信号を初期設定からあるステップ時間ＴでＰｒｅ−ｌａｕｎｃｈさせて、ＤＲＡＭ１がＨｏｌｄ時間不足でＦａｉｌする１回前までの時間Ｔ１Ｈ＝ｍ１ｘＴ（図１８（Ｂ）参照）をメモリバッファ１０４に記憶させる（ステップＳ１３、ただし、省略可）。
【００８０】
メモリバッファ１０４から最も遠いＤＲＡＭ５について、メモリバッファ１０４のＣＴＲＬ信号を初期設定からあるステップ時間ＴでＰｏｓｔ−ｌａｕｎｃｈさせてＤＲＡＭ５がＳｅｔｕｐ時間不足でＦａｉｌする１回前までの時間Ｔ５Ｓ＝ｎ５ｘＴ（図１８（Ｃ）参照）をメモリバッファ１０４に記憶させる（ステップＳ１４、ただし、省略可）。
【００８１】
メモリバッファ１０４から最も遠いＤＲＡＭ５について、メモリバッファ１０４のＣＴＲＬ信号を初期設定からあるステップ時間ＴでＰｒｅ−ｌａｕｎｃｈさせてＤＲＡＭ５がＨｏｌｄ時間不足でＦａｉｌする１回前までの時間Ｔ５Ｈ＝ｍ５ｘＴ（図１８（Ｃ）参照）をメモリバッファ１０４に記憶させる（ステップＳ１５）。
【００８２】
ステップＳ１２、ステップＳ１５で求めたＴ１Ｈ、Ｔ５Ｓから、
（Ｔ１Ｓ−Ｔ５Ｈ）／２＝（ｎ１−ｍ５）Ｔ／２
だけ、ＣＴＲＬ信号を初期設定から遅らせて出力させる。（Ｔ１Ｓ−Ｔ５Ｈ）／２がマイナスの場合は、その絶対値分｜（ｎ１−ｍ５）｜Ｔ／２、ＣＴＲＬ信号を初期設定から速めて出力させる。また、｜ｎ１−ｍ５｜が奇数の場合は、（ｎ１−ｍ５＋１）Ｔ／２にして処理する（ステップＳ１６）。ｎ１−ｍ５＞０であり、且つ奇数の場合、（ｎ１−ｍ５＋１）Ｔ／２だけ、ＣＴＲＬ信号を初期設定から遅らせて出力させる。ｎ１−ｍ５＜０であり、且つ奇数の場合、｜（ｎ１−ｍ５＋１）｜Ｔ／２だけ、ＣＴＲＬ信号を初期設定から速めて出力させる。
【００８３】
設定したＣＴＲＬ信号で、新たにＴ１Ｓ（ｎｅｗＴ１Ｓ）とＴ５Ｈ（ｎｅｗＴ５Ｈ）を求める（ステップＳ１７）。
【００８４】
｜ｎｅｗＴ１Ｓ−ｎｅｗＴ５Ｈ｜≦ステップ時間Ｔであるか否か判定する（ステップＳ１８）。
【００８５】
ステップＳ１８での判定結果がＮｏの場合、すなわち、｜新たなＴ１Ｈ−新たなＴ５Ｓ｜＞ステップ時間Ｔの場合、原因を究明する（ステップＳ１９）。
【００８６】
ステップＳ１８での判定結果がＹｅｓの場合、ＣＬＫ信号に対するＣＴＲＬ信号のタイミング調整トレーニングを終了する（ステップＳ２０）。
【００８７】
ステップＳ１８において、判定｜ｎｅｗＴ１Ｓ−ｎｅｗＴ５Ｈ｜≦ステップ時間Ｔとする理由を説明する。
【００８８】
｜ｎ１−ｍ５｜が偶数の場合、
ｎｅｗ｜Ｔ１Ｓ−Ｔ５Ｈ｜＝０
となる。
【００８９】
何となれば、
ｎｅｗＴ１Ｓ＝ｎ１ｘＴ−（ｎ１−ｍ５）Ｔ／２
＝（ｎ１＋ｍ５）Ｔ／２    
ｎｅｗＴ５Ｈ＝ｍ５ｘＴ＋（ｎ１−ｍ５）Ｔ／２
＝（ｎ１＋ｍ５）Ｔ／２
【００９０】
一方、｜ｎ１−ｍ５｜が奇数の場合、
ｎｅｗ｜Ｔ１Ｓ−ｔ５Ｈ｜＝Ｔ
となる。
【００９１】
何となれば、
ｎｅｗＴ１Ｓ＝ｎ１ｘＴ−（ｎ１−ｍ５＋１）Ｔ／２
＝（ｎ１＋ｍ５−１）Ｔ／２
ｎｅｗＴ５Ｈ＝ｍ５ｘＴ＋（ｎ１−ｍ５＋１）Ｔ／２
＝（ｎ１＋ｍ５＋１）Ｔ／２
【００９２】
図２０は、本実施例の構成を示す図である。図２０を参照すると、図１３の構成に、制御回路（２）１９が追加され、Ｐｒｅ／Ｐｏｓｔ  ｌａｕｎｃｈ量格納レジスタ１５がｒｅｇｉｓｔｅｒ１、２を備えている。図２０の回路において、図１７に対応するＣＡ信号のトレーニングの回路動作について説明する。
【００９３】
メモリバッファ１０４に最も近いＤＲＡＭ１について、制御回路１（１４）によって、φ１の位相をステップ時間Ｔ刻みで速める。ＤＲＡＭ１がホールド時間不足でＦａｉｌする１回前までのステップ時間の合計Ｔ１Ｈ＝ｍ１ｘＴをフィードバック信号によって、Ｐｒｅ／Ｐｏｓｔ  ｌａｕｎｃｈ量格納Ｒｅｇｉｓｔｅｒ１に記憶させる。同様に、クロックφ１の位相をステップ時間Ｔ刻みで遅らせて行き、ＤＲＡＭ５がセットアップ時間不足でＦａｉｌする１回前までのステップ時間の合計Ｔ５Ｓ＝ｎ５ｘＴをＰｒｅ／Ｐｏｓｔ  ｌａｕｎｃｈ量格納Ｒｅｇｉｓｔｅｒ１に記憶させる。Ｔ１Ｈ、Ｔ５Ｓを制御回路２（１９）に送り、制御回路２（１９）で最適のシフト量
（Ｔ１Ｈ−Ｔ５Ｓ）／２
を計算し、その値（φ１のＰｒｅ−ｌａｕｎｃｈ量）を、メモリバッファ１０４内のＰｒｅ／Ｐｏｓｔ  ｌａｕｎｃｈ量格納レジスタ１５に格納する。
【００９４】
次に、その最適のＣＡとφ１の関係の下で、新たにＴ１Ｈ、Ｔ５Ｓを求める。｜ｎｅｗＴ１Ｈ−ｎｅｗＴ５Ｓ｜≦Ｔを制御回路２（１９）で判定し、ＹＥＳならトレーニングを終了する。ＣＴＲＬ信号（φ２のＰｏｓｔ−ｌａｕｎｃｈ量）についても同様である。なお、本実施例において、なお、Ｐｒｅ−ｌａｕｎｃｈ量及びＰｏｓｔ−ｌａｕｎｃｈ量は、書き換え可能な不揮発性メモリ等（不図示）に記憶保持するようにしてもよいことは勿論である。
【００９５】
図２１は、最適Ｓｔｅｐ時間刻み時間を説明するための図である。図２１では、｜ｍ１−ｎ５｜が偶数の場合  （ｍ１＝６、ｎ５＝４の場合の例）が模式的に示され、また簡単のため、ＣＬＫの動きで説明し、ＣＡ系で説明してある。
【００９６】
図２１において、当初ＣＬＫ位置から後方、Ｔ１Ｈ＝ｍ１ｘＴ＝６Ｔは、メモリバッファ１０４に最も近いＤＲＡＭ１について、メモリバッファ１０４から出力されるＣＡ信号を初期設定からあるステップ時間ＴでＰｒｅ−ｌａｕｎｃｈさせてＤＲＡＭ１がホールド（Ｈｏｌｄ）時間不足でＦａｉｌする１回前までの時間である。ＤＲＡＭ１において、Ｔ１Ｈ＝ｍ１ｘＴ＝６Ｔよりも、ＣＬＫが後ろにくると、ＤＲＡＭ１はＦａｉｌする（α２で示す）。
【００９７】
当初ＣＬＫ位置から前方Ｔ５Ｓ＝ｎ５ｘＴ＝４Ｔは、メモリバッファ１０４から最も遠いＤＲＡＭ５について、メモリバッファ１０４から出力されるＣＡ信号を初期設定からあるステップ時間ＴでＰｏｓｔ−ｌａｕｎｃｈさせてＤＲＡＭ５がセットアップ（Ｓｅｔｕｐ）時間不足でＦａｉｌする１回前までの時間である。ＤＲＡＭ５において、Ｔ５Ｓ＝ｎ５ｘＴ＝４ＴよりもＣＬＫが前にくると、ＤＲＡＭ５はＦａｉｌする（α３で示す）。
【００９８】
（Ｔ１Ｈ−Ｔ５Ｓ）／２＝（ｍ１−ｎ５）Ｔ／２＝（６−４）Ｔ／２＝１Ｔだけ、ＣＡ信号を初期設定から速めて出力させる。ＣＬＫの動きで説明すると、ＣＬＫを１Ｔ遅らせる。
【００９９】
ｎｅｗＴ１Ｈ＝（ｎ５＋ｍ１）Ｔ／２＝５Ｔ
ｎｅｗＴ５Ｓ＝（ｎ５＋ｍ１）Ｔ／２＝５Ｔ
したがって、｜ｎｅｗＴ１Ｓ−ｎｅｗＴ５Ｈ｜≦ステップ時間Ｔを満たす。
【０１００】
５Ｔ＜ＤＲＡＭ１でのＨｏｌｄマージン＜６Ｔ
５Ｔ＜ＤＲＡＭ５でのＳｅｔｕｐマージン＜６Ｔ
【０１０１】
従って、場合によっては、アナログ的には０．５Ｔだけ、マージンをどちらかに振り分けることが可能である。
【０１０２】
ＤＤＲ３−１６００の場合、ｔＣＫ＝１２５０ｐｓであるので、Ｔ＝ｔＣＫ／３２の場合、０．５Ｔ＝１９．５ｐｓ  となる。Ｓｅｔｕｐウインドウ、Ｈｏｌｄウインドウはフルで６２５ｐｓであるので、１９．５ｐｓは３％程度であり、この場合の刻みはｔＣＫ／３２で十分と思われる。マニュアルで最適点を求める場合も、振り分け量は同様である。
【０１０３】
図２２は、最適Ｓｔｅｐ時間刻み時間を説明するための図である。図２２では、｜ｍ１−ｎ５｜が奇数の場合（ｍ１＝６、ｎ５＝３の場合の例）が模式的に示され、また簡単のため、ＣＬＫの動きで説明し、ＣＡ系で説明してある。
【０１０４】
図２２において、当初ＣＬＫ位置から後方、Ｔ１Ｈ＝ｍ１ｘＴ＝６Ｔは、メモリバッファ１０４に最も近いＤＲＡＭ１について、メモリバッファ１０４から出力されるＣＡ信号を初期設定からあるステップ時間ＴでＰｒｅ−ｌａｕｎｃｈさせてＤＲＡＭ１がホールド（Ｈｏｌｄ）時間不足でＦａｉｌする１回前までの時間である。
【０１０５】
当初ＣＬＫ位置から前方Ｔ５Ｓ＝ｎ５ｘＴ＝３Ｔは、メモリバッファ１０４から最も遠いＤＲＡＭ５について、メモリバッファ１０４から出力されるＣＡ信号を初期設定からあるステップ時間ＴでＰｏｓｔ−ｌａｕｎｃｈさせてＤＲＡＭ５がセットアップ（Ｓｅｔｕｐ）時間不足でＦａｉｌする１回前までの時間である。
【０１０６】
｜ｍ１−ｎ５｜が奇数であることから、（ｍ１−ｎ５＋１）Ｔ／２＝２Ｔだけ、ＣＡ信号を初期設定から速めて出力させる。ＣＬＫの動きで説明するとＣＬＫを２Ｔ遅らせる。設定したＣＡ信号で新たにｎｅｗＴ１Ｈ、ｎｅｗＴ５Ｓを求める。
【０１０７】
ｎｅｗＴ１Ｈ＝（ｎ５＋ｍ１−１）Ｔ／２＝４Ｔ  
ｎｅｗＴ５Ｓ＝（ｎ５＋ｍ１＋１）Ｔ／２＝５Ｔ
したがって、｜ｎｅｗＴ１Ｓ−ｎｅｗＴ５Ｈ｜≦ステップ時間Ｔを満たす。
【０１０８】
４Ｔ＜ＤＲＡＭ１でのＨｏｌｄマージン＜５Ｔ
５Ｔ＜ＤＲＡＭ５でのＳｅｔｕｐマージン＜６Ｔ
【０１０９】
従って、場合によっては、アナログ的には１Ｔだけ、マージンをどちらかに振り分けることが可能である。
【０１１０】
ＤＤＲ３−１６００の場合、ｔＣＫ＝１２５０ｐｓであるので、Ｔ＝ｔＣＫ／３２の場合、１Ｔ＝３９．１ｐｓとなる。セットアップウインドウ、ホールドウインドウはフルで６２５ｐｓであるので、３９．１ｐｓは６％程度である。この場合は刻みとして、ｔＣＫ／６４程度が望ましい。しかし、トレーニングではなく、マニュアルで最適点を求める場合は、０．５Ｔの振り分けに出来るので、ｔＣＫ／３２の刻みで問題ない。以上より、トレーニングを採用する場合は、Ｓｔｅｐ時間はｔＣＫ／６４以下が望ましい。マニュアルの場合は、ｔＣＫ／３２以下で良い。
【０１１１】
上記各実施例によれば、代表的には以下のような効果を奏する。
【０１１２】
ＣＡ信号、ＣＴＲＬ信号のタイミングマージンが大きくなり、高速動作可能なＬＲ−ＤＩＭＭを得ることができる。
【０１１３】
最適タイミングのトレーニング機能により、実ＤＩＭＭにおける最適タイミングを得ることができる。
【０１１４】
なお、最適タイミングのトレーニング機能におけるＤＲＡＭのテスト（ＤＲＡＭ１、５におけるセットアップ時間不足、ホールド時間不足によるＦａｉｌ判定等）は、メインバッファのほか、上位装置であるメモリコントローラや該メモリコントローラを制御するＣＰＵ等とともに、テストを制御するようにしてよい。
【０１１５】
上記実施例では、ＬＲ−ＤＩＭＭに搭載されるメモリバッファ１０４にＣＡ系信号のＰｒｅ−ｌａｕｎｃｈ機能、ＣＴＲＬ系信号のＰｏｓｔ−ｌａｕｎｃｈ機能を実装する例に即して説明したが、本発明はかかる構成に限定されるものでないことは勿論である。例えば図２３に示すように、メモリコントローラ１０２内に、ＣＡ系信号のＰｒｅ−ｌａｕｎｃｈ機能、ＣＴＲＬ系信号のＰｏｓｔ−ｌａｕｎｃｈ機能を実装するようにしてもよいことは勿論である。この場合、ＤＩＭＭは、Ｂｕｆｆｒｅｄ（Ｒｅｇｉｓｔｅｒｅｄ）  ＤＩＭＭ、バッファを持たないＵｎｂｕｆｆｅｒｅｄ  ＤＩＭＭのいずれであってもよい。
【０１１６】
なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【０１１７】
１０１  マザーボード
１０２  メモリコントローラ
１０３  ＬＲ−ＤＩＭＭ
１０４  メモリバッファ
１０５  ＤＲＡＭ
１０６  ＤＱメインバス（ＤＱ  ＭＡＩＮ  ｂｕｓ）
１０７  ＤＱスタブ
１０８  スタブ抵抗
１０９  コネクタ
１１、１２  フリップフロップ
１３  ＰＬＬ回路
１６  １７、１８  バッファ
１５  Ｐｒｅ／Ｐｏｓｔ−ｌａｕｎｃｈ量格納レジスタ
１４  制御回路１
１９  制御回路２
【図１】
2011048682.tif 000004
【図２】
2011048682.tif 000005
【図３】
2011048682.tif 000006
【図４】
2011048682.tif 000007
【図５】
2011048682.tif 000008
【図６】
2011048682.tif 000009
【図７】
2011048682.tif 000010
【図８】
2011048682.tif 000011
【図９】
2011048682.tif 000012
【図１０】
2011048682.tif 000013
【図１１】
2011048682.tif 000014
【図１２】
2011048682.tif 000015
【図１３】
2011048682.tif 000016
【図１４】
2011048682.tif 000017
【図１５】
2011048682.tif 000018
【図１６】
2011048682.tif 000019
【図１７】
2011048682.tif 000020
【図１８】
2011048682.tif 000021
【図１９】
2011048682.tif 000022
【図２０】
2011048682.tif 000023
【図２１】
2011048682.tif 000024
【図２２】
2011048682.tif 000025
【図２３】
2011048682.tif 000026