(57)【特許請求の範囲】
【請求項１】
メモリ装置の予め定めたテストデータパターンの実受信タイムと予め定めたテストデータパターンの予測受信タイムとの差を測定する回路において、
複数のロケーションを有し、前記予め定めたテストデータパターンの少なくとも一部を受信し格納するレジスタと、
前記レジスタに結合したエンコーダであって、前記複数のロケーションの少なくとも一部に格納されたデータを受信し、前記受信したデータをエンコードし、前記予め定めたテストデータパターンの前記実受信タイムと前記予め定めたテストデータパターンの前記予測受信タイムとの前記差を表す信号を出力するエンコーダと
を備えたことを特徴とする回路。
【請求項２】
請求項１において、前記レジスタは、１６個のロケーションを有することを特徴とする回路。
【請求項３】
請求項２において、前記複数のロケーションの少なくとも一部は、８個のロケーションを備えたことを特徴とする回路。
【請求項４】
請求項３において、前記８個のロケーションは、前記レジスタの偶数番のロケーションであることを特徴とする回路。
【請求項５】
請求項３において、前記８個のロケーションは、前記レジスタの奇数番のロケーションであることを特徴とする回路。
【請求項６】
請求項３において、前記エンコーダは、前記８個のロケーションに格納されたデータを１つの数値に符号化し、
前記数値は、前記予め定めたテストデータパターンの第１ビットが格納された前記複数のロケーションのうちの１つのロケーションを表し、
前記予め定めたテストデータパターンの前記第１ビットが格納された前記ロケーションは、クロック信号に関する前記予め定めたテストデータパターンの前記実受信タイムと前記予め定めたテストデータパターンの前記予測受信タイムとの差を表す
ことを特徴とする回路。
【請求項７】
請求項６において、前記数値は、２進数であることを特徴とする回路。
【請求項８】
請求項６において、前記エンコーダに結合したラッチであって、前記数値を受信し格納するラッチをさらに備えたことを特徴とする回路。
【請求項９】
請求項１において、前記予め定めたテストデータパターンは、１６ビット長であることを特徴とする回路。
【請求項１０】
請求項９において、前記予め定めたテストデータパターンは、第１の値を有する第１ビットと、第２の値を有する残りの全ビットとを備えたことを特徴とする回路。
【請求項１１】
請求項１において、前記予め定めたテストデータパターンの前記実受信タイムと前記予め定めたテストデータパターンの前記予測受信タイムとの差は、クロック信号のサイクルによって測定されることを特徴とする回路。
【請求項１２】
入力データのキャプチャ開始タイムを前記入力データの実際の受信にアライメントするための装置であって、
前記入力データの実到着タイムと前記入力データの予測到着タイムとの時間差を決定する第１の回路であって、複数のロケーションを有し、予め定めたテストデータパターンの一部を受信し格納するレジスタと、前記レジスタに結合したエンコーダであって、前記複数のロケーションの一部に格納されたデータを受信し、前記受信したデータをエンコードし、前記予め定めたテストデータパターンの実到着タイムと前記予め定めたテストデータパターンの予測到着タイムとの差を表す信号を出力するエンコーダとを含む第１の回路と、
前記第１の回路に結合した遅延回路であって、前記信号に応答して、前記入力データの前記実到着タイムと前記入力データの前記予測到着タイムとの前記決定された差に基づいて、前記入力データの前記キャプチャ開始タイムを遅延させる遅延回路と
を備えたことを特徴とする装置。
【請求項１３】
請求項１２において、前記エンコーダは、前記複数のロケーションの前記少なくとも一部に格納されたデータを１つの数値に符号化し、前記数値は、前記予め定めたテストデータパターンの第１ビットが格納された前記複数のロケーション中の１つのロケーションを表し、前記予め定めたテストデータパターンの前記第１ビットが格納された前記ロケーションは、前記予め定めたテストデータパターンの前記実到着タイムと前記予め定めたテストデータパターンの前記予測到着タイムとの差を表すことを特徴とする装置。
【請求項１４】
請求項１２において、前記エンコーダに結合したラッチであって、前記数値を受信し格納するラッチをさらに備えたことを特徴とする装置。
【請求項１５】
請求項１４において、前記遅延回路は、
前記ラッチに結合したカウンタであって、前記数値を受信し、前記数値をカウント開始点として使用する少なくとも１つのカウンタと、
前記少なくとも１つのカウンタに結合した検出回路であって、前記少なくとも１つのカウンタが、前記カウント中に、予め定めた数値に達した時、そのことを判別し、前記予め定めた数値に達した時に前記入力データの前記キャプチャを開始させる出力信号を供給する検出回路と
をさらに備えたことを特徴とする装置。
【請求項１６】
請求項１５において、前記少なくとも１つのカウンタは、前記ラッチに結合された第１および第２のカウンタを含み、前記第１のカウンタは、前記数値を受信し、前記第２のカウンタとは独立にカウントを行うことを特徴とする装置。
【請求項１７】
請求項１５において、前記少なくとも１つのカウンタは、減算カウンタであり、前記予め定めた数値は、０であることを特徴とする装置。
【請求項１８】
請求項１７において、前記検出回路は、少なくとも１つのゼロ検出回路を備えたことを特徴とする装置。
【請求項１９】
請求項１８において、前記検出回路は、前記少なくとも１つのゼロ検出回路それぞれの出力に結合された少なくとも１つのＯＲゲートを備えたことを特徴とする装置。
【請求項２０】
請求項１５において、前記少なくとも１つのカウンタは、前記少なくとも１つのカウンタをリセットするための少なくとも１つのリセット信号をそれぞれ受信する少なくとも１つのリセット入力を備えたことを特徴とする装置。
【請求項２１】
請求項１５において、前記検出回路からの前記出力信号を受信するように結合された第１の入力と、前記入力データを受信するように結合された第２の入力とを有するデシリアライザをさらに含み、前記検出回路からの前記出力信号が受信されるまで前記入力データのキャプチャが遅延されることを特徴とする装置。
【請求項２２】
テストデータパターンのメモリ装置への実到着タイムと前記テストデータパターンの予測到着タイムとの時間差であって、クロック信号のサイクルによって測定される時間差を測定する第１の回路であって、複数のロケーションを有し、テストデータパターンの一部を受信し格納するレジスタと、前記レジスタに結合したエンコーダであって、前記複数のロケーションの一部に格納されたデータを受信し、前記受信したデータをエンコードし、前記メモリ装置へのテストデータパターンの前記実到着タイムと前記テストデータパターンの前記予測到着タイムとの差を表す信号を出力するエンコーダとを含む第１の回路と、
前記第１の回路に結合した遅延回路であって、前記信号に応答して、前記測定された差に基づいて、前記メモリ装置への入力データのキャプチャ開始タイムを遅延させ、前記入力データの前記キャプチャ開始タイムを前記メモリ装置への前記入力データの実到着タイムにアライメントする遅延回路と
を備えたことを特徴とするメモリ装置。
【請求項２３】
請求項２２において、前記レジスタは、１６個のロケーションを有することを特徴とするメモリ装置。
【請求項２４】
請求項２３において、前記複数のロケーションの少なくとも一部は、８個のロケーションを備えたことを特徴とするメモリ装置。
【請求項２５】
請求項２４において、前記８個のロケーションは、前記レジスタの偶数番のロケーションであることを特徴とするメモリ装置。
【請求項２６】
請求項２４において、前記８個のロケーションは、前記レジスタの奇数番のロケーションであることを特徴とするメモリ装置。
【請求項２７】
請求項２４において、前記エンコーダは、前記８個のロケーションに格納されたデータを１つの数値に符号化し、
前記数値は、前記テストデータパターンの第１ビットが格納された前記複数のロケーション中の１つのロケーションを表し、
前記テストデータパターンの前記第１ビットが格納された前記ロケーションは、前記メモリ装置へのテストデータパターンの前記実到着タイムと前記テストデータパターンの前記予測到着タイムとの差を著す
ことを特徴とするメモリ装置。
【請求項２８】
請求項２７において、前記数値は、２進数であることを特徴とするメモリ装置。
【請求項２９】
請求項２７において、前記エンコーダに結合したラッチであって、前記数値を受信し格納するラッチをさらに備えたことを特徴とするメモリ装置。
【請求項３０】
請求項２９において、前記遅延回路は、
前記ラッチに結合したラッチであって、前記数値を受信し、前記数値をカウント開始点として使用する少なくとも１つのカウンタと、
前記少なくとも１つのカウンタに結合した検出回路であって、前記少なくとも１つのカウンタが、前記カウント中に、何時、予め定めた数値に達したかを判断する検出回路であり、前記予め定めた数値に達した時に前記入力データの前記キャプチャを開始させる出力信号を供給する検出回路と
をさらに備えたことを特徴とするメモリ装置。
【請求項３１】
請求項３０において、前記少なくとも１つのカウンタは、前記ラッチに結合した第１および第２のカウンタを含み、
前記第１のカウンタは、前記数値を受信し、前記第２のカウンタとは独立にカウントを行う
ことを特徴とするメモリ装置。
【請求項３２】
請求項３０において、前記少なくとも１つのカウンタは、減算カウンタであり、前記予め定めた数値は、０であることを特徴とするメモリ装置。
【請求項３３】
請求項３２において、前記検出回路は、少なくとも１つのゼロ検出回路を備えたことを特徴とするメモリ装置。
【請求項３４】
請求項３３において、前記検出回路は、前記少なくとも１つのゼロ検出回路それぞれの出力に結合された少なくとも１つのＯＲゲートを備えたことを特徴とするメモリ装置。
【請求項３５】
請求項３０において、前記少なくとも１つのカウンタは、前記少なくとも１つのカウンタをリセットするための少なくとも１つのリセット信号をそれぞれ受信するための少なくとも１つのリセット入力端子を備えたことを特徴とするメモリ装置。
【請求項３６】
請求項３０において、前記検出回路からの前記出力信号を受信するように結合した第１の入力端子と、前記入力データを受信するように結合した第２の入力端子とを有するデシリアライザをさらに含み、前記検出回路からの前記出力信号が受信されるまで前記入力データのキャプチャが遅延されることを特徴とするメモリ装置。
【請求項３７】
請求項２２において、前記テストデータパターンは、１６ビット長であることを特徴とするメモリ装置。
【請求項３８】
請求項３７において、前記テストデータパターンは、第１の値を有する第１ビットと第２の値を有する残りの全ビットとを備えたことを特徴とするメモリ装置。
【請求項３９】
プロセッサユニットと、前記プロセッサユニットに接続したメモリ装置とを含むプロセッサシステムであって、
前記メモリ装置は、
前記メモリ装置へのテストデータパターンの実到着タイムと前記テストデータパターンの予測到着タイムとの差を測定する第１の回路であって、複数のロケーションを有し、テストデータパターンの一部を受信し格納するレジスタと、前記レジスタに結合したエンコーダであって、前記複数のロケーションの一部に格納されたデータを受信し、前記受信したデータをエンコードし、前記メモリ装置へのテストデータパターンの前記実到着タイムと前記テストデータパターンの前記予測到着タイムとの差を表す信号を出力するエンコーダとを含む第１の回路と、
前記第１の回路に結合した遅延回路であって、前記信号に応答して、前記測定された差に基づいて、前記メモリ装置への入力データのキャプチャ開始タイムを遅延させ、前記入力データの前記キャプチャ開始タイムを前記メモリ装置への前記入力データの実到着タイムにアライメントさせる遅延回路と
を備えたことを特徴とするプロセッサシステム。
【請求項４０】
請求項３９において、前記レジスタは、１６個のロケーションを有することを特徴とするプロセッサシステム。
【請求項４１】
請求項４０において、前記複数のロケーションの前記一部は、８個のロケーションを備えたことを特徴とするプロセッサシステム。
【請求項４２】
請求項４１において、前記８個のロケーションは、前記レジスタの偶数番のロケーションであることを特徴とするプロセッサシステム。
【請求項４３】
請求項４１において、前記８個のロケーションは、前記レジスタの奇数番のロケーションであることを特徴とするプロセッサシステム。
【請求項４４】
請求項４１において、前記エンコーダは、前記８個のロケーションに格納されたデータを１つの数値に符号化し、前記数値は、前記テストデータパターンの第１ビットが格納された前記複数のロケーション中の１つのロケーションを表し、前記テストデータパターンの前記第１ビットが格納された前記ロケーションは、前記メモリ装置へのテストデータパターンの前記実到着タイムと前記テストデータパターンの前記予測到着タイムとの差を表すことを特徴とするプロセッサシステム。
【請求項４５】
請求項４４において、前記数値は、２進数であることを特徴とするプロセッサシステム。
【請求項４６】
請求項４４において、前記エンコーダに結合され、前記数値を受信し格納するラッチをさらに備えたことを特徴とするプロセッサシステム。
【請求項４７】
請求項４６において、前記遅延回路は、
前記ラッチに結合され、前記数値を受信し、前記数値をカウント開始点として使用する少なくとも１つのカウンタと、
前記少なくとも１つのカウンタに結合した検出回路であって、前記少なくとも１つのカウンタが前記カウント中に予め定めた数値に何時達したかを判断し、前記予め定めた数値に達した時に前記入力データのキャプチャを開始させる出力信号を供給する検出回路と
をさらに備えたことを特徴とするプロセッサシステム。
【請求項４８】
請求項４７において、前記少なくとも１つのカウンタは、前記ラッチに結合された第１および第２のカウンタを含み、前記第１のカウンタは、前記数値を受信し、前記第２のカウンタとは独立にカウントを行うことを特徴とするプロセッサシステム。
【請求項４９】
請求項４７において、前記少なくとも１つのカウンタは、減算カウンタであり、前記予め定めた数値は、０であることを特徴とするプロセッサシステム。
【請求項５０】
請求項４９において、前記検出回路は、少なくとも１つのゼロ検出回路を備えたことを特徴とするプロセッサシステム。
【請求項５１】
請求項５０において、前記検出回路は、前記少なくとも１つのゼロ検出回路それぞれの出力に結合された少なくとも１つのＯＲゲートを備えたことを特徴とするプロセッサシステム。
【請求項５２】
請求項４７において、前記少なくとも１つのカウンタは、前記少なくとも１つのカウンタをリセットするための少なくとも１つのリセット信号をそれぞれ受信する少なくとも１つのリセット入力を備えたことを特徴とするプロセッサシステム。
【請求項５３】
請求項４７において、前記メモリ装置は、
前記検出回路からの前記出力信号を受信するように結合した第１の入力端子と、前記入力データを受信するように結合された第２の入力端子とを有するデシリアライザをさらに含み、前記検出回路からの前記出力信号が受信されるまで前記入力データのキャプチャが遅延されることを特徴とするプロセッサシステム。
【請求項５４】
請求項３９において、前記プロセッサユニットと前記メモリ装置とは、同一集積回路チップ上にあることを特徴とするプロセッサシステム。
【請求項５５】
入力データのキャプチャ開始タイムを前記入力データの実際の受信にアライメントする方法であって、
前記メモリ装置によるテストデータパターンの実受信タイムと前記メモリ装置による前記テストデータパターンの予測受信タイムとの差を回路により測定するステップと、
前記入力データを前記メモリ装置にライトするためのライトコマンドを受信するステップと、
前記測定された差に基づいて前記入力データのキャプチャ開始タイムを遅延させて、前記キャプチャ開始タイムを前記入力データの受信にアライメントさせるステップと、
を備え、
前記回路は、
複数のロケーションを有し、前記テストデータパターンの少なくとも一部を受信し格納するレジスタと、
前記レジスタに結合したエンコーダであって、前記複数のロケーションの少なくとも一部に格納されたデータを受信し、前記受信したデータをエンコードし、前記テストデータパターンの前記実受信タイムと前記テストデータパターンの前記予測受信タイムとの前記差を表す信号を出力するエンコーダと、
を含む、
ことを特徴とする方法。
【請求項５６】
請求項５５において、前記測定するステップは、
前記テストデータパターンをメモリコントローラから受信するステップと、
前記テストデータパターンの実受信タイムを前記テストデータパターンの予測受信タイムと比較するステップと
をさらに備えたことを特徴とする方法。
【請求項５７】
請求項５６において、前記比較するステップは、
複数のロケーションを有するレジスタに前記テストデータパターンを格納するステップと、
前記テストデータパターンの第１ビットを格納する前記複数のロケーション中の１つのロケーションであって、前記テストデータパターンの前記実受信タイムと前記テストデータパターンの前記予測受信タイムとのクロック信号による差を表すロケーションを決定するステップと
をさらに備えたことを特徴とする方法。
【請求項５８】
請求項５７において、前記決定ステップは、
前記ロケーションに基づいて値を決定するステップと、
前記値を格納するステップと
をさらに備えたことを特徴とする方法。
【請求項５９】
請求項５８において、前記遅延ステップは、
前記決定された値を開始値に使用して予め定めた値をカウントするステップと、
前記予め定めた値に何時達したかを検出するステップと、
前記予め定めた値に達した時に前記入力データのキャプチャを開始させる信号を供給するステップと
をさらに備えたことを特徴とする方法。
【請求項６０】
請求項５９において、前記予め定めた値は０であり、
前記カウントステップは、前記決定された値から０に向かってカウントダウンするステップをさらに備えた
ことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、高速同期メモリシステム（high speed synchronous memory system）に関し、より詳細には、メモリ装置の実ライトレイテンシー（actual write latency）を測定し、データキャプチャの開始をデータのメモリ装置への到着に正確にアライメントする方法および装置に関する。
【背景技術】
【０００２】
一般的なコンピュータシステムにおいて、プロセッサとメモリ装置とのインタフェースは、その機能が、バスを介して、典型的にはメモリコントローラによってパフォームされる。コントローラがメモリ装置に対してＲＥＡＤ要求を行うと、このメモリ装置からの応答は、ＲＥＡＤ「レイテンシー」という遅延時間の後に、このバスからリードすることができる。仮にコントローラがメモリ装置に対してＷＲＩＴＥ要求を行った場合には、メモリシステム内のメモリ装置は、データをこのバスから受信することができ、しかも、格納するためのデータのキャプチャを、あるＷＲＩＴＥ「レイテンシー」の後に開始することができる。
【０００３】
レイテンシーの長さは、装置のタイプによって変化する。レイテンシーの長さは、要求のタイプによっても変化する。例えば、メモリ装置は、リード要求に応答するのに、１０〜１５ナノ秒を必要とし、ＷＲＩＴＥ要求に応答するのに、わずか５〜１０ナノ秒しか必要としないかもしれない。
【０００４】
メモリコントローラは、典型的には、メモリ要求を発行するのに先立って、指定されたレイテンシーであって、要求タイプと装置タイプとのレイテンシーの値を格納する。そこで、当該コントローラは、要求を発行するとき、データを供給するか、データを受け取るまで、待機しなければならない時間の長さを測定することができる。
【０００５】
図１は例示的なコンピュータシステムを示す。このコンピュータシステムには、プロセッサ５０と、メモリサブシステム１０と、拡張バスコントローラ５２とが含まれている。メモリサブシステム１０と拡張バスコントローラ５２は、ローカルバス５４を介してプロセッサ５０に結合されている。拡張バスコントローラ５２は、少なくとも１つの拡張バス５６にも結合され、拡張バス５６には、種々の周辺装置５７〜５９、例えば、大容量ストレージ装置と、キーボードと、マウスと、グラフィックアダプタと、マルチメディアアダプタを接続することができる。
【０００６】
メモリサブシステム１０には、メモリコントローラ４０が含まれ、メモリコントローラ４０は、複数の信号線４１ａ〜４１ｄ、４２、４３、４４、４５ａ〜４５ｄ、４６ａ〜４６ｄを介して、複数のメモリモジュール３０、３２に結合されている。複数のデータ信号線４１ａ〜４１ｄは、メモリコントローラ４０とメモリモジュール３０、３２とによりデータＤＡＴＡを交換するため使用される。アドレス（ＡＤＤＲ）は、複数のＡＤＤＲ信号線４３を介してシグナルされ、コマンド（ＣＭＤ）は、複数のＣＭＤ信号線４２を介してシグナルされる。メモリモジュール３０、３２には、それぞれ、メモリ装置１１〜１４、１５〜１８と、レジスタ２１、２２とが含まれる。各メモリ装置１１〜１８はハイスピード同期メモリ装置である。図１には、２つのメモリモジュール３０、３２と、これらに関連する信号線４１ａ〜４１ｄ、４２、４３、４４、４５ａ〜４５ｄ、４６ａ〜４６ｄとのみを、示したが、任意の数のメモリモジュールを使用できる、ことに留意されたい。加えて、各メモリモジュールに対して、わずか４つのメモリ装置を図示してあるが、各メモリモジュールに設けることができるメモリ装置の数は増減することができる。
【０００７】
メモリモジュール３０、３２をメモリコントローラ４０に結合する複数の信号線４１ａ〜４１ｄ、４２、４３、４４、４５ａ〜４５ｄ、４６ａ〜４６ｄは、メモリバス１５として周知のものである。メモリバス１５は、当技術分野で周知の信号線、例えば、チップ選択線（図を簡単にするため図示せず）を含むことができる。メモリバス１５全体において、メモリ装置の各列１１〜１４、１５〜１８は、メモリのランク（rank of memory）として知られている。シングルサイドメモリモジュール（single side memory module）、例えば図１に示すようなＳＩＭＭ（Single Sided In-Line Memory Module）は、典型的には、メモリランクを１つ含む。しかし、ダブルサイドメモリモジュール（double sided memory module）、例えばメモリランクを２つ含むＤＩＭＭ（Dual In-Line Memory Module）を採用することもできる。
【０００８】
複数の信号線４１ａ〜４１ｄにより、メモリ装置１１〜１８がメモリコントローラ４０に結合されている。リードデータは、ＲＣＬＫ（read clock）信号にシリアル同期した出力であり、ＲＣＬＫ信号は、複数のＲＣＬＫ信号線４５ａ〜４５ｄのすべてに送出される。ＲＣＬＫ信号は、リードクロックジェネレータ４１によって生成され、メモリモジュール３０、３２のメモリ装置１１〜１８とメモリコントローラ４０に適用される。
【０００９】
説明上、リードクロックジェネレータ４１は、メモリモジュール３０、３２から分離して図示してあるが、メモリ装置１１〜１８内に設けることができ、ＲＣＬＫ信号は、メモリ装置に供給される他のクロック信号から取り出すことができる。
【００１０】
ライトデータは、ＷＣＬＫ信号にシリアル同期した入力であり、メモリコントローラ４０によって、ＷＣＬＫ信号が複数のＷＣＬＫ信号線４６ａ〜４６ｄに送出される。ＣＭＤおよびＡＤＤＲは、メモリコントローラ４０によってメモリモジュール３０、３２のレジスタ２１、２２とターミネータ４８に送出されるＣＣＬＫ（command clock）信号を用いてクロックされる。ＣＭＤ、ＡＤＤＲ、およびＣＣＬＫ信号線４２〜４４は、メモリモジュール３０、３２のレジスタ２１、２２に直接結合されている。レジスタ２１、２２は、これらの信号をメモリモジュール３０、３２のメモリ装置１１〜１８に分配する前に、これらの信号をバッファリングする。そこで、メモリサブシステム１０は、３つのクロックドメイン（clock domain）、すなわち、ＲＣＬＫ信号が支配するＲＣＬＫドメインと、ＷＣＬＫ信号が支配するＷＣＬＫドメインと、ＣＣＬＫ信号が支配するＣＣＬＫドメインとの下で、オペレートする。２クロックドメイン方式においては、第３のクロックドメインであるＣＣＬＫドメインが存在しないから、ＷＣＬＫ信号が、ライトデータキャプチャおよびコマンド／アドレスキャプチャの２つの目的をサーブする。
【００１１】
メモリ装置１１〜１８がリードコマンドを受け取ると、当該リードコマンドに関連付けされたデータは、ＣＣＬＫによって決定されたある時間が経過して初めて、メモリバス１５に出力される。この時間は、装置リードレイテンシー（device read latency）ＣＬとして知られている。メモリ装置１１〜１８は、しばしば、（装置によって異なる）最小装置リードレイテンシーから最大装置リードレイテンシーまでの間の複数の装置リードレイテンシーのどれか１つでオペレートするようにプログラムすることができる。
【００１２】
そこで、各装置のリードレイテンシーＣＬは、上述した３クロックドメイン方式の場合には、ＣＣＬＫを基準にして測定され、上述した２クロックドメイン方式の場合には、２クロックドメイン方式にあってはＷＣＬＫがライトデータキャプチャおよびコマンド／アドレスキャプチャの２つの目的をサーブするので、ＷＣＬＫを基準にして測定される。２クロックドメイン方式の現在の仕様においては、ＣＬ−１、すなわち、リードレイテンシーより１クロックサイクルだけ短いライトレイテンシーと、ＣＬ−２、すなわち、リードレイテンシーより２クロックサイクルだけ短いライトレイテンシーとが必要になる。しかし、ＲＣＬＫ信号ＲＣＬＫは、典型的には、システムの出力モデルを有する遅延ロックループ回路（delay locked-loop circuit）によって補償されるので、ＷＣＬＫを基準にして測定した真のリードレイテンシーは分らない。そこで、リードレイテンシーとの関係でライトレイテンシーを指定することによっては、ＷＣＬＫを基準にして測定したデータの装置への到着を正確に予測することはできない。
【００１３】
加えて、各装置のライトレイテンシーは、メモリコントローラ４０から見えるライトレイテンシーの一部にすぎない。システムレイテンシー（system latency）として知られる、メモリコントローラから見えるこの全レイテンシーは、装置ライトレイテンシーと、メモリ装置１１〜１８とメモリコントローラ４０との間の信号伝播時間の結果生じるレイテンシーとの総和である。メモリ装置１１〜１８とメモリコントローラ４０との間の信号伝播が同一であれば、信号伝播時間によって生じるレイテンシーは、一定であって、各メモリ装置１１〜１８に等しい影響を及ぼす。しかし、図１に示すように、ＣＭＤと、ＡＤＤＲと、ＣＣＬＫとは、メモリ装置１１〜１８に分配する前に、最初にレジスタ２１、２２に転送される。メモリモジュール３０、３２上の各メモリ装置１１〜１４、１５〜１８は、レジスタ２１、２２から異なる距離に配置されている。そこで、各メモリ装置１１〜１４は、メモリコントローラ４０によって発行されたコマンドおよび／またはデータを、異なる時間に受信することになる。加えて、メモリコントローラ４０と２つのメモリモジュール３０、３２のレジスタ２１、２２との間の距離も異なる。（メモリモジュール３０上の）レジスタ２１は、メモリコントローラ４０により近いので、（メモリモジュール３２上の）レジスタ２２よりも時間的に先に、ＣＭＤと、ＡＤＤＲと、ＣＣＬＫを受信することになる。そこで、ＣＭＤと、ＡＤＤＲと、ＣＣＬＫ信号とのメモリコントローラまでの信号パスの長さが異なるから、メモリサブシステム１０の各メモリ装置１１〜１８は、このメモリコントローラによって発行されたＣＭＤおよび／またはデータを、種々のタイミングで受信することになる。
【００１４】
各メモリ装置１１〜１８の最小装置レイテンシーが異なり、ＣＭＤと、ＡＤＤＲと、ＣＣＬＫ信号との伝播が異なるから、各メモリ装置１１〜１８のシステムレイテンシーが異なることがある。このため、ＷＣＬＫを基準としていつデータが特定のメモリ装置１１〜１８に到着するかを、離散的なクロックサイクルの精度で正確に予測することが妨げられる。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
そこで、実ライトレイテンシー、すなわち、データがメモリ装置に到着するタイミングを、ＷＣＬＫを基準にして正確に測定し、データキャプチャの開始を、ＷＲＩＴＥコマンドに関連付けされているデータの到着に、アライメントする方法および装置に対するニーズがある。
【課題を解決するための手段】
【００１６】
本発明は、データがメモリ装置に到着するタイミングを正確に測定し、データキャプチャの開始を、ライトコマンドに関連付けされているデータの到着に、アライメントする方法および装置を供給する。
【００１７】
本発明によれば、メモリ装置の入力への正確なデータ到着タイムが、キャリブレーション期間中に、バックツーバックライトコマンド（back-to-back write command）を予め定めたデータパターンと共にメモリ装置に送出することによって決定される。データパターンはレジスタに格納され、データの予測到着タイムとデータの実到着タイムとの差が、ロジック回路によって決定される。次に、カウンタを利用してメモリ装置へのデータキャプチャの開始をライトコマンドの受信よりも遅らせることによって、決定された差を補償し、これによって、データキャプチャの開始とメモリ装置へのデータ到着とを正確にアライメントする。
【００１８】
本発明の上記およびその他の利点および特徴は、添付の図面と共に提供される、以下の詳細な説明からより容易に明らかとなるであろう。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施形態であって図２〜図５に示す例示的な実施形態を説明する。他の実施形態も利用することができ、本発明の主旨および範囲から逸脱しない限り、構造の変更又は論理の変更を行うことができる。同様の要素には同様の参照番号を付してある。
【００２０】
本発明によれば、メモリ装置の入力端子に到着するデータの実到着タイムを測定し、当該メモリ装置からデータをキャプチャする開始タイムを遅延させることによって、予測到着タイムと実到着タイムとの測定された差を補償し、それによって、データのキャプチャ開始とデータのメモリへの到着とを正確にアライメントすることができる。
【００２１】
図２は、本発明によって、実データ到着タイムを測定し、データキャプチャの開始をメモリ装置へのデータ到着にアライメントする回路１００を示す。回路１００は、図１の各メモリ装置１１〜１８内に設けられることになる。
【００２２】
図２には、ただ１つの回路１００しか図示していないが、マルチビットデータバスである複数のデータパスを使用するデータキャプチャを支援するため、各メモリ装置１１〜１８において、複数の回路１００を使用することができる、ことは当然のことである。あるいはまた、集積回路チップの面積を節約するため、回路１００のある部分を各メモリ装置１１〜１８で重複させ、回路１００の別のある部分を複数のデータパスで共用することもできる。
【００２３】
回路１００には、メモリコントローラ４０から到着するデータの実到着タイムを測定するのに使用されるレジスタ１０２が含まれる。レジスタ１０２は、図２に示すが、１６ビットレジスタである。メモリコントローラ４０は、ＣＭＤ信号を、ＣＭＤ線４２を介して、ＤＲＡＭ１１〜１８のうちの１つまたは複数のＤＲＡＭに送出し、ＤＲＡＭ１１〜１８に、キャリブレーション（トレーニング）モードに入るように指示する。ついで、コントローラ４０は、キャリブレーションモードのＤＲＡＭ１１〜１８に、バックツーバックＷＲＩＴＥコマンドを送出する。ついで、コントローラ４０は、バックツーバックＷＲＩＴＥコマンドに関連付けをしたデータを、要求タイプおよび装置タイプ、例えば、上述したようなＣＬ−１やＣＬ−２ごとに指定されるＷＲＩＴＥ遅延時間が経過した後に送出し、ＤＲＡＭ１１〜１８は、ＷＲＩＴＥコマンドによる要求に従って、入力端子パッド１２０およびデータキャプチャラッチ１２２から、データのキャプチャを開始する。
【００２４】
しかし、先に指摘したように、ＤＲＡＭ１１〜１８に到着するデータの実到着タイムを正確に予測することはできないから、ＤＲＡＭ１１〜１８によるデータキャプチャを、データ到着と同時に開始することができない。ＤＲＡＭ１１〜１８によるデータキャプチャの開始タイムと、ＷＲＩＴＥコマンドに関連付けをしたデータの受信との差を、本発明に従って測定するため、バックツーバックＷＲＩＴＥコマンドに関連付けをしたデータを、予め定めたトレーニングデータパターンとする。好ましくは、トレーニングデータは８ビットワードのペア、すなわち、１６ビットからなり、これら１６ビットの第１ビットが「０」であるが、後続するビットはすべて「１」である。ＤＲＡＭ１１〜１８に対して指定されるライトレイテンシーの最大値は、典型的には、８クロックサイクルが上限であり、そこで、以下で詳しく説明するが、２バイトのトレーニングデータパターンが必要となるため、ＤＲＡＭ１１〜１８に実際にデータが到着した時間を測定するためのビットをより多く供給するより、データワードのペアを使用するほうが好ましい、ことに留意されたい。
【００２５】
コントローラ４０からのトレーニングデータは、入力端子パッド１２０に到着し、データキャプチャラッチ１２２にラッチされる。このトレーニングデータは、デシリアライザ１２４と、×８レジスタ１２６、１２８とを通過し、レジスタ１０２に格納される。ＤＲＡＭ１１〜１８（例えば、データキャプチャラッチ１２２と、デシリアライザ１２４）でのデータキャプチャの開始とトレーニングデータの到着とが正確にアライメントした場合、トレーニングデータの第１ビット、すなわち、値が「０」であるビットが、図３Ａに示すように、レジスタ１０２の第１ロケーション、すなわち、ロケーション０ａに格納される。したがって、データキャプチャの開始とデータの到着とは正確にアライメントし、よって、データキャプチャの開始を調整する必要はない。
【００２６】
しかし、仮に、データキャプチャの開始とトレーニングデータの到着とが正確にアライメントしていない場合には、第１データビット、すなわち、値が「０」であるビットは、レジスタ１０２の第１ロケーションには格納されず、後続するロケーションに格納される。データは、クロック信号ＷＣＬＫの立ち上がりと、立ち下りとにそれぞれ同期して送出され、データキャプチャはクロック信号の立ち上がりでのみ開始される、ことは当然のことである。そこで、トレーニングデータの第１データビットは、クロック信号の立ち上がりに対応するロケーションにのみ格納される。すなわち、データの第１ビットは、レジスタ１０２の偶数番のロケーション、すなわち、ロケーション０ａ、２ａ、４ａ、６ａ、０ｂ、２ｂ、４ｂ、６ｂにのみ格納される。
【００２７】
例えば、仮にデータが、指定されたライトレイテンシーより１クロックサイクル遅れて到着した場合には、第１データビットは、図３Ｂに示すように、レジスタ１０２のロケーション２ａに格納される。仮にデータが、指定されたライトレイテンシーより２クロックサイクル遅れて到着した場合には、第１データビットは、図３Ｃに示すように、レジスタ１０２のロケーション４ａに格納される。仮にデータが、指定されたライトレイテンシーより４クロックサイクル遅れて到着した場合には、第１データビットは、図３Ｄに示すように、レジスタ１０２のロケーション０ｂに格納される。例えば、図３Ｂ〜図３Ｄに図示したように、データが予測よりも遅れて到着する例においては、トレーニングデータを実際に受信する前のレジスタロケーション、すなわち、図３Ｂにおけるロケーション０ａ、１ａ、図３Ｃにおけるロケーション０ａ、１ａ、２ａ、３ａ、図３Ｄにおけるロケーション０ａ、１ａ、２ａ、３ａ、４ａ、５ａ、６ａ、７ａに格納されるデータは、値「１」である、ことは当然のことである。これは、データドライバがプルダウンオンリ（pull-down only）、すなわち、仮にコントローラが、データドライバをアクティベートさせて、「０」という値にプルダウンしなれば、「１」という値が存在するからである。そこで、仮にデータが存在しない場合には、レジスタ１０２に格納される値はデフォルト値の「１」である。あるいはまた、このコントローラは、トレーニングデータの開始まで値「１」のデータを送出し、トレーニングデータの第１ビットが受信される前にレジスタに格納されたデータが、値「１」となるようにすることもできる。
【００２８】
ひとたびトレーニングデータがレジスタ１０２に入力されると、クロックの各立ち上がりに関連付けされたデータ、すなわち、レジスタ１０２の偶数番のロケーション（ロケーション０ａ、２ａ、４ａ、６ａ、０ｂ、２ｂ、４ｂ、６ｂ）に格納されたデータが、エンコーダ１０４に入力される。トレーニングデータの第１ビットは、常にクロック信号の立ち上がりで発生し、レジスタ１０２の偶数番のロケーションに配置されるので、レジスタ１０２の偶数番のロケーションのデータのみが必要となる。エンコーダ１０４は、８ビット入力、すなわち、レジスタ１０２の偶数番のロケーションを、トレーニングデータの第１ビット（値「０」）が格納されたレジスタ１０２のロケーションに基づいて３桁の２進数に符号化する。このロケーションは、データキャプチャをデータ到着に正確に同期させるのに何クロックサイクル遅延させればよいかを表す。
【００２９】
例えば、仮に、図３Ａに示すように、データキャプチャの開始とデータ到着とが正確にアライメントされている場合には、レジスタ１０２からエンコーダ１０４への入力は、０１１１１１１１であり、トレーニングデータの第１ビットがレジスタ１０２のロケーション０ａに格納されていることを示す。エンコーダ１０４は２進数０００を出力し、これはレジスタ１０２のロケーション０ａを表し、データキャプチャの開始とデータ到着とが同じクロックサイクルで発生したこと示す。仮に、図３Ｂに示すように、データキャプチャの開始が１クロックサイクル早い場合には、エンコーダ１０４への入力は１０１１１１１１である。エンコーダ１０４は２進数００１を出力し、これはレジスタ１０２のロケーション２ａを表し、データキャプチャの開始が１クロックサイクル早く発生したことを示す。仮に、図３Ｃに示すように、データキャプチャの開始が２クロックサイクル早い場合には、エンコーダ１０４への入力は１１０１１１１１である。エンコーダ１０４は２進数０１０を出力し、これはレジスタ１０２のロケーション４ａを表し、データキャプチャの開始が２クロックサイクル早く発生したことを示す。仮に、図３Ｄに示すように、データキャプチャの開始が４クロックサイクル早い場合には、エンコーダ１０４への入力は１１１１０１１１である。エンコーダ１０４は２進数１００を出力し、これはレジスタ１０２のロケーション０ｂを表し、データキャプチャの開始が４クロックサイクル早く発生したことを示す。
【００３０】
トレーニングデータがレジスタ１０２に到着し、エンコーダ１０４で符号化された後の適正な時点で、初期化ロジック回路１５０がラッチ信号をラッチ１０６に出力する。ラッチ１０６は、エンコーダ１０４が出力した３桁の２進数の形式で、エンコーダ１０４の出力をラッチする。先に指摘したように、エンコーダ１０４からの出力は、データキャプチャが実際のデータ到着より何クロックサイクル早く開始されるかを示す。ラッチ１０６は、ラッチ信号を受信したとき、カウンタ１０８ａ、１０８ｂで使用するエンコーダ１０４からの格納値をラッチする。各カウンタ１０８ａ、１０８ｂは減算カウンタであり、ラッチ１０６の値を開始値として０までカウントダウンし、次に非０値（例えば、２進数「１１１」、すなわち、１０進数「７」）にリセットされる。
【００３１】
図２に示すように、２つのカウンタ１０８ａ、１０８ｂは、バックツーバックＷＲＩＴＥコマンドを受信し、正しいレイテンシーに適正にアライメントされるようにするために使用することができる。先に指摘したように、２つのカウンタ１０８ａ、１０８ｂが必要となる場合があるが、これは、ＤＲＡＭ１１〜１８について指定されるレイテンシーの最大値は典型的には８クロックサイクルが上限であり、ＷＲＩＴＥバースト長が８ビット（４クロックサイクル）の場合、バックツーバックＷＲＩＴＥを適正なタイミングでオペレートするためには、カウントダウンのオーバラップが必要となり、したがって、独立したカウンタが２つ必要となる場合があるからである。
【００３２】
あるいはまた、トグル回路１１４は、コントローラ４０からコマンドデコーダ／シーケンサ１４０を介して、WRITE CAPTURE信号を受信するたび、第１カウンタ、すなわち、カウンタ１０８ａと、第２カウンタすなわちカウンタ１０８ｂとを、交互に選択する。第１および第２カウンタ１０８ａ、１０８ｂは、スタート／ロードロジック回路１１６の第１および第２の出力端子に接続され、スタート／ロードロジック回路１１６は、トグル回路１１４の出力を使用して、カウンタ１０８ａ、１０８ｂのどちらが次のＳＴＡＲＴ／ＬＯＡＤ信号を受信してカウントダウンを開始するかを選択する。カウンタ１０８ａ、１０８ｂは、ＳＴＡＲＴ／ＬＯＡＤ信号を受信すると、ＷＣＬＫと同期して、ラッチ１０６によって供給された値を開始値として、０に向かってカウントダウンを開始する。各カウンタ１０８ａ、１０８ｂは、０に達した後、非０値（例えば、２進数「１１１」、すなわち、１０進数「７」）にリセットされる。各カウンタ１０８ａ、１０８ｂは、１０進数の値７（２進数の１１１）に達した時点、または別のＳＴＡＲＴ／ＬＯＡＤ信号を受信した時点で、カウントを中止する。
【００３３】
各カウンタ１０８ａ、１０８ｂの出力は、それぞれ、ゼロ検出器１１０ａ、１１０ｂの入力になる。ゼロ検出器１１０ａ、１１０ｂの出力は、少なくとも１つのＯＲゲート１１２に結合され、ＯＲゲート１１２は、カウンタ１０８ａ、１０８ｂの一方の値が０に達したとき、START CAPTURE信号を出力する。START CAPTURE信号は、デシリアライザ１２４によって受信され、デシリアライザ１２４は、その時点から、データキャプチャラッチ１２２から受信するデータのキャプチャを開始する。
【００３４】
図２には、２つのカウンタ１０８ａ、１０８ｂが示してあるが、カウンタは必ずしも２つ必要でなく、本発明に従って、任意の数のカウンタ、例えばカウンタを１つ使用することができる、ことは当然のことである。
【００３５】
キャリブレーションは、典型的には、１つの２バイトトレーニングパターンをＤＲＡＭ１１〜１８で受信した後に完了する。さらに、キャリブレーションを行うと、不正な値がラッチ１０６に格納されることがある。しかし、ラッチ１０６に格納された値が各キャリブレーションの前に０にリセットされる限り、必要であれば、冗長なキャリブレーションを行うことができる。
【００３６】
ひとたびトレーニングモードが完了すると、すなわち、カウンタ１０８ａ、１０８ｂ用の開始値がラッチ１０６に格納されると、回路１００は、データキャプチャの開始と入力データのメモリ装置への到着とを正確にアライメントすることができるようになる。そこで、例えば、仮に、図３Ｂに示すように、データキャプチャの開始が１クロックサイクル早い場合には、ラッチ１０６からカウンタ１０８ａ、１０８ｂに入力される値が、００１となる。カウンタ１０８ａ、１０８ｂは、この値を開始値として０までカウントダウンする。図３Ｂに示す例では、カウンタ１０８ａ、１０８ｂが動作を開始してから１クロックサイクル後に、カウンタは０に達し、ゼロ検出器１１０ａ、１１０ｂが、それぞれ、ゼロ検出信号をＯＲゲート１１２に出力し、ＯＲゲート１１２はSTART CAPTURE信号を発行する。そこで、データキャプチャの開始は、１ＷＣＬＫクロックサイクルだけ遅延し、これによって、入力データの実際の到着に正確にアライメントするようになる。仮に、図３Ａに示すように、データキャプチャの開始と入力データの到着とが正確にアライメントされている場合には、ラッチ１０６からカウンタ１０８ａ、１０８ｂに入力される値は、０００であって、入力データの実際の到着が既に正しくアライメントされており、これにより、データキャプチャの開始に遅延はない。
【００３７】
メモリ装置１１〜１８へのデータ入力は、トレーニングモードが完了した後においては、次のようになる。例えば、データがＤＲＡＭ１２に入力され、ＤＲＡＭ１２は、トレーニングモード中に、データキャプチャの開始が、図３Ｂに示すように、１サイクル早く発生すると決定するものと仮定する。そこで、ＤＲＡＭ１２に対する値であって、ラッチ１０６に格納された値は、００１である。コントローラ４０は、ＷＲＩＴＥコマンドを発行し、ＤＲＡＭ１２のために指定されたライトレイテンシーの後、関連付けをした入力データを送出する。コマンドデコーダ／シーケンサ１４０は、トグル回路１１４と、スタート／ロードロジック回路１１６と、初期化ロジック回路１５０とに、WRITE CAPTURE信号を送出する。初期化ロジック回路１５０は、ラッチ１０６およびトグル回路１１４に送出されるＬＡＴＣＨ信号を制御するため、使用される。初期化ロジック回路１５０は、WRITE CAPTURE信号のアサートを基準にして、いつ１６ビットデータを受信するか決定し、ラッチ１０６およびトグル回路１１４にＬＡＴＣＨ信号を送出する。初期化ロジック回路１５０による決定は、例えば、クロックサイクルをカウントする３ビットカウンタを用いて行うことができる。ラッチ１０６は、カウンタ１０８ａ、１０８ｂに格納する値を出力し、カウンタ１０８ａ、１０８ｂは、スタート／ロードロジック回路１１６によって交互にアサートされるＳＴＡＲＴ／ＬＯＡＤ信号に応答して、ラッチ１０６から受信した値からカウントダウンを開始する。
【００３８】
各カウンタ１０８ａ、１０８ｂは、スタート／ロードロジック回路１１６からＳＴＡＲＴ／ＬＯＡＤ信号を受信するスタート／ロード入力を備える。各カウンタ１０８ａ、１０８ｂのＳＴＡＲＴ／ＬＯＡＤ入力端子への信号入力は、トグル回路１１４の出力に基づいて決定され、トグル回路１１４は、コマンドデコーダ／シーケンサ１４０によって受信されたバックツーバックＷＲＩＴＥコマンドの正確なタイミングのアライメントを可能にするため、カウンタ１０８ａ、１０８ｂのうちの一方を選択する。仮にバックツーバックＷＲＩＴＥコマンドがデータ入力中に受信された場合には、第１のカウンタ、すなわち、カウンタ１０８ａは、第１のＷＲＩＴＥコマンドに同期してカウントダウンし、第２のカウンタ、すなわち、カウンタ１０８ｂは、第２のＷＲＩＴＥコマンドに同期してカウントダウンする。そこで、コントローラ４０は、直前のＷＲＩＴＥコマンドから１バースト長分の間隔を空けて、ＷＲＩＴＥコマンドを発行することができ、ゼロ検出器１１０ａ、１１０ｂを、データバースト長の最小時間間隔（例えば、８ティックまたは４クロックサイクル）でファイヤー（fire）させることができる。ゼロ検出回路１１０ａ、１１０ｂは、ゼロ検出回路１１０ａ、１１０ｂのうちの一方がＨ（high）であるとき、これを検出するＯＲゲート１１２によって結合される。カウンタ１０８ａ、１０８ｂの出力は、先に指摘したように、リセットされるか、値７（２進数の１１１）でカウントを中止するので、ゼロ検出回路１１０ａ、１１０ｂは、それぞれ、ファイヤー後１クロックサイクルの間だけ、Ｈの状態に留まる。
【００３９】
ＷＲＩＴＥコマンドに関連付けをした入力データは、ＤＲＡＭ１２の端子パッド１２０に送出され、端子パッド１２０は、入力データをデータキャプチャラッチ１２２に送出する。上記の例で指摘したように、入力データの受信は、データキャプチャの開始を１クロックサイクルだけ遅らせることができる。データキャプチャラッチ１２２は、入力データＤＡＴＡ  ＱＰをデシリアライザ１２４に送出し、デシリアライザ１２４は、ＯＲゲート１１２からSTART CAPTURE信号を受信した時点で動作可能となる。そこで、本例においては、デシリアライザ１２４は、データが到着すると想定される時間から１クロックサイクル経過するまで動作可能とはならず、したがって、入力データの実際の到着にアライメントさせて正確に調整される。デシリアライザ１２４は、入力データＤＡＴＡ  ＱＰを８ビットワードにデシリアライズし、８ビットワードを第１の×８レジスタ１２６に供給する。第１の×８レジスタ１２６は、第２の×８レジスタ１２８に入力データを供給する。ＤＲＡＭ１２が２つの８ビットワードをバックツーバック（back-to-back）でキャプチャできるようにするため、第２の×８レジスタ１２８が提供される。ついで、入力データは、先に指摘したように、トレーニングモードのときに、ＤＲＡＭ１２のアレイおよび／またはレジスタ１０２に送出される。
【００４０】
図４および図５は、データキャプチャの開始が３クロックサイクル早いと決定された例における例示的なタイミング図を示す。図４を説明する。ラッチ１０６の出力（ＬＡＴＣＨＸ３）は値３（２進数の０１１）であると事前に決定され、選択されたカウンタ（ＣＯＵＮＴＥＲ０）は、ＳＴＡＲＴ／ＬＯＡＤ信号（ＳＴＡＲＴ／ＬＯＡＤ０）がＨになった時、ＷＣＬＫ（ＷＣＬＫ）に同期して、３から０に向けてカウントダウンを開始する。選択されたカウンタのためのＳＴＡＲＴ／ＬＯＡＤ信号（ＳＴＡＲＴ／ＬＯＡＤ０）は、WRITE CAPTURE信号（ＷＲＩＴＥ  ＣＡＰＴＵＲＥ）がＨになった時、Ｈになり、これにより、ＴＯＧＧＬＥ信号が、切り換え状態になる。図４に示すように、このＴＯＧＧＬＥ信号は、WRITE CAPTURE信号の立ち下りで、ＨからＬ（low）か、またはＬからＨに切り換わる。
【００４１】
選択されたカウンタ（ＣＯＵＮＴＥＲ０）の出力が０に達すると、これにより、ＯＲゲート１１２（ＯＲ  ＧＡＴＥ）の出力信号が１クロックサイクルの間、Ｈになる。図４に破線で示すように、ＯＲゲート１１２（ＯＲ  ＧＡＴＥ）の出力がＨになっている間に、デシリアライザ１２４が、データキャプチャラッチ１２２から入力データのキャプチャを開始する。ＯＲゲート１１２（ＯＲ  ＧＡＴＥ）の出力は、WRITE CAPTURE信号を受信してから数クロック（例えば、３クロック）サイクル遅延しているので、デシリアライザ１２４におけるデータキャプチャの開始は、メモリ装置（例えば、ＤＲＡＭ１２）への正しい入力データの到着にアライメントするようにできる。
【００４２】
図５を説明する。入力データ（ＩＮＰＵＴ  ＤＡＴＡ）は、ＷＣＬＫの立ち上がりでデータキャプチャラッチ１２２にキャプチャされるが、ＷＣＬＫの立ち下りでデータキャプチャラッチ１２２の出力（ＤＡＴＡ  ＱＰ）に送出される。第１データビットは、ＷＣＬＫの次の立ち上がりとＯＲゲート１１２（図４のＯＲ  ＧＡＴＥ）の出力信号の立ち上がりのうちの後に発生した立ち上がりの時点で、デシリアライザ１２４にキャプチャされる。このようにして、デシリアライザ１２４は、ＷＣＬＫとＯＲゲート１１２の出力信号とが共にＨのときに、入力データのキャプチャを開始する。
【００４３】
そこで、本発明によれば、指定されたライトレイテンシーとメモリ装置の入力へ到着する入力データの実到着タイムとの差が測定される。次に、測定された差が、カウンタを利用してメモリ装置へのデータキャプチャの開始を遅延させて補償され、これにより、データキャプチャの開始とメモリへのデータの到着とが正確にアライメントされる。
【００４４】
以上、本発明の好ましい実施形態を説明したが、それらは本発明の例であって、本発明を限定するものではない、ことは当然のことである。本発明の主旨または範囲から逸脱しない限り、追加、削除、置換、およびその他の修正を施すことができる。したがって、本発明は、上述した説明によって限定されず、特許請求の範囲によってのみ限定される。
【図面の簡単な説明】
【００４５】
【図１】慣用のコンピュータシステムを示すブロック図である。
【図２】本発明に係る回路であって、実ライトレイテンシーを測定し、ＷＲＩＴＥコマンドとデータのメモリ装置への到着とをアライメントする回路を示すブロック図である。
【図３Ａ】本発明に係る回路であって図２の回路のデータレジスタを示す図である。
【図３Ｂ】本発明に係る回路であって図２の回路のデータレジスタを示す図である。
【図３Ｃ】本発明に係る回路であって図２の回路のデータレジスタを示す図である。
【図３Ｄ】本発明に係る回路であって図２の回路のデータレジスタを示す図である。
【図４】本発明に係る回路であって図２の回路の選択信号のタイミング図である。
【図５】本発明に係る回路であって図２の回路の別の選択信号のタイミング図である。
【図１】
0004672978.tif 000002
【図２】
0004672978.tif 000003
【図３Ａ】
0004672978.tif 000004
【図３Ｂ】
0004672978.tif 000005
【図３Ｃ】
0004672978.tif 000006
【図３Ｄ】
0004672978.tif 000007
【図４】
0004672978.tif 000008
【図５】
0004672978.tif 000009