説明

高速メモリシステムにおいて読出しタイミングを同期させる方法

【課題】モリコントローラの複雑さを低減する目的でメモリデバイスのシステム読出し待ち時間を均一化する。
【解決手段】制御回路2000は、制御回路が前記フラグ信号を受け取ってから所定数の読出しクロックサイクル後に、前に受け入れたコマンドに関連するデータをメモリデバイスがメモリアレイから少なくとも1つのデータ信号線上に出力開始し、メモリデバイスの読み出し待ち時間と等しくするために、前記読み出しクロックサイクルの数は信号伝播の特徴にしたがって予め定められる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は一般に、高速同期メモリシステムに関し、より詳細には、どんなメモリデバイスからの読出しデータも同時にメモリコントローラに到着するようにメモリデバイスの読出し待ち時間を制御することに関する。
【背景技術】
【0002】
図1に例示的なコンピュータシステムを示す。このコンピュータシステムは、プロセッサ500と、メモリサブシステム100pと、拡張バスコントローラ510を備える。メモリサブシステム100pおよび拡張バスコントローラ510は、ローカルバス520を介してプロセッサ500に結合されている。拡張バスコントローラ510はまた、少なくとも1つの拡張バス530にも結合されており、拡張バス530には、大容量記憶デバイス、キーボード、マウス、グラフィックアダプタ、マルチメディアアダプタなど、様々な周辺デバイス540〜542を接続することができる。
【0003】
メモリサブシステム100pは、メモリコントローラ400pおよび複数のメモリモジュール301p〜302pを備える。各メモリモジュールは複数のメモリデバイスを備え、例えば、モジュール302pの場合はDRAM−1 101pおよびDRAM−2 102pを備える。各メモリデバイス101p〜104pは高速同期メモリデバイスである。図1には、2つのメモリモジュール301pおよび302pと関連する信号線401ap、401bp、402ap、402bp、403p、406p、407pしか示していないが、任意の数のメモリモジュールを使用できることに留意されたい。同様に、各メモリモジュールには2つのメモリデバイス101p〜102p、103p〜104pしかないものとして示してあるが、メモリモジュール301p〜302pにはこれよりも多いか少ないメモリデバイス101p〜104pがあってもよい。ただし代表的な構成では、各メモリモジュール上に8個または9個のメモリデバイスがある。信号線401ap、401bp、402ap、402bp、403pは、データバス150pと呼ばれ、信号線406pおよび407pは、コマンド/アドレスバス151pと呼ばれる。
【0004】
データバス150pは複数のデータ信号線401ap、401bpを含み、これらのデータ信号線は、メモリコントローラ400pとメモリデバイス101p〜104pとの間でデータDATAを交換するのに使用される。読出しデータは、メモリモジュール301p、302pから出力され、読出しクロック信号線402ap、402bp上の自走読出しクロック信号RCLKとの同期が順次とられる。読出しクロック信号RCLKは、メモリコントローラ400pによって生成され、まずメモリコントローラ400pから最も遠いメモリモジュール302pにドライブされた後、残りのメモリモジュール301pの中をドライブされ、メモリコントローラ400pに戻る。書込みデータは、メモリコントローラ400pから出力され、書込みクロック信号線403p上の自走書込みクロック信号WCLKとの同期が順次とられる。書込みクロックは、メモリコントローラ400pによって生成され、まず最も近いメモリモジュール301pにドライブされた後、残りのメモリモジュール302pの中をドライブされる。複数のコマンド信号線406がメモリコントローラ400pによって使用されて、コマンドCMDがメモリモジュール301p、302pに送られる。同様に、複数のアドレス信号線407pがメモリコントローラによって使用されて、アドレスADDRがメモリモジュール301p、302pに送られる。データバス150pまたはコマンド/アドレスバス151pは、当技術分野で周知の追加の信号線、例えばチップ選択線を有することもできるが、図を簡単にするためにこれらは示していない。コマンドCMDおよびアドレスADDRはまた、メモリモジュール301p、302p上のレジスタ(図示せず)によってバッファリングしてからそれぞれのモジュールのメモリデバイス101p〜104pに配信することもできる。複数の書込みクロック信号線404p、複数のデータ信号線401aおよび401b、複数のコマンド信号線406、複数のアドレス信号線407はそれぞれ、レジスタとすることのできる終端装置450によって終端される。
【0005】
メモリデバイス101p〜104pが読出しコマンドを受け入れると、この読出しコマンドに関連するデータは、一定時間量が経過するまではデータバス150p上に出力されない。この時間は、デバイス読出し待ち時間と呼ばれる。各メモリデバイス101p〜104pには、最低デバイス読出し待ち時間が関連付けられているが、より長い複数の読出し待ち時間で動作させることもできる。メモリコントローラ400pが読出しコマンドを発行する時と、メモリコントローラ400pに読出しデータが到着する時との間に経過する時間量は、システム読出し待ち時間と呼ばれる。システム読出し待ち時間は、メモリデバイス101p〜104pのデバイス読出し待ち時間と、デバイス101p〜104pとメモリコントローラ400pとの間の信号伝搬時間との合計に等しい。メモリモジュール301pはメモリモジュール302pよりもメモリコントローラ400pに近いので、メモリモジュール301p上にあるメモリデバイス101p、102pは、メモリモジュール302p上にあるメモリデバイス103p、104pよりも短い信号伝搬時間を有する。高クロック周波数(例えば300MHzから少なくとも533MHz)では、この信号伝搬時間の差が重要になる場合がある。
【発明の開示】
【発明が解決しようとする課題】
【0006】
各メモリデバイス101p〜104pの最低読出し待ち時間、ならびに読出しクロック信号線402ap、402bpに沿った読出しクロックRCLKの信号伝搬時間に差があるせいで(例えば、DRAM−3 103の方がDRAM−1 101pよりもメモリコントローラ400pから遠くに位置するので、DRAM−3 103pからのデータ出力の方がDRAM−1 101pからのデータ出力よりもメモリコントローラ400pに到達するのに時間がかかる)、同じ読出しクロック信号線に結合されたメモリデバイス(例えばDRAM−1 101pとDRAM−3 103p)が、異なるシステム読出し待ち時間を有する場合がある。メモリコントローラ400pが各メモリデバイス101p〜104pごとに異なるシステム読出し待ち時間で読出しトランザクションを処理するようにすると、メモリコントローラ400pは不必要に複雑になる。したがって、メモリコントローラの複雑さを低減する目的でメモリデバイスのシステム読出し待ち時間を均一化するための装置および方法が必要とされている。
【課題を解決するための手段】
【0007】
本発明は、高速メモリサブシステム中のメモリデバイスのシステム読出し待ち時間を均一化するための方法および装置を目的とする。本発明は、各メモリデバイスのデバイス読出し待ち時間(read latency)を制御する複数のフラグ信号を使用することを対象とする。フラグ信号は、読出しクロック信号と同等の信号伝搬時間を有するようにルーティングされる。本発明によるメモリデバイスは、フラグ信号を受け取ってから所定数の読出しクロックサイクル後に、前に受け入れた読出しコマンドに関連するデータの出力を開始する。したがって、フラグ信号のタイミングが、メモリデバイスのデバイス読出し待ち時間を決定する。本発明によるメモリコントローラは、初期化中に較正(キャリブレーション)ルーチンを実施する。較正ルーチンを用いて、読出しコマンドとフラグ信号との間に必要とされる最低タイミングオフセットを決定する。最低タイミングオフセットは、同じ読出しクロック信号線に結合された各メモリデバイスが読出しデータを確実に出力することを可能にし、すなわち各デバイスの最低デバイス読出し待ち時間を満たす。代替として、最低タイミングオフセットを事前に決定してメモリ(例えばシリアルプレゼンス検出すなわちSPD EEPROM)に記憶しておき、それにより、コントローラが較正を実施せずにタイミングオフセットを設定できるようにしてもよい。通常動作中、このタイミングオフセットを使用して、各メモリデバイスが読出しデータを出力する時が制御される。フラグ信号は、パス長および信号伝搬特性の類似により、読出しクロックパスと同等の信号伝搬タイミングを有するので、フラグ信号の信号伝搬時間は自動的にメモリデバイス間の信号伝搬時間の差を補償し、それにより、このフラグ信号に結合された各メモリデバイスについてメモリコントローラは同じシステム読出し待ち時間を経験することが保証される。代替実施形態では、フラグ信号は各メモリモジュールにローカルであり、やはりメモリモジュール上にあるフラグ生成論理によって生成される。このシステムの下では、フラグ信号はメモリモジュールに関連付けられ、各メモリモジュールのメモリデバイスの待ち時間を均一化するのに役立つ。
【0008】
本発明に関する以上およびその他の利点および特徴は、添付の図面と共に提供する以下の本発明の詳細な説明からより明確に理解されるであろう。
【発明を実施するための最良の形態】
【0009】
ここで図面を参照するが、図面では、同じ参照番号は同様の要素を指す。図2に、本発明の第1の実施形態による例示的なメモリサブシステム100の一例を示す。メモリサブシステム100は、データバス150およびコマンド/アドレスバス151を介して複数の信号を送るメモリコントローラ400を備える。データバス150は、複数のフラグ信号FL1、FL2を含み、これらのフラグ信号は、対応する複数のフラグ信号線404、405を使用して送られる。各フラグ信号線は、対応する読出しクロック信号線と、その読出しクロック信号線に結合されたメモリデバイスとに関連付けられる。例えば、フラグ信号FL1は、フラグ信号線404上で送られ、読出しクロック信号線402ap上で送られる読出しクロックRCLKとメモリデバイスDRAM−1 101pおよびDRAM−3 103pとに関連する。各メモリモジュール301、302が、複数のフラグ信号線404、405を含むデータバス150を介してメモリコントローラ400に結合されている。図2では(代替実施形態を対象とする図5〜8でも)、コマンド信号線406およびアドレス信号線407について特定のルーティングスキームが示してあるが、本発明の原理は他のルーティング構成にも適用可能であることに留意されたい。例えば、コマンド信号線406およびアドレス信号線407は、各メモリデバイス101〜104に並列にルーティングすることもでき、および/またはレジスタ(図示せず)によってバッファリングすることもできる。
【0010】
図3は、図2に示したメモリモジュールのうちの1つである101のより詳細な図である。例示的な実施形態では、メモリデバイス101〜104はアドバンスDRAM技術(ADT)デバイスである。ただし、本発明の原理は、任意のタイプの同期メモリデバイスに組み込むことができる。ADTメモリデバイス101は、制御回路2000(アドレスデコーダを含む)を備え、制御回路2000は、読出しクロック信号線402a、書込みクロック信号線403、フラグ信号線404、複数のコマンド信号線406、および複数のアドレス信号線407に結合されている。制御回路2000は、従来からある追加の信号線にも結合することができるが、図を簡単にするためにこれらは示していない。ADTメモリデバイス101はまた、書込みデータパス2002および読出しデータパス2004も備え、これらは両方とも、データ信号線401aおよび複数のメモリアレイ2001(I/Oゲーティング回路2006を介して)に結合されている。読出しデータパス2004は、読出しクロック信号線402aにも結合され、シリアライザ2005を備える。シリアライザ2005は、複数のメモリアレイ2001から読み出された並列データを直列データに変換し、この直列データは、読出しクロック信号RCLKと同期してデータ信号線401a上に出力される。同様に、書込みデータパス2002は、書込みクロック信号線403にも結合され、パラレライザ2003を備える。パラレライザ2003は、データ信号線401aからの直列書込みデータを並列データに変換する。
【0011】
メモリデバイス101は、前に受け入れた読出しコマンドに関連するデータの出力を開始する時を決定するための合図として、フラグ信号FL1を使用する。したがって、メモリデバイスの読出し待ち時間は、フラグ信号線404上のフラグ信号FL1のタイミングによって決定される。より具体的には、メモリデバイス101の制御回路2000は、読出しデータパス2003に対し、フラグFL1がフラグ信号線404上でアサートされてから所定数の読出しクロックサイクル後に、前に受け入れた読出しコマンドに関連するデータの出力を開始させる。
【0012】
図3にこのプロセスを示す。プロセスはステップ1001で開始し、メモリデバイスは、複数のコマンド信号線406を介して送られた読出しコマンドを受け入れる。ステップ1002で、制御回路はフラグ信号FL1を受け取るまで待機する。フラグ信号を受け取った後、ステップ1003〜1004で、メモリデバイスは、所定数の読出しクロックサイクルだけ待機してからデータを出力する。例示的な実施形態では、メモリデバイス101は、フラグ信号FL1を受け取ってから4読出しクロックサイクル後に、読出しデータの出力を開始する。ただし、読出しクロックサイクル数が各メモリデバイス101〜104で同じであって、メモリデバイス101〜104から要求のデータを出力するのに十分な時間を含んでいれば、異なる数の経過読出しクロックサイクルを使用することもできる。
【0013】
フラグ信号FL1、FL2によって設定されるメモリデバイス101〜104のデバイス読出し待ち時間に関する制御タイミングは、例えばシステム初期化時に、メモリコントローラによって実施される較正プロシージャで決定される。このような場合、メモリコントローラ400は、読出しコマンドを発行する時と各メモリデバイスに向けたフラグ信号を発行する時との間のタイミングオフセットを決定する。このタイミングオフセットは、同じフラグ信号線(例えばフラグ信号線404)に結合されたメモリデバイス(例えばDRAM−1 101とDRAM−3 103)のシステム読出し待ち時間を均一化することになる。較正プロセスは、フラグ信号線ごとに実施する。
【0014】
較正プロセスは、較正されるフラグ信号線(例えばフラグ信号線404)に結合されたメモリデバイスのうちでメモリコントローラ400から最も遠くに位置するメモリデバイス(例えばDRAM−3 103)にメモリコントローラ400が較正コマンドを送る時に開始する。較正コマンドは、メモリデバイス103に基準較正パターンを出力させる特別な読出しコマンドである。基準較正パターンは、データが最初にメモリコントローラに到着した時をメモリコントローラが容易に識別できるようにフォーマット化されている。例示的な実施形態では、メモリデバイス103は、1つの読出しコマンドにつき8ビットのデータを返す。メモリデバイス103は、データ信号線401aにわたってメモリコントローラ400にデータを順次ドライブする。適切な較正パターンなら、メモリコントローラは、第1のデータビットがメモリコントローラに到着した時を容易に認識することができる。例示的な実施形態では、好ましい基準較正パターンは、メモリコントローラに到着する第1ビットが所定の状態にセットされて残りのビットが異なる状態にセットされたバイトである。したがって、(2進数)01111111、または(2進数)10000000が適切な較正パターンとなる。この2つのパターン間の選択は、バスアーキテクチャの影響を受ける場合がある。例えば例示的な実施形態では、メモリバス150は、自然な論理状態「1」を有する「プルアップ」バスである。このため、パターン(2進数)01111111が理想的である。というのは、「0」がバス上に現れるのはこのパターンがバス上にドライブされている場合だけになるからである。しかし、データバス150の自然な論理状態が「0」であるように構築されている場合は、好ましいパターンはそうではなく(2進数)10000000になる。
【0015】
メモリコントローラ400は、較正コマンドを発行する時、同時にフラグ信号線404上でフラグ信号FL1もアサートする。DRAM−3 103がフラグ信号を受け取ると、DRAM−3 103は、所定数の読出しクロックサイクルが経過した後で較正パターンの出力を開始する。
【0016】
フラグ信号線404は、フラグ信号FL1が、フラグ信号FL1に関連するフラグ信号線404に結合された各メモリデバイス103、101を横断してからメモリコントローラ400に戻るようにルーティングされる。メモリコントローラ400は、戻ってきたフラグ信号FL1を受け取ると、所定数の読出しクロックサイクルが経過した後で、データ信号線401aから較正パターンを読み取ることを試みる。基準較正パターンが検出された場合は、この所定数の読出しクロックサイクルは、メモリデバイス103が適切に動作するのに十分なデバイス読出し待ち時間を課す読出しクロックサイクルである。基準較正パターンが検出されなかった場合は、メモリコントローラは、フラグ信号FL1を送るのが早すぎ、結果としてメモリデバイス103をその最低デバイス読出し待ち時間よりも短いデバイス読出し待ち時間で動作させようとしたと判断する。この場合、したがってメモリコントローラ400は、較正コマンドの送出とフラグ信号FL1の送出との間の読出しクロックサイクル数を増加させて前述の手順を繰り返し、基準較正パターンを適切に受け取るまでこれを行う。
【0017】
次いでメモリコントローラ400は、同じフラグ信号線に結合された残りの各メモリデバイスに対して上記の手順を繰り返す。メモリコントローラは、フラグ信号線404に結合された次に近いメモリデバイス(例えばDRAM−1 101)の処理を継続し、同じフラグ信号線(例えばフラグ信号線404)に結合された最も近いメモリデバイスに対して較正手順を実施し終えるまで処理を行う。各反復で、メモリコントローラ400は、前の反復で使用した最終タイミングオフセットを初期タイミング差として採用する。この手順によって最も近いメモリデバイス(例えばDRAM−1 101)を較正し終えた後、メモリコントローラ400は、最終タイミングオフセットを、そのフラグ信号線(例えばフラグ信号線404)に結合されたメモリデバイスに対して読出しトランザクションを実施するのに採用する。このタイミングオフセットにより、同じフラグ信号線に結合された各メモリデバイス(例えばフラグ信号線404およびメモリデバイスDRAM−1 101、DRAM−3 103)は、このメモリデバイスの組のうちで最も遅いメモリデバイスの最低デバイス読出し待ち時間で動作する。フラグ信号は、パス長および信号伝搬特性の類似により、読出しクロックパスと同等の信号伝搬特性で伝搬するので、フラグ信号の信号伝搬遅延は自動的に、同じフラグ信号線(例えばフラグ信号線404)に結合されたメモリデバイス間(例えばDRAM−1 101とDRAM−3 103)の信号伝搬時間の差を補償する。
【0018】
例えば図2に示したシステムでは、DRAM−1 101とDRAM−3 103の両方が同じフラグ信号線(すなわち404)に結合されており、DRAM−3 103がメモリコントローラ400から最も遠いメモリデバイスなので、メモリコントローラ400はまずDRAM−3 103を較正することになる。この第1ステップ中に、メモリコントローラは、較正コマンドとフラグ信号FL1を同時に送る。メモリデバイス103の制御回路2000は、フラグ信号から所定数の読出しクロックサイクル後に、メモリデバイスから読出しデータを出力させる。例示的な実施形態では、所定数は4読出しクロックサイクルである。戻ってきたフラグ信号FL1がメモリコントローラ400で検出されてから4サイクル後に、較正パターンがメモリコントローラ400によって適切に受け取られなかった場合、このことは、メモリデバイス103が指定の時点で読出しデータを出力する準備ができていなかったことを意味する。すなわち、メモリデバイス103の最低デバイス読出し待ち時間が満たされていなかった。したがって、メモリコントローラ400はもう一度較正コマンドを送るが、ただし、読出しコマンドとフラグ信号FL1との間の遅延を1読出しクロックサイクルだけ増加させたことに相当する修正済みのタイミングを用いてフラグ信号FL1を送る。このプロセスを、戻ってきたフラグ信号FL1をメモリコントローラが受け取ってから4クロックサイクル後に較正パターンがメモリコントローラ400で検出されるまで繰り返す。このタイミングは、メモリデバイス103をその最低デバイス読出し待ち時間で動作させることに等しい。
【0019】
次いでメモリコントローラ400は、フラグ信号線404に結合された残りのメモリデバイスを較正することに進む。較正は、次に近いメモリデバイスで継続し、最も近いメモリデバイスが較正された時に完了する。この例では、次に近いメモリデバイスはDRAM−1 101である。較正される残りの各メモリデバイスにつき、読出しコマンドとフラグ信号との間の初期遅延を、前に較正したメモリデバイスに使用した最終タイミングオフセットに設定する。この例では、メモリコントローラ400は、DRAM−1 101を較正することによって較正プロセスを継続する。前に較正されたメモリデバイス(すなわちDRAM−3 103)に使用された最終タイミング差が1読出しクロックのタイミング差だったので、メモリコントローラ400は、較正コマンドをDRAM−1 101に送り、1読出しクロックサイクルだけ待機した後でフラグ信号FL1を送る。基準較正パターンがメモリコントローラ400によって適切に受け取られない場合、メモリコントローラ400は、読出しコマンドとフラグ信号FL1との間の読出しクロックサイクルオフセットを各較正コマンドごとに増加させて使用して、較正コマンドをDRAM−1 101に送ることを継続する。メモリコントローラ400が3つの較正コマンドをDRAM−3 103に送った後で基準較正パターンがメモリコントローラで適切に受け取られたと仮定する。このことは、較正コマンドとフラグ信号との間に3読出しクロックサイクルのタイミングオフセットがあることに対応する(第1の較正コマンドは前のメモリモジュールからのタイミングを採用し、このタイミングは1読出しクロックサイクル遅延に等しく、第2の較正コマンドはタイミングを1読出しクロックサイクル増加させて2読出しクロックサイクルとし、最後に第3の較正コマンドはタイミングをさらに1読出しクロックサイクル増加させて3読出しクロックサイクルとするので)。DRAM−1 101は、フラグ信号線404に結合された最も近いメモリデバイスなので、このフラグ信号線404に結合されたメモリデバイスに対する較正プロセスが完了した。通常動作では、メモリコントローラ400は、読出しコマンドを送ってから3読出しクロックサイクル後にフラグ信号FL1をアサートすることになり、フラグ信号線404に結合された各メモリデバイスDRAM−1 101、DRAM−3 103から返されるデータは、同じシステム待ち時間を有することになる。
【0020】
前述の手順を、各フラグ信号線(例えばフラグ信号線405)に対して実施する。例えば図1のシステムでは、フラグ信号FL2がメモリデバイスDRAM−4 104およびDRAM−2 102に使用されている。メモリコントローラは、各フラグ線を同時に較正することが好ましい。メモリコントローラはまた、各フラグ線についての最終タイミングオフセットの最大値を、あらゆるフラグ線上で使用する共通タイミングオフセットとして採用することもでき、それによりメモリシステム全体を同じシステム待ち時間で動作させることができる。
【0021】
本発明の一態様では、複数のフラグ信号FL1、FL2が、複数の読出しクロックRCLKと同等の信号伝搬時間を有する。フラグ信号FL1、FL2は、メモリデバイス101〜104からのデータ出力を同期させるのに使用される読出しクロック信号RCLKと同等の伝搬時間を有するので、メモリサブシステムのメモリモジュール301と302の間における信号伝搬時間の差を自動的に補償する。図1で示した実施形態では、複数のフラグ信号線404、405が読出しクロック信号線402a、402bと並列にルーティングされ、それにより、複数のフラグ信号線404、405と読出しクロック信号線402a、402bが同等の伝搬時間を有することが保証される。
【0022】
図5に、本発明の第2の実施形態のメモリサブシステム100’を示す。メモリサブシステム100’は、単一の送出読出しクロック信号RCLK’を、送出読出しクロック信号線402’上でメモリコントローラ400からクロックバッファ401にルーティングする。クロックバッファ401は低遅延デバイスであり、単一の送出読出しクロック信号RCLK’とほぼ同一の位相整合で、複数の読出しクロック信号線402a、402b上に複数の読出しクロック信号RCLKを生成する。複数のフラグ信号線404、405はまず、メモリコントローラ400からクロックバッファ401に近い領域まで、単一の送出読出しクロック信号線402’と並列にルーティングされる。次いで、複数のフラグ信号線404、405は、複数の読出しクロック信号線402a、402bと並列にルーティングされる。この構成は、フラグ信号FL1、FL2と読出しクロック信号RCLK’、RCLKとの間で同等の伝搬時間を維持する。
【0023】
次に図6を参照すると、本発明の第3の実施形態が示してある。第3の実施形態のメモリサブシステム100”は、フラグリピータ付きクロックバッファ401’を使用する。したがって、送出読出しクロック信号RCLK’ならびに複数の送出フラグ信号FL1’、FL2’が、まずメモリコントローラ400からフラグリピータ付きクロックバッファ401’まで相互に並列にルーティングされる。次いで、フラグリピータ付きクロックバッファ401’は、これらの信号を複数の読出しクロック信号RCLKおよび複数のフラグ信号FL1、FL2として転送する。フラグリピータ付きクロックバッファは、読出しクロック信号とフラグ信号との間で同等の信号伝搬タイミング関係を維持する。
【0024】
次に図7を参照すると、本発明の一実施形態によるメモリサブシステム100”’が示してある。この場合、フラグ信号FL1、FL2は、メモリコントローラ400によってではなくメモリモジュール上の内部論理410によって生成される。各メモリモジュール(例えばメモリモジュール301)上のフラグ信号線404、405は、他のメモリモジュール(例えばメモリモジュール302)上の対応するフラグ信号から独立しており、したがって、他のメモリモジュールのフラグ信号線404、405に結合されていない。図7に示すメモリサブシステム100”’は通常、より小さいメモリシステムにある。より小さいメモリシステムはタイミングスキューがより小さいので、クロック信号線402”上で単一のクロックCLK”を使用することが可能である。ただし、この実施形態は小さいメモリシステムだけに限定しない。より大きいメモリシステムでは、クロック信号線402”上の単一のクロック信号CLK”を、独立した読出しクロックおよび書込みクロックで置き換えることができる。
【0025】
各メモリモジュールの内部論理410の機能は、内部フラグ信号FL1、FL2を生成することである。これらの内部信号を使用して、メモリモジュール(例えばメモリモジュール301)内のメモリデバイス(例えばDRAM−1 101とDRAM−2 102)のデバイス読出し待ち時間を均一化することができる。較正プロセスは、同じメモリモジュール内のメモリデバイス間を移動するように修正される。例えば、メモリモジュール301中で、較正プロセスは「トップ」メモリデバイス(例えばDRAM−1 101)で開始し、「ボトム」メモリデバイス(例えばDRAM−2 102)が較正されるまで継続することができる。したがって、この手順により、メモリモジュール(例えばメモリモジュール301)の各メモリデバイス(例えばDRAM−1 101とDRAM−2 102)が同じデバイス読出し待ち時間で動作することが保証される。このため較正後には、メモリコントローラ400は、同じメモリモジュールからのメモリデバイスなら同じシステム読出し待ち時間で読み出すことができる。
【0026】
モジュール間タイミングスキューの増大した、より大きいメモリシステムにメモリシステム100”’を適用する場合は、信号線402”上の単一のクロックCLK”を独立した読出しクロックおよび書込みクロックで置き換えることに加えて、他の実施形態のモジュール間較正技法も採用することができる。他の実施形態の較正手順も、この実施形態の大規模メモリシステム実装形態に適用可能である。ただし、メモリコントローラ400から各メモリモジュール301、302の中を通るフラグ信号線がないので、メモリコントローラは単に較正パターンが適切に受け取られたかどうかを決定するだけであり、適切に受け取られなかった場合は、較正中のメモリモジュールの内部論理410に、そのフラグ信号タイミングオフセットを増加させるよう命令する(モジュール内フラグFL1、FL2のそれぞれについて)。メモリコントローラ400は、例えば特別なコマンドを複数のコマンド線406上で送ることや専用信号線(図示せず)を介して送ることを含めて、様々な機構によってメモリモジュール(例えばメモリモジュール302)の内部論理410にそのフラグタイミングを増加させるよう命令することができる。
【0027】
次に図8を参照すると、本発明の別の実施形態によるメモリサブシステム100””が示してある。メモリシステム100””は、図2のメモリシステム100と同様である。ただし、メモリシステム100””のメモリモジュール301、302はそれぞれ、構成メモリ105、106と、関連する少なくとも1つの信号線410を備える。構成メモリ105、106は、メモリモジュール301、302上のメモリデバイスDRAM−1 101〜DRAM−4 104に関する所定の構成情報を記憶する任意のメモリとすることができる。例えば、構成メモリ105、106は、シリアルプレゼンス検出すなわちSPD EEPROMとすることができる。
【0028】
所定の構成データSPDDCは、メモリコントローラ400によって、少なくとも1つの信号線410を使用して読み出すことができる。構成データSPDDCは、各フラグ信号線についての所定のフラグタイミング遅延を含む。所定のフラグタイミング遅延は、各フラグ信号線ごとの単一の値(すなわちメモリコントローラが使用すべき実際の遅延)の連なりとして指定することもでき、あるいは、値の組合せであって、全部合わせて使用することでメモリコントローラが各フラグ信号線に必要な遅延値を計算できる値の組合せとすることもできる。例えば、構成メモリは、メモリモジュール上のすべてのメモリデバイスに共通のシステム待ち時間を表す単一の値、ならびに、各メモリデバイスについての最低デバイス読出し待ち時間を表す単一の値を記憶することができる。メモリコントローラは、システム待ち時間を適切な最低デバイス読出し待ち時間と合計して、そのメモリデバイスに関連するフラグについての提案フラグタイミング遅延を計算する。したがって、メモリコントローラ400は、システム初期化中に較正ルーチンを実施する必要はない。そうではなく、必要とされるフラグタイミング遅延は、構成メモリ105、106に記憶されたデータから読み出すかまたは計算することができる。構成メモリ105、106が、同じフラグ信号について異なるフラグタイミング遅延を指定している場合は、メモリコントローラ400は、このフラグに関するこれらのフラグタイミング遅延のうちで最も大きいフラグタイミング遅延を採用する。これによりメモリコントローラは、メモリモジュール301、302を、それぞれのメモリモジュールのタイミング要件に対応するタイミングで動作させることができる。
【0029】
この実施形態の原理は、前述の他の実施形態にも適用可能である。例えば、図5〜7に示したメモリシステム100’、100”、100”’を、構成メモリおよびそれらに関連する信号線を含むように同様に修正して、較正の必要をなくすことができる。
【0030】
したがって、本発明は1つまたは複数のフラグ信号を利用し、このフラグ信号により、メモリデバイスは、フラグ信号が到着してから所定数の読出しクロックサイクル後に、前に受け取られた読出しコマンドに関連するデータを出力する。システム初期化中に較正ルーチンを実施して、読出しコマンドのアサートとフラグ信号のアサートとの間のタイミング遅延を得る。代替として、タイミング遅延は、事前に決定してメモリモジュール上の構成メモリに記憶しておいてもよい。その後、通常動作中にこのタイミング遅延を使用してフラグ信号をアサートする。フラグ信号を使用することで、各メモリデバイスのシステム読出し待ち時間が均一化される。フラグ信号がメモリモジュールの外部で(例えばメモリコントローラによって)生成される場合は、フラグ信号を使用して、フラグ信号線に結合されたメモリデバイスのシステム読出し待ち時間を均一化することができる。代替として、フラグ信号は、各メモリモジュール内でオンモジュール論理によって生成することもできる。オンモジュールのフラグ信号がそのメモリモジュールを離れることがない場合、これらのフラグ信号は、他のメモリモジュールのメモリデバイスのシステム読出し待ち時間を均一化するのに使用することはできない。しかし、そのメモリモジュールの各メモリデバイスのシステム読出し待ち時間を均一化するのに使用することができる。
【0031】
以上、本発明のいくつかの実施形態について説明および図示したが、本発明の趣旨および範囲を逸脱することなく多くの修正、変更、および等価な要素の代用を行うことができるので、本発明はこれらの特定の実施形態に限定しない。したがって、本発明の範囲は、説明および図示した特定の構造の詳細に限定するものと考えるべきではなく、添付の特許請求の範囲によってのみ限定する。
【図面の簡単な説明】
【0032】
【図1】高速メモリサブシステムを備えるコンピュータシステムを示すブロック図である。
【図2】本発明の第1の実施形態による高速メモリシステムのブロック図である。
【図3】図2に示した高速メモリシステムのメモリデバイスを示すブロック図である。
【図4】メモリデバイスがどのようにフラグ信号に応答するかを示すフローチャートである。
【図5】本発明の第2の実施形態による高速メモリシステムを示すブロック図である。
【図6】本発明の第3の実施形態による高速メモリシステムを示すブロック図である。
【図7】本発明の第5の実施形態による高速メモリシステムを示すブロック図である。
【図8】本発明の第6の実施形態による高速メモリシステムを示すブロック図である。

【特許請求の範囲】
【請求項1】
メモリアレイと、
前記メモリアレイに結合された少なくとも1つのデータ信号線と、
制御回路と、
前記制御回路に結合された、読出しクロック信号を受け取るための読出しクロック信号線と、
前記制御回路に結合されたフラグ信号線であって、メモリデバイスからのデータの出力タイミングを較正するためのフラグ信号を受け取るためのフラグ信号線と、
前記制御回路に結合された、コマンドを受け取るための少なくとも1つのコマンド信号線とを備え、
前記制御回路は、前記制御回路が前記フラグ信号を受け取ってから所定数の読出しクロックサイクル後に、前に受け入れたコマンドに関連するデータを前記メモリデバイスが前記アレイから前記少なくとも1つのデータ信号線上に出力開始し、前記メモリデバイスの読み出し待ち時間と等しくするために、前記読み出しクロックサイクルの数は信号伝播の特徴にしたがって予め定められていることを特徴とするメモリデバイス。
【請求項2】
前記前に受け入れたコマンドは読出しコマンドであることを特徴とする請求項1に記載のメモリデバイス。
【請求項3】
前記前に受け入れたコマンドは較正コマンドであることを特徴とする請求項1に記載のメモリデバイス。
【請求項4】
出力の前記データは較正パターンであることを特徴とする請求項3に記載のメモリデバイス。
【請求項5】
前記較正パターンは、異なる論理状態を有する連続する2つのビットを少なくとも含むことを特徴とする請求項4に記載のメモリデバイス。
【請求項6】
前記較正パターンは、第1ビットが2進数0にセットされ、後続のすべてのビットが2進数1にセットされていることを特徴とする請求項5に記載のメモリデバイス。
【請求項7】
前記較正パターンは、第1ビットが2進数1にセットされ、後続のすべてのビットが2進数0にセットされていることを特徴とする請求項5に記載のメモリデバイス。
【請求項8】
前記メモリデバイスは少なくとも1つの他のメモリデバイスと共に構成され、前記メモリデバイスおよび前記少なくとも1つの他のメモリデバイスそれぞれは、フラグ信号線同士が結合され、コマンド信号線同士が結合され、
各メモリデバイスは、該各メモリデバイスが読出しコマンドを受け取ってからそれぞれのフラグ信号線を介して前記フラグ信号を受け取ることを特徴とする請求項1に記載のメモリデバイス。
【請求項9】
前記メモリデバイスはメモリモジュール上で少なくとも1つの他のメモリデバイスと共に構成され、前記メモリデバイスおよび前記少なくとも1つの他のメモリデバイスそれぞれで、それらのフラグ信号線は前記メモリモジュール上に位置するフラグ生成論理に結合されたことを特徴とする請求項1に記載のメモリデバイス。
【請求項10】
複数のメモリデバイスを備え、
前記メモリデバイスはそれぞれさらに、
メモリアレイと、
前記メモリアレイに結合された少なくとも1つのデータ信号線と、
制御回路と、
前記制御回路に結合された、読出しクロック信号を受け取るための読出しクロック信号線と、
前記制御回路に結合されたフラグ信号線であって、前記メモリデバイスからのデータの出力タイミングを較正するためのフラグ信号を受け取るためのフラグ信号線と、
前記制御回路に結合された、読出しコマンドを受け取るための少なくとも1つのコマンド信号線とを備え、
前記制御回路は、前記制御回路が前記フラグ信号を受け取ってから所定数の読出しクロックサイクル後に、前に受け入れたコマンドに関連するデータを前記メモリデバイスが前記アレイから前記少なくとも1つのデータ信号線上に出力開始し、前記メモリデバイスの読み出し待ち時間と等しくするために、前記読み出しクロックサイクルの数は信号伝播の特徴にしたがって予め定められていることを特徴とするメモリモジュール。
【請求項11】
プロセッサと、
前記プロセッサに結合されたメモリコントローラと、
複数の第1のメモリデバイスを有する第1のメモリモジュールとを備え、
前記複数の第1のメモリデバイスは、
読出しクロック信号を受け取るための第1の読出しクロック信号線であって、第2のメモリモジュールのうちの複数の第2のメモリデバイスの読出しクロック信号線に結合された第1の読出しクロック信号線と、
コマンドを受け取るためのコマンド信号線と、
メモリデバイスからのデータの出力タイミングを較正するためのフラグ信号を受け取るためのフラグ信号線であって、前記複数の第1のメモリデバイスおよび前記複数の第2のメモリデバイスに結合されたフラグ信号線とを備え、
前記フラグ信号は、前記メモリコントローラによりフラグ信号を受け取ってから所定数の読出しクロックサイクル後に、前記コマンド信号線上で受け取った前に受け入れたコマンドに対応するデータを前記複数の第1のメモリデバイスおよび複数の第2のメモリデバイスが出力開始するようにすることを特徴とするコンピュータシステム。
【請求項12】
メモリコントローラと、読出しクロック信号源と、フラグ信号源とに結合されたメモリデバイスを動作させる方法であって、
前記メモリコントローラからコマンドを受け取るステップと、
前記フラグ信号源から前記メモリデバイスからのデータの出力タイミングを較正するためのフラグ信号を受け取るステップと、
前記読出しクロック信号源から読出しクロック信号を受け取るステップと、
前記フラグ信号を受け取ってから所定数の読出しクロックサイクル後に、前記コマンドに関連するデータを前記読出しクロック信号と同期させて出力開始し、前記メモリデバイスの読み出し待ち時間と等しくするために、前記読み出しクロックサイクルの数は信号伝播の特徴にしたがって予め定められているステップとを含むことを特徴とする方法。
【請求項13】
前記コマンドは読出しコマンドであることを特徴とする請求項12に記載の方法。
【請求項14】
前記コマンドは較正コマンドであることを特徴とする請求項12に記載の方法。
【請求項15】
前記データは較正パターンであることを特徴とする請求項14に記載の方法。
【請求項16】
前記較正パターンは、異なる論理状態を有する連続する2つのビットを少なくとも含むことを特徴とする請求項15に記載の方法。
【請求項17】
前記較正パターンは、第1ビットが2進数0にセットされ、後続のすべてのビットが2進数1にセットされていることを特徴とする請求項16に記載の方法。
【請求項18】
前記較正パターンは、第1ビットが2進数1にセットされ、後続のすべてのビットが2進数0にセットされていることを特徴とする請求項16に記載の方法。
【請求項19】
前記読出しクロック源はメモリコントローラであり、前記フラグ信号源は前記メモリコントローラであることを特徴とする請求項12に記載の方法。
【請求項20】
前記メモリデバイスはメモリモジュール上に位置し、前記フラグ信号源は前記メモリモジュール上に位置するフラグ生成論理であることを特徴とする請求項12に記載の方法。
【請求項21】
複数のメモリデバイスについての読出し待ち時間を制御する方法であって、
前記複数のメモリデバイスに順次、読出しクロック信号を提供するステップと、
前記メモリデバイスのうちの1つに読出しコマンドを発行するステップと、
前記読出しコマンドを発行してから第1の所定数の読出しクロック周期後に、前記1つのメモリデバイスに該メモリデバイスからのデータの出力タイミングを較正するためのフラグ信号を発行するステップと、
前記フラグ信号を前記メモリデバイスにおいて受け取ってから第2の所定数の読出しクロック周期後に、前記読出しコマンドに関連するデータを前記メモリデバイスから出力するステップとを含み、
前記メモリデバイスの読み出し待ち時間と等しくするために、前記読み出しクロックサイクルの数は信号伝播の特徴にしたがって予め定められていることを特徴とする方法。
【請求項22】
前記第1の所定数の読出しクロック周期と前記第2の所定数の読出しクロック周期を足した長さは、前記複数のメモリデバイスに対応する最低デバイス読出し待ち時間の最大値以上であることを特徴とする請求項21に記載の方法。
【請求項23】
前記第2の所定数の読出しクロックサイクル周期が4であることを特徴とする請求項21に記載の方法。
【請求項24】
プロセッサと、
前記プロセッサに結合されたメモリコントローラと、
前記メモリコントローラに結合された少なくとも1つのメモリモジュールとを備えるコンピュータシステムであって、
前記少なくとも1つのメモリモジュールはそれぞれ少なくとも1組のメモリデバイスを含み、前記少なくとも1組のメモリデバイスはそれぞれさらに、
フラグ生成論理と、
複数のメモリデバイスとを備え、前記メモリデバイスはそれぞれ、
読出しクロック信号を受け取るための読出しクロック信号線であって、前記少なくとも1つのメモリモジュールのうちの他のメモリモジュール上の対応する他のメモリデバイスの読出しクロック信号線に結合された読出しクロック信号線と、
コマンドを受け取るための少なくとも1つのコマンド信号線と、
モリアレイに結合された少なくとも1つのデータ信号線と、
前記フラグ生成論理に結合されたフラグ信号線であって、メモリデバイスからのデータの出力タイミングを較正するためのフラグ信号を受け取るためのフラグ信号線とを備え、
前記フラグ信号は、前記フラグ信号を受け取ってから所定数の読出しクロックサイクル後に、前記コマンド信号線上で受け取った前に受け入れたコマンドに対応するデータを前記メモリデバイスに前記データ信号線上に出力させ、
前記少なくとも1つのメモリモジュールはそれぞれさらに、前記複数のフラグ信号をいつ生成するかを決定するために前記フラグ生成論理によって使用される提案遅延を記憶した構成メモリを備えることを特徴とするコンピュータシステム。
【請求項25】
メモリアレイと、
制御回路と、
読出しクロック信号を受け取るために前記制御回路に第1の端子で結合され、前記読み出しクロック信号を前記制御回路に返すために第2の端子で結合された読出しクロック信号線と、
メモリデバイスからのデータの出力タイミングを較正するためのフラグ信号を受け取るために前記制御回路に第3の端子で結合され、前記フラグ信号を前制御回路に返すために第4の端子で結合され、前記フラグ信号線および前記読み出しクロック信号線は同等の信号伝播時間を有するように経路化されるフラグ信号線と
を備えたことを特徴とするメモリデバイス。
【請求項26】
前記制御回路は前記第4の端子で前記フラグ信号を受け取った後、予め定められた遅延時間で前記メモリアレイから較正信号を受け取るように構成されていることを特徴とする請求項25に記載のメモリデバイス。
【請求項27】
メモリデバイスを動作させる方法であって、
前記メモリデバイスの制御入力で読み出しコマンドを受け取るステップと、
メモリデバイスからのデータの出力タイミングを較正するためのフラグ信号であって、メモリコントローラのフラグ出力から特定の電気的な距離をおいて到達するフラグ信号を受け取るステップと、
前記フラグ信号を受け取った後、出力時期まで予め定めた時間、待機するステップと、
前記出力時期に前記メモリデバイスからデータ値を出力ステップと
を具えたことを特徴とする方法。
【請求項28】
前記フラグ信号を受け取った後、出力時期まで前記予め定めた時間、待機するステップは、
フリーランニングのクロック信号であって、前記メモリデバイスで受け取るクロック信号を予め定めたクロックサイクル数だけ計数するステップと、
前記予め定めたクロックサイクル数の後、前記メモリデバイスの読み出しデータパスを活性化するステップと
を有することを特徴とする請求項27に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2007−299522(P2007−299522A)
【公開日】平成19年11月15日(2007.11.15)
【国際特許分類】
【出願番号】特願2007−174529(P2007−174529)
【出願日】平成19年7月2日(2007.7.2)
【分割の表示】特願2002−568374(P2002−568374)の分割
【原出願日】平成14年2月1日(2002.2.1)
【出願人】(500014068)マイクロン テクノロジー,インコーポレイテッド (69)
【氏名又は名称原語表記】MICRON TECHNOLOGY, INC.
【Fターム(参考)】