"メモリデバイスのための物理メモリインタフェースを制御するための方法であって、第1および第2の電力コンテキストを格納することと、前記メモリデバイスからのデータ読取りおよび前記メモリデバイスへのデータ書込みのためにタイミング遅延を提供するように構成された複数の調整可能な遅延素子を提供することであって、各調整可能な遅延素子が、前記第1および第2の電力コンテキストのうちの選択された1つに応答する遅延時間を有する、複数の調整可能な遅延素子を提供することと、電力コンテキスト変更要求を受信することと、前記電力コンテキスト変更要求に基づいて、前記第1および第2の電力コンテキストのうちの1つを選択することとを含む方法。前記第1および第2の電力コンテキストのうちの1つを選択する前に、前記メモリデバイスに関連したセルフリフレッシュモードを選択するように構成されたセルフリフレッシュ出力を生成することをさらに含む、請求項1に記載の方法。前記第1の電力コンテキストを格納するように構成された第1のセットのレジスタを提供することと、前記第2の電力コンテキストを格納するように構成された第2のセットのレジスタを提供することと、前記電力コンテキスト変更要求に応答して、前記第1および前記第2のセットのレジスタのうちの1つを選択することとをさらに含む、請求項1に記載の方法。前記電力コンテキスト変更要求に応答して、前記物理インタフェースの少なくとも1つのドライバに対する選択可能なドライブ強度を調整することをさらに含む、請求項1に記載の方法。前記電力コンテキスト変更要求に応答して、前記物理インタフェースの少なくとも1つの受信器に対する選択可能な終了インピーダンスを調整することをさらに含む、請求項1に記載の方法。第1のメモリトレーニング段階を経て前記第1の電力コンテキストを生成することと、第2のメモリトレーニング段階を経て前記第2の電力コンテキストを生成することとをさらに含む、請求項1に記載の方法。電力制御インタフェースACPIS3電力状態から復帰すると、前記第1および第2の電力コンテキストのうちの少なくとも1つを復元することをさらに含む、請求項1に記載の方法。前記第1および第2の電力コンテキストをサウスブリッジ上のメモリ位置から取り出すことをさらに含む、請求項1に記載の方法。前記第1および第2の電力コンテキストをノースブリッジ上のメモリ位置から取り出すことをさらに含む、請求項1に記載の方法。メモリデバイスのための物理メモリインタフェースであって、第1の電力コンテキストおよび第2の電力コンテキストを受信するように構成された複数のレジスタと、前記第1および第2の電力コンテキストのうちの1つを選択するように構成された選択回路と、前記メモリデバイスからのデータ読取りおよび前記メモリデバイスへのデータ書込みのためにタイミング遅延を提供するように構成された複数の調整可能な遅延素子であって、各調整可能な遅延素子が、前記第1および第2の電力コンテキストのうちの前記選択された1つに応答する遅延時間を有する、複数の調整可能な遅延素子とを含む、物理メモリインタフェース。前記選択回路が、前記第1および第2の電力コンテキストのうちの前記選択された1つをメモリ位置から取り出す、請求項10に記載の物理メモリインタフェース。前記第1の電力コンテキストを格納するように構成された第1のセットのレジスタと、前記第2の電力コンテキストを格納するように構成された第2のセットのレジスタとをさらに含み、前記選択回路が前記第1と第2のセットのレジスタとの間で選択するように構成されている、請求項10に記載の物理メモリインタフェース。各々が、前記第1および第2の電力コンテキストのうちの前記選択された1つに応答して選択可能なドライブ強度を有する、複数のドライバをさらに含む、請求項10に記載の物理メモリインタフェース。各々が前記第1および第2の電力コンテキストのうちの前記選択された1つに応答して選択可能な終了インピーダンスを有する複数の受信器をさらに含む、請求項10に記載の物理メモリインタフェース。前記第1の電力コンテキストが第1のメモリトレーニング段階を経て決定され、かつ、前記第2の電力コンテキストが第2のメモリトレーニング段階を経て決定される、請求項10に記載の物理メモリインタフェース。物理メモリデバイスの複数のチャネルのためのインタフェースをさらに含む、請求項10に記載の物理メモリインタフェース。前記物理メモリインタフェースが、中央処理装置CPUのダイ上に配置されている、請求項10に記載の物理メモリインタフェース。電力制御インタフェースACPIS3電力状態から復帰すると、前記第1および第2の電力コンテキストのうちの少なくとも1つを取り出すように構成されたメモリインタフェースをさらに含む、請求項10に記載の物理メモリインタフェース。前記第1および第2の電力コンテキストをメモリ位置からロードするように構成されたメモリインタフェースをさらに含む、請求項10に記載の物理メモリインタフェース。前記物理メモリインタフェースに結合されたメモリデバイスをさらに含み、前記メモリデバイスが、前記第1および第2の電力コンテキストのうちの前記選択された1つに関連する前記タイミング遅延を用いて、データの読取りおよび書込みのために構成されている、請求項10に記載の物理メモリインタフェース。物理メモリインタフェースPhyが提供される。Phyは、メモリコントローラと物理メモリデバイスとの間のインタフェースをとる。Phyインタフェースは、第1の電力コンテキストおよび第2の電力コンテキストを受信するように構成されたコマンドおよび状態レジスタCSRを含む。選択回路が提供される。選択回路は、第1と第2の電力コンテキストの間で切り替えるように構成される。Phyインタフェースは、複数の調整可能な遅延素子を含み、各々が、選択された電力コンテキストに応答する遅延時間を有する。電力コンテキスト間での切替えは、1つまたは複数の調整可能な遅延素子の調整という結果になる。別の実施形態では、Phyインタフェースは、第1の電力コンテキストを格納するように構成された第1のセットのCSRおよび第2の電力コンテキストを格納するように構成された第2のセットのCSRを含む。Phyインタフェースは、各々が、選択された電力コンテキストに応答する選択可能なドライブ強度を有する複数のドライバも含む。Phyインタフェースは、各々が、選択された電力コンテキストに応答する選択可能な終了インピーダンスを有する複数の受信器も含む。電力コンテキスト間での切替えは、1つまたは複数のドライバ/受信器のドライブ強度および/または終了インピーダンスの調整という結果になり得る。第1および第2の電力コンテキストは、BIOSトレーニング手順を経て決定され得る。かかる手順は、複数の段階をもち得る。例えば、第1の電力コンテキストは、第1のメモリトレーニング段階を経て決定され得、第2の電力コンテキストは、第2のメモリトレーニング段階を経て決定され得る。Phyインタフェースは、CSRへの読取り/書込みアクセスを可能にするように構成されている構成バスを含み得る。Phyインタフェースは、物理メモリデバイスの複数のチャネルをサポートするようにも構成され得る。Phyインタフェースは、中央処理装置CPUのダイ上を含め、様々な場所に配置され得る。図1は、中央処理装置CPU12、コア理論チップセット14、16およびメインメモリ28へのメモリインタフェース18を含む、コンピュータシステム10の一部を示す。コア理論チップセットは、ノースブリッジ14または統合メモリコントローラとサウスブリッジまたは入出力コントローラハブ16との間で分割され得る。メモリコントローラ18は、しばしばノースブリッジ14に配置される。かかる回路機構は、単一チップまたはCPU内など、様々な場所に物理的に配置され得ることを理解すべきである。メモリコントローラ18は、通常、メインメモリ30との間を行き来するデータの論理的な流れを管理する。ダイナミックランダムアクセスメモリは、様々なメモリ記憶セル内のチャージを保持するために定期的なリフレッシュ信号も必要とし得る。メモリコントローラ18は、一般に、これらのリフレッシュ操作を管理する。CPUアーキテクチャおよび/またはオペレーティングシステムに応じて、メインメモリ30は、データを32ビットまたは64ビットデータ単位で伝送し得る。他のサイズのデータ単位がサポートされ得ることを理解すべきである。いくつかのメモリシステムは、ブロック20、24、および30で示される、複数のチャネル例えば、2つ以上の独立したメモリコントローラを含む。明確にするために、本明細書に含まれる例は、単一のメモリチャネルのみを示し得る。本開示の範囲から逸脱することなく、複数のチャネルが使用され得ることを理解すべきである。Phyインタフェース22は、メモリコントローラ18と物理メモリデバイスとの間に存在する。Phyインタフェースは、一般に、中央処理装置内に配置されるが、他の場所に配置され得る。明確にするために、Phyインタフェース22は、図1では別個のブロックとして示す。Phyインタフェースは、通常、メインメモリデータストローブのタイミング要件を処理するための回路機構を含む。本開示では、ダブルデータレートDDRという用語は、DDR1/DDR2/DDR3および/またはかかるメモリデバイスの次の世代を包含する。DDRメモリデバイスは、一般に、電子デバイス技術合同協議会JEDEC:JointElectronDevicesEngineeringCouncils規格に準拠する。これらの規格は、DDRメモリデータがどのようにアクセスされ読み取られ、格納される書き込まれるのかを定義する。Phyインタフェースは、他のメモリタイプおよび/または他のメモリ規格と共に動作するように構築され得ることを理解すべきである。典型的なDDRSDRAMメモリデバイスへのインタフェースは、主として2つの信号クラス、DQデータ32およびDQSデータストローブ34を通して達成される。他の信号は、メモリクロックMEMCLK38、ならびにアドレスおよびコマンド信号通常、ADDR/CMD36として示すを含む。典型的なメモリデバイスは、図に示されていない、追加の信号を使用し得ることを理解すべきである。かかる信号は、明確さのみのために省略されている。例えば、電力および接地信号は示されていない。かかる信号は、典型的な実施態様に含まれるであろうことを理解すべきである。読取り操作中、DDRSDRAMは、DQおよびDQSを、一般にエッジアラインedgealignedと呼ばれる方法で、同時に発行する。メモリコントローラが、DDRSDRAMから送信されているデータを正しく取得するため、Phyインタフェース22は、遅延ロックループDLLなどの遅延回路を利用して、有効なデータウィンドウまたはデータアイdataeyeの間に、DQ信号を正しくラッチするためにDQS信号が使用され得るように、DQS信号を遅延させる。同様に、Phyインタフェース22は、データのDDRDRAMへの書込みをサポートするためにも遅延回路を利用し得る。データ読取りのため、DQS34を遅延させる必要がある。データ書込みのため、DQSおよびDQ34、32を遅延させる必要がある。Phyは、DQS34を、エッジアラインよりむしろ、DQ32データアイの中央に合わせる。DQS34は、書込み平準化writelevelingのために遅延されて、データアイの中央要件を満足する。他の遅延も使用され得る例えば、データバスの3状態制御の読取り/書込みのため。Phyインタフェース22は、以下でさらに詳述する、遅延タイミング、ドライブ強度、および様々な他のパラメータを制御するために利用される複数のコマンドおよび状態レジスタCSR42を含む。かかる回路機構は、チャネルベース毎でも重複され得ることを理解すべきである。Phyインタフェースは、また、送信器のドライブ強度および受信器の終了インピーダンスの調整または選択も行い得る。固定のタイミング遅延、送信器ドライブ強度および受信器終了インピーダンスを使用するよりも、これらのパラメータは、コンピュータシステムが作動されるたびに調整され得る。これは、通常、トレーニングプログラムの支援を受けて達成される。トレーニングプログラムは、通常、基本入出力システムBIOSメモリデバイス26に格納されるが、装置ハードウェア内にも実装され得る。トレーニングプログラムは、パワーオンセルフテストPOST中にアルゴリズムを実行し、それが、多数のメモリインタフェース信号に関連した、適切なタイミング遅延、ドライブ強度および終了インピーダンスを決定する。これらのパラメータは、Phyへの、およびPhyからの様々な信号経路の全体的なタイミングを定義する複数のレジスタでPhyインタフェース内に保存される。別の方法では、これらのパラメータは、別の場所例えば、ノースブリッジ14またはサウスブリッジ16内に格納され得る。図2は、Phyインタフェース22の高レベルアーキテクチャを示す。Phyインタフェースは、通常、クロックソース例えば、PLL70およびコマンドおよび状態レジスタCSR42を含む制御インタフェースを含む。Phyインタフェース20は、DQ32、DQS34、アドレス/コマンド線36およびクロック入力38を含め、デュアルインラインメモリモジュールDIMMなどの典型的なメモリデバイス上の大多数のピンに対して物理接続を提供する。典型的なメモリデバイスは、クロック可能セルフリフレッシュ入力40も備え得る。クロック可能入力40は、メモリデバイスをセルフリフレッシュモードにするために使用される。このモードでは、メモリデバイスは、必要に応じて内部のリフレッシュサイクルを生成するために、オンチップタイマーを使用する。外部クロックもこの間、停止され得る。この入力は、メインメモリデータを失うことなくメモリコントローラを無効にできるので、通常、電源ダウンモードに関連して使用される。図2に示すように、DQ32データおよびDQS34ストローブ線は双方向である。各DIMMは、複数のDQ線例えば、64データビットおよび複数のDQS線を有することを理解すべきである。これらの線の各々は、Phyインタフェース22内に、関連するドライバ52、56および受信器54、58を有する。図2では、明確にするために、単一のドライバ/受信器の対を示す。各ドライバは、選択可能または調整可能なドライブ出力を有する。同様に、各受信器は、選択可能または調整可能な終了インピーダンス例えば、オンダイ終了ondieterminationを有する。DQおよびDQS線32、34は、遅延ロックループDLL72、74、76などの遅延素子にも関連する。遅延素子例えば、70~76、ドライブ強度または終了インピーダンス値に対する調整は、以下でさらに詳細に説明するように、適切な値を、関連するCSR42の適切なフィールド内にプログラミングすることによって達成される。CSR間の論理結合および遅延素子、ドライブ強度または終了インピーダンスにおける調整は、一般に、点線で示される。この例では、ドライバ52および56は、DLL72および74とそれぞれ関連する。受信器58は、DLL76と関連する。前述のように、DLLは、読取りおよび書込み操作のために、適切なタイミング遅延を提供するように調整される。Phyインタフェースは、平準化の有無にかかわらず、読取りおよび書込み操作を実行するようにも構成され得る。平準化を行うDDR3DIMMSへのメモリ書き込み操作中に、Phyインタフェースは、各DRAMチップにおいて、DQSがメモリクロック58と合体するcoalesceのが見られるように、DIMMに進む各DQSの開始を遅延させる。平準化を行う読取り操作中、Phyインタフェースは、フライバイトポロジによって取り込まれた遅延の補償も行い得る。より高いデータレートでの操作の信号品位の問題に起因して、Phyインタフェースは、DLL設定をバーストごとまたはトランザクションのベースで動的に変更し得る。Phyインタフェースは、システム内の各DIMMに対してDQおよびDQSに対する遅延設定の最適な組tuppleを格納し得る。アクセスされているDIMMに応じて、Phyインタフェースは、適切なDLL設定を取り出し、それらを適用する。Phyインタフェースは、所望の性能レベルに基づき、その要求される電力を調整し得る。電力コンテキストをいつ変更すべきかの決定は、様々な情報源に由来し得ることを理解すべきである。例えば、オペレーティングシステムは、コンテキスト変更が要求されることを例えば、アイドル時間の設定期間後、ユーザーコマンド、時間スケジュールまたは同様のものによって判断し得る。別の方法では、コンテキスト変更がいつ要求されるかを判断するためにハードウェアが使用され得る。コンテキスト変更は、異なる電力状態に関連する、異なるセットのPhyインタフェースパラメータ間で切り替えることにより達成される。例えば、高電力状態例えば、より高いメモリ速度および低電力状態例えば、より低いメモリ速度。各電力状態は、Phyインタフェースパラメータまたはコンテキストの関連するセットつまり、各信号線に対する遅延素子設定、ドライブ強度および終了インピーダンスを有する。以降で詳述するように、電力状態間の切替えは、いくつかの方法で達成され得る。本明細書で開示するように、複数の電力状態間の切替えは、任意のメモリタイプに適用でき、以下の例で使用されるように、DDRメモリとの使用に限定されないことを理解すべきである。この例では、メモリコントローラ18は、32ビットの、時間インターリーブされた、一方向の構成バス80を介して、CSR42にアクセスし得る。アドレスおよびコマンド例えば、読取り、書込み、何もしないは、図3に示すように、第1のパイプステージ内に送信され、その後、第2のパイプステープ内のデータが続く。CSRは、他の通信リンクを介してアクセスできることを理解すべきである。この例では、CSRアドレス空間は16ビット幅で、65,536の一意の16ビットレジスタの空間を可能にする。かかる大空間を可能にする代わりに、アドレスは、次の機能を可能にするためにマッピングされる:すなわち、チップレット識別、イントラチップレットブロードキャストintra-chipletbrodcast、補償ブロードキャストcompensationbroadcast、チップレットインスタンス識別D3DBYTE、D3CLK、およびD3CMPは、2回以上配置されるチップレットである。図4は、CSRアドレス指定に対する内訳を示す。CSRの一部のみが所与の電力状態に関連する値を含む。電力状態間での低遅延の切替えを容易にするため、各電力状態に対して電力コンテキスト依存のCSRのセットが提供される。図2に戻ると、CSRの第1のセットが第1の電力コンテキストと関連する―PhyPS[0]44。CSRの別のセットが第2の電力コンテキストと関連する―PhyPS[1]46。PhyPS[n]48によって示されるように、3つ以上の電力コンテキストをサポートするために、CSRの追加のセットが提供され得ることを理解すべきである。CSRの異なるセット間で選択するために、マルチプレクサまたは選択回路50が提供される。Phyインタフェースは、電力コンテキスト依存でないCSRも含む。かかるCSRは、全ての電力状態で適用可能である。各PhyPS内の各CSRに対するプログラム可能フィールドの要約を以下の表1に示す。この例では、Phyインタフェースの関連するフィールドのプログラミングは、構成バス80を介して、コマンドを発行するか、またはCSR内の個々のフィールドをプログラミングすることによって達成される。例えば、1つのPhyPSから別への変更は、DDRPhyインタフェース間接レジスタ空間に発行された単一のコマンドで達成され得る。PhyPSコンテキスト依存CSRのプログラミングは、適切なPhyPSコンテキストを設定し、次いで、正常な間接CSR書込みまたは読取りを行うことによって達成され得る。あるいは、直接CSR書込みまたは読取りは、PhyPSコンテキストを考慮することなく、任意のCSRに達し得る。Phyインタフェースは、Master_0x08[12]-PhyPS、Master_0x08[8]-PstateToAccessおよびMaster_0x18[8]-PhyPSMasterChannelを含む、一連のコマンドで制御され得る。用語体系[12]、[8]および同様のものは、コマンド内のビット位置を指す。Master_0x08[12]コマンドは、現在のPhyインタフェースP状態0または1に対応する。このコマンドは、電力コンテキスト例えば、CSRのどのセットが現在アクティブであるかを制御する。Master_0x08[8]コマンドは、CSRアクセス中に、どのP状態の読取りまたは書込みを行うかを選択する。BIOSは、実際のP状態変更を行う必要なく、どのP状態を書き込むかを制御するために、この方法を使用し得る。3つ以上の電力コンテキストをサポートするために、追加のビットが使用され得ることを理解すべきである。Master_0x18[8]コマンドはマスターチャネルを選択する。この実施形態では、このビットによって指定されたチャネルマスターチャネルのみが、0x0B[PhyPS変更]コマンドの発行を許可される。他のチャネルから発行されたどの0x0B[PhyPS変更]コマンドも無視されるであろう。3つ以上のチャネルをサポートするために、追加のビットが追加され得ることを理解すべきである。この実施形態では、以下の0x0Bコマンドが定義される:完全な0x0Bデータパケットを以下の表3に示す。この例では、電力コンテキストが単一ビットすなわち、PhyPS[0]およびPhyPS[1]―ビット位置26で選択される。3つ以上のコンテキストをサポートするために、追加のビットが追加され得ることを理解すべきである。PhyPSRequestビットビット位置30は、コマンドがコンテキスト変更を含むことを示すために使用される。電力コンテキストは、通常、以下のように変更され得る。コンテキスト変更要求を受信すると、各アクティブなチャネルがセルフリフレッシュSRモード0x0B[PhySR=1]にされる。このセーフモードでは、メモリデバイスは、必要に応じて内部のリフレッシュサイクルを生成するために、オンチップタイマーを使用する。選択したSRモードに応じて、外部クロックもこの間、停止され得る。SRモードに入るのは、異なる時に起こり得るが、全てのチャネルは、コンテキスト変更の前にSRモードでなければならない。電力コンテキスト変更が開始される0x0B[PhyPS=X]、[PhyPSRequest=1]。アクティブなチャネルの各々は、SRモードから正常モード0x0B[PhySR=0]に切り替えられる。コンテキスト変更コマンドを受信すると、Phyインタフェースは、PhyPSコンテキストを変更し、DDRPLL乗算器およびドライバが更新され、そして、PLLが再ロックされる。これが全て完了すると、CfgDoneが設定される。その後、SRモードから出ると、DLLが再ロックする。PhyPS変更が生じている間、メモリコントローラは、Phyインタフェースへの全ての入力に対する制御具体的には、CKE、MemReset、ReadPending、WritePending、他の3状態制御の全てを維持する。意図は、PhyPSを可能な限り迅速に変更することにあるので、PhyPS変更はPLLを電源の入ったままにすることが一般に予期される。従って、PhyPSの変更は、直ちにPLL再ロックおよび再ロックの待機をトリガーし、SRから出た後にDLL再ロックが生じる。しかし、PLLVCOまたは調整器のいずれかの電源を落としているSRモード中にあり、かつ、このSRモードにある間にPhyPSを変更することは可能である。この場合、Phyインタフェースはまだ、PhyPS変更の直後にPLL再ロック時間を待機するが、後にSRから出ると、Phyインタフェースは、PLL再ロックPLLが電源を入れ戻す過程にあるのでおよびDLL再ロックの両方を待機するであろう。PhyインタフェースセルフリフレッシュPhySRに入って出る0x0Bコマンドは、チャネル0または1のいずれかで発行され得;1つのDRAMチャネルをSRモードにするが、他はそうではないことを可能にする。Phy内のPClkグローバルグリッドの電源を完全に落とすために、チャネル0および1の両方がPhySRにある必要がある。PhySRを変更する0x0Bを、以下の表4に示す:0x0B[23=PhySR]とともに0x0B[31=PhySRRequest]を設定すると、Phyインタフェースがセルフリフレッシュに入るか、または出るようにする。0x0B[25:24]は、SRにある間、PLLの動作を制御する。SRモードに入るのは非常に迅速であり、0x0Bコマンドの受信からCfgDoneがアサートされる時間まで~300nsかかる。メモリコントローラが可能な限り迅速に前進できるようにするため、メモリコントローラは、CfgDoneが1から0へ遷移するのをモニタし得る。これは、Phyインタフェースがメモリコントローラからの入力を遮断して、すべてのCKEを低下させ、MemResetを適切にドライブし、残りの全てのDDRバスピンを3状態にすることを示す。この時点で、メモリコントローラが狂うのは安全である。CfgDoneがアサートされるまでVddrレールをドロップして、必要なCSRトランザクションの全てが完了していることを示すことは安全ではない。PhySRから出ることは、はるかに潜在的であり、PhyインタフェースクロックグリッドPClkがオンに戻され、DLLが再ロックされることを必要とする。PLLは、SRの間、オンのままにされるか、またはオフにされ得る。この実施形態では、PhySR変更の実行中、0x0B[30=PhyPSRequest]は0でなければならない。0x0B[31=PhySRRequest]または0x0B[30=PhyPSRequest]のいずれかを設定すると、0x0B[22:0]を無効にし、それは、DDRレートフィールドを更新するために0x0B[3=DdrRateRequest]を設定することはできなことを意味する。PhyインタフェースPLL乗算器およびドライバを含むCSRをロードするために、DDRレートを第1に設定する。0x0B[PhyPS変更]を送信すると、DDRPLL乗算器およびドライバをロードする。他の実施形態では、複数の高レベル0x0Bコマンドを同時に実行することが可能であり得る。0x0B[31=PhySRRequest]=1かつ0x0B[23=PhySR]が結果的にPhySR状態に対して変更を行わない場合、CfgDoneをアサートする前に、DLLロック時間がまだ従われる。この実施形態では、DDRバス上のDRAMデータレートに対する0x0Bコマンドは、チャネル0においてのみBIOSによって設定される。チャネル1におけるDRAMデータレートを設定するために0x0Bコマンドを送信しても、効果がない。他の実施形態は、各チャネル上で独自のDDRデータレートをサポートし得ることを理解すべきである。0x0BDDRレートコマンドを以下の表5に示す:この0x0B[DdrRate]コマンドを介して実際のDDRレートおよびPLL周波数を変更することは、レガシーBIOSのために含まれている。PhyインタフェースP状態を理解するBIOSは、代わりに、直接CSRMaster_0x00[DdrRate]およびMaster_0x40[DdrRate]を通じてPhyインタフェースP状態の両方に対してDDRレートをプログラムすべきである。これらの直接CSRを通じたレート変更は、以降の0x0B[PhyPS変更]の後にのみ影響を及ぼすであろう。この実施形態では、DDRレートに対する更新を実行する場合、0x0B[31=PhySRRequest]および0x0B[30=PhyPSRequest]は両方とも0でなければならない。実施形態は、複数の高レベル0x0Bコマンドを同時にサポートし得ることを理解すべきである。コールドリセット、ウォームリセット後のPhyPS状態、または高度構造及び電力制御インタフェースACPI電力状態S3一般に、RAMに対するスタンバイStanby、スリープSleep、またはサスペンドSuspendと呼ばれるを以下の表6に示す。全ての状態は、ウォームリセットを通して持続する。それ故、以下のウォームリセットの項目では、値は、ウォームリセットの前のままである。典型的なコンピュータ電力供給が最初に通電される場合、様々な電圧が安定するのに時間がかかる。電圧が安定する前に、コンピュータを起動しようとすることが許可された場合、予測できない結果が生じ得る。コンピュータが時期尚早に起動するのを防ぐため、電力供給が使える状態であれば、電力供給はPwrOK信号を出力する。この信号が送信されるまで、マザーボードはコンピュータを起動するのを拒否する。コールドブート~PwrOKがアサートされ、同様にResetがアサートされる時には、PhyPSが自動的に0に設定され、PhyインタフェースはPhySRではないであろう全てのDLLの電源が入れられる。ウォームブートPwrOKは継続的にアサートされ、Resetのみがアサートされる時には、PhyPSおよびPhySR状態が、ウォームリセットの直前の状態によって決定される。ウォームリセットからの復帰は、BIOSが適切なPhyPSおよびPhySR状態を設定することを必要とする時間最適化ソリューションは、これらの状態の直接CSR読取りを実行し、次いで必要であれば、書込みを実行することである。BIOSは、ウォームリセットの後、Phyインタフェースが、SRモードにないことを確実にすべきである。DDR3は、書込み平準化WLおよびRxEnの曖昧でない収束を有するために、2つのパスのトレーニング手順を必要とするので、より高出力のP状態に対するトレーニングの過程の一部として低周波数P状態に対してトレーニングすることが可能である。その手順は、BIOSは既に、ウォームリセットまたはS3からの退出とは対照的に、これはコールドリセット従って、トレーニングを必要とするである判断しているとも仮定する。メモリトレーニングの第1のパスは、以下の表7に示すような曖昧でないトレーニングに対して必要な初期のDDRレートを使用する。以下の表の全てで設定されるステップの特定の順番は、本開示の範囲から逸脱することなく、変更し得ることを理解すべきである。この時点で、DDRPLLおよびDLLが、使用するために適切に構成されている。PhyPSコンテキストはPhyPS0である。メモリが存在する場合、両方のチャネルがトレーニングを開始する準備ができている。トレーニングは、表8に大まかに示すように、AMDGenericEncapsulatedSoftwareArchitectureAGESAブートストラッププロトコルなどの、周知のプロトコルに従う:この時点で、曖昧でないトレーニングに対する初期DDRレートのトレーニングおよびプログラミングが完了する。この初期トレーニングプロトコル中に確立されたこのDDRレートおよび他のパラメータが、第1の電力コンテキスト例えば、より低速度―PhyPS[1]として使用され得る。PhyPS[1]は、別のDDRレートに基づき設定され得るすなわち、この周波数に対してステップ4~15を繰り返すことを理解すべきである。次の段階は、より高いPhyPS[0]DDRレートに対してトレーニングする。前述したパスは、書込み平準化およびRxEnハードウェアのトレーニングアルゴリズムにおけるエイリアシングを解決した。書込み平準化およびRxEnトレーニング値は、MemClkデータレート比PhyPS0/PhyPS1によってスケーリングされ、PhyPS[0]におけるトレーニングの第2の段階に対するシードとして使用される。手順は、表9に示すように開始される。この時点で、DDRPLLおよびDLLが、使用するために適切に構成される。PhyPSコンテキストはまだPhyPS[0]であり、PhyインタフェースはPhyPS[0]DDRレートで実行する。両方のチャネルは、メモリが存在する場合、表8に大まかに示すように、トレーニングの次の段階を開始する準備ができている:これで、電力コンテキスト―PhyPS[0]の第2の段階のトレーニングおよびプログラミングが完了する。この時点で、両方のPhyPS空間に対するレートがトレーニングされ、トレーニングされた値が、トレーニングの一部としてPhyインタフェースPhyPS[0]CSRに対して既に書き込まれている。Phyインタフェースは、現在、PhyPS[0]コンテキスト内である。PhyPS[1]トレーニング値はトレーニングされているが、PhyPS[1]CSRにまだ書き込まれていない。PhyPS[0]CSRは、表11に大まかに示すように更新される:1つのPhyPSのみが必要とされる場合には、BIOSがどのPhyPSコンテキストを使用すべきかを選択し得る。歴史的な意味を維持するため、BIOSはPhyPS[0]に対してPhyインタフェースを構成し得る。S3からの復帰は、いかなるDRAMトレーニングも伴わず、不揮発性状態通常、サウスブリッジにおけるからのトレーニング値の復元のみである。S3からの復帰は、一般に、~PwrOkのためにPhyPSコンテキストがPhyPS0であり、Master_0x08[PStateToAccess]が0であること、両方のチャネルがPhySRから出ていること、およびマスターチャネルがチャネル0であるたとえ、メモリがチャネル0上に存在しなくてもことを保証する。S3からの復帰に対する手順を大まかに表12に示す:ウォームリセットの復帰は、S3からの復帰とほぼ同一である。S3からの復帰は、~PwrOkで、PhyPSコンテキストをPhyPS0に設定し、PhyPS変更を伝達するためにチャネル0をマスターチャネルとして指定し、両方のチャネルでPhyインタフェースをPhySRから出す。対照的に、ウォームリセットは、PhyPSおよびPhySRをマスターチャネルと同様に未知の状態のままにしておく。ウォームリセットの復帰には構造上の穴が存在することにさらに留意すべきである。システがコールドブートし、メモリトレーニングを完了し、全てのトレーニング値を不揮発性メモリに格納し得る前にウォームリセット復帰が発行されると、復帰は失敗するであろう。この問題を回避するため、BIOSは、トレーニング値が計算され、うまく格納されているか否かを示すためにコールドリセット時にリセットされるが、ウォームリセットを通じて持続するフラグを使用すべきであり、ウォームリセット中に、BIOSがこのフラグが設定されているのを見ると、トレーニングされた状態を復元することによって復帰し得る。トレーニングされた状態は、Master_0x18[PhyPSMasterChannel]も含み、同様に、どの未実装のチャネルもSRモードのままにされる。このフラグが設定されていなければ、BIOSはPhyを再トレーニングする必要がある。以下の開示では、このフラグが設定されていて、トレーニング値が格納されていると仮定する。従って、ウォームリセット復帰はいかなるDRAMトレーニングも伴わず、通常、サウスブリッジ内の不揮発性状態からトレーニング値を復元するだけである。ウォームリセット復帰を実行するための手順を大まかに表13に示す:表14は、各電力コンテキストに対して重複されている全てのPhyPSCSRのリストを示す。本明細書の開示に基づいて、多数の変形形態が可能であることを理解すべきである。例えば、複数の電力コンテキストが他のメモリ位置例えば、ノースブリッジ14またはサウスブリッジ16内に格納できる。このシナリオでは、標準的なPhyインタフェースは、コンテキスト依存CSRの専用セットを必要とせずに、電力コンテキストを切り替え得る。かかるシナリオは、CSRの複数のセットに対する必要性を取り除き得るが、コンテキスト変更に対する待機時間を増加させる。特徴および要素は特定の組合せで前述されているが、各特徴または要素は、他の特徴および要素なしで単独で、または他の特徴および要素の有無に関わらず様々な組合せで使用され得る。本明細書で提供する方法または流れ図は、汎用コンピュータまたはプロセッサによる実行のために、コンピュータ可読記憶媒体内に組み込まれた、コンピュータプログラム、ソフトウェア、またはファームウェアで実装され得る。コンピュータ可読記憶媒体の例には、読取り専用メモリROM、ランダムアクセスメモリRAM、レジスタ、キャッシュメモリ、半導体メモリデバイス、内蔵されたハードディスクおよび取り外し可能ディスクなどの磁気媒体、光磁気媒体、ならびにCD-ROMディスク、およびデジタル多用途ディスクDVDなどの光媒体を含む。適切なプロセッサには、例として、汎用プロセッサ、専用プロセッサ、従来型のプロセッサ、デジタル信号プロセッサDSP、複数のマイクロプロセッサ、DSPコアと関連した1つまたは複数のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路ASIC、フィールドプログラマブルゲートアレイFPGA回路、任意の他のタイプの集積回路IC、および/または状態マシンを含む。かかるプロセッサは、処理されたハードウェア記述言語HDL命令コンピュータ可読媒体上に格納可能なかかる命令の結果を用いて、製造プロセスを構成することにより製造され得る。かかる処理の結果は、本発明の態様を実施するプロセッサを製造するために、その後、半導体製造プロセスで使用されるマスクワークであり得る。"