(57)【特許請求の範囲】
【請求項１】
メモリを動作させる方法において、
複数のメモリデバイスの各メモリデバイスについて読取テストを実行し、前記複数のメモリデバイスの各メモリデバイスの読取遅延時間を生成する工程であって、前記複数のメモリデバイスは、プライムメモリデバイスと前記プライムメモリデバイスを含まないメモリデバイスのサブセットとを含み、前記サブセットは少なくとも１つのメモリデバイスを含む、前記工程と、
前記サブセットの各メモリデバイスについて、前記プライムメモリデバイスの読取遅延時間を前記サブセットの各メモリデバイスの読取遅延時間と比較し、前記サブセットの各メモリデバイスの遅延差を生成する工程と、
前記サブセットの各メモリデバイスについて、前記プライムメモリデバイスの書込テスト開始時間と各メモリデバイスの遅延差とを結合する、前記サブセットの各メモリデバイスの書込テスト開始時間を生成する工程と、
前記サブセットの各メモリデバイスについて、前記サブセットの各メモリデバイスの書込テスト開始時間を用いて各メモリデバイスの書込テストを実行し、前記サブセットの各メモリデバイスの書込起動時間を生成する工程と、を備える方法。
【請求項２】
プライムメモリデバイスの書込テスト開始時間を用いてプライムメモリデバイスの書込テストを実行し、プライムメモリデバイスの書込起動時間を生成する工程をさらに備える、請求項１に記載の方法。
【請求項３】
前記サブセットの各メモリデバイスの書込起動時間を用いて前記サブセットの各メモリデバイスに対し書込動作を実行する工程をさらに備える、請求項１に記載の方法。
【請求項４】
前記複数のメモリデバイスのうちの所定のメモリデバイスの書込起動時間は、該所定のメモリデバイスに対する書込動作中にメモリコントローラによってデータストローブ信号を提供するタイミングを表す、請求項１に記載の方法。
【請求項５】
前記所定のメモリデバイスの書込起動時間は、前記所定のメモリデバイスによって受信されるメモリクロック信号に対する前記データストローブ信号の提供のタイミングを表す、請求項４に記載の方法。
【請求項６】
前記複数のメモリデバイスの各メモリデバイスについて読取テストを実行する工程は、メモリコントローラが、前記サブセットの各メモリデバイスに命令信号を提供し、これに応答して前記サブセットの各メモリデバイスから信号を受信するまでの時間を測定する工程を含む、請求項１記載の方法。
【請求項７】
前記サブセットの各メモリデバイスについて、前記書込テスト開始時間は、前記サブセットの各メモリデバイスに提供されたメモリクロック信号に対する前記サブセットの各メモリデバイスにメモリコントローラによって提供された信号のタイミングを表す、請求項１に記載の方法。
【請求項８】
前記サブセットの各メモリデバイスの書込テストを実行する工程は、メモリコントローラが前記サブセットの各メモリデバイスに１つ以上のパルスからなる一連のパルスを提供する工程を含み、前記サブセットの各メモリデバイスの書込テスト開始時間は、前記サブセットの各メモリデバイスに提供されたメモリクロック信号に対する前記一連のパルスのうちの第１のパルスのタイミングを表す、請求項１に記載の方法。
【請求項９】
書込テストを実行する工程は、前記サブセットの各メモリデバイスが、前記メモリクロック信号の特定の位相内において前記メモリコントローラからパルスが受信されたことを示す指標を提供する工程を含む、請求項８に記載の方法。
【請求項１０】
前記複数のメモリデバイスの各メモリデバイスはＤＲＡＭメモリデバイスである、請求項１に記載の方法。
【請求項１１】
前記サブセットの各メモリデバイスの読取遅延時間は、メモリコントローラと前記サブセットの各メモリデバイスとの間のクロック信号経路の長さと、前記メモリコントローラと前記プライムメモリデバイスとの間のクロック信号経路の長さとの間の差に依存することを含む、請求項１に記載の方法。
【請求項１２】
前記読取テストの実行、比較、結合、及び書込テストの実行の工程は、較正モードにあるメモリによって実行される、請求項１に記載の方法。
【請求項１３】
メモリコントローラにおいて、
複数のメモリデバイスと信号を交換する複数の端子を含むＩ／Ｏ回路と、
前記Ｉ／Ｏ回路に接続されており、読取テスト中に前記複数のメモリデバイスから受信される信号から前記複数のメモリデバイスの各メモリデバイスの読取遅延を決定する読取較正回路であって、前記複数のメモリデバイスは、プライムメモリデバイスと前記プライムメモリデバイスを含まない１つ以上のメモリデバイスからなる一組のメモリデバイスとを含む、読取較正回路と、
前記読取較正回路に接続されており、前記１つ以上のメモリデバイスからなる一組のメモリデバイスの書込テスト開始時間を計算する計算回路であって、前記一組のメモリデバイスの各メモリデバイスについて、前記一組のメモリデバイスの各メモリデバイスについて決定された読取遅延とプライムメモリデバイスの読取遅延とを比較して遅延差を決定し、前記遅延差をプライムメモリデバイスに関連する前記書込テスト開始時間と結合して前記一組のメモリデバイスの各メモリデバイスのセットに関連する書込テスト開始時間を生成する計算回路と、
前記Ｉ／Ｏ回路に接続されており、前記書込テスト中に前記複数のメモリデバイスのための書込起動時間を決定する書込テスト回路であって、記複数のメモリデバイスの各メモリデバイスについて、前記複数のメモリデバイスの各メモリデバイスに関連した書込テスト開始時間は、書込テスト中に信号を提供して前記複数のメモリデバイスの各メモリデバイスの書込起動時間を決定するために用いられる書込テスト回路と、を備えるメモリコントローラ。
【請求項１４】
前記複数のメモリデバイスにメモリクロック信号を提供するためのクロック信号端子をさらに備え、
前記複数のメモリデバイスのうちの１つのメモリデバイスの書込起動時間を決定するための書込テスト中、メモリコントローラは前記メモリデバイスに関連する書込テスト開始時間を用いて、前記クロック信号端子において前記メモリデバイスに提供されるメモリクロック信号に対する前記複数の端子のうちの１つの端子において前記メモリデバイスに提供される信号の時間を測定する、請求項１３に記載のメモリコントローラ。
【請求項１５】
書込テスト中に生成される信号は差動信号である、請求項１３に記載のメモリコントローラ
【請求項１６】
前記複数のメモリデバイスにメモリクロック信号を提供するためのクロック信号端子をさらに備え、
前記複数のメモリデバイスのうちの１つのメモリデバイスの書込起動時間を決定するための書込テスト中、メモリコントローラが前記メモリデバイスに関連する書込テスト開始時間を用いて、前記クロック信号端子において前記メモリデバイスに提供されるメモリクロック信号に対する前記複数の端子のうちの１つの端子において前記メモリデバイスに提供される１つ以上のパルスからなる一連のパルスのうちの第１のパルスの時間を測定する、請求項１３に記載のメモリコントローラ。
【請求項１７】
前記複数のメモリデバイスにメモリクロック信号を提供するためのクロック信号端子をさらに備え、
メモリコントローラは、前記複数のメモリデバイスのうちの１つのメモリデバイスの書込起動時間を用いて、前記クロック信号端子において前記メモリデバイスに提供されるメモリクロック信号に対する、データを書き込むために前記複数の端子のうちの１つの端子において前記メモリデバイスに提供されるデータストローブ信号の時間を測定する、請求項１３に記載のメモリコントローラ。
【請求項１８】
読取遅延を決定するための前記複数のメモリデバイスのうちの１つのメモリデバイスに対する読取テスト中、メモリコントローラは、命令信号を送信し、前記メモリデバイスによる前記命令信号の受信を示す応答を受信する際の時間の遅延を測定する、請求項１３に記載のメモリコントローラ。
【請求項１９】
前記プライムメモリデバイスに関連する書込テスト開始時間を記憶するための不揮発性レジスタをさらに備える、請求項１３に記載のメモリコントローラ。
【請求項２０】
前記複数の端子は、各々前記複数のメモリデバイスのうちの１つのメモリデバイスに各々接続するための複数のデータストローブ端子を含み、メモリコントローラは、読取テスト中、命令信号に応答して前記複数のメモリデバイスから前記複数のデータストローブ端子を介して指標を受信し、
メモリコントローラは、書込テストのために前記複数のデータストローブ端子に信号を提供して書込起動時間を決定し、前記複数のメモリデバイスに対するデータ書込中、前記メモリコントローラは、前記複数のメモリデバイスにデータストローブ信号を提供する、請求項１３に記載のメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に半導体に関し、より詳細には、同期記憶回路によって用いられるデータストローブ信号の制御に関する。
【背景技術】
【０００２】
シンクロナス・ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ）は、データ処理システムにおけるシステムクロックと同期して動作する。ＳＤＲＡＭの入力および出力は、システムクロックのアクティブ・エッジと同期される。ダブル・データ・レート（ＤＤＲ）ＳＤＲＡＭでは、クロックの立ち上がりおよび立ち下がりエッジの両方におけるデータ転送が可能となるので、ＳＤＲＡＭの２倍のデータが提供される。従来のＤＤＲ−ＳＤＲＡＭでは、双方向性のデータストローブ信号（通常、ＤＱＳ信号と呼ばれる）が用いられる。データストローブ受信機は、ＳＤＲＡＭまたはメモリコントローラからＤＱＳ信号を受信してＤＱＳ信号を提供するように機能し、有効なデータがＳＤＲＡＭのＤＱＳ遷移ミーティングセットアップおよびホールド時間条件について中心とされる。
【０００３】
例えば、ＤＤＲ−ＳＤＲＡＭメモリコントローラおよびＳＤＲＡＭは、ＳＤＲＡＭにデータを送信（書込転送）するため、及びＳＤＲＡＭからデータを受信（読取転送）するために、ＤＱＳストローブ信号を用いる。ＤＱＳデータストローブ信号は、ＤＱＳデータストローブ信号の各エッジにおいて入力または出力されているデータを捕捉するように機能する。ＳＤＲＡＭコントローラによって実行される書込転送のためのＳＤＲＡＭのＤＱＳ遷移ミーティングセットアップおよびホールド時間要件についてデータが中心とされるというのは、業界標準仕様の要件である。業界標準仕様では、データのバースト転送前、バースト転送中、またはバースト転送後に、いくつかの状態のＤＱＳが定義されている。データのバースト転送前には、ＤＱＳはＨｉ−Ｚとして知られている高インピーダンス状態にある。ＤＱＳは、Ｈｉ−Ｚであるとき、メモリコントローラまたはＳＤＲＡＭによって駆動されないので、不定電圧レベルを有する。バーストデータ転送前のクロックサイクルでは、ＤＱＳはＨｉ−Ｚの高インピーダンス状態から論理ローに遷移する。この論理ロー状態は、データストローブ・プリアンブルとして知られている。データストローブ・プリアンブルの後、ＤＱＳ遷移は転送されたデータを同期するために用いられる。データ転送が完了する１／２クロック前には、ＤＱＳは論理ロー状態のままである。この状態は、データストローブ・ポストアンブルとして知られている。ポストアンブルの完了後、ＤＱＳデータストローブ信号は、再びＨｉ−Ｚの高インピーダンス状態になる。ＤＱＳストローブ信号はデータストローブ・プリアンブルが開始するまで駆動されず、またポストアンブルにおけるトランザクションの終了時に停止されるので、正しい時間を有するＤＱＳストローブ信号を生成するには、データストローブ受信機を正しい時間にオンオフすることが重要である。さもなければ、不定制御信号値が生成されたり、ＤＱＳストローブ信号が振動することによって、誤った情報のラッチが生じる。
【０００４】
ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）用のよく知られるＪＥＤＥＣ仕様は、ＤＤＲ３仕様（ＪＥＳＤ７９−３）である。この仕様では、ＤＱＳストローブ信号および関連するデータビットが必要なタイミングウィンドウ内でメモリコントローラからＤＲＡＭに到達するように、ＤＤＲコントローラがＤＱＳストローブ信号および関連するデータビットの起動時間を較正することを可能とする書込レベリングシーケンスについて記載されている。このタイミングウィンドウについて、ＪＥＤＥＣ  ｔＤＱＳＳ仕様にはさらに、メモリクロックの立ち上りエッジの±２５パーセント以内とすることが記載されている。この較正シーケンスは、ＤＤＲ３のデュアル・インライン・メモリ・モジュール（ＤＩＭＭ）上でフライ−バイ・ルーティングを用いるＤＤＲ３には、特に有用である。しかしながら、書込レベリングシーケンスを開始する前には、各ＤＱＳストローブ信号が所定のタイミングウィンドウ内でＤＲＡＭに到達するように、コントローラが各ＤＱＳストローブ信号を発信する能力（すなわち、時間についての開始点）を有する必要がある。より遅いＤＤＲ周波数では、全てのＤＱＳストローブ信号について１つの開始点を有することも可能な場合がある。しかしながら、より高いＤＤＲ周波数では、各ストローブは個別の開始点を必要とする場合がある。この開始点を得るには、各ストローブが個別にプログラムされる必要があるが、それにはメモリシステムおよびその個々の部品の物理的特性に関する情報が必要である。さらに、プログラムの時間及び労力や、各開始点の記憶が必要である。
【図面の簡単な説明】
【０００５】
【図１】本発明の一実施形態によるメモリシステムの一例のブロック図。
【図２】本発明によるメモリシステムにおける開始値を較正する方法の一例のフローチャート。
【図３】図１のメモリシステムの一例における読取較正動作に関連する信号の一例のグラフ。
【図４】図１のメモリシステムの一例における書込レベリング動作に関連する信号の一例のグラフ。
【発明を実施するための形態】
【０００６】
図１には、本発明による、システムメモリ１５における複数のメモリデバイスとの通信を制御するためのメモリコントローラ１２を有するメモリシステム１０の一例を示す。メモリコントローラ１２は、レジスタ１４（メモリデバイス０書込テスト開始時間レジスタ）の出力に接続された第１の入力を有する制御／計算回路１６を有する。制御／計算回路１６の第１の入力／出力端子は読取較正回路１８の第１入力／出力端子に接続されている。タイミング回路２０は内部クロック（ＩＣ）信号を与える。制御／計算回路１６の第２の入力は、タイミング回路２０から内部クロック（ＩＣ）信号を受信するためにタイミング回路２０の第１出力に接続されている。内部クロック（ＩＣ）信号は、読取較正回路１８にも接続されている。タイミング回路２０の第２の出力は、書込レベリング回路２２にＩＣ信号を与えるために、書込レベリング回路２２の入力に接続されている。制御／計算回路１６の第２の入力／出力は、書込レベリング回路２２の第１の入力／出力端子に接続されている。書込レベリング回路２２の第２の入力／出力端子は、入力／出力回路２５の第１の入力／出力端子に接続されている。書込レベリング回路２２は書込テスト回路であり、任意の様々な書込テストを実行するように機能する。代替形態では、制御／計算回路１６は、図１に示すように読取較正回路１８および書込レベリング回路２２を介してＩ／Ｏ回路２５と通信を行うのではなく、Ｉ／Ｏ回路２５と通信を行うためにＩ／Ｏ回路２５に直接接続されてもよいことが理解される。タイミング回路２０は、メモリクロック信号（ＭＣＫ）およびその相補信号を入力／出力回路２５のそれぞれのクロック入力に与える。代替形態では、メモリクロック信号（ＭＣＫ）およびその相補メモリクロック信号は、制御／計算回路１６によって入力／出力回路２５のそれぞれのクロック入力に提供され得ることが理解される。入力／出力回路２５の第２の入力／出力端子は、読取較正回路１８の第２の入力／出力端子に接続されている。入力／出力回路２５は、それぞれメモリクロックＭＣＫとその相補信号とを与えるために、システムメモリ１５に接続された複数の入力／出力端子と、クロック信号端子とを有する。システムメモリ１５は、メモリデバイス２４、メモリデバイス２６、メモリデバイス２８、およびメモリデバイス３０など、０，１，２，〜Ｎのラベルの付された複数のメモリデバイスを有する。メモリデバイスの数は、図１に点々で記すように、任意の数である。図１には２より多くのメモリデバイスを示しているが、２つのメモリデバイスが実装されてもよいことが理解される。さらに、各メモリデバイスは、同じタイプのメモリであってもよく、構成またはデータバス幅において異なっていてもよい。４，８，１６のデータバス幅が従来知られているが、他のデータバス幅が用いられてもよい。
【０００７】
本明細書の記載における「メモリデバイス」は、一群のメモリセルおよびアクセス回路を有するメモリ回路である。各メモリデバイスはディスクリートＤＲＡＭ集積回路であり、１つのデータストローブ信号が受信され出力される（その相補信号とともに）。代替形態では、各メモリデバイスは２つ以上のデータストローブ信号を有するメモリチップまたは集積回路の一部であってもよい。複数のメモリデバイスが１つの集積回路内に実装される実施形態では、各メモリデバイスは１つのデータストローブ信号に関連する。
【０００８】
各メモリデバイスは、データストローブ信号ＤＱＳｘ（ｘは０〜Ｎで変化）を双方向に通信するための入力／出力端子またはデータストローブ端子と、相補データストローブ信号を双方向に通信するための入力／出力端子とを有する。メモリデバイス２４，２６，２８，３０の各々も、命令情報、アドレス情報、およびデータ情報を通信するための１つ以上の双方向および／または単方向の導体を有する。システムメモリ１５の各入力／出力端子は、入力／出力回路２５のそれぞれの入力／出力端子に接続されている。入力／出力回路２５は、メモリデバイス２４，２６，２８，３０の各々の第１のクロック入力に接続されている第１の出力端子（クロック信号端子）にメモリクロックＭＣＫを与える。入力／出力回路２５は、メモリデバイス２４，２６，２８，３０の各々の第２のクロック入力に接続されている第２の出力端子（第２のクロック信号端子）にメモリクロックＭＣＫの相補信号を与える。それらの多ビット幅の導体を、図１では導体に交差するスラッシュを用いて示す。
【０００９】
動作中、メモリコントローラ１２は、メモリデバイス２４に関連するデータの第１のデータバイトを較正するために、最初に、レジスタ１４の書込テスト開始点を用いてプログラムされる。データバイト転送について以下に記載するが、他の様々なデータバス幅が較正シーケンスにおいて用いられてもよい。メモリデバイス２４について、システムメモリ１５内のプライムメモリデバイスであるとの文脈で以下に記載する。システムメモリ１５内の複数のメモリデバイスのうちの任意のメモリデバイスがプライムメモリデバイスとして選択されてよいことが理解される。他のメモリデバイスは、プライムメモリデバイスを含まないメモリデバイスのサブセットを形成する。この書込テスト開始点は、メモリデバイス２４に対し送信されたデータストローブの成功裏な書込レベリングを可能とするように、メモリコントローラ１２からメモリデバイス２４にＤＱＳストローブ信号が発信される時点である。メモリコントローラ１２が初期化された後（ブートＲＯＭ（図示せず）に記憶されている初期化ルーティンの実行など）、メモリコントローラ１２はＪＥＤＥＣ仕様の要件に従ってシステムメモリ１５の各メモリデバイスを初期化する。他の動作もＪＥＤＥＣ仕様に従って実行されてよい。ＤＲＡＭに対する命令が送信され、それに応答してメモリデバイス２４，２６，２８，３０がＤＱＳおよびその相補信号をメモリコントローラ１２に送信する。関連するデータビットも送信される。データストローブおよび／または関連するデータがメモリコントローラ１２に戻る総遅延を決定するために、読取較正が読取較正回路１８によって実行される。制御／計算回路１６は読取較正回路１８からの結果を用い、メモリデバイス２６，２８，３０の較正時に書込レベリング回路２２によって用いられる開始点を生成する。図２に関連して、メモリデバイス２６，２８，３０を較正するための開始点をどのように決定するかについて以下にさらに説明する。書込レベリング回路２２は、次に、システムメモリ１５の全てのデータバイトについて書込レベリングシーケンスを進行させる。書込レベリングは、メモリシステム１０が情報を正確に書き込む性能を試験する書込テストである。メモリコントローラ１２の制御／計算回路１６によって、較正モードを終了するための命令が発せられる。デフォルトでは、次いで、メモリシステム１０の通常モードの動作が開始される。制御／計算回路１６は、メモリデバイス２６，２８，３０の較正時に開始点を計算する際、制御回路および計算回路の両方として機能する。制御／計算回路１６の実装は異なっていてもよく、それらの機能を個別に実装する回路や、それらの機能の実装を共有する回路が用いられてもよいことは明らかである。
【００１０】
図２には、本発明によるメモリコントローラ１２の較正モードのさらなる詳細を示す。較正モードの目的は、メモリデバイス２４，２６，２８，３０に対する将来の書込命令についてＪＥＤＥＣ  ｔＤＱＳＳ仕様を満たす各バイトの起動時間を決定することである。システムメモリ１５が多ランクのメモリにより実装されてもよいことは明らかである。ここで、ランクとは、個別に制御されるチップ選択可能なメモリデバイスの組である。つまり、別のランクのメモリがシステムメモリ１５に実装された場合、その追加のランクはメモリデバイス２４，２６，２８，３０から別個に制御される。追加のランクのメモリは、独立した較正を通じた独立のサイクルを行う必要があり、すなわち、第１メモリランクの結果を用いる必要がある。工程３２では、較正モードが開始される。工程３４では、プライムメモリデバイスを含む全てのメモリデバイスについて、読取テストが実行される。プライムメモリデバイスは、レジスタ１４に記憶されているプログラムされた書込テスト開始時間を有するデバイスである。一形態では、プライムメモリデバイスは、１つのプログラムされた書込テスト開始時間を有するシステムメモリ１５内のデバイスのみであり、他の全てのデバイスは、プライムメモリデバイスの書込テスト開始時間と読取較正の結果とから決定されるテスト開始時間を有する。一形態では、プライムメモリデバイスは、メモリデバイス２４となるように選択される。システムメモリ１５内の任意のメモリデバイスがプライムメモリデバイスとして選択されてよいことが理解される。工程３４では、読取テストによって、各メモリデバイスの読取ループ遅延、すなわち、読取遅延が決定される。本明細書の記載における「ループ」は、メモリコントローラ１２からシステムメモリ１５のそれぞれのメモリデバイスに向かいメモリコントローラ１２に戻る間に存在する、任意の個別の経路のことである。「ループ」の語を用いるが、特定の幾何学的形状または構成を意図するものでも必要とするものでもない。工程３６では、プライムメモリデバイス以外の各メモリデバイスについて、メモリデバイスの読取ループ遅延がプライムデバイスの読取ループ遅延と比較され、各メモリデバイスの遅延差が生成される。工程３８では、プライムメモリデバイス以外の各メモリデバイスについて、プライムメモリデバイスのプログラムされた書込テスト開始時間に対し、そのメモリデバイスの遅延差が加算される。遅延差およびプログラムされた書込テスト開始時間の結合によって、そのメモリデバイスの書込テスト開始時間が生成される。プライムメモリデバイス以外の各メモリデバイスについて、処理、温度、および電圧の変動は各メモリデバイスに異なる影響を与えるので、遅延差は、正の遅延値である場合も負の遅延値である場合もあることが理解される。工程４０では、各メモリデバイスについて、そのメモリデバイスの書込テスト開始時間を用いて書込レベリングが実行される。書込レベリングによって、そのメモリデバイスの書込起動時間が生成される。書込起動時間は、将来の書込命令のためにＤＱＳストローブ信号の第１のエッジがアサートされる時間である。ＤＱＳの相補信号もＤＱＳと同時に発せられる。この記載���は、ＤＱＳの立ち上がりエッジおよび立下りエッジについて記載しているが、ＤＱＳの相補信号は逆の方向に遷移される。例えば、ＤＱＳの立ち上がりエッジが存在する場合、対応するＤＱＳの相補信号の立下りエッジが存在する。なお、ＭＣＫの相補信号もＭＣＫと同時に発せられ、ＭＣＫと逆の方向に遷移する。工程４２では、動作の較正モードが終了され、工程４４が開始される。工程４４では、システムメモリ１５内のメモリデバイス２４，２６，２８，３０に対する書込命令は、そのメモリデバイスの書込起動時間を用いて行われる。このように、図２には、バイト毎（すなわち、メモリデバイス毎）の開始値および将来の書込命令用のバイト毎の起動時間の較正方法が教示されている。
【００１１】
図３には、メモリシステム１０の読取較正の一部を示すタイミング図を示す。メモリクロック（ＭＣＫ）を、フリー・ランニングクロックとして示す。読取命令は、メモリクロックの任意のサイクル中にアサートされる。なお、読取命令は、メモリデバイス２４，２６，２８，３０に対するアドレスと制御信号との組み合わせに基づいて、メモリコントローラ１２によって生成される。メモリクロックの第１の立ち上がりエッジでは、メモリコントローラ１２とシステムメモリ１５との間のインタフェースにおける全てのアドレスおよび制御信号は、メモリデバイス２４，２６，２８，３０によって捕捉される。一形態では、メモリデバイス２４，２６，２８，３０に対し読取命令がアサートされたとき、読取ループ遅延が開始する。図３に示す別の形態では、読取ループ遅延は、読取命令を捕捉するＭＣＫクロック信号の立ち上がりエッジで開始する。ＭＣＫクロック信号および読取命令に関連しシステムメモリ１５のメモリデバイス２４，２６，２８，３０の各々に至る、移動時間が存在する。読取命令の捕捉後、メモリデバイスは、読取レイテンシおよび関連するＭＣＫおよびＤＱＳスキューの発生後、ＤＱＳおよび関連するデータビットをメモリコントローラ１２に駆動する。また、ＤＱＳおよびデータビットがメモリコントローラ１２の入力／出力回路２５および読取較正回路１８に戻るための移動時間も存在する。メモリデバイス２４，２６，２８，３０の各々によって駆動された第１の立ち上がりエッジによって、読取ループ遅延が終了する時が決定される。読取ループ遅延は図３に示すように異なっており、メモリデバイス３０の読取ループ遅延はプライムメモリデバイス（例えば、メモリデバイス２４）の読取ループ遅延より約１サイクル後に終了する。メモリデバイス間における読取ループ遅延の差は任意の量であることが可能である。以上、図３には、読取命令に対するアサートおよび応答に関連するレイテンシと、ＤＱＳデータストローブ信号の戻りがシステムメモリ１５の各メモリデバイス間でどのように変化し得るかについて示している。
【００１２】
図４には、メモリシステム１０などのメモリシステムにおけるＪＥＤＥＣに規定された書込レベリング処理の一部を示すタイミング図を示す。このタイミング図では、メモリシステム１０のメモリデバイス２４，２６，２８，３０は、現在、書込レベリングモードの動作中であると仮定する。メモリクロック（ＭＣＫ）は、ここでもフリー・ランニングクロックとして示される。書込レベリング処理を開始するには、規定のタイミングウィンドウ内でＤＱＳデータストローブが最初にアサートされる必要がある。ＤＱＳの第１のアサートの後、メモリデバイスＸはＤＱ信号上の状態に応答する。この状態は、図４の矢印によって示されるように、ＤＱＳがアサートされる時のＭＣＫの値を表す。この例では、ＤＱＳがアサートされるとき、ＭＣＫはローである。したがって、メモリコントローラ１２は、続くアサートのために、ＤＱＳ信号の時間をさらにシフトさせる。ＤＱＳ信号のシーケンス化は、ＤＱ信号がメモリデバイスＸによってアサートされる（ＤＱＳがＭＣＫ信号の立ち上がりエッジをより前の時間にシフトされたことをシグナリングする）まで継続する。この時点において、この結果はＭＣＫ信号の立ち上がりエッジの所望のマージン内にある。また、直前及び直後のＤＱＳ起動時間のうちの少なくとも一方も、その所望のマージン内にあることが分かる。この２つの連続するＤＱＳ起動時間のうちの一方（または両方）は、続く書込動作において決定されたＤＱＳ起動時間として用いられてもよい。書込レベリングの完了後、ＤＱＳ起動時間はＪＥＤＥＣ  ｔＤＱＳＳ仕様を満たすように較正される。この処理は、図４に示すのとは反対に生じ得ることが理解される。つまり、第１のＤＱＳ信号は、ＭＣＫ信号が既にハイのレベルに遷移し、続いてＭＣＫ信号の遷移より前のＤＱＳ信号の遷移まで時間シフトされた後、アサートされてもよい。
【００１３】
以上、メモリシステムと、バイト毎またはメモリデバイス毎に書込レベリングの特定の開始値を較正する方法とが提供されたことが認められる。メモリシステムに記憶されることの必要なプログラムされた開始値は１つのみである。１つの開始値しか記憶しないことによって、簡略されたプログラミングモデルが提供される。１つの値しか計算およびプログラムされる必要がないので、メモリシステム１０のエンドユーザの時間や困難が低減される。従来では、より高い周波数の動作のためには、複数の開始値が永続的なストレージデバイスに記憶される必要があった。そうした値は、ブートＲＯＭあるいは他の不揮発性メモリに記憶される必要や、プログラム可能なヒューズの使用の必要があった。係る回路には、エンドユーザによるプログラミング時間や、適切な値の決定のための時間が必要であった。また、この回路は、追加の空間を必要とし、他の利用可能な回路のための寸法が限定されていた。また、そうした所定の多開始値の使用は、メモリシステムの特定のメモリデバイスに制限されていた。メモリのアップグレードが行われたり、メモリシステムに新たなメモリデバイスが置換された場合、以前の開始値は有効でなくなる場合があった。全ての開始値の不揮発性記憶のために、代替のメモリデバイスの使用が妨げられる。本開示の方法では、ユーザが選択されたメモリデバイス、すなわち、プライムメモリデバイスの１つの開始値のみを決定または事前に計算することを可能にする。よって、エンドユーザは、メモリシステムの複数のメモリデバイスの間に存在する信号スキューを決定する必要や、それを知る必要がない。内部回路は、他の（非プライム）メモリデバイスについて他の全ての開始時間を計算するための方法を用いる。したがって、エンドユーザは、所与のメモリデバイスに対して特定の複数のメモリ開始値を計算する必要がなくなる。これに加えて、エンドユーザには、後に使用されるメモリデバイスを交換できる柔軟性が与えられ、システムのパーマネントまたは不揮発性メモリに固定の誤った開始値がプログラムされることによる動作不良のリスクが生じることはない。このように、高速ダブル・データ・レートＤＲＡＭインタフェースを実装するエンドユーザのプログラムおよび基板設計要件は、本明細書に記載のメモリシステムおよび方法を用いて簡略化される。
【００１４】
本明細書では、一形態では、一群のメモリデバイスについて、情報を有効化する開始点が１つのメモリデバイス以外の全てのデバイスについて較正されるメモリコントローラが提供される。その１つのメモリデバイス（プライムメモリデバイスと呼ぶ）は、基板レベルの設計者などによって予め計算される情報を有効化するための自身の開始点を有する。他のメモリデバイスについての情報を有効化するための開始点は、読取較正シーケンスの実行後、メモリデバイス間のスキューの知識に基づいて較正される。システムの様々なメモリデバイスの間に存在するクロック信号スキューを測定するために、読取情報がメモリコントローラ１２に戻るときに様々なメモリデバイスの間にどれぐらいの遅延が存在するのかに関して、読取中に決定される。読取動作中にクロックスキューを決定するために用いられる回路は様々な種類の回路により実装されてよいことが理解される。種々のメモリデバイス間のオフセット（すなわち、クロックスキュー）を書込経路の所定の開始点に対し適用することによって、１つの開始点を除く全ての開始点がオン・ザ・フライでメモリコントローラによって計算される（すなわち、メモリコントローラの較正モード動作中に生成される）。本明細書に記載の方法において、システムの他のメモリデバイスの間に存在するクロックスキューの知識を用いずにプライムメモリデバイスの開始点をプログラムするためにソフトウェアプログラムが用いられてもよい。このようにして、基板レベルの設計者に大きな自由度が提供される。典型的には、各メモリデバイスの開始点を計算するには、全てのメモリデバイスのタイプおよびメモリシステム仕様に関する詳細な知識が必要である。したがって、全てのメモリデバイスについて以前に計算された開始点を使用することによって、新たな開始点の値を再計算または再記憶することなく、メモリデバイスまたはレイアウトを変更する性能をほぼ用いずに、ごく特定のメモリ仕様にエンドユーザをロックする。これに加えて、本明細書の方法では、メモリシステム内のメモリデバイスのルーティングまたは配置に直接的に帰するクロックスキューを補償する性能に不利な影響を与えることなく、メモリシステム基板の物理的なレイアウトの変更を可能とする。
【００１５】
代替形態では、様々な種類のＤＲＡＭデバイスが用いられてよい。代替形態では、レジスタ１４に与えられた値がメモリシステム１０内に記憶されてもよく、ディスクドライブ、不揮発性メモリ（ヒューズ、アンチヒューズ、またはＲＯＭの使用を含む）、またはレジスタ・エンコーディングの使用など、メモリシステム１０外に記憶されてもよい。これに加えて、様々な種類の論理回路が開示の回路を実装するために用いられてもよい。
【００１６】
一形態では、複数のメモリデバイスの各メモリデバイスについて読取テストを実行し、複数のメモリデバイスの各メモリデバイスの読取遅延時間を生成することによる、メモリを動作させる方法が提供される。複数のメモリデバイスは、プライムメモリデバイスとプライムメモリデバイスを含まないメモリデバイスのサブセットとを含み、サブセットは少なくとも１つのメモリデバイスを含む。サブセットの各メモリデバイスについて、プライムメモリデバイスの読取遅延時間をサブセットの各メモリデバイスの読取遅延時間と比較し、サブセットの各メモリデバイスの遅延差を生成する。サブセットの各メモリデバイスについて、プライムメモリデバイスの書込テスト開始時間と各メモリデバイスの遅延差とを結合し、各メモリデバイスの書込テスト開始時間を生成する。サブセットの各メモリデバイスについて、サブセットの各メモリデバイスの書込テスト開始時間を用いて各メモリデバイスの書込テストを実行し、サブセットの各メモリデバイスの書込起動時間を生成する。別の形態では、プライムメモリデバイスの書込テスト開始時間を用いてプライムメモリデバイスの書込テストを実行し、プライムメモリデバイスの書込起動時間を生成する。サブセットの各メモリデバイスの書込起動時間を用いて各メモリデバイスに対し書込動作を実行する。一形態では、１つのメモリデバイスの書込起動時間は、該メモリデバイスに対する書込動作中のメモリコントローラによるデータストローブ信号のタイミングを表す。別の形態では、１つのメモリデバイスの書込起動時間は、該メモリデバイスによって受信されるメモリクロック信号に対するデータストローブ信号のタイミングを表す。別の形態では、複数のメモリデバイスの各メモリデバイスについて読取テストを実行する工程は、メモリコントローラが、各メモリデバイスに命令信号を提供し、これに応答して各メモリデバイスから信号を受信するまでの時間を測定する。さらに別の形態では、サブセットの各メモリデバイスについて、書込テスト開始時間は、各メモリデバイスに提供されたメモリクロック信号に対するサブセットの各メモリデバイスにメモリコントローラによって提供された信号のタイミングを表す。別の形態では、サブセットの各メモリデバイスの書込テストを実行する工程は、メモリコントローラが各メモリデバイスに１つ以上のパルスからなる一連のパルスを提供する工程を含み、各メモリデバイスの書込テスト開始時間は、各メモリデバイスに提供されたクロック信号に対する一連のパルスのうちの第１のパルスのタイミングを表す。別の形態では、書込テストの実行は、各メモリデバイスが、メモリクロック信号の特定の位相内においてメモリコントローラからパルスが受信されたことを示す指標を提供することを含む。さらに別の形態では、複数のメモリデバイスの各メモリデバイスはＤＲＡＭメモリデバイスである。別の形態では、サブセットの各メモリデバイスの遅延時間は、メモリコントローラと各メモリデバイスとの間のクロック信号経路の長さと、メモリコントローラとプライムメモリデバイスとの間のクロック信号経路の長さとの間の差に依存する。別の形態では、読取テスト、比較、結合の実行、及び書込テストの実行は、較正モードにあるメモリによって実行される。
【００１７】
別の形態では、複数のメモリデバイスと信号を交換する複数の端子を含むＩ／Ｏ回路を有するメモリコントローラが提供される。読取テスト中に複数のメモリデバイスから受信される信号から複数のメモリデバイスの各メモリデバイスの読取遅延を決定するためにＩ／Ｏ回路に接続されている読取較正回路が提供され、複数のメモリデバイスは、プライムメモリデバイスとプライムメモリデバイスを含まない１つ以上のメモリデバイスからなる一組のメモリデバイスとを含む。計算回路は、１つ以上のメモリデバイスからなる一組のメモリデバイスの書込テスト開始時間を計算し、一組のメモリデバイスの各メモリデバイスについて、各メモリデバイスについて決定された読取遅延とプライムメモリデバイスの読取遅延とを比較して遅延差を決定し、遅延差をプライムメモリデバイスに関連する書込テスト開始時間と結合して各メモリデバイスのセットに関連する書込テスト開始時間を生成する。書込レベリング回路は、書込テスト中に複数のメモリデバイスのための書込起動時間を決定し、複数のメモリデバイスの各メモリデバイスについて、各メモリデバイスに関連した書込テスト開始時間は、書込テスト中に信号を提供して各メモリデバイスの書込起動時間を決定するために用いられる。一形態では、メモリコントローラは、複数のメモリデバイスにメモリクロック信号を提供するためのクロック信号端子を有する。複数のメモリデバイスのうちの１つのメモリデバイスの書込起動時間を決定するための書込テスト中、メモリコントローラはメモリデバイスに関連する書込テスト開始時間を用いて、クロック信号端子においてメモリデバイスに提供されるメモリクロック信号に対する複数の端子のうちの１つの端子においてメモリデバイスに提供される信号の時間を測定する。別の形態では、書込テスト中に生成される信号は差動信号である。別の形態では、メモリコントローラは、複数のメモリデバイスにメモリクロック信号を提供するためのクロック信号端子を有する。複数のメモリデバイスのうちの１つのメモリデバイスの書込起動時間を決定するための書込テスト中、メモリコントローラがメモリデバイスに関連する書込テスト開始時間を用いて、クロック信号端子においてメモリデバイスに提供されるメモリクロック信号に対する複数の端子のうちの１つの端子においてメモリデバイスに提供される１つ以上のパルスからなる一連のパルスのうちの第１のパルスの時間を測定する。別の形態では、メモリコントローラは、複数のメモリデバイスにメモリクロック信号を提供するためのクロック信号端子を有する。メモリコントローラは、複数のメモリデバイスのうちの１つのメモリデバイスの書込起動時間を用いて、クロック信号端子においてメモリデバイスに提供されるメモリクロック信号に対する、データを書き込むために複数の端子のうちの１つの端子においてメモリデバイスに提供されるデータストローブ信号の時間を測定する。別の形態では、読取遅延を決定するための複数のメモリデバイスのうちの１つのメモリデバイスに対する読取テスト中、メモリコントローラは、命令信号を送信し、メモリデバイスによる命令信号の受信を示す応答を受信する際の時間の遅延を測定する。さらに別の形態では、メモリコントローラは、プライムメモリデバイスに関連する書込テスト開始時間を記憶するための不揮発性レジスタをさらに備える。さらに別の形態では、複数の端子は、各々複数のメモリデバイスのうちの１つのメモリデバイスに各々接続するための複数のデータストローブ端子を含む。メモリコントローラは、読取テスト中、命令信号に応答して複数のメモリデバイスから複数のデータストローブ端子を介して指標を受信する。メモリコントローラは、書込テストのために複数のデータストローブ端子に信号を提供して書込起動時間を決定し、複数のメモリデバイスに対するデータ書込中、メモリコントローラは、複数のメモリデバイスにデータストローブ信号を提供する。
【００１８】
本明細書における「接続」の語は、直接的な結合または機械的な結合に限定されることを意図したものではない。本明細書に記載の発明は特定の実施形態を参照して記載されているが、添付の特許請求の範囲に記載の本発明の範囲から逸脱することなく様々な修正及び変更が行われ得る。例えば、ＭＯＳ（金属酸化物半導体）、バイポーラ、ＧａＡｓ、シリコン・オン・インシュレータ（ＳＯＩ）など、様々な種類のトランジスタがメモリコントローラおよびメモリデバイスの回路を実装するために用いられてよい。電源電圧の減少量は、特定用途の要件に従って調整可能である。したがって、明細書及び図面は、限定的な意味にではなく単なる例と見なされるものであり、係る修正は全て、本発明の範囲に含まれることが意図される。特定の実施形態に関連して本明細書に記載した利益、利点、又は課題の解決手段は、全ての又は任意の請求項について必須の、必要な、又は不可欠な特徴や要素であると解釈されることを意図したものではない。
【図１】
0005392688.tif 000002
【図２】
0005392688.tif 000003
【図３】
0005392688.tif 000004
【図４】
0005392688.tif 000005