(57)【要約】【解決手段】  コンピュータシステムにおけるトレーニング時間及びこれに伴うブート時間を短縮化するために、多重メモリチャネルが同時にトレーニングされる。トレーニング同期器は、多重メモリチャネル制御器に対するトレーニングデータ及びパラメータを受信し、通信インタフェースを介してメモリチャネル制御器と同時に通信する複数の通信インタフェースを含む。メモリチャネル制御器は、トレーニング同期器に応答して、メモリチャネル制御器のそれぞれに結合される複数のメモリチャネルを同時にトレーニングする。【選択図】図２
2012530970.tif 000002
【特許請求の範囲】
【請求項１】
メモリトレーニングに関する伝達をメモリ制御器同期器へ送ることと、
前記メモリ制御器同期器に結合される複数のチャネル制御器へトレーニングパラメータを送ることと、
前記複数のチャネル制御器において前記トレーニングパラメータをセットすることと、
前記チャネル制御器に結合されるそれぞれのメモリデバイスへそれぞれのチャネル制御器からそれぞれの通信チャネルを介してトレーニングデータをパラレルに書き込むことと、
前記書き込まれたトレーニングデータをそれぞれのメモリデバイスから前記チャネル制御器のそれぞれへパラレルに読み出すことと、
各チャネル制御器によって読み出されたデータを各制御器によって前記メモリデバイスへ送られたデータと比較して特定のチャネルでの使用のための１つ以上のトレーニングパラメータが許容可能であるかどうかを決定することと、を備えた方法。
【請求項２】
前記メモリへ書き込まれるべきデータをそれぞれのチャネル制御器におけるそれぞれの第１の記憶ロケーション内に記憶することと、
前記メモリデバイスから読み出されたデータをそれぞれのチャネル制御器におけるそれぞれの第２の記憶ロケーション内に記憶することと、を更に備えた請求項１に記載の方法。
【請求項３】
前記トレーニングパラメータは書き込み遅延、読み出し遅延、及び電圧設定の１つ以上を含む請求項１又は２に記載の方法。
【請求項４】
前記トレーニングパラメータは各チャネル制御器に対するのと同じである請求項１に記載の方法。
【請求項５】
多重コアデバイスの単一コアからのチャネル制御器の多重化されたものを制御することを更に備えた請求項１に記載の方法。
【請求項６】
通信リンクを介してトレーニング情報を受信するように結合され、複数の通信インタフェースを含み、前記通信インタフェースを介して同時に通信するように動作可能なトレーニング同期器と、
前記トレーニング同期器の前記通信インタフェースのそれぞれに結合される複数のメモリチャネル制御器と、を備えた装置であって、
前記複数のメモリチャネル制御器は、前記トレーニング情報の少なくとも一部を含む前記トレーニング同期器からの１つ以上の伝達に応答して、前記メモリチャネル制御器のそれぞれに結合される複数のメモリチャネルを同時にトレーニングする装置。
【請求項７】
前記メモリ制御器のそれぞれに関連付けられて、前記メモリチャネルを介してメモリデバイスへ書き込まれるべきデータパターンを記憶するためのそれぞれの第１の記憶ロケーションと、
前記メモリチャネル制御器のそれぞれに関連付けられて、前記メモリチャネルを介して前記メモリデバイスから読み出されたデータパターンを記憶するためのそれぞれの第２の記憶ロケーションと、を更に備えた請求項６に記載の装置。
【請求項８】
前記チャネル制御器の各々において書き込まれたデータパターン及び読み出されたデータパターンを比較する比較論理を前記メモリチャネル制御器の各々内に更に備えた請求項６又は７に記載の装置。
【請求項９】
前記トレーニング同期器は前記メモリチャネル制御器の各々によって書き込まれたデータパターン及び読み出されたデータパターンを比較するように動作可能な請求項６又は７に記載の装置。
【請求項１０】
前記トレーニング同期器は前記メモリチャネル制御器の各々に遅延値を同時に供給するように複数の通信パスを介して結合される請求項６又は７に記載の装置。
【請求項１１】
前記トレーニング情報はデータパターン及び遅延値を含む請求項６又は７に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータシステムにおけるメモリに関し、より特定的にはコンピュータシステムにおいてメモリを効率的にトレーニングすることに関する。
【背景技術】
【０００２】
図１を参照すると、最新のｘ８６アーキテクチャにおいて、ｘ８６プロセッサのノースブリッジ１０１は、１つ以上のチャネル制御器１０５の高レベル制御を提供するように結合されるメモリ制御器１０３を含み、各チャネル制御器１０５は、通信リンク１０７、例えばダブルデータレート（ＤＤＲ）チャネルを介して同期ダイナミックランダムアクセスメモリデバイス１０９とインタフェースする。チャネル制御器は、チャネル制御器の送信機及び受信機の遅延を調節して制御器からの書き込み及びＤＲＡＭからの読み出しが正確に作動することを確実にすることのできる回路を含む。そのことは、ＤＤＲチャネルを介してＤＲＡＭデバイスへデータパターンを書き込むと共にＤＲＡＭデバイスからデータパターンを読み取る一方でＰＣＩアクセスを介して遅延及び他のトレーニングパラメータを動的に設定するＢＩＯＳによって達成される。この動的プロセスは「ＤＤＲトレーニング」と称される。
【０００３】
ＤＤＲトレーニングの間、チャネル制御器は、データパターンをメモリへ書き込み、次いでメモリからデータを読み戻すと共に読まれたデータを書き込みデータと比較する。比較が成功であれば、書き込み及び読み出しの遅延は満足に実行されたことになる。不一致が生じる場合には、それらの遅延のいずれか一方又は両方が不正確であったことになる。各比較の後、新たな遅延設定がチャネル制御器へ書き込まれ、そしてプロセスは比較が完了するまで続く。尚、２つ以上の遅延設定が動作することができる。トレーニングは、成功した遅延設定を識別すると共に、最も大きいマージンを伴う、例えば「アイ」の中央にある特定の設定を選択する。従って、満足な結果が得られるまで、各読み出し遅延に対しては多重書き込み遅延が試験され、また各書き込み遅延に対しては多重読み出し遅延が利用され得る。当該プロセスは、システム内の各チャネル制御器に対してシリアルに繰り返され、即ち１つのチャネル制御器のみが一度にトレーニングされる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
コンピュータシステムにおける増大している量のメモリの使用は、トレーニング時間に負担を課している。また、読み出し遅延及び書き込み遅延に加えて他のパラメータ、例えば１又は０を決定するための受信機上の参照電圧が利用されており、あるいはすぐに利用されるであろう。より多くのチャネル制御器が追加的なパラメータに対してトレーニングされるのに従って、付加的な遅延を負う。各ＤＤＲチャネルをトレーニングするのに必要とされるメモリ制御器から各チャネル制御器への多くのＰＣＩアクセスは、トレーニング時間を更に増大させる。チャネル制御器への各ＰＣＩアクセスに対して、ＢＩＯＳソフトウエアは、チャネル制御器への前回のアクセスが完了し且つチャネル制御器が別の読み出し／書き込みアクセスのための準備が整っていることを示す完了ビットについてポーリングする必要がある。チャネル制御器へ書き込まれ又はチャネル制御器から読み出される各遅延設定は、完了ビットについてポーリングすることによってセットされ又は読まれる。
【課題を解決するための手段】
【０００５】
そこで、トレーニング時間及びそれに伴うコンピュータシステムにおけるブート時間を減少させるために、多重メモリチャネルが同時にトレーニングされる。トレーニングは、チャネル制御器における送信機及び受信機並びにメモリデバイスにおける送信機及び受信機それら自体を、それらが設定可能な範囲で含む。
【０００６】
１つの実施形態においては、メモリトレーニングに関する伝達をメモリ制御器同期器へ送ることを含む方法が提供される。メモリ制御器同期器は、メモリ制御器同期器に結合される複数のチャネル制御器へトレーニングパラメータを送り、複数のチャネル制御器においてトレーニングパラメータをセットする。チャネル制御器は、チャネル制御器に結合されるそれぞれのメモリデバイスへそれぞれのチャネル制御器からそれぞれの通信チャネルを介してトレーニングデータをパラレルに書き込む。書き込まれたトレーニングデータは、それぞれのメモリデバイスからチャネル制御器のそれぞれへパラレルに読み出され、各チャネル制御器によって読み出されたデータは、各制御器によってメモリデバイスへ送られたデータと比較されて特定のチャネルでの使用のための１つ以上のトレーニングパラメータが許容可能であるかどうかを決定する。
【０００７】
方法は、メモリデバイスから読み出されたデータをそれぞれのチャネル制御器におけるそれぞれの第１の記憶ロケーション内に記憶することと、メモリへ書き込まれるべきデータをそれぞれのチャネル制御器におけるそれぞれの第２の記憶ロケーション内に記憶することと、を更に備えていてよい。
【０００８】
実施形態においては、トレーニングパラメータは書き込み遅延、読み出し遅延、及び電圧設定の１つ以上を含む。トレーニングパラメータは各チャネル制御器に対するのと同じであってよい。
【０００９】
方法は、多重コアデバイスの単一コアからのチャネル制御器の多重化されたものを制御することを含んでいてよい。
【００１０】
別の実施形態においては、通信リンクを介してトレーニング情報を受信するように結合されるトレーニング同期器を含む装置が提供される。トレーニング同期器は、通信インタフェースを介して複数のメモリチャネル制御器と同時に通信するように動作可能な複数の通信インタフェースを含み、複数のメモリチャネル制御器は、トレーニング情報の少なくとも一部を含むトレーニング同期器からの１つ以上の伝達に応答して、メモリチャネル制御器のそれぞれに結合される複数のメモリチャネルを同時にトレーニングする。
【００１１】
装置は、メモリ制御器のそれぞれに関連付けられて、メモリチャネルを介してメモリデバイスへ書き込まれるべきデータパターンを記憶するためのそれぞれの第１の記憶ロケーションと、メモリチャネル制御器のそれぞれに関連付けられて、メモリチャネルを介してメモリデバイスから読み出されたデータパターンを記憶するためのそれぞれの第２の記憶ロケーションと、を更に備えていてよい。
【００１２】
装置は、チャネル制御器の各々において書き込まれたデータパターン及び読み出されたデータパターンを比較する比較論理をメモリチャネル制御器の各々内に更に備えていてよい。
【００１３】
実施形態においては、トレーニング同期器は、メモリチャネル制御器の各々によって書き込まれたデータパターン及び読み出されたデータパターンを比較するように動作可能である。
【００１４】
実施形態においては、トレーニング同期器は、メモリチャネル制御器の各々に遅延値を同時に供給するように複数の通信パスを介して結合される。
【００１５】
実施形態においては、トレーニング情報はデータパターン及び遅延値を含む。
【図面の簡単な説明】
【００１６】
添付の図面を参照することによって、当業者にとって、本発明はよりよく理解されるであろうし、その多くの目的、特徴、及び利点も明らかになるであろう。
【００１７】
【図１】図１は従来技術のコンピュータシステムを示す図である。
【００１８】
【図２】図２は本発明の実施形態に従うコンピュータシステムを示す図である。
【００１９】
【図３】図３はトレーニング同期器の付加的な詳細を示す図である。
【００２０】
【図４】図４は本発明の実施形態に従うシステムのブロック図である。
【００２１】
【図５】図５は本発明の実施形態に従う書き込み動作を示す図である。
【００２２】
【図６】図６は本発明の実施形態に従う読み出し動作を示す図である。
【００２３】
【図７】図７は本発明の実施形態を示すフローチャートである。
【００２４】
異なる図面における同じ参照符号の使用は、類似又は同一の事項を表示する。
【発明を実施するための形態】
【００２５】
ＤＤＲデバイスのシリアルトレーニングに伴う１つの問題は、それがコンピュータシステムのブート時間を増大することである。図２を参照すると、本発明の実施形態に従うコンピュータシステムの一部分が示されており、ＤＤＲチャネルのトレーニングは、システムブート時間の間のシステム初期化の一部として生じる。従来の手法のようにシリアルであることに代えて、トレーニングはパラレルで生じる。典型的には不揮発性メモリ（ＮＶＭ）内に記憶されるＢＩＯＳソフトウエアが用いられて、ＤＤＲメモリシステムをトレーニングする。サウスブリッジ２０２は、シリアル存在検出(Serial Presence Detect)（ＳＰＤ）をメモリデバイスから検索し、ＳＰＤは、どのデバイスが存在しており従ってどのチャネル制御器がトレーニングを必要としているかを表示する。ＢＩＯＳソフトウエアの実行は、ノースブリッジの一部であるメモリ制御器２０３に、トレーニング同期器２０５と通信することを開始させる。メモリ制御器２０３は、トレーニング同期器２０５に対する高レベル制御機能性を提供する。通信はデータパターンをトレーニング同期器２０５へ送ることを含む。データパターンはトレーニング同期器２０５内のバッファ内に記憶される。メモリ制御器２０３はまた、どのＤＲＡＭ制御器（ＤＣＴ）２０７がトレーニングされることを必要としているのかに関するトレーニング同期器情報を供給する。メモリ制御器２０３からの通信は、内部ＰＣＩバス２０４又は他の内部通信リンクを介して行われてよい。しかし、各ＤＣＴのシリアルトレーニングに対してメモリ制御器が各ＤＣＴと別個に通信する必要があるよりはむしろ、トレーニング同期器との通信は、システム内の全ＤＣＴに対するデータパターンのような情報を含むことができる。データパターン及びどのＤＣＴがトレーニングを必要としているかの表示に加えて、トレーニング同期器はまた、使用するチャネルトレーニングパラメータの値を知らされる必要がある（例えば、読み出し及び書き込み遅延、単一又は複数の参照電圧、並びにトレーニングに必要な他の全てのパラメータ）。
【００２６】
実施形態においては、トレーニング同期器は、全ＤＣＴに対して同一のチャネルトレーニングパラメータを与えられるであろう。トレーニング同期器は、チャネルトレーニングパラメータ及びデータパターンの両方をＤＣＴ２０７へ独立の通信パス２０８を介して供給する。また、パスは独立しているので、トレーニング同期器はまた、各ＤＣＴに対してメモリ制御器２０３から固有のトレーニングパラメータを受信すると共にそれらの固有のトレーニングパラメータをチャネル制御器２０７へ同時に供給することができる。
【００２７】
図３はトレーニング同期器の実施形態のブロック図を示す。ＰＣＩインタフェース３０１はメモリ制御器と通信する。バッファ３０３は、ＤＣＴのためにデータパターン及びチャネルパラメータ等のトレーニングデータを記憶する。制御論理３０９は、トレーニング同期器に関してここで説明される機能性を制御する。制御論理は、状態マシン及び／又はマイクロコントローラのような当該分野で既知の他の制御構造を用いて従来どおりに実装され得る。トレーニング情報は、ＰＣＩバス２０４を介して１つ以上のブロックで送られてよく、そして各チャネル制御器のための１つ以上のトレーニングパターン及び各チャネル制御器のための適切なチャネルトレーニングパラメータを含んでいてよい。幾つかの実施形態においては、トレーニングパターン及びチャネルトレーニングパラメータは、各チャネル制御器に対して同一であり、トレーニング同期器の使用を各チャネル制御器とのシリアル通信に比べて特に有用にしている。インタフェース３０５は、チャネル制御器２０７と独立に通信し、そして同時に通信することができる。実施形態においては、適切なチャネルフレーミング(framing)パラメータがＰＣＩバス２０８ａを介して１つ以上のブロックで各チャネル制御器へ送られる。１つ以上のトレーニングパターン及びコマンドは、データ／ＣＭＤバス２０８ｂを介して各制御器へ送られる。実施形態においては、トレーニング同期器はチャネル制御器にデータパターンを同時に供給する。実施形態においては、トレーニング同期器は、チャネル制御器にそれらの同一の又は固有のトレーニングパラメータをブート時間の間の効率性のために同時に供給する。チャネル制御器によってデータが書き込まれた後に、制御論理（３０９）は、チャネルからデータを検索する読み出しコマンドをチャネル制御器にデータ／ＣＭＤバス２０８ｂを介して発行する。チャネル制御器２０７は、１つの実施形態においては、データ／ＣＭＤバス２０８ｂを介して制御論理３０９へデータを同時に供給する。各チャネル制御器２０７に対して、制御論理３０９は読み出されたデータを書き込まれたデータと比較する。比較の結果に応じて、追加的なチャネルタイミングパラメータが、ＰＣＩバス２０８ａを介して１つ以上のブロックで各チャネル制御器へ送られることになる。
【００２８】
次に図２及び４を参照すると、各制御器２０７は、ＤＤＲチャネルを介してＤＲＡＭへ書き込むためのデータパターンを記憶する関連する書き込みバッファ２０９を有している。チャネル制御器は、トレーニング同期器によって書き込むべき適切なトレーニングパラメータ値及びデータパターンを供給される。データパターンは書き込みデータバッファ２０９内に記憶される。上述したように、データパターンは全てのチャネル制御器に共通であってよく、あるいは異なるデータパターンが１つ以上のチャネル制御器に供給されてよい。
【００２９】
図５を参照すると、チャネル制御器は、書き込みバッファ２０９内に記憶されるそれらのデータパターンを、トレーニング同期器２０５によって指定されるトレーニングパラメータと共に、ＤＤＲチャネル２１０を介してＤＲＡＭデバイス２１２へ同時に書き込む。図６を参照すると、制御器は、メモリデバイス内へ書き込まれたデータパターンを、読み出しバッファ２１４内へ同時に読み出す。読み出されたデータは書き込みデータと比較され、使用されたトレーニングパラメータが満足なものであったかどうかが決定される。実施形態においては、比較を行う比較論理は、チャネル制御器内に例えば制御／比較論理３０９の一部として配置される。各チャネル制御器における増大した能力は、多重チャネル制御器によるより高速なトレーニングを提供する。増大したトレーニング速度に対するトレードオフは、チャネル制御器の各々における論理の増加である。
【００３０】
特定の書き込み／読み出し／比較が完了した後、各チャネル制御器は新たなトレーニングパラメータでトレーニングを継続してよい。チャネル制御器は各書き込み／読み出し／比較の結果をトレーニング同期器へ提供し、そしてトレーニングを継続する必要のあるチャネル制御器に対する次の読み出し／書き込み／比較サイクルのために、新たなトレーニングパラメータがそれらのチャネル制御器へ供給される。一旦トレーニングが完了したら、各チャネルに対するパラメータがトレーニング結果に従ってセットされる。
【００３１】
実施形態においては、特定の読み出し／書き込み／比較が完了した後、各チャネル制御器は、トレーニング同期器によってリストとして又は開始値、終了値及びインクリメントとしてのいずれかで既に提供された新たなトレーニングパラメータでトレーニングを継続し、そしてチャネル制御器はそれ自身上で全トレーニングパラメータを周期的に繰り返す。チャネルトレーニングが完了した後、トレーニング同期器はチャネル制御器の各々によって通知される。チャネル制御器は、最適なトレーニングパラメータそれら自身、即ち最良のマージンをもたらすパラメータの当該値、あるいは他の適切な基準に基づくパラメータの当該値をセットしてよい。
【００３２】
他の実施形態においては、成功したトレーニングパラメータ又は読み出されたデータと書き込みデータの比較の結果が、各書き込み／読み出し／比較サイクルの後にトレーニング同期器へ供給し戻され、そしてトレーニング同期器、メモリ制御器、又はソフトウエアは、どのトレーニングパラメータ値を最終的な又はトレーニングされたパラメータ値として使用するかの決定を行う。どのトレーニングパラメータを使用すべきかの決定は、典型的にはソフトウエアにおいて行われる。
【００３３】
図７を参照すると、フローチャートが本発明の実施形態の動作を示している。ステップ７０１では、遅延値等のトレーニングパラメータが遅延同期器によって全てのチャネル制御器へ送られる。実施形態においては、トレーニングパラメータは同時に送られる。他の実施形態においては、トレーニング同期器は各チャネル制御器へ遅延値をシリアルに送る。遅延がシリアルに送られるとしても、転送されるデータの量は少なく且つ通信オーバヘッドは低い。ステップ７０３では、データパターンが各チャネル制御器内の書き込みデータバッファ内に記憶される。データパターンは、全てのチャネル制御器へ同時に供給されてよい。ステップ７０５では、チャネル制御器がそれらのトレーニングパラメータをセットする。一旦トレーニングパラメータがセットされると、トレーニング同期器からの１つ以上の制御信号若しくはコマンドに応答して又は供給されたトレーニングデータパターン及びトレーニングパラメータを有していたことに応答してのいずれかで、チャネル制御器はそれらのトレーニングを開始する。ステップ７０７では、チャネル制御器はメモリデバイスへ一斉に書き込む。ステップ７０９では、チャネル制御器はメモリデバイスから一斉に読み出し、そしてステップ７１１では、チャネル制御器は読み出されるデータを読み出しバッファ内に記憶する。ステップ７１３では、読み出されたデータは書き込みデータと比較される。尚、データそれ自身を比較するよりもむしろ、書き込まれたデータ及び読み出されたデータに対してハッシュ値が生成されてよく、そしてその値がチャネル制御器、同期器、又はソフトウエアにおいて比較されてよい。読み出されたデータが書き込みデータに等しい場合には、トレーニングパラメータの有効セット、例えば読み出し遅延及び書き込み遅延が発見されたことになる。そうでない場合には、トレーニングパラメータは失敗したことになる。結果はステップ７１５でソフトウエアへ報告し戻され、成功又は失敗情報を与えられて、追加的な掃引(sweeps)が必要であるかどうかが次いで決定され、そして必要である場合には、ステップ７０１〜７１５が次いで再び繰り返されてよい。
【００３４】
このように、多重ＤＤＲチャネルを同時に効率的にトレーニングするための種々の実施形態が説明されてきた。尚、ここに記載される本発明の説明は例示的なものであり、以下の特許請求の範囲に記載されるような本発明の範囲を限定する意図ではない。例えば、ＳＤＲＡＭ及びＤＤＲチャネルが説明されたが、この手法は、任意の種類のメモリデバイス、及びメモリデバイスをトレーニングが必要とされる制御器に結合する通信チャネルに適用可能である。ここに開示される実施形態の変形及び修正は、以下の特許請求の範囲に記載されるような本発明の範囲から逸脱することなしに、ここに記載される説明に基づいてなされ得る。
【図１】
2012530970.tif 000003
【図２】
2012530970.tif 000004
【図３】
2012530970.tif 000005
【図４】
2012530970.tif 000006
【図５】
2012530970.tif 000007
【図６】
2012530970.tif 000008
【図７】
2012530970.tif 000009
【国際調査報告】
2012530970.tif 000010
2012530970.tif 000011