(57)【要約】ＤＤＲ又は他のメモリに対するメモリトレーニングをより迅速に実施することができる技術及び構造が開示される。メモリコントローラは、１つ以上のメモリパラメータ（例えば、タイミング遅延）を、遅延ロックループ（ＤＬＬ）等の１つ以上のハードウェア要素に対して判断することができるように構成されている。トレーニングは、システムＢＩＯＳによる介入（又はシステムＢＩＯＳへの結果の報告）を伴わずに実施され得る。このため、トレーニングは、ハードウェアにおいて完全に実施され得る。また、電圧トレーニング技術も開示される。【選択図】図１Ａ
2014517964.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のメモリトレーニングパラメータを使用して、メモリ要素の試験を実施するように構成された制御回路と、
前記試験の中間結果を受信し、前記中間結果に基づいて、前記１つ以上のメモリトレーニングパラメータのうち少なくとも１つを調整するように構成されたパラメータ調整回路と、
を備える、メモリコントローラ。
【請求項２】
前記１つ以上のメモリトレーニングパラメータのうち前記少なくとも１つは、タイミングパラメータであり、
前記パラメータ調整回路は、複数の中間結果に基づいて、前記タイミングパラメータに対する１つ以上の動作値を判断するように構成されている、
請求項１に記載のメモリコントローラ。
【請求項３】
前記試験の前記中間結果は、前記メモリ要素の複数の読み取り／書き込み試行のうち１つ以上が、前記１つ以上のメモリトレーニングパラメータに対する所与の値を使用して完了したという指標を含み、
前記パラメータ調整回路は、前記メモリ要素の前記複数の読み取り／書き込み試行のうち１つ以上が完了したという前記指標に基づいて、前記１つ以上のメモリトレーニングパラメータのうち前記少なくとも１つを、前記所与の値以外の値に調整するように構成されている、
請求項１に記載のメモリコントローラ。
【請求項４】
前記メモリ要素は、複数のグループの記憶バイトを備え、
前記制御回路は、前記複数のグループの記憶バイトごとに、タイミングパラメータ値を、グループの記憶バイト専用の遅延ロックループに提供することによって、前記メモリ要素の前記試験を実施するように構成されている、
請求項３に記載のメモリコントローラ。
【請求項５】
前記パラメータ調整回路は、前記１つ以上のメモリトレーニングパラメータのうち前記少なくとも１つに対する複数の値を使用して、前記メモリ要素上で複数の読み取り／書き込み試行を実施することによって、前記試験を実施するように構成されており、
前記メモリコントローラは、前記複数の読み取り／書き込み試行の結果における計算を実施することによって、前記１つ以上のメモリトレーニングパラメータのうち前記少なくとも１つに対する動作値を判断するように構成されている、
請求項１に記載のメモリコントローラ。
【請求項６】
前記制御回路は、電圧パラメータ及びタイミングパラメータを変化させることによって、前記メモリ要素の前記試験を実施するように構成されている、
請求項１に記載のメモリコントローラ。
【請求項７】
前記パラメータ調整回路は、複数の電圧パラメータ値ごとに、電圧パラメータ値を使用して、前記メモリ要素上で複数の読み取り／書き込み試行を実施するように構成されており、前記複数の読み取り／書き込み試行の各々は、異なるタイミングパラメータ値を使用する、
請求項６に記載のメモリコントローラ。
【請求項８】
前記メモリコントローラは、前記メモリ要素に対する複数の動作タイミングパラメータ値を判断するように構成されており、前記複数の動作タイミングパラメータ値の各々は、少なくとも前記複数の電圧パラメータ値のそれぞれに対応する、
請求項７に記載のメモリコントローラ。
【請求項９】
前記メモリコントローラは、左端値及び右端値を平均化することによって、前記動作値を判断するように構成されている、
請求項５に記載のメモリコントローラ。
【請求項１０】
メモリコントローラが、メモリ要素の複数の試験を実施するステップであって、前記複数の試験のうち最初の試験は、タイミングパラメータに対する第１の値を使用し、前記複数の試験のうちその後の試験は、各々、前記タイミングパラメータに対するそれぞれ異なる値を使用し、前記それぞれ異なる値は、前記メモリ要素の前記複数の試験のうち１つ以上前に実施された試験の結果に基づいて、前記メモリコントローラによって判断される、ステップと、
前記メモリコントローラが、前記複数の試験の結果に基づいて、前記タイミングパラメータに対する動作値を判断するステップと、
を含む、方法。
【請求項１１】
前記メモリ要素の前記複数の試験を実施するステップは、ＢＩＯＳデバイスに、前記複数の試験の前記結果を報告することに依存しない、
請求項１０に記載の方法。
【請求項１２】
前記メモリ要素は、複数のグループの記憶バイトを含み、
前記メモリ要素の前記複数の試験を実施するステップは、
複数の遅延ロックループのうち異なる遅延ロックループを介して、前記複数のグループの記憶バイトのうち異なる記憶バイトへの書き込みを実施するステップと、
前記複数のグループの記憶バイトのうち前記異なる記憶バイトの読み取りを実施するステップと、を含む、
請求項１０に記載の方法。
【請求項１３】
前記メモリコントローラが、前記タイミングパラメータに対する複数の動作値を判断するステップをさらに含み、前記複数の判断された動作値の各々は、前記複数の遅延ロックループのうち少なくとも１つに対応する、
請求項１２に記載の方法。
【請求項１４】
前記メモリ要素の前記複数の試験を実施するステップは、変化した環境的条件の指標に応答する、
請求項１０に記載の方法。
【請求項１５】
前記メモリコントローラが、前記複数の試験の前記結果に基づいて、前記タイミングパラメータに対する動作値の範囲を判断するステップをさらに含み、前記判断された動作値は、前記範囲内である、
請求項１０に記載の方法。
【請求項１６】
１つ以上のメモリトレーニングパラメータを使用して、メモリ要素の試験を実施するための手段と、
前記試験の中間結果を受信し、前記中間結果に基づいて、前記１つ以上のメモリトレーニングパラメータのうち少なくとも１つを調整するための手段と、
を備える、装置。
【請求項１７】
前記１つ以上のメモリトレーニングパラメータのうち前記少なくとも１つは、タイミングパラメータであり、
複数の中間結果に基づいて、前記１つ以上のメモリトレーニングパラメータに対する１つ以上の動作値を判断するための手段をさらに備える、
請求項１６に記載の装置。
【請求項１８】
前記試験の前記中間結果は、前記メモリ要素の複数の読み取り／書き込み試行のうち１つ以上が、前記１つ以上のメモリトレーニングパラメータに対する所与の値を使用して完了したという指標を含み、
前記メモリ要素の前記複数の読み取り／書き込み試行のうち１つ以上が完了したという前記指標に基づいて、前記１つ以上のメモリトレーニングパラメータのうち前記少なくとも１つを、前記所与の値以外の値に調整するための手段をさらに備える、
請求項１６に記載の装置。
【請求項１９】
コンピュータシステム上で実行可能なプログラムによって動作するデータ構造を備えたコンピュータ可読記憶媒体であって、
前記プログラムは、プロセスの一部を実施して、前記データ構造によって記述された回路を含む集積回路を作製するように前記データ構造上で動作し、
前記データ構造によって記述された前記回路は、
１つ以上のメモリトレーニングパラメータを使用して、メモリ要素の試験を実施するように構成された制御回路と、
前記試験の中間結果を受信し、前記中間結果に基づいて、前記１つ以上のメモリトレーニングパラメータのうち少なくとも１つを調整するように構成されたパラメータ調整回路と、を含む、
コンピュータ可読記憶媒体。
【請求項２０】
ハードウェア記述言語（ＨＤＬ）データ、Ｖｅｒｉｌｏｇデータ又はグラフィックデータベースシステムＩＩ（ＧＤＳＩＩ）データを記憶する、
請求項１９に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、コンピューティングデバイスのためのメモリに関する。より具体的には、本開示は、コンピューティングデバイスメモリのための動作パラメータの試験及び／又は判断に関する。
【背景技術】
【０００２】
多くのコンピュータアーキテクチャにおいて、コンピュータプロセッサは、バスを通じてコンピュータメモリに接続されている。メモリの読み書きを正確に実施するために、メモリデータ信号を遅延させて、当該メモリデータ信号をメモリ制御信号と同期する必要があり得る。制御信号は、例えば、ビットストリームにいつアクセスするかを示す信号であり得る。制御信号及びデータ信号は、位相がずれて到着し得るため、２つの信号を共に同期し戻すための遅延値の使用は、エラーを低減することができる（同期は、ビットストリームが、高から低又は低から高のビット遷移の中間において誤ってサンプルされることを阻止し得る）。さらに、メモリの異なる部分は、メモリの物理的特徴、メモリに接続されたデータ回線（若しくはバス）及び／又は全体的な動作環境の変化により、異なる様式で動作し得る。
【０００３】
このため、メモリアクセスは、いくつかの遅延ロックループ（ＤＬＬ）を介して提供され得る。各ＤＬＬは、メモリの一部へのメモリアクセスを統制し得、メモリデータをメモリ制御と同期するように、特定の遅延設定に調整可能であり得る。種々のＤＬＬタイミング遅延パラメータに対して適切な値を調整することは、データが、正確に、コンピュータメモリの全ての部分に書き込まれることと、コンピュータメモリの全ての部分から読み取られることを確実にし得る。しかしながら、遅延設定を判断することは、特に、より高いメモリ動作頻度において、時間がかかり得る。
【発明の概要】
【０００４】
一実施形態において、制御回路と、パラメータ調整回路とを備えるメモリコントローラが開示される。制御回路は、１つ以上のメモリトレーニングパラメータを使用して、メモリ要素の試験を実施するように構成されており、パラメータ調整回路は、試験の中間結果を受信し、中間結果に基づいて、１つ以上のメモリトレーニングパラメータのうち少なくとも１つを調整するように構成されている。
【０００５】
他の実施形態では、メモリコントローラが、メモリ要素の複数の試験を実施することを含む方法が開示される。複数の試験のうち最初の試験は、タイミングパラメータに対する第１の値を使用し、複数の試験のうちその後の試験は、各々、タイミングパラメータに対するそれぞれ異なる値を使用し、それぞれ異なる値は、メモリ要素の複数の試験のうち１つ以上の以前に実施された試験の結果に基づいて、メモリコントローラによって判断される。また、方法は、メモリコントローラが、複数の試験の結果に基づいて、タイミングパラメータに対する動作値を判断することを含む。
【０００６】
他の実施形態では、装置が開示される。この装置は、１つ以上のメモリトレーニングパラメータを使用して、メモリ要素の試験を実施するための手段と、試験の中間結果を受信し、中間結果に基づいて、１つ以上のメモリトレーニングパラメータのうち少なくとも１つを調整するための手段と、を備える。
【０００７】
他の実施形態では、コンピュータシステム上で実行可能なプログラムによって、当該システム上で作動するデータ構造を備えるコンピュータ可読記憶媒体が開示される。プログラムは、プロセスの一部を実施して、データ構造によって記述された回路を含む集積回路を作製するように、データ構造上で動作し、データ構造によって記述された回路は、１つ以上のメモリトレーニングパラメータを使用して、メモリ要素の試験を実施するように構成された制御回路を含み、かつ、試験の中間結果を受信し、中間結果に基づいて、１つ以上のメモリトレーニングパラメータのうち少なくとも１つを調整するように構成されたパラメータ調整回路を含む。
【０００８】
本開示の教示及び添付の請求項は、明確に、本発明の概要において上述した特性及び実施形態によって限定されない。
【図面の簡単な説明】
【０００９】
【図１Ａ】入出力（「Ｉ／Ｏ」）回路を介してコンピュータメモリ要素に接続されたメモリコントローラを示すブロック図である。
【図１Ｂ】Ｉ／Ｏ回路の一実施形態を示すブロック図である。
【図２】パラメータ調整回路及び制御回路の実施形態を示すブロック図である。
【図３】メモリパラメータ動作値を判断する方法のフローチャートである。
【図４】例示的なコンピュータシステムの一実施形態を示すブロック図である。
【発明を実施するための形態】
【００１０】
本明細書は、「一実施形態（ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ）」又は「実施形態（ａｎ  ｅｍｂｏｄｉｍｅｎｔ）」への言及を含む。「一実施形態において」又は「実施形態において」という句の記載は、必ずしも同一の実施形態を指すわけではない。特定の特性、構造又は特徴は、本開示と一致する任意の好適な態様で組み合わせてよい。
【００１１】
専門用語。以下の段落では、本開示（添付の請求項を含む）において現れる用語に関する定義及び／又は文脈を提供する。
【００１２】
「含む、備える（Ｃｏｍｐｒｉｓｉｎｇ）」。本用語は、制約がない。添付の請求項において使用される際、本用語は、追加の構造又はステップを除外しない。「１つ以上のプロセッサユニットを備える装置…」を列挙する請求項を考慮されたい。かかる請求項は、追加の構成要素（例えば、ネットワークインターフェースユニット、グラフィック回路等）を装置が含むことを除外しない。
【００１３】
「〜するように構成されている」。種々のユニット、回路又は他の構成要素は、タスク（１つ又は複数）を実施「するように構成されている」と説明又は主張され得る。かかる文脈において、「〜するように構成されている」とは、ユニット／回路／構成要素が、動作中にこれらのタスク（１つ又は複数）を実施する構造（例えば、回路）を含むことを示すことによって、構造を含意するために使用される。そのようなものとして、ユニット／回路／構成要素は、指定されたユニット／回路／構成要素が、現時点で動作可能でない（例えば、オン状態ではない）ときでさえも、タスクを実施するように構成されていると言うことができる。「〜するように構成されている」という言語と共に使用されるユニット／回路／構成要素は、ハードウェア、例えば、回路、動作を実装するように実行可能なプログラム命令を記憶するメモリ等を含む。ユニット／回路／構成要素が１つ以上のタスクを実施「するように構成されている」と列挙することは、明確に、そのユニット／回路／構成要素に対して、３５  Ｕ．Ｓ．Ｃ．  §  １１２、第６項を行使することを意図しない。さらに、「〜するように構成されている」は、問題のタスク（複数を含む）を実施することが可能な態様で動作するように、ソフトウェア及び／又はファームウェア（例えば、ＦＰＧＡ若しくはソフトウェアを実行する汎用プロセッサ）によって操作される一般的構造（例えば、一般的回路）を含むことができる。また、「〜するように構成されている」は、１つ以上のタスクを実装又は実施するように適合されたデバイス（例えば、集積回路）を作製するように、製造プロセス（例えば、半導体作製設備）を適合することを含み得る。
【００１４】
「第１の」、「第２の」等。本明細書にて使用される際、これらの用語は、これらが先行する名詞に対する標識として使用され、いかなるタイプの順序（例えば、空間的、時間的、論理的等）も示唆しない。例えば、「第１の」メモリパラメータ値及び「第２の」メモリパラメータ値は、任意の２つの値を指すために使用することができ、１つの値が、別のものよりも高いこと、又は１つの値が他方に先立って判断されたことを示唆するものではない。換言すると、「第１の」及び「第２の」は、記述子である。
【００１５】
「〜に基づく」。本明細書にて使用される際、本用語は、判断に影響する１つ以上の要因を説明するために使用される。本用語は、判断に影響し得る追加の要因を除外しない。即ち、判断は、それらの要因にのみ基づくものであってもよいし、それらの要因において少なくとも部分的に基づくものであってもよい。「Ｂに基づいてＡを判断する」という句を考慮されたい。Ｂは、Ａの判断に影響し得る要因であり得る一方で、かかる句は、Ａの判断がＣにも基づくことを除外しない。他の例において、Ａは、Ｂにのみ基づいて判断され得る。
【００１６】
「プロセッサ」。本用語は、当該技術分野において通常且つ許容される意味を有し、命令を実行することが可能であるデバイスを含む。プロセッサは、限定することなく、中央処理ユニット（ＣＰＵ）、コプロセッサ、演算処理ユニット、グラフィック処理ユニット、デジタル信号プロセッサ（ＤＳＰ）等を指し得る。プロセッサは、単一又は複数のパイプラインを有するスーパースカラプロセッサであってよい。プロセッサは、各々が、命令を実行するように構成された単一又は複数のコアを含み得る。
【００１７】
「ＢＩＯＳ」又は「ＢＩＯＳデバイス」。本用語は、当該技術分野において通常且つ許容される意味を有する。本用語は、ハードウェアシステム設定、電力設定、ブートデバイスの順序設定等を変更するように、コンピュータシステムのオペレーティングシステムから独立して、コンピュータシステムのプロセッサによって実行可能なコンピュータ命令が記憶されたメモリ又は記憶デバイス（ＥＰＲＯＭ若しくはＥＥＰＲＯＭ等）を含む。
【００１８】
「メモリトレーニングパラメータ」又は「メモリパラメータ」。本明細書にて使用される際、これらの用語は、メモリ読み取り及び／又はメモリ書き込みの動作に影響する任意のパラメータを指す。
【００１９】
コンピュータシステムは、メモリバスとインターフェースをとる１つ以上のメモリコントローラチャネル（ＭＣＣ）に接続されたメモリコントローラを有してもよい（例えば、ｘ８６プロセッサは、ＤＲＡＭコントローラチャネルに接続された当該プロセッサのノースブリッジにおいて、メモリコントローラを有し得る）。ＭＣＣは、コントローラからの書き込み及びメモリからの読み取りが正常に作動することを確実とするように、部分的態様において、伝送器及び受信器を遅延させる回路を含んでもよい。一部の遅延値は、他よりも良好に作動してもよく、メモリがより高い頻度で動作することを可能にしてもよい。このため、適切な遅延値を判断するプロセスは、システムがピーク性能を達成するのに役立ち得る。このプロセスを達成することができる一つの方法は、ＰＣＩアクセスを介して（例えば、サウスブリッジを通じて）、伝送器及び受信器における遅延を動的に調整しつつ、ＢＩＯＳに、メモリコントローラチャネルからデータを読み取らせ、且つ、メモリコントローラチャネルにデータを書き込ませることによる。これは、「メモリトレーニング」と呼ばれる動的プロセスの例である。
【００２０】
メモリトレーニング中、メモリコントローラは、メモリにデータを書き込み、次いで、データを読み戻し、そのデータを、以前に書き込まれたデータと比較することによって、プロセッサが正常な遅延設定を使用してデータを書き込んだ又は読み取ったかどうかを判断し得る。比較に失敗した後、新たな遅延設定がチャネルコントローラに対して使用されてもよく、プロセスは、比較が正常になるまで繰り返されてもよい。しかしながら、大量のメモリがメモリコントローラに設けられる場合、トレーニング時間は、特に、多数のＰＣＩアクセスがＢＩＯＳによって行われる場合（ＢＩＯＳは、別の異なる遅延設定の試験に進む前に、アクセスが特定の遅延設定に対して完了したことを判断するように、完了ビットをポーリングすることを必要とされ得るため）、著しく増加し得る。追加の情報に関しては、全体として参照することによって本明細書に組み込まれる、米国特許公開第２００９／０２４４９９７号（米国出願第１２／０５９，６５３号に対応）、及び米国特許公開第２０１０／０３２５３７２号（米国出願第１２／４８６，４８８号に対応）を参照されたい。本開示は、メモリトレーニングがより迅速に実施されることを可能にし得る構造及び技術を含む。一実施形態において、メモリトレーニングは、ＢＩＯＳからの介入を伴わずに実施される。
【００２１】
ここで図１Ａを参照すると、メモリコントローラ１０５が、入出力（「Ｉ／Ｏ」）回路１５０を介してコンピュータメモリ要素１８０に接続されているブロック図１００が示されている。
メモリ要素１８０は、システム４００（図４について以下で説明される）等のコンピュータシステム内に存在し得る１つ以上のメモリ記憶要素を備えている。一実施形態において、メモリ要素１８０は、動的ランダムアクセスメモリ（ＤＲＡＭ）の１つ以上のモジュールであるが、他の実施形態では、データを記憶するように構成された任意の他のタイプのメモリであってもよい。一実施形態において、メモリ要素１８０は、ＤＤＲ２又はＤＤＲ３  ＤＲＡＭである。したがって、メモリ要素１８０は、複数のグループの記憶バイトを備えている。メモリ要素１８０（及びこれらのグループの記憶バイト）へのアクセスは、Ｉ／Ｏ回路１５０を通じて提供される。
【００２２】
Ｉ／Ｏ回路１５０の実施形態は、図１Ｂのブロック図において示される。図１Ｂにおいて、Ｉ／Ｏ回路１５０Ｂは、制御回路１２０及びメモリ要素１８０に連結するように構成されており、伝送バッファ１５４と、伝送器１５６と、受信器１５８と、受信バッファ１６０とを含む。一部の実施形態において、Ｉ／Ｏ回路１５０は、バッファ１５４、伝送器１５６、受信器１５８、受信バッファ１６０のうち何れか又は全てを複数含む。一部の実施形態において、伝送器１５６及び受信器１５８は、例えば米国公開第２００９／０２４４９９７号において説明されているように、単一の送受信器構造に組み合わされている。したがって、Ｉ／Ｏ回路１５０について多くの構成が可能である。
【００２３】
メモリ要素１８０に書き込まれるべき情報は、伝送器１５６を介して送信される前に、伝送バッファ１５４に記憶されてもよい。伝送器１５６は、１つ以上の遅延ロックループを含んでもよく（又は当該遅延ロックループに接続されてもよく）、それぞれの遅延ロックループは、メモリ要素１８０の１つ以上の部分（記憶バイト群）への書き込みの同期をとるために使用されてもよい。伝送器１５６内の各ＤＬＬ（又は複数の伝送器１５６にわたる各ＤＬＬ）は、異なるタイミングパラメータ値によって統制されてもよい。例えば、第１のＤＬＬは、第１のタイミング値に従って、メモリデータ信号（ＤＱ）をメモリデータストローブ信号（ＤＱＳ）と一致させ得る一方で、別のＤＬＬは、第２の異なるタイミング値を使用して、ＤＱをＤＱＳと一致させ得る。同様に、受信器（複数の場合を含む）１５８は、１つ以上のタイミング遅延値に従って、ＤＱをＤＱＳと一致させる１つ以上のＤＬＬを含んでもよい。一部の実施形態において、伝送器１５６及び受信器１５８におけるＤＬＬは、共有されてもよい。より一般的には、伝送器（複数を含む）１５６、受信器（複数を含む）１５８及び／又は内部に含まれる（若しくは伝送器１５６及び受信器１５８が接続するように構成された）ＤＬＬは、上記‘９９７公開及び／又は上記‘３７２公開において説明される、伝送器、受信器、送受信器及びＤＬＬの特徴の何れか又は全てを有してもよい。
【００２４】
図１Ａに戻ると、メモリコントローラ１０５は、パラメータ調整回路１１０と、制御回路１２０とを含む。パラメータ調整回路１１０は、図１Ａの実施形態における１つ以上のメモリ要素の試験を開始するように構成されている。一実施形態において、メモリ試験を開始するための指標は、ＢＩＯＳデバイス又はプロセッサ等の別の構成要素から、パラメータ調整回路１１０によって受信される。他の実施形態において、パラメータ調整回路１１０は、メモリ試験を自動的に（例えば、回路１１０を含むコンピュータシステムが電源投入されたことに応じて）開始するように構成されてもよい。さらなる実施形態において、パラメータ調整回路１１０は、環境的条件における検出された変化（例えば、温度の上昇若しくは低下、電圧の上昇若しくは低下）、ソフトウェア（例えば、オペレーティングシステム若しくはＢＩＯＳ）からのコマンド、又は固定長及び／若しくは可変長タイミングの任意の組み合わせを使用し得る、ハードウェア若しくはソフトウェアベースの何れかのタイマ等のトリガ事象に応じて、１つ以上のメモリ要素の試験を開始（又は再開）するように構成されてもよい。一部の実施形態において、パラメータ調整回路１１０よりもむしろ、制御回路１２０がメモリ試験を開始するように構成されている。
【００２５】
一般的に、パラメータ調整回路１１０及び制御回路１２０に関して、本明細書において説明される構造及び機能の何れか又は全ては、他の回路において優先的に位置するようにしてもよい。このため、一部の実施形態において、パラメータ調整回路１１０及び制御回路１２０（並びに内部に含まれる機能）の全て又は一部は、メモリコントローラ１０５の外側に位置してもよい。一部の実施形態において、パラメータ調整回路１１０（並びに内部に含まれる機能）の全て又は一部は、制御回路１２０内に位置してもよく、逆もまた同様である。さらに、Ｉ／Ｏ回路１５０（並びに内部に含まれる機能）の全て又は一部は、メモリコントローラ１０５、メモリ要素１８０及び／又は本明細書において明示されない他の構造内に位置してもよい。
【００２６】
図１Ａの実施形態において、制御回路１２０は、１つ以上のメモリトレーニングパラメータを使用して、１つ以上のメモリ要素の試験を実施するように構成されている。一実施形態において、１つ以上のメモリトレーニングパラメータは、１つ以上のタイミングパラメータを含む。これらのタイミングパラメータは、メモリ要素１８０の読み書きに用いられる１つ以上のＤＬＬの挙動を統制するために使用されてもよい。例えば、所与のＤＬＬは、ＤＱ信号を、対応するＤＱＳ信号とより良好に整合させるために、ある割合の（若しくは複数の）クロックサイクルだけ、ＤＱ信号を遅延させてもよい（代替的に、ＤＱＳ信号は、一部の実施形態において、ＤＱ信号に対して遅延してもよい）。他の実施形態において、１つ以上のメモリ要素の試験のために使用される１つ以上のメモリトレーニングパラメータは、メモリチャネルの動作電圧（又は公称ピーク電圧）等の１つ以上の電圧パラメータを含む。
【００２７】
ここで図２を参照すると、パラメータ調整回路２１０及び制御回路２６０のブロック図が示されている。これらの回路は、上述したパラメータ調整回路１１０及び制御回路１２０の特性、構造又は機能のうち何れかを有してもよく、逆もまた同様である。図示されるように、パラメータ回路２１０は、パラメータ判断論理２２０と、結果記憶装置２３０と、インターフェース論理２４０とを含み、制御回路２６０は、試験データ生成器２６２と、比較器２６４と、インターフェース論理２６６とを含む。回路１１０及び１２０に関して上述したように、回路２１０（及び内部に含まれる機能）の全て又は一部は、回路２６０に位置してもよく、その逆もまた同様であってもよい。一実施形態において、共通回路は、回路２１０及び２６０に関して説明された全ての構造及び機能を含む。
【００２８】
パラメータ調整回路２１０は、１つ以上のメモリトレーニングパラメータに対する１つ以上の動作値を判断するように構成されている。本明細書において使用される際、「動作値」という用語は、通常のコンピューティング動作の一部として使用される値を指す（試験又は校正の目的のために排他的に使用される値とは対照的である）。動作値及び試験値は、当然のことながら、同じ数値を有してもよいし、又は同じ数値範囲内にあってもよい。図２の実施形態において、パラメータ判断論理２２０は、結果記憶装置２３０に記憶された中間結果に基づいて、動作値を判断するように構成されている。一実施形態において、メモリ要素の試験についての複数の中間結果は、１つ以上のパラメータ動作値を判断するように、パラメータ調整回路２１０によって使用される。メモリ試験の中間結果は、一実施形態において、インターフェース論理２４０を介して、制御回路２６０によって記憶装置２３０に送達される。図２の実施形態において、インターフェース論理２４０は、制御回路２６０と通信するための部分２４２と、ＢＩＯＳと通信する（例えば、試験を開始するための指標を受信する）ための部分２４４とを含む。
【００２９】
試験データ生成器２６２は、図２の実施形態において、１つ以上のメモリトレーニングパラメータを使用したメモリ要素の試験のための試験データを生成するように構成されている。一実施形態において、生成器２６２は、パターン生成器であり、１つ以上の事前構成されたパターン又はシーケンスに基づいて、大量のデータ（例えば、数百メガバイト以上）を生成することが可能である。一部の実施形態において、生成された全ての試験データ又はその一部は、ランダム又は擬似ランダムに生成されてもよい。一部のデータパターンは、困難な境界事例（例えば、ある連続した数のゼロ、続いて単一の１、再び続くいくつかの連続したゼロは、「１」ビットをより検出し難くすることができ、逆もまた同様である）を試験するように設計された部分を含む。
【００３０】
図２の実施形態において、インターフェース論理２６６は、１つ以上のメモリトレーニングパラメータに対する１つ以上の現在（試験）値を使用して、メモリ要素１８０に（例えば、Ｉ／Ｏ回路１５０を介して）データを書き込むために使用される。試験データがメモリ要素１８０に書き込まれた後、データは、メモリから（例えば、受信器１５８及び受信器バッファ１６０を介して）読み戻される。一部の実施形態において、試験データを読み取るプロセスは、試験データを書き込むプロセスと重複してもよい（即ち、これらの実施形態において、読み取りを開始することができる前に、全ての試験データがメモリ要素１８０に書き込まれる必要があるわけではない）。比較器２６４は、メモリから読み取られる試験データ（入って来るデータ）が、メモリに書き込まれた試験データ（出て行くデータ）と同じであるかどうかを判断し、且つ、それから中間結果を生成する回路論理を含む。次いで、これらの中間結果は、結果記憶装置２３０に報告され、結果記憶装置２３０によって記憶されてもよい。試験データをメモリに書き込む及び読み戻すプロセスは、本明細書において、「読み取り／書き込み試行」と称される。一部の実施形態において、読み取り／書き込み試行は、１つ以上の中間結果の生成等の他の追加の動作を含む。
【００３１】
比較器２６４によって生成される中間結果データのタイプ及び豊富度は、実施形態によって異なってもよい。一部の実施形態において、比較器２６４は、入力される試験データが、所与のメモリトレーニングパラメータ（複数を含む）に対して、出力される試験データと完全に同一であったかどうかに関して、及第／落第指標を単に生成するように構成されている。他の実施形態において、比較器２６４は、データの閾値量又は割合が正常である場合（例えば、１ＧＢの試験データあたり１ビットエラー又はバイトエラー以下）、及第結果を生成し得る。さらなる実施形態において、比較器２６４は、読み取り／書き込み試行中に発生したビットエラー若しくはバイトエラーの数、及び／又は試験データパターン内のエラーの場所を示す（例えば、どの特定の事例が失敗を引き起こした可能性があるかを示す）定量的データを生成し得る。
【００３２】
１つ以上のメモリトレーニングパラメータに対応する１つ以上の中間結果に基づいて、パラメータ調整回路２１０は、メモリトレーニングパラメータのうち少なくとも１つを調整するように構成されている。例えば、一実施形態において、パラメータ調整回路２１０は、所与のＤＬＬに対する所与のタイミングパラメータ値（当該ＤＬＬに対するＤＱとＤＱＳとの間のゼロオフセット遅延値等）を使用して、メモリ要素１８０の試験を開始するように構成されている。所与の値を使用して、最初の読み取り／書き込み試行が完了すると、パラメータ調整回路は、所与の値を固定量増加させてもよい（例えば、所与のＤＬＬに対するＤＱとＤＱＳとの間のオフセットを、クロックサイクルの１／３２増分する）。次いで、その後の読み取り／書き込み試行が、メモリトレーニングパラメータに対する新たな値を使用して実施されてもよく、それから、さらなる中間結果が生成されてもよい（その後、所与のＤＬＬに対するメモリトレーニングパラメータ値へのさらなる長生を行うことができる）。種々の実施形態において、パラメータ調整回路２１０を含むメモリコントローラは、複数のＤＬＬを一度に並行してトレーニングしてもよい。並行トレーニングは、一部の実施形態において、複数のメモリコントローラチャネルを介して行われてもよい。さらに、複数のメモリコントローラを有するシステムも、それらのコントローラを同時に、又は並行してトレーニングしてもよい。
【００３３】
また、パラメータ調整回路２１０は、１つ以上のメモリトレーニングパラメータに対する動作値を判断するように構成されている。したがって、一実施形態において、パラメータ判断論理２２０は、複数の読み取り／書き込み試行の中間結果において計算を実施して、動作値を計算するように構成されている。かかる計算は、所与のＤＬＬに対する遅延値の「左端」及び／又は「右端」の判断を含んでもよい。例えば、中間結果が、異なる読み取り／書き込み試行に対して、以下のタイミングパラメータ値及び及第／落第指標から成る場合、
【表１】
2014517964.tif 000003
１／８（第１の成功値）の「左端」、及び４／８（最後の成功値）の「右端」を判断することができる。この情報から、５／１６の動作値は、左端及び右端値を平均化することによって計算され得る。ビット又はバイトエラーの数等の定量的データが各試行に対して利用可能であった場合、例えば重み付け平均化等の、動作値を判断する他の方法も実施することができる。また、動作値は、反復試験を使用して判断されてもよく、例えば、１／８の左端及び４／８の右端内の追加の読み取り／書き込み試行が実行されてもよく、その後、動作値は、さらに生成されたデータを使用して計算されるであろう。１つ以上の動作値が判断された後、動作値は、結果記憶装置２３０、専用レジスタ（例えば、パラメータ調整回路２１０内若しくはＤＬＬ自体内のレジスタ）又は当業者に着想されるであろう任意の他の好適な場所に記憶することができる。一実施形態において、パラメータ動作値は、ＢＩＯＳに記憶されてもよい。
【００３４】
また、電圧メモリパラメータは、パラメータ調整回路２１０及び制御回路２６０によってトレーニングされ得る。このため、一実施形態において、制御回路２６０は、電圧パラメータ及びタイミングパラメータの両方を変化させることによって、メモリ要素１８０の試験を実施するように構成されている。かかる試験は、例えば、他方の電圧におけるタイミングパラメータに対する１つ以上の他の動作値を判断するように、一方の電圧レベルにおけるそのＤＬＬに対するタイミングパラメータの動作値を判断し、次いで、電圧レベルを上昇又は低下させ、追加の読み取り／書き込み試行を実行することによって、所与のＤＬＬに対して実施されてもよい。例えば、かかる試験の結果は、以下の形態を採り得る。
【表２】
2014517964.tif 000004
異なる電圧レベルに対する種々のタイミング設定を判定した後、メモリチャネルコントローラは、適宜、適切なタイミングパラメータ動作値を拾い上げ得る（例えば、異なるメモリチャネルの電圧に対する異なるタイミング値を使用する、又はシステム動作中の電圧レベル変動に応じて異なるタイミング値を拾い上げる）。このため、一実施形態において、複数の電圧パラメータ値の各々に対する、その電圧パラメータ値を使用した、メモリ要素における複数の読み取り／書き込み試行のそれぞれは、その電圧レベルに対するタイミングパラメータ動作値を判定するように、上述した方法に従って実施され得る。
【００３５】
ここで図３を参照すると、パラメータ動作値を判定するための方法３００のフローチャートが示されている。種々の実施形態において、方法３００のステップは、パラメータ調整回路２１０及び制御回路２６０によって、全体として又は部分的に実施される。
【００３６】
ステップ３１０において、メモリ要素における複数の読み取り／書き込み試行の実施を開始するための指標が受信される。上述したように、かかる指標は、システム電力投入、環境的条件の変化（電圧、温度、他）又はハードウェア若しくはソフトウェアタイマに応じて、自動的に生成されてもよい。かかる指標は、一部の実施形態において、ＢＩＯＳデバイスから受信されてもよい。また、試験を開始するための指標は、試験されるべき特定のアドレス範囲等の追加の情報を含んでもよい。
【００３７】
ステップ３２０において、最初の読み取り／書き込み試行は、メモリトレーニングパラメータに対する第１の値を使用して実施される。種々の実施形態において、この最初の値は、事前設定されてもよいし、動的に判断されてもよいし、試験を開始するための指標において指定されてもよい。例えば、最初の読み取り／書き込み試行は、特定のＤＬＬに対して、ゼロのＤＱ／ＤＱＳタイミング遅延値を使用してもよい。次いで、データは、そのタイミング遅延値が正常な結果を生成したかどうかを判定するために、メモリに書き込まれ、且つ、当該メモリから読み取られるであろう。
【００３８】
ステップ３３０において、最初の試行の結果に基づいて、メモリトレーニングパラメータに対する異なる値が判断される。一部の実施形態において、このステップは、ＤＱ／ＤＱＳタイミング遅延値を固定量（例えば、クロックサイクルのいくらかの割合）増分することを含んでもよい。他の実施形態において、タイミング遅延値は、動的に判断された量（例えば、以前の試行からのビット又はバイトエラーの数に関する定量的データに応じて）増分されてもよい。本明細書における種々の実施例は、試験中にメモリトレーニングパラメータ値を「増分すること」に言及する一方で、減分（減算）、乗算又は除算等の、値を変更するための他の数学的動作が同等に可能であるということに留意されたい。したがって、異なるパラメータ値は、１つ以上前の結果に基づいて判断されてもよい。
【００３９】
ステップ３４０において、追加の読み取り／書き込み試行は、ステップ３３０からの新たに判断されたパラメータ値を使用して実施される。ステップ３４０は、ステップ３２０に関して上述した要素のうち何れか又は全てを含んでもよい。ステップ３５０において、判断は、問題の特定のメモリパラメータ（複数を含む）に対して試験を継続するかどうかに関して行われる。例えば、左端が既に検出されている場合、試験は、右端も検出される場合に中断してもよい（例えば、１つ以上前に検出された成功の後に１つ以上の失敗を検出後、試験を中断）。代替的に、一部の実施形態において、試験は、可能な値の全範囲が評価されるまで、継続され得る。特定のパラメータ（複数を含む）に対して試験を継続することが判断される場合、方法は、ステップ３３０に戻り、上述したように進む。しかしながら、さらなる試験を行うべきではないと判断される場合、ステップ３６０において、特定のメモリパラメータに対する動作値が判断される。この判断は、上述したように、いかなる態様（例えば、左端／右端平均化、重み付け平均化等）で又は当業者に着想されるように、行うことができる。
【００４０】
一部の実施形態において、ステップ３２０〜３６０は、ＢＩＯＳデバイスに結果を報告することなく実施される。したがって、これらの実施形態において、動作パラメータ値は、システム４００等のコンピュータシステムのＢＩＯＳによるいかなる介入又は意思決定も伴わずに判断され得る。これは、多くのコンピュータシステムにおいて、１つ以上のメモリコントローラがノースブリッジの一部である（又はノースブリッジに接続されている）一方で、ＢＩＯＳは、著しくより遅いサウスブリッジに設けられているため、メモリパラメータトレーニングプロセスを大幅に加速し得る。上述したように、一部の実施形態において、ＢＩＯＳは、パラメータ調整回路２１０又は制御回路２６０のうち一方に指標を送信することによって、メモリトレーニングを開始してもよいが、トレーニングが完了するまで、任意のさらなる行為を必ずしも行わなくてもよい。さらに、最初の始動段階後、ＢＩＯＳがメモリトレーニングにおいて役割を果たさない実施形態において、ＢＩＯＳは、コンピュータシステムを起動するために必要とされる他の動作を自由に実施してもよい（このため、全体的な起動時間をさらに加速する）。
【００４１】
上の開示から見ることができるように、一実施形態において、制御回路２６０は、１つ以上のメモリトレーニングパラメータを使用して、メモリ要素の試験を実施するための手段であり、パラメータ調整回路２１０は、試験の中間結果を受信し、中間結果に基づいて、１つ以上のメモリトレーニングパラメータのうち少なくとも１つを調整するための手段である。
【００４２】
（例示的なコンピュータシステム）
ここで図４を参照すると、メモリコントローラ１０５を含んでもよい例示的なコンピュータシステム４００の一実施形態が示されている。コンピュータシステム４００は、相互接続４６０（例えば、システムバス）を介して、システムメモリ４２０及びＩ／Ｏインターフェース（複数を含む）４４０に連結されたプロセッササブシステム４８０を含む。Ｉ／Ｏインターフェース（複数を含む）４４０は、１つ以上のＩ／Ｏデバイス４５０に連結されている。コンピュータシステム４００は、サーバシステム、パーソナルコンピュータシステム、デスクトップコンピュータ、ラップトップ若しくはノートブックコンピュータ、メインフレームコンピュータシステム、手持ち式コンピュータ、ワークステーション、ネットワークコンピュータ、モバイル電話、ページャ又は個人用デジタル補助装置（ＰＤＡ）等の消費者デバイスを含むが、これらに限定されない種々のタイプのデバイスのうち何れかであってもよい。また、コンピュータシステム４００は、記憶デバイス、スイッチ、モデム、ルータ等の、何れのタイプのネットワーク化された周辺デバイスであってもよい。便宜上、単一のコンピュータシステム４００が示されているが、システム４００は、共に動作する２つ以上のコンピュータシステムとして実装されてもよい。
【００４３】
プロセッササブシステム４８０は、１つ以上のプロセッサ又は処理ユニットを含んでもよい。例えば、プロセッササブシステム４８０は、１つ以上のリソース制御処理要素４２０に連結された１つ以上の処理ユニット（各々の処理ユニットは、複数の処理要素又はコアを有してもよい）を含んでもよい。コンピュータシステム４００の種々の実施形態において、プロセッササブシステム４８０の複数の例は、相互接続４６０に連結されてもよい。種々の実施形態において、プロセッササブシステム４８０（又は４８０内の各プロセッサユニット若しくは処理要素）は、キャッシュ又は他の形態のオンボードメモリを含んでもよい。一実施形態において、プロセッササブシステム４８０は、上述したメモリコントローラ１０５を含んでもよい。
【００４４】
システムメモリ４２０は、プロセッササブシステム４８０によって使用可能であり、種々の実施形態において、要素１８０等の１つ以上のメモリ要素を備えている。システムメモリ４２０は、ハードディスク記憶装置、フロッピー（登録商標）ディスク記憶装置、取り外し可能なディスク記憶装置、フラッシュメモリ、ランダムアクセスメモリ（ＲＡＭ−静的ＲＡＭ（ＳＲＡＭ）、拡張データ出力（ＥＤＯ）ＲＡＭ、同期性動的ＲＡＭ（ＳＤＲＡＭ）、ダブルデータレート（ＤＤＲ）ＳＤＲＡＭ、ＲＡＭＢＵＳ  ＲＡＭ等）、読み取り専用メモリ（ＲＯＭ−プログラマブルＲＯＭ（ＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）等）等の、異なる物理的メモリ媒体を使用して実装されてもよい。コンピュータシステム４００におけるメモリは、メモリ４２０等の一次記憶装置に限定されない。むしろ、コンピュータシステム４００は、プロセッササブシステム４８０におけるキャッシュメモリ及びＩ／Ｏデバイス４５０上の二次記憶装置（例えば、ハードドライブ、記憶装置アレイ等）等の他の形態の記憶装置を含んでもよい。一部の実施形態において、これらの他の形態の記憶装置は、プロセッササブシステム４８０によって実行可能なプログラム命令を記憶してもよい。
【００４５】
Ｉ／Ｏインターフェース４４０は、種々の実施形態に従って、他のデバイスに連結し、当該デバイスと通信するように構成された種々のタイプのインターフェースのうち何れかであってよい。一実施形態において、Ｉ／Ｏインターフェース４４０は、フロントサイドから１つ以上のバックサイドバスへのブリッジチップ（例えば、サウスブリッジ）である。Ｉ／Ｏインターフェース４４０は、１つ以上の対応するバス又は他のインターフェースを介して、１つ以上のＩ／Ｏデバイス４５０に連結されてもよい。Ｉ／Ｏデバイスの例としては、記憶デバイス（ハードドライブ、光学的ドライブ、取り外し可能なフラッシュドライブ、記憶装置アレイ、ＳＡＮ、若しくはこれらの関連コントローラ）、ネットワークインターフェースデバイス（例えば、ローカル若しくはワイドエリアネットワークへの）又は他のデバイス（例えば、グラフィック、ユーザインターフェースデバイス等）が挙げられる。一実施形態において、コンピュータシステム４００は、ネットワークインターフェースデバイスを介して、ネットワークに連結されている。
【００４６】
コンピュータシステム（例えば、コンピュータシステム４００）によって実行されるプログラム命令は、種々の形態のコンピュータで読み取り可能な記憶媒体上に記憶されてもよい。一般的に述べると、コンピュータで読み取り可能な記憶媒体としては、コンピュータに命令及び／又はデータを提供するように、コンピュータによって読み取り可能な任意の非一時的／有形記憶媒体を含んでもよい。例えば、コンピュータで読み取り可能な記憶媒体は、磁気若しくは光学的媒体、例えば、ディスク（固定若しくは取り外し可能な）、テープ、ＣＤ−ＲＯＭ、若しくはＤＶＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、又はＢｌｕ−Ｒａｙ等の記憶媒体が挙げられ得る。記憶媒体は、ＲＡＭ（例えば、同期性動的ＲＡＭ（ＳＤＲＡＭ）、ダブルデータレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３等）ＳＤＲＡＭ、低電力ＤＤＲ（ＬＰＤＤＲ２等）ＳＤＲＡＭ、Ｒａｍｂｕｓ  ＤＲＡＭ（ＲＤＲＡＭ）、静的ＲＡＭ（ＳＲＡＭ）等）、ＲＯＭ、フラッシュメモリ、ユニバーサルシリアルバス（ＵＳＢ）インターフェース等の周辺インターフェースを介してアクセス可能な非揮発性メモリ（例えば、フラッシュメモリ）等の、揮発性若しくは非揮発性メモリ媒体をさらに含んでもよい。記憶媒体は、微小電気機械システム（ＭＥＭＳ）、並びにネットワーク及び／又はワイヤレスリンク等の通信媒体を介してアクセス可能な記憶媒体を含んでもよい。
【００４７】
一部の実施形態において、コンピュータで読み取り可能な記憶媒体は、プログラムによって読み取られる命令であって、上述したように、パラメータ調整回路１１０及び／又は２１０と、制御回路１２０及び／又は２６０とに対するハードウェアを作製するように、直接的又は間接的に使用される命令を記憶するために使用することができる。例えば、命令は、Ｖｅｒｉｌｏｇ又はＶＨＤＬ等の高レベル設計言語（ＨＤＬ）において、ハードウェア機能性の挙動レベル又はレジスタ転送レベル（ＲＴＬ）記述を説明する１つ以上のデータ構造をまとめてもよい。記述は、ネットリストを生成するように記述を統合し得る合成ツールによって読み取られてもよい。ネットリストは、パラメータ調整回路１１０及び／又は２１０と、制御回路１２０及び／又は２６０との機能を表す一組のゲート（例えば、合成ライブラリにおいて定義される）を備えてもよい。次いで、ネットリストは、マスクに適用されるべき幾何学的形状を説明するデータセットを生成するように配置及びルーティングされてもよい。次いで、マスクは、パラメータ調整回路１１０及び／又は２１０と、制御回路１２０及び／又は２６０とに対応する半導体回路（１つ又は複数）を生成するように、種々の半導体作製ステップにおいて使用されてもよい。
【００４８】
具体的な実施形態を説明してきたが、これらの実施形態は、単一の実施形態のみが特定の特性に関して説明される場合でさえも、本開示の範囲を限定することを意図しない。本開示において提供される特性の実施例は、別途記載がない限り、制限的であるよりもむしろ、例解的であることを意図する。上の説明は、本開示の利益を有する当業者に明らかであるような、かかる代替、修正及び均等物を網羅することを意図する。
【００４９】
本開示の範囲は、本明細書において対処される問題のうち何れか又は全てを軽減するかどうかにかかわらず、本明細書において開示される任意の特性若しくは特性の組み合わせ（明示的若しくは黙示的の何れにおいても）、又はその任意の一般論を含む。したがって、新たな請求項が、特性の任意のかかる組み合わせに対して、本出願（又はそれへの優先権を主張する出願）の係属中に策定され得る。特に、添付の請求項を参照して、従属請求項からの特性は、独立請求項のそれらと組み合わせることができ、それぞれの独立請求項からの特性は、任意の適切な様態において、且つ、添付の請求項において列挙される具体的な組み合わせにおいてのみならず、組み合わせることができる。
【図１Ａ】
2014517964.tif 000005
【図１Ｂ】
2014517964.tif 000006
【図２】
2014517964.tif 000007
【図３】
2014517964.tif 000008
【図４】
2014517964.tif 000009
【手続補正書】
【提出日】平成26年1月8日(2014.1.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１つ以上のメモリトレーニングパラメータを使用して、メモリ要素の試験を実施するように構成された制御回路と、
前記試験の中間結果を受信し、前記中間結果に基づいて、前記１つ以上のメモリトレーニングパラメータのうち少なくとも１つを調整するように構成されたパラメータ調整回路と、
を備える、メモリコントローラ。
【請求項２】
前記１つ以上のメモリトレーニングパラメータのうち前記少なくとも１つは、タイミングパラメータであり、
前記パラメータ調整回路は、複数の中間結果に基づいて、前記タイミングパラメータに対する１つ以上の動作値を判断するように構成されている、
請求項１に記載のメモリコントローラ。
【請求項３】
前記試験の前記中間結果は、前記メモリ要素の複数の読み取り／書き込み試行のうち１つ以上が、前記１つ以上のメモリトレーニングパラメータに対する所与の値を使用して完了したという指標を含み、
前記パラメータ調整回路は、前記メモリ要素の前記複数の読み取り／書き込み試行のうち１つ以上が完了したという前記指標に基づいて、前記１つ以上のメモリトレーニングパラメータのうち前記少なくとも１つを、前記所与の値以外の値に調整するように構成されている、
請求項１に記載のメモリコントローラ。
【請求項４】
前記メモリ要素は、複数のグループの記憶バイトを備え、
前記制御回路は、前記複数のグループの記憶バイトごとに、タイミングパラメータ値を、グループの記憶バイト専用の遅延ロックループに提供することによって、前記メモリ要素の前記試験を実施するように構成されている、
請求項３に記載のメモリコントローラ。
【請求項５】
前記パラメータ調整回路は、前記１つ以上のメモリトレーニングパラメータのうち前記少なくとも１つに対する複数の値を使用して、前記メモリ要素上で複数の読み取り／書き込み試行を実施することによって、前記試験を実施するように構成されており、
前記メモリコントローラは、前記複数の読み取り／書き込み試行の結果における計算を実施することによって、前記１つ以上のメモリトレーニングパラメータのうち前記少なくとも１つに対する動作値を判断するように構成されている、
請求項１に記載のメモリコントローラ。
【請求項６】
前記制御回路は、電圧パラメータ及びタイミングパラメータを変化させることによって、前記メモリ要素の前記試験を実施するように構成されている、
請求項１に記載のメモリコントローラ。
【請求項７】
前記パラメータ調整回路は、複数の電圧パラメータ値ごとに、電圧パラメータ値を使用して、前記メモリ要素上で複数の読み取り／書き込み試行を実施するように構成されており、前記複数の読み取り／書き込み試行の各々は、異なるタイミングパラメータ値を使用する、
請求項６に記載のメモリコントローラ。
【請求項８】
前記メモリコントローラは、前記メモリ要素に対する複数の動作タイミングパラメータ値を判断するように構成されており、前記複数の動作タイミングパラメータ値の各々は、少なくとも前記複数の電圧パラメータ値のそれぞれに対応する、
請求項７に記載のメモリコントローラ。
【請求項９】
メモリコントローラが、メモリ要素の複数の試験を実施するステップであって、前記複数の試験のうち最初の試験は、タイミングパラメータに対する第１の値を使用し、前記複数の試験のうちその後の試験は、各々、前記タイミングパラメータに対するそれぞれ異なる値を使用し、前記それぞれ異なる値は、前記メモリ要素の前記複数の試験のうち１つ以上前に実施された試験の結果に基づいて、前記メモリコントローラによって判断される、ステップと、
前記メモリコントローラが、前記複数の試験の結果に基づいて、前記タイミングパラメータに対する動作値を判断するステップと、
を含む、方法。
【請求項１０】
前記メモリ要素の前記複数の試験を実施するステップは、ＢＩＯＳデバイスに、前記複数の試験の前記結果を報告することに依存しない、
請求項９に記載の方法。
【請求項１１】
前記メモリ要素は、複数のグループの記憶バイトを含み、
前記メモリ要素の前記複数の試験を実施するステップは、
複数の遅延ロックループのうち異なる遅延ロックループを介して、前記複数のグループの記憶バイトのうち異なる記憶バイトへの書き込みを実施するステップと、
前記複数のグループの記憶バイトのうち前記異なる記憶バイトの読み取りを実施するステップと、を含む、
請求項９に記載の方法。
【請求項１２】
前記メモリコントローラが、前記タイミングパラメータに対する複数の動作値を判断するステップをさらに含み、前記複数の判断された動作値の各々は、前記複数の遅延ロックループのうち少なくとも１つに対応する、
請求項１１に記載の方法。
【請求項１３】
１つ以上のメモリトレーニングパラメータを使用して、メモリ要素の試験を実施するための手段と、
前記試験の中間結果を受信し、前記中間結果に基づいて、前記１つ以上のメモリトレーニングパラメータのうち少なくとも１つを調整するための手段と、
を備える、装置。
【請求項１４】
前記１つ以上のメモリトレーニングパラメータのうち前記少なくとも１つは、タイミングパラメータであり、
複数の中間結果に基づいて、前記１つ以上のメモリトレーニングパラメータに対する１つ以上の動作値を判断するための手段をさらに備える、
請求項１３に記載の装置。
【請求項１５】
前記試験の前記中間結果は、前記メモリ要素の複数の読み取り／書き込み試行のうち１つ以上が、前記１つ以上のメモリトレーニングパラメータに対する所与の値を使用して完了したという指標を含み、
前記メモリ要素の前記複数の読み取り／書き込み試行のうち１つ以上が完了したという前記指標に基づいて、前記１つ以上のメモリトレーニングパラメータのうち前記少なくとも１つを、前記所与の値以外の値に調整するための手段をさらに備える、
請求項１３に記載の装置。
【国際調査報告】
2014517964.tif 000010
2014517964.tif 000011
2014517964.tif 000012