(57)【特許請求の範囲】
【請求項１】
メモリアレイと、
前記メモリアレイに結合された少なくとも１つのデータ信号線と、
制御回路と、
前記制御回路に結合された、読出しクロック信号を受け取るための読出しクロック信号線と、
前記制御回路に結合されたフラグ信号線であって、メモリデバイスからのデータの出力タイミングを較正するためのフラグ信号を受け取るためのフラグ信号線と、
前記制御回路に結合された、コマンドを受け取るための少なくとも１つのコマンド信号線とを備えたメモリデバイスであって、
複数の前記メモリデバイスがデータバスにより結合されており、
前記データバスは前記フラグ信号線を含み、
前記制御回路が前記フラグ信号を受け取ってから所定数の読出しクロックサイクル後に、前記フラグ信号を受け取る前に受け入れたコマンドに関連するデータを前記メモリデバイスが前記アレイから前記少なくとも１つのデータ信号線上に出力開始するように前記制御回路は制御し、前記読み出しクロックサイクルの数は信号伝播特性にしたがって予め定められており、その結果、複数の前記メモリデバイスのシステム読み出し待ち時間が均一化されることを特徴とするメモリデバイス。
【請求項２】
前記フラグ信号を受け取る前に受け入れたコマンドは読出しコマンドであることを特徴とする請求項１に記載のメモリデバイス。
【請求項３】
前記フラグ信号を受け取る前に受け入れたコマンドは較正コマンドであることを特徴とする請求項１に記載のメモリデバイス。
【請求項４】
出力の前記データは較正パターンであることを特徴とする請求項３に記載のメモリデバイス。
【請求項５】
前記較正パターンは、異なる論理状態を有する連続する２つのビットを少なくとも含むことを特徴とする請求項４に記載のメモリデバイス。
【請求項６】
前記較正パターンは、第１ビットが２進数０にセットされ、後続のすべてのビットが２進数１にセットされていることを特徴とする請求項５に記載のメモリデバイス。
【請求項７】
前記較正パターンは、第１ビットが２進数１にセットされ、後続のすべてのビットが２進数０にセットされていることを特徴とする請求項５に記載のメモリデバイス。
【請求項８】
前記メモリデバイスは少なくとも１つの他のメモリデバイスと共に使用され、
各メモリデバイスは、該各メモリデバイスが読出しコマンドを受け取ってからそれぞれのフラグ信号線を介して前記フラグ信号を受け取ることを特徴とする請求項１に記載のメモリデバイス。
【請求項９】
メモリアレイと、
前記メモリアレイに結合された少なくとも１つのデータ信号線と、
制御回路と、
前記制御回路に結合された、読出しクロック信号を受け取るための読出しクロック信号線と、
前記制御回路に結合されたフラグ信号線であって、メモリデバイスからのデータの出力タイミングを較正するためのフラグ信号を受け取るためのフラグ信号線と、
前記制御回路に結合された、コマンドを受け取るための少なくとも１つのコマンド信号線とを備えたメモリデバイスであって、
複数のメモリモジュールの各々が複数の前記メモリデバイスを含み、前記メモリモジュールの各々がデータバスにより結合されており、
前記制御回路が前記フラグ信号を受け取ってから所定数の読出しクロックサイクル後に、前記フラグ信号を受け取る前に受け入れたコマンドに関連するデータを前記メモリデバイスが前記アレイから前記少なくとも１つのデータ信号線上に出力開始するように前記制御回路は制御し、前記読み出しクロックサイクルの数は信号伝播特性にしたがって予め定められており、その結果、複数の前記メモリデバイスのシステム読み出し待ち時間が均一化され、
前記メモリデバイスはメモリモジュール上で少なくとも１つの他のメモリデバイスと共に使用され、前記メモリデバイスおよび前記少なくとも１つの他のメモリデバイスそれぞれで、それらのフラグ信号線は前記メモリモジュール上に位置するフラグ生成論理に結合されたことを特徴とするメモリデバイス。
【請求項１０】
複数のメモリデバイスを備え、
前記メモリデバイスはそれぞれさらに、
メモリアレイと、
前記メモリアレイに結合された少なくとも１つのデータ信号線と、
制御回路と、
前記制御回路に結合された、読出しクロック信号を受け取るための読出しクロック信号線と、
前記制御回路に結合されたフラグ信号線であって、前記メモリデバイスからのデータの出力タイミングを較正するためのフラグ信号を受け取るためのフラグ信号線と、
前記制御回路に結合された、読出しコマンドを受け取るための少なくとも１つのコマンド信号線とを備え、
前記複数のメモリデバイスを含む複数のメモリモジュールであって、第１のメモリモジュールのメモリデバイスが、第２のメモリモジュールのメモリデバイスとデータバスにより結合されており、
前記データバスは前記フラグ信号線を含み、
前記制御回路が前記フラグ信号を受け取ってから所定数の読出しクロックサイクル後に、前記フラグ信号を受け取る前に受け入れたコマンドに関連するデータを前記メモリデバイスが前記アレイから前記少なくとも１つのデータ信号線上に出力開始するように前記制御回路は制御し、前記読み出しクロックサイクルの数は信号伝播特性にしたがって予め定められており、その結果、複数の前記メモリデバイスのシステム読み出し待ち時間が均一化されることを特徴とするメモリモジュール。
【請求項１１】
プロセッサと、
前記プロセッサに結合されたメモリコントローラと、
第１のメモリモジュールと、
第２のメモリモジュールとを備え、
前記第１のメモリモジュールは、複数の第1のメモリデバイスを有し、
前記第２のメモリモジュールは、複数の第２のメモリデバイスを有し、
読出しクロック信号を受け取るための第１及び第２の読出しクロック信号線であって、それぞれが、前記第１のメモリモジュール中の第１のメモリデバイスと前記第２のメモリモジュール中の第２のメモリデバイスに結合された、第１及び第２の読出しクロック信号線と、
コマンドを受け取るためのコマンド信号線と、
メモリデバイスからのデータの出力タイミングを較正するための第１及び第２のフラグ信号を受け取るための第１及び第２のフラグ信号線であって、それぞれが、前記第１のメモリモジュール中の第１のメモリデバイスと前記第２のメモリモジュール中の第２のメモリデバイスに結合された、第１及び第２のフラグ信号線とを備え、
前記メモリコントローラからのフラグ信号を受け取ってから所定数の読出しクロックサイクル後に、前記フラグ信号を受け取る前に前記コマンド信号線上で受け取った受け入れのコマンドに対応するデータを、前記複数の第１のメモリデバイスおよび複数の第２のメモリデバイスが出力開始するように前記フラグ信号がせしめ、前記読み出しクロックサイクルの数は信号伝播特性にしたがって予め定められており、その結果、複数の前記第１及び第２のメモリデバイスのシステム読み出し待ち時間が均一化されることを特徴とするコンピュータシステム。
【請求項１２】
メモリコントローラと、読出しクロック信号源と、フラグ信号源とに結合されたメモリデバイスを動作させる方法であって、
前記メモリコントローラからコマンドを受け取るステップと、
前記フラグ信号源から前記メモリデバイスからのデータの出力タイミングを較正するためのフラグ信号を受け取るステップと、
前記読出しクロック信号源から読出しクロック信号を受け取るステップと、
前記フラグ信号を受け取ってから所定数の読出しクロックサイクル後に、前記コマンドに関連するデータを前記読出しクロック信号と同期させて出力開始するステップであって、前記読み出しクロックサイクルの数は信号伝播特性にしたがって予め定められており、その結果、複数の前記メモリデバイスのシステム読み出し待ち時間が均一化されるステップとを含むことを特徴とする方法。
【請求項１３】
前記コマンドは読出しコマンドであることを特徴とする請求項１２に記載の方法。
【請求項１４】
前記コマンドは較正コマンドであることを特徴とする請求項１２に記載の方法。
【請求項１５】
前記データは較正パターンであることを特徴とする請求項１４に記載の方法。
【請求項１６】
前記較正パターンは、異なる論理状態を有する連続する２つのビットを少なくとも含むことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記較正パターンは、第１ビットが２進数０にセットされ、後続のすべてのビットが２進数１にセットされていることを特徴とする請求項１６に記載の方法。
【請求項１８】
前記較正パターンは、第１ビットが２進数１にセットされ、後続のすべてのビットが２進数０にセットされていることを特徴とする請求項１６に記載の方法。
【請求項１９】
前記読出しクロック源はメモリコントローラであり、前記フラグ信号源は前記メモリコントローラであることを特徴とする請求項１２に記載の方法。
【請求項２０】
前記メモリデバイスはメモリモジュール上に位置し、前記フラグ信号源は前記メモリモジュール上に位置するフラグ生成論理であることを特徴とする請求項１２に記載の方法。
【請求項２１】
複数のメモリデバイスについての読出し待ち時間を制御する方法であって、
前記複数のメモリデバイスに順次、読出しクロック信号を提供するステップと、
前記メモリデバイスのうちの１つに読出しコマンドを発行するステップと、
前記読出しコマンドを発行してから第１の所定数の読出しクロック周期後に、前記１つのメモリデバイスに該メモリデバイスからのデータの出力タイミングを較正するためのフラグ信号を発行するステップと、
前記フラグ信号を前記メモリデバイスにおいて受け取ってから第２の所定数の読出しクロック周期後に、前記読出しコマンドに関連するデータを前記メモリデバイスから出力するステップとを含み、
前記読み出しクロックサイクルの第１の所定数および第２の所定数は信号伝播特性にしたがって予め定められており、その結果、前記複数のメモリデバイスのシステム読み出し待ち時間が均一化されることを特徴とする方法。
【請求項２２】
前記第１の所定数の読出しクロック周期と前記第２の所定数の読出しクロック周期を足した長さは、前記複数のメモリデバイスに対応する最低デバイス読出し待ち時間の最大値以上であることを特徴とする請求項２１に記載の方法。
【請求項２３】
前記第２の所定数の読出しクロックサイクル周期が４であることを特徴とする請求項２１に記載の方法。
【請求項２４】
プロセッサと、
前記プロセッサに結合されたメモリコントローラと、
前記メモリコントローラに結合された少なくとも１つのメモリモジュールとを備えるコンピュータシステムであって、
前記少なくとも１つのメモリモジュールは、
フラグ生成論理と、
複数のメモリデバイスとを備え、前記メモリデバイスはそれぞれ、
読出しクロック信号を受け取るための読出しクロック信号線と、
コマンドを受け取るための少なくとも１つのコマンド信号線と、
メモリアレイに結合された少なくとも１つのデータ信号線と、
前記フラグ生成論理に結合されたフラグ信号線であって、メモリデバイスからのデータの出力タイミングを較正するためのフラグ信号を受け取るためのフラグ信号線とを備え、
前記フラグ信号は、前記フラグ信号を受け取ってから所定数の読出しクロックサイクル後に、前記フラグ信号を受け取る前に前記コマンド信号線上で受け取った受け入れのコマンドに対応するデータを、前記メモリデバイスに前記データ信号線上に出力させ、
前記少なくとも１つのメモリデバイスはそれぞれさらに、構成メモリを備え、該構成メモリは、複数の前記フラグ信号をいつ生成するかを決定するために前記フラグ生成論理により使用されるデータであって、前記複数のメモリデバイスの間の待ち時間を等しくするためのタイミング遅延時間を示すデータを記憶していることを特徴とするコンピュータシステム。
【請求項２５】
複数のメモリデバイスを動作させる方法であって、
コマンド信号線から前記メモリデバイスへの読み出しコマンドを受け取るステップと、
メモリデバイスからのデータの出力タイミングを較正するためのフラグ信号であって、メモリコントローラのフラグ出力から特定の電気的な距離をおいて到達するフラグ信号を受け取るステップと、
前記フラグ信号を受け取った後、出力時期まで予め定めた時間、待機するステップと、
前記出力時期に前記メモリデバイスからデータ値を出力ステップと
を具え、
前記出力時間は信号伝播特性にしたがって予め定められており、その結果、複数の前記メモリデバイスのシステム読み出し待ち時間が均一化され、
前記フラグ信号を受け取った後、出力時期まで前記予め定めた時間、待機するステップは、
前記メモリデバイスで受け取るクロック信号を予め定めたクロックサイクル数だけ計数するステップと、
当該計数されたクロックサイクル数の後、前記メモリデバイスからデータを出力するステップと
を有することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、高速同期メモリシステムに関し、より詳細には、どんなメモリデバイスからの読出しデータも同時にメモリコントローラに到着するようにメモリデバイスの読出し待ち時間を制御することに関する。
【背景技術】
【０００２】
図１に例示的なコンピュータシステムを示す。このコンピュータシステムは、プロセッサ５００と、メモリサブシステム１００ｐと、拡張バスコントローラ５１０を備える。メモリサブシステム１００ｐおよび拡張バスコントローラ５１０は、ローカルバス５２０を介してプロセッサ５００に結合されている。拡張バスコントローラ５１０はまた、少なくとも１つの拡張バス５３０にも結合されており、拡張バス５３０には、大容量記憶デバイス、キーボード、マウス、グラフィックアダプタ、マルチメディアアダプタなど、様々な周辺デバイス５４０〜５４２を接続することができる。
【０００３】
メモリサブシステム１００ｐは、メモリコントローラ４００ｐおよび複数のメモリモジュール３０１ｐ〜３０２ｐを備える。各メモリモジュールは複数のメモリデバイスを備え、例えば、モジュール３０２ｐの場合はＤＲＡＭ−１  １０１ｐおよびＤＲＡＭ−２  １０２ｐを備える。各メモリデバイス１０１ｐ〜１０４ｐは高速同期メモリデバイスである。図１には、２つのメモリモジュール３０１ｐおよび３０２ｐと関連する信号線４０１ａｐ、４０１ｂｐ、４０２ａｐ、４０２ｂｐ、４０３ｐ、４０６ｐ、４０７ｐしか示していないが、任意の数のメモリモジュールを使用できることに留意されたい。同様に、各メモリモジュールには２つのメモリデバイス１０１ｐ〜１０２ｐ、１０３ｐ〜１０４ｐしかないものとして示してあるが、メモリモジュール３０１ｐ〜３０２ｐにはこれよりも多いか少ないメモリデバイス１０１ｐ〜１０４ｐがあってもよい。ただし代表的な構成では、各メモリモジュール上に８個または９個のメモリデバイスがある。信号線４０１ａｐ、４０１ｂｐ、４０２ａｐ、４０２ｂｐ、４０３ｐは、データバス１５０ｐと呼ばれ、信号線４０６ｐおよび４０７ｐは、コマンド／アドレスバス１５１ｐと呼ばれる。
【０００４】
データバス１５０ｐは複数のデータ信号線４０１ａｐ、４０１ｂｐを含み、これらのデータ信号線は、メモリコントローラ４００ｐとメモリデバイス１０１ｐ〜１０４ｐとの間でデータＤＡＴＡを交換するのに使用される。読出しデータは、メモリモジュール３０１ｐ、３０２ｐから出力され、読出しクロック信号線４０２ａｐ、４０２ｂｐ上の自走読出しクロック信号ＲＣＬＫとの同期が順次とられる。読出しクロック信号ＲＣＬＫは、メモリコントローラ４００ｐによって生成され、まずメモリコントローラ４００ｐから最も遠いメモリモジュール３０２ｐにドライブされた後、残りのメモリモジュール３０１ｐの中をドライブされ、メモリコントローラ４００ｐに戻る。書込みデータは、メモリコントローラ４００ｐから出力され、書込みクロック信号線４０３ｐ上の自走書込みクロック信号ＷＣＬＫとの同期が順次とられる。書込みクロックは、メモリコントローラ４００ｐによって生成され、まず最も近いメモリモジュール３０１ｐにドライブされた後、残りのメモリモジュール３０２ｐの中をドライブされる。複数のコマンド信号線４０６がメモリコントローラ４００ｐによって使用されて、コマンドＣＭＤがメモリモジュール３０１ｐ、３０２ｐに送られる。同様に、複数のアドレス信号線４０７ｐがメモリコントローラによって使用されて、アドレスＡＤＤＲがメモリモジュール３０１ｐ、３０２ｐに送られる。データバス１５０ｐまたはコマンド／アドレスバス１５１ｐは、当技術分野で周知の追加の信号線、例えばチップ選択線を有することもできるが、図を簡単にするためにこれらは示していない。コマンドＣＭＤおよびアドレスＡＤＤＲはまた、メモリモジュール３０１ｐ、３０２ｐ上のレジスタ（図示せず）によってバッファリングしてからそれぞれのモジュールのメモリデバイス１０１ｐ〜１０４ｐに配信することもできる。複数の書込みクロック信号線４０４ｐ、複数のデータ信号線４０１ａおよび４０１ｂ、複数のコマンド信号線４０６、複数のアドレス信号線４０７はそれぞれ、レジスタとすることのできる終端装置４５０によって終端される。
【０００５】
メモリデバイス１０１ｐ〜１０４ｐが読出しコマンドを受け入れると、この読出しコマンドに関連するデータは、一定時間量が経過するまではデータバス１５０ｐ上に出力されない。この時間は、デバイス読出し待ち時間と呼ばれる。各メモリデバイス１０１ｐ〜１０４ｐには、最低デバイス読出し待ち時間が関連付けられているが、より長い複数の読出し待ち時間で動作させることもできる。メモリコントローラ４００ｐが読出しコマンドを発行する時と、メモリコントローラ４００ｐに読出しデータが到着する時との間に経過する時間量は、システム読出し待ち時間と呼ばれる。システム読出し待ち時間は、メモリデバイス１０１ｐ〜１０４ｐのデバイス読出し待ち時間と、デバイス１０１ｐ〜１０４ｐとメモリコントローラ４００ｐとの間の信号伝搬時間との合計に等しい。メモリモジュール３０１ｐはメモリモジュール３０２ｐよりもメモリコントローラ４００ｐに近いので、メモリモジュール３０１ｐ上にあるメモリデバイス１０１ｐ、１０２ｐは、メモリモジュール３０２ｐ上にあるメモリデバイス１０３ｐ、１０４ｐよりも短い信号伝搬時間を有する。高クロック周波数（例えば３００ＭＨｚから少なくとも５３３ＭＨｚ）では、この信号伝搬時間の差が重要になる場合がある。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
各メモリデバイス１０１ｐ〜１０４ｐの最低読出し待ち時間、ならびに読出しクロック信号線４０２ａｐ、４０２ｂｐに沿った読出しクロックＲＣＬＫの信号伝搬時間に差があるせいで（例えば、ＤＲＡＭ−３  １０３の方がＤＲＡＭ−１  １０１ｐよりもメモリコントローラ４００ｐから遠くに位置するので、ＤＲＡＭ−３  １０３ｐからのデータ出力の方がＤＲＡＭ−１  １０１ｐからのデータ出力よりもメモリコントローラ４００ｐに到達するのに時間がかかる）、同じ読出しクロック信号線に結合されたメモリデバイス（例えばＤＲＡＭ−１  １０１ｐとＤＲＡＭ−３  １０３ｐ）が、異なるシステム読出し待ち時間を有する場合がある。メモリコントローラ４００ｐが各メモリデバイス１０１ｐ〜１０４ｐごとに異なるシステム読出し待ち時間で読出しトランザクションを処理するようにすると、メモリコントローラ４００ｐは不必要に複雑になる。したがって、メモリコントローラの複雑さを低減する目的でメモリデバイスのシステム読出し待ち時間を均一化するための装置および方法が必要とされている。
【課題を解決するための手段】
【０００７】
本発明は、高速メモリサブシステム中のメモリデバイスのシステム読出し待ち時間を均一化するための方法および装置を目的とする。本発明は、各メモリデバイスのデバイス読出し待ち時間（ｒｅａｄ  ｌａｔｅｎｃｙ）を制御する複数のフラグ信号を使用することを対象とする。フラグ信号は、読出しクロック信号と同等の信号伝搬時間を有するようにルーティングされる。本発明によるメモリデバイスは、フラグ信号を受け取ってから所定数の読出しクロックサイクル後に、前に受け入れた読出しコマンドに関連するデータの出力を開始する。したがって、フラグ信号のタイミングが、メモリデバイスのデバイス読出し待ち時間を決定する。本発明によるメモリコントローラは、初期化中に較正（キャリブレーション）ルーチンを実施する。較正ルーチンを用いて、読出しコマンドとフラグ信号との間に必要とされる最低タイミングオフセットを決定する。最低タイミングオフセットは、同じ読出しクロック信号線に結合された各メモリデバイスが読出しデータを確実に出力することを可能にし、すなわち各デバイスの最低デバイス読出し待ち時間を満たす。代替として、最低タイミングオフセットを事前に決定してメモリ（例えばシリアルプレゼンス検出すなわちＳＰＤ  ＥＥＰＲＯＭ）に記憶しておき、それにより、コントローラが較正を実施せずにタイミングオフセットを設定できるようにしてもよい。通常動作中、このタイミングオフセットを使用して、各メモリデバイスが読出しデータを出力する時が制御される。フラグ信号は、パス長および信号伝搬特性の類似により、読出しクロックパスと同等の信号伝搬タイミングを有するので、フラグ信号の信号伝搬時間は自動的にメモリデバイス間の信号伝搬時間の差を補償し、それにより、このフラグ信号に結合された各メモリデバイスについてメモリコントローラは同じシステム読出し待ち時間を経験することが保証される。代替実施形態では、フラグ信号は各メモリモジュールにローカルであり、やはりメモリモジュール上にあるフラグ生成論理によって生成される。このシステムの下では、フラグ信号はメモリモジュールに関連付けられ、各メモリモジュールのメモリデバイスの待ち時間を均一化するのに役立つ。
【０００８】
本発明に関する以上およびその他の利点および特徴は、添付の図面と共に提供する以下の本発明の詳細な説明からより明確に理解されるであろう。
【発明を実施するための最良の形態】
【０００９】
ここで図面を参照するが、図面では、同じ参照番号は同様の要素を指す。図２に、本発明の第１の実施形態による例示的なメモリサブシステム１００の一例を示す。メモリサブシステム１００は、データバス１５０およびコマンド／アドレスバス１５１を介して複数の信号を送るメモリコントローラ４００を備える。データバス１５０は、複数のフラグ信号ＦＬ１、ＦＬ２を含み、これらのフラグ信号は、対応する複数のフラグ信号線４０４、４０５を使用して送られる。各フラグ信号線は、対応する読出しクロック信号線と、その読出しクロック信号線に結合されたメモリデバイスとに関連付けられる。例えば、フラグ信号ＦＬ１は、フラグ信号線４０４上で送られ、読出しクロック信号線４０２ａｐ上で送られる読出しクロックＲＣＬＫとメモリデバイスＤＲＡＭ−１  １０１ｐおよびＤＲＡＭ−３  １０３ｐとに関連する。各メモリモジュール３０１、３０２が、複数のフラグ信号線４０４、４０５を含むデータバス１５０を介してメモリコントローラ４００に結合されている。図２では（代替実施形態を対象とする図５〜８でも）、コマンド信号線４０６およびアドレス信号線４０７について特定のルーティングスキームが示してあるが、本発明の原理は他のルーティング構成にも適用可能であることに留意されたい。例えば、コマンド信号線４０６およびアドレス信号線４０７は、各メモリデバイス１０１〜１０４に並列にルーティングすることもでき、および／またはレジスタ（図示せず）によってバッファリングすることもできる。
【００１０】
図３は、図２に示したメモリモジュールのうちの１つである１０１のより詳細な図である。例示的な実施形態では、メモリデバイス１０１〜１０４はアドバンスＤＲＡＭ技術（ＡＤＴ）デバイスである。ただし、本発明の原理は、任意のタイプの同期メモリデバイスに組み込むことができる。ＡＤＴメモリデバイス１０１は、制御回路２０００（アドレスデコーダを含む）を備え、制御回路２０００は、読出しクロック信号線４０２ａ、書込みクロック信号線４０３、フラグ信号線４０４、複数のコマンド信号線４０６、および複数のアドレス信号線４０７に結合されている。制御回路２０００は、従来からある追加の信号線にも結合することができるが、図を簡単にするためにこれらは示していない。ＡＤＴメモリデバイス１０１はまた、書込みデータパス２００２および読出しデータパス２００４も備え、これらは両方とも、データ信号線４０１ａおよび複数のメモリアレイ２００１（Ｉ／Ｏゲーティング回路２００６を介して）に結合されている。読出しデータパス２００４は、読出しクロック信号線４０２ａにも結合され、シリアライザ２００５を備える。シリアライザ２００５は、複数のメモリアレイ２００１から読み出された並列データを直列データに変換し、この直列データは、読出しクロック信号ＲＣＬＫと同期してデータ信号線４０１ａ上に出力される。同様に、書込みデータパス２００２は、書込みクロック信号線４０３にも結合され、パラレライザ２００３を備える。パラレライザ２００３は、データ信号線４０１ａからの直列書込みデータを並列データに変換する。
【００１１】
メモリデバイス１０１は、前に受け入れた読出しコマンドに関連するデータの出力を開始する時を決定するための合図として、フラグ信号ＦＬ１を使用する。したがって、メモリデバイスの読出し待ち時間は、フラグ信号線４０４上のフラグ信号ＦＬ１のタイミングによって決定される。より具体的には、メモリデバイス１０１の制御回路２０００は、読出しデータパス２００３に対し、フラグＦＬ１がフラグ信号線４０４上でアサートされてから所定数の読出しクロックサイクル後に、前に受け入れた読出しコマンドに関連するデータの出力を開始させる。
【００１２】
図３にこのプロセスを示す。プロセスはステップ１００１で開始し、メモリデバイスは、複数のコマンド信号線４０６を介して送られた読出しコマンドを受け入れる。ステップ１００２で、制御回路はフラグ信号ＦＬ１を受け取るまで待機する。フラグ信号を受け取った後、ステップ１００３〜１００４で、メモリデバイスは、所定数の読出しクロックサイクルだけ待機してからデータを出力する。例示的な実施形態では、メモリデバイス１０１は、フラグ信号ＦＬ１を受け取ってから４読出しクロックサイクル後に、読出しデータの出力を開始する。ただし、読出しクロックサイクル数が各メモリデバイス１０１〜１０４で同じであって、メモリデバイス１０１〜１０４から要求のデータを出力するのに十分な時間を含んでいれば、異なる数の経過読出しクロックサイクルを使用することもできる。
【００１３】
フラグ信号ＦＬ１、ＦＬ２によって設定されるメモリデバイス１０１〜１０４のデバイス読出し待ち時間に関する制御タイミングは、例えばシステム初期化時に、メモリコントローラによって実施される較正プロシージャで決定される。このような場合、メモリコントローラ４００は、読出しコマンドを発行する時と各メモリデバイスに向けたフラグ信号を発行する時との間のタイミングオフセットを決定する。このタイミングオフセットは、同じフラグ信号線（例えばフラグ信号線４０４）に結合されたメモリデバイス（例えばＤＲＡＭ−１  １０１とＤＲＡＭ−３  １０３）のシステム読出し待ち時間を均一化することになる。較正プロセスは、フラグ信号線ごとに実施する。
【００１４】
較正プロセスは、較正されるフラグ信号線（例えばフラグ信号線４０４）に結合されたメモリデバイスのうちでメモリコントローラ４００から最も遠くに位置するメモリデバイス（例えばＤＲＡＭ−３  １０３）にメモリコントローラ４００が較正コマンドを送る時に開始する。較正コマンドは、メモリデバイス１０３に基準較正パターンを出力させる特別な読出しコマンドである。基準較正パターンは、データが最初にメモリコントローラに到着した時をメモリコントローラが容易に識別できるようにフォーマット化されている。例示的な実施形態では、メモリデバイス１０３は、１つの読出しコマンドにつき８ビットのデータを返す。メモリデバイス１０３は、データ信号線４０１ａにわたってメモリコントローラ４００にデータを順次ドライブする。適切な較正パターンなら、メモリコントローラは、第１のデータビットがメモリコントローラに到着した時を容易に認識することができる。例示的な実施形態では、好ましい基準較正パターンは、メモリコントローラに到着する第１ビットが所定の状態にセットされて残りのビットが異なる状態にセットされたバイトである。したがって、（２進数）０１１１１１１１、または（２進数）１０００００００が適切な較正パターンとなる。この２つのパターン間の選択は、バスアーキテクチャの影響を受ける場合がある。例えば例示的な実施形態では、メモリバス１５０は、自然な論理状態「１」を有する「プルアップ」バスである。このため、パターン（２進数）０１１１１１１１が理想的である。というのは、「０」がバス上に現れるのはこのパターンがバス上にドライブされている場合だけになるからである。しかし、データバス１５０の自然な論理状態が「０」であるように構築されている場合は、好ましいパターンはそうではなく（２進数）１０００００００になる。
【００１５】
メモリコントローラ４００は、較正コマンドを発行する時、同時にフラグ信号線４０４上でフラグ信号ＦＬ１もアサートする。ＤＲＡＭ−３  １０３がフラグ信号を受け取ると、ＤＲＡＭ−３  １０３は、所定数の読出しクロックサイクルが経過した後で較正パターンの出力を開始する。
【００１６】
フラグ信号線４０４は、フラグ信号ＦＬ１が、フラグ信号ＦＬ１に関連するフラグ信号線４０４に結合された各メモリデバイス１０３、１０１を横断してからメモリコントローラ４００に戻るようにルーティングされる。メモリコントローラ４００は、戻ってきたフラグ信号ＦＬ１を受け取ると、所定数の読出しクロックサイクルが経過した後で、データ信号線４０１ａから較正パターンを読み取ることを試みる。基準較正パターンが検出された場合は、この所定数の読出しクロックサイクルは、メモリデバイス１０３が適切に動作するのに十分なデバイス読出し待ち時間を課す読出しクロックサイクルである。基準較正パターンが検出されなかった場合は、メモリコントローラは、フラグ信号ＦＬ１を送るのが早すぎ、結果としてメモリデバイス１０３をその最低デバイス読出し待ち時間よりも短いデバイス読出し待ち時間で動作させようとしたと判断する。この場合、したがってメモリコントローラ４００は、較正コマンドの送出とフラグ信号ＦＬ１の送出との間の読出しクロックサイクル数を増加させて前述の手順を繰り返し、基準較正パターンを適切に受け取るまでこれを行う。
【００１７】
次いでメモリコントローラ４００は、同じフラグ信号線に結合された残りの各メモリデバイスに対して上記の手順を繰り返す。メモリコントローラは、フラグ信号線４０４に結合された次に近いメモリデバイス（例えばＤＲＡＭ−１  １０１）の処理を継続し、同じフラグ信号線（例えばフラグ信号線４０４）に結合された最も近いメモリデバイスに対して較正手順を実施し終えるまで処理を行う。各反復で、メモリコントローラ４００は、前の反復で使用した最終タイミングオフセットを初期タイミング差として採用する。この手順によって最も近いメモリデバイス（例えばＤＲＡＭ−１  １０１）を較正し終えた後、メモリコントローラ４００は、最終タイミングオフセットを、そのフラグ信号線（例えばフラグ信号線４０４）に結合されたメモリデバイスに対して読出しトランザクションを実施するのに採用する。このタイミングオフセットにより、同じフラグ信号線に結合された各メモリデバイス（例えばフラグ信号線４０４およびメモリデバイスＤＲＡＭ−１  １０１、ＤＲＡＭ−３  １０３）は、このメモリデバイスの組のうちで最も遅いメモリデバイスの最低デバイス読出し待ち時間で動作する。フラグ信号は、パス長および信号伝搬特性の類似により、読出しクロックパスと同等の信号伝搬特性で伝搬するので、フラグ信号の信号伝搬遅延は自動的に、同じフラグ信号線（例えばフラグ信号線４０４）に結合されたメモリデバイス間（例えばＤＲＡＭ−１  １０１とＤＲＡＭ−３  １０３）の信号伝搬時間の差を補償する。
【００１８】
例えば図２に示したシステムでは、ＤＲＡＭ−１  １０１とＤＲＡＭ−３  １０３の両方が同じフラグ信号線（すなわち４０４）に結合されており、ＤＲＡＭ−３  １０３がメモリコントローラ４００から最も遠いメモリデバイスなので、メモリコントローラ４００はまずＤＲＡＭ−３  １０３を較正することになる。この第１ステップ中に、メモリコントローラは、較正コマンドとフラグ信号ＦＬ１を同時に送る。メモリデバイス１０３の制御回路２０００は、フラグ信号から所定数の読出しクロックサイクル後に、メモリデバイスから読出しデータを出力させる。例示的な実施形態では、所定数は４読出しクロックサイクルである。戻ってきたフラグ信号ＦＬ１がメモリコントローラ４００で検出されてから４サイクル後に、較正パターンがメモリコントローラ４００によって適切に受け取られなかった場合、このことは、メモリデバイス１０３が指定の時点で読出しデータを出力する準備ができていなかったことを意味する。すなわち、メモリデバイス１０３の最低デバイス読出し待ち時間が満たされていなかった。したがって、メモリコントローラ４００はもう一度較正コマンドを送るが、ただし、読出しコマンドとフラグ信号ＦＬ１との間の遅延を１読出しクロックサイクルだけ増加させたことに相当する修正済みのタイミングを用いてフラグ信号ＦＬ１を送る。このプロセスを、戻ってきたフラグ信号ＦＬ１をメモリコントローラが受け取ってから４クロックサイクル後に較正パターンがメモリコントローラ４００で検出されるまで繰り返す。このタイミングは、メモリデバイス１０３をその最低デバイス読出し待ち時間で動作させることに等しい。
【００１９】
次いでメモリコントローラ４００は、フラグ信号線４０４に結合された残りのメモリデバイスを較正することに進む。較正は、次に近いメモリデバイスで継続し、最も近いメモリデバイスが較正された時に完了する。この例では、次に近いメモリデバイスはＤＲＡＭ−１  １０１である。較正される残りの各メモリデバイスにつき、読出しコマンドとフラグ信号との間の初期遅延を、前に較正したメモリデバイスに使用した最終タイミングオフセットに設定する。この例では、メモリコントローラ４００は、ＤＲＡＭ−１  １０１を較正することによって較正プロセスを継続する。前に較正されたメモリデバイス（すなわちＤＲＡＭ−３  １０３）に使用された最終タイミング差が１読出しクロックのタイミング差だったので、メモリコントローラ４００は、較正コマンドをＤＲＡＭ−１  １０１に送り、１読出しクロックサイクルだけ待機した後でフラグ信号ＦＬ１を送る。基準較正パターンがメモリコントローラ４００によって適切に受け取られない場合、メモリコントローラ４００は、読出しコマンドとフラグ信号ＦＬ１との間の読出しクロックサイクルオフセットを各較正コマンドごとに増加させて使用して、較正コマンドをＤＲＡＭ−１  １０１に送ることを継続する。メモリコントローラ４００が３つの較正コマンドをＤＲＡＭ−３  １０３に送った後で基準較正パターンがメモリコントローラで適切に受け取られたと仮定する。このことは、較正コマンドとフラグ信号との間に３読出しクロックサイクルのタイミングオフセットがあることに対応する（第１の較正コマンドは前のメモリモジュールからのタイミングを採用し、このタイミングは１読出しクロックサイクル遅延に等しく、第２の較正コマンドはタイミングを１読出しクロックサイクル増加させて２読出しクロックサイクルとし、最後に第３の較正コマンドはタイミングをさらに１読出しクロックサイクル増加させて３読出しクロックサイクルとするので）。ＤＲＡＭ−１  １０１は、フラグ信号線４０４に結合された最も近いメモリデバイスなので、このフラグ信号線４０４に結合されたメモリデバイスに対する較正プロセスが完了した。通常動作では、メモリコントローラ４００は、読出しコマンドを送ってから３読出しクロックサイクル後にフラグ信号ＦＬ１をアサートすることになり、フラグ信号線４０４に結合された各メモリデバイスＤＲＡＭ−１  １０１、ＤＲＡＭ−３  １０３から返されるデータは、同じシステム待ち時間を有することになる。
【００２０】
前述の手順を、各フラグ信号線（例えばフラグ信号線４０５）に対して実施する。例えば図１のシステムでは、フラグ信号ＦＬ２がメモリデバイスＤＲＡＭ−４  １０４およびＤＲＡＭ−２  １０２に使用されている。メモリコントローラは、各フラグ線を同時に較正することが好ましい。メモリコントローラはまた、各フラグ線についての最終タイミングオフセットの最大値を、あらゆるフラグ線上で使用する共通タイミングオフセットとして採用することもでき、それによりメモリシステム全体を同じシステム待ち時間で動作させることができる。
【００２１】
本発明の一態様では、複数のフラグ信号ＦＬ１、ＦＬ２が、複数の読出しクロックＲＣＬＫと同等の信号伝搬時間を有する。フラグ信号ＦＬ１、ＦＬ２は、メモリデバイス１０１〜１０４からのデータ出力を同期させるのに使用される読出しクロック信号ＲＣＬＫと同等の伝搬時間を有するので、メモリサブシステムのメモリモジュール３０１と３０２の間における信号伝搬時間の差を自動的に補償する。図１で示した実施形態では、複数のフラグ信号線４０４、４０５が読出しクロック信号線４０２ａ、４０２ｂと並列にルーティングされ、それにより、複数のフラグ信号線４０４、４０５と読出しクロック信号線４０２ａ、４０２ｂが同等の伝搬時間を有することが保証される。
【００２２】
図５に、本発明の第２の実施形態のメモリサブシステム１００’を示す。メモリサブシステム１００’は、単一の送出読出しクロック信号ＲＣＬＫ’を、送出読出しクロック信号線４０２’上でメモリコントローラ４００からクロックバッファ４０１にルーティングする。クロックバッファ４０１は低遅延デバイスであり、単一の送出読出しクロック信号ＲＣＬＫ’とほぼ同一の位相整合で、複数の読出しクロック信号線４０２ａ、４０２ｂ上に複数の読出しクロック信号ＲＣＬＫを生成する。複数のフラグ信号線４０４、４０５はまず、メモリコントローラ４００からクロックバッファ４０１に近い領域まで、単一の送出読出しクロック信号線４０２’と並列にルーティングされる。次いで、複数のフラグ信号線４０４、４０５は、複数の読出しクロック信号線４０２ａ、４０２ｂと並列にルーティングされる。この構成は、フラグ信号ＦＬ１、ＦＬ２と読出しクロック信号ＲＣＬＫ’、ＲＣＬＫとの間で同等の伝搬時間を維持する。
【００２３】
次に図６を参照すると、本発明の第３の実施形態が示してある。第３の実施形態のメモリサブシステム１００”は、フラグリピータ付きクロックバッファ４０１’を使用する。したがって、送出読出しクロック信号ＲＣＬＫ’ならびに複数の送出フラグ信号ＦＬ１’、ＦＬ２’が、まずメモリコントローラ４００からフラグリピータ付きクロックバッファ４０１’まで相互に並列にルーティングされる。次いで、フラグリピータ付きクロックバッファ４０１’は、これらの信号を複数の読出しクロック信号ＲＣＬＫおよび複数のフラグ信号ＦＬ１、ＦＬ２として転送する。フラグリピータ付きクロックバッファは、読出しクロック信号とフラグ信号との間で同等の信号伝搬タイミング関係を維持する。
【００２４】
次に図７を参照すると、本発明の一実施形態によるメモリサブシステム１００”’が示してある。この場合、フラグ信号ＦＬ１、ＦＬ２は、メモリコントローラ４００によってではなくメモリモジュール上の内部論理４１０によって生成される。各メモリモジュール（例えばメモリモジュール３０１）上のフラグ信号線４０４、４０５は、他のメモリモジュール（例えばメモリモジュール３０２）上の対応するフラグ信号から独立しており、したがって、他のメモリモジュールのフラグ信号線４０４、４０５に結合されていない。図７に示すメモリサブシステム１００”’は通常、より小さいメモリシステムにある。より小さいメモリシステムはタイミングスキューがより小さいので、クロック信号線４０２”上で単一のクロックＣＬＫ”を使用することが可能である。ただし、この実施形態は小さいメモリシステムだけに限定しない。より大きいメモリシステムでは、クロック信号線４０２”上の単一のクロック信号ＣＬＫ”を、独立した読出しクロックおよび書込みクロックで置き換えることができる。
【００２５】
各メモリモジュールの内部論理４１０の機能は、内部フラグ信号ＦＬ１、ＦＬ２を生成することである。これらの内部信号を使用して、メモリモジュール（例えばメモリモジュール３０１）内のメモリデバイス（例えばＤＲＡＭ−１  １０１とＤＲＡＭ−２  １０２）のデバイス読出し待ち時間を均一化することができる。較正プロセスは、同じメモリモジュール内のメモリデバイス間を移動するように修正される。例えば、メモリモジュール３０１中で、較正プロセスは「トップ」メモリデバイス（例えばＤＲＡＭ−１  １０１）で開始し、「ボトム」メモリデバイス（例えばＤＲＡＭ−２  １０２）が較正されるまで継続することができる。したがって、この手順により、メモリモジュール（例えばメモリモジュール３０１）の各メモリデバイス（例えばＤＲＡＭ−１  １０１とＤＲＡＭ−２  １０２）が同じデバイス読出し待ち時間で動作することが保証される。このため較正後には、メモリコントローラ４００は、同じメモリモジュールからのメモリデバイスなら同じシステム読出し待ち時間で読み出すことができる。
【００２６】
モジュール間タイミングスキューの増大した、より大きいメモリシステムにメモリシステム１００”’を適用する場合は、信号線４０２”上の単一のクロックＣＬＫ”を独立した読出しクロックおよび書込みクロックで置き換えることに加えて、他の実施形態のモジュール間較正技法も採用することができる。他の実施形態の較正手順も、この実施形態の大規模メモリシステム実装形態に適用可能である。ただし、メモリコントローラ４００から各メモリモジュール３０１、３０２の中を通るフラグ信号線がないので、メモリコントローラは単に較正パターンが適切に受け取られたかどうかを決定するだけであり、適切に受け取られなかった場合は、較正中のメモリモジュールの内部論理４１０に、そのフラグ信号タイミングオフセットを増加させるよう命令する（モジュール内フラグＦＬ１、ＦＬ２のそれぞれについて）。メモリコントローラ４００は、例えば特別なコマンドを複数のコマンド線４０６上で送ることや専用信号線（図示せず）を介して送ることを含めて、様々な機構によってメモリモジュール（例えばメモリモジュール３０２）の内部論理４１０にそのフラグタイミングを増加させるよう命令することができる。
【００２７】
次に図８を参照すると、本発明の別の実施形態によるメモリサブシステム１００””が示してある。メモリシステム１００””は、図２のメモリシステム１００と同様である。ただし、メモリシステム１００””のメモリモジュール３０１、３０２はそれぞれ、構成メモリ１０５、１０６と、関連する少なくとも１つの信号線４１０を備える。構成メモリ１０５、１０６は、メモリモジュール３０１、３０２上のメモリデバイスＤＲＡＭ−１  １０１〜ＤＲＡＭ−４  １０４に関する所定の構成情報を記憶する任意のメモリとすることができる。例えば、構成メモリ１０５、１０６は、シリアルプレゼンス検出すなわちＳＰＤ  ＥＥＰＲＯＭとすることができる。
【００２８】
所定の構成データＳＰＤＤＣは、メモリコントローラ４００によって、少なくとも１つの信号線４１０を使用して読み出すことができる。構成データＳＰＤＤＣは、各フラグ信号線についての所定のフラグタイミング遅延を含む。所定のフラグタイミング遅延は、各フラグ信号線ごとの単一の値（すなわちメモリコントローラが使用すべき実際の遅延）の連なりとして指定することもでき、あるいは、値の組合せであって、全部合わせて使用することでメモリコントローラが各フラグ信号線に必要な遅延値を計算できる値の組合せとすることもできる。例えば、構成メモリは、メモリモジュール上のすべてのメモリデバイスに共通のシステム待ち時間を表す単一の値、ならびに、各メモリデバイスについての最低デバイス読出し待ち時間を表す単一の値を記憶することができる。メモリコントローラは、システム待ち時間を適切な最低デバイス読出し待ち時間と合計して、そのメモリデバイスに関連するフラグについての提案フラグタイミング遅延を計算する。したがって、メモリコントローラ４００は、システム初期化中に較正ルーチンを実施する必要はない。そうではなく、必要とされるフラグタイミング遅延は、構成メモリ１０５、１０６に記憶されたデータから読み出すかまたは計算することができる。構成メモリ１０５、１０６が、同じフラグ信号について異なるフラグタイミング遅延を指定している場合は、メモリコントローラ４００は、このフラグに関するこれらのフラグタイミング遅延のうちで最も大きいフラグタイミング遅延を採用する。これによりメモリコントローラは、メモリモジュール３０１、３０２を、それぞれのメモリモジュールのタイミング要件に対応するタイミングで動作させることができる。
【００２９】
この実施形態の原理は、前述の他の実施形態にも適用可能である。例えば、図５〜７に示したメモリシステム１００’、１００”、１００”’を、構成メモリおよびそれらに関連する信号線を含むように同様に修正して、較正の必要をなくすことができる。
【００３０】
したがって、本発明は１つまたは複数のフラグ信号を利用し、このフラグ信号により、メモリデバイスは、フラグ信号が到着してから所定数の読出しクロックサイクル後に、前に受け取られた読出しコマンドに関連するデータを出力する。システム初期化中に較正ルーチンを実施して、読出しコマンドのアサートとフラグ信号のアサートとの間のタイミング遅延を得る。代替として、タイミング遅延は、事前に決定してメモリモジュール上の構成メモリに記憶しておいてもよい。その後、通常動作中にこのタイミング遅延を使用してフラグ信号をアサートする。フラグ信号を使用することで、各メモリデバイスのシステム読出し待ち時間が均一化される。フラグ信号がメモリモジュールの外部で（例えばメモリコントローラによって）生成される場合は、フラグ信号を使用して、フラグ信号線に結合されたメモリデバイスのシステム読出し待ち時間を均一化することができる。代替として、フラグ信号は、各メモリモジュール内でオンモジュール論理によって生成することもできる。オンモジュールのフラグ信号がそのメモリモジュールを離れることがない場合、これらのフラグ信号は、他のメモリモジュールのメモリデバイスのシステム読出し待ち時間を均一化するのに使用することはできない。しかし、そのメモリモジュールの各メモリデバイスのシステム読出し待ち時間を均一化するのに使用することができる。
【００３１】
以上、本発明のいくつかの実施形態について説明および図示したが、本発明の趣旨および範囲を逸脱することなく多くの修正、変更、および等価な要素の代用を行うことができるので、本発明はこれらの特定の実施形態に限定しない。したがって、本発明の範囲は、説明および図示した特定の構造の詳細に限定するものと考えるべきではなく、添付の特許請求の範囲によってのみ限定する。
【図面の簡単な説明】
【００３２】
【図１】高速メモリサブシステムを備えるコンピュータシステムを示すブロック図である。
【図２】本発明の第１の実施形態による高速メモリシステムのブロック図である。
【図３】図２に示した高速メモリシステムのメモリデバイスを示すブロック図である。
【図４】メモリデバイスがどのようにフラグ信号に応答するかを示すフローチャートである。
【図５】本発明の第２の実施形態による高速メモリシステムを示すブロック図である。
【図６】本発明の第３の実施形態による高速メモリシステムを示すブロック図である。
【図７】本発明の第５の実施形態による高速メモリシステムを示すブロック図である。
【図８】本発明の第６の実施形態による高速メモリシステムを示すブロック図である。
【図１】
0005415677.tif 000002
【図２】
0005415677.tif 000003
【図３】
0005415677.tif 000004
【図４】
0005415677.tif 000005
【図５】
0005415677.tif 000006
【図６】
0005415677.tif 000007
【図７】
0005415677.tif 000008
【図８】
0005415677.tif 000009