(57)【要約】高速メモリサブシステムにおいて、各メモリデバイスの最小デバイスリードレイテンシーの差と、メモリデバイスとメモリコントローラとの間の信号伝搬時間の差があるため、システムリードレイテンシーが大幅に変化する。そこで、各デバイスのシステムリードレイテンシーの差を比較し、全てのデバイスが同一のシステムリードレイテンシーを示すようにさせるデバイスシステムリードレイテンシーで、各メモリデバイスをオペレートさせることによって、高速メモリシステムにおける全てのメモリデバイスのシステムリードレイテンシーを均一化させる。
2004524641.tif 000002
【特許請求の範囲】
【請求項１】
メモリアレイと、
前記メモリアレイに結合したコントロール回路と、
前記コントロール回路に結合した複数のコンフィギュレーションラインのうちの少なくとも１本のコンフィギュレーションラインと
を備え、
前記コントロール回路は、前記少なくとも１本のコンフィギュレーションラインでアサートされた信号の状態に基づいて、前記メモリデバイスを、選択された１本のデバイスリードレイテンシーでオペレートさせる
ことを特徴とするメモリデバイス。
【請求項２】
請求項１において、複数のデバイスリードレイテンシーのセットは、前記メモリデバイスの最小デバイスリードレイテンシーを含むことを特徴とするメモリデバイス。
【請求項３】
請求項１において、前記コントロール回路は、前記複数のコンフィギュレーションラインでアサートされた信号の状態を、クロックサイクル数として解釈し、前記最小デバイスリードレイテンシーに前記クロックサイクルの数を加算したものに等しいデバイスリードレイテンシーで、前記メモリデバイスをオペレートさせることを特徴とするメモリデバイス。
【請求項４】
請求項１において、前記コントロール回路は、外部メモリコントローラにより発行された命令に応答して、前記メモリコントローラに対して、キャリブレーションパターンをリードデータとして出力することを特徴とするメモリデバイス。
【請求項５】
請求項４において、前記キャリブレーションパターンは、異なる論理状態を有する少なくとも２つの連続するビットを含むことを特徴とするメモリデバイス。
【請求項６】
請求項５において、前記キャリブレーションパターンは、第１ビットが２進数の０に設定され、残りの全てのビットが２進数の１に設定されていることを特徴とするメモリデバイス。
【請求項７】
請求項５において、前記キャリブレーションパターンは、第１ビットが２進数の１に設定され、残りの全てのビットが２進数の０に設定されていることを特徴とするメモリデバイス。
【請求項８】
請求項１において、前記少なくとも１本のコンフィギュレーションラインは、複数のコンフィギュレーションラインを含むことを特徴とするメモリデバイス。
【請求項９】
請求項１において、複数のデバイスリードレイテンシーのセットは、最小デバイスリードレイテンシーから、前記最小デバイスリードレイテンシーに（Ｎ−１）クロックサイクルを加算して得られた加算結果に等しいクロックサイクル数まで、の範囲にあるＮ個のデバイスレイテンシーを含むことを特徴とするメモリデバイス。
【請求項１０】
請求項９において、前記Ｎは、８に等しいことを特徴とするメモリデバイス。
【請求項１１】
請求項１において、前記メモリデバイスのリードクロックＤＬＬをイネーブルにするか、またはディスエーブルにする信号状態を有する追加のコンフィギュレーションラインをさらに含むことを特徴とするメモリデバイス。
【請求項１２】
複数のメモリデバイスと、
前記複数のメモリデバイスにコンフィギュレーション情報を供給するレジスタと
を備え、
前記メモリデバイスは、それぞれ、さらに、
メモリアレイと、
前記メモリアレイに結合したコントロール回路と、
前記レジスタと前記コントロール回路とに結合した少なくとも１本のコンフィギュレーションラインと
を備え、
前記コントロール回路は、前記少なくとも１本のコンフィギュレーションラインでアサートされた信号の状態に基づいて、前記メモリデバイスを、選択されたデバイスリードレイテンシーでオペレートさせる
ことを特徴とするメモリモジュール。
【請求項１３】
請求項１２において、複数のデバイスリードレイテンシーのセットは、前記メモリデバイスの最小デバイスリードレイテンシーを含むことを特徴とするメモリモジュール。
【請求項１４】
請求項１２において、前記コントロール回路は、前記少なくとも１本のコンフィギュレーションラインでアサートされた信号の状態を、クロックサイクル数として解釈し、前記最小デバイスリードレイテンシーに前記クロックサイクルの数を加算して得られた加算結果に等しいデバイスリードレイテンシーで、前記メモリデバイスをオペレートさせることを特徴とするメモリモジュール。
【請求項１５】
請求項１２において、前記コントロール回路は、外部メモリコントローラにより発行された命令に応答して、前記メモリコントローラに、キャリブレーションパターンをリードデータとして出力することを特徴とするメモリモジュール。
【請求項１６】
請求項１５において、前記キャリブレーションパターンは、異なる論理状態を有する少なくとも２つの連続するビットを含むことを特徴とするメモリモジュール。
【請求項１７】
請求項１６において、前記キャリブレーションパターンは、第１ビットが２進数の０に設定され、残りの全てのビットが２進数の１に設定されていることを特徴とするメモリモジュール。
【請求項１８】
請求項１６において、前記キャリブレーションパターンは、第１ビットが２進数の１に設定され、残りの全てのビットが２進数の０に設定されていることを特徴とするメモリモジュール。
【請求項１９】
請求項１２において、前記少なくとも１本のコンフィギュレーションラインは、複数のコンフィギュレーションラインを含むことを特徴とするメモリモジュール。
【請求項２０】
請求項１２において、前記デバイスリードレイテンシーのセットは、最小デバイスリードレイテンシーから、前記最小デバイスリードレイテンシーに（Ｎ−１）クロックサイクルを加算して得られた加算結果に等しいクロックサイクル数まで、の範囲にあるＮ個のデバイスレイテンシーを含むことを特徴とするメモリモジュール。
【請求項２１】
請求項２０において、前記Ｎは、８に等しいことを特徴とするメモリモジュール。
【請求項２２】
請求項１２において、前記メモリデバイスのリードクロックＤＬＬをイネーブルにするか、またはディスエーブルにする信号状態を有する追加のコンフィギュレーションラインをさらに含むことを特徴とするメモリモジュール。
【請求項２３】
少なくとも１本のコンフィギュレーションラインを有するメモリデバイスをオペレートする方法において、
前記少なくとも１本のコンフィギュレーションラインでアサートされた信号の状態に基づいて、選択されたデバイスリードレイテンシーで前記メモリデバイスをオペレートさせる
ことを特徴とする方法。
【請求項２４】
請求項２３において、複数のデバイスリードレイテンシーのセットは、前記メモリデバイスの最小デバイスリードレイテンシーを含むことを特徴とするメモリデバイス。
【請求項２５】
請求項２３において、前記コントロール回路は、前記少なくとも１本のコンフィギュレーションラインでアサートされた信号の状態を、クロックサイクル数として解釈し、前記最小デバイスリードレイテンシーに前記クロックサイクルの数を加算して得られた加算結果に等しいデバイスリードレイテンシーで、前記メモリデバイスをオペレートさせることを特徴とする方法。
【請求項２６】
請求項２３において、外部メモリコントローラにより発行された命令に応答して、キャリブレーションパターンを出力するステップをさらに含むことを特徴とする方法。
【請求項２７】
請求項２６において、前記キャリブレーションパターンは、異なる論理状態を有する少なくとも２つの連続するビットを含むことを特徴とする方法。
【請求項２８】
請求項２７において、前記キャリブレーションパターンは、第１ビットが２進数の０に設定され、残りの全てのビットが２進数の１に設定されていることを特徴とする方法。
【請求項２９】
請求項２７において、前記キャリブレーションパターンは、第１ビットが２進数の１に設定され、残りの全てのビットが２進数の０に設定されていることを特徴とする方法。
【請求項３０】
請求項２３において、前記少なくとも１本のコンフィギュレーションラインは、複数のコンフィギュレーションラインを含むことを特徴とする方法。
【請求項３１】
プロセッサと、
前記プロセッサに結合したメモリコントローラと、
複数のメモリデバイスをそれぞれ備えた複数のメモリモジュールのうちの、前記メモリコントローラに結合した少なくとも１つのメモリモジュールと
を備え、
前記複数のメモリデバイスは、それぞれ、
メモリアレイと、
前記メモリアレイに結合したコントロール回路と、
前記コントロール回路に結合した少なくとも１本のコンフィギュレーションラインと
を備え、
前記コントロール回路は、前記少なくとも１本のコンフィギュレーションラインでアサートされた信号の状態に基づいて、選択されたデバイスリードレイテンシーで、前記メモリデバイスをオペレートさせる
ことを特徴とするコンピュータシステム。
【請求項３２】
請求項３１において、複数のデバイスリードレイテンシーのセットは、前記メモリデバイスの最小デバイスリードレイテンシーを含むことを特徴とするコンピュータシステム。
【請求項３３】
請求項３１において、前記コントロール回路は、前記少なくとも１本のコンフィギュレーションラインでアサートされた信号の状態を、クロックサイクル数として解釈し、最小デバイスリードレイテンシーに前記クロックサイクルの数を加算して得られた加算結果に等しいデバイスリードレイテンシーで、前記メモリデバイスをオペレートさせることを特徴とするコンピュータシステム。
【請求項３４】
請求項３１において、前記コントロール回路は、外部メモリコントローラにより発行された命令に応答して、キャリブレーションパターンを出力することを特徴とするコンピュータシステム。
【請求項３５】
請求項３４において、前記キャリブレーションパターンは、異なる論理状態を有する少なくとも２つの連続するビットを含むことを特徴とするコンピュータシステム。
【請求項３６】
請求項３５において、前記キャリブレーションパターンは、第１ビットが２進数の０に設定され、残りの全てのビットが２進数の１に設定されていることを特徴とするコンピュータシステム。
【請求項３７】
請求項３５において、前記キャリブレーションパターンは、第１ビットが２進数の１に設定され、残りの全てのビットが２進数の０に設定されていることを特徴とするコンピュータシステム。
【請求項３８】
請求項３１において、前記少なくとも１本のコンフィギュレーションラインは、複数のコンフィギュレーションラインを含むことを特徴とするコンピュータシステム。
【請求項３９】
請求項３１において、複数のデバイスリードレイテンシーのセットは、最小デバイスリードレイテンシーから、前記最小デバイスリードレイテンシーに（Ｎ−１）クロックサイクルを加算して得られた加算結果に等しいクロックサイクル数まで、の範囲にあるＮ個のデバイスレイテンシーを含むことを特徴とするコンピュータシステム。
【請求項４０】
請求項３９において、前記Ｎは、８に等しいことを特徴とするコンピュータシステム。
【請求項４１】
複数のメモリデバイスおよびメモリコントローラを有するメモリシステムをオペレートする方法であって、
前記メモリコントローラにより発行された命令に応答して、前記複数のメモリデバイスのそれぞれをその最小デバイスリードレイテンシーでオペレートさせるように設定するステップと、
前記メモリコントローラにおいて、前記複数のメモリデバイスのシステムリードレイテンシーを測定するステップと、
前記メモリコントローラにおいて、前記複数のシステムリードレイテンシーの最大値に等しい最大システムリードレイテンシーを決定するステップと、
前記メモリコントローラにおいて、前記最大システムリードレイテンシーと、前記複数のメモリデバイスにそれぞれ対応するシステムリードレイテンシーとの差に等しいオフセットを、前記複数のメモリデバイスごとに計算するステップと、
前記複数のメモリデバイスに関連付けをしたオフセットに等しい増加したデバイスリードレイテンシーでオペレートさせるため、前記メモリコントローラによって、前記複数のメモリデバイスをそれぞれ設定するステップと
を備えたことを特徴とする方法。
【請求項４２】
請求項４１において、前記測定するステップは、さらに、前記メモリコントローラからの命令に応答して、各メモリデバイスからキャリブレーションパターンを送ることを含むことを特徴とする方法。
【請求項４３】
請求項４２において、前記キャリブレーションパターンは、異なる論理状態を有する少なくとも２つの連続するビットを含むことを特徴とする方法。
【請求項４４】
請求項４３において、前記キャリブレーションパターンは、第１ビットが２進数の０に設定され、残りの全てのビットが２進数の１に設定されていることを特徴とする方法。
【請求項４５】
請求項４４において、前記キャリブレーションパターンは、第１ビットが２進数の１に設定され、残りの全てのビットが２進数の０に設定されていることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、高速同期メモリシステムに関し、具体的には、任意のメモリデバイスからのリード（read）データがメモリコントローラに同時に到着するように、メモリデバイスのリードレイテンシーを設定することに関する。
【背景技術】
【０００２】
図１にコンピュータシステムの例を示す。コンピュータシステムには、プロセッサ５００と、メモリサブシステム１００と、拡張バスコントローラ５１０とが含まれる。メモリサブシステム１００および拡張バスコントローラ５１０は、ローカルバス５２０を介してプロセッサ５１０に結合してある。拡張バスコントローラ５１０は、少なくとも１つの拡張バス５３０に結合してあり、拡張バス５３０には、大容量記憶装置と、キーボードと、マウスと、グラフィックアダプタと、マルチメディアアダプタとのような種々の周辺装置５４０〜５４２を取り付けることができる。
【０００３】
メモリサブシステム１００には、メモリコントローラ４００が含まれており、このメモリコントローラ４００は、複数の信号ライン４０１ａ〜４０１ｄと、４０２、４０３、４０４と、４０５ａ〜４０５ｄとを介して、複数のメモリモジュール３０１〜３０２に結合されている。データＤＡＴＡを交換するため、複数の信号ライン４０１ａ〜４０１ｄがメモリコントローラ４００およびメモリモジュール３０１〜３０２によって使用される。アドレスＡＤＤＲは、複数のアドレス信号ライン４０３を介してシグナルされ、コマンドＣＭＤは、複数のコマンド信号ライン４０２を介してシグナルされる。メモリモジュール３０１〜３０２には、複数のメモリデバイス１０１〜１０８およびレジスタ２０１〜２０２が含まれる。各メモリデバイス１０１〜１０８は高速同期メモリデバイスである。図１には、２つのメモリモジュール３０１、３０２と、関連する信号ライン４０１ａ〜４０１ｄ、４０２、４０３、４０４、４０５ａ〜４０５ｄとが、図示してあるが、任意の数のメモリモジュールを使用できる、ことに留意されたい。
【０００４】
複数の信号ライン４０１ａ〜４０１ｄ、４０２、４０３、４０４、４０５ａ〜４０５ｄは、メモリモジュール３０１、３０２をメモリコントローラ４００に結合させるものであるが、メモリバス１５０として知られているものである。このメモリバス１５０は、当技術分野で知られている追加の信号ライン、例えば、チップセレクトライン（chip select line）を有することができる。このラインは図を複雑にしないため図示していない。メモリデバイス１０１〜１０４、１０５〜１０８の各行は、メモリバス１５０にスパンされており、メモリのランク（rank）として知られている。一般に、シングルサイド（single side）メモリモジュール、例えば図１に示すようなモジュールは、シングルランクメモリである。しかし、２ランクメモリのダブルサイド（double sided）メモリモジュールを採用することもできる。
【０００５】
複数のデータ信号ライン４０１ａ〜４０１ｄにより、メモリデバイス１０１〜１０８がメモリコントローラ４００に結合されている。リードデータは、複数のリードクロック信号ライン４０５ａ〜４０５ｄを駆動するリードクロック信号ＲＣＬＫに同期してシリアルに出力される。リードクロック信号ＲＣＬＫは、リードクロックジェネレータ４０１によって生成され、メモリモジュール３０１、３０２のメモリデバイス１０１〜１０８を介して、メモリコントローラ４００に供給される。コマンドおよびアドレスは、コマンドクロック信号ＣＣＬＫを用いて、クロック同期出力され、コマンドクロック信号ＣＣＬＫは、メモリコントローラによって、メモリモジュール３０１、３０２のレジスタ２０１、２０２を介して、ターミネータ４０２に供給される。コマンド、アドレス、およびコマンドクロック信号ライン４０２〜４０４は、メモリモジュール３０１、３０２のレジスタ２０１、２０２に、直接、結合されている。レジスタ２０１、２０２は、これらコマンド、アドレス、およびコマンドクロック信号が、メモリモジュール３０１、３０２のメモリデバイス１０１〜１０８に分配される前に、これらの信号をバッファリングする。したがって、メモリサブシステム１００は、リードクロックＲＣＬＫによって支配される少なくともリードクロックドメインと、コマンドクロックＣＣＬＫによって支配されるコマンドクロックドメインとにおいて、オペレートする。メモリサブシステム１００は、追加のクロックドメイン、例えば、図示しないライト（write）クロックによって支配されるクロックドメインを有することができる。
【０００６】
メモリデバイス１０１〜１０８がリードコマンドを受け取ると、そのリードコマンドと関連付けされたデータは、ある長さの時間が経過するまで、メモリバス１５０に出力されない。この時間はデバイスリードレイテンシーとして知られている。メモリデバイス１０１〜１０８は、（デバイスによって変わる）最小デバイスリードレイテンシーから、最大レイテンシー期間まで、の範囲にある複数のデバイスリードレイテンシーのうちの任意の１つで、オペレートするようにプログラムすることができる。
【０００７】
しかし、デバイスリードレイテンシーは、メモリコントローラ４００が見るリードレイテンシーの一部に過ぎない。メモリコントローラが見るこのリードレイテンシーは、システムリードレイテンシーとして知られているものであるが、デバイスリードレイテンシーと、メモリデバイス１０１〜１０８とメモリコントローラ４００と間の信号伝搬時間に起因して生じるレイテンシーと、を合計したものである。仮に各メモリデバイス１０１〜１０８とメモリコントローラ４００と間の信号伝搬が明らかである場合には、この信号伝搬時間によるレイテンシーは、一定になり、しかも各メモリデバイス１０１〜１０８に均等に影響を与えることになる。しかし、図１に示すように、コマンドＣＭＤと、アドレスＡＤＤＲと、コマンドクロックＣＣＬＫとは、まず、メモリデバイス１０１〜１０８に分配される前にレジスタ２０１、２０２に送られる。メモリモジュール３０１、３０２上の各メモリデバイス１０１〜１０４、１０５〜１０８は、レジスタ２０１、２０２からは、異なる距離に位置している。そうすると、各メモリデバイス１０１〜１０４は、メモリコントローラ４００により発行されたリードコマンドを、異なる時点で受け取ることになる。加えて、メモリコントローラ４００と、２つのメモリモジュール３０１、３０２のレジスタ２０１、２０２との距離は異なる。（メモリモジュール３０１上にある）レジスタ２０１の方がメモリコントローラ４００に近いので、（メモリモジュール３０２上にある）レジスタ２０２より前に、コマンド、アドレス、およびコマンドクロックを受け取ることになる。したがって、当該コマンドＣＭＤ、アドレスＡＤＤＲ、及びコマンドクロックＣＣＬＫ信号については、メモリサブシステム１００の全てのメモリデバイス１０１〜１０８からメモリコントローラ４００への信号パスの長さが異なるので、全てのメモリデバイス１０１〜１０８は、メモリコントローラ４００により発行されたリードコマンドを、種々の時点で受け取ることになる。高いクロック周波数（例えば、３００ＭＨｚから少なくとも５３３ＭＨｚ）においては、コマンドＣＭＤ、アドレスＡＤＤＲ、及びコマンドクロックＣＣＬＫ信号がクロックサイクル境界に重なる可能性があるから、これら信号のタイミングの差が重要になる。
【０００８】
各メモリデバイス１０１〜１０８の最小デバイスリードレイテンシーの差と、それらのコマンドＣＭＤ、アドレスＡＤＤＲ、およびコマンドクロックＣＣＬＫの信号伝搬時間の差とにより、各メモリデバイス１０１〜１０８は異なるシステムリードレイテンシーを有することができる。各メモリデバイスはメモリワードの一部のみをストアするから、メモリコントローラ４００は、通常、複数のメモリデバイスをパラレルにリードする。メモリサブシステム１００のメモリデバイス１０１〜１０８においてシステムリードレイテンシーが異なるため、複数のメモリデバイスのパラレルにリードすることが困難になる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
したがって、メモリコントローラ４００が、多数のメモリデバイスに対するリードトランザクションを効率的に処理できるように、各メモリデバイスのシステムリードレイテンシーを均一化する装置および方法が必要である。
【課題を解決するための手段】
【００１０】
本発明は、高速メモリシステムにおいて各メモリデバイスのシステムリードレイテンシーを均一化する方法および装置に関する。この均一化処理によって、各メモリデバイスが、各デバイスの最小デバイスリードレイテンシーと、メモリバス上でのメモリデバイスの物理的な場所の違いに起因する信号伝搬時間の差とにかかわらず、同一のシステムリードレイテンシーでメモリコントローラに応答することを確実にする。各メモリデバイスは複数のコンフィギュレーションラインを有し、コンフィギュレーションラインをメモリコントローラが使用して、デバイスの最小デバイスリードレイテンシーより長い、複数のデバイスリードレイテンシーのうちの任意の１つでオペレートするようにメモリデバイスを設定することができる。均一化処理中に、各メモリデバイスは、まず、その最小デバイスリードレイテンシーでオペレートする。メモリコントローラは、キャリブレーションパターンをリードして、各メモリデバイスのシステムリードレイテンシーを決定するようにする。メモリコントローラはオフセットを計算し、オフセットは、各メモリデバイスのデバイスリードレイテンシーに付加されて、各メモリデバイスが、その最小デバイスリードレイテンシーでオペレートする時に、最も遅い観察されたシステムリードレイテンシーに等しいシステムリードレイテンシーでオペレートするようにさせることができる。したがって、各メモリデバイスは、増加したデバイスレイテンシーでオペレートし、その時の増加した長さはメモリデバイスに関連するオフセットに等しい。こうして、メモリシステムの全てのメモリデバイスは、同一のシステムリードレイテンシーでオペレートするように均一化される。
【００１１】
本発明の前述および他の利点と特徴は、添付図面を参照して以下で示される本発明の好ましい実施形態の詳細な説明からより明らかになるであろう。
【発明を実施するための最良の形態】
【００１２】
各図において、同一の参照番号は同一の要素を示す。図２は、メモリコントローラ４００が各メモリデバイス１０１〜１０８に対して発行するリードオペレーションのタイミング図を示しており、各メモリデバイスは、その最小デバイスリードレイテンシーでオペレートするように設定されている。メモリデバイスの最小デバイスリードレイテンシーはれ、そのメモリデバイスの構成に基づいており、デバイスによって変化する可能性がある。図２の例において、メモリコントローラ４００に最も近いメモリモジュール３０１のメモリデバイスＤＲＡＭ−１  １０１と、ＤＲＡＭ−２  １０２と、ＤＲＡＭ−３  １０３と、ＤＲＡＭ−４  １０４とは、各最小デバイスリードレイテンシーが、それぞれ、７クロックサイクルと、８クロックサイクルと、５クロックサイクルと、６クロックサイクルである。メモリコントローラ４００から最も遠いメモリモジュール３０２のメモリデバイスＤＲＡＭ−５  １０５と、ＤＲＡＭ−６  １０６と、ＤＲＡＭ−７  １０７と、ＤＲＡＭ−８  １０８とは、各最小デバイスリードレイテンシーが、それぞれ、８クロックサイクルと、６クロックサイクルと、８クロックサイクルと、７クロックサイクルである。最小デバイスレイテンシーとは、リードコマンドＲＤのイニシエーションから、リードデータがメモリバス１５０上で利用可能になるまでのクロックサイクルの数を測定したものである。
【００１３】
コマンドＣＭＤおよびコマンドクロックＣＣＬＫ信号について信号伝搬パスの長さに差があるため、メモリコントローラ４００により発行されたリードコマンドＲＤを、メモリサブシステム１００のメモリデバイス１０１〜１０８はそれぞれ異なる時点で受け取っている。図２は、メモリコントローラが、クロックサイクルＴ０の中心でリードコマンドを発行するのを示す。メモリコントローラ４００の最も近くに位置するメモリモジュール３０１上のメモリデバイス１０１〜１０４は、クロックサイクルＴ１とＴ２の間で、リードコマンドを受け取るが、メモリコントローラから最も遠くに位置するメモリモジュール３０２上のメモリデバイス１０５〜１０８は、クロックサイクルＴ１とＴ３の間で、リードコマンドを受け取る。メモリデバイス１０１〜１０８のそれぞれに対するシステムリードレイテンシーは、デバイスリードレイテンシーと、メモリコントローラ４００とメモリデバイスの間の信号伝搬時間との両方の関数である。例えば、メモリコントローラ４００の最も近くに位置するメモリモジュール３０１上のメモリデバイス１０１〜１０４は、９クロックサイクル、１０クロックサイクル、６クロックサイクル、および７クロックサイクルのシステムリードレイテンシーをそれぞれ有する。メモリコントローラ４００から最も遠くに位置するメモリモジュール３０２上のメモリデバイス１０５〜１０８は、１０クロックサイクル、８クロックサイクル、９クロックサイクル、および８クロックサイクルのシステムリードレイテンシーをそれぞれ有する。これらシステムリードレイテンシーの差は、メモリモジュール１０２がデータ出力を開始するまでに、メモリモジュール１０３がそのデータ出力を正常終了できる大きさである、ことに留意されたい。
【００１４】
図３Ａを説明する。図３Ａは、本発明に係るメモリモジュール３０１のうちの１つをより詳細に示す図である。各メモリデバイス１０１〜１０４には、リードクロック信号ライン４０５ａ〜４０５ｄと、データ信号ライン４０１ａ〜４０１ｄと、コマンドクロック信号ライン４０４と、複数のコマンド信号ライン４０２と、複数のアドレス信号ライン４０３とが接続されており、各メモリデバイス１０１〜１０４は、複数のコンフィギュレーションライン４１０を介して、レジスタ２０１に接続されている。図が複雑にならないように、図１には、これら複数のコンフィギュレーションライン４１０は、図示していない。例示的な実施形態において、それぞれの複数のコンフィギュレーションライン４１０には、コンフィギュレーション信号ＣＦＧ０、ＣＦＧ１、およびＣＦＧ２をそれぞれ搬送する少なくとも３本のコンフィギュレーション信号ライン４１１〜４１３が含まれている。各メモリデバイスに対して、メモリコントローラ４００は、コマンドＣＭＤおよびアドレスＡＤＤＲを、レジスタ２０１に送り、これにより、コンフィギュレーションライン４１１〜４１３の状態を設定することができる。
【００１５】
図３Ｂは、図３Ａに示すメモリデバイス１０１のうちの１つをより詳細に示す図である。適正なメモリデバイスには、それぞれ任意のタイプの高速ＤＲＡＭが含まれる。したがって、本発明の原理を、任意のタイプのシングルまたはダブルデータレート同期メモリデバイスか、またはＡＤＴ（Advance DRAM Technology）メモリデバイスに導入することができる。メモリデバイス１０１には、コントロール回路（アドレスデコーダを含む）２０００が含まれ、このコントロール回路２０００は、コマンドクロック信号ライン４０４と、複数のコメンド信号ライン４０２と、複数のアドレス信号ライン４０３と、複数のコンフィギュレーションライン４１０とが含まれる複数の信号ラインに結合されている。メモリデバイス１０１には、ライトデータパス２００２およびリードデータパス２００３が含まれ、ライトデータパス２００２およびリードデータパス２００３の両方は、データ信号ライン４０１ａに結合されており、（Ｉ／Ｏゲート回路２００６を介して）複数のメモリアレイ２００１に結合されている。このリードデータパスは、リードクロックＤＬＬ（delay lock loop）を介して、リードクロック信号ライン４０５ａに結合され、リードクロックＤＬＬを使用して、リードデータ出力をリードクロックと同期させる。このリードデータパスには、シリアライザ（serializer）２００４が含まれている。このシリアライザ２００４は、複数のメモリアレイ２００１からリードされたパラレルデータを、リードクロック信号ＲＣＬＫに同期して、シリアルデータに変換して、データ信号ライン４０１ａに出力する。
【００１６】
メモリデバイスＤＲＡＭ−１  １０１〜ＤＲＡＭ−４  １０４は、コンフィギュレーションライン４１１〜４１３の異なる状態に応答することにより、異なる選択可能なデバイスリードレイテンシーでオペレートするように配線されている。図４は、デバイスリードレイテンシーが８クロック変化しても、すなわち、最小デバイスリードレイテンシーから、最小デバイスリードレイテンシーと７クロックサイクルとの和までの範囲において、メモリデバイス１０１〜１０４をオペレートさせることができる方法を示す。代替の実施形態においては、数多くの許容されるデバイスレイテンシーの変化に応じて、コンフィギュレーションラインの数を増減させることができる。あるいはまた、デバイスリードレイテンシーに関係しないメモリ機能を対象とするコンフィギュレーションラインを追加することができる。例えば、追加のコンフィギュレーションラインを使用して、リードクロックＤＬＬ２００５をイネーブルまたはディセーブルにすることができる。
【００１７】
複数のコンフィギュレーションライン４１０のそれぞれの状態は、メモリコントローラ４００によって設定することができる。例えば、メモリコントローラは、メモリモジュール３０１、３０２のレジスタ２０１、２０２に、複数のコンフィギュレーションライン４１０上の状態であって、複数のアドレス信号ライン４０３上でアサートされたアドレスに対応する状態をアサートさせるコマンドを含むことができる。そうすると、メモリコントローラ４００は、メモリデバイスの１０１〜１０８のデバイスリードレイテンシーを変化させることができ、したがって、メモリデバイスのシステムリードレイテンシーを、コンフィギュレーションライン４１１〜４１３の状態を変えることによって変えることができる。
【００１８】
メモリコントローラ４００は、複数のコンフィギュレーションライン４１０を使用して、メモリサブシステム１００の全てのメモリデバイス１０１〜１０８のシステムリードレイテンシーを均一化する。図５を説明する。ステップ１００１から処理が開始され、メモリコントローラ４００は、全てのメモリデバイス１０１〜１０８がそれらの最小デバイスリードレイテンシーでオペレートするように指示する。メモリコントローラ４００は、当該メモリデバイスに指示して、当該メモリデバイスを最小デバイスリードレイテンシーでオペレートさせ、これには、複数のコマンド信号ライン４０２上の適正なコマンドＣＭＤと、複数のアドレス信号ライン４０３上の適正なアドレスＡＤＤＲとをそれぞれアサートしてオペレートさせ、これにより、コンフィギュレーションラインＣＦＧ０、ＣＦＧ１、ＣＦＧ２の特定の状態を設定させる。図４に示すように、コンフィギュレーションラインＣＦＧ０、ＣＦＧ１、ＣＦＧ２の状態により、メモリデバイス１０１〜１０８は特定のレイテンシーでオペレートする。そこで、本発明の一態様においては、各メモリデバイスのデバイスリードレイテンシーは、相対的なクロックサイクル数を用いて指定される。この点は、従来のメモリシステムにおいて、レイテンシーを実際のクロックサイクル数として指定し、これにより、メモリコントローラが各メモリデバイスについて最小デバイスリードレイテンシーを知る必要があることと、相違する点である。例えば、仮に、メモリデバイスが、２クロックサイクルの最小デバイスリードレイテンシーを有する場合には、従来のメモリコントローラであれば、２クロックサイクルが最小デバイスリードレイテンシーに対応することを知る必要があった。というのは、当該メモリデバイスをその最小デバイスリードレイテンシーでオペレートするようにプログラムするためには、当該メモリコントローラが、実際のクロックサイクル数（この場合、２クロックサイクル）を用いることによって、そのレイテンシーの値をプログラムする必要があるためである。しかしながら、本発明にあっては、メモリコントローラ４００は、各メモリデバイス１０１〜１０８について最小デバイスリードレイテンシーを知る必要がない。それは、リードレイテンシーは最小リードレイテンシーからのオフセットとして指定されるからである。
【００１９】
ステップ１００２において、当該メモリコントローラは、各メモリデバイス１０１〜１０８からキャリブレーションパターンをリードし、各メモリデバイス１０１〜１０８に対して最小オペレートシステムリードレイテンシーを通知する。当該キャリブレーションパターンは、何時データが初めて当該メモリコントローラに到着したかを、当該メモリコントローラが容易に特定できるように、フォーマットされている。例示的な実施形態において、各メモリデバイス１０１〜１０８は、リードコマンドごとに、８ビットのデータを、データ信号ライン４０１ａ〜４０１ｄを介して、メモリコントローラ４００にシリアルに返す。良好なキャリブレーションパターンであれば、当該メモリコントローラは、最初のデータビットが当該メモリコントローラにいつ到着するかを容易に認識することができる。例示的な実施形態において、好ましいキャリブレーションパターンは、バイトであって、当該メモリコントローラに到着する第１ビットが、ある状態に設定され、残りのビットが、異なる状態に設定される。したがって、０１１１１１１１（２進数）または１０００００００（２進数）は、好ましいキャリブレーションパターンということになる。
【００２０】
ステップ１００３において、メモリコントローラ４００は、最小オペレートシステムリードレイテンシーのセットのうちの最大のレイテンシーを決定する。ステップ１００４において、メモリコントローラ４００は、各メモリデバイス１０１〜１０８について、そのメモリデバイスのシステムリードレイテンシーと、前記最小オペレートシステムリードレイテンシーのセットのうちの最大レイテンシーとの差に等しいオフセットを計算する。ステップ１００５において、メモリコントローラ４００は、増加したデバイスリードレイテンシーでオペレートするように、当該メモリデバイスに指示する。増加したレイテンシーの長さは、オフセットに等しく、メモリデバイスの複数のコンフィギュレーションライン４１０上でアサートされた信号の状態によって制御される。
【００２１】
例えば、図２は、８つのメモリデバイスＤＲＡＭ−１  １０１〜ＤＲＡＭ−８  １０８を有するメモリシステムであって、９クロックサイクル、１０クロックサイクル、６クロックサイクル、７クロックサイクル、１０クロックサイクル、８クロックサイクル、９クロックサイクル、および８クロックサイクルをそれぞれ有するメモリシステムを示す。観察されたシステムリードレイテンシーのうちの最大システムリードレイテンシーは、１０クロックサイクルである。メモリデバイス１０１〜１０８についてのオフセットは、観察されたシステムリードレイテンシーのうちの最大システムリードレイテンシー（この例では、１０クロックサイクル）と、各メモリデバイスのシステムリードレイテンシーとの差に等しい。この例において、メモリデバイス１０１〜１０８に対するオフセットは、それぞれ、１、０、４、３、０、２、１、および２に等しい。そこで、メモリコントローラ４００は、メモリデバイス１０１を、１クロックサイクルの増加デバイスリードレイテンシーでオペレートさせるが、メモリデバイス１０２は、０クロックサイクル（すなわち、最小デバイスリードレイテンシー）の増加デバイスリードレイテンシーでオペレートさせることになる。図３は、この処理の最終の結果が、各メモリデバイス１０１〜１０８が同一のシステムリードレイテンシーを有するメモリシステムであることを示す。その結果として、リードコマンドがメモリデバイスＤＲＡＭ−１  １０１〜ＤＲＡＭ−８  １０８に対して発行されると、当該メモリコントローラは、ほぼ同時に、全てのメモリモジュールの全てのメモリデバイスからのリードデータを見ることになる。
【００２２】
以上、本発明の実施形態を説明したが、本発明は、本発明の精神および範囲から逸脱することなく、等価の幾つかの要素を修正し、変更し、代替することができ、これら実施形態に限定されるものではない。したがって、本発明の範囲は、上述しかつ図示した特別の構造の細目に限定されるものではなく、特許請求の範囲によってのみ限定される。
【図面の簡単な説明】
【００２３】
【図１】高速メモリシステムを有するコンピュータシステムを示すブロック図である。
【図２】図１の高速メモリシステムを備える複数のメモリデバイスのリードレイテンシーを示す均一化前のタイミングチャートである。
【図３Ａ】本発明によるメモリモジュール３０１を示すより詳細なブロック図である。
【図３Ｂ】図３Ａに示すメモリモジュールのメモリデバイスのうちの１つを示すより詳細な図である。
【図４】メモリデバイスのデバイスリードレイテンシーとコンフィギュレーションラインの状態との間を示す図である。
【図５】メモリコントローラがメモリシステムのメモリデバイスのシステムリードレイテンシーを均一化する手順を示すフローチャートである。
【図６】図１の高速メモリシステムを備える複数のメモリデバイスのリードレイテンシーを示す均一化後のタイミングチャートである。
【図１】
2004524641.tif 000003
【図２】
2004524641.tif 000004
【図３Ａ】
2004524641.tif 000005
【図３Ｂ】
2004524641.tif 000006
【図４】
2004524641.tif 000007
【図５】
2004524641.tif 000008
【図６】
2004524641.tif 000009
【国際公開パンフレット】
2004524641.tif 000010
2004524641.tif 000011
2004524641.tif 000012
2004524641.tif 000013
2004524641.tif 000014
2004524641.tif 000015
2004524641.tif 000016
2004524641.tif 000017
2004524641.tif 000018
2004524641.tif 000019
2004524641.tif 000020
2004524641.tif 000021
2004524641.tif 000022
2004524641.tif 000023
2004524641.tif 000024
2004524641.tif 000025
2004524641.tif 000026
2004524641.tif 000027
2004524641.tif 000028
2004524641.tif 000029
2004524641.tif 000030
2004524641.tif 000031
2004524641.tif 000032
2004524641.tif 000033
2004524641.tif 000034
2004524641.tif 000035
2004524641.tif 000036
2004524641.tif 000037
2004524641.tif 000038
2004524641.tif 000039
2004524641.tif 000040
2004524641.tif 000041
2004524641.tif 000042
2004524641.tif 000043
2004524641.tif 000044
2004524641.tif 000045
2004524641.tif 000046
【国際公開パンフレット（コレクトバージョン）】
2004524641.tif 000047
2004524641.tif 000048
【国際公開パンフレット（コレクトバージョン）】
2004524641.tif 000049
2004524641.tif 000050
2004524641.tif 000051
2004524641.tif 000052
2004524641.tif 000053
2004524641.tif 000054
2004524641.tif 000055
2004524641.tif 000056
2004524641.tif 000057
2004524641.tif 000058
2004524641.tif 000059
2004524641.tif 000060
2004524641.tif 000061
2004524641.tif 000062
2004524641.tif 000063
2004524641.tif 000064
2004524641.tif 000065
2004524641.tif 000066
2004524641.tif 000067
2004524641.tif 000068
2004524641.tif 000069
2004524641.tif 000070
2004524641.tif 000071
2004524641.tif 000072
2004524641.tif 000073
2004524641.tif 000074
2004524641.tif 000075
2004524641.tif 000076
2004524641.tif 000077
2004524641.tif 000078
2004524641.tif 000079
2004524641.tif 000080
2004524641.tif 000081
2004524641.tif 000082
2004524641.tif 000083
2004524641.tif 000084
2004524641.tif 000085
【国際調査報告】
2004524641.tif 000086
2004524641.tif 000087
2004524641.tif 000088