(57)【特許請求の範囲】
【請求項１】
バスインターフェースを介してメモリモジュールと通信するためのインターフェースと、
位相補間器と、
複数のリードトレーニング動作を実行するためのメモリコントローラのロジックと、を備え、前記メモリコントローラのロジックは、
リードおよびライト動作の間にリードトレーニング動作を開始することであって、第１のリードオフセットは、いつ受信データのサンプリングを開始するかを決定するために使用される、開始することと、
ランダムリード識別子である第１のリード識別子を生成することと、
第１のリードコマンドとともに、前記第１のリード識別子を前記メモリモジュールに送信することと、
前記バスインターフェースの側波帯レーンを介して、前記メモリモジュールから第２のリード識別子を受信することと、
前記第２のリード識別子が、前記第１のリードコマンドとともに送信された前記第１のリード識別子と一致することを決定することと、
前記第２のリード識別子が前記第１のリード識別子を含むという前記決定の結果として、リードデータが前記メモリモジュールからの前記第２のリード識別子を用いて前記バスインターフェース上でサンプリングされる、第２のリードオフセットを決定することであって、前記第２のリードオフセットを決定することは、前記第２のリード識別子におけるデータアイの前記決定を含む、決定することと、
データのサンプリングに使用される補間信号を生成するための前記位相補間器の設定を決定することと、を行うためのものである
集積回路装置。
【請求項２】
前記メモリコントローラのロジックはさらに、前記メモリモジュールにグラント信号を送信することを行うためのものである
請求項１に記載の集積回路装置。
【請求項３】
前記メモリコントローラのロジックはさらに、前記第２のリードオフセットの前記決定の一部として、前記第２のリード識別子が前記メモリコントローラによりリードされたタイミングからの複数の端部を決定することを行うためのものである
請求項１または２に記載の集積回路装置。
【請求項４】
前記メモリコントローラのロジックはさらに、
前記第２のリード識別子が、前記第１のリードコマンドとともに送信された前記第１のリード識別子を含まないことを決定することと、
前記第２のリードオフセットが決定されるまで、ランダムリード識別子である第３のリード識別子を生成し、前記第３のリード識別子を含む、前記メモリモジュールへの第２のリードコマンドを送信する、複数のイタレーションを実行することと、を行うためのものである
請求項１から３のいずれか１項に記載の集積回路装置。
【請求項５】
前記集積回路装置はさらに、リニアフィードバックシフトレジスタ（ＬＦＳＲ）を備え、前記リニアフィードバックシフトレジスタ（ＬＦＳＲ）は、前記第１のリード識別子を生成するためのものである
請求項１から４のいずれか１項に記載の集積回路装置。
【請求項６】
前記集積回路装置はさらに、リニアフィードバックシフトレジスタ（ＬＦＳＲ）を備え、前記リニアフィードバックシフトレジスタ（ＬＦＳＲ）は、前記第１のリード識別子および前記第３のリード識別子を生成するためのものである
請求項４に記載の集積回路装置。
【請求項７】
プロセッサと、
メモリモジュールと、
バスインターフェースと、
メモリコントローラとを備え、
前記メモリコントローラは、前記プロセッサに接続され、前記メモリモジュールは、前記バスインターフェースを介して前記メモリコントローラに接続され、前記メモリコントローラは、位相補間器を有し、
前記メモリコントローラは、複数のリードトレーニング動作を実行するためのロジックを有し、
前記メモリコントローラのロジックは、
リードおよびライト動作の間にリードトレーニング動作を開始することであって、第１のリードオフセットは、いつ受信データのサンプリングを開始するかを決定するために使用される、開始することと、
ランダムリード識別子である第１のリード識別子を生成することと、
第１のリードコマンドとともに、前記第１のリード識別子を前記メモリモジュールに送信することと、
前記バスインターフェースの側波帯レーンを介して、前記メモリモジュールから第２のリード識別子を受信することと、
前記第２のリード識別子が、前記第１のリードコマンドとともに送信された前記第１のリード識別子と一致することを決定することと、
前記第２のリード識別子が前記第１のリード識別子を含むという前記決定の結果として、リードデータが前記メモリモジュールからの前記第２のリード識別子を用いて前記バスインターフェース上でサンプリングされる、第２のリードオフセットを決定することであって、前記第２のリードオフセットを決定することは、前記第２のリード識別子におけるデータアイの前記決定を含む、決定することと、
データのサンプリングに使用される補間信号を生成するための前記位相補間器の設定を決定することと、を行うためのものである
システム。
【請求項８】
前記メモリコントローラのロジックはさらに、前記メモリモジュールにグラント信号を送信することを行うためのものである
請求項７に記載のシステム。
【請求項９】
前記メモリコントローラのロジックはさらに、前記第２のリードオフセットの前記決定の一部として、前記第２のリード識別子が前記メモリコントローラによりリードされたタイミングからの複数の端部を決定することを行うためのものである
請求項７または８に記載のシステム。
【請求項１０】
前記メモリコントローラのロジックはさらに、
前記第２のリード識別子が、前記第１のリード識別子を含まないことを決定することと、
前記第２のリードオフセットが決定されるまで、ランダムリード識別子である第３のリード識別子を生成し、前記第３のリード識別子を含む、前記メモリモジュールへの第２のリードコマンドを送信する、複数のイタレーションを実行することと、を行うためのものである
請求項７から９のいずれか１項に記載のシステム。
【請求項１１】
前記システムはさらに、リニアフィードバックシフトレジスタ（ＬＦＳＲ）を備え、前記リニアフィードバックシフトレジスタ（ＬＦＳＲ）は、前記第１のリード識別子を生成するためのものである
請求項７から１０のいずれか１項に記載のシステム。
【請求項１２】
前記システムはさらに、リニアフィードバックシフトレジスタ（ＬＦＳＲ）を備え、前記リニアフィードバックシフトレジスタ（ＬＦＳＲ）は、前記第１のリード識別子および前記第３のリード識別子を生成するためのものである
請求項１０に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書において記載される複数の実施形態は、概して、メモリコントローラが、チャネル及びメモリコントローラに連結される複数のスロットと互換性のあるピンレイアウトを有する複数のメモリモジュールと、単一のチャネル又はバス上で通信するメモリシステムに関する。
【背景技術】
【０００２】
メモリコントローラは、インターフェース又はバス上の、プロセッサと１又は複数のメモリモジュールとの間におけるデータのフローを管理する。メモリコントローラは、メモリモジュールへのリード及びライト、及び、ＤＲＡＭに格納されたデータのリフレッシュに必要とされるロジックを含み、別個のチップとして実装される。メモリコントローラは、チャネルに連結される複数のメモリモジュールによって用いられる、Ｊｏｉｎｔ  Ｅｌｅｃｔｒｏｎ  Ｄｅｖｉｃｅ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃｏｕｎｃｉｌ（ＪＥＤＥＣ）Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ  Ｔｈｉｒｄ Ｇｅｎｅｒａｔｉｏｎ（ＤＤＲ３）Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＳＤＲＡＭ）プロトコルなどのプロトコルをサポートする。
【０００３】
メモリへのインターフェースを用いる前に、メモリコントローラは、複数のメモリモジュールからリードデータをサンプリングすべくメモリコントローラがアクティブ化するタイミングを調整することによって、複数の動作について複数のメモリモジュールを設定しなくてはならない。位相補間器などの信号調整装置は、メモリコントローラによって制御されてクロック位相情報を生成し、かつ、異なる決定された位相を有する複数の基準信号及び複数の位相制御信号に応答してデータサンプリング信号を調整し、リードデータが送信される中心か又はデータアイにおいて、リードデータの中心をサンプリングする。
【図面の簡単な説明】
【０００４】
複数の添付の図面を参照して、複数の実施形態が例として説明される。図面は縮尺通りではなく、同様の参照番号は同様の要素を指す。
【図１】メモリシステムを有するシステムの実施形態を示す。
【図２】メモリモジュールの実施形態を示す。
【図３】メモリコントローラとメモリモジュールとの間のバスインターフェースの実施形態を示す。
【図４】サンプル信号を生成すべく位相補間器を調節するよう細かいリードトレーニングを実行するための複数の動作の実施形態である。
【図５】リードデータが受信されるリードオフセットを決定するよう粗いリードトレーニングを実行するための複数の動作の実施形態を示す。
【図６】複数の通常リード動作中に位相補間器のトレーニングを実行するための複数の動作の実施形態を示す。
【発明を実施するための形態】
【０００５】
メモリインターフェース上で、メモリモジュールはデータ信号と共に複数のストローブ信号をメモリコントローラに送信する。ここで、メモリコントローラはそれらのストローブ信号を処理して、いつ複数の受信機をオンにし、データをリードするべきかを決定する。次にメモリコントローラは他の複数の手順を用いて、位相補間器を用いるなどして、リードするためにどこでリードデータをサンプリングすべきかを決定する。
【０００６】
複数の記載される実施形態は、複数の通常リード動作中に位相補間器を調節すべく、細かいリードトレーニング、続いて粗いリードトレーニング、及びその次に高度なリードトレーニングを実行するための複数の技術を提供する。複数の記載される実施形態は、位相補間器を調節すべく、メモリコントローラによって用いられる複数の信号を戻すよう、メモリモジュールに側波帯信号レーンを提供する。さらに、メモリコントローラは、データ及びコマンドのバスラインとは別個のバス上の側波帯レーンを介してメモリモジュールがメモリコントローラのために戻す複数のメモリモジュール信号パターンを提供し、これを用いて、いつ複数の受信機をオンにし、戻されたリードデータをサンプリングすべきかのリードオフセットタイミングを決定する。
【０００７】
以下の説明では、本発明のより完全な理解を提供すべく、ロジック実装、演算コード、オペランドを指定する手段、リソースパーティショニング／共有／重複の実装、システムコンポーネントのタイプ及び相互関係、及び、ロジックパーティショニング／統合の選択などの多数の具体的な詳細が記載される。しかしながら、当業者ならば、そのような具体的な詳細なしに本発明は実施され得ることを理解するであろう。他の複数の例において、制御構造、ゲートレベルの回路、及び完全なソフトウェア命令シーケンスは、本発明を不明瞭にさせないように、詳細には示されていない。当業者であれば、含まれた説明を読むことで、過度に実験をすることなく、適切な機能を実装可能であろう。
【０００８】
明細書における、「一実施形態」、「実施形態」、「例示的な実施形態」等への言及は、説明される実施形態は特定の特徴、構造、又は特性を含み得るが、全ての実施形態が必ずしも、その特定の特徴、構造、又は特性を含まなくてもよいことを示す。さらに、そのような表現は、必ずしも同一の実施形態を指すわけではない。
【０００９】
以下の説明及び特許請求の範囲において、「連結」及び「接続」という用語、並びにこれらの派生語が用いられ得る。これらの用語は互いに同義であると意図されてはいないことが理解されるべきである。「連結」は、互いに直接物理的に又は電気的に接触していても、していなくてもよい２又は２より多い要素が、互いに協同又は相互作用することを示すために使用される。
【００１０】
「接続」は、互いに連結される２又は２より多い要素の間での通信の確立を示すために使用される。複数の特定の実施形態は、複数のメモリデバイスの複数の電子アセンブリに関する。複数の実施形態は、複数の電子アセンブリを形成するための複数のデバイス及び複数の方法の両方を含む。
【００１１】
図１は、通常マザーボード上に搭載される１又は複数のプロセッサ１０２と、メモリコントローラ１０４と、複数のメモリモジュール２００ａ、２００ｂとを含むコンピューティングシステム１００の実施形態を示す。プロセッサ１０２は、中央処理装置、マルチコアプロセッサを備え得る。メモリコントローラ１０４は、プロセッサ１０２からの複数のメモリアクセスリクエストに応答して、チャネル、バスインターフェース等とも称されるバス１０８を介して複数のメモリモジュール２００ａ、２００ｂと通信する。ここで、メモリモジュール２００ａ、２００ｂの両方は、同一のバス１０８に別々に且つ独立して接続される。メモリコントローラ１０４は、複数の動作を実行すべく実行されるコード又はロジックと、複数の入力タイミング信号を受信し、かつ受信されたリードデータ信号のデータアイと揃えられる補間サンプリング信号を生成するための位相補間器１１２と、粗いリードトレーニングフェーズ及び高度なリードトレーニングフェーズにおいて用いられるランダムな複数のリード識別子を生成するためのリニアフィードバックシフトレジスタ（ＬＦＳＲ）１１４と、複数のトレーニング動作中に用いられる複数の値を格納するためのトレーニングレジスタ１１６とを備えるコントローラロジック１１０を含み得る。
【００１２】
図１の実施形態において、メモリモジュール２００ａ、２００ｂはシステム１００のマザーボード上の複数のスロット又は複数のメモリソケットに搭載される。メモリモジュール２００ａ、２００ｂは、マザーボード上の複数のメモリスロットにおけるピン配置と互換性のあるピン配置を有する、同一又は異なる複数のタイプのメモリモジュールを含み得る。さらに、それらのメモリモジュールは、Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ  Ｆｏｕｒｔｈ  Ｇｅｎｅｒａｔｉｏｎ（ＤＤＲ４）プロトコル及び追加の複数のプロトコルなどの、同一又は異なる複数のメモリプロトコルをサポートし得る。２つのメモリモジュール２００ａ、２００ｂのみが示されるが、複数のメモリモジュールが存在してよい。
【００１３】
メモリモジュール２００ａ、２００ｂのそれぞれは、メモリモジュール２００ａ、２００ｂの片面又は両面においてメモリチップ２０２ａ、２０４ａ、２０６ａ、２０８ａ及び２０２ｂ、２０４ｂ、２０６ｂ、２０８ｂをそれぞれ含み、データを格納する。メモリモジュールパッケージ２００ａ、２００ｂの片面又は両面において配置されるそれらのメモリチップ、例えば、複数のＤＲＡＭチップは、プロセッサ１０２によって用いられているデータを格納する複数の記憶素子を備える。
【００１４】
各メモリモジュール２００ａ、２００ｂは、メモリコントローラ１０４と共に、メモリの管理及び複数のアクセス動作を調整すべく、メモリモジュールコントローラ２１０ａ、２１０ｂを含み得る。メモリコントローラ１０４は、バス１０８に接続されるメモリモジュール２００ａ、２００ｂに関して、複数のリードトレーニング動作、リード動作及びライト動作、並びにメモリ管理動作を管理し、且つ、プロセッサ１０２をメモリモジュール２００ａ、２００ｂにインターフェースで接続する、ロジック１１０などのロジックを含む。メモリコントローラ１０４及び／又はメモリモジュール２００ａ、２００ｂは、プロセッサ１０２と統合され得るか、又は、図１において示されるように、システム１００のマザーボード上にプロセッサ１０２とは別個のロジックにおいて実装され得る。
【００１５】
システム１００のマザーボードは、異なる複数のタイプのメモリチップと互換性のあるメモリソケットを含んでよい。それにより、異なる複数のタイプのメモリモジュール２００ａ、２００ｂが、メモリソケットにおけるピンアーキテクチャと互換性がある限り、異なる複数のタイプのメモリモジュール２００ａ、２００ｂが、複数の異なるメモリプロトコルをサポートする異なる複数のタイプのメモリデバイスをサポートすることを可能にする。
【００１６】
一実施形態において、メモリモジュール２００ａ、２００ｂは、ＬＰＤＤＲ、デュアルインラインメモリモジュール（ＤＩＭＭ）、例えば、バッファ無しＤＩＭＭ（ＵＤＩＭＭ）、Ｌｏａｄ  Ｒｅｄｕｃｅｄ  Ｄｕａｌ−ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ（ＬＲＤＩＭＭ）、Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ  Ｄｕａｌ  Ｉｎ−ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ（ＳＯＤＩＭＭ）等、の同一又は異なるタイプのダブルデータレートシンクロナスダイナミックランダムアクセスメモリ（ＤＤＲ  ＳＤＲＡＭ）メモリモジュールを含み得る。メモリモジュール２００ａ、２００ｂは、ＮＡＮＤ（フラッシュ）メモリ、強誘電体ランダムアクセスメモリ（ＦｅＴＲＡＭ）、ナノワイヤベースの不揮発性メモリ、相変化メモリ（ＰＣＭ）などの３次元（３Ｄ）クロスポイントメモリ、メモリスタ技術を組み込むメモリ、磁気抵抗ランダムアクセスメモリ（ＭＲＡＭ）、スピントランスファートルク（ＳＴＴ）−ＭＲＡＭ等を含む様々な形態のメモリを実装し得るが、それらに限定されない。
【００１７】
図２は、複数のメモリモジュール動作、及びメモリコントローラ１０４との相互作用を実行するメモリモジュールコントローラ２１０を含むものとして、メモリモジュール２００ａ、２００ｂなどのメモリモジュール２００の実施形態のさらなる詳細が提供される。メモリモジュール２００は、モードレジスタセット（ＭＲＳ）コマンドを用いて設定され得る、データを有するメモリモジュールコントローラ２１０中のモードレジスタ２１２と、メモリチップ２０２、２０４、２０６、２０８のための、リードデータ及びライトデータをバッファリングするためのリードバッファ２１４及びライトバッファ２１６とを含み得る。バッファ２１４、２１６は、メモリモジュールコントローラ２１０内において実装されるか、又は、メモリモジュール２００において、メモリモジュールコントローラ２１０の外部の回路において実装され得る。さらなる複数の実施形態において、モードレジスタ２１２はメモリチップ２０２、２０４、２０６、２０８において実装され得る。
【００１８】
メモリモジュールコントローラ２１０及びメモリコントローラ１０４の動作を実装するコード又はロジックは、メモリの中にロードされ、且つプロセッサによって実行されるコンピュータ可読コードとして実装され得るか、又は、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）等においてなど、ハードウェアロジックにおいてエンコードされ得る。
【００１９】
記載される複数の実施形態のロジック又はコードは、複数の機械実行可能命令を格納するための電気的ハードウェア及び他のハードウェアの複数の要素を有するデバイス又は装置を含む機械可読記憶媒体において実装され得る。機械可読媒体は、フラッシュメモリ、光ディスク、コンパクトディスクリードオンリメモリ（ＣＤ−ＲＯＭ）、デジタルバーサタイル／ビデオディスク（ＤＶＤ）ＲＯＭ、ランダムアクセスメモリ（ＲＡＭ）、消去可能プログラム可能リードオンリメモリ（ＥＰＲＯＭ）、電気的消去可能プログラム可能リードオンリメモリ（ＥＥＰＲＯＭ）、磁気カード又は光カード、及び、複数の電子命令を格納するのに好適な他の機械可読媒体を含み得るが、それらに限定されない。
【００２０】
複数の代替的な実装において、記載される複数の実施形態のロジック又はコードは、信号伝送媒体において実装され得る。
【００２１】
図３は、メモリコントローラ１０４とメモリモジュール２００との間の複数のバスインターフェースライン１０８の実施形態を示す。複数のバスインターフェースライン１０８は、複数の側波帯ラインを有する側波帯レーン３００と、メモリコントローラ１０４がメモリモジュール２００に複数のコマンドを通信するコマンド及び制御信号ライン３０２と、メモリモジュール２００がコマンド／制御ライン３０２上でアドレス信号及び制御信号をサンプリングするために用いる、メモリコントローラ１０４からメモリモジュール２００への差動クロック入力信号（ＤＣＬＫ）３０４と、リードデータ及びライトデータがメモリコントローラ１０４とメモリモジュール２００との間で送信されるデータライン３０６とを含む。追加の複数のバスラインが他の複数の目的のために含まれてよい。
【００２２】
側波帯レーン３００は、メモリコントローラ１０４がトレーニング及び他の複数の目的のために用いることが可能であり、メモリコントローラ１０４からの複数の制御信号に応答した追加の情報を送信するための１又は複数の信号ラインを有する。例えば、メモリコントローラ１０４は、リード受信肯定応答を受信することに応答して、メモリモジュール２００にグラントメッセージを送信し得る。このことは、メモリモジュール２００に、データを送信する前に、側波帯レーン３００上でリード識別子（ＩＤ）信号を送信させ得る。メモリモジュール２００は、側波帯レーン３００を用いて、メモリコントローラ１０４がリードリクエストと共に前に送信したリードＩＤを通信し、それに応答して、メモリモジュール２００は、処理、例えば、フィルタリング、解釈等、を施すことなく、側波帯レーン３００上でリードＩＤをループバックし得る。さらに、特定の複数の実施形態において、側波帯レーン３００はメモリモジュール２００上に複数のクロック信号対を備え得る。
【００２３】
一実施形態において、メモリコントローラ１０４にリードＩＤを送信して戻す側波帯レーン３００は、クロック周波数ではなく、コマンドの周波数で複数の信号を送信する。一実施形態において、側波帯レーン３００は、クロックを送信し、且つ、クロック入力信号（ＤＣＬＫ）３０４の周期の２倍であるクロックパターンを送信するよう意図され得る。メモリモジュール２００は、リードデータを送信する前に、複数の信号及び受信されたリードＩＤを制御信号の一部として側波帯レーン３００上で送信し得る。これらのリードＩＤ信号は、グラント信号などの制御信号に対する特定のタイミング関係でデータバーストを送信し得る。このタイミング関係は、メモリモジュールの複数の遅延及びチャネルに依存して、ある範囲内で変化し得る。特定の複数の実施形態においては、メモリモジュール２００はデータバーストと共にストローブを送信しなくてよい。それにより、メモリコントローラ１０４は細かいリードトレーニングを実行し、リードＩＤ信号の複数のサンプリング遅延をトレーニングしてリードＩＤのシグナリングアイの中心に揃え、低いビットエラーレートを実現する。リードＩＤの複数の信号は、データバスの周波数の１／２で送信され得るが、これらの速さは最大１６００ＭＴｐｓにまで更に上げることが可能である。
【００２４】
図４は、メモリコントローラロジック１１０がメモリモジュール２００と連携して位相補間器１１２の細かいリードトレーニングを実行し、データアイに調整される補間された複数のサンプル信号を提供できるようにする、メモリコントローラロジック１１０及びメモリモジュールコントローラ２０２のロジックによって実行される複数の動作の実施形態を示す。細かいリードトレーニングは、システム１００のブート中、バス１０８のプロービング中に開始され得る。細かいリードトレーニングを開始すべく、メモリコントローラロジック１１０は（ブロック４００において）コマンドを送信して、細かいリードトレーニングモードを開始するよう、メモリモジュール２００中の複数のモードレジスタ２１２にプログラムする。細かいリードトレーニングモードを示すべく複数のモードレジスタ２１２がライトされたことに応答して、側波帯レーン３００上でメモリモジュールコントローラ２１０は（ブロック４０４及び４０６において）、側波帯レーン３００の第１の信号ライン上で第１のパターンを、及び第１の信号ラインとは異なる第２の信号ライン上で第２のパターンを送信する。第１及び第２のパターンは、１０１０及び０１０１などの反対の値を有する複数のクロック信号を備え得る。特定の複数の実施形態において、それらのクロックパターンはＤＣＬＫ３０４のクロック信号の周期の２倍の周期を有し得て、クロック周波数３０４ではなく、コマンド／制御信号ライン３０２における周波数を有し得る。側波帯レーン３００の別個の信号ライン上の１０１０及び０１０１などのそれらの信号は、位相がずれていてよいし、又は同相であってもよい。さらに、ブロック４０４及び４０６における送信されたそれらのパターンは、側波帯レーン３００の別個のライン上で連続モードで送信され得る。
【００２５】
第１及び第２のパターンの複数のビットを送信した後、（ブロック４０８において）複数のモードレジスタ２１２が細かいリードトレーニングモードを示し続ける場合、制御はブロック４０４に戻って、反対の値を有する複数のパターンを送信することを続ける。（ブロック４０８において）細かいモードのトレーニングが終了した場合、粗いリードトレーニングフェーズが（ブロック４１０において）開始し得る。
【００２６】
メモリコントローラロジック１１０が（ブロック４１２において）送信されたビットパターンを受信すると、（ブロック４１４において）受信されたビットが複数のトレーニングレジスタ１１６に格納されるビット値の反対の値、０に対して１、１に対して０、でない場合、（ブロック４１６において）その受信されたビットが複数のトレーニングレジスタ１１６に格納される。（ブロック４１４において）受信されたビット値が格納されたビット値の反対である場合、（ブロック４１８において）その反対の値のビット（又はパターン）が受信されたタイミングの決定が成される。次に、（ブロック４２０において）メモリコントローラロジック１１０は、タイミングを変更して、一致が見つけられなくなるまで、決定されたタイミングから外側に両方向にリードする、すなわちスイープすることによって、決定されたタイミングから両端部を決定する。そのポイントにおいて、データアイの両端部は、反対のビットパターンが受信された、決定されたタイミングからの各方向において決定される。次に、（ブロック４２２において）データアイは両端部のタイミングの間のタイミングにあると決定される。一実施形態において、データアイの両端部は、位相補間器１１２の複数のタイミングを変更して、決定されたデータアイから外側に各方向にスイープし、一致がないポイントを見つけることによって決定される。
【００２７】
これらのタイミング信号に基づいて、（ブロック４２４において）、決定されたデータアイにおいてデータをサンプリングするために使用される複数の補間信号を生成する位相補間器１１２を制御するための設定の決定が成される。両端部の間のデータアイにおけるサンプリングのための複数の補間信号を生成すべく位相補間器１１２をトレーニングした後、（ブロック４２６において）メモリコントローラロジック１１０は、細かいリードトレーニングモードを停止して、メモリモジュールコントローラが側波帯レーン３００上で反対の複数のビットパターンを送信し続けることを停止させるよう、メモリモジュール２２０のモードレジスタ２１２にライトする。
【００２８】
特定の複数の実施形態において、１及び０のサンプルとその逆と間の複数の遷移の検出は、データアイを備え得る、リードデータを有するタイミング、両端部、又は両端部の間のリードデータを示す。これらのトレーニング動作は、信号毎に偶数／奇数を取り込むために４つのトレーニング結果のビットを必要とし得る。２つのビットは偶数又は奇数を取り込む場合のみに用いられ得る。位相補間器１１２は、データアイの複数のマージンの中央においてデータをリードすべく補間されたサンプルを生成するよう構成される。
【００２９】
上述された実施形態において、パターンのビットが比較されて、データアイの両端部のためのスイープを開始すべき決定されたタイミングを決定する。代替の実施形態において、メモリコントローラ１１０は単なるビットを比較するのではなく、代わりにパターン全体（例えば、０１０１、１０１０）を比較し得る。そうして、データアイはブロック４１４及び４１８において、単なる単一のビットではなく、格納されたパターンの反対のパターンが検出されるタイミングで決定される。さらに、パターン全体が比較されるそのような複数の実施形態においては、単なる単一のビットではなくパターン全体が、ブロック４１６において複数のトレーニングレジスタ１１６に格納されるだろう。
【００３０】
図５は、メモリコントローラロジック１１０がメモリモジュール２００と連携してメモリコントローラ１０４の粗いリードトレーニングを実行し、リードデータを取り出すべくグラント信号が送信されるのに続いてメモリコントローラ１０４がデータをリードすべくアクティブ化する前に待機すべきオフセット又はタイミングを決定できるようにするよう、メモリコントローラロジック１１０及びメモリモジュールコントローラ２０２のロジックによって実行される複数の動作の実施形態を示す。（ブロック５００において）粗いリードトレーニングを開始すると、（ブロック５０２において）メモリコントローラロジック１１０はＬＦＳＲ１１４を用いてランダムなリードＩＤを生成する。生成されたリードＩＤは、（ブロック５０４において）複数のトレーニングレジスタ１１６にバッファリングされる。メモリコントローラロジック１１０は、（ブロック５０６において）生成されたリードＩＤと共にリードコマンドをメモリモジュール２００に送信する。メモリモジュールコントローラ２１０が（ブロック５０８において）粗いリードトレーニングモードで動作している間、（ブロック５１０において）リードコマンド及びリードＩＤを受信すると、（ブロック５１２において）メモリモジュールコントローラ２１０はリードコマンドを実行する。
【００３１】
（ブロック５０６において）リードＩＤと共にリードコマンドを送信した後、（ブロック５１４において）メモリコントローラロジック１１０はバスインターフェース１０８を介してメモリモジュール２００にグラント信号を送信する。（ブロック５１６において）グラント信号を受信すると、（ブロック５１８において）リクエストされたデータがデータバス３０６上で戻され、（ブロック５２０において）受信されたリードＩＤが側波帯レーン３００上で戻される。リードＩＤ信号はバーストモードで戻される。特定の複数の実施形態においては、リードデータの前にまずリードＩＤが側波帯リードＩＤ信号３００上で戻される。このように、メモリモジュールコントローラ２００はデータをフィルタリングも解釈もすることなく、メモリコントローラ１０４にリードＩＤをループバックする。特定の複数の実施形態において、メモリコントローラロジック１１０は、リードコマンドに対するメモリモジュール２００からの肯定応答（ＡＣＫ）を待機することなくグラント信号を提供し得る。
【００３２】
（ブロック５２２において）メモリコントローラ１０４が側波帯レーン３００上でリードＩＤを受信すると、（ブロック５２４において）メモリコントローラロジック１１０は受信されたリードＩＤが、複数のトレーニングレジスタ１１６に格納される送信されたリードＩＤと一致するかどうかを決定する。（ブロック５２４のいいえの分岐から）一致がない場合、（ブロック５２６において）メモリコントローラロジック１１０はサイクル遅延設定を、グラントが送信されたときからリードＩＤが受信されるときまでのサイクル数になるように変更する。複数のサイクル遅延設定は、いつメモリコントローラロジック１１０がデータをリードしようと試みるかの粗いタイミング設定であり、ブロック５２６においてこの粗いサイクル遅延タイミング又はサイクルレベル時間は、タイミングが、リードＩＤが受信されるときか、又は、グラントが設定されるときからの往復レイテンシ設定に一致するまで調整される。制御はブロック５２６からブロック５０２に戻り、一致があるまで、粗いリードトレーニングのためのランダムな複数のリードＩＤを継続して生成する。（ブロック５２８において）送信されたリードＩＤと受信されたリードＩＤとが一致する場合、（ブロック５２６において）メモリコントローラロジック１１０は、グラント信号の送信から、受信されるリードＩＤと一致するときまでの時間の差分としてリードオフセットを決定する。リードオフセットを決定した後、（ブロック５３０において）粗いリードトレーニングを終了すべく、メモリコントローラロジック１１０はメモリモジュール２００にモードレジスタコマンドを送信し得る。メモリモジュールコントローラ２００は、コマンドを受信すると（ブロック５４０において）複数のモードレジスタ２１２にプログラムし、（ブロック５４２において）粗いリードトレーニングを終了する。
【００３３】
細かいリードトレーニングは、リードデータが送信されるとき、データアイ内でリードするよう、補間されたサンプル信号を生成する位相補間器１１２を制御するための複数の設定を生成し、粗いリードトレーニング段階により得られるものは、グラント信号が設定された後、いつリードデータの受信を開始すべきかを決定するために使用されるリードオフセットである。細かいリードトレーニング及び粗いリードトレーニングの後、決定された、位相補間器１１２の複数の設定及びリードオフセットを用いて、複数の通常リード動作が開始し得る。
【００３４】
図６は、複数の通常リード動作中に高度なリードトレーニングを実行して、リードデータ信号をサンプリングするために使用されるサンプル信号を生成するために使用される位相補間器１１２の複数の設定をさらに改善すべく、メモリコントローラロジック１１０及びメモリモジュールコントローラ２０２のロジックによって実行される複数の動作の実施形態を示す。決定された、位相補間器の複数の設定及びリードオフセットを用いて通常リード／ライト動作中に（ブロック６００において）高度なトレーニングを開始すると、メモリコントローラロジック１１０は図５のブロック５０２−５１４における動作を（ブロック６０２において）実行してリードコマンドと共にリードＩＤ信号を生成し送信する。（ブロック６０４において）通常リード／ライト動作中に高度なトレーニングモードにある間、メモリモジュールコントローラ２１０は、図５のブロック５１０、５１２、５１６、５１８における動作を（ブロック６０６において）実行して、受信されたリードコマンドを処理し、側波帯レーン３００上でリードＩＤを戻す。
【００３５】
（ブロック６０８において）メモリコントローラ１０４が側波帯レーン３００上でリードＩＤを受信すると、（ブロック６１０において）受信されたリードＩＤが、複数のトレーニングレジスタ１１６に格納される送信されたリードＩＤと一致する場合、（ブロック６１２において）リードＩＤがリードされたタイミングが決定される。次に（ブロック６１４において）メモリコントローラロジック１１０は、ブロック４１８から４２６における動作を実行して、決定されたリードＩＤタイミングから両端部を、決定された両端部からデータアイを、及び、決定されたデータアイにおいてデータをサンプリングするために使用される複数の補間信号を生成する位相補間器を制御するための設定を決定する。ランダムに生成された複数のリードＩＤを用いて位相補間器１１２を調節するためのこれらの動作は継続的に実行されて、細かいリードトレーニング中に用いられる複数の反対パターンの反復とは対照的に、データアイの複数のマージンを決定し、ランダムに生成された複数のリードＩＤの形で、よりアグレッシブかつ現実的な複数のパターンと位相補間器１１２の複数の設定の中心を再度合わせる。
【００３６】
（ブロック６１０のいいえの分岐から）一致がない場合、（ブロック６１６において）メモリコントローラロジック１１０はサイクル遅延設定を、グラントが送信されたときからリードＩＤが受信されるときまでのサイクル数になるように変更する。複数のサイクル遅延設定は、いつメモリコントローラロジック１１０がデータをリードしようと試みるかの粗いタイミング設定であり、ブロック６１６においてこの粗いサイクル遅延タイミング又はサイクルレベル時間は、タイミングが、リードＩＤが受信されるときか、又は、グラントが設定されるときからの往復レイテンシ設定に一致するまで調整される。制御はブロック６１６からブロック６０２に戻り、一致があるまで、高度な細かいグレイン（ｇｒａｉｎ）のトレーニングのためのランダムな複数のリードＩＤを継続して生成する。
【００３７】
記載される複数の実施形態は、リードＩＤライン３００上の複数の側波帯リードＩＤ信号のトレーニングが、バス１００上で低いビットエラーレートを実現すること可能にする。記載されるリードトレーニングは、簡単なパターンでアイ中心のサンプリングを実現するという点で効率のよいものである。記載される複数の実施形態は、最悪の場合の複数のマージンを決定すべく、リードＩＤバス３００上に複数の高ストレス（ｈｉｇｈ  ｓｔｒｅｓｓ）なパターンをさらに生成し得る。
【００３８】
本明細書全体を通して、「一実施形態」又は「実施形態」への言及は、その実施形態に関連して説明される特定の特徴、構造、又は特性が、本発明の少なくとも１つの実施形態に含まれることを意味することが理解されるべきである。したがって、本明細書の様々な部分における「実施形態」又は「一実施形態」又は「代替の実施形態」への２回又はそれより多くの言及は、必ずしもすべてが同一の実施形態を指すものではないことが強調され、理解されるべきである。さらに、特定の複数の特徴、複数の構造、又は複数の特性は本発明の１又は複数の実施形態において好適に組み合わせられ得る。
【００３９】
同様に、本発明の複数の実施形態の上記説明において、発明の様々な態様のうち１又は複数のものへの理解を助ける本開示を簡素化する目的で、様々な特徴は、場合によっては単一の実施形態、図、又はそれらの説明に一緒にグループ化されることが理解されるべきである。しかしながら、この開示方法は、特許請求の範囲の主題が、各請求項において明確に記述されるものより多くの特徴を必要とするという意図を反映するものと解釈されるべきではない。むしろ、以下の特許請求の範囲が反映するように、発明の複数の態様は、上記開示された単一の実施形態のすべての特徴より少ないところにある。したがって、詳細な説明に続く特許請求の範囲は、ここでこの詳細な説明に明示的に組み込まれる。
【００４０】
メモリコントローラ１０４及びメモリモジュール２００の記載された複数の動作は、ソフトウェア、ファームウェア、ハードウェア、又はそれらの任意の組み合わせを作り出すための標準的なプログラミング技術及び／又はエンジニアリング技術を用いる方法、装置、コンピュータ可読記憶媒体として実装され得る。記載された複数の動作は、「コンピュータ可読記憶媒体」に保持されるコード又はロジックとして実装され得る。コンピュータ可読記憶媒体は複数の機能を直接的に実行するか、又はコンピュータ可読記憶媒体からのコードをプロセッサが読み出し且つ実行し得る。コンピュータ可読記憶媒体は、電子回路、記憶材料、無機材料、有機材料、生物材料、ケーシング、筐体、コーティング、及びハードウェアのうちの少なくとも１つを含む。コンピュータ可読記憶媒体は、磁気記憶媒体（例えば、ハードディスクドライブ、フロッピー（登録商標）ディスク、テープ等）、光記憶装置（ＣＤ−ＲＯＭ、ＤＶＤ，光ディスク等），揮発性及び不揮発性のメモリデバイス（例えば、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ，ＲＡＭ，ＤＲＡＭ、ＳＲＡＭ，フラッシュメモリ、ファームウェア、プログラマブルロジック等）、ソリッドステートデバイス（ＳＳＤ）等を備え得るが、それらに限定されない。コンピュータ可読記憶媒体は、ハードウェア装置（例えば、集積回路チップ、プログラマブルロジック装置、プログラマブルゲートアレイ（ＰＧＡ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）等）に実装されるデジタルロジックをさらに備え得る。さらに、記載された複数の動作を実行するコードは、複数の「送信信号」において実装され得て、複数の送信信号は、空間中、又は例えば光ファイバ、銅線等の送信メディア中を伝播し得る。コード又はロジックがエンコードされる複数の送信信号は、無線信号、衛星送信、無線波、赤外線信号、Ｂｌｕｅｔｏｏｔｈ（登録商標）等をさらに備え得る。コンピュータ可読記憶媒体に埋め込まれるプログラムコードは、送信側の局又はコンピュータから受信側の局又はコンピュータへと複数の送信信号として送信され得る。コンピュータ可読記憶媒体は複数の送信信号のみからなるものではない。当業者ならば、本発明の範囲から逸脱することなく本構成に対して多数の変更が成され得て、製造物品は、当技術分野において既知の好適な情報担持媒体を備え得ることを認識するであろう。
［例］
以下の複数の例はさらなる複数の実施形態に関する。
【００４１】
例１は、バスを介して少なくとも１つのメモリモジュールに連結される装置であり、当該装置は、少なくとも１つのメモリモジュールへのバスインターフェースと、動作するとき複数の動作を実行するメモリコントローラロジックとを備え、当該複数の動作は、メモリモジュールがバスインターフェースの側波帯レーン上で、連続する複数のビットパターンを送信するトレーニングモードを開始するようメモリモジュールにプログラムすることと、バスインターフェースを介して当該複数のビットパターンを受信することと、受信された複数のビットパターンからビットパターンにおける複数の値の遷移を決定して、複数の値の決定された複数の遷移の間でデータアイを決定することと、決定されたデータアイ内でデータをサンプリングするために使用される複数の補間信号を生成する位相補間器を制御するための設定を決定することを備える。
【００４２】
例２において、例１の主題は、複数の動作が、トレーニングモードを終了するようメモリモジュールにプログラムすることと、データアイ、及び位相補間器を制御するための設定を決定することに応答して複数のビットパターンを送信することとをさらに備えることを任意に含み得る。
【００４３】
例３において、例１の主題は、受信された複数のクロックビットパターンから遷移を決定することが、レジスタにビットパターンからのリードされた値を格納することと、次のビットパターンの送信からの次にリードされた値が、レジスタ中のリードされた値と一致するかどうかを決定することとを備え、データアイはレジスタに格納される複数の値と一致する２つのリードされた値の端部の間で決定されることを任意に含み得る。
【００４４】
例４において、例１の主題は、複数のビットパターンが、複数のリード識別子信号のために用いられるバスインターフェースの側波帯レーン上に第１の連続するビットパターンを、及び、側波帯レーン上に第２の連続するビットパターンを含み、第１及び第２の連続するビットパターンは反対の値を有することを任意に含み得る。
【００４５】
例５において、例４の主題は、第１の連続するビットパターンは第１のリード識別子信号ライン上で送信され、連続する１０１０パターンを備え、第２の連続するパターンは第２のリード識別子信号ライン上で送信され、連続する０１０１パターンを備えることを任意に含み得る。
【００４６】
例６において、例５の主題は、第１及び第２の連続するパターンがクロック間隔毎に０と１との間で交互に変化して、バスインターフェース上のクロック間隔の周期の２倍の周期を有するクロックパターンを作成することを任意に含み得る。
【００４７】
例７において、例１の主題は、バスインターフェースが、複数のコマンドが送信される複数のコマンドラインと、データが送信される複数のデータラインと、複数のリード識別子信号ラインとを含み、複数のビットパターンは、クロック周波数より小さいコマンド周波数で複数のリード識別子信号ライン上で送信されることを任意に含み得る。
【００４８】
例８において、例１の主題は、複数の動作が、位相補間器を制御するための設定を決定することに応答して、リード識別子と共にリードコマンドをメモリモジュールに送信することと、戻されたリード識別子を含む、メモリモジュールからのリードデータを受信することと、戻されたリード識別子が、リードコマンドと共に送信されたリード識別子と一致すると決定することに応答してリードオフセットを決定することとをさらに備え、リードオフセットは、位相補間器のための決定された設定を用いてデータアイにおいてリードデータをサンプリングすることをいつ開始すべきかを決定するために使用されることを任意に含み得る。
【００４９】
例９はバスを介して少なくとも１つのメモリモジュールに連結される装置であって、当該装置は、少なくとも１つのメモリモジュールへのバスインターフェースと、動作するとき粗いリードトレーニングの複数の動作を実行するメモリコントローラロジックとを備え、当該複数の動作は、メモリモジュールにリードコマンド及びリード識別子を送信することと、バスインターフェースを介してメモリモジュールからリードデータ及び受信されたリード識別子を受信することと、メモリモジュールからの受信されたリード識別子がリードコマンドと共に送信されたリード識別子を含むと決定することに応答してリードオフセットを決定することを備え、リードオフセットは、受信されたリードデータのデータアイにおいてデータをサンプリングすることをいつ開始すべきかを決定するために使用される。
【００５０】
例１０において、例９の主題は、当該複数の動作が、受信されたリード識別子が、リードコマンドと共に送信されたリード識別子と一致しないと決定することに応答して、メモリモジュールからの受信されたリードデータが、生成された新たなリード識別子を含むことに応答してリードオフセットが決定されるまで、新たなリード識別子を生成して、メモリモジュールに送信される新たなリードコマンドに含めるイタレーションを少なくとも１回実行することをさらに備えることを任意に含み得る。
【００５１】
例１１において、例１０の主題は、複数のランダムなリード識別子の値を提供すべく、リード識別子及び複数の新たなリード識別子を生成するために使用されるリニアフィードバックシフトレジスタ（ＬＦＳＲ）を任意に含み得る。
【００５２】
例１２において、例９の主題は、粗いリードトレーニングが、受信されたリード識別子がリードコマンドと共に送信されたリード識別子を含むことに応答して終了されることを任意に含み得る。
【００５３】
例１３において、例９の主題は、リードコマンドに応答してリードデータを戻すとき、リード識別子は、メモリモジュールにリード識別子をループバックさせることを任意に含み得る。
【００５４】
例１４において、例９の主題は、リード識別子が側波帯レーン上でメモリモジュールから送信されることを任意に含み得る。
【００５５】
例１５において、例８の主題は、バスインターフェースが、複数のコマンドが送信される複数のコマンドラインと、データが送信される複数のデータラインと、複数のリード識別子信号ラインとを含み、メモリモジュールは複数のリード識別子信号ライン上でリード識別子を戻すことを任意に含み得る。
【００５６】
例１６において、例１５の主題は、リード識別子が、メモリモジュールから複数のクロック信号上で戻されることを任意に含み得る。
【００５７】
例１７において、例９の主題は、複数の動作が、リードコマンドの送信に続いて、メモリモジュールにグラント信号を送信することをさらに備え、メモリモジュールはグラント信号に応答してリード識別子信号を送信し、リードオフセットはグラント信号が送信された後からのデータが到達する時間の長さであることを任意に含み得る。
【００５８】
例１８はバスを介して少なくとも１つのメモリモジュールに連結される装置であって、当該装置は、少なくとも１つのメモリモジュールへのバスインターフェースと、位相補間器と、動作するとき、粗いリードトレーニングの複数の動作を実行するメモリコントローラロジックとを備え、当該複数の動作は、バスインターフェースのコマンド及びデータの信号ラインとは別個の、バスインターフェースの側波帯レーン上でメモリモジュールから戻されるリード識別子を用いて、バスインターフェース上でリードデータがサンプリングされるリードオフセットを決定すること、及び、リードデータのデータアイにおいてデータをサンプリングすることをいつ開始すべきかを決定すべくリードオフセットを用いる間、リード識別子と共にリードコマンドをメモリモジュールに送信することと、バスインターフェースの側波帯レーン上でメモリモジュールからの受信されたリード識別子を受信することと、受信されたリード識別子が、リードコマンドと共に送信されたリード識別子と一致すると決定することに応答して、受信されたリード識別子がリードされた場所としてデータアイを決定すること、及び、受信されたリード識別子がリードされた、決定されたデータアイにおいてデータをサンプリングするために使用される複数の補間信号を生成する位相補間器を制御するための設定を決定することとを実行することを備える。
【００５９】
例１９において、例１８の主題は、リードオフセットを決定すべくリード識別子を用いることが、リード識別子と共にリードコマンドをメモリモジュールに送信することと、バスインターフェースを介してメモリモジュールから、リードデータと、バスインターフェースの側波帯レーン上で受信される、受信されたリード識別子とを受信することと、受信されたリードデータが、リードコマンドと共に送信されたリード識別子と一致するタイミングとしてリードオフセットを決定することとを備えることを任意に含み得る。
【００６０】
例２０において、例１８の主題は、粗いリードトレーニング中、及び、データアイにおいてデータをサンプリングすることをいつ開始すべきかを決定すべくリードオフセットを用いる間、複数のリード識別子を生成するために使用されるリニアフィードバックシフトレジスタ（ＬＦＳＲ）を任意に含み得る。
【００６１】
例２１は、バスへのバスインターフェースを介して少なくとも１つのメモリモジュールに連結されるコンピュータ可読記憶媒体であり、当該コンピュータ可読記憶媒体は、実行されるとき、複数の動作を実行するロジックを実装し、当該複数の動作は、メモリモジュールがバスインターフェースの側波帯レーン上で、連続する複数のビットパターンを送信するトレーニングモードを開始するようメモリモジュールにプログラムすることと、バスインターフェースを介して複数のビットパターンを受信することと、受信された複数のビットパターンからビットパターンにおける複数の値の遷移を決定して、複数の値の決定された複数の遷移の間でデータアイを決定することと、決定されたデータアイ内でデータをサンプリングするために使用される複数の補間信号を生成する位相補間器を制御するための設定を決定することを備える。
【００６２】
例２２において、例２１の主題は、複数のビットパターンが、複数のリード識別子信号のために用いられるバスインターフェースの側波帯レーン上に第１の連続するビットパターンを、及び、側波帯レーン上に第２の連続するビットパターンを含み、第１及び第２の連続するビットパターンは反対の値を有することを任意に含み得る。
【００６３】
例２３において、例１８の主題は、当該複数の動作が、位相補間器を制御するための設定を決定することに応答して、リード識別子と共にリードコマンドをメモリモジュールに送信することと、メモリモジュールから、戻されたリード識別子を含むリードデータを受信することと、戻されたリード識別子が、リードコマンドと共に送信されたリード識別子と一致すると決定することに応答してリードオフセットを決定することとをさらに含み、当該リードオフセットは、位相補間器のための決定された設定を用いて、データアイにおいてリードデータをサンプリングすることをいつ開始すべきかを決定するために使用されることを任意に含み得る。
【００６４】
例２４は、粗いリードトレーニングの複数の動作を実行すべく、バスへのバスインターフェースを介して少なくとも１つのメモリモジュールに連結されるコンピュータ可読記憶媒体であって、当該コンピュータ可読記憶媒体は、実行されるとき、複数の動作を実行するロジックを実装し、当該動作は、メモリモジュールにリードコマンド及びリード識別子を送信することと、バスインターフェースを介してメモリモジュールからリードデータ及び受信されたリード識別子を受信することと、メモリモジュールからの受信されたリード識別子が、リードコマンドと共に送信されたリード識別子を含むと決定することに応答して、リードオフセットを決定することとを備え、当該リードオフセットは、受信されたリードデータのデータアイにおいてデータをサンプリングすることをいつ開始すべきかを決定するために使用される。
【００６５】
例２５において、例２４の主題は、当該複数の動作が、受信されたリード識別子が、リードコマンドと共に送信されたリード識別子と一致しないと決定することに応答して、メモリモジュールからの受信されたリードデータが、生成された新たなリード識別子を含むことに応答してリードオフセットが決定されるまで、新たなリード識別子を生成して、メモリモジュールに送信される新たなリードコマンドに含めるイタレーションを少なくとも１回実行することをさらに備えることを任意に含み得る。
【００６６】
例２６は、バスインターフェースを介して少なくとも１つのメモリモジュールに連結されるバスへのバスインターフェースをトレーニングするための方法であり、当該方法は、メモリモジュールがバスインターフェースの側波帯レーン上で、連続する複数のビットパターンを送信するトレーニングモードを開始するようメモリモジュールにプログラムする段階と、バスインターフェースを介して当該複数のビットパターンを受信する段階と、受信された複数のビットパターンからビットパターンにおける複数の値の遷移を決定して、複数の値の決定された複数の遷移の間でデータアイを決定する段階と、決定されたデータアイ内でデータをサンプリングするために使用される複数の補間信号を生成する位相補間器を制御するための設定を決定する段階とを備える。
【００６７】
例２７において、例２６の主題は、複数のビットパターンが、複数のリード識別子信号のために用いられるバスインターフェースの側波帯レーン上に第１の連続するビットパターンを、及び、側波帯レーン上に第２の連続するビットパターンを含み、第１及び第２の連続するビットパターンは反対の値を有することを任意に含み得る。
【００６８】
例２８において、例２６及び例２７の主題は、実行されるとき、機械に例２６及び例２７の何れか１つの方法を実行させるコードを含む機械可読媒体を任意に含み得る。
【００６９】
例２９は、バスインターフェースを介して少なくとも１つのメモリモジュールに連結されるバスへのバスインターフェースをトレーニングするための方法であり、当該方法は、メモリモジュールにリードコマンド及びリード識別子を送信する段階と、バスインターフェースを介してメモリモジュールからリードデータ及び受信されたリード識別子を受信する段階と、メモリモジュールからの受信されたリード識別子がリードコマンドと共に送信されたリード識別子を含むと決定することに応答してリードオフセットを決定する段階とを備え、当該リードオフセットは、受信されたリードデータのデータアイにおいてデータをサンプリングすることをいつ開始すべきかを決定するために使用される。
【００７０】
例３０において、例２９の主題は、複数の動作が、受信されたリード識別子が、リードコマンドと共に送信されたリード識別子と一致しないと決定することに応答して、メモリモジュールからの受信されたリードデータが、生成された新たなリード識別子を含むことに応答してリードオフセットが決定されるまで、新たなリード識別子を生成して、メモリモジュールに送信される新たなリードコマンドに含めるイタレーションを少なくとも１回実行することをさらに備えることを任意に含み得る。
【００７１】
例３１はバスを課して少なくとも１つのメモリモジュールに連結される装置であり、当該装置は、メモリモジュールがバスインターフェースの側波帯レーン上で、連続する複数のビットパターンを送信するトレーニングモードを開始するようメモリモジュールにプログラムするための手段と、バスインターフェースを介して当該複数のビットパターンを受信するための手段と、受信された複数のビットパターンからビットパターンにおける複数の値の遷移を決定して、複数の値の決定された複数の遷移の間でデータアイを決定するための手段と、決定されたデータアイ内でデータをサンプリングするために使用される複数の補間信号を生成する位相補間器を制御するための設定を決定するための手段とを備える。
【００７２】
例３２において、例３１の主題は、トレーニングモードを終了するようメモリモジュールにプログラムし、データアイ、及び位相補間器を制御するための設定を決定することに応答して、複数のビットパターンを送信するための手段を任意に含み得る。
【００７３】
例３３において、例３１の主題は、受信された複数のクロックビットパターンから遷移を決定するための手段が、レジスタにビットパターンからのリードされた値を格納するための手段と、次のビットパターンの送信からの次にリードされた値が、レジスタ中のリードされた値と一致するかどうかを決定するための手段とを備え、データアイはレジスタに格納される複数の値と一致する２つのリードされた値の端部の間で決定されることを任意に含み得る。
【００７４】
例３４において、例３１の主題は、位相補間器を制御するための設定を決定することに応答して、リード識別子と共にリードコマンドをメモリモジュールに送信するための手段と、戻されたリード識別子を含む、メモリモジュールからのリードデータを受信するための手段と、戻されたリード識別子が、リードコマンドと共に送信されたリード識別子と一致すると決定することに応答してリードオフセットを決定するための手段とを任意に含み得て、当該リードオフセットは、位相補間器のための決定された設定を用いて、データアイにおいてリードデータをサンプリングすることをいつ開始すべきかを決定するために使用される。
【００７５】
例３５において、例３４の主題は、受信されたリード識別子が、リードコマンドと共に送信されたリード識別子と一致しないと決定することに応答して、メモリモジュールからの受信されたリードデータが、生成された新たなリード識別子を含むことに応答してリードオフセットが決定されるまで、新たなリード識別子を生成して、メモリモジュールに送信される新たなリードコマンドに含めるイタレーションを少なくとも１回実行するための手段を任意に含み得る。
【００７６】
例３６において、例３１の主題は、リード識別子と共にリードコマンドをメモリモジュールに送信することと、バスインターフェースの側波帯レーン上でメモリモジュールからの受信されたリード識別子を受信することと、受信されたリード識別子が、リードコマンドと共に送信されたリード識別子と一致すると決定することに応答して、受信されたリード識別子がリードされた場所としてデータアイを決定すること、及び、受信されたリード識別子がリードされた、決定されたデータアイにおいてデータをサンプリングするために使用される複数の補間信号を生成する位相補間器を制御するための設定を決定することとを実行することによる、バスインターフェースのコマンド及びデータの信号ラインとは別個の、バスインターフェースの側波帯レーン上で、メモリモジュールから戻されたリード識別子を用いて、リードデータがバスインターフェース上でサンプリングされるリードオフセットを決定するための手段と、リードオフセットを用いて、リードデータのデータアイにおいてデータをサンプリングすることをいつ開始すべきかを決定するための手段とを任意に含み得る。
本実施形態の例を下記の各項目として示す。
［項目１］
少なくとも１つのメモリモジュールへのバスインターフェースと、
動作するとき、複数の動作を実行するメモリコントローラロジックとを備え、前記複数の動作は、
前記メモリモジュールが前記バスインターフェースの側波帯レーン上で、連続する複数のビットパターンを送信するトレーニングモードを開始するよう前記メモリモジュールにプログラムすることと、
前記バスインターフェースを介して前記複数のビットパターンを受信することと、
前記受信された複数のビットパターンからビットパターンにおける複数の値の遷移を決定して、前記複数の値の前記決定された複数の遷移の間でデータアイを決定することと、
前記決定されたデータアイ内でデータをサンプリングするために使用される複数の補間信号を生成する位相補間器を制御するための設定を決定することとを備える、
デバイス。
［項目２］
前記複数の動作は、
前記トレーニングモードを終了するよう前記メモリモジュールにプログラムすることと、前記データアイ、及び前記位相補間器を制御するための前記設定を決定することに応答して、前記複数のビットパターンを送信することとをさらに備える
項目1に記載のデバイス。
［項目３］
前記受信された複数のビットパターンから前記遷移を決定することは、
レジスタに前記ビットパターンからのリードされた値を格納することと、
次の前記ビットパターンの送信からの次にリードされた値が、前記レジスタ中の前記リードされた値と一致するかどうかを決定することとを含み、前記データアイは前記レジスタに格納される複数の値と一致する２つのリードされた値の端部の間で決定される
項目１又は２に記載のデバイス。
［項目４］
前記複数のビットパターンは、複数のリード識別子信号のために用いられる前記バスインターフェースの前記側波帯レーン上に第１の連続するビットパターンを、及び、前記側波帯レーン上に第２の連続するビットパターンを含み、前記第１の連続するビットパターン及び前記第２の連続するビットパターンは反対の値を有する
項目１から３の何れか一項に記載のデバイス。
［項目５］
前記第１の連続するビットパターンは、第１のリード識別子信号ライン上で送信され、連続する１０１０パターンを備え、第２の連続するパターンは、第２のリード識別子信号ライン上で送信され、連続する０１０１パターンを備える
項目４に記載のデバイス。
［項目６］
前記第１の連続するパターン及び前記第２の連続するパターンは、クロック間隔毎に０と１との間で交互に変化して、前記バスインターフェース上のクロック間隔の周期の２倍の周期を有するクロックパターンを作成する
項目５に記載のデバイス。
［項目７］
前記バスインターフェースは、複数のコマンドが送信される複数のコマンドラインと、データが送信される複数のデータラインと、複数のリード識別子信号ラインとを含み、前記複数のビットパターンは、クロック周波数より小さいコマンド周波数で前記複数のリード識別子信号ライン上で送信される
項目１から６の何れか一項に記載のデバイス。
［項目８］
前記複数の動作は、
位相補間器を制御するための前記設定を決定することに応答して、リード識別子と共にリードコマンドを前記メモリモジュールに送信することと、
前記メモリモジュールから、戻されたリード識別子を含むリードデータを受信することと、
前記戻されたリード識別子が、前記リードコマンドと共に送信された前記リード識別子と一致すると決定することに応答してリードオフセットを決定することとをさらに含み、前記リードオフセットは、前記位相補間器のための前記決定された設定を用いて、前記データアイにおいて前記リードデータをサンプリングすることをいつ開始すべきかを決定するために使用される
項目１から７の何れか一項に記載のデバイス。
［項目９］
少なくとも１つのメモリモジュールへのバスインターフェースと、
動作するとき、粗いリードトレーニングの複数の動作を実行するメモリコントローラロジックとを備え、前記複数の動作は、
前記メモリモジュールにリードコマンド及びリード識別子を送信することと、
前記バスインターフェースを介して前記メモリモジュールからリードデータ及び受信されたリード識別子を受信することと、
前記メモリモジュールからの前記受信されたリード識別子が、前記リードコマンドと共に送信された前記リード識別子を含むと決定することに応答してリードオフセットを決定することを備え、前記リードオフセットは、受信されたリードデータのデータアイにおいてデータをサンプリングすることをいつ開始すべきかを決定するために使用される、
デバイス。
［項目１０］
前記動作は、
前記受信されたリード識別子が、前記リードコマンドと共に送信された前記リード識別子と一致しないと決定することに応答して、前記メモリモジュールからの前記受信されたリードデータが、生成された新たなリード識別子を含むことに応答して前記リードオフセットが決定されるまで、前記新たなリード識別子を生成して、前記メモリモジュールに送信される新たなリードコマンドに含めるイタレーションを少なくとも１回実行することをさらに備える
項目９に記載のデバイス。
［項目１１］
複数のランダムなリード識別子の値を提供すべく、前記リード識別子及び複数の前記新たなリード識別子を生成するために使用されるリニアフィードバックシフトレジスタ（ＬＦＳＲ）をさらに含む
項目１０に記載のデバイス。
［項目１２］
前記粗いリードトレーニングは、前記受信されたリード識別子が、前記リードコマンドと共に送信された前記リード識別子を含むことに応答して終了される
項目９から１１の何れか一項に記載のデバイス。
［項目１３］
前記リード識別子は、前記リードコマンドに応答して前記リードデータを戻すとき、前記メモリモジュールに前記リード識別子をループバックさせる
項目９から１２の何れか一項に記載のデバイス。
［項目１４］
前記リード識別子は側波帯レーン上で、前記メモリモジュールから送信される
項目９から１３の何れか一項に記載のデバイス。
［項目１５］
前記バスインターフェースは、複数のコマンドが送信される複数のコマンドラインと、データが送信される複数のデータラインと、複数のリード識別子信号ラインとを含み、前記メモリモジュールは前記複数のリード識別子信号ライン上で前記リード識別子を戻す
項目８から１４の何れか一項に記載のデバイス。
［項目１６］
前記リード識別子は、前記メモリモジュールから複数のクロック信号上で戻される
項目１５に記載のデバイス。
［項目１７］
前記複数の動作は、
前記リードコマンドの前記送信に続いて、前記メモリモジュールにグラント信号を送信することをさらに備え、前記メモリモジュールは前記グラント信号に応答して前記リード識別子の信号を送信し、前記リードオフセットは前記グラント信号が送信された後データが到達する時間の長さである
項目９から１６の何れか一項に記載のデバイス。
［項目１８］
少なくとも１つのメモリモジュールへのバスインターフェースと、
位相補間器と、
動作するとき、粗いリードトレーニングの複数の動作を実行するメモリコントローラロジックとを備え、前記複数の動作は、
前記バスインターフェースのコマンド及びデータの信号ラインとは別個の、前記バスインターフェースの側波帯レーン上で前記メモリモジュールから戻されるリード識別子を用いて、前記バスインターフェース上でリードデータがサンプリングされるリードオフセットを決定することと、
リードデータのデータアイにおいてデータをサンプリングすることをいつ開始すべきかを決定すべく前記リードオフセットを用いる間、
リード識別子と共にリードコマンドを前記メモリモジュールに送信することと、
前記バスインターフェースの前記側波帯レーン上で前記メモリモジュールからの受信されたリード識別子を受信することと、
前記受信されたリード識別子が、前記リードコマンドと共に送信された前記リード識別子と一致するという決定に応答して、
前記受信されたリード識別子がリードされた場所として前記データアイを決定すること、及び、
前記受信されたリード識別子がリードされた、前記決定されたデータアイにおいてデータをサンプリングするために使用される複数の補間信号を生成する前記位相補間器を制御するための設定を決定することと、を実行することを備える、
デバイス。
［項目１９］
前記リードオフセットを決定すべく前記リード識別子を用いることは、
リード識別子と共にリードコマンドを前記メモリモジュールに送信することと、
前記バスインターフェースを介して前記メモリモジュールから、リードデータと、前記バスインターフェースの前記側波帯レーン上で受信される、受信されたリード識別子とを受信することと、
前記受信されたリードデータが、前記リードコマンドと共に送信された前記リード識別子と一致するタイミングとして前記リードオフセットを決定することとを備える
項目１８に記載のデバイス。
［項目２０］
前記粗いリードトレーニング中、及び、前記データアイにおいてデータをサンプリングすることをいつ開始すべきかを決定すべく前記リードオフセットを用いる間、複数の前記リード識別子を生成するために使用されるリニアフィードバックシフトレジスタ（ＬＦＳＲ）をさらに含む
項目１８又は１９に記載のデバイス。
【図１】
0006327764.tif 000002
【図２】
0006327764.tif 000003
【図３】
0006327764.tif 000004
【図４】
0006327764.tif 000005
【図５】
0006327764.tif 000006
【図６】
0006327764.tif 000007