JP2016540291A - メモリモジュールにおけるストローブ信号に基づいた制御信号のトレーニング方法 - Google Patents

メモリモジュールにおけるストローブ信号に基づいた制御信号のトレーニング方法 Download PDF

Info

Publication number
JP2016540291A
JP2016540291A JP2016526811A JP2016526811A JP2016540291A JP 2016540291 A JP2016540291 A JP 2016540291A JP 2016526811 A JP2016526811 A JP 2016526811A JP 2016526811 A JP2016526811 A JP 2016526811A JP 2016540291 A JP2016540291 A JP 2016540291A
Authority
JP
Japan
Prior art keywords
signal
control signal
memory controller
timing
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016526811A
Other languages
English (en)
Other versions
JP6181299B2 (ja
Inventor
ジー. モリス、トニア
ジー. モリス、トニア
シー. ジャスパー、ジョナサン
シー. ジャスパー、ジョナサン
ヴィ. ラヴラス、ジョン
ヴィ. ラヴラス、ジョン
ティー. タイソン、ベンジャミン
ティー. タイソン、ベンジャミン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2016540291A publication Critical patent/JP2016540291A/ja
Application granted granted Critical
Publication of JP6181299B2 publication Critical patent/JP6181299B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1066Output synchronization
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1093Input synchronization
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2254Calibration

Abstract

メモリコントローラが、制御信号をメモリモジュールへ送信する。メモリコントローラはクロック信号をメモリモジュールへ継続して送信する。メモリコントローラは、ストローブ信号を繰り返し解析することによって、クロック信号に対する制御信号の調整を決定する。

Description

パーソナルコンピュータおよびサーバ産業は、競争力の高い状態であるために、多くのワークロードタイプにわたって性能向上が必要であろう。例えば、コア総数の増大およびメモリサイズ/帯域幅/レイテンシの改良を含む、こうしたレベルの性能向上を提供すべく、様々なメカニズムが使用されている。メモリの改良は、より高速なダイナミックランダムアクセスメモリ(DRAM)、より高いダブルデータレート(DDR)バス周波数、より大きな容量のデュアルインラインメモリモジュール(DIMM)、1チャネル当たりのより多くのDIMM、およびその他複数の最適化の形を取り得る。2012年9月に公開された、ダブルデータレート第4世代(DDR4)同期ランダムアクセスメモリ(SDRAM)規格JESD79−4のような、JEDEC半導体技術協会により定義された多くのDDR規格が存在する。
より高いDDR速度には、複数のDRAMチャネルが、最適な信号品質およびDDRバスタイミングに対して注意深く調整される必要がある。この調整は、起動中に基本入出力システム(BIOS)によって実行され、一般に"DDRトレーニング"と呼ばれている。DDRトレーニングは、例えば、様々なストローブ信号の中心位置合わせ、クロストークの除去、および参照電圧キャリブレーションなど、時間のかかる多くのステップを含む。これらのキャリブレーションステップは、DRAMコントローラおよび複数のDIMMに対して適用される、最適な複数のDDRタイミングパラメータを導出すべく使用される。これらのパラメータは、メモリトラフィックを妨げずに動作中に更新されることができないので、メモリがアクセスされる前にこのプログラミングが行われる。
最適ではない複数のパラメータは、より高いビットエラー率につながり、一般に、システム動作を不安定化させる。これらの複雑なキャリブレーションステップは、起動時間の増加を招く。より高い速度およびより低い電圧を実現すべく、いくつかのDDRの提案が、複数のパラメータにわたるDDRデバイスごとのキャリブレーションを必要としている。その結果として、これらのプラットフォームにおけるメモリトレーニング処理が増加するであろう。
コンピュータシステムの通常のメモリシステムにおいては、メモリコントローラが、コンピュータシステム中でのメモリモジュールのアクセスを容易にする。このメモリモジュールは、1または複数のメモリを含んでよい。これらの1または複数のメモリはまた、ランクとも呼ばれる。メモリコントローラは、複数のランクからのデータにアクセスすべく、または、複数のランクへデータを送信すべく、複数のアドレス信号、制御信号、クロック信号、等を含む複数の信号のホストを、複数のランクへ送信する。正しいデータを、これらのランクへ送信し、これらのランクから受信すべく、メモリコントローラは、クロック信号に対して様々な信号をトレーニングする(変更する)。
通常、メモリコントローラは、クロック信号に対する特定の信号を複数のランクへと送信し、その後、各ランクからの応答を解析して、そのランクがこの特定の信号を正しく受信したかどうかを確認することにより、信号をトレーニングし得る。そのランクから正しい応答があると、メモリコントローラは、クロック信号に対するこの特定の信号の位相を遅延させ、その後、遅延された位相を有するこの遅延された特定の信号を、そのランクへと再送信する。次いでメモリコントローラは、そのランクからの応答を解析して、遅延された特定の信号をそのランクが正しく受信したかどうか確認する。そのランクからメモリコントローラに対して応答が受信されない場合(または正しくない応答が受信された場合)、メモリモジュールは、アンノウン状態に移行する。
現在の複数のDDRインタフェースがより高い周波数を実現しており、ボードルーティングフライトタイムはこれらの周波数とともにはスケーリングされない。ここで、ボードルーティング時間は、ある信号が、ボード上での特定の信号ルートに沿って伝播するのに要する時間である。その結果、複数のクロック信号に対する、DDRバス用の複数の制御信号間の厳しい一致要件を確立することが、益々困難になってきている。
ここで複数の図面を参照する。図中、同様な参照番号は、全体を通して対応するパーツを表す。
いくつかの実施形態に従った、計算デバイス中に実装されるDDRベースのシステムのブロック図を示す。 いくつかの実施形態に従った、計算デバイス中に実装されるDDRベースのシステムの別のブロック図を示す。 いくつかの実施形態に従った、例示的な複数の信号を示すブロック図を示す。 いくつかの実施形態に従った、複数の第1の動作を示すフローチャートを示す。 いくつかの実施形態に従った、複数の第2の動作を示すフローチャートを示す。 いくつかの実施形態に従った、計算デバイスのブロック図を示す。
以下の説明において、本明細書の一部を形成し、いくつかの実施形態を示す添付の複数の図面が参照される。その他複数の実施形態が利用されてよく、構造上および動作上の複数の変更が成されてよいことが理解される。
複数の実施形態が、DDRベースのシステムにおいて制御信号をトレーニングするための方法および装置に関する。DDRベースのシステムのいくつかの実施形態においては、メモリコントローラがDDR DRAMデバイスに連結される。このメモリコントローラは、制御信号、クロック信号、コマンド信号、等のような複数の信号を介して、DDR DRAMデバイスと通信し得る。いくつかの実施形態において、DDR DRAMデバイスに連結されたメモリコントローラは、DDR DRAMデバイスからメモリコントローラによって受信されるストローブ信号を繰り返し解析することにより、クロック信号に対して制御信号をトレーニングするように動作可能である。いくつかの実施形態において、DDRベースのシステムはDDR DIMMを含んでよい。DIMMとしては設計されていない複数のメモリ構成が、代替的な複数の実施形態において採用されてよい。その他複数の実施形態において、制御信号は、DDRベースのシステムではないシステム中でトレーニングされてよい。
複数のDDRベースのシステムにおいて、コマンド信号エンコーディングがメモリデバイスによっていつラッチされるべきかを認定すべく、複数の制御信号が使用される。クロックに対するコマンド信号タイミングのあらゆるトレーニングよりも前に、並びに、データバスタイミングおよび電圧のあらゆるトレーニングの前に、安定した複数の制御信号タイミングを確立することが重要である。ここでクロックはメモリコントローラによって生成され且つメモリデバイスによって受信される。いくつかのDDRベースのシステムにおいて、制御信号は早期にトレーニングされるべきであり、それより前にトレーニングされていた信号タイミングは他に存在しない。制御信号タイミングはクロック信号タイミングに対して移動されるので、パスまたはフェイル応答を提供するフィードバックを確立することが望ましいであろう。
複数の制御信号によってコマンドバスが認定される、複数のDDRインタフェースによる以前のアプローチは、クロックタイミングに対するコマンドの関係が制限要因とはならないことを保証すべく、複数の緩和されたコマンドタイミングを使用することを含んでいた。これらの場合、複数のリードコマンドを送信し、DIMMによってこのリードコマンドが受信されたかどうかを解釈することにより、複数の制御信号がトレーニングされてきた。制御信号トレーニングの問題を解決するための別の方法は、DDR4レジスタードDIMMによるもののように、DDR DIMM自身にループバックサンプリング能力を提供することである。これには、DDR DIMMのレジスタ内でサンプリングされた値を示すためのエラーフィードバック信号の使用が必要である。このループバックモードにおいて、レジスタは、コマンド信号および制御信号を受信し、予め定められた間隔でその値をサンプリングし、その後、サンプリングされた値をホストメモリコントローラへ送り返す。このアプローチは、メモリコントローラから周期的な制御信号を送信する能力を必要とするが、これはサポートされていないかもしれない。
図1は、プロセッサ52およびDDRベースのメモリシステム100を備える計算デバイス50を示す。計算デバイス50は、任意の適切なデバイスであってよく、パーソナルコンピュータ、ワークステーション、サーバ、メインフレーム、ハンドヘルドコンピュータ、パームトップコンピュータ、テレフォニデバイス、ネットワークアプライアンス、ブレードコンピュータ、ストレージサーバ等のような、当技術分野において現在既知のものを含む。
DDRベースのメモリシステム100は、一実施形態に従って、制御信号104をトレーニングするように動作可能なメモリコントローラ102、および、メモリコントローラ102に連結されたDRAM106を備える。
一実施形態において、メモリコントローラ102はマイクロプロセッサ(CPU)内に統合される。その他複数の実施形態において、メモリコントローラ102は、マザーボード上の個別の集積回路(IC)であり、プロセッサ52およびDRAM106と連結される。DRAM106は、メモリモジュールまたはDIMM中に含まれてよい。ここで、メモリモジュールは、このDRAMに加えて、複数のレジスタデバイス、複数のバッファデバイス等を含んでよい。いくつかの実施形態において、DRAM106はDDRメモリデバイスを備える。また、いくつかのその他の実施形態において、DRAM106はDRAMではないメモリデバイスを備える。
一実施形態において、メモリコントローラ102は、複数の信号を介してDRAM106と通信する。これらの信号は、限定されるものではないが、制御信号104(例えばチップ選択信号)、クロック信号108、複数のコマンド信号110(例えばリードコマンド)、および、メモリコントローラ102とDRAM106との間で通信させるための任意のその他複数の信号を含む。複数の実施形態の対応する複数の図面において、複数の信号が複数の線で表されていることに留意されたい。いくつかの線は1または複数の端部に矢印を有することがあり、これは、主な情報の流れの方向を示す。このように示すことで、限定することを意図するのではない。むしろ、これらの線は、回路または論理ユニットについてのより容易な理解を促すため、1または複数の例示的な実施形態と関連して使用されるものである。設計上の必要性または優先事項によって規定される、ここに表された任意の信号は、いずれの方向にも移動し得る1または複数の信号を実際には含んでよく、任意の適切なタイプの信号スキームで実装され得る。
一実施形態において、トレーニングアプリケーション114が計算デバイス50中で実行される。トレーニングアプリケーション114は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせとして実装され得る。トレーニングアプリケーション114は、メモリコントローラ102からDRAM106へ送信されたリードコマンド110に応答して、メモリコントローラ102によってDRAM106から受信されたストローブ信号116を解釈することにより、メモリコントローラ102がチップ選択信号104をトレーニングすることを可能にする。
いくつかの実施形態が、メモリコントローラ102またはDRAM106中の追加的なハードウェアサポートを何ら必要としないが、制御信号の複数のエッジをクロック信号に対して決定する方法を提供する。いくつかの実施形態において、制御信号104はチップ選択信号を含んでよい。一方、その他複数の実施形態において、制御信号104はグラント信号を含んでよい。いくつかの実施形態が、クロック信号108のクロックサイクルに対して制御信号104を中心に位置させるべく、リードコマンドがDRAM106へと送信された後に、複数のリードリターンストローブをサンプリングする能力に頼っている。
図2は、いくつかの実施形態に従った、プロセッサ62を有する計算デバイス60内に実装されたメモリシステム200のブロック図を示す。図2においては、メモリコントローラ202が、制御信号の1つのタイプであるグラント信号204、クロック信号208、コマンド信号220(例えばリードコマンド)、およびその他複数の制御信号222を、メモリコントロールバッファ206へと送信する。いくつかの実施形態において、メモリコントローラ202は、メモリコントロールバッファ206によって戻されたストローブ信号226を受信してよい。トレーニングアプリケーション214が、DDRベースのシステム200のグラント信号204をトレーニングするべく、計算デバイス60中で実行される。図2において、グラント信号204は、あらゆるコマンドエンコーディングを認定せず、クロック信号208と正しく位置合わせされるべきスタンドアロン信号である。そのようなスタンドアロングラント信号は、いくつかの実施形態において、チップ選択信号に加えて、またはチップ選択信号の代替物として実装されてよい。
図3は、いくつかの実施形態に従った、複数の例示的な信号を示すブロック図、300を示す。示されている複数の例示的な信号はクロック信号202である。ここでは、参照番号302によって示されるように、クロック信号202に対して正しく位置合わせされるべく、制御信号がトレーニングアプリケーション114によってトレーニングされる。制御信号の中心304がクロックサイクルの立ち上りエッジに来るとともに、ストローブ信号のプリアンブル307が(参照番号306によって示されるように)正しいクロックサイクルに位置合わせされる場合に、制御信号の正しい位置合わせが生じる。
いくつかの実施形態において、トレーニングアプリケーション114は、参照番号308、310、312によって示されるように、制御信号を前方および後方に移動させることにより、制御信号の正しい位置合わせを判断する。いくつかの実施形態において、制御信号が前方に移動された場合(参照番号308)、ストローブ信号のプリアンブル307は(参照番号314によって示されるように)生じないであろう。いくつかの実施形態において、制御信号がさらにもっと前方に(参照番号310)または後方に(参照番号312)移動される場合、制御信号のプリアンブルが生じるであろうが、(参照番号316、318によって示されるように)正しくないクロックサイクルに位置合わせされるであろう。
従って、図3は、制御信号を後方および前方に繰り返し移動させることによって、ストローブ信号のプリアンブルの正しい位置合わせを維持することに基づいて、クロック信号に対して制御信号が正しく位置合わせされるようないくつかの実施形態を示すものである。
図4は、いくつかの実施形態に従った、DDRベースのシステム100、200において実行される複数の動作を示すフローチャート400を示す。図4に示される複数の動作は、計算デバイス50、60中で実行し、メモリコントローラ102、202によって実行される複数の動作を制御する、少なくともトレーニングアプリケーション114、214によって実行されてよい。
制御はブロック402において始まる。ここで、メモリコントローラ102が制御信号104(例えばチップ選択信号またはグラント信号)およびコマンド信号(例えばリードコマンド)をDRAM106へと送信する。メモリコントローラ102は、リードデータを伴うストローブ信号116を(ブロック404において)DRAM106から受信する。
制御はブロック406へと進む。ここで、メモリコントローラ102は、ストローブ信号のプリアンブルが通常生じるクロックサイクル位置を決定する。(ブロック408において)メモリコントローラ102は、制御信号タイミングを(前後の時間に)シフトさせ、リードコマンドを発行する。
制御はブロック410へ進む。ここで、メモリコントローラ102は、ストローブ信号116のプリアンブルが検出されたかどうかを判断する。もしもそうである場合(参照番号412)、メモリコントローラ102は、ストローブ信号116のプリアンブルが正しいクロック位置に生じているかどうかを(ブロック420において)判断する。もしもそうでない場合(参照番号414)には、プリアンブルは検出されなかった。そして、制御はブロック430へと進む。
もしもブロック420において、ストローブ信号のプリアンブルが正しいクロック位置に生じていると判断された場合には、プリアンブルは正しい位置合わせを保持してきた。そして、制御はブロック424へと進む(参照番号422)。ブロック424においてメモリコントローラ102は、制御信号タイミングがパス領域にあることを記録する。制御はブロック426へと進む。ここでメモリコントローラ102は、パス領域における制御信号タイミングの限界の決定を試みる。そして、もしも限界が決定されていなかった場合(参照番号434)、メモリコントローラ102は、ブロック408へと制御を戻すことによって、パス領域における制御信号タイミングの限界の決定を試みる。
もしもブロック426において、パス領域における制御信号タイミングの限界が決定されている場合には、制御はブロック440へと進む(参照番号432)。ここで、メモリコントローラ102は、立ち上りクロックエッジに対してパス領域の中心へと制御信号タイミングを変化させる。
もしもブロック420において、ストローブ信号のプリアンブルが正しいクロック位置に生じていないと判断された場合には、プリアンブルは位置を変えた。制御はブロック430へと進む。ブロック430において、メモリコントローラ102は、制御信号タイミングがフェイル領域にあることを記録し、制御はブロック426へと進む。
パス領域における制御信号タイミングの限界をメモリコントローラが決定するブロック426は、パス領域における制御信号タイミングの限界を見出すための検索アルゴリズムの詳細を要約することが意図されている。パス領域を検索するための複数の方法が、当技術分野において知られている。それらの方法は以下を含み得る。
1)パス領域中で開始し、最初のフェイルが発生する複数のエッジを見出すべく、内側から外側へ(左右両方向に)検索する。
2)(左側の)フェイル領域中で開始し、フェイルからパスへの移行、次いでパスからフェイルへの移行を判断すべく、一方向に(左から右へ)検索する。
パス領域の複数の限界がひとたびわかると、メモリコントローラ102は、(最適な制御信号セットアップおよび立ち上りクロックエッジに対する複数のホールド時間を提供すべく)パス領域の中心に制御信号タイミングをプログラムすることができる。
いくつかの実施形態が、(ストローブまたは代替的にエラー信号フィードバックメカニズムを使用して)制御信号タイミングがパス領域中に位置されているかどうかをメモリコントローラが判断する方法を提供する。パス領域の複数の限界を見出すための任意の可能な検索方法が、いくつかの実施形態において実装されてよい。
従って図4は、トレーニングアプリケーション114が、立ち上りクロックエッジに対する最大のパス領域の中心に制御信号タイミングをプログラムするいくつかの実施形態を示す。
図5は、いくつかの実施形態に従った、いくつかの動作500を示す。図5に示される複数の動作は制御信号の正しい位置合わせを決定するためのものであり、トレーニングアプリケーション114、214の制御下でメモリコントローラ102、104によって実行される。
制御はブロック502で始まる。ここで、メモリコントローラ102は、制御信号をメモリモジュール106へ送信し、メモリコントローラ102はクロック信号108をメモリモジュール106へ継続して送信する。メモリコントローラ102は、ストローブ信号116を繰り返し解析することによって、クロック信号108に対する制御信号104への調整を(ブロック504において)決定する。
従って、図1−5は、ストローブ信号を繰り返し解析することによってDDRメモリの制御信号をトレーニングするためのいくつかの実施形態を示す。
説明された複数の動作は、方法として、装置として、または、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせを生成するための、標準的なプログラミングおよび/またはエンジニアリング技術を使用したコンピュータプログラム製品として実装され得る。説明された複数の動作は、"コンピュータ可読記憶媒体"中に保持されるコードとして実装され得る。プロセッサが、コンピュータ可読記憶媒体からコードを読み出し、実行し得る。コンピュータ可読記憶媒体は、電子回路、ストレージ材料、無機材料、有機材料、生物材料、ケーシング、筐体、コーティング、およびハードウェアのうちの少なくとも1つを含む。コンピュータ可読記憶媒体は、限定されるものではないが、磁気ストレージ媒体(例えばハードディスクドライブ、フロッピー(登録商標)ディスク、テープ等)、光学ストレージ(CD−ROM、DVD、光学ディスク等)、揮発性および不揮発性メモリデバイス(例えばEEPROM、ROM、PROM、RAM、DRAM、SRAM、フラッシュメモリ、ファームウェア、プログラマブルロジック等)、ソリッドステートデバイス(SSD)等を含んでよい。説明された複数の動作を実行するコードは、ハードウェアデバイス(例えば集積回路チップ、プログラマブルゲートアレイ(PGA)、特定用途向け集積回路(ASIC)等)で実装されるハードウェアロジックでさらに実装され得る。さらに、説明される複数の動作を実行するコードは、"複数の送信信号"で実装されてよい。複数の送信信号は、空間を通って、または光ファイバ、銅線等のような伝送媒体を通って伝播し得る。コードまたはロジックがエンコードされた複数の送信信号は、無線信号、衛星送信、無線波、赤外線信号、Bluetooth(登録商標)等をさらに含んでよい。コンピュータ可読記憶媒体に組み込まれたプログラムコードが、複数の送信信号として、送信局またはコンピュータから受信局またはコンピュータへ送信されてよい。コンピュータ可読記憶媒体は、複数の送信信号のみから成るものではない。この構成に対して多くの変更が成されてよいこと、および、製造物品が当技術分野において既知の適切な情報保持媒体を含んでよいことを、当業者であれば認識するであろう。
いくつかの実施形態の複数の態様に対する複数の動作を実行するためのコンピュータプログラムコードが、1または複数のプログラミング原語の任意の組み合わせによって書き込まれてよい。フローチャートおよび複数のブロック図の複数のブロックは、複数のコンピュータプログラム命令によって実装されてよい。
図6は、いくつかの実施形態に従った、計算デバイス50、60に対応するシステム600のブロック図を示す。システム600は、いくつかの実施形態においては少なくとも1つのプロセッサ604を含み得る回路602を含んでよい。システム600はまた、メモリ606(例えば揮発性メモリデバイス)およびストレージ608も含んでよい。ストレージ608は、不揮発性メモリデバイス(例えばEEPROM、ROM、PROM、RAM、DRAM、SRAM、フラッシュ、ファームウェア、プログラマブルロジック等)、磁気ディスクドライブ、光学ディスクドライブ、テープドライブ等を含んでよい。ストレージ608は、内部ストレージデバイス、外付けのストレージデバイス、および/またはネットワークアクセス可能なストレージデバイスを備えてよい。システム600は、プログラムロジック610を含んでよい。これは、メモリ606にロードされ、プロセッサ604または回路602によって実行され得るコード612を含む。いくつかの実施形態において、コード612を含むプログラムロジック610は、ストレージ608に格納されてよい。他のいくつかの実施形態において、プログラムロジック610は回路602中に実装されてよい。従って、図6は、プログラムロジック610をその他複数の要素から独立して示しているものの、プログラムロジック610は、メモリ606および/または回路602中に実装されてよい。
いくつかの実施形態は、コンピュータ可読コードをコンピューティングシステムに統合するコンピューティング命令を人または自動化された処理によって配置するための方法に向けられたものであり得る。ここで、コンピューティングシステムと組み合わされたこのコードは、説明された複数の実施形態の複数の動作を実行することが可能となる。
"一実施形態"、"実施形態"、"複数の実施形態"、"上記実施形態"、"上記複数の実施形態"、"1または複数の実施形態"、"いくつかの実施形態"、および"1つの実施形態"という用語は、そうでないことが明示的に特定されていない限り、"1または複数の(だが、全てではない)実施形態"を意味する。
"含む"、"備える"、"有する"およびそれらの変形した用語は、そうでないことが明示的に特定されていない限り、"含むが、限定されはしない"ことを意味する。
複数の事項の列挙されたリストは、そうでないことが明示的に特定されていない限り、これらの事項の任意のものまたは全てが、互いに排他的であることを暗示するものではない。
"一の"、"1つの"、および"その"という用語は、そうでないことが明示的に特定されていない限り、"1または複数の"を意味する。
そうでないことが明示的に特定されていない限り、互いに通信している複数のデバイスが、互いに継続して通信している必要はない。さらに、互いに通信している複数のデバイスは、直接的に、または1または複数の中間媒体を介して間接的に通信してよい。
互いに通信しているいくつかのコンポーネントを伴う一実施形態の説明は、そのようなコンポーネントの全てが必須であることを暗示するものではない。反対に、様々な任意のコンポーネントが、可能性のある多種多様な実施形態を示すべく説明されている。
さらに、複数のプロセスステップ、方法の複数のステップ、複数のアルゴリズム等が連続した順序で説明されているかもしれないが、そのような複数のプロセス、複数の方法、および複数のアルゴリズムは、交互の順序で動作するように構成され得る。言い換えると、説明され得る複数のステップのあらゆる順番または順序は、必ずしも、それらのステップがその順序で実行されるべきであるとの要件を示すものではない。本明細書に説明される複数のプロセスの複数のステップは、実際的な任意の順序で実行され得る。さらに、いくつかのステップは、同時に実行され得る。
単一のデバイスまたは物品が本明細書において説明されている場合、単一のデバイス/物品の代わりに、1つよりも多くのデバイス/物品が(それらが協働していようがいまいが)使用されてよいことは、容易に明らかであろう。同様に、1つよりも多くのデバイスまたは物品が(それらが協働していようがいまいが)本明細書において説明されている場合、1つよりも多くのデバイスまたは物品の代わりに、単一のデバイス/物品が使用されてよいこと、もしくは、示されている数のデバイスまたはプログラムの代わりに、異なる数のデバイス/物品が使用されてよいことは、容易に明らかであろう。あるデバイスの機能および/または複数の特徴は、そのような機能/複数の特徴を有するように明示的には説明されていない1または複数の他のデバイスによって、代替的に具現化されてよい。従って、他の複数の実施形態が、そのデバイス自身を含む必要は無い。
複数の図面中に示されてきたであろう少なくともいくつかの動作が、特定の順序で生じるいくつかのイベントを示す。複数の代替的な実施形態において、いくつかの動作は、異なる順序で実行されてよく、修正されてよく、あるいは除去されてよい。さらに、複数のステップが上記のロジックに追加されてよく、それでもなお、説明された複数の実施形態に従うものである。さらに、本明細書にて説明された複数の動作は、連続的に生じてよい。あるいは、いくつかの動作が並行して処理されてよい。またさらに、複数の動作が、単一の処理ユニットによって、または分散型の複数の処理ユニットによって実行されてよい。
様々な実施形態に関する上記の説明は、例示および説明を目的として提示されてきた。これは、包括的であること、あるいは、開示された正確な複数の形態に限定されるものであることを意図するのではない。上記の教示を考慮すると、多くの変更および変形が可能である。
以下の複数の例は、いくつかの実施形態に関する。
例1は信号を調整する方法であり、メモリコントローラがメモリモジュールへ制御信号を送信する。上記メモリコントローラは、上記メモリモジュールへクロック信号を継続して送信する。上記メモリコントローラは、ストローブ信号を繰り返し解析することによって、上記クロック信号に対する上記制御信号の調整を決定する。
例2において、例1の主題が次を含んでよい。上記制御信号の上記調整を決定することは、上記ストローブ信号のプリアンブルが正しい位置合わせを保持することを保証しつつ、上記クロック信号に対する上記制御信号のタイミングを前後の時間にシフトさせて、上記制御信号のタイミングを、上記クロック信号の立ち上りエッジに対して中心に位置させることをさらに含む。
例3において、例2の主題が次を含んでよい。上記制御信号の上記タイミングの最大のパス領域を繰り返し決定することに続いて、上記制御信号の上記タイミングが中心に位置される。
例4において、例2の主題が次を含んでよい。上記メモリコントローラがリードコマンドを上記メモリモジュールへ送信する。上記メモリコントローラは、上記リードコマンドの上記送信に応答して、リードデータを伴う上記ストローブ信号を上記メモリモジュールから受信する。上記メモリコントローラは、上記ストローブ信号の上記プリアンブルが通常生じるクロックサイクル位置を決定する。
例5において、例4の主題が次を含んでよい。上記メモリコントローラが、上記制御信号の調整に続いて別のリードコマンドを発行し、その後、上記ストローブ信号の上記プリアンブルが検出されるかどうかを判断する。
例6において、例5の主題が次を含んでよい。上記ストローブ信号が検出されるとの判断に応答して、上記ストローブ信号の上記プリアンブルが正しいクロックサイクル位置に生じているかどうかが判断される。上記制御信号タイミングの上記タイミングの最大のパス領域が決定されていた場合、上記ストローブ信号の上記プリアンブルが上記正しいクロック位置に生じているとの判断に応答して、上記制御信号の上記タイミングが、立ち上りクロックエッジに対する最大のパス領域の中心にプログラミングされる。
例7において、例5の主題が次を含んでよい。上記ストローブ信号が検出されないとの判断に応答して、上記制御信号タイミングがフェイル領域にあることが記録される。
例8において、例2の主題が次を含んでよい。上記メモリモジュールはDDRメモリを有し、上記制御信号はチップ選択信号またはグラント信号を含む。
例9において、例2の主題が次を含んでよい。上記メモリモジュールは非DDRメモリを有し、上記制御信号はチップ選択信号またはグラント信号を含む。
例10において、例1の主題が次を含んでよい。上記メモリコントローラが、上記制御信号のタイミングがパス領域の中心にあるかどうかを判断する。
例11は、メモリコントローラがメモリモジュールに連結されているシステムであり、上記メモリコントローラは、メモリモジュールへ制御信号を送信するように動作可能である。上記メモリコントローラは、上記メモリモジュールへクロック信号を継続して送信する。上記メモリコントローラは、ストローブ信号を繰り返し解析することによって、上記クロック信号に対する上記制御信号の調整を決定するように動作可能である。
例12において、例11の主題が次を含んでよい。上記制御信号の上記調整を決定することは、上記ストローブ信号のプリアンブルが正しい位置合わせを保持することを保証しつつ、上記クロック信号に対する上記制御信号のタイミングを前後の時間にシフトさせて、上記制御信号のタイミングを、上記クロック信号の立ち上りエッジに対して中心に位置させることをさらに有する。
例13において、例12の主題が次を含んでよい。上記制御信号の上記タイミングの最大のパス領域を繰り返し決定することに続いて、上記制御信号の上記タイミングが中心に位置される。
例14において、例12の主題が次を含んでよい。上記メモリコントローラがリードコマンドを上記メモリモジュールへ送信する。上記メモリコントローラは、上記リードコマンドの上記送信に応答して、リードデータを伴う上記ストローブ信号を上記メモリモジュールから受信する。上記メモリコントローラは、上記ストローブ信号の上記プリアンブルが通常生じるクロックサイクル位置を決定する。
例15において、例14の主題が次を含んでよい。上記メモリコントローラが、上記制御信号の調整に続いて別のリードコマンドを発行し、その後、上記ストローブ信号の上記プリアンブルが検出されるかどうかを判断する。
例16において、例15の主題が次を含んでよい。上記ストローブ信号が検出されるとの判断に応答して、上記ストローブ信号の上記プリアンブルが正しいクロックサイクル位置に生じているかどうかが判断される。上記制御信号タイミングの上記タイミングの最大のパス領域が決定されていた場合、上記ストローブ信号の上記プリアンブルが上記正しいクロック位置に生じているとの判断に応答して、上記制御信号の上記タイミングが、立ち上りクロックエッジに対する最大のパス領域の中心にプログラミングされる。
例17において、例15の主題が次を含んでよい。上記ストローブ信号が検出されないとの判断に応答して、上記制御信号タイミングがフェイル領域にあることが記録される。
例18において、例12の主題が次を含んでよい。上記メモリモジュールはDDRメモリを有し、上記制御信号はチップ選択信号またはグラント信号を含む。
例19において、例12の主題が次を含んでよい。上記メモリモジュールは非DDRメモリを有し、上記制御信号はチップ選択信号またはグラント信号を含む。
例20において、例11の主題が次を含んでよい。上記メモリコントローラが、上記制御信号のタイミングがパス領域の中心にあるかどうかを判断する。
例21は、メモリモジュール、および上記メモリモジュールに連結されたメモリコントローラを備えた、信号を調整するための計算システムである。上記メモリコントローラにプロセッサが連結される。上記プロセッサは、メモリモジュールへ制御信号を送信するように動作可能である。上記メモリコントローラは、上記メモリモジュールへクロック信号を継続して送信する。上記メモリコントローラは、ストローブ信号を繰り返し解析することによって、上記クロック信号に対する上記制御信号の調整を決定するように動作可能である。
例22において、例21の主題が次を含んでよい。上記制御信号の上記調整を決定することは、上記ストローブ信号のプリアンブルが正しい位置合わせを保持することを保証しつつ、上記クロック信号に対する上記制御信号のタイミングを前後の時間にシフトさせて、上記制御信号のタイミングを、上記クロック信号の立ち上りエッジに対して中心に位置させることをさらに有する。
例23において、例22の主題が次を含んでよい。上記制御信号の上記タイミングの最大のパス領域を繰り返し決定することに続いて、上記制御信号の上記タイミングが中心に位置される。
例24は、メモリモジュール、および上記メモリモジュールに連結されたメモリコントローラを備えた、信号を調整するためのシステムである。上記メモリコントローラは、メモリモジュールへ制御信号を送信するように動作可能である。上記メモリコントローラは、上記メモリモジュールへクロック信号を継続して送信する。上記メモリコントローラは、ストローブ信号を繰り返し解析することによって、上記クロック信号に対する上記制御信号の調整を決定するように動作可能である。
例25において、例24の主題が次を含んでよい。上記制御信号の上記調整を決定することは、上記ストローブ信号のプリアンブルが正しい位置合わせを保持することを保証しつつ、上記クロック信号に対する上記制御信号のタイミングを前後の時間にシフトさせて、上記制御信号のタイミングを、上記クロック信号の立ち上りエッジに対して中心に位置させることをさらに有する。
例26は、信号を調整するためのシステムであって、メモリモジュールへ制御信号を送信するための手段を備える。上記メモリコントローラは、上記メモリモジュールへクロック信号を継続して送信する。さらに、上記メモリコントローラが、ストローブ信号を繰り返し解析することによって、上記クロック信号に対する上記制御信号の調整を決定するための手段が含まれる。
例27において、例26の主題が次を含んでよい。上記制御信号の上記調整を決定することは、上記ストローブ信号のプリアンブルが正しい位置合わせを保持することを保証しつつ、上記クロック信号に対する上記制御信号のタイミングを前後の時間にシフトさせて、上記制御信号のタイミングを、上記クロック信号の立ち上りエッジに対して中心に位置させるための手段をさらに備える。
例28において、例26の主題が次を含んでよい。上記制御信号の上記タイミングの最大のパス領域を繰り返し決定することに続いて、上記制御信号の上記タイミングが中心に位置される。
例29において、例27の主題は、上記メモリコントローラがリードコマンドを上記メモリモジュールへ送信するための手段を含んでよい。また、上記メモリコントローラが、上記リードコマンドの上記送信に応答して、リードデータを伴う上記ストローブ信号を上記メモリモジュールから受信するための手段も含まれる。さらに、上記メモリコントローラが、上記ストローブ信号の上記プリアンブルが通常生じるクロックサイクル位置を決定するための手段が含まれる。
例30において、例29の主題が次を含んでよい。上記メモリコントローラが、上記制御信号の調整に続いて別のリードコマンドを発行し、その後、上記ストローブ信号の上記プリアンブルが検出されるかどうかを判断する。
例31において、例30の主題は、上記ストローブ信号が検出されるとの判断に応答して、上記ストローブ信号の上記プリアンブルが正しいクロックサイクル位置に生じているかどうかを判断するための手段、および、上記制御信号タイミングの上記タイミングの最大のパス領域が決定されていた場合、上記ストローブ信号の上記プリアンブルが上記正しいクロック位置に生じているとの判断に応答して、立ち上りクロックエッジに対する最大のパス領域の中心に上記制御信号の上記タイミングをプログラミングするための手段を含んでよい。
例32において、例30の主題は、上記ストローブ信号が検出されないとの判断に応答して、上記制御信号タイミングがフェイル領域にあることを記録するための手段を含んでよい。
例33において、例27の主題が次を含んでよい。上記メモリモジュールはDDRメモリを有し、上記制御信号はチップ選択信号またはグラント信号を含む。
例34において、例27の主題が次を含んでよい。上記メモリモジュールは非DDRメモリを有し、上記制御信号はチップ選択信号またはグラント信号を含む。
例35において、例26の主題が次を含んでよい。上記メモリコントローラが、上記制御信号のタイミングがパス領域の中心にあるかどうかを判断する。
例36はコンピュータ可読記憶媒体であり、上記コンピュータ可読記憶媒体に格納されたコードが、プロセッサに対して、複数の動作を実行させる。これらの動作は、メモリコントローラにより制御信号をメモリモジュールへ送信することであって、上記メモリコントローラは上記メモリモジュールへクロック信号を継続して送信することと、ストローブ信号を繰り返し解析することによって、上記クロック信号に対する上記制御信号の調整を、上記メモリコントローラにより決定することを含む。
例37において、例36の主題が次を含んでよい。上記制御信号の上記調整を決定することは、上記ストローブ信号のプリアンブルが正しい位置合わせを保持することを保証しつつ、上記クロック信号に対する上記制御信号のタイミングを前後の時間にシフトさせて、上記制御信号のタイミングを、上記クロック信号の立ち上りエッジに対して中心に位置させることをさらに有する。
例38において、例37の主題が次を含んでよい。上記制御信号の上記タイミングの最大のパス領域を繰り返し決定することに続いて、上記制御信号の上記タイミングが中心に位置される。
例39において、例37の主題が次を含んでよい。上記メモリコントローラがリードコマンドを上記メモリモジュールへ送信する。上記メモリコントローラは、上記リードコマンドの上記送信に応答して、リードデータを伴う上記ストローブ信号を上記メモリモジュールから受信する。上記メモリコントローラは、上記ストローブ信号の上記プリアンブルが通常生じるクロックサイクル位置を決定する。
例40において、例39の主題が次を含んでよい。上記メモリコントローラが、上記制御信号の調整に続いて別のリードコマンドを発行し、その後、上記ストローブ信号の上記プリアンブルが検出されるかどうかを判断する。
例41において、例40の主題が次を含んでよい。上記ストローブ信号が検出されるとの判断に応答して、上記ストローブ信号の上記プリアンブルが正しいクロックサイクル位置に生じているかどうかが判断される。上記制御信号タイミングの上記タイミングの最大のパス領域が決定されていた場合、上記ストローブ信号の上記プリアンブルが上記正しいクロック位置に生じているとの判断に応答して、上記制御信号の上記タイミングが、立ち上りクロックエッジに対する最大のパス領域の中心にプログラミングされる。
例42において、例37の主題が次を含んでよい。上記ストローブ信号が検出されないとの判断に応答して、上記制御信号タイミングがフェイル領域にあることが記録される。
例43において、例37の主題が次を含んでよい。上記メモリモジュールはDDRメモリを有し、上記制御信号はチップ選択信号またはグラント信号を含む。
例44において、例37の主題が次を含んでよい。上記メモリモジュールは非DDRメモリを有し、上記制御信号はチップ選択信号またはグラント信号を含む。
例45において、例37の主題が次を含んでよい。上記メモリコントローラが、上記制御信号のタイミングがパス領域の中心にあるかどうかを判断する。
例46はコンピュータ可読記憶媒体を含み、上記コンピュータ可読記憶媒体に格納されたコードが、プロセッサに、請求項1、2、3、4、5、6、7、8、9、10のいずれか1項に記載される方法を実行させる。

Claims (25)

  1. メモリコントローラにより制御信号をメモリモジュールへ送信する段階であって、前記メモリコントローラは前記メモリモジュールへクロック信号を継続して送信する、送信する段階と、
    ストローブ信号を繰り返し解析することによって、前記クロック信号に対する前記制御信号の調整を、前記メモリコントローラにより決定する段階と、
    を有する、信号を調整する方法。
  2. 前記制御信号の前記調整を決定する前記段階は、
    前記ストローブ信号のプリアンブルが正しい位置合わせを保持することを保証しつつ、前記クロック信号に対する前記制御信号のタイミングを前後の時間にシフトさせて、前記制御信号のタイミングを、前記クロック信号の立ち上りエッジに対して中心に位置させる段階をさらに含む、請求項1に記載の方法。
  3. 前記制御信号の前記タイミングの最大のパス領域を繰り返し決定する段階に続いて、前記制御信号の前記タイミングが中心に位置される、請求項2に記載の方法。
  4. 前記方法は、
    前記メモリコントローラにより、リードコマンドを前記メモリモジュールへ送信する段階と、
    前記リードコマンドを送信する前記段階に応答して、前記メモリコントローラにより、リードデータを伴う前記ストローブ信号を前記メモリモジュールから受信する段階と、
    前記メモリコントローラにより、前記ストローブ信号の前記プリアンブルが通常生じるクロックサイクル位置を決定する段階と、
    をさらに有する、請求項2に記載の方法。
  5. 前記メモリコントローラは、前記制御信号の調整に続いて別のリードコマンドを発行し、その後、前記ストローブ信号の前記プリアンブルが検出されるかどうかを判断する、請求項4に記載の方法。
  6. 前記方法は、
    前記ストローブ信号が検出されるとの判断に応答して、前記ストローブ信号の前記プリアンブルが正しいクロックサイクル位置に生じているかどうかを判断する段階と、
    前記制御信号の前記タイミングの最大のパス領域が決定されていた場合、前記ストローブ信号の前記プリアンブルが前記正しいクロック位置に生じているとの判断に応答して、立ち上りクロックエッジに対する最大のパス領域の中心に前記制御信号の前記タイミングをプログラミングする段階と、
    をさらに有する、請求項5に記載の方法。
  7. 前記方法は、前記ストローブ信号が検出されないとの判断に応答して、前記制御信号の前記タイミングがフェイル領域にあることを記録する段階をさらに有する、請求項5に記載の方法。
  8. 前記メモリモジュールはDDRメモリを有し、
    前記制御信号はチップ選択信号またはグラント信号を含む、
    請求項2から請求項7のいずれか1項に記載の方法。
  9. 前記メモリモジュールは非DDRメモリを有し、
    前記制御信号はチップ選択信号またはグラント信号を含む、
    請求項2から請求項7のいずれか1項に記載の方法。
  10. 前記メモリコントローラは、前記制御信号のタイミングがパス領域の中心にあるかどうかを判断する、請求項1から請求項9のいずれか1項に記載の方法。
  11. メモリモジュールに連結されたメモリコントローラであって、前記メモリコントローラは、
    前記メモリモジュールへ制御信号を送信するように動作可能であって、前記メモリコントローラは前記メモリモジュールへクロック信号を継続して送信し、
    ストローブ信号を繰り返し解析することによって、前記クロック信号に対する前記制御信号の調整を決定するように動作可能である、
    メモリコントローラ。
  12. 前記制御信号の前記調整の決定は、
    前記ストローブ信号のプリアンブルが正しい位置合わせを保持することを保証しつつ、前記クロック信号に対する前記制御信号のタイミングを前後の時間にシフトさせて、前記制御信号のタイミングを、前記クロック信号の立ち上りエッジに対して中心に位置させることをさらに含む、請求項11に記載のメモリコントローラ。
  13. 前記制御信号の前記タイミングの最大のパス領域を繰り返し決定することに続いて、前記制御信号の前記タイミングが中心に位置される、請求項12に記載のメモリコントローラ。
  14. 前記メモリコントローラは、
    リードコマンドを前記メモリモジュールへ送信し、
    前記リードコマンドの前記送信に応答して、リードデータを伴う前記ストローブ信号を前記メモリモジュールから受信し、
    前記ストローブ信号の前記プリアンブルが通常生じるクロックサイクル位置を決定するように、
    さらに動作可能である、請求項12に記載のメモリコントローラ。
  15. 前記メモリコントローラは、前記制御信号の調整に続いて別のリードコマンドを発行し、前記ストローブ信号の前記プリアンブルが検出されるかどうかを判断する、請求項14に記載のメモリコントローラ。
  16. 前記メモリコントローラは、
    前記ストローブ信号が検出されるとの判断に応答して、前記ストローブ信号の前記プリアンブルが正しいクロックサイクル位置に生じているかどうかを判断し、
    前記制御信号の前記タイミングの最大のパス領域が決定されていた場合、前記ストローブ信号の前記プリアンブルが前記正しいクロック位置に生じているとの判断に応答して、立ち上りクロックエッジに対する最大のパス領域の中心に前記制御信号の前記タイミングをプログラムするようにさらに動作可能である、請求項15に記載のメモリコントローラ。
  17. 前記メモリコントローラは、
    前記ストローブ信号が検出されないとの判断に応答して、前記制御信号の前記タイミングがフェイル領域にあることを記録するようにさらに動作可能である、請求項15に記載のメモリコントローラ。
  18. 前記メモリコントローラが連結されている前記メモリモジュールはDDRメモリを有し、
    前記制御信号はチップ選択信号またはグラント信号を含む、請求項12から請求項17のいずれか1項に記載のメモリコントローラ。
  19. 前記メモリコントローラが連結されている前記メモリモジュールは非DDRメモリを有し、
    前記制御信号はチップ選択信号またはグラント信号を含む、請求項12から請求項17のいずれか1項に記載のメモリコントローラ。
  20. 前記メモリコントローラは、前記制御信号のタイミングがパス領域の中心にあるかどうかを判断する、請求項11から請求項19のいずれか1項に記載のメモリコントローラ。
  21. 信号を調整する計算システムであって、
    メモリモジュールと、
    前記メモリモジュールに連結されたメモリコントローラと、
    前記メモリコントローラに連結されたプロセッサと、
    を備え、
    前記プロセッサは、
    メモリモジュールへ制御信号を送信するように動作可能であって、前記メモリコントローラは前記メモリモジュールへクロック信号を継続して送信し、
    ストローブ信号を繰り返し解析することによって、前記クロック信号に対する前記制御信号の調整を決定するように動作可能である、
    計算システム。
  22. 前記制御信号の前記調整の決定は、
    前記ストローブ信号のプリアンブルが正しい位置合わせを保持することを保証しつつ、前記クロック信号に対する前記制御信号のタイミングを前後の時間にシフトさせて、前記制御信号のタイミングを、前記クロック信号の立ち上りエッジに対して中心に位置させることをさらに含む、請求項21に記載の計算システム。
  23. 前記制御信号の前記タイミングの最大のパス領域を繰り返し決定することに続いて、前記制御信号の前記タイミングが中心に位置される、請求項22に記載の計算システム。
  24. 信号を調整するシステムであって、
    メモリモジュールと、
    メモリモジュールに連結されたメモリコントローラと、
    を備え、
    前記メモリコントローラは、
    メモリモジュールへ制御信号を送信するように動作可能であって、前記メモリコントローラは前記メモリモジュールへクロック信号を継続して送信し、
    ストローブ信号を繰り返し解析することによって、前記クロック信号に対する前記制御信号の調整を決定するように動作可能である、
    システム。
  25. 格納されたコードがプロセッサに複数の動作を実行させるコンピュータ可読記憶媒体であって、前記複数の動作は、
    メモリコントローラにより制御信号をメモリモジュールへ送信する段階であって、前記メモリコントローラは前記メモリモジュールへクロック信号を継続して送信する、送信する段階と、
    ストローブ信号を繰り返し解析することによって、前記クロック信号に対する前記制御信号の調整を、前記メモリコントローラにより決定する段階と、
    を含む、コンピュータ可読記憶媒体。
JP2016526811A 2013-12-06 2014-12-05 メモリモジュールにおけるストローブ信号に基づいた制御信号のトレーニング方法 Active JP6181299B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/099,315 2013-12-06
US14/099,315 US9025399B1 (en) 2013-12-06 2013-12-06 Method for training a control signal based on a strobe signal in a memory module
PCT/US2014/068924 WO2015085250A1 (en) 2013-12-06 2014-12-05 Method for training a control signal based on a strobe signal in a memory module

Publications (2)

Publication Number Publication Date
JP2016540291A true JP2016540291A (ja) 2016-12-22
JP6181299B2 JP6181299B2 (ja) 2017-08-16

Family

ID=53001733

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016526811A Active JP6181299B2 (ja) 2013-12-06 2014-12-05 メモリモジュールにおけるストローブ信号に基づいた制御信号のトレーニング方法

Country Status (6)

Country Link
US (2) US9025399B1 (ja)
EP (1) EP3078029A4 (ja)
JP (1) JP6181299B2 (ja)
KR (1) KR101915060B1 (ja)
CN (1) CN105706172B (ja)
WO (1) WO2015085250A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7543172B2 (en) * 2004-12-21 2009-06-02 Rambus Inc. Strobe masking in a signaling system having multiple clock domains
SG10201700467UA (en) 2010-02-07 2017-02-27 Zeno Semiconductor Inc Semiconductor memory device having electrically floating body transistor, and having both volatile and non-volatile functionality and method
US8760945B2 (en) 2011-03-28 2014-06-24 Samsung Electronics Co., Ltd. Memory devices, systems and methods employing command/address calibration
US9025399B1 (en) 2013-12-06 2015-05-05 Intel Corporation Method for training a control signal based on a strobe signal in a memory module
US9891853B1 (en) 2016-01-19 2018-02-13 Apple Inc. Memory calibration abort
US10148416B2 (en) 2016-09-02 2018-12-04 Intel Corporation Signal phase optimization in memory interface training
US10416912B2 (en) * 2016-11-03 2019-09-17 Intel Corporation Efficiently training memory device chip select control
US20190095308A1 (en) 2017-09-26 2019-03-28 Intel Corporation Registering clock driver controlled decision feedback equalizer training process
US10635628B2 (en) * 2018-06-29 2020-04-28 Intel Corporation Host controller apparatus, host controller device, and method for a host controller for determining information related to a time shift for transmitting instructions on a command and address bus, host controller and computer system
KR20200043017A (ko) 2018-10-17 2020-04-27 삼성전자주식회사 메모리 모듈, 메모리 시스템 및 메모리 모듈의 동작 방법
US10643685B1 (en) * 2018-11-01 2020-05-05 Realtek Semiconductor Corporation Control circuit, sampling circuit for synchronous dynamic random-access memory, method of reading procedure and calibration thereof
US10734983B1 (en) * 2019-02-15 2020-08-04 Apple Inc. Duty cycle correction with read and write calibration
KR20220028888A (ko) * 2020-08-31 2022-03-08 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080112235A1 (en) * 2006-11-15 2008-05-15 Thomas Hein Control signal training
JP2010182115A (ja) * 2009-02-05 2010-08-19 Ricoh Co Ltd メモリ制御装置及びその制御信号出力タイミングの調整方法
WO2011077573A1 (ja) * 2009-12-25 2011-06-30 富士通株式会社 信号受信回路、メモリコントローラ、プロセッサ、コンピュータ及び位相制御方法
JP2011233042A (ja) * 2010-04-28 2011-11-17 Toshiba Corp キャリブレーション処理制御装置及びキャリブレーション処理制御方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100266747B1 (ko) * 1997-12-31 2000-09-15 윤종용 임피던스 조정 회로를 구비한 반도체 장치
US6466491B2 (en) * 2000-05-19 2002-10-15 Fujitsu Limited Memory system and memory controller with reliable data latch operation
KR100400311B1 (ko) * 2001-06-29 2003-10-01 주식회사 하이닉스반도체 반도체 메모리 소자의 신호 지연 제어 장치
KR100605590B1 (ko) 2004-05-10 2006-07-31 주식회사 하이닉스반도체 데이터 출력드라이버의 임피던스를 조정할 수 있는 반도체메모리 장치
US7543172B2 (en) 2004-12-21 2009-06-02 Rambus Inc. Strobe masking in a signaling system having multiple clock domains
US7209396B2 (en) * 2005-02-28 2007-04-24 Infineon Technologies Ag Data strobe synchronization for DRAM devices
US8121237B2 (en) * 2006-03-16 2012-02-21 Rambus Inc. Signaling system with adaptive timing calibration
KR100935728B1 (ko) 2007-12-28 2010-01-08 주식회사 하이닉스반도체 스트로브 신호 제어 회로
KR101443072B1 (ko) 2008-05-14 2014-09-22 삼성전자주식회사 메모리 인터페이스 회로 및 이를 포함하는 메모리 시스템
JP5258687B2 (ja) * 2009-07-13 2013-08-07 ルネサスエレクトロニクス株式会社 メモリインタフェース制御回路
KR101585213B1 (ko) * 2009-08-18 2016-01-13 삼성전자주식회사 라이트 레벨링 동작을 수행하기 위한 메모리 장치의 제어 방법, 메모리 장치의 라이트 레벨링 방법, 및 라이트 레벨링 동작을 수행하는 메모리 컨트롤러, 메모리 장치, 및 메모리 시스템
KR20110050923A (ko) * 2009-11-09 2011-05-17 삼성전자주식회사 반도체 메모리 장치, 반도체 메모리 모듈 및 이를 구비하는 반도체 메모리 시스템
KR101678413B1 (ko) * 2009-12-29 2016-11-23 삼성전자주식회사 반도체 장치 및 이의 트레이닝 방법
US8533538B2 (en) * 2010-06-28 2013-09-10 Intel Corporation Method and apparatus for training a memory signal via an error signal of a memory
US8760945B2 (en) * 2011-03-28 2014-06-24 Samsung Electronics Co., Ltd. Memory devices, systems and methods employing command/address calibration
US8665665B2 (en) * 2011-03-30 2014-03-04 Mediatek Inc. Apparatus and method to adjust clock duty cycle of memory
US8824224B2 (en) * 2011-08-05 2014-09-02 Rambus Inc. Frequency-agile strobe window generation
US9025399B1 (en) 2013-12-06 2015-05-05 Intel Corporation Method for training a control signal based on a strobe signal in a memory module

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080112235A1 (en) * 2006-11-15 2008-05-15 Thomas Hein Control signal training
JP2010182115A (ja) * 2009-02-05 2010-08-19 Ricoh Co Ltd メモリ制御装置及びその制御信号出力タイミングの調整方法
WO2011077573A1 (ja) * 2009-12-25 2011-06-30 富士通株式会社 信号受信回路、メモリコントローラ、プロセッサ、コンピュータ及び位相制御方法
JP2011233042A (ja) * 2010-04-28 2011-11-17 Toshiba Corp キャリブレーション処理制御装置及びキャリブレーション処理制御方法

Also Published As

Publication number Publication date
US9627029B2 (en) 2017-04-18
EP3078029A1 (en) 2016-10-12
CN105706172A (zh) 2016-06-22
WO2015085250A1 (en) 2015-06-11
KR101915060B1 (ko) 2018-11-06
JP6181299B2 (ja) 2017-08-16
US9025399B1 (en) 2015-05-05
US20150325281A1 (en) 2015-11-12
CN105706172B (zh) 2018-12-04
KR20160064216A (ko) 2016-06-07
EP3078029A4 (en) 2017-07-26

Similar Documents

Publication Publication Date Title
JP6181299B2 (ja) メモリモジュールにおけるストローブ信号に基づいた制御信号のトレーニング方法
US11393522B2 (en) Memory device adjusting duty cycle and memory system having the same
US11513955B2 (en) Memory module with local synchronization and method of operation
JP3987038B2 (ja) メモリへのアクセスを制御するためのメモリおよび適応タイミングシステム
US8799566B2 (en) Memory system with a programmable refresh cycle
US8819474B2 (en) Active training of memory command timing
US20120239874A1 (en) Method and system for resolving interoperability of multiple types of dual in-line memory modules
US8379457B1 (en) Auto calibration of storage memory controller
US8422319B2 (en) System and method for gate training in a memory system
JP2008065804A (ja) メモリー制御回路及び方法
KR102130494B1 (ko) 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
US9665289B1 (en) Eye scan for memory channel
US10545866B1 (en) Method and system for efficient re-determination of a data valid window
KR102473661B1 (ko) 듀티 사이클을 조절하는 메모리 장치 및 이를 포함하는 메모리 시스템
US7796465B2 (en) Write leveling of memory units designed to receive access requests in a sequential chained topology
JP2005310345A (ja) Ddrsdramのデータ入力装置及び方法
US20170337955A1 (en) Active Random Access Memory
US8959271B2 (en) System and method for accessing memory
US8370568B2 (en) Memory interface and adaptive data access method
US9390776B1 (en) Data strobing circuit and semiconductor apparatus using the same
CN116741229B (zh) 一种存储器数据写入方法、装置、存储介质和电子设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160623

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160623

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170418

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170601

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170620

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170719

R150 Certificate of patent or registration of utility model

Ref document number: 6181299

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250