特許第6084756号(P6084756)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インテル・コーポレーションの特許一覧

特許6084756メモリコントローラのリードトレーニング
<>
  • 特許6084756-メモリコントローラのリードトレーニング 図000002
  • 特許6084756-メモリコントローラのリードトレーニング 図000003
  • 特許6084756-メモリコントローラのリードトレーニング 図000004
  • 特許6084756-メモリコントローラのリードトレーニング 図000005
  • 特許6084756-メモリコントローラのリードトレーニング 図000006
  • 特許6084756-メモリコントローラのリードトレーニング 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6084756
(24)【登録日】2017年2月3日
(45)【発行日】2017年2月22日
(54)【発明の名称】メモリコントローラのリードトレーニング
(51)【国際特許分類】
   G06F 13/16 20060101AFI20170213BHJP
   G06F 12/00 20060101ALI20170213BHJP
   G06F 13/42 20060101ALI20170213BHJP
【FI】
   G06F13/16 520B
   G06F12/00 564C
   G06F13/42 350C
【請求項の数】20
【全頁数】20
(21)【出願番号】特願2016-540884(P2016-540884)
(86)(22)【出願日】2014年7月29日
(65)【公表番号】特表2016-534472(P2016-534472A)
(43)【公表日】2016年11月4日
(86)【国際出願番号】US2014048719
(87)【国際公開番号】WO2015047532
(87)【国際公開日】20150402
【審査請求日】2016年3月7日
(31)【優先権主張番号】14/040,548
(32)【優先日】2013年9月27日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】モーリス、トニア ジー.
(72)【発明者】
【氏名】ジャスパー、ジョナサン シー.
(72)【発明者】
【氏名】フォレスティア、アーナウド ジェイ.
【審査官】 塚田 肇
(56)【参考文献】
【文献】 特開2006−260071(JP,A)
【文献】 特表2012−515376(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06F 13/16
G06F 13/42
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのメモリモジュールへのバスインターフェースと、
動作するとき、複数の動作を実行するメモリコントローラロジックとを備え、前記複数の動作は、
前記メモリモジュールが前記バスインターフェースの側波帯レーン上で、連続する複数のビットパターンを送信するトレーニングモードを開始するよう前記メモリモジュールにプログラムすることと、
前記バスインターフェースを介して前記複数のビットパターンを受信することと、
前記受信された複数のビットパターンからビットパターンにおける複数の値の遷移を決定して、前記複数の値の前記決定された複数の遷移の間でデータアイを決定することと、
前記決定されたデータアイ内でデータをサンプリングするために使用される複数の補間信号を生成する位相補間器を制御するための設定を決定することとを備える、
デバイス。
【請求項2】
前記複数の動作は、
前記トレーニングモードを終了するよう前記メモリモジュールにプログラムすることと、前記データアイ、及び前記位相補間器を制御するための前記設定を決定することに応答して、前記複数のビットパターンを送信することとをさらに備える
請求項1に記載のデバイス。
【請求項3】
前記受信された複数のビットパターンから前記遷移を決定することは、
レジスタに前記ビットパターンからのリードされた値を格納することと、
次の前記ビットパターンの送信からの次にリードされた値が、前記レジスタ中の前記リードされた値と一致するかどうかを決定することとを含み、前記データアイは前記レジスタに格納される複数の値と一致する2つのリードされた値の端部の間で決定される
請求項1又は2に記載のデバイス。
【請求項4】
前記複数のビットパターンは、複数のリード識別子信号のために用いられる前記バスインターフェースの前記側波帯レーン上に第1の連続するビットパターンを、及び、前記側波帯レーン上に第2の連続するビットパターンを含み、前記第1の連続するビットパターン及び前記第2の連続するビットパターンは反対の値を有する
請求項1から3の何れか一項に記載のデバイス。
【請求項5】
前記第1の連続するビットパターンは、第1のリード識別子信号ライン上で送信され、連続する1010パターンを備え、第2の連続するパターンは、第2のリード識別子信号ライン上で送信され、連続する0101パターンを備える
請求項4に記載のデバイス。
【請求項6】
前記第1の連続するパターン及び前記第2の連続するパターンは、クロック間隔毎に0と1との間で交互に変化して、前記バスインターフェース上のクロック間隔の周期の2倍の周期を有するクロックパターンを作成する
請求項5に記載のデバイス。
【請求項7】
前記バスインターフェースは、複数のコマンドが送信される複数のコマンドラインと、データが送信される複数のデータラインと、複数のリード識別子信号ラインとを含み、前記複数のビットパターンは、クロック周波数より小さいコマンド周波数で前記複数のリード識別子信号ライン上で送信される
請求項1から6の何れか一項に記載のデバイス。
【請求項8】
前記複数の動作は、
位相補間器を制御するための前記設定を決定することに応答して、リード識別子と共にリードコマンドを前記メモリモジュールに送信することと、
前記メモリモジュールから、戻されたリード識別子を含むリードデータを受信することと、
前記戻されたリード識別子が、前記リードコマンドと共に送信された前記リード識別子と一致すると決定することに応答してリードオフセットを決定することとをさらに含み、前記リードオフセットは、前記位相補間器のための前記決定された設定を用いて、前記データアイにおいて前記リードデータをサンプリングすることをいつ開始すべきかを決定するために使用される
請求項1から7の何れか一項に記載のデバイス。
【請求項9】
少なくとも1つのメモリモジュールへのバスインターフェースと、
動作するとき、粗いリードトレーニングの複数の動作を実行するメモリコントローラロジックとを備え、前記複数の動作は、
前記メモリモジュールにリードコマンド及びリード識別子を送信することと、
前記バスインターフェースを介して前記メモリモジュールからリードデータ及び受信されたリード識別子を受信することと、
前記メモリモジュールからの前記受信されたリード識別子が、前記リードコマンドと共に送信された前記リード識別子を含むと決定することに応答してリードオフセットを決定することを備え、前記リードオフセットは、受信されたリードデータのデータアイにおいてデータをサンプリングすることをいつ開始すべきかを決定するために使用される、
デバイス。
【請求項10】
前記動作は、
前記受信されたリード識別子が、前記リードコマンドと共に送信された前記リード識別子と一致しないと決定することに応答して、前記メモリモジュールからの前記受信されたリードデータが、生成された新たなリード識別子を含むことに応答して前記リードオフセットが決定されるまで、前記新たなリード識別子を生成して、前記メモリモジュールに送信される新たなリードコマンドに含めるイタレーションを少なくとも1回実行することをさらに備える
請求項9に記載のデバイス。
【請求項11】
複数のランダムなリード識別子の値を提供すべく、前記リード識別子及び複数の前記新たなリード識別子を生成するために使用されるリニアフィードバックシフトレジスタ(LFSR)をさらに含む
請求項10に記載のデバイス。
【請求項12】
前記粗いリードトレーニングは、前記受信されたリード識別子が、前記リードコマンドと共に送信された前記リード識別子を含むことに応答して終了される
請求項9から11の何れか一項に記載のデバイス。
【請求項13】
前記リード識別子は、前記リードコマンドに応答して前記リードデータを戻すとき、前記メモリモジュールに前記リード識別子をループバックさせる
請求項9から12の何れか一項に記載のデバイス。
【請求項14】
前記リード識別子は側波帯レーン上で、前記メモリモジュールから送信される
請求項9から13の何れか一項に記載のデバイス。
【請求項15】
前記バスインターフェースは、複数のコマンドが送信される複数のコマンドラインと、データが送信される複数のデータラインと、複数のリード識別子信号ラインとを含み、前記メモリモジュールは前記複数のリード識別子信号ライン上で前記リード識別子を戻す
請求項8から14の何れか一項に記載のデバイス。
【請求項16】
前記リード識別子は、前記メモリモジュールから複数のクロック信号上で戻される
請求項15に記載のデバイス。
【請求項17】
前記複数の動作は、
前記リードコマンドの前記送信に続いて、前記メモリモジュールにグラント信号を送信することをさらに備え、前記メモリモジュールは前記グラント信号に応答して前記リード識別子の信号を送信し、前記リードオフセットは前記グラント信号が送信された後データが到達する時間の長さである
請求項9から16の何れか一項に記載のデバイス。
【請求項18】
少なくとも1つのメモリモジュールへのバスインターフェースと、
位相補間器と、
動作するとき、粗いリードトレーニングの複数の動作を実行するメモリコントローラロジックとを備え、前記複数の動作は、
前記バスインターフェースのコマンド及びデータの信号ラインとは別個の、前記バスインターフェースの側波帯レーン上で前記メモリモジュールから戻されるリード識別子を用いて、前記バスインターフェース上でリードデータがサンプリングされるリードオフセットを決定することと、
リードデータのデータアイにおいてデータをサンプリングすることをいつ開始すべきかを決定すべく前記リードオフセットを用いる間、
リード識別子と共にリードコマンドを前記メモリモジュールに送信することと、
前記バスインターフェースの前記側波帯レーン上で前記メモリモジュールからの受信されたリード識別子を受信することと、
前記受信されたリード識別子が、前記リードコマンドと共に送信された前記リード識別子と一致するという決定に応答して、
前記受信されたリード識別子がリードされた場所として前記データアイを決定すること、及び、
前記受信されたリード識別子がリードされた、前記決定されたデータアイにおいてデータをサンプリングするために使用される複数の補間信号を生成する前記位相補間器を制御するための設定を決定することと、を実行することを備える、
デバイス。
【請求項19】
前記リードオフセットを決定すべく前記リード識別子を用いることは、
リード識別子と共にリードコマンドを前記メモリモジュールに送信することと、
前記バスインターフェースを介して前記メモリモジュールから、リードデータと、前記バスインターフェースの前記側波帯レーン上で受信される、受信されたリード識別子とを受信することと、
前記受信されたリードデータが、前記リードコマンドと共に送信された前記リード識別子と一致するタイミングとして前記リードオフセットを決定することとを備える
請求項18に記載のデバイス。
【請求項20】
前記粗いリードトレーニング中、及び、前記データアイにおいてデータをサンプリングすることをいつ開始すべきかを決定すべく前記リードオフセットを用いる間、複数の前記リード識別子を生成するために使用されるリニアフィードバックシフトレジスタ(LFSR)をさらに含む
請求項18又は19に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書において記載される複数の実施形態は、概して、メモリコントローラが、チャネル及びメモリコントローラに連結される複数のスロットと互換性のあるピンレイアウトを有する複数のメモリモジュールと、単一のチャネル又はバス上で通信するメモリシステムに関する。
【背景技術】
【0002】
メモリコントローラは、インターフェース又はバス上の、プロセッサと1又は複数のメモリモジュールとの間におけるデータのフローを管理する。メモリコントローラは、メモリモジュールへのリード及びライト、及び、DRAMに格納されたデータのリフレッシュに必要とされるロジックを含み、別個のチップとして実装される。メモリコントローラは、チャネルに連結される複数のメモリモジュールによって用いられる、Joint Electron Device Engineering Council(JEDEC)Double Data Rate Third Generation(DDR3)Synchronous Dynamic Random Access Memory(SDRAM)プロトコルなどのプロトコルをサポートする。
【0003】
メモリへのインターフェースを用いる前に、メモリコントローラは、複数のメモリモジュールからリードデータをサンプリングすべくメモリコントローラがアクティブ化するタイミングを調整することによって、複数の動作について複数のメモリモジュールを設定しなくてはならない。位相補間器などの信号調整装置は、メモリコントローラによって制御されてクロック位相情報を生成し、かつ、異なる決定された位相を有する複数の基準信号及び複数の位相制御信号に応答してデータサンプリング信号を調整し、リードデータが送信される中心か又はデータアイにおいて、リードデータの中心をサンプリングする。
【図面の簡単な説明】
【0004】
複数の添付の図面を参照して、複数の実施形態が例として説明される。図面は縮尺通りではなく、同様の参照番号は同様の要素を指す。
図1】メモリシステムを有するシステムの実施形態を示す。
図2】メモリモジュールの実施形態を示す。
図3】メモリコントローラとメモリモジュールとの間のバスインターフェースの実施形態を示す。
図4】サンプル信号を生成すべく位相補間器を調節するよう細かいリードトレーニングを実行するための複数の動作の実施形態である。
図5】リードデータが受信されるリードオフセットを決定するよう粗いリードトレーニングを実行するための複数の動作の実施形態を示す。
図6】複数の通常リード動作中に位相補間器のトレーニングを実行するための複数の動作の実施形態を示す。
【発明を実施するための形態】
【0005】
メモリインターフェース上で、メモリモジュールはデータ信号と共に複数のストローブ信号をメモリコントローラに送信する。ここで、メモリコントローラはそれらのストローブ信号を処理して、いつ複数の受信機をオンにし、データをリードするべきかを決定する。次にメモリコントローラは他の複数の手順を用いて、位相補間器を用いるなどして、リードするためにどこでリードデータをサンプリングすべきかを決定する。
【0006】
複数の記載される実施形態は、複数の通常リード動作中に位相補間器を調節すべく、細かいリードトレーニング、続いて粗いリードトレーニング、及びその次に高度なリードトレーニングを実行するための複数の技術を提供する。複数の記載される実施形態は、位相補間器を調節すべく、メモリコントローラによって用いられる複数の信号を戻すよう、メモリモジュールに側波帯信号レーンを提供する。さらに、メモリコントローラは、データ及びコマンドのバスラインとは別個のバス上の側波帯レーンを介してメモリモジュールがメモリコントローラのために戻す複数のメモリモジュール信号パターンを提供し、これを用いて、いつ複数の受信機をオンにし、戻されたリードデータをサンプリングすべきかのリードオフセットタイミングを決定する。
【0007】
以下の説明では、本発明のより完全な理解を提供すべく、ロジック実装、演算コード、オペランドを指定する手段、リソースパーティショニング/共有/重複の実装、システムコンポーネントのタイプ及び相互関係、及び、ロジックパーティショニング/統合の選択などの多数の具体的な詳細が記載される。しかしながら、当業者ならば、そのような具体的な詳細なしに本発明は実施され得ることを理解するであろう。他の複数の例において、制御構造、ゲートレベルの回路、及び完全なソフトウェア命令シーケンスは、本発明を不明瞭にさせないように、詳細には示されていない。当業者であれば、含まれた説明を読むことで、過度に実験をすることなく、適切な機能を実装可能であろう。
【0008】
明細書における、「一実施形態」、「実施形態」、「例示的な実施形態」等への言及は、説明される実施形態は特定の特徴、構造、又は特性を含み得るが、全ての実施形態が必ずしも、その特定の特徴、構造、又は特性を含まなくてもよいことを示す。さらに、そのような表現は、必ずしも同一の実施形態を指すわけではない。
【0009】
以下の説明及び特許請求の範囲において、「連結」及び「接続」という用語、並びにこれらの派生語が用いられ得る。これらの用語は互いに同義であると意図されてはいないことが理解されるべきである。「連結」は、互いに直接物理的に又は電気的に接触していても、していなくてもよい2又は2より多い要素が、互いに協同又は相互作用することを示すために使用される。
【0010】
「接続」は、互いに連結される2又は2より多い要素の間での通信の確立を示すために使用される。複数の特定の実施形態は、複数のメモリデバイスの複数の電子アセンブリに関する。複数の実施形態は、複数の電子アセンブリを形成するための複数のデバイス及び複数の方法の両方を含む。
【0011】
図1は、通常マザーボード上に搭載される1又は複数のプロセッサ102と、メモリコントローラ104と、複数のメモリモジュール200a、200bとを含むコンピューティングシステム100の実施形態を示す。プロセッサ102は、中央処理装置、マルチコアプロセッサを備え得る。メモリコントローラ104は、プロセッサ102からの複数のメモリアクセスリクエストに応答して、チャネル、バスインターフェース等とも称されるバス108を介して複数のメモリモジュール200a、200bと通信する。ここで、メモリモジュール200a、200bの両方は、同一のバス108に別々に且つ独立して接続される。メモリコントローラ104は、複数の動作を実行すべく実行されるコード又はロジックと、複数の入力タイミング信号を受信し、かつ受信されたリードデータ信号のデータアイと揃えられる補間サンプリング信号を生成するための位相補間器112と、粗いリードトレーニングフェーズ及び高度なリードトレーニングフェーズにおいて用いられるランダムな複数のリード識別子を生成するためのリニアフィードバックシフトレジスタ(LFSR)114と、複数のトレーニング動作中に用いられる複数の値を格納するためのトレーニングレジスタ116とを備えるコントローラロジック110を含み得る。
【0012】
図1の実施形態において、メモリモジュール200a、200bはシステム100のマザーボード上の複数のスロット又は複数のメモリソケットに搭載される。メモリモジュール200a、200bは、マザーボード上の複数のメモリスロットにおけるピン配置と互換性のあるピン配置を有する、同一又は異なる複数のタイプのメモリモジュールを含み得る。さらに、それらのメモリモジュールは、Double Data Rate Fourth Generation(DDR4)プロトコル及び追加の複数のプロトコルなどの、同一又は異なる複数のメモリプロトコルをサポートし得る。2つのメモリモジュール200a、200bのみが示されるが、複数のメモリモジュールが存在してよい。
【0013】
メモリモジュール200a、200bのそれぞれは、メモリモジュール200a、200bの片面又は両面においてメモリチップ202a、204a、206a、208a及び202b、204b、206b、208bをそれぞれ含み、データを格納する。メモリモジュールパッケージ200a、200bの片面又は両面において配置されるそれらのメモリチップ、例えば、複数のDRAMチップは、プロセッサ102によって用いられているデータを格納する複数の記憶素子を備える。
【0014】
各メモリモジュール200a、200bは、メモリコントローラ104と共に、メモリの管理及び複数のアクセス動作を調整すべく、メモリモジュールコントローラ210a、210bを含み得る。メモリコントローラ104は、バス108に接続されるメモリモジュール200a、200bに関して、複数のリードトレーニング動作、リード動作及びライト動作、並びにメモリ管理動作を管理し、且つ、プロセッサ102をメモリモジュール200a、200bにインターフェースで接続する、ロジック110などのロジックを含む。メモリコントローラ104及び/又はメモリモジュール200a、200bは、プロセッサ102と統合され得るか、又は、図1において示されるように、システム100のマザーボード上にプロセッサ102とは別個のロジックにおいて実装され得る。
【0015】
システム100のマザーボードは、異なる複数のタイプのメモリチップと互換性のあるメモリソケットを含んでよい。それにより、異なる複数のタイプのメモリモジュール200a、200bが、メモリソケットにおけるピンアーキテクチャと互換性がある限り、異なる複数のタイプのメモリモジュール200a、200bが、複数の異なるメモリプロトコルをサポートする異なる複数のタイプのメモリデバイスをサポートすることを可能にする。
【0016】
一実施形態において、メモリモジュール200a、200bは、LPDDR、デュアルインラインメモリモジュール(DIMM)、例えば、バッファ無しDIMM(UDIMM)、Load Reduced Dual−inline Memory Module(LRDIMM)、Small Outline Dual In−line Memory Module(SODIMM)等、の同一又は異なるタイプのダブルデータレートシンクロナスダイナミックランダムアクセスメモリ(DDR SDRAM)メモリモジュールを含み得る。メモリモジュール200a、200bは、NAND(フラッシュ)メモリ、強誘電体ランダムアクセスメモリ(FeTRAM)、ナノワイヤベースの不揮発性メモリ、相変化メモリ(PCM)などの3次元(3D)クロスポイントメモリ、メモリスタ技術を組み込むメモリ、磁気抵抗ランダムアクセスメモリ(MRAM)、スピントランスファートルク(STT)−MRAM等を含む様々な形態のメモリを実装し得るが、それらに限定されない。
【0017】
図2は、複数のメモリモジュール動作、及びメモリコントローラ104との相互作用を実行するメモリモジュールコントローラ210を含むものとして、メモリモジュール200a、200bなどのメモリモジュール200の実施形態のさらなる詳細が提供される。メモリモジュール200は、モードレジスタセット(MRS)コマンドを用いて設定され得る、データを有するメモリモジュールコントローラ210中のモードレジスタ212と、メモリチップ202、204、206、208のための、リードデータ及びライトデータをバッファリングするためのリードバッファ214及びライトバッファ216とを含み得る。バッファ214、216は、メモリモジュールコントローラ210内において実装されるか、又は、メモリモジュール200において、メモリモジュールコントローラ210の外部の回路において実装され得る。さらなる複数の実施形態において、モードレジスタ212はメモリチップ202、204、206、208において実装され得る。
【0018】
メモリモジュールコントローラ210及びメモリコントローラ104の動作を実装するコード又はロジックは、メモリの中にロードされ、且つプロセッサによって実行されるコンピュータ可読コードとして実装され得るか、又は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)等においてなど、ハードウェアロジックにおいてエンコードされ得る。
【0019】
記載される複数の実施形態のロジック又はコードは、複数の機械実行可能命令を格納するための電気的ハードウェア及び他のハードウェアの複数の要素を有するデバイス又は装置を含む機械可読記憶媒体において実装され得る。機械可読媒体は、フラッシュメモリ、光ディスク、コンパクトディスクリードオンリメモリ(CD−ROM)、デジタルバーサタイル/ビデオディスク(DVD)ROM、ランダムアクセスメモリ(RAM)、消去可能プログラム可能リードオンリメモリ(EPROM)、電気的消去可能プログラム可能リードオンリメモリ(EEPROM)、磁気カード又は光カード、及び、複数の電子命令を格納するのに好適な他の機械可読媒体を含み得るが、それらに限定されない。
【0020】
複数の代替的な実装において、記載される複数の実施形態のロジック又はコードは、信号伝送媒体において実装され得る。
【0021】
図3は、メモリコントローラ104とメモリモジュール200との間の複数のバスインターフェースライン108の実施形態を示す。複数のバスインターフェースライン108は、複数の側波帯ラインを有する側波帯レーン300と、メモリコントローラ104がメモリモジュール200に複数のコマンドを通信するコマンド及び制御信号ライン302と、メモリモジュール200がコマンド/制御ライン302上でアドレス信号及び制御信号をサンプリングするために用いる、メモリコントローラ104からメモリモジュール200への差動クロック入力信号(DCLK)304と、リードデータ及びライトデータがメモリコントローラ104とメモリモジュール200との間で送信されるデータライン306とを含む。追加の複数のバスラインが他の複数の目的のために含まれてよい。
【0022】
側波帯レーン300は、メモリコントローラ104がトレーニング及び他の複数の目的のために用いることが可能であり、メモリコントローラ104からの複数の制御信号に応答した追加の情報を送信するための1又は複数の信号ラインを有する。例えば、メモリコントローラ104は、リード受信肯定応答を受信することに応答して、メモリモジュール200にグラントメッセージを送信し得る。このことは、メモリモジュール200に、データを送信する前に、側波帯レーン300上でリード識別子(ID)信号を送信させ得る。メモリモジュール200は、側波帯レーン300を用いて、メモリコントローラ104がリードリクエストと共に前に送信したリードIDを通信し、それに応答して、メモリモジュール200は、処理、例えば、フィルタリング、解釈等、を施すことなく、側波帯レーン300上でリードIDをループバックし得る。さらに、特定の複数の実施形態において、側波帯レーン300はメモリモジュール200上に複数のクロック信号対を備え得る。
【0023】
一実施形態において、メモリコントローラ104にリードIDを送信して戻す側波帯レーン300は、クロック周波数ではなく、コマンドの周波数で複数の信号を送信する。一実施形態において、側波帯レーン300は、クロックを送信し、且つ、クロック入力信号(DCLK)304の周期の2倍であるクロックパターンを送信するよう意図され得る。メモリモジュール200は、リードデータを送信する前に、複数の信号及び受信されたリードIDを制御信号の一部として側波帯レーン300上で送信し得る。これらのリードID信号は、グラント信号などの制御信号に対する特定のタイミング関係でデータバーストを送信し得る。このタイミング関係は、メモリモジュールの複数の遅延及びチャネルに依存して、ある範囲内で変化し得る。特定の複数の実施形態においては、メモリモジュール200はデータバーストと共にストローブを送信しなくてよい。それにより、メモリコントローラ104は細かいリードトレーニングを実行し、リードID信号の複数のサンプリング遅延をトレーニングしてリードIDのシグナリングアイの中心に揃え、低いビットエラーレートを実現する。リードIDの複数の信号は、データバスの周波数の1/2で送信され得るが、これらの速さは最大1600MTpsにまで更に上げることが可能である。
【0024】
図4は、メモリコントローラロジック110がメモリモジュール200と連携して位相補間器112の細かいリードトレーニングを実行し、データアイに調整される補間された複数のサンプル信号を提供できるようにする、メモリコントローラロジック110及びメモリモジュールコントローラ202のロジックによって実行される複数の動作の実施形態を示す。細かいリードトレーニングは、システム100のブート中、バス108のプロービング中に開始され得る。細かいリードトレーニングを開始すべく、メモリコントローラロジック110は(ブロック400において)コマンドを送信して、細かいリードトレーニングモードを開始するよう、メモリモジュール200中の複数のモードレジスタ212にプログラムする。細かいリードトレーニングモードを示すべく複数のモードレジスタ212がライトされたことに応答して、側波帯レーン300上でメモリモジュールコントローラ210は(ブロック404及び406において)、側波帯レーン300の第1の信号ライン上で第1のパターンを、及び第1の信号ラインとは異なる第2の信号ライン上で第2のパターンを送信する。第1及び第2のパターンは、1010及び0101などの反対の値を有する複数のクロック信号を備え得る。特定の複数の実施形態において、それらのクロックパターンはDCLK304のクロック信号の周期の2倍の周期を有し得て、クロック周波数304ではなく、コマンド/制御信号ライン302における周波数を有し得る。側波帯レーン300の別個の信号ライン上の1010及び0101などのそれらの信号は、位相がずれていてよいし、又は同相であってもよい。さらに、ブロック404及び406における送信されたそれらのパターンは、側波帯レーン300の別個のライン上で連続モードで送信され得る。
【0025】
第1及び第2のパターンの複数のビットを送信した後、(ブロック408において)複数のモードレジスタ212が細かいリードトレーニングモードを示し続ける場合、制御はブロック404に戻って、反対の値を有する複数のパターンを送信することを続ける。(ブロック408において)細かいモードのトレーニングが終了した場合、粗いリードトレーニングフェーズが(ブロック410において)開始し得る。
【0026】
メモリコントローラロジック110が(ブロック412において)送信されたビットパターンを受信すると、(ブロック414において)受信されたビットが複数のトレーニングレジスタ116に格納されるビット値の反対の値、0に対して1、1に対して0、でない場合、(ブロック416において)その受信されたビットが複数のトレーニングレジスタ116に格納される。(ブロック414において)受信されたビット値が格納されたビット値の反対である場合、(ブロック418において)その反対の値のビット(又はパターン)が受信されたタイミングの決定が成される。次に、(ブロック420において)メモリコントローラロジック110は、タイミングを変更して、一致が見つけられなくなるまで、決定されたタイミングから外側に両方向にリードする、すなわちスイープすることによって、決定されたタイミングから両端部を決定する。そのポイントにおいて、データアイの両端部は、反対のビットパターンが受信された、決定されたタイミングからの各方向において決定される。次に、(ブロック422において)データアイは両端部のタイミングの間のタイミングにあると決定される。一実施形態において、データアイの両端部は、位相補間器112の複数のタイミングを変更して、決定されたデータアイから外側に各方向にスイープし、一致がないポイントを見つけることによって決定される。
【0027】
これらのタイミング信号に基づいて、(ブロック424において)、決定されたデータアイにおいてデータをサンプリングするために使用される複数の補間信号を生成する位相補間器112を制御するための設定の決定が成される。両端部の間のデータアイにおけるサンプリングのための複数の補間信号を生成すべく位相補間器112をトレーニングした後、(ブロック426において)メモリコントローラロジック110は、細かいリードトレーニングモードを停止して、メモリモジュールコントローラが側波帯レーン300上で反対の複数のビットパターンを送信し続けることを停止させるよう、メモリモジュール220のモードレジスタ212にライトする。
【0028】
特定の複数の実施形態において、1及び0のサンプルとその逆と間の複数の遷移の検出は、データアイを備え得る、リードデータを有するタイミング、両端部、又は両端部の間のリードデータを示す。これらのトレーニング動作は、信号毎に偶数/奇数を取り込むために4つのトレーニング結果のビットを必要とし得る。2つのビットは偶数又は奇数を取り込む場合のみに用いられ得る。位相補間器112は、データアイの複数のマージンの中央においてデータをリードすべく補間されたサンプルを生成するよう構成される。
【0029】
上述された実施形態において、パターンのビットが比較されて、データアイの両端部のためのスイープを開始すべき決定されたタイミングを決定する。代替の実施形態において、メモリコントローラ110は単なるビットを比較するのではなく、代わりにパターン全体(例えば、0101、1010)を比較し得る。そうして、データアイはブロック414及び418において、単なる単一のビットではなく、格納されたパターンの反対のパターンが検出されるタイミングで決定される。さらに、パターン全体が比較されるそのような複数の実施形態においては、単なる単一のビットではなくパターン全体が、ブロック416において複数のトレーニングレジスタ116に格納されるだろう。
【0030】
図5は、メモリコントローラロジック110がメモリモジュール200と連携してメモリコントローラ104の粗いリードトレーニングを実行し、リードデータを取り出すべくグラント信号が送信されるのに続いてメモリコントローラ104がデータをリードすべくアクティブ化する前に待機すべきオフセット又はタイミングを決定できるようにするよう、メモリコントローラロジック110及びメモリモジュールコントローラ202のロジックによって実行される複数の動作の実施形態を示す。(ブロック500において)粗いリードトレーニングを開始すると、(ブロック502において)メモリコントローラロジック110はLFSR114を用いてランダムなリードIDを生成する。生成されたリードIDは、(ブロック504において)複数のトレーニングレジスタ116にバッファリングされる。メモリコントローラロジック110は、(ブロック506において)生成されたリードIDと共にリードコマンドをメモリモジュール200に送信する。メモリモジュールコントローラ210が(ブロック508において)粗いリードトレーニングモードで動作している間、(ブロック510において)リードコマンド及びリードIDを受信すると、(ブロック512において)メモリモジュールコントローラ210はリードコマンドを実行する。
【0031】
(ブロック506において)リードIDと共にリードコマンドを送信した後、(ブロック514において)メモリコントローラロジック110はバスインターフェース108を介してメモリモジュール200にグラント信号を送信する。(ブロック516において)グラント信号を受信すると、(ブロック518において)リクエストされたデータがデータバス306上で戻され、(ブロック520において)受信されたリードIDが側波帯レーン300上で戻される。リードID信号はバーストモードで戻される。特定の複数の実施形態においては、リードデータの前にまずリードIDが側波帯リードID信号300上で戻される。このように、メモリモジュールコントローラ200はデータをフィルタリングも解釈もすることなく、メモリコントローラ104にリードIDをループバックする。特定の複数の実施形態において、メモリコントローラロジック110は、リードコマンドに対するメモリモジュール200からの肯定応答(ACK)を待機することなくグラント信号を提供し得る。
【0032】
(ブロック522において)メモリコントローラ104が側波帯レーン300上でリードIDを受信すると、(ブロック524において)メモリコントローラロジック110は受信されたリードIDが、複数のトレーニングレジスタ116に格納される送信されたリードIDと一致するかどうかを決定する。(ブロック524のいいえの分岐から)一致がない場合、(ブロック526において)メモリコントローラロジック110はサイクル遅延設定を、グラントが送信されたときからリードIDが受信されるときまでのサイクル数になるように変更する。複数のサイクル遅延設定は、いつメモリコントローラロジック110がデータをリードしようと試みるかの粗いタイミング設定であり、ブロック526においてこの粗いサイクル遅延タイミング又はサイクルレベル時間は、タイミングが、リードIDが受信されるときか、又は、グラントが設定されるときからの往復レイテンシ設定に一致するまで調整される。制御はブロック526からブロック502に戻り、一致があるまで、粗いリードトレーニングのためのランダムな複数のリードIDを継続して生成する。(ブロック528において)送信されたリードIDと受信されたリードIDとが一致する場合、(ブロック526において)メモリコントローラロジック110は、グラント信号の送信から、受信されるリードIDと一致するときまでの時間の差分としてリードオフセットを決定する。リードオフセットを決定した後、(ブロック530において)粗いリードトレーニングを終了すべく、メモリコントローラロジック110はメモリモジュール200にモードレジスタコマンドを送信し得る。メモリモジュールコントローラ200は、コマンドを受信すると(ブロック540において)複数のモードレジスタ212にプログラムし、(ブロック542において)粗いリードトレーニングを終了する。
【0033】
細かいリードトレーニングは、リードデータが送信されるとき、データアイ内でリードするよう、補間されたサンプル信号を生成する位相補間器112を制御するための複数の設定を生成し、粗いリードトレーニング段階により得られるものは、グラント信号が設定された後、いつリードデータの受信を開始すべきかを決定するために使用されるリードオフセットである。細かいリードトレーニング及び粗いリードトレーニングの後、決定された、位相補間器112の複数の設定及びリードオフセットを用いて、複数の通常リード動作が開始し得る。
【0034】
図6は、複数の通常リード動作中に高度なリードトレーニングを実行して、リードデータ信号をサンプリングするために使用されるサンプル信号を生成するために使用される位相補間器112の複数の設定をさらに改善すべく、メモリコントローラロジック110及びメモリモジュールコントローラ202のロジックによって実行される複数の動作の実施形態を示す。決定された、位相補間器の複数の設定及びリードオフセットを用いて通常リード/ライト動作中に(ブロック600において)高度なトレーニングを開始すると、メモリコントローラロジック110は図5のブロック502−514における動作を(ブロック602において)実行してリードコマンドと共にリードID信号を生成し送信する。(ブロック604において)通常リード/ライト動作中に高度なトレーニングモードにある間、メモリモジュールコントローラ210は、図5のブロック510、512、516、518における動作を(ブロック606において)実行して、受信されたリードコマンドを処理し、側波帯レーン300上でリードIDを戻す。
【0035】
(ブロック608において)メモリコントローラ104が側波帯レーン300上でリードIDを受信すると、(ブロック610において)受信されたリードIDが、複数のトレーニングレジスタ116に格納される送信されたリードIDと一致する場合、(ブロック612において)リードIDがリードされたタイミングが決定される。次に(ブロック614において)メモリコントローラロジック110は、ブロック418から426における動作を実行して、決定されたリードIDタイミングから両端部を、決定された両端部からデータアイを、及び、決定されたデータアイにおいてデータをサンプリングするために使用される複数の補間信号を生成する位相補間器を制御するための設定を決定する。ランダムに生成された複数のリードIDを用いて位相補間器112を調節するためのこれらの動作は継続的に実行されて、細かいリードトレーニング中に用いられる複数の反対パターンの反復とは対照的に、データアイの複数のマージンを決定し、ランダムに生成された複数のリードIDの形で、よりアグレッシブかつ現実的な複数のパターンと位相補間器112の複数の設定の中心を再度合わせる。
【0036】
(ブロック610のいいえの分岐から)一致がない場合、(ブロック616において)メモリコントローラロジック110はサイクル遅延設定を、グラントが送信されたときからリードIDが受信されるときまでのサイクル数になるように変更する。複数のサイクル遅延設定は、いつメモリコントローラロジック110がデータをリードしようと試みるかの粗いタイミング設定であり、ブロック616においてこの粗いサイクル遅延タイミング又はサイクルレベル時間は、タイミングが、リードIDが受信されるときか、又は、グラントが設定されるときからの往復レイテンシ設定に一致するまで調整される。制御はブロック616からブロック602に戻り、一致があるまで、高度な細かいグレイン(grain)のトレーニングのためのランダムな複数のリードIDを継続して生成する。
【0037】
記載される複数の実施形態は、リードIDライン300上の複数の側波帯リードID信号のトレーニングが、バス100上で低いビットエラーレートを実現すること可能にする。記載されるリードトレーニングは、簡単なパターンでアイ中心のサンプリングを実現するという点で効率のよいものである。記載される複数の実施形態は、最悪の場合の複数のマージンを決定すべく、リードIDバス300上に複数の高ストレス(high stress)なパターンをさらに生成し得る。
【0038】
本明細書全体を通して、「一実施形態」又は「実施形態」への言及は、その実施形態に関連して説明される特定の特徴、構造、又は特性が、本発明の少なくとも1つの実施形態に含まれることを意味することが理解されるべきである。したがって、本明細書の様々な部分における「実施形態」又は「一実施形態」又は「代替の実施形態」への2回又はそれより多くの言及は、必ずしもすべてが同一の実施形態を指すものではないことが強調され、理解されるべきである。さらに、特定の複数の特徴、複数の構造、又は複数の特性は本発明の1又は複数の実施形態において好適に組み合わせられ得る。
【0039】
同様に、本発明の複数の実施形態の上記説明において、発明の様々な態様のうち1又は複数のものへの理解を助ける本開示を簡素化する目的で、様々な特徴は、場合によっては単一の実施形態、図、又はそれらの説明に一緒にグループ化されることが理解されるべきである。しかしながら、この開示方法は、特許請求の範囲の主題が、各請求項において明確に記述されるものより多くの特徴を必要とするという意図を反映するものと解釈されるべきではない。むしろ、以下の特許請求の範囲が反映するように、発明の複数の態様は、上記開示された単一の実施形態のすべての特徴より少ないところにある。したがって、詳細な説明に続く特許請求の範囲は、ここでこの詳細な説明に明示的に組み込まれる。
【0040】
メモリコントローラ104及びメモリモジュール200の記載された複数の動作は、ソフトウェア、ファームウェア、ハードウェア、又はそれらの任意の組み合わせを作り出すための標準的なプログラミング技術及び/又はエンジニアリング技術を用いる方法、装置、コンピュータ可読記憶媒体として実装され得る。記載された複数の動作は、「コンピュータ可読記憶媒体」に保持されるコード又はロジックとして実装され得る。コンピュータ可読記憶媒体は複数の機能を直接的に実行するか、又はコンピュータ可読記憶媒体からのコードをプロセッサが読み出し且つ実行し得る。コンピュータ可読記憶媒体は、電子回路、記憶材料、無機材料、有機材料、生物材料、ケーシング、筐体、コーティング、及びハードウェアのうちの少なくとも1つを含む。コンピュータ可読記憶媒体は、磁気記憶媒体(例えば、ハードディスクドライブ、フロッピー(登録商標)ディスク、テープ等)、光記憶装置(CD−ROM、DVD,光ディスク等),揮発性及び不揮発性のメモリデバイス(例えば、EEPROM、ROM、PROM,RAM,DRAM、SRAM,フラッシュメモリ、ファームウェア、プログラマブルロジック等)、ソリッドステートデバイス(SSD)等を備え得るが、それらに限定されない。コンピュータ可読記憶媒体は、ハードウェア装置(例えば、集積回路チップ、プログラマブルロジック装置、プログラマブルゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)等)に実装されるデジタルロジックをさらに備え得る。さらに、記載された複数の動作を実行するコードは、複数の「送信信号」において実装され得て、複数の送信信号は、空間中、又は例えば光ファイバ、銅線等の送信メディア中を伝播し得る。コード又はロジックがエンコードされる複数の送信信号は、無線信号、衛星送信、無線波、赤外線信号、Bluetooth(登録商標)等をさらに備え得る。コンピュータ可読記憶媒体に埋め込まれるプログラムコードは、送信側の局又はコンピュータから受信側の局又はコンピュータへと複数の送信信号として送信され得る。コンピュータ可読記憶媒体は複数の送信信号のみからなるものではない。当業者ならば、本発明の範囲から逸脱することなく本構成に対して多数の変更が成され得て、製造物品は、当技術分野において既知の好適な情報担持媒体を備え得ることを認識するであろう。
[例]
以下の複数の例はさらなる複数の実施形態に関する。
【0041】
例1は、バスを介して少なくとも1つのメモリモジュールに連結される装置であり、当該装置は、少なくとも1つのメモリモジュールへのバスインターフェースと、動作するとき複数の動作を実行するメモリコントローラロジックとを備え、当該複数の動作は、メモリモジュールがバスインターフェースの側波帯レーン上で、連続する複数のビットパターンを送信するトレーニングモードを開始するようメモリモジュールにプログラムすることと、バスインターフェースを介して当該複数のビットパターンを受信することと、受信された複数のビットパターンからビットパターンにおける複数の値の遷移を決定して、複数の値の決定された複数の遷移の間でデータアイを決定することと、決定されたデータアイ内でデータをサンプリングするために使用される複数の補間信号を生成する位相補間器を制御するための設定を決定することを備える。
【0042】
例2において、例1の主題は、複数の動作が、トレーニングモードを終了するようメモリモジュールにプログラムすることと、データアイ、及び位相補間器を制御するための設定を決定することに応答して複数のビットパターンを送信することとをさらに備えることを任意に含み得る。
【0043】
例3において、例1の主題は、受信された複数のクロックビットパターンから遷移を決定することが、レジスタにビットパターンからのリードされた値を格納することと、次のビットパターンの送信からの次にリードされた値が、レジスタ中のリードされた値と一致するかどうかを決定することとを備え、データアイはレジスタに格納される複数の値と一致する2つのリードされた値の端部の間で決定されることを任意に含み得る。
【0044】
例4において、例1の主題は、複数のビットパターンが、複数のリード識別子信号のために用いられるバスインターフェースの側波帯レーン上に第1の連続するビットパターンを、及び、側波帯レーン上に第2の連続するビットパターンを含み、第1及び第2の連続するビットパターンは反対の値を有することを任意に含み得る。
【0045】
例5において、例4の主題は、第1の連続するビットパターンは第1のリード識別子信号ライン上で送信され、連続する1010パターンを備え、第2の連続するパターンは第2のリード識別子信号ライン上で送信され、連続する0101パターンを備えることを任意に含み得る。
【0046】
例6において、例5の主題は、第1及び第2の連続するパターンがクロック間隔毎に0と1との間で交互に変化して、バスインターフェース上のクロック間隔の周期の2倍の周期を有するクロックパターンを作成することを任意に含み得る。
【0047】
例7において、例1の主題は、バスインターフェースが、複数のコマンドが送信される複数のコマンドラインと、データが送信される複数のデータラインと、複数のリード識別子信号ラインとを含み、複数のビットパターンは、クロック周波数より小さいコマンド周波数で複数のリード識別子信号ライン上で送信されることを任意に含み得る。
【0048】
例8において、例1の主題は、複数の動作が、位相補間器を制御するための設定を決定することに応答して、リード識別子と共にリードコマンドをメモリモジュールに送信することと、戻されたリード識別子を含む、メモリモジュールからのリードデータを受信することと、戻されたリード識別子が、リードコマンドと共に送信されたリード識別子と一致すると決定することに応答してリードオフセットを決定することとをさらに備え、リードオフセットは、位相補間器のための決定された設定を用いてデータアイにおいてリードデータをサンプリングすることをいつ開始すべきかを決定するために使用されることを任意に含み得る。
【0049】
例9はバスを介して少なくとも1つのメモリモジュールに連結される装置であって、当該装置は、少なくとも1つのメモリモジュールへのバスインターフェースと、動作するとき粗いリードトレーニングの複数の動作を実行するメモリコントローラロジックとを備え、当該複数の動作は、メモリモジュールにリードコマンド及びリード識別子を送信することと、バスインターフェースを介してメモリモジュールからリードデータ及び受信されたリード識別子を受信することと、メモリモジュールからの受信されたリード識別子がリードコマンドと共に送信されたリード識別子を含むと決定することに応答してリードオフセットを決定することを備え、リードオフセットは、受信されたリードデータのデータアイにおいてデータをサンプリングすることをいつ開始すべきかを決定するために使用される。
【0050】
例10において、例9の主題は、当該複数の動作が、受信されたリード識別子が、リードコマンドと共に送信されたリード識別子と一致しないと決定することに応答して、メモリモジュールからの受信されたリードデータが、生成された新たなリード識別子を含むことに応答してリードオフセットが決定されるまで、新たなリード識別子を生成して、メモリモジュールに送信される新たなリードコマンドに含めるイタレーションを少なくとも1回実行することをさらに備えることを任意に含み得る。
【0051】
例11において、例10の主題は、複数のランダムなリード識別子の値を提供すべく、リード識別子及び複数の新たなリード識別子を生成するために使用されるリニアフィードバックシフトレジスタ(LFSR)を任意に含み得る。
【0052】
例12において、例9の主題は、粗いリードトレーニングが、受信されたリード識別子がリードコマンドと共に送信されたリード識別子を含むことに応答して終了されることを任意に含み得る。
【0053】
例13において、例9の主題は、リードコマンドに応答してリードデータを戻すとき、リード識別子は、メモリモジュールにリード識別子をループバックさせることを任意に含み得る。
【0054】
例14において、例9の主題は、リード識別子が側波帯レーン上でメモリモジュールから送信されることを任意に含み得る。
【0055】
例15において、例8の主題は、バスインターフェースが、複数のコマンドが送信される複数のコマンドラインと、データが送信される複数のデータラインと、複数のリード識別子信号ラインとを含み、メモリモジュールは複数のリード識別子信号ライン上でリード識別子を戻すことを任意に含み得る。
【0056】
例16において、例15の主題は、リード識別子が、メモリモジュールから複数のクロック信号上で戻されることを任意に含み得る。
【0057】
例17において、例9の主題は、複数の動作が、リードコマンドの送信に続いて、メモリモジュールにグラント信号を送信することをさらに備え、メモリモジュールはグラント信号に応答してリード識別子信号を送信し、リードオフセットはグラント信号が送信された後からのデータが到達する時間の長さであることを任意に含み得る。
【0058】
例18はバスを介して少なくとも1つのメモリモジュールに連結される装置であって、当該装置は、少なくとも1つのメモリモジュールへのバスインターフェースと、位相補間器と、動作するとき、粗いリードトレーニングの複数の動作を実行するメモリコントローラロジックとを備え、当該複数の動作は、バスインターフェースのコマンド及びデータの信号ラインとは別個の、バスインターフェースの側波帯レーン上でメモリモジュールから戻されるリード識別子を用いて、バスインターフェース上でリードデータがサンプリングされるリードオフセットを決定すること、及び、リードデータのデータアイにおいてデータをサンプリングすることをいつ開始すべきかを決定すべくリードオフセットを用いる間、リード識別子と共にリードコマンドをメモリモジュールに送信することと、バスインターフェースの側波帯レーン上でメモリモジュールからの受信されたリード識別子を受信することと、受信されたリード識別子が、リードコマンドと共に送信されたリード識別子と一致すると決定することに応答して、受信されたリード識別子がリードされた場所としてデータアイを決定すること、及び、受信されたリード識別子がリードされた、決定されたデータアイにおいてデータをサンプリングするために使用される複数の補間信号を生成する位相補間器を制御するための設定を決定することとを実行することを備える。
【0059】
例19において、例18の主題は、リードオフセットを決定すべくリード識別子を用いることが、リード識別子と共にリードコマンドをメモリモジュールに送信することと、バスインターフェースを介してメモリモジュールから、リードデータと、バスインターフェースの側波帯レーン上で受信される、受信されたリード識別子とを受信することと、受信されたリードデータが、リードコマンドと共に送信されたリード識別子と一致するタイミングとしてリードオフセットを決定することとを備えることを任意に含み得る。
【0060】
例20において、例18の主題は、粗いリードトレーニング中、及び、データアイにおいてデータをサンプリングすることをいつ開始すべきかを決定すべくリードオフセットを用いる間、複数のリード識別子を生成するために使用されるリニアフィードバックシフトレジスタ(LFSR)を任意に含み得る。
【0061】
例21は、バスへのバスインターフェースを介して少なくとも1つのメモリモジュールに連結されるコンピュータ可読記憶媒体であり、当該コンピュータ可読記憶媒体は、実行されるとき、複数の動作を実行するロジックを実装し、当該複数の動作は、メモリモジュールがバスインターフェースの側波帯レーン上で、連続する複数のビットパターンを送信するトレーニングモードを開始するようメモリモジュールにプログラムすることと、バスインターフェースを介して複数のビットパターンを受信することと、受信された複数のビットパターンからビットパターンにおける複数の値の遷移を決定して、複数の値の決定された複数の遷移の間でデータアイを決定することと、決定されたデータアイ内でデータをサンプリングするために使用される複数の補間信号を生成する位相補間器を制御するための設定を決定することを備える。
【0062】
例22において、例21の主題は、複数のビットパターンが、複数のリード識別子信号のために用いられるバスインターフェースの側波帯レーン上に第1の連続するビットパターンを、及び、側波帯レーン上に第2の連続するビットパターンを含み、第1及び第2の連続するビットパターンは反対の値を有することを任意に含み得る。
【0063】
例23において、例18の主題は、当該複数の動作が、位相補間器を制御するための設定を決定することに応答して、リード識別子と共にリードコマンドをメモリモジュールに送信することと、メモリモジュールから、戻されたリード識別子を含むリードデータを受信することと、戻されたリード識別子が、リードコマンドと共に送信されたリード識別子と一致すると決定することに応答してリードオフセットを決定することとをさらに含み、当該リードオフセットは、位相補間器のための決定された設定を用いて、データアイにおいてリードデータをサンプリングすることをいつ開始すべきかを決定するために使用されることを任意に含み得る。
【0064】
例24は、粗いリードトレーニングの複数の動作を実行すべく、バスへのバスインターフェースを介して少なくとも1つのメモリモジュールに連結されるコンピュータ可読記憶媒体であって、当該コンピュータ可読記憶媒体は、実行されるとき、複数の動作を実行するロジックを実装し、当該動作は、メモリモジュールにリードコマンド及びリード識別子を送信することと、バスインターフェースを介してメモリモジュールからリードデータ及び受信されたリード識別子を受信することと、メモリモジュールからの受信されたリード識別子が、リードコマンドと共に送信されたリード識別子を含むと決定することに応答して、リードオフセットを決定することとを備え、当該リードオフセットは、受信されたリードデータのデータアイにおいてデータをサンプリングすることをいつ開始すべきかを決定するために使用される。
【0065】
例25において、例24の主題は、当該複数の動作が、受信されたリード識別子が、リードコマンドと共に送信されたリード識別子と一致しないと決定することに応答して、メモリモジュールからの受信されたリードデータが、生成された新たなリード識別子を含むことに応答してリードオフセットが決定されるまで、新たなリード識別子を生成して、メモリモジュールに送信される新たなリードコマンドに含めるイタレーションを少なくとも1回実行することをさらに備えることを任意に含み得る。
【0066】
例26は、バスインターフェースを介して少なくとも1つのメモリモジュールに連結されるバスへのバスインターフェースをトレーニングするための方法であり、当該方法は、メモリモジュールがバスインターフェースの側波帯レーン上で、連続する複数のビットパターンを送信するトレーニングモードを開始するようメモリモジュールにプログラムする段階と、バスインターフェースを介して当該複数のビットパターンを受信する段階と、受信された複数のビットパターンからビットパターンにおける複数の値の遷移を決定して、複数の値の決定された複数の遷移の間でデータアイを決定する段階と、決定されたデータアイ内でデータをサンプリングするために使用される複数の補間信号を生成する位相補間器を制御するための設定を決定する段階とを備える。
【0067】
例27において、例26の主題は、複数のビットパターンが、複数のリード識別子信号のために用いられるバスインターフェースの側波帯レーン上に第1の連続するビットパターンを、及び、側波帯レーン上に第2の連続するビットパターンを含み、第1及び第2の連続するビットパターンは反対の値を有することを任意に含み得る。
【0068】
例28において、例26及び例27の主題は、実行されるとき、機械に例26及び例27の何れか1つの方法を実行させるコードを含む機械可読媒体を任意に含み得る。
【0069】
例29は、バスインターフェースを介して少なくとも1つのメモリモジュールに連結されるバスへのバスインターフェースをトレーニングするための方法であり、当該方法は、メモリモジュールにリードコマンド及びリード識別子を送信する段階と、バスインターフェースを介してメモリモジュールからリードデータ及び受信されたリード識別子を受信する段階と、メモリモジュールからの受信されたリード識別子がリードコマンドと共に送信されたリード識別子を含むと決定することに応答してリードオフセットを決定する段階とを備え、当該リードオフセットは、受信されたリードデータのデータアイにおいてデータをサンプリングすることをいつ開始すべきかを決定するために使用される。
【0070】
例30において、例29の主題は、複数の動作が、受信されたリード識別子が、リードコマンドと共に送信されたリード識別子と一致しないと決定することに応答して、メモリモジュールからの受信されたリードデータが、生成された新たなリード識別子を含むことに応答してリードオフセットが決定されるまで、新たなリード識別子を生成して、メモリモジュールに送信される新たなリードコマンドに含めるイタレーションを少なくとも1回実行することをさらに備えることを任意に含み得る。
【0071】
例31はバスを課して少なくとも1つのメモリモジュールに連結される装置であり、当該装置は、メモリモジュールがバスインターフェースの側波帯レーン上で、連続する複数のビットパターンを送信するトレーニングモードを開始するようメモリモジュールにプログラムするための手段と、バスインターフェースを介して当該複数のビットパターンを受信するための手段と、受信された複数のビットパターンからビットパターンにおける複数の値の遷移を決定して、複数の値の決定された複数の遷移の間でデータアイを決定するための手段と、決定されたデータアイ内でデータをサンプリングするために使用される複数の補間信号を生成する位相補間器を制御するための設定を決定するための手段とを備える。
【0072】
例32において、例31の主題は、トレーニングモードを終了するようメモリモジュールにプログラムし、データアイ、及び位相補間器を制御するための設定を決定することに応答して、複数のビットパターンを送信するための手段を任意に含み得る。
【0073】
例33において、例31の主題は、受信された複数のクロックビットパターンから遷移を決定するための手段が、レジスタにビットパターンからのリードされた値を格納するための手段と、次のビットパターンの送信からの次にリードされた値が、レジスタ中のリードされた値と一致するかどうかを決定するための手段とを備え、データアイはレジスタに格納される複数の値と一致する2つのリードされた値の端部の間で決定されることを任意に含み得る。
【0074】
例34において、例31の主題は、位相補間器を制御するための設定を決定することに応答して、リード識別子と共にリードコマンドをメモリモジュールに送信するための手段と、戻されたリード識別子を含む、メモリモジュールからのリードデータを受信するための手段と、戻されたリード識別子が、リードコマンドと共に送信されたリード識別子と一致すると決定することに応答してリードオフセットを決定するための手段とを任意に含み得て、当該リードオフセットは、位相補間器のための決定された設定を用いて、データアイにおいてリードデータをサンプリングすることをいつ開始すべきかを決定するために使用される。
【0075】
例35において、例34の主題は、受信されたリード識別子が、リードコマンドと共に送信されたリード識別子と一致しないと決定することに応答して、メモリモジュールからの受信されたリードデータが、生成された新たなリード識別子を含むことに応答してリードオフセットが決定されるまで、新たなリード識別子を生成して、メモリモジュールに送信される新たなリードコマンドに含めるイタレーションを少なくとも1回実行するための手段を任意に含み得る。
【0076】
例36において、例31の主題は、リード識別子と共にリードコマンドをメモリモジュールに送信することと、バスインターフェースの側波帯レーン上でメモリモジュールからの受信されたリード識別子を受信することと、受信されたリード識別子が、リードコマンドと共に送信されたリード識別子と一致すると決定することに応答して、受信されたリード識別子がリードされた場所としてデータアイを決定すること、及び、受信されたリード識別子がリードされた、決定されたデータアイにおいてデータをサンプリングするために使用される複数の補間信号を生成する位相補間器を制御するための設定を決定することとを実行することによる、バスインターフェースのコマンド及びデータの信号ラインとは別個の、バスインターフェースの側波帯レーン上で、メモリモジュールから戻されたリード識別子を用いて、リードデータがバスインターフェース上でサンプリングされるリードオフセットを決定するための手段と、リードオフセットを用いて、リードデータのデータアイにおいてデータをサンプリングすることをいつ開始すべきかを決定するための手段とを任意に含み得る。
図1
図2
図3
図4
図5
図6