(57)【特許請求の範囲】
【請求項１】
バスを介して、ホストメモリコントローラと、第２のメモリモジュールとに連結される、第１のメモリモジュール内に実装されるデバイスであって、
前記デバイスは、メモリモジュールコントローラロジックを備えており、
前記メモリモジュールコントローラロジックは、
前記第１のメモリモジュールおよび前記第２のメモリモジュールの少なくとも１つにある少なくとも１つのコンポーネントに基づいて、タイミング調整を決定し、
前記第２のメモリモジュールにおける出力タイミングに一致させるべく、決定された前記タイミング調整に基づいて、前記ホストメモリコントローラに対する出力タイミングを調整する、ためのものである、デバイス。
【請求項２】
前記タイミング調整を決定することは、
前記第２のメモリモジュールに含まれない、出力タイミングに影響を及ぼす少なくとも１つのコンポーネントを有する前記第１のメモリモジュールに応答して、前記タイミングを加速化させること、および
前記第１のメモリモジュールに含まれない、前記第２のメモリモジュールにおける前記出力タイミングに影響を及ぼす少なくとも１つのコンポーネントを有する前記第２のメモリモジュールに応答して、前記タイミングに遅延を追加すること、を含む、請求項１に記載のデバイス。
【請求項３】
前記タイミング調整を決定することは、前記タイミングを加速化させること、および前記遅延を追加することの両方を含み、
決定された前記タイミング調整は、前記加速化させことおよび前記遅延を追加することの正味を含む、請求項２に記載のデバイス。
【請求項４】
前記少なくとも１つのコンポーネントは、前記第１のメモリモジュール内にデータバッファを含み、
前記タイミング調整は、前記第２のメモリモジュールが前記第１のメモリモジュール内に含まれるようなデータバッファを含まない場合に、前記出力タイミングを遅延させることを含む、請求項２に記載のデバイス。
【請求項５】
前記少なくとも１つのコンポーネントは、前記第２のメモリモジュール内にレジスタを含み、
前記タイミング調整は、前記第２のメモリモジュールが前記第１のメモリモジュール内に含まれない前記レジスタを含む場合に、前記出力タイミングを遅延させることを含む、請求項２に記載のデバイス。
【請求項６】
前記第２のメモリモジュール内の前記レジスタは、コマンド、アドレス、および複数の制御バス上にある、請求項５に記載のデバイス。
【請求項７】
調整された前記タイミングを有する前記出力は、前記第１のメモリモジュールのデータバッファからの出力を含む、請求項１から６のいずれか一項に記載のデバイス。
【請求項８】
前記第１のメモリモジュールおよび前記第２のメモリモジュールは、複数の異なるタイプのＤｕａｌ  ｉｎ−Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ（ＤＩＭＭ）を含む、請求項１から７のいずれか一項に記載のデバイス。
【請求項９】
前記第２のメモリモジュールは、アンバッファードＤＩＭＭ（ＵＤＩＭＭ）、レジスタードＤＩＭＭ（ＲＤＩＭＭ）、およびｌｏａｄ−ｒｅｄｕｃｅｄ  ＤＩＭＭ（ＬＲＤＩＭＭ）のうち１つを含む、請求項８に記載のデバイス。
【請求項１０】
前記タイミング調整は、前記第１のメモリモジュールがデータバッファを含み、かつ、前記第２のメモリモジュールがＵＤＩＭＭを含む場合に、前記出力タイミングを加速化させることを含む、請求項９に記載のデバイス。
【請求項１１】
前記タイミング調整は、
前記第２のメモリモジュールがＲＤＩＭＭを含み、かつ、前記第１のメモリモジュールがレジスタを含まない場合に、前記出力タイミングを遅延させること、および
前記第１のメモリモジュールが前記出力上にデータバッファを含む場合に、前記出力タイミングを加速化させること、を含む、請求項９に記載のデバイス。
【請求項１２】
前記タイミング調整は、前記第２のメモリモジュールが前記ＬＲＤＩＭＭを含み、かつ、前記第１のメモリモジュールが前記出力上にデータバッファを含まない場合に、前記出力タイミングを遅延させることを含む、請求項９に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に記載された複数の実施形態は、概して、単一のチャネルまたはバス上で、ホストメモリコントローラが、当該チャネルおよびホストメモリコントローラに連結された複数のスロットと互換性のあるピンレイアウトを有する複数のメモリモジュールと通信するメモリシステムに関する。ホストメモリコントローラは、チャネルに連結された複数のメモリモジュールによって使用されるプロトコル、例えば、Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ  Ｔｈｉｒｄ  Ｇｅｎｅｒａｔｉｏｎ（ＤＤＲ３）プロトコルをサポートする。複数の異なるタイプのＤｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ（ＤＩＭＭ）の場合のように、ＤＩＭＭ等の複数のメモリモジュールがバス上にデータを出力するにあたり複数の異なるタイミングを有する場合、ホストメモリコントローラは、異なる複数の連結されたＤＩＭＭの間で、それらのタイミングの差異に対し、調整する必要がある。ホストメモリコントローラは、複数の単一のサイクルコマンドを通信することができる。
【０００２】
バスを使用する前に、ホストメモリコントローラは、複数のメモリモジュールを複数の動作のために構成する必要がある。ＤＤＲ３プロトコルでは、ホストメモリコントローラは、モードレジスタセット（ＭＲＳ）コマンドを使用して、メモリモジュールパッケージ上の複数のダイナミックランダムアクセスメモリ（ＤＲＡＭ）チップ等の複数のメモリチップ内の最大８つのモードレジスタをプログラムできる。ＭＲＳコマンドは、メモリチップ上のモードレジスタを識別し、データが反転されたかどうかを示す反転ビットを含む。バスが整備された後、次にホストメモリコントローラは、リードおよびライトコマンドのために、およびデータを転送するために、バスを使用し得る。
【０００３】
複数のコマンドは、１コマンドにつき、１ビット／レーンで送信され得る。例えば、１Ｎタイミング等の通常のタイミングモード中、チップセレクト信号が、コマンドのサイクルでバスに配置され、選択されたメモリモジュールに対し、コマンドを受け取るようにさせる。２Ｎタイミング等の複数の高速動作中、コマンドが追加のセットアップタイムを許容する１クロックサイクル前に、ホストメモリコントローラは、バス上にチップセレクト信号を配置する。
【０００４】
メモリモジュール内の複数の内部クロック信号を管理すべく、クロックイネーブル信号が使用され得る。クロックイネーブル（ＣＫＥ）ハイ信号は、複数の内部クロック信号をアクティブ化し、かつ、リードおよびライトアクセス中、ハイに維持される。メモリモジュールに対するＣＫＥロー信号は、複数の内部クロック信号、複数のデバイス入力バッファおよび複数の出力ドライバを非アクティブ化する。複数のＣＫＥロー信号を採用することで、パワーダウンさせ、複数の動作をリフレッシュさせる。
【０００５】
ホストメモリコントローラからメモリモジュールへ、複数のライトが通信される場合、メモリモジュールにおける複数のライトは、複数のメモリチップに直接書き込まれ得る。しかしながら、ライトバッファを有する複数のメモリモジュール内では、クレジットシステムが実装可能である。そこでは、ホストメモリコントローラに、ライトクレジットの最大数が割り当てられ、複数の利用可能なライトクレジットが存在しなければ、ライトコマンドを送信できない。ライトコマンドを送信すると、複数のライトクレジットはデクリメントされる。各ライトが、クレジットをホストメモリコントローラに戻すのを完了したとき、メモリモジュールは、バスを介してメッセージを送信する。それにより、メッセージが受信されると、ライトクレジットカウンタをインクリメントする。
【０００６】
リードおよびライトリクエストの送信時、複雑なパターンを通信するのを回避すべく、現行の複数のホストメモリコントローラは、バス上でエラーを引き起こし得る、複雑なパターンを繰り返し生成する確率を減らすために、データをスクランブルし得る。ライトアドレスを備える、スクランブルされたライトデータを受信すると、メモリモジュールは、スクランブルされたライトデータをライトアドレスに格納する。リードリクエストに応答して、スクランブルされたデータが格納され、バスを介してホストメモリコントローラに送信され、デスクランブルされ、使用される。
【０００７】
複数の添付図面を参照しつつ、例示目的で複数の実施形態が記載される。図面は正確な縮尺率ではなく、複数の同一の参照番号は、複数の同様の要素を指す。
【図面の簡単な説明】
【０００８】
【図１】メモリシステムを有するシステムに係る一実施形態を示す。
【図２】メモリモジュールの一実施形態を示す。
【図３】メモリシステムのピンアウト設計に係る一実施形態を示す。
【図４】ファンクションをエンコーディングするリクエスト信号を生成および処理する複数の動作に係る一実施形態を示す。
【図５】メモリモジュール内の出力に対するタイミング調整を決定する複数の動作に係る一実施形態を示す。
【図６】モードレジスタセット（ＭＲＳ）コマンドの一実施形態を示す。
【図７】ＭＲＳコマンドを生成および処理するための複数の動作に係る一実施形態を示す。
【図８】２パートで、コマンドを出力するためのタイミングチャートを提供する。
【図９】２パートで、コマンドを出力するためのタイミングチャートを提供する。
【図１０】複数のクロックサイクルで送信されるコマンドを生成および受け取るための複数の動作に係る実施形態を示す。
【図１１】複数のクロックサイクルで送信されるコマンドを生成および受け取るための複数の動作に係る実施形態を示す。
【図１２】メモリモジュールコントローラに対し、サポートされるインターフェース構成を示すための複数の動作に係る一実施形態を示す。
【図１３】メモリモジュールコントローラが、サポートされるインターフェース構成に基づいて、複数のアドレスビットを使用するための複数の動作に係る一実施形態を示す。
【図１４】複数の電力管理動作を示す複数のコマンドを使用するための複数の動作に係る一実施形態を示す。
【図１５】複数のライトコマンドを送信すべく、複数のライトクレジットを使用し、かつ、ホストメモリコントローラに、複数のライトクレジットを戻す、複数の動作に係る一実施形態を示す。
【図１６】ライトクレジットカウンタを備えたリードデータパケットを生成するための複数の動作に係る一実施形態を示す。
【図１７】リードデータパケットを処理するための複数の動作に係る一実施形態を示す。
【図１８】エラー信号を使用して、複数のエラー動作に係るフローを処理するための複数の動作に係る一実施形態を示す。
【図１９】ライトエラーを処理するための複数の動作に係る一実施形態を示す。
【図２０】バスを介して送信されたデータをスクランブルおよびデスクランブルするための複数の動作に係る一実施形態を示す。
【図２１】メモリモジュール内のライトデータをデスクランブルするための複数の動作に係る一実施形態を示す。
【図２２】バスインターフェース構成を示すパラメータを設定するための複数の動作に係る一実施形態を示す。
【図２３】転送リクエストを処理すべく、バスインターフェース構成を選択するための動作に係る一実施形態を示す。
【発明を実施するための形態】
【０００９】
以下の詳細な説明には、本願発明のより完全な理解を提供すべく、多くの具体的な詳細が記載されている。それらは例えば、複数のロジック実装、複数の演算コード、複数のオペランドを指定する手段、リソースパーティショニング／共有／重複の複数の実装、複数のシステムコンポーネントに係る複数のタイプおよび相互関係、およびロジックパーティショニング／統合の複数の選択肢である。しかしながら、本発明は、これらの具体的な詳細がなくても実施可能であることは当業者にとって明白である。他の複数の例において、本発明を不明確にするのを回避すべく、複数の制御構造、複数のゲートレベル回路、および複数の完全なソフトウェア命令シーケンスは、詳細に示されていない。詳細な説明を読んだ当業者であれば、何度も実験を繰り返さなくても、適切な機能を実装できるであろう。
【００１０】
本明細書における「一実施形態」、「ある実施形態」、「例示的な実施形態」等の複数の記載は、記載された実施形態が、特定の機能、構造または特性を含む場合があるが、各実施形態が必ずしもその特定の機能、構造または特性を含むものではないことを示す。さらに、そのような複数の用語は、必ずしも同一の実施形態を意味するものではない。
【００１１】
以下の詳細な説明および特許請求の範囲において、用語「連結された」および「接続された」が、それらの派生語とともに使用され得る。これらの用語は、相互に同義語であることを意図するものではないことが理解されるべきである。「連結された」は、互いに直接物理的または電気的に接触していてもしていなくてもよい、２または２より多い要素が、互いに連携または対話することを示すために使用される。「接続された」は、互いに連結された２または２より多い要素の間で通信を確立させることを示すのに用いられる。複数の特定の実施形態は、複数のメモリデバイスの複数の電子アセンブリに関する。複数の実施形態は、複数の電子アセンブリを形成するための複数のデバイスおよび方法の両方を含む。
【００１２】
図１は、通常マザーボードに搭載される、１または複数のプロセッサ４、ホストメモリコントローラ６および複数のメモリモジュール８ａ、８ｂを含む、コンピューティングシステム２に係る一実施形態を示す。複数のプロセッサ４は、中央処理装置、マルチコアプロセッサを備えてよい。ホストメモリコントローラ６は、複数のプロセッサ４からの複数のメモリアクセスリクエストに応答して、チャネル、バスインターフェース等とも言われるバス１０を介して、複数のメモリモジュール８ａ、８ｂと通信する。ここでは、メモリモジュール８ａ、８ｂの両方は、別個かつ独立的に、同一のバス１０に接続されている。ホストメモリコントローラ６は、リクエストカウンタ７、ライトクレジットカウンタ９、およびスクランブルシード値１１を含んでよい。リクエストカウンタ７は、リクエストカウンタ７で示されるリクエスト数に基づいて、後に複数のグラントを発行する際に使用する、グラントのためのリクエスト信号を受信するとき、インクリメントされる。ライトクレジットカウンタ９は、メモリモジュール８ａ、８ｂの１つに、複数のライトリクエストが送信されることを許可する、多数または複数のクレジットを示す。スクランブルシード値１１は、メモリモジュール８ａ、８ｂの１つからのリードリクエストされたデータをデスクランブルするのに使用される。
【００１３】
図１の実施形態において、メモリモジュール８ａ、８ｂは、システム２のマザーボード上の複数のスロットまたはメモリソケットに搭載される。メモリモジュール８ａ、８ｂは、マザーボード上の複数のメモリスロット内のピン配置と互換性のあるピン配置を有する、同一または異なるタイプの複数のメモリモジュールを備えてよい。さらに、複数のメモリモジュールは、Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ  Ｆｏｕｒｔｈ  Ｇｅｎｅｒａｔｉｏｎ（ＤＤＲ４）プロトコルおよび追加の複数のプロトコル等の、同一または異なる複数のメモリプロトコルをサポートしてよい。２つのメモリモジュール８ａ、８ｂのみが示されているが、複数のメモリモジュールが存在してよい。
【００１４】
メモリモジュール８ａ、８ｂの各々は、データを格納するためのメモリチップ１２ａ、１４ａ、１６ａ、１８ａおよび１２ｂ、１４ｂ、１６ｂ、１８ｂをそれぞれ、メモリモジュールの一方または両方の側に含む。メモリモジュール８ａ、８ｂパッケージの一方または両方の側に配置される、複数のＤＲＡＭチップ等の複数のメモリチップは、プロセッサ４によって使用されているデータを格納する複数のストレージ要素を備える。
【００１５】
各メモリモジュール８ａ、８ｂは、ホストメモリコントローラ６とのメモリ管理および複数のアクセス動作を調整するためのメモリモジュールコントローラ２０ａ、２０ｂを含んでよい。ホストメモリコントローラ６は、バス１０に接続されたメモリモジュール８ａ、８ｂに対する、複数のリードおよびライト動作並びに複数のメモリ管理動作を管理するため、およびプロセッサ４をメモリモジュール８ａ、８ｂに対しやり取りさせるためのロジックを含む。ホストメモリコントローラ６は、プロセッサ４と統合されてよく、あるいはシステム２のマザーボード上のプロセッサ４とは分離したロジックに実装されてよい。
【００１６】
異なるタイプのメモリモジュール８ａ、８ｂが複数のメモリソケット内のピンアーキテクチャと互換性がある限り、システム２のマザーボードは、異なる複数のタイプのメモリチップと互換性のあるメモリソケットを含んでよく、異なる複数のタイプのメモリプロトコルをサポートする異なる複数のタイプのメモリデバイスをサポートする異なるタイプのメモリモジュール８ａ、８ｂを許容する。
【００１７】
一実施形態において、メモリモジュール８ａ、８ｂは、同一または異なるタイプのダイナミックランダムアクセスメモリ（ＤＲＡＭ）を備えてよい。一実施形態において、メモリモジュール８ａ、８ｂは、アンバッファードＤＩＭＭ（ＵＤＩＭＭ）、Ｌｏａｄ  Ｒｅｄｕｃｅｄ  Ｄｕａｌ−ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ（ＬＲＤＩＭＭ）、Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ  Ｄｕａｌ  Ｉｎ−ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ（ＳＯＤＩＭＭ）等のＤｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ（ＤＩＭＭ）を備えてよい。メモリモジュール８ａ、８ｂは、様々な形態のメモリを実装してよく、限定はされないがそれらには、ＮＡＮＤ型（フラッシュ）メモリ、強誘電体ＲＡＭ（ＦｅＴＲＡＭ）、ナノワイヤーベースの不揮発性メモリ、相変化メモリ（ＰＣＭ）等の３次元（３Ｄ）クロスポイントメモリ、メモリスタ技術を組み込むメモリ、磁気抵抗ランダムアクセスメモリ（ＭＲＡＭ）、Ｓｐｉｎ  Ｔｒａｎｓｆｅｒ  Ｔｏｒｑｕｅ（ＳＴＴ）−ＭＲＡＭ等を含む。
【００１８】
特定の複数の実施形態において、複数の異なるタイプのメモリモジュール８ａ、８ｂが搭載され、バス１０に接続され得るので、メモリモジュール８ａ、８ｂは、複数の異なるプロトコルをサポートしてよい。例えば、メモリモジュール８ａは、Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ  Ｆｏｕｒｔｈ  Ｇｅｎｅｒａｔｉｏｎ（ＤＤＲ４）Ｓｔａｔｉｃ  ＤＲＡＭ（ＳＤＲＡＭ）プロトコルに適合するタイプのＤＩＭＭを備えてよく、メモリモジュール８ｂは、同一のバス１０上で、ＤＤＲ４プロトコルを使用するメモリモジュール８ａと互換性のある異なるプロトコルを使用してよい。複数の代替的および異なるプロトコルも、メモリモジュール８ａ、８ｂ内で使用および実装されてよい。
【００１９】
メモリモジュール８ａ、８ｂが、複数の異なるＤＲＡＭプロトコルをサポートする場合、メモリモジュール８ａに特有の第１のプロトコルとしてＤＤＲ４等、およびメモリモジュール８ｂに特有の第２のメモリプロトコルといったように、ホストメモリコントローラ６は複数の異なるプロトコルを使用して、バス１０を介して通信するよう構成される。メモリモジュール８ａに対するリードリクエストおよび管理リクエストは、第１のメモリプロトコルを用いて、第２のメモリモジュール８ｂに対しては第２のメモリプロトコルを用いて実装される。
【００２０】
図２は、メモリモジュール８ａ、８ｂ等のメモリモジュール８の一実施形態のさらなる詳細を提供するものであり、複数のメモリモジュール動作およびホストメモリコントローラ６との複数の対話を実行するメモリモジュールコントローラ２０を含むものとして示される。複数の特定の実装において、複数のメモリモジュールのうち一方、例えば８ｂは、図２のメモリモジュールを含んでよく、８ａ等の他方のメモリモジュール、例えば、ＤＤＲ４規格に適合するメモリモジュール８ａ等はメモリモジュールコントローラ２０を含まなくてよい。そのような複数の実施形態においては、ＲＤＩＭＭまたはバッファの場合のように、ＬＲＤＩＭＭの場合のように、メモリモジュール８ａはレジスタを含んでよい。
【００２１】
メモリモジュール８は、メモリモジュールコントローラ内の複数のモードレジスタ２２、リードバッファ２４、電力管理動作レジスタ２６、ライトバッファ２８、ライトクレジットカウンタ３０、スクランブルシード値３２、およびインターフェースパラメータ３４を含んでよい。複数のモードレジスタ２２は、メモリモジュールコントローラ内で、モードレジスタセット（ＭＲＳ）コマンドを使用して構成可能なデータを有する。リードバッファ２４は、リードコマンドに応答して、ホストメモリコントローラ６に戻されているリードデータをバッファするためのものである。電力管理動作レジスタ２６は、実行すべき複数の電力管理動作を示すものである。ライトバッファ２８は、メモリチップ１２、１４、１６、１８に書き込まれる前にライトデータをバッファするためのものである。ライトクレジットカウンタ３０は、ホストメモリコントローラ６に戻す多数のライトクレジットを示すものである。スクランブルシード値３２は、バス１０を介してホストメモリコントローラ６に転送されるリードデータをランダム化するのに使用されるものである。インターフェースパラメータ３４は、バス１０のサポートされるインターフェース構成を識別するものである。複数のバッファおよび複数のパラメータ２４、２６、２８、３０、３２および３４は、メモリモジュールコントローラ２０内、あるいはメモリモジュール８内のメモリモジュールコントローラ２０の外部にある回路内に実装されてよい。特定の複数のパラメータ２６、３０、３２および３４はモードレジスタ２２内に実装されてよい。
【００２２】
特定の複数の実施形態において、メモリモジュール８ａは、メモリモジュール８ｂを含むファーメモリのためのキャッシングレイヤとして構成されるニアメモリを備えてよい。そのような構成では、ニアメモリモジュール８ａは、特定のファーメモリモジュール８ｂがキャッシュするよう設計された、最も頻繁にアクセスされる複数のシステムメモリアドレスのアクセス時間を減らす効果を有するべきである。複数のニアメモリデバイスは、それらの対応するファーメモリのためのダイレクトマップ方式のキャッシュとして構成されてよい。
【００２３】
メモリモジュールコントローラ２０およびホストメモリコントローラ６の記載された複数の実施形態は、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）等のハードウェアロジックにエンコードされてよい。
【００２４】
本願発明の複数の実施形態に係る複数の構成要素は、複数の機械実行可能命令を格納する機械可読媒体としても提供され得る。機械可読媒体は、限定はされないが、フラッシュメモリ、複数の光ディスク、リード専用コンパクトディスク（ＣＤ−ＲＯＭ）、Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ／Ｖｉｄｅｏ  Ｄｉｓｋ（ＤＶＤ）ＲＯＭ、ランダムアクセスメモリ（ＲＡＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、磁気若しくは光カード、伝播媒体、または複数の電子的命令を格納するのに好適な他のタイプの機械可読媒体を含んでよい。例えば、本発明の複数の実施形態は、リモートコンピュータ（サーバ等）から、リクエストするコンピュータ（クライアント等）に、ネットワーク送信を介して転送され得る、コンピュータプログラムとしてダウンロードされてよい。
【００２５】
図３は、ホストメモリコントローラ６、複数のバス１０のラインおよびメモリモジュール８ａ、８ｂを有するメモリモジュール８ａ、８ｂ上の複数のピンの配置を示す。このような複数のピン指定については、以下に記載されるか、または当技術分野において既知である。
【００２６】
［リクエスト信号内の複数のファンクションのエンコーディング］
特定の複数の実施形態において、ホストメモリコントローラ６がリードコマンドの一部として戻すべきデータがリードバッファ２４内にあることを示すべく、メモリモジュールコントローラ２０は、ＲＥＱ＃５０等のリクエスト信号をホストメモリコントローラ６に送信してよい。リクエスト信号は、図３のピンアウトダイアグラムに示される、ＲＥＱ＃クロックイネーブル（ＣＫＥ）信号５０を備えてよい。メモリモジュールコントローラ１８は、ホストメモリコントローラ６による検出を保証すべく、最小パルス幅でリクエスト信号を送信してよく、これは、複数の特定の実装において、２クロックサイクルを備えてよい。メモリモジュールコントローラ２０はさらに、ホストメモリコントローラ６が実行する追加のファンクションをリクエスト信号内にエンコードしてよい。単一の信号内における動作数および通信される情報を最大化すべく、複数の追加のファンクションをリクエスト信号内にエンコーディングすることによって、複数のファンクションが１つの信号内で示され得る。
【００２７】
図４は、複数の追加のファンクションをホストメモリコントローラ６に通信すべくリクエスト信号を使用する、ホストメモリコントローラ６およびメモリモジュールコントローラ２０によって実行される複数の動作の一実施形態を示す。リードバッファ２４からホストメモリコントローラ６へデータを転送し返す、リードコマンドの一部であり得る、リクエスト信号を生成する動作の初期化時（ブロック１００）において、メモリモジュールコントローラ２０はリクエスト信号とともに含むファンクションを決定する（ブロック１０２において）。そのようなファンクションは、特定のエラー条件若しくは割り込み若しくは他の複数のファンクションといった、ホストメモリコントローラ６が実行すべき複数の追加の動作を示してよい。次に、メモリモジュールコントローラ２０は、決定されたファンクションを示す、またはエンコードするために使用されるパルス幅を決定する（ブロック１０４において）。例えば、ホストメモリコントローラ６によるリクエスト信号の検出を保証すべく、最小パルス幅に等しいパルス幅が使用され、第１のファンクションを示すまたはエンコードしてよく、最小パルス幅より大きい追加の複数のパルス幅が使用され、複数の追加のファンクションを示してよい。例えば、検出を保証するための最小パルス幅が２クロックの場合、リクエスト信号のためのこの最小パルス幅は、１つのファンクションを示してよく、パルス幅６、１０、１４は、さらなる追加の複数の異なるファンクションを示してよい。パルス幅１４は、壊滅的な故障を示してよい。さらに、ホストメモリコントローラ６によるパルス幅の適切な検出を保証すべく、複数の異なるファンクションに関連付けられたリクエスト信号のための複数の異なるパルス幅は、特定の複数の実施形態において、３サイクルのように、クロックサイクルの最小数で分割されてよい。メモリモジュールコントローラ２０は、ホストメモリコントローラ６に送信するための、決定されたパルス幅を有するリクエスト信号を生成する（ブロック１０６において）。
【００２８】
２クロック等の最小または第１のパルス幅を有するピン５０上のリクエスト信号ＲＥＱ０＃を検出すると（ブロック１０８において）、ホストメモリコントローラ６は、リクエスト信号を送信するメモリモジュール８ｂに対し送信される必要のある多数のグラント信号を示すリクエストカウンタ７をインクリメントする（ブロック１１０において）。リクエストカウンタ７をインクリメント後、ホストメモリコントローラ６は、リクエストカウンタ７内で示される複数のリクエストが、異なる複数のランダムな時間においてバッチ処理されるよう、複数のグラントリクエストを発行するためのバス１０、すなわちデータバス上のスロットが利用可能になるまで待機してよい。グラント信号を受信すると、メモリモジュールコントローラ２０は、ホストメモリコントローラ６からのリードリクエストに応答して、収集およびバッファされたデータ等、リードバッファ２４内にあるデータをホストメモリコントローラ６に送信（ブロック１１２において）する。
【００２９】
リクエスト信号５０の最小または第１のパルス幅を決定後、リクエスト信号５０が測定された最小パルス幅を超えて継続しない場合（ブロック１１４において）、制御は終了する。あるいは、（ブロック１１６において）測定されたリクエスト信号が６クロック等の第２のパルス幅を超えて継続しない場合、ホストメモリコントローラ６は、その第２のパルス幅に関連付けられた第２のファンクションを実行してよい（ブロック１１８において）。あるいは、（ブロック１２０において）リクエスト信号５０が測定された１０クロック等の第３のパルス幅を超えて継続しない場合、ホストメモリコントローラ６は、その第３のパルス幅に関連付けられた第３のファンクションを実行してよい（ブロック１２２において）。パルス幅が継続し、１４クロック等の第４のパルス幅が測定される場合（ブロック１２４において）、ホストメモリコントローラ６は、ホストメモリコントローラ６が実行すべき壊滅的なエラー処理を実行してよい（ブロック１２６において）。
【００３０】
記載された複数の実施形態は、リクエスト信号の４つの異なるパルス幅に対する４つのファンクションに関するものであるが、複数の特定の実装においては、４つより多いまたは少ないパルス幅によって示される４つより多いまたは少ないファンクションがあり得る。さらに、１つのパルス幅は、実行すべき一連の複数のファンクションを示してよい。
【００３１】
図４の複数の動作において、初期のリクエストグラントファンクションを超える複数のファンクションは、そのパルス幅がそれらの追加のファンクションに関連付けられたパルス幅を超えて継続しないと決定された後に、処理されるのみである。代替の実施形態において、そのパルス幅がその測定されたパルス幅を超えて継続する場合であっても、各追加のファンクションは、そのファンクションに関連付けられたパルス幅を測定したときに実行してよい。よって、パルス幅の複数の測定値がトリガパルス幅を超えるとき、各ファンクションが実行される。
【００３２】
図４の記載された実施形態では、ホストメモリコントローラ６による、パルス幅の検出を保証する最小クロック数によって分割され得る、メモリモジュールコントローラ用の複数の異なるパルス幅を使用することによって、複数の異なるファンクションがメモリモジュールコントローラ２０によってリクエスト信号にエンコードされてよい。このように、単一のリクエスト信号で、メモリモジュールコントローラ２０は、リードバッファ２４からのデータを戻すためのリクエスト等のリクエスト信号、および複数の異なるファンクションの１つをシグナリングしてよい。
【００３３】
［第２のメモリモジュールとの複数のコンポーネントの差異に基づいて、第１のメモリモジュールからの出力タイミングを調整して、第２のメモリモジュールからのタイミングを一致させる］
複数の特定の実装において、メモリモジュール８ａおよび８ｂは、複数の異なるコンポーネントを有する、複数の異なるタイプのメモリモジュールを備えてよい。例えば、メモリモジュール８ａは、メモリモジュール８ｂ内に含まれない複数のレジスタおよび複数のデータバッファを含んでも含まなくてもよく、逆も同様である。メモリモジュール８ａ、８ｂは複数の異なるメモリプロトコルをサポートしてよい。記載された複数の実施形態は、一方のメモリモジュール、例えば８ｂがそのタイミングを調整して、他方のメモリモジュール、例えば８ａのタイミングに一致させる複数の技術を提供する。その結果、ホストメモリコントローラ６は、複数の異なるタイプのＤＩＭＭ等の複数の異なるメモリモジュールからの複数の異なるタイミングに調整する必要がない。メモリモジュールコントローラ２０ａ、２０ｂに複数のタイミング調整を処理させることによって、ホストメモリコントローラにおける過度の複数のターンアラウンドサイクルおよび性能損失が回避される。
【００３４】
図５は、メモリモジュールコントローラ２０ｂ等のメモリモジュールコントローラ２０によって実行される、バス１０上の他方のメモリモジュール８ａ、８ｂとの複数のコンポーネントの差異に基づいて、出力タイミングを調整する、複数の動作に係る一実施形態を示す。データバッファ２４からのデータを出力する動作を初期化すると（ブロック２００において）、メモリモジュールコントローラ２０ｂは、チャネル上のメモリモジュール８ａ、８ｂのうちの少なくとも１つにある、少なくとも１つのコンポーネントに基づいて、タイミング調整を決定する（ブロック２０２において）。ブロック２０４〜２０８は、タイミング調整を決定するための複数の動作に係る一実施形態を提供する。メモリモジュールコントローラ２０ｂは、他方の第２のメモリモジュール８ａに含まれない、出力タイミングに影響を及ぼす少なくとも１つのコンポーネントを有する第１のメモリモジュール８ｂに応答して、そのタイミングを加速させてよい（ブロック２０４において）。さらに、第１のメモリモジュール８ｂに含まれない、第２のメモリモジュール８ａにおける出力タイミングに影響を及ぼす少なくとも１つのコンポーネントを有する、バス１０上の他方の第２のメモリモジュール８ａに応答して、タイミングに遅延が追加されてよい（ブロック２０６において）。
【００３５】
次に、メモリモジュールコントローラ２０ｂは、追加された任意の遅延またはタイミングの加速から、正味のタイミング調整を決定してよい（ブロック２０８において）。メモリモジュールコントローラ２０ｂは、第２のメモリモジュール８ａの出力タイミングに一致させるべく、決定されたタイミング調整に基づいて、データバッファ２４からホストメモリコントローラ６への出力タイミングを調整する（ブロック２１０において）。
【００３６】
例えば、複数の計算を実行するコントローラ８ｂを含むメモリモジュール８ｂが、他方のメモリモジュール８ａにないデータバッファ２４を含む場合、他方の第２のメモリモジュール８ａが第１のメモリモジュール８ｂに含まれるようなデータバッファを含まないとき、タイミング調整は、出力タイミングの加速を含んでよい。別の実装において、ＲＤＩＭＭの場合のように、他方のメモリモジュール８ａが、メモリモジュール８ｂに含まれない、計算を実行するレジスタを有する場合、メモリモジュール８ｂに含まれない、他方のメモリモジュール８ａ内の計算を行うレジスタに合わせるべく、タイミング調整は、出力タイミングを遅延させることを含む。データバッファ２４のためのタイミングの加速が、他方のメモリモジュール８ａ内のレジスタのために追加された遅延より大きい場合、正味のタイミング調整は、タイミングの加速を含む。同様に、追加された遅延が加速より大きい場合、正味の調整は、タイミングに遅延を追加することを含む。複数の計算を行うメモリモジュール８ｂが、他方のメモリモジュールに含まれる複数のレジスタまたは複数のデータバッファ２４を含まない場合、例えば、他方のメモリモジュール８ａがＲＤＩＭＭおよびＬＲＤＩＭＭの場合、メモリモジュールコントローラ２０ｂは、他方のメモリモジュール８ａ内の複数の追加のコンポーネントによって引き起こされる複数の遅延に合わせるべく、タイミングを遅延させてよい。
【００３７】
メモリモジュール８ａ、８ｂが複数のＵＤＩＭＭ、複数のＲＤＩＭＭ、および複数のＬＲＤＩＭＭ等の複数の異なるタイプのＤＩＭＭを備える場合、メモリモジュール８ａ、８ｂは、複数の異なるタイプのコンポーネントを、バス１０に対するそれらのコマンド、アドレス、および複数の制御バス上に有してよい。
【００３８】
複数の特定の記載された実施形態において、タイミングが調整される出力は、データバッファ２４からのデータ出力をバス１０内のデータバス上に備える。代替の複数の実施形態において、調整される複数の出力信号は、データ出力以外の出力を備えてよい。
【００３９】
複数の動作が、複数のタイミング調整を実行する１つのメモリモジュールに関して記載されているが、バス１０上の１または複数のメモリモジュール８ａ、８ｂが図５に係る複数のタイミング調整を実行してよい。
【００４０】
記載された複数のタイミング調整では、メモリモジュールコントローラ２０ｂは、データバッファ２４からの出力等、その出力のタイミングを調整して、他方のメモリモジュール８ａからの複数の同様のタイプの出力に対するタイミングと一致させてよく、その結果、ホストメモリコントローラ６は、バス１０上の異なるメモリモジュール８ａ、８ｂに係る異なる複数の構成に対し合わせるべく、タイミング調整を何ら行う必要がなくなる。
【００４１】
［モードレジスタセット（ＭＲＳ）コマンド内での複数のレジスタのエンコーディング使用］
メモリモジュールコントローラ２０は、複数のモードレジスタ２２を含んでよい。特定の複数の実施形態において、メモリモジュールコントローラ２０ｂは、他方のコントローラ８ａで使用される第２のメモリプロトコル、例えばＤＤＲ４、とは異なる第１のプロトコルを実装してよい。しかしながら、メモリモジュールコントローラ２０ｂは他方のメモリモジュール８ａのＤＤＲ４のような第２のプロトコルからの特定の複数のコマンド、例えばモードレジスタセット（ＭＲＳ）コマンド、をサポートしてよく、さらに当該コマンドを、第１のメモリプロトコルを実装するメモリモジュールコントローラ２０ａによって使用されるのとは異なる目的で使用してよい。
【００４２】
図６は、ＭＲＳコマンド２５０の一実施形態を示す。ＭＲＳコマンド２５０は、ＤＤＲ４等の別のメモリプロトコルからの複数のＭＲＳフィールドを含んでも含まなくてもよい。コマンド２５０は、ＭＲＳ動作を示すオペレーションコード２５２を指定する。メモリモジュールコントローラ２０内の複数のモードレジスタ２２の１つに対し、データを提供すべく、アドレスレジスタＡ０〜Ａ１３が使用されてよく、複数のレジスタビット２５４は、アドレスＡ０〜Ａ１３内のデータを書き込むべきモードレジスタ２２を示す。例えば、１６個のモードレジスタ２２がある場合、４つのレジスタビット２５４、例えば、ＢＡ０、ＢＡ１、ＢＧ０、ＢＧ１が、使用すべき、メモリモジュールコントローラ２０内の１６個のモードレジスタ２２のうちの１つを示してよい。
【００４３】
一実施形態において、ＭＲＳコマンド２５０は、バス１０がリードおよびライト動作等の複数のバス動作のために整備される前に、複数の構成パラメータをメモリモジュール８に対し提供すべく使用され得る単一のサイクルコマンドを備えてよい。ここでリードおよびライト動作は、２サイクルコマンドを備えてよい。このように、ＭＲＳコマンド２５０は、図３のピンアウト設計において、ライン５２で示されるアドレス入力信号Ａ０〜Ａ１７、および図３のピンアウト設計において、ライン５４と５６とでそれぞれ示されるコマンド入力信号ＢＧ１：０およびＢＡ１：０を使用する。特定の複数の実施形態において、アドレス入力信号Ａ１４〜１６は、ＭＲＳコマンドオペレーションコードを含む。
【００４４】
図７は、メモリモジュールコントローラ２０内の複数のモードレジスタ２２をプログラムすべく、ホストメモリコントローラ６およびメモリモジュールコントローラ２０によって実行される、複数の動作の一実施形態を示す。バス１０が２クロックで送信される複数のコマンドを含み得るリードおよびライト動作のために整備される前といった初期化中、ホストメモリコントローラ６は、アドレスフィールドＡ１３：０内に含まれるデータで構成すべき、メモリモジュールコントローラ２０内のモードレジスタ２２を指定するためのＭＲＳコマンド２５０を生成（ブロック２８０において）および送信してよい。アドレスフィールドＡ１３：０に対し、ＭＲＳコマンド２５０が１クロックサイクルで送信され得る。
【００４５】
メモリモジュールコントローラ２０はＭＲＳコマンド２５０を受信（ブロック２８２において）し、ライン５４および５６上（図３）の複数のレジスタビット２５４で示されるモードレジスタ２２を決定する（ブロック２８４において）。次に、メモリモジュールコントローラ２０は、アドレスビットＡ０：Ａ１３内に提供されたデータを決定されたモードレジスタ２２に書き込む（ブロック２８６において）。
【００４６】
ホストメモリコントローラ６はさらに、メモリチップ１２ａ、１４ａ、１６ａ、１８ａのうちの１つにある、８つのモードレジスタのうちの１つをプログラムすべく、ＤＤＲ４プロトコルに従って、ＤＤＲ４プロトコルを実装する、メモリモジュール８ａ等のメモリモジュールに対し送信するためのＭＲＳコマンド２５０を使用してよい。レジスタビットＢＡ０、ＢＡ１、ＢＧ０はメモリチップ内のモードレジスタを識別し、ビットＢＧ１はそれらのビットが反転されているかどうかを示す。このように、ホストメモリコントローラ６は、複数の異なるメモリプロトコルを実装するメモリコントローラ２０ａ、２０ｂに対し、同一のＭＲＳコマンドフォーマットを使用して、複数の異なるプロトコルに従った複数の異なる動作を発生させてよい。例えば、ＤＤＲ４をサポートするメモリモジュール８ａに対し、ＭＲＳコマンド２５０が使用される場合、ＭＲＳコマンド２５０はメモリチップ１２ａ、１４ａ、１６ａ、１８ａのうちの１つにあるモードレジスタに対し、データを書き込む。メモリモジュールコントローラ２０内の複数のモードレジスタ２２を有するメモリモジュール８ｂに対しＭＲＳコマンド２５０が使用される場合、ＭＲＳコマンド２５０は、ＤＲＡＭチップ１２、１４、１６、１８ではなく、メモリモジュールコントローラ２０内の複数のモードレジスタ２２にデータを書き込む。このように、ホストメモリコントローラ６は、ＤＤＲ４および何らかの他のプロトコル等の複数の異なるメモリプロトコルをサポートする複数のメモリモジュールとともに、同一のＭＲＳコマンドフォーマットを使用してよい。
【００４７】
［チップセレクト信号が前半のコマンドのためにのみ受信される場合、メモリモジュールにより後半のコマンドを受け取る］
複数の記載された実施形態は、メモリモジュール８のための１つのチップセレクト信号を受け取るのみでよい状態にする、メモリモジュールが、二等分等、複数パートでコマンドを受け取るための複数の技術を提供する。その結果、メモリモジュール８は、前半のコマンドが送信されたときから遅延間隔をおいて、後半のコマンドを自動的に受け取るようになる。さらなる複数の実施形態は、２Ｎタイミング等の高速タイミングモードで後半のコマンドを自動的に受け取るべく、遅延を組み込むための複数の技術を提供する。高速タイミングモードでは、メモリモジュール８ａ、８ｂが１Ｎタイミング等の通常のタイミングモードに対し、より高速で動作している。
【００４８】
特定の複数の実施形態において、複数のコマンドは、２ビット／レーンを占有し、複数のバックツーバッククロックで送信される。これにより、２コマンドではなく、１コマンド内でアドレス全体が送信されることを可能にし、たとえば、行および列の情報を１コマンドで送信する。メモリモジュールコントローラ２０は、メモリモジュールコントローラ２０上の複数のモードレジスタ２２をプログラミングするホストメモリコントローラ６を介して、高速（２Ｎ）タイミングモードを認識する。
【００４９】
図８は、複数のリードコマンド等の複数のコマンドに対する、１Ｎタイミング等の通常のタイミングモードのためのタイミングチャートの一実施形態を提供する。複数のコマンドは、ＣＭＤ０ａ、ＣＭＤ０ｂ、ＣＭＤ１ａ、ＣＭＤ１ｂ、ＣＭＤ２ａ、ＣＭＤ２ｂで示される２パートで送信される。ホストメモリコントローラ６は、第１のメモリモジュール８ａに対し、前半のコマンドＣＭＤ０ａおよび、図３でＳＯ＃ライン５８としても示されるチップセレクト信号Ｓ０＃３０２を、バス上にクロックサイクル３００で配置する。第１のメモリモジュール８ａは、チップセレクト信号３０２の受信時に、サイクル３００で前半のコマンドＣＭＤ０ａを受け取ってよく、さらに、前半のコマンドＣＭＤ０ａから遅延間隔をおいて、例えば、１クロックサイクル後のクロックサイクル３０４において、後半のコマンドＣＭＤ０ｂを自動的に受け取ってよい。
【００５０】
ホストメモリコントローラ６は、第２のメモリモジュール８ｂを選択すべく、前半のコマンドＣＭＤ１ａおよび、図３でＳ２＃ライン６０としても示されるチップセレクト信号Ｓ２＃３０６を、バス上にクロックサイクル３０８で配置してよい。第２のメモリモジュール８ｂは、チップセレクト信号３０６の受信時に、サイクル３０８で前半のコマンドＣＭＤ１ａを受け取ってよく、さらに、後半のコマンドＣＭＤ１ｂを１クロックサイクル後のサイクル３１０で自動的に受け取ってよい。
【００５１】
図９は、通常のタイミングより高速度の、２Ｎタイミング等の高速タイミングモードのためのタイミングチャートの一実施形態を提供する。ここでは、ＣＭＤ０ａ、ＣＭＤ０ｂ、ＣＭＤ１ａ、ＣＭＤ１ｂ、ＣＭＤ２ａ、ＣＭＤ２ｂとして示される、２クロックサイクルのための各コマンドの両方のパートがバス１０上に存在する。ホストメモリコントローラ６は、第１のメモリモジュール８ａに対し、２サイクルの前半のコマンドＣＭＤ０ａをバス上にクロックサイクル３２０で配置し、図３でＳＯ＃ライン５８としても示されるチップセレクト信号Ｓ０＃３２２をバス上に、前半のコマンドＣＭＤ０ａがバス１０上に配置されてから１サイクル後のクロックサイクル３２４で配置してよく、よって、高速タイミングモードにおいてチップセレクト信号を遅延させる。第１のメモリモジュール８ａは、チップセレクト信号３２２の受信時に、クロックサイクル３２４で前半のコマンドＣＭＤ０ａを受け取ってよく、さらに、後半のコマンドＣＭＤ０ｂをチップセレクト信号３２２から２クロックサイクル後として示される遅延間隔をおいて、クロックサイクル３２８の開始時に自動的に受け取ってよい。
【００５２】
ホストメモリコントローラ６は、第２のメモリモジュール８ｂ用に、前半のコマンドＣＭＤ１ａをサイクル３３０で、図３でＳ２＃ライン６０としても示されるチップセレクト信号Ｓ２＃３３２を１サイクル後のサイクル３３２で配置してよい。第２のメモリモジュール８ｂは、チップセレクト信号３３２のクロックサイクル３３６において、前半のコマンドＣＭＤ１ａを受け取ってよく、さらに、２クロックサイクル後のサイクル３３８で、後半のコマンドＣＭＤ１ｂを自動的に読み取ってよい。このように、ホストメモリコントローラ６はチップ信号を前半のコマンドの途中で１クロックサイクル遅延させ、メモリモジュールコントローラ２０は、後半のコマンドの読み取りを、前半のコマンドの読み取り後、２サイクル遅延させる。
【００５３】
図１０は、バックツーバックサイクルで２ビットを占有する複数のコマンドに対する、１Ｎタイミングモードのために、ホストメモリコントローラ６およびメモリモジュールコントローラ２０によって実行される複数の動作に係る一実施形態を示す。ホストメモリコントローラ６は、１Ｎタイミングモードで動作するための初期化中、メモリモジュールコントローラ２０を複数のモードレジスタ２２内の複数のビットを介してプログラムしてよい。通常のタイミングモード１Ｎで２サイクルコマンドを初期化するとき（ブロック３５０における）、ホストメモリコントローラ６は、前半のコマンド（１サイクル）をバス１０上に第１のクロックサイクルで配置する（ブロック３５２における）。チップセレクトコマンドも、バス１０上に第１のクロックサイクルで配置される（ブロック３５４における）。メモリモジュールコントローラ２０が通常のタイミングモードでプログラムされている場合、メモリモジュールコントローラ２０を含む特定のメモリモジュール８に宛てられたチップセレクト信号を検出すると（ブロック３５６において）、メモリモジュールコントローラ２０は、前半のコマンドをバス１０上の第１のクロックサイクルで受け取る（ブロック３５８において）。
【００５４】
さらに、ホストメモリコントローラ６は、後半のコマンド（前半からのバックツーバックサイクルで）をバス１０上に、第１のクロックサイクルから１クロックサイクル後の第２のクロックサイクルで配置する（ブロック３６０において）。チップセレクト信号によって選択されるメモリモジュール８は、チップセレクト信号が受信され、前半のコマンドが受け取られたときから、１サイクルの遅延を待機することによって、後半のコマンドを、バス１０上の第２のクロックサイクルで受け取る（ブロック３６２において）。メモリモジュールコントローラ２０は、チップセレクト信号にバス１０にアクセスすることを要求することなく、後半のコマンドをバス１０上で自動的に受け取ってよい。
【００５５】
図１１は、バックツーバックサイクルで２ビットを占有する複数のコマンドに対する、２Ｎ等の高速タイミングモードのための、ホストメモリコントローラ６およびメモリモジュールコントローラ２０によって実行される複数の動作に係る一実施形態を示す。メモリモジュールコントローラ２０は、高速タイミングモードで動作するための初期化中、複数のモードレジスタ２２内の複数のビットを介してプログラムされてよい。高速タイミングモードで２サイクルコマンドを初期化するとき（ブロック３８０における）、ホストメモリコントローラ６は、前半のコマンド（１サイクル）を、バス１０上に第１のクロックサイクルで配置する（ブロック３８２における）。次に、チップセレクト信号が、バス１０上に、第１のクロックサイクルから１クロックサイクルとなり得る第２のクロックサイクルで配置される（ブロック３８４における）。このように、前半のコマンドを配置してから、１クロックサイクル等の遅延において、チップセレクト信号がバス上に配置される。メモリモジュールコントローラ２０が高速タイミングモードでプログラムされている場合、メモリモジュールコントローラ２０が特定のメモリモジュール８に宛てられたチップセレクト信号を検出すると（ブロック３８６において）、メモリモジュールコントローラ２０は、遅延における第２のクロックサイクルでバス１０上の前半のコマンドを受け取る（ブロック３８８において）。
【００５６】
さらに、ホストメモリコントローラ６は、後半のコマンド（前半からの２サイクル後）をバス１０上に、第１のクロックサイクルから２サイクル後の第３のクロックサイクルで配置する（ブロック３９０において）。チップセレクト信号によって選択されるメモリモジュール８内のメモリモジュールコントローラ２０は、チップセレクト信号が受信され、前半のコマンドが受け取られたときから、２サイクルの遅延を待機することによって、後半のコマンドをバス１０上で第４のクロックサイクルにおいて受け取る（ブロック３９２において）。メモリモジュールコントローラ２０は、バス１０上のチップセレクト信号を待機することなく、後半のコマンドを自動的に受け取ってよい。
【００５７】
複数の記載された実施形態は、２Ｎタイミング等の高速タイミングモードにおいて、チップセレクト信号が、前半のコマンドを送信してから、１クロック信号分遅延させることを提供する。さらに、メモリモジュールは、チップセレクト信号から２クロック信号後、後半のコマンドを自動的に受け取ってよい。チップセレクト信号におけるこの遅延によって、高速モードにおける、追加のセットアップタイムが可能になる。後半のコマンドを受け取るための遅延によって、チップセレクト信号を要求することなく、コマンドを自動的に受け取ることが可能になる。
【００５８】
代替の複数の実施形態において、記載された１クロック信号とは異なる間隔で、チップセレクト信号がバス上に配置されてよく、後半のコマンドが受け取られてよい。さらに、代替の複数の実施形態において、複数のコマンドは、２より多いパート（複数のビット等）で構成され、２より多いクロックサイクルを使用してよく、かつ、メモリモジュール８ａ、８ｂは、受け取るための複数の追加のチップセレクト信号を要求することなく、コマンドの１つの追加パートより多いものを、チップセレクト信号からの複数のクロック信号遅延間隔において、自動的に受け取ってよい。
【００５９】
［メモリモジュール内の複数の高アドレスビットの設定方法を決定する］
メモリモジュールコントローラ２０は、異なるピンおよびインターフェース構成を有する複数のメモリモジュール８で動作するよう構成され得る。例えば、１つのメモリモジュールは、ＳＯ−ＤＩＭＭ等のより少ないピンを有する別のメモリモジュールより、アドレス指定用のより多くのピンを有する。より少ないアドレス指定用のピンを有するメモリモジュールは、アドレス指定用に利用可能なより多くのピンを有するメモリモジュールより、小さなアドレス空間を提供してよい。サポートされるインターフェース構成は、ホストメモリコントローラ６およびバス１０の複数の機能によって変わってよく、あるいはメモリモジュール８のＳＯ−ＤＩＭＭまたはＵＤＩＭＭ等のピンおよびインターフェース構成の複数の機能によって変わってよい。
【００６０】
そのような複数の実施形態に対し、例えば、メモリモジュールが複数の高アドレスビットのための利用可能な複数のピンを有するかどうかを示す等、複数のサポートされるインターフェース構成を示すべく、メモリモジュールコントローラ２０は、複数のモードレジスタ２２のうちの１つを使用してよい。そのような場合、メモリモジュールコントローラ２０が他の複数のメモリモジュールで利用可能な複数の高アドレスビット用の１または複数のピンを有さないモジュール８で動作している場合、メモリモジュールコントローラ２０は予め定められた値、例えばゼロを、当該モジュールで利用不可能なそれらの複数の高アドレスビットのために使用する。このように、メモリモジュールコントローラ２０は、それらの高アドレスビットのための複数の値を受信するためのピンがない場合に、複数の高アドレスビット用に値ゼロを前提とする。一実施形態において、複数の高アドレスビットは、図３のピンアウトダイアグラムで示される５２のアドレスビットＡ１７および６２のビットＣ２：０を備えてよい。ＳＯ−ＤＩＭＭ等の特定の複数のメモリモジュールは、ピン５２および６２を含まなくてよい。
【００６１】
図１２は、アドレス指定用の複数の設定を構成すべく、メモリモジュールコントローラ２０によって実行される複数の動作に係る一実施形態を示す。ホストメモリコントローラ６は、サポートされるインターフェース構成を示すＭＲＳ信号をメモリモジュール８に対し送信してよい。サポートされるインターフェース構成を示すＭＲＳ信号を受信すると（ブロック４００において）、メモリモジュールコントローラ２０はサポートされるインターフェース構成を示すべく、ＭＲＳ信号によってアドレス指定されるモードレジスタ２２を更新してよい。ＭＲＳ信号は、ＳＯ−ＤＩＭＭ、ＵＤＩＭＭ等のＤＩＭＭタイプを示すか、あるいは、複数の高アドレスビットがサポートされるか否かといった、インターフェースがサポートする内容を示してよい。応答時、メモリモジュールコントローラ２０は、例えば複数の高アドレスビットがサポートされるかどうかを示すといったように、通信されるインターフェース構成を示すべく、インターフェース構成を示すアドレス指定されたモードレジスタ２２を設定（ブロック４０２において）する。
【００６２】
図１３は、より高レベルの複数のアドレスビットを使用する、アドレス指定を処理すべく、メモリモジュールコントローラ２０によって実行される複数の動作に係る一実施形態を示す。複数のアドレスビットを有するコマンドをホストメモリコントローラ６から受信すると（ブロック４２０において）、メモリモジュールコントローラ２０は、サポートされるインターフェース構成をモードレジスタ２２から決定する。そのような情報は、現在のメモリモジュール８が複数の高アドレスビットにおけるアドレス指定をサポートするか否かを示す。サポートされるインターフェース構成が複数の高アドレスビットをサポートしない場合（ブロック４２２において）、例えは、メモリモジュール８が複数のピン５２および６２を有さない場合、受信されるアドレスのための少なくとも１つの高アドレスビットは予め定められた値に設定される。すなわち、複数の高アドレスビットのためのピンがない場合、複数の高アドレスビットはゼロと前提される。モードレジスタ２２で示されるサポートされるインターフェース構成が、複数の高アドレスビットが利用可能であると示す場合（ブロック４２２において）、メモリモジュールコントローラ２０は、少なくとも１つの高アドレスピン５２、６２上で受信されるアドレス用に、少なくとも１つの高アドレスビットを使用する（ブロック４２６において）。
【００６３】
代替の複数の実施形態において、メモリモジュールコントローラ２０は、複数のピンを有さないメモリモジュール上に、複数の高アドレスビット以外の複数のアドレスビットのための複数の予め定められた値を供給してよい。
【００６４】
複数の記載された実施形態は、メモリモジュールコントローラが、複数の高アドレスビットを提供するための複数のピンを有さないメモリモジュール構成に対し、複数の高位のアドレスビットを提供すべく、アドレス指定のために利用可能な複数の異なるピン構成を有する複数のメモリモジュール内で動作することを可能にする。このように、メモリモジュールコントローラはＳＯ−ＤＩＭＭおよびＵＤＩＭＭ等の複数のメモリモジュール内で展開および動作され得、両方のインターフェース構成に対し、複数の完全なアドレス指定機能を提供できる。
【００６５】
［ＣＫＥロー信号のための複数の拡張動作を提供する］
複数の記載された実施形態は、複数の電力管理動作の事前構成をメモリモジュール８で可能にする複数の技術を提供する。それは、メモリモジュールコントローラが、図３のピンアウトダイアグラムで示されるピン６４または６６等のＣＫＥピン上で、クロックイネーブル（ＣＫＥ）ロー信号を検出すると、後で実行されることになる複数の動作である。これによって、ＣＫＥロー信号がアクティブ化されると、定義済みのスリープ状態に入る等、拡張された一連の電力管理動作が実行されることを可能にする。
【００６６】
先に送信されたプリＣＫＥコマンドによって、ＣＫＥロー信号の受信時、異なる可能性のある複数のスリープ状態がアクティブ化され得る。そのような示される複数の状態は、Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ（ＡＣＰＩ）規格で指定されるものを含んでよい。例えば、Ｓ３スタンドバイ状態は、低レベルの電力供給が維持される、メモリモジュール８に対するスリープまたは中断である。Ｓ４の休止状態は、メモリモジュール８の内容は不揮発性メモリに保存され、メモリモジュール８は電源が切られる状態である。Ｓ５の状態は、最小量電力が電源供給ユニットに供給されるもののメモリモジュール８は電源が切られるものである。その内容が保存される不揮発性メモリは様々な形態で提供されてよく、限定はされないが、ＮＡＮＤ（フラッシュ）メモリ、強誘電体ＲＡＭ（ＦｅＴＲＡＭ）、ナノワイヤーベースの不揮発性メモリ、相変化メモリ（ＰＣＭ）等の３次元（３Ｄ）クロスポイントメモリ、メモリスタ技術を組み込むメモリ、磁気抵抗ランダムアクセスメモリ（ＭＲＡＭ）、Ｓｐｉｎ  Ｔｒａｎｓｆｅｒ  Ｔｏｒｑｕｅ（ＳＴＴ）‐ＭＲＡＭを含む。
【００６７】
図１４は、ＣＫＥロー信号を使用して、複数の電力管理動作を容易化すべく、ホストメモリコントローラ６およびメモリモジュールコントローラ２０によって実行される複数の動作に係る一実施形態を示す。例えば、様々な認識されるスリープモードのうちの１つへの切り替えといった、電力管理モードを変更する複数の動作を初期化すべく、ホストメモリコントローラ６は、バス１０を介して、メモリモジュールコントローラ２０に対し、１または複数の電力管理動作を示す、プリＣＫＥコマンドを送信する（ブロック５００において）。一実施形態において、プリＣＫＥコマンドは、１または複数の特定の動作を示す、または一連の動作を表すコードを提供してよい。例えば、プリＣＫＥコマンドは、例えば、複数のＡＣＰＩスリープモード状態に係るＳ３、Ｓ４、Ｓ５等のシステム状態またはスリープモード等の電力管理状態を示してよい。それらをメモリモジュールコントローラ２０は、その状態を実装するために実行すべき一連の動作として解釈してよい。
【００６８】
プリＣＫＥコマンドを受信すると（ブロック５０２において）、メモリモジュールコントローラ２０は、電力管理動作レジスタ２６を、プリＣＫＥコマンドで示される少なくとも１つの電力管理動作を示すよう設定する。その後、ホストメモリコントローラ６がメモリモジュール８ａ、８ｂに対し、示された複数の電力管理動作の状態変更を実装させようとする際、ホストメモリコントローラ６は、ピン６４または６６（図３）上のローといったように、ＣＫＥロー信号５６をアサートする（ブロック５０６において）。ＣＫＥロー信号を検出すると（ブロック５０８において）、メモリモジュールコントローラ２０は、電力管理動作レジスタ５６がスリープモード状態または特定の複数の動作を示すといったように、実行すべき複数の動作を示しているかどうかを決定する（ブロック５１０において）。ヌルまたは既定値等、動作が何も示されていない場合、メモリモジュールコントローラ２０は、例えば、複数の内部クロック信号の非アクティブ化、プリチャージパワーダウンまたはセルフリフレッシュ動作のように、ＣＫＥロー信号を処理するための既定の動作を実行してよい（ブロック５１２において）。複数の動作または電力モードがレジスタ２６で示されている場合、メモリモジュールコントローラ２０は、特定の電力管理状態、例えば、スリープ状態を実装すべく、レジスタ２６で示される複数の電力管理動作を実行する（ブロック５１４）。
【００６９】
複数の記載された実施形態は、ＣＫＥロー信号を使用して、後で一連の電力管理動作を実行するようメモリモジュールコントローラを構成するための複数の技術を提供する。プリＣＫＥコマンドが送信された後、ホストメモリコントローラ６は、ＣＫＥロー信号に応答して通常トリガされるよりも、電力モードを変更するための、より複雑な複数の電力管理動作をトリガすべく、ＣＫＥロー信号をアサートする。複数の記載された実施形態では、スリープモードへの移行等、より複雑な電力管理動作がＣＫＥロー信号で初期化され得るので、電力管理のために、より少ない複数の信号が必要とされる。
【００７０】
［複数のライトコマンド用にホストメモリコントローラの複数のライトクレジットを提供する］
複数の記載された実施形態は、バス１０上のバス帯域幅の消費を低減すべく、戻される複数のリードデータパケット内に複数のライトクレジットを含めることで、複数のライトコマンドを送信するために使用するホストメモリコントローラ６の複数のライトクレジットを供給する複数の技術を提供する。
【００７１】
図１につき、ホストメモリコントローラ６は、ライトクレジットカウンタ９を含んでおり、ライトクレジットカウンタ９が、複数のポジティブクレジットを有する場合にのみ、複数のライトコマンドを送信する。ライトクレジットカウンタ９は、ライトコマンドを送信するとき、デクリメントされる。各メモリモジュール８ａ、８ｂに対し、１つのライトクレジットカウンタ９が存在してよい。メモリモジュール８は、受信されるライトデータをバッファするためのライトバッファ２８を含んでおり、受信されるライトデータは後で、メモリチップ１２、１４、１６、１８内の複数のストレージ要素にデステージされる。メモリモジュールコントローラ２０は、ホストメモリコントローラ６に戻すための累積された複数のライトクレジットを示すライトクレジットカウンタ３０を有する。ライトバッファ２８の使用を管理すべく、複数のライトクレジットが使用され、よって、ホストメモリコントローラ６はライトデータを送信させて、ライトバッファ２８をオーバーフローさせない。
【００７２】
図１５は、ホストメモリコントローラ６およびメモリモジュールコントローラ２０がライトコマンドを処理するための複数の動作に係る一実施形態を示す。ライトコマンドの生成時、ホストメモリコントローラ６は、ライトクレジットカウンタ３０がゼロより大きい、すなわち空以外であるかどうかを決定する（ブロック６０２において）。その場合、ライトコマンドがメモリモジュール８に対し送信される（ブロック６０４において）。ホストライトクレジットカウンタ９が空の場合（ブロック６０２において）、ホストメモリコントローラ６は、ライトコマンドを送信するために複数のクレジットが利用可能になるまで待機する。
【００７３】
ライトコマンドを受信すると（ブロック６１０において）、メモリモジュールコントローラ２０は、ライトデータをライトバッファ３０内にバッファする（ブロック６１２において）。ライトバッファ３０からのライトデータをメモリチップ１２、１４、１６、１８内の複数のストレージ要素へデステージすると（ブロック６１４において）、メモリモジュールコントローラ２０は、ホストメモリコントローラ６に戻すクレジットを示すライトクレジットカウンタ３０をインクリメントし（ブロック６１６において）、別のライトコマンドを許容するようにする。ライトクレジットカウンタ３０が閾値を超えている場合（ブロック６１８において）メモリモジュールコントローラ２０は、リードデータを何も示さない、ライトクレジットカウンタ３０内で示される複数のライトクレジットのうち少なくとも１つを示す、リードデータパケットを生成する（ブロック６２０において）。リードデータパケットがホストメモリコントローラ６に送信され（ブロック６２２において）、ライトクレジットカウンタ３０は、戻されるクレジット数だけ、低減される（ブロック６２４において）。特定の複数の実施形態において、戻されるクレジット数に制限があってよく、よって、ライトクレジットカウンタ３０はゼロに低減されてもされなくてもよい。このように、リードパケットが長時間送信されない場合、メモリモジュールコントローラ２０はデータなしでリードデータパケットを送信し、複数のライトクレジットを提供する。その結果、ホストメモリコントローラ８は、複数のライトクレジットが不足せず、複数のライトコマンドを送信することをブロックされる。代替において、複数のライトクレジットがリードデータパケット以外の複数のパケットで戻されてよい。
【００７４】
図１６は、ホストメモリコントローラ４に戻すためのリードデータパケットを生成すべく、メモリモジュールコントローラ２０によって実行される複数の動作に係る一実施形態を示す。ホストメモリコントローラ６からのリードリクエストに戻すためのリードデータを含むリードデータパケットの生成時（ブロック６４０において）、ライトクレジットカウンタ３０がゼロより大きい場合（ブロック６４２において）、メモリモジュールコントローラ２０は、カウンタ３０内の一部または全部のライトクレジットをリードデータパケットに示し（ブロック６４４において）、リードデータパケットをホストメモリコントローラ６に送信する（ブロック６４６において）。ライトクレジットカウンタ３０は、戻されるライトクレジット数だけ低減される（ブロック６４８において）。戻されるライトクレジット数は、カウンタ３０内のすべてのクレジットであってもよいし、なくてもよい。このように、複数のライトクレジットはリードデータパケット内で一括処理され、ホストメモリコントローラ６に戻される。これにより、情報を通信するためのメッセージ使用を最適化する。複数の応答からなる固定のセットが存在するので、メモリモジュールコントローラ２０は、１パケット内にすべてのクレジットを示さなくてくてよい。例えば、メモリモジュールコントローラ２０はリードパケット内に、戻すライトクレジット数に対し、０、１、または４を示すことができてよく、または複数のライトクレジットがリードデータなしで戻される場合（図１５のブロック６２０において）、データなしのパケットに対し、０、１、４、または８を示すことができてよい。
【００７５】
図１７は、メモリモジュール８からのリードデータパケットを処理すべく、ホストメモリコントローラ６によって実行される複数の動作に係る一実施形態を示す。リードデータパケットの受信時（ブロック６６０において）、リードデータパケットが複数のライトクレジットを示す場合（ブロック６６２において）、ホストメモリコントローラ６は、ライトクレジットカウンタ９を、リードデータパケット内で示されるライトクレジット数だけ、インクリメントする（ブロック６６４において）。ライトクレジットカウンタ９をインクリメントした後（ブロック６６４から）または提供される複数のライトクレジットが存在しない場合（ブロック６６２のいいえの分岐から）、リードデータパケットがリードデータを含む場合（ブロック６６６において）、リードデータが処理される（ブロック６７０において）。データの読み取り後またはパケットがデータを含まない場合（ブロック６６６のいいえの分岐から）、リードデータパケットは破棄される（ブロック６６８において）。
【００７６】
複数の記載された実施形態は、複数のリードパケット内の複数のライトクレジットまたは使用済みの他の複数のメッセージを一括処理することによって、バス１０の帯域幅を低減させるように、メモリモジュール８がホストメモリコントローラ６に対し、複数のライトクレジットを通信する、複数の技術を提供する。
【００７７】
［複数のエラー信号を使用して、複数のエラー処理動作を実行する］
複数の記載された実施形態は、ホストメモリコントローラ６とのエラー処理を調整する、メモリモジュール８における簡易なエラーフローのための複数の技術を提供する。複数の記載された実施形態において、メモリモジュールコントローラ２０は、図３のピンアウト設計に示されるエラーピン６８ＥＲＲ０＃上にエラーをシグナリングしてよい。メモリモジュールコントローラ２０は、複数のエラー処理動作の開始をシグナリングすべく、エラーピン６８上にエラー（ＥＲＲ）ロー信号をアサートしてよく、またメモリモジュールコントローラ２０は、エラーモードが終了したこと、およびバス１０が動作の準備が整った初期状態に戻されたことをシグナリングすべく、エラーピン６８上にエラー（ＥＲＲ）ハイ信号をアサートしてよい。このように、バス１０上でのメモリモジュールコントローラ２０とホストメモリコントローラ６との間のエラー処理を調整するための通信は、より広範なエラー処理調整で、帯域幅を消費することを回避すべく、制限された数の信号を備える。
【００７８】
図１８は、メモリモジュール８内でのエラー検出時に、複数のエラー処理動作を管理するための、メモリモジュールコントローラ２０とホストメモリコントローラ６との間の複数の動作に係る一実施形態を示す。エラーを検出すると（ブロック７００において）、メモリモジュールコントローラ２０は、複数のエラー処理動作が開始されたことをホストメモリコントローラ６に対しシグナリングすべく、バス１０上において、ＥＲＲロー信号等、第１のエラー信号をピン６８上（図３）にアサートする（ブロック７０２において）。ＥＲＲロー信号等、第１のエラー信号をピン６８上に検出すると（ブロック７０４において）、ホストメモリコントローラ６は、第１のエラー信号が受信されたという受信確認を送信（ブロック７０６において）後、継続して、第１のエラー信号に応答して、エラーを有するメモリモジュール８に対するリード動作およびライト動作を中断する（ブロック７０８において）。ホストメモリコントローラ６は、ライトクレジットカウンタ９を最大値に設定する等（ブロック７１０において）、さらなる複数のエラー処理動作を実行してよい。このように、ホストメモリコントローラ６は、エラー処理の一部として、すべてのライトがライトバッファ２８からメモリチップ１２、１４、１６、１８内の複数のストレージ要素へとフラッシュされることを前提とする。
【００７９】
ホストメモリコントローラ６からの第１のエラー信号の受信に係る受信確認を受信すると（ブロック７１２において）、メモリモジュールコントローラ２０は、バス１０を初期状態に戻すための複数のエラー処理動作を実行する。そのような複数の動作は、すべての保留中のリードリクエストの破棄（ブロック７１６において）、ライトバッファ２８内の複数のライトのメモリチップ１２、１４、１６、１８内の複数のストレージ要素へのデステージ（ブロック７１８において）、およびライトクレジットカウンタ３０から、戻す複数のライトクレジットを消去（ブロック７２２において）することが含まれてよい。複数のエラー処理動作の完了後、メモリモジュールコントローラ２０は、エラー処理が完了したことをシグナリングすべく、ＥＲＲハイ等の第２のエラー信号をエラーピン６８上にアサートする（ブロック７２４において）。この第２のエラー信号を検出すると（ブロック７２６において）、ホストメモリコントローラ６は、第２のエラー信号の検出に応答して、メモリモジュールに対するリード動作およびライト動作を再開する（ブロック７２８において）。
【００８０】
複数の記載された実施形態に関し、メモリモジュール８およびホストメモリコントローラ６は、複数のエラー上の多くの通信およびバスを介して実行される複数のトランザクションを交換することなく、限定された数の信号を用いて調整し、複数の完全なエラー処理動作を実行する。各コンポーネント８および２０は、他方がメモリモジュール８におけるエラーに応答して、バス１０の完全な再初期化を実行することを前提とする。
【００８１】
［ライトリクエストエラーおよびライトリクエスト受け取りを示すためのエラー信号を使用する］
複数の記載された実施形態は、例えば、ライトリクエストの送信から予め定められた時間内に、エラー信号ロー等、エラー信号をアサートしないことによって、ライトリクエストが正常に完了したこと、およびエラー信号をアサートすることによって、ライトリクエストが失敗したことを、メモリモジュールコントローラ２０が、ホストメモリコントローラ６に対し、示すための複数の技術を提供する。エラー信号を検出すると、ホストメモリコントローラ６は、ライトリクエストの送信から予め定められた時間内に、エラー信号が受信された場合、ライトリクエストを再送信する。このように、各ライトリクエストの完了後に、複数のライト完了受信確認をホストメモリコントローラ６に対し送信しないことによって、バス１０の帯域幅が節約される。
【００８２】
図１９は、ライトリクエストおよびライトリクエスト内の複数のエラーの受け取りを示すべく、メモリモジュールコントローラ２０およびホストメモリコントローラ６によって実行される複数の動作に係る一実施形態を示す。メモリモジュールコントローラ２０が処理中の複数のライトリクエストの１つに関するライトエラーを検出すると（ブロック７５０において）、メモリモジュールコントローラ２０は、エラーロー信号ＥＲＲ０＃等のエラー信号をピン６８上にアサートする（図３）。エラーが何も発生していないことを示すべく、メモリモジュールコントローラ２０は、エラーハイ信号をアクティブに維持する。メモリモジュールコントローラ２０は、複数のライトリクエストエラーと無関係の複数のエラーを示すべく、ピン６８上のＥＲＲ０＃信号を追加で使用してよい。さらに、メモリモジュールコントローラ２０は、ライトリクエストが送受信されたとき等、ライトリクエストからの予め定められた時間内に、エラーロー信号を送信しないことによって、ライトリクエストの正常終了を暗に示す。
【００８３】
ホストメモリコントローラ６がエラーロー信号を検出する際（ブロック７５４において）、１または複数のライトリクエストからの予め定められた時間内に、エラーロー信号が受信される場合（ブロック７５６において）、ホストメモリコントローラ２０は、エラーロー信号の受信から予め定められた時間内に送信された１または複数の決定されたリクエストを再送信する（ブロック７５８において）。特定の複数の実施形態において、エラー信号が複数のライトエラーンに対し無関係である場合であっても、ホストメモリコントローラ２０は、複数のライトリクエストを再送信する。このように、ホストメモリコントローラ２０は、エラー信号ローが、予め定められた時間内に受信されない場合、複数のライトリクエストを正常に完了したものとして処理し、たとえ、エラー信号ローが複数のライトリクエストエラーに無関係のエラーをシグナリングする場合であっても。エラー信号ローが予め定められた時間内に受信されると、ライトリクエストを失敗したものとして処理する。
【００８４】
複数のライトリクエストを再送信後（ブロック７５８において）または予め定められた時間内に送信された複数のライトリクエストが存在する場合（ブロック７５６のいいえの分岐から）、ホストメモリコントローラ６は、エラーロー信号に関連される、複数のライトエラーに無関係の、実行すべきエラー処理動作が存在するかどうかを決定する（ブロック７６０において）。存在する場合、ホストメモリコントローラ６は、複数のライトエラーに無関係のエラー処理動作を実行する（ブロック７６２において）。
【００８５】
記載された複数の実施形態に関し、メモリモジュール８は、各ライトの完了後、複数のライト完了受信確認を送信しない。代わりに、ホストメモリコントローラ６は、ライトリクエストの後、予め定められた時間内にエラー信号が受信されない場合にライトが完了したことを前提する。さらに、たとえ、メモリモジュールコントローラ２０がライトエラーに無関係のエラーをシグナリングする場合であっても、エラー信号がライトリクエストの送信後、予め定められた時間内に受信される場合は、ホストメモリコントローラ６は、ライトリクエストを再送信する。
【００８６】
［メモリモジュール内のリードデータをスクランブルする］
複数の記載された実施形態は、メモリモジュールコントローラ２０が、ライトデータをデスクランブルし、アンスクランブルされたライトデータを格納した後、リードアドレスのスクランブリングを含む、リードリクエストに戻すべく、格納されたデータをスクランブルする複数の技術を提供する。リードおよびライトの両方のためにバス１０上で送信されているデータに対するスクランブルは、バス１０で複数のエラーを引き起こす可能性のある、送信内で発生する複雑なシーケンスの確率を回避すべく実行される。
【００８７】
リードデータのスクランブルを許容すべく、ホストメモリコントローラ６およびメモリモジュールコントローラ２０は、スクランブルシード値１１および３２（図１および２に示される）をそれぞれ維持する。両方のシード値が共通の値に初期化され、次に、リードデータパケットの処理後、インクリメントされる。その結果、インクリメントされたシード値３２および１１は個別に、同一リードデータパケットに対し同一値に設定され、リードリクエストに応答してホストメモリコントローラ６に戻されたリードデータパケット内のリードリクエストされたデータをスクランブルおよびデスクランブルするのに使用される。さらに、メモリモジュールコントローラ２０およびホストメモリコントローラ６は、データをスクランブルおよびデスクランブルするための、シード値１１、３２を使用する同一データスクランブルアルゴリズムのための回路ロジックを実装し、バス１０で発生する複雑なシーケンスの可能性を除去する。代替の複数の実施形態において、ホストメモリコントローラ６およびメモリモジュールコントローラ２０は、当技術分野において既知の複数の追加の動作によって、シード値１１および３２を更新してよい。
【００８８】
図２０は、バス１０を介して送信されるリードデータをスクランブルすべく、メモリモジュールコントローラ２０およびホストメモリコントローラ６によって実行される複数の動作に係る一実施形態を示す。リードアドレスに対するリードリクエストをホストメモリコントローラ６から受信すると（ブロック８００において）、メモリモジュールコントローラ２０は、メモリモジュール８内のＤＲＡＭチップ１２、１４、１６、１８等のストレージ要素からアンスクランブルされたリードデータを取得する（ブロック８０２において）。メモリモジュールコントローラ２０は、スクランブルシード３２を使用し（ブロック８０４において）、リクエストされたリードデータおよびリードアドレスをスクランブルして、ホストメモリコントローラ６からのリードリクエストに戻すべく（ブロック８０６において）、リードデータパケット内に含める。スクランブラシード３２はその後、更新される（ブロック８０８において）。一実施形態において、その後、スクランブラシード１１、３２は、リニアフィードバックシフトレジスタ（ＬＦＳＲ）回路を使用して、疑似ランダム方式に更新される。
【００８９】
リードパケットを受信すると、ホストメモリコントローラ６は、リードデータおよびリードアドレスを決定すべく、スクランブラシード１１を使用して、リードデータパケットをデスクランブルする（ブロック８１２において）。次に、リードデータがそのリードリクエストに戻され得るよう、アンスクランブルされたアドレスに関連付けられたリードリクエストが決定される（ブロック８１４において）。スクランブラシード１１が更新される（ブロック８１６において）。代替の実施形態において、スクランブラシード１１および３２は、スクランブルおよびデスクランブルに使用される前に、更新されてよい。
【００９０】
図２１は、スクランブルされたライトデータを管理すべく、メモリモジュールコントローラ２０によって実行される複数の動作に係る一実施形態を示す。スクランブルされたライトデータを有するライトリクエストをホストメモリコントローラ６から受信すると（ブロック８３０において）、メモリモジュールコントローラ２０はライトリクエストのライトアドレスを使用して、スクランブルされたライトデータをデスクランブルし（ブロック８３２において）、次に、アンスクランブルされたデータをメモリモジュール８内のメモリチップ１２、１４、１６、１８に書き込む（ブロック８３４において）。
【００９１】
複数の記載された実施形態は、メモリモジュールコントローラ２０が、アンスクランブルされたリードデータを格納後、シード値１１と３２とを使用して、リードデータおよびアドレスの両方をスクランブルしてバス１０上に戻すことを可能にする。シード値１１と３２は、各コンポーネント８および２０が複数の動作をスクランブルおよびデスクランブルするために更新する。
【００９２】
［使用する複数のバスインターフェース構成の１つを選択する］
複数の記載された実施形態は、メモリモジュール８内で構成するインターフェースパラメータ３４を提供する。当該パラメータは、メモリモジュール８によって使用されるバスインターフェース構成を決定すべく、メモリコントローラ２０によって使用される。このように、メモリモジュールコントローラ２０は、異なる複数のバスインターフェース１０、例えば、複数の異なるバス幅、すなわち、９ビットインターフェース、１８ビットインターフェース、７２ビットインターフェース等の複数のバスデータ幅を有する複数のバスインターフェース、で動作できる。例えば、メモリモジュールコントローラ２０がそこに実装され得る異なるタイプのＤＩＭＭは、複数の異なるバス幅構成、例えば、７２、１６８、１８４、２４０等の異なる数のピン、を有して、複数の異なるバス幅を実装してよい。
【００９３】
図２２は、インターフェースパラメータ３４を決定すべく（ブロック９００において）、メモリモジュールコントローラ２０によって実行される複数の動作に係る一実施形態を示す。メモリモジュールコントローラ２０は、バス１０をスキャンすること、またはホストメモリコントローラ６に対しクエリすることによって、初期化中にバス１０インターフェース構成を決定してよい。あるいは、ホストメモリコントローラ６または他のコンポーネントが、初期化中にバス１０を介して、バス幅、ピン構成等のバス１０インターフェース構成に関する情報を通信してよい。さらなる実施形態において、メモリモジュール８は、メモリモジュール８に連結され、バス１０インターフェース構成を通信する、１または複数のストラッピングピンをバス１０の外部に有してよい。ホストメモリコントローラ６または他のコンポーネントは、少なくとも１つのストラッピングピン上に、バスインターフェース構成をアサートしてよい。通信すべきサポートされるバスインターフェース構成が２つのみ存在する場合、１つのストラッピングピンが使用されてよい。メモリモジュールコントローラ２０がサポートする、３つ以上のサポートされるバスインターフェース構成が存在する場合、３つ以上のバスインターフェース構成を示すための追加の複数のピンが存在してよい。バスインターフェース構成の決定時（ブロック９００において）、決定されたインターフェースパラメータを示すべく、インターフェースパラメータ３２が設定される。
【００９４】
図２３は、バスインターフェース構成に基づいて、転送リクエストを処理すべく、メモリモジュールコントローラ２０によって実行される複数の動作に係る一実施形態を示す。転送リクエストを処理する動作の初期化時（ブロック９３０において）、メモリモジュールコントローラ２０は、インターフェースパラメータ３２に対応するバスインターフェース構成を選択する（ブロック９３２において）。この場合、選択されたバス構成は、各々が異なるバス幅およびピン構成を有する、第１、第２、第３、または更なるバス構成のうち１つを備えてよい。例えば、複数のバス構成は、９ビット、１８ビット、７２ビットのデータバスを備えてよく、これらのバス構成の各々は、異なる数のピンを有してよい。この選択されたバス構成が、複数の転送リクエストおよび他の複数の動作を処理する際に使用される。
【００９５】
メモリモジュールコントローラ２０は、選択されたバスインターフェース構成のバス幅に基づいて、転送リクエストを処理する、多数の転送を生成する（ブロック９３４において）。例えば、選択されたバス構成が、メモリモジュールコントローラ２０によってサポートされる他の複数の可能性のある構成より、さらに小さいバス幅を有する場合、そのバス構成は、そのさらに小さいバス幅を収容すべく、より大きいバス幅とより多くのピンを有するサポートされるバスインターフェース構成に要求されるよりも、さらに多くの転送を要求する。このように、メモリモジュールコントローラ２０は、選択されたバスインターフェース構成のバス幅に基づいて、転送リクエストを、異なる数のバストランザクションに分割してよい。生成された複数の転送は、選択されたバスインターフェース構成上で転送される（ブロック９３６において）。
【００９６】
複数の記載された実施形態は、メモリモジュールコントローラ２０が、そこに実装されるメモリモジュール８のバス構成をサポートすることを許容すべく、複数の異なるバスインターフェース構成を有するメモリモジュール８内で動作可能なメモリモジュールコントローラ２０を提供する。
【００９７】
本明細書全体において、「一実施形態」または「ある実施形態」という言及は、その実施形態に関連付けて記載される特定の特徴、構造、または特性が、本願発明の少なくとも１つの実施形態に含まれていることを示す。従って、本明細書の様々な箇所における「ある実施形態」または「一実施形態」または「代替の実施形態」という３つ以上の言及は、すべて必ずしも同一の実施形態について言及しているわけではないことをここに強調し且つ理解されたい。更に、複数の特定の特徴、構造、または特性は、本発明に係る１または複数の実施形態において、好適に組み合わされてよい。
【００９８】
同様に、本発明の複数の実施形態に係る上記の説明において、１または複数の様々な本発明の態様に係る理解を助けるよう、本開示を簡素化する意図で、様々な特徴は単一の実施形態、図、または説明において場合によってまとめられることを理解されたい。しかしながら、この開示方法は、特許請求された主題が、各請求項に明示的に記載されたものより、多くの特徴を必要とするという意図を反映するものと解釈されるべきではない。そうではなく、以降の特許請求の範囲が反映しているように、複数の発明的態様は、上記で開示されている単一の実施形態のすべての特徴より少ないものに存する。よって、詳細な説明の後に続く、特許請求の範囲は、本明細書において、この詳細な説明に明示的に組み込まれる。本明細書によれば、以下の各項目に記載の事項もまた開示される。
［項目１］
バスを介して、ホストメモリコントローラに連結される、メモリモジュールで使用されるデバイスであって、前記デバイスは、
ホストメモリコントローラに対する、最小パルス幅より大きいか等しいパルス幅を有するリクエスト信号を生成するメモリモジュールコントローラロジックを備えており、
前記最小パルス幅は、前記ホストメモリコントローラが前記リクエスト信号を検出することを保証するために必要な複数のクロックサイクルを備えており、
前記リクエスト信号の前記パルス幅は、前記ホストメモリコントローラに対する前記リクエスト信号に加え、少なくとも１つのファンクションを示す、デバイス。
［項目２］
前記リクエスト信号は、前記ホストメモリコントローラに対し、グラント信号を生成させ、
前記メモリモジュールコントローラロジックはさらに、前記グラント信号の受信に応答して、データを前記ホストメモリコントローラに送信する、項目１に記載のデバイス。
［項目３］
前記パルス幅は、前記ホストメモリコントローラに対し、前記リクエスト信号に応答して、前記グラント信号を送信することに加え、前記パルス幅によって示される前記少なくとも１つのファンクションを実行させる、項目２に記載のデバイス。
［項目４］
前記最小パルス幅に等しいパルス幅は、前記リクエスト信号のみを示し、追加のファンクションを示さない、項目１から３のいずれか一項に記載のデバイス。
［項目５］
前記最小パルス幅より大きい少なくとも第１のパルス幅を有する前記リクエスト信号を生成することは、少なくとも第１のファンクションを示し、
前記第１のパルス幅より大きい少なくとも第２のパルス幅を有する前記リクエスト信号を生成することは、少なくとも第２のファンクションを示し、
前記第２のパルス幅より大きい少なくとも第３のパルス幅を有する前記リクエスト信号を生成することは、少なくとも第３のファンクションを示す、項目１から４のいずれか一項に記載のデバイス。
［項目６］
前記第１のパルス幅を有する前記リクエスト信号が生成されるとき、前記第１のファンクションが示され、
前記第２のパルス幅を有する前記リクエスト信号が生成されるとき、前記第２のファンクションが示され、
前記第３のパルス幅を有する前記リクエスト信号が生成されるとき、前記第３のファンクションが示される、項目５に記載のデバイス。
［項目７］
生成される前記パルス幅は、前記最小パルス幅に等しい複数のパルス幅のうち１つまたは前記最小パルス幅の複数を備え、
前記複数のパルス幅は、前記ホストメモリコントローラによる前記パルス幅の検出を保証するために必要なクロックサイクルの最小数によって分割されており、
異なる複数の生成された前記パルス幅は、前記リクエスト信号内の複数の異なるファンクションをエンコードする、項目１から６のいずれか一項に記載のデバイス。
［項目８］
前記最小パルス幅は、２クロックを備え、
６、１０、および１４クロックのパルス幅のうちの１つのパルス幅で前記リクエスト信号を生成することは、前記ホストメモリコントローラが前記リクエスト信号の処理に加えて実行する異なるファンクションを示す、項目７に記載のデバイス。
［項目９］
前記リクエスト信号はクロックイネーブル信号を含む、項目１から８のいずれか一項に記載のデバイス。
［項目１０］
バスを介して、少なくとも１つのメモリモジュールに連結される、デバイスであって、前記デバイスは、ホストメモリコントローラロジックを備えており、
前記ホストメモリコントローラロジックは、
前記メモリモジュールからの、最小パルス幅より大きいか等しいパルス幅を有するリクエスト信号を検出し、
前記リクエスト信号のパルス幅に対応するファンクションを決定し、
決定された前記ファンクションを実行するためのものであり、
前記最小パルス幅は、前記ホストメモリコントローラが前記リクエスト信号を検出することを保証するために必要な複数のクロックサイクルを有し、
前記リクエスト信号のパルス幅は、前記ホストメモリコントローラに対する前記リクエスト信号に加えて、少なくとも１つのファンクションを示す、デバイス。
［項目１１］
前記ホストメモリコントローラロジックがさらに、
前記リクエスト信号の受信に応答して、前記バスを介して、前記メモリモジュールに送信するグラント信号を生成する、項目１０に記載のデバイス。
［項目１２］
前記ホストメモリコントローラロジックがさらに、
前記パルス幅が前記最小パルス幅に等しいことを決定し、
決定された前記ファンクションが、前記最小パルス幅に等しい前記リクエスト信号の前記パルス幅に応答して、追加のファンクションなしに、前記リクエスト信号を含む、項目１０または１１に記載のデバイス。
［項目１３］
前記ホストメモリコントローラロジックがさらに、
前記パルス幅を決定し、
決定された前記ファンクションは、
第１のファンクション、
第２のファンクション、および
第３のファンクションのうち少なくとも１つを含んでおり、
前記第１のファンクションは、前記最小パルス幅より大きいか等しい少なくとも第１のパルス幅を含む前記決定されたパルス幅に応答し、
前記第２のファンクションは、前記第１のパルス幅より大きい少なくとも第２のパルス幅を含む前記決定されたパルス幅に応答し、
前記第３のファンクションは、前記第２のパルス幅より大きい少なくとも第３のパルス幅を含む前記決定されたパルス幅に応答する、項目１０から１２のいずれか一項に記載のデバイス。
［項目１４］
前記第１のパルス幅を有する前記リクエスト信号が生成されるとき、前記第１のファンクションのみが示され、
前記第２のパルス幅を有する前記リクエスト信号が生成されるとき、前記第２のファンクションが示され、
前記第３のパルス幅を有する前記リクエスト信号が生成されるとき、前記第３のファンクションが示される、項目１３に記載のデバイス。
［項目１５］
バスを介して、ホストメモリコントローラと、第２のメモリモジュールとに連結される、第１のメモリモジュール内に実装されるデバイスであって、
前記デバイスは、メモリモジュールコントローラロジックを備えており、
前記メモリモジュールコントローラロジックは、
前記第１のメモリモジュールおよび前記第２のメモリモジュールの少なくとも１つにある少なくとも１つのコンポーネントに基づいて、タイミング調整を決定し、
前記第２のメモリモジュールにおける出力タイミングに一致させるべく、決定された前記タイミング調整に基づいて、前記ホストメモリコントローラに対する出力タイミングを調整する、ためのものである、デバイス。
［項目１６］
前記タイミング調整を決定することは、
前記第２のメモリモジュールに含まれない、出力タイミングに影響を及ぼす少なくとも１つのコンポーネントを有する前記第１のメモリモジュールに応答して、前記タイミングを加速化させること、および
前記第１のメモリモジュールに含まれない、前記第２のメモリモジュールにおける前記出力タイミングに影響を及ぼす少なくとも１つのコンポーネントを有する前記第２のメモリモジュールに応答して、前記タイミングに遅延を追加すること、を含む、項目１５に記載のデバイス。
［項目１７］
前記タイミング調整を決定することは、前記タイミングを加速化させること、および前記遅延を追加することの両方を含み、
決定された前記タイミング調整は、前記加速化させことおよび前記遅延を追加することの正味を含む、項目１６に記載のデバイス。
［項目１８］
前記少なくとも１つのコンポーネントは、前記第１のメモリモジュール内にデータバッファを含み、
前記タイミング調整は、前記第２のメモリモジュールが前記第１のメモリモジュール内に含まれるようなデータバッファを含まない場合に、前記出力タイミングを遅延させることを含む、項目１６に記載のデバイス。
［項目１９］
前記少なくとも１つのコンポーネントは、前記第２のメモリモジュール内にレジスタを含み、
前記タイミング調整は、前記第２のメモリモジュールが前記第１のメモリモジュール内に含まれない前記レジスタを含む場合に、前記出力タイミングを遅延させることを含む、項目１６に記載のデバイス。
［項目２０］
前記第２のメモリモジュール内の前記レジスタは、コマンド、アドレス、および複数の制御バス上にある、項目１９に記載のデバイス。
［項目２１］
調整された前記タイミングを有する前記出力は、前記第１のメモリモジュールのデータバッファからの出力を含む、項目１５から２０のいずれか一項に記載のデバイス。
［項目２２］
前記第１のメモリモジュールおよび前記第２のメモリモジュールは、複数の異なるタイプのＤｕａｌ  ｉｎ−Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ（ＤＩＭＭ）を含む、項目１５から２１のいずれか一項に記載のデバイス。
［項目２３］
前記第２のメモリモジュールは、アンバッファードＤＩＭＭ（ＵＤＩＭＭ）、レジスタードＤＩＭＭ（ＲＤＩＭＭ）、およびｌｏａｄ−ｒｅｄｕｃｅｄ  ＤＩＭＭ（ＬＲＤＩＭＭ）のうち１つを含む、項目２２に記載のデバイス。
［項目２４］
前記タイミング調整は、前記第１のメモリモジュールがデータバッファを含み、かつ、前記第２のメモリモジュールがＵＤＩＭＭを含む場合に、前記出力タイミングを加速化させることを含む、項目２３に記載のデバイス。
［項目２５］
前記タイミング調整は、
前記第２のメモリモジュールがＲＤＩＭＭを含み、かつ、前記第１のメモリモジュールがレジスタを含まない場合に、前記出力タイミングを遅延させること、および
前記第１のメモリモジュールが前記出力上にデータバッファを含む場合に、前記出力タイミングを加速化させること、を含む、項目２３に記載のデバイス。
［項目２６］
前記タイミング調整は、前記第２のメモリモジュールが前記ＬＲＤＩＭＭを含み、かつ、前記第１のメモリモジュールが前記出力上にデータバッファを含まない場合に、前記出力タイミングを遅延させることを含む、項目２３に記載のデバイス。
［項目２７］
バスを介して、メモリモジュールに連結されるデバイスであって、
前記デバイスは、ホストメモリコントローラロジックを備えており、
前記ホストメモリコントローラロジックは、前記メモリモジュール内の複数のモードレジスタのうちの１つをプログラムすべく、チャネルを介して前記メモリモジュールにモードレジスタコマンドを送信するためのものであり、
前記モードレジスタコマンドは、前記複数のモードレジスタのうちの１つを示し、かつ、示された前記モードレジスタのためのデータを含む、デバイス。
［項目２８］
前記メモリモジュールに対するバスが、複数のバス動作のために整備される前の前記メモリモジュールの初期化中に、前記モードレジスタコマンドが前記メモリモジュールに送信される、項目２７に記載のデバイス。
［項目２９］
前記モードレジスタコマンドは単一のサイクルコマンドを含み、かつ、
前記バスを介して、前記メモリモジュールと通信すべく、前記メモリモジュールの整備後、２サイクルコマンドが使用される、項目２８に記載のデバイス。
［項目３０］
前記複数のモードレジスタのうちの１つを示し、かつ、示された前記モードレジスタのためのデータを提供すべく、前記モードレジスタコマンドは、複数のアドレス入力信号および複数のコマンド入力信号を使用する、項目２８に記載のデバイス。
［項目３１］
使用する前記モードレジスタを示すべく、前記モードレジスタコマンドは、前記バス上の前記複数のコマンド入力信号を使用し、かつ、
示された前記モードレジスタのためのデータを提供すべく、前記モードレジスタコマンドは、前記バス上の前記複数のアドレス入力信号を使用する、項目３０に記載のデバイス。
［項目３２］
前記メモリモジュールは、第１のメモリモジュールを含み、かつ、前記モードレジスタコマンドは、第１のモードレジスタコマンドを含み、前記ホストメモリコントローラロジックはさらに、
バスを介して第２のメモリモジュールに第２のモードレジスタコマンドを送信し、
前記第１のモードレジスタコマンドおよび前記第２のモードレジスタコマンドは、同一フォーマットを有しており、
前記第２のモードレジスタコマンドは、前記第２のメモリモジュールに対し、モードレジスタ内の前記第２のモードレジスタコマンド内のデータを、前記第２のメモリモジュール上の複数のメモリチップのうちの１つに格納させる、項目２７から３１のいずれか一項に記載のデバイス。
［項目３３］
前記メモリモジュール内に１６個のモードレジスタが存在し、前記モードレジスタは、前記データを格納するための前記１６個のモードレジスタのうちの１つを示す、４つの入力ビットを含む、項目２７から３２のいずれか一項に記載のデバイス。
［項目３４］
バスを介して、ホストメモリコントローラと通信する、メモリモジュール内に実装されるデバイスであって、前記デバイスは、
複数のモードレジスタと、
メモリモジュールコントローラロジックと、を備えており、
前記メモリモジュールコントローラロジックは、
前記複数のモードレジスタのうちの１つをプログラムすべく、チャネルを介して前記ホストメモリコントローラからモードレジスタコマンドを受信し、
前記モードレジスタコマンド内に含まれるデータを、前記メモリモジュールコントローラ内の示された前記モードレジスタに書き込む、ためのものであり、
前記モードレジスタコマンドは、前記複数のモードレジスタのうちの１つを示し、かつ、示された前記モードレジスタのためのデータを含む、デバイス。
［項目３５］
前記メモリモジュールに対するバスが、複数のバス動作のために整備される前の前記メモリモジュールの初期化中に、前記モードレジスタコマンドが受信される、項目３４に記載のデバイス。
［項目３６］
前記モードレジスタコマンドは単一のサイクルコマンドを含み、かつ、
前記バスを介して、前記メモリモジュールと、前記ホストメモリコントローラとの間で通信すべく、前記メモリモジュールの整備後、２サイクルコマンドが使用される、項目３５に記載のデバイス。
［項目３７］
前記複数のモードレジスタのうちの１つを示し、かつ、示された前記モードレジスタのための前記データを提供すべく、前記モードレジスタコマンドは、前記メモリモジュールに対する複数のアドレス入力信号および複数のコマンド入力信号を使用する、項目３４から３６のいずれか一項に記載のデバイス。
［項目３８］
使用する前記モードレジスタを示すべく、前記モードレジスタコマンドは、前記バス上の前記複数のコマンド入力信号を使用し、かつ、
示された前記モードレジスタのための前記データを提供すべく、前記モードレジスタコマンドは、前記バス上の前記複数のアドレス入力信号を使用する、項目３７に記載のデバイス。
［項目３９］
バスを介して、メモリモジュールにデータを転送するためのデバイスであって、
前記デバイスは、ホストメモリコントローラロジックを備えており、
前記ホストメモリコントローラロジックは、
前記メモリモジュールのための前半のコマンドを前記バス上に第１のクロックサイクルで配置し、
前記前半のコマンドに対する、前記メモリモジュールのためのチップセレクトコマンドを前記バス上に配置し、
後半のコマンドを前記バス上に、前記第１のクロックサイクルの後の第２のクロックサイクルで配置する、ためのものであり、
前記メモリモジュールは、前記前半のコマンドを受け取ってから遅延間隔を置いて、前記後半のコマンドを受け取る、デバイス。
［項目４０］
前記ホストメモリコントローラは、前記メモリモジュールに対し、前記後半のコマンドにアクセスするよう指示する、追加のチップセレクトコマンドを前記バス上に発行しない、項目３９に記載のデバイス。
［項目４１］
前記第２のクロックサイクルは、前記第１のクロックサイクルから１または２クロックであり、かつ、前記遅延間隔は、前記前半のコマンドが受け取られてから、１または２クロックサイクルである、項目３９または４０に記載のデバイス。
［項目４２］
前記第２のクロックサイクルは、前記第１のクロックサイクルから１クロックであり、かつ、前記遅延間隔は、前記チップセレクトコマンドが通常のタイミングモードで受け取られてから、１クロックサイクルである、項目４１に記載のデバイス。
［項目４３］
前記ホストメモリコントローラロジックはさらに、高速タイミングモードを初期化し、
前記高速タイミングモードでは、
前記前半のコマンドおよび前記後半のコマンドは、２クロックサイクルでそれぞれ前記バス上に配置され、
前記チップセレクトコマンドは、前記前半のコマンドが前記バス上に配置されたときの前記第１のクロックサイクルから１クロックサイクルで、前記バス上に配置され、
前記第２のクロックサイクルは、前記第１のクロックサイクルから２クロックであり、かつ、
前記遅延間隔は、２クロックサイクルを有する、項目４２に記載のデバイス。
［項目４４］
前記ホストメモリコントローラロジックはさらに、
前記高速タイミングモードを示すべく、初期化中に前記メモリモジュールをプログラムし、かつ、
前記通常のタイミングモードを示すべく、初期化中に前記メモリモジュールをプログラムする、項目４３に記載のデバイス。
［項目４５］
前記前半のコマンドおよび前記後半のコマンドは、リードコマンドのための１つのアドレスに係る複数の部分を含む、項目３９から４４のいずれか一項に記載のデバイス。
［項目４６］
バスを介して、ホストメモリコントローラと通信するメモリモジュールに実装されるデバイスであって、
前記デバイスは、メモリモジュールコントローラロジックを備えており、
前記メモリモジュールコントローラロジックは、
前記ホストメモリコントローラによって、第１のクロックサイクルでバス上に配置される前半のコマンドのためのチップセレクトコマンドを受信し、
前記チップセレクトコマンドに応答して、前記バス上の前記前半のコマンドを受け取り、かつ、
前記ホストメモリコントローラによって、前記第１のクロックサイクルの後の第２のクロックサイクルで前記バス上に配置される後半のコマンドを受け取る、ためのものであり、
前記第１のクロックサイクルの後の第２のクロックサイクルは、前記前半のコマンドの受け取りからの遅延間隔である、デバイス。
［項目４７］
前記メモリモジュールは、前記ホストメモリコントローラからの追加のチップセレクト信号を自動的に受信することなく、前記バス上の前記後半のコマンドを自動的に受け取る、項目４６に記載のデバイス。
［項目４８］
前記第２のクロックサイクルは、前記第１のクロックサイクルから１または２クロックであり、かつ、前記遅延間隔は、前記チップセレクトコマンドが受け取られてから、１または２クロックサイクルである、項目４６または４７に記載のデバイス。
［項目４９］
前記第２のクロックサイクルは、前記第１のクロックサイクルから１クロックであり、かつ、前記遅延間隔は、前記チップセレクトコマンドが通常のタイミングモードで受け取られてから、１クロックサイクルである、項目４８に記載のデバイス。
［項目５０］
前記メモリモジュールコントローラロジックはさらに、高速タイミングモードを初期化し、
前記高速タイミングモードでは、
前記前半のコマンドおよび前記後半のコマンドは、２クロックサイクルでそれぞれ前記バス上に配置され、
前記チップセレクトコマンドは、前記前半のコマンドが前記バス上に配置されたときの前記第１のクロックサイクルから１クロックサイクルで、前記バス上に配置され、
第２のクロックサイクルは、前記第１のクロックサイクルから２クロックであり、かつ、
前記後半のコマンドを受け取る時を決定するために前記メモリモジュールによって使用される前記遅延間隔は、前記前半のコマンドの受け取りから２クロックサイクルを有する、項目４９に記載のデバイス。
［項目５１］
前記メモリモジュールコントローラロジックはさらに、
前記タイミングモードが前記高速タイミングモードかどうかを決定し、前記タイミングモードが前記高速タイミングモードであるとの決定に応答して、前記高速タイミングモードが初期化され、
前記タイミングモードが前記高速タイミングモードでないとの決定に応答して、前記通常のタイミングモードで動作する、項目５０に記載のデバイス。
［項目５２］
前記前半のコマンドおよび前記後半のコマンドは、リードコマンドのための１つのアドレスに係る複数の部分を含む、項目４６から５１のいずれか一項に記載のデバイス。
［項目５３］
バスを介して、ホストメモリコントローラから送信される複数のコマンド内の複数のアドレスを処理するためのメモリモジュール内のデバイスであって、
前記デバイスは、メモリモジュールコントローラを備えており、
前記メモリモジュールコントローラは、
前記メモリモジュールための複数の高アドレスビットが利用可能かどうかを決定し、
前記メモリモジュール内の第１のアドレス空間を指定するために、前記複数の高アドレスビットが利用可能でないとの決定に応答して、前記ホストメモリコントローラから通信される複数のアドレスを有する、少なくとも１つの高アドレスビットのための予め定められた値を使用し、かつ、
第２のアドレス空間を指定するために、前記複数の高アドレスビットが利用可能であるとの決定に応答して、前記少なくとも１つの高アドレスビットのために使用される、少なくとも１つのピン上の、前記ホストメモリコントローラから通信される複数の値を使用する、ためのものであり、
前記第２のアドレス空間は、前記第１のアドレス空間よりも大きい、デバイス。
［項目５４］
前記メモリモジュールコントローラはさらに、
前記複数の高アドレスビットが利用可能であることを示すコマンドを、前記ホストメモリコントローラから受信し、かつ、
前記複数の高アドレスビットが利用可能であることを示すべく、レジスタを設定し、
前記複数の高アドレスビットが利用可能かどうかの前記決定は、前記レジスタ内の値を読み取ることによってなされる、項目５３に記載のデバイス。
［項目５５］
前記バスの複数の機能のうちの少なくとも１つ、および前記メモリモジュールのインターフェース構成に基づいて、前記複数の高アドレスビットは利用可能でない、項目５４に記載のデバイス。
［項目５６］
前記メモリモジュールが、前記バス上でサポートされるものより少ないアドレス指定のために使用されるピンを有する場合、前記複数の高アドレスビットは利用可能でない、項目５５に記載のデバイス。
［項目５７］
前記メモリモジュールが、Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ  Ｄｕａｌ  Ｉｎ−ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ（ＳＯＤＩＭＭ）を含む場合、前記複数の高アドレスビットは利用可能でない、項目５６に記載のデバイス。
［項目５８］
前記コマンドが、モードレジスタセットコマンド（ＭＲＳコマンド）を含み、かつ、
設定される前記レジスタは、前記ＭＲＳコマンドによって設定される複数のモードレジスタのうちの１つを含む、項目５４に記載のデバイス。
［項目５９］
前記メモリモジュールコントローラは、前記バス上および前記メモリモジュール上で、サポートされる異なる複数のインターフェース構成のための異なる複数のアドレス指定機能をサポートする、項目５３から５８のいずれか一項に記載のデバイス。
［項目６０］
バスを介してメモリモジュールに連結されるデバイスであって、
前記デバイスは、ホストメモリコントローラロジックを備えており、
前記ホストメモリコントローラロジックは、
実行すべき少なくとも１つの電力管理動作を示すプリクロックイネーブル（ＣＫＥ）コマンドを、前記バスを介して、前記メモリモジュールに送信し、かつ、
メモリモジュールコントローラに対し、ＣＫＥロー信号に応答して、示される前記少なくとも１つの電力管理動作を実行させるべく、前記プリクロックイネーブル（ＣＫＥ）コマンドの送信後、前記ＣＫＥロー信号を前記メモリモジュールにアサートする、デバイス。
［項目６１］
前記プリクロックイネーブル（ＣＫＥ）コマンドは、複数の電力管理状態のうちの１つの電力管理状態を示し、
示される前記少なくとも１つの電力管理動作は、前記メモリモジュールを、示される前記１つの電力管理状態に構成すべく実行される複数の動作を含む、項目６０に記載のデバイス。
［項目６２］
前記複数の電力管理状態の各々は、複数の異なるスリープ状態を含み、前記複数の異なるスリープ状態においては、複数の異なるレベルの電力が前記メモリモジュール内の複数の異なるコンポーネントに適用され、
前記ＣＫＥロー信号を送信することは、前記メモリモジュールコントローラに対し、前記プリクロックイネーブル（ＣＫＥ）コマンド内で指定された電力管理スリープ状態に入るための複数の動作を実行させる、項目６１に記載のデバイス。
［項目６３］
バスを介して、ホストメモリコントローラに連結される、メモリモジュールコントローラ内に実装されるデバイスであって、
前記デバイスは、メモリモジュールコントローラロジックを備えており、
前記メモリモジュールコントローラロジックは、
実行すべき少なくとも１つの電力管理動作を示す、プリクロックイネーブル（ＣＫＥ）コマンドを受信し、
前記プリクロックイネーブル（ＣＫＥ）コマンドの受信後、ＣＫＥロー信号を検出し、かつ、
前記ＣＫＥロー信号に応答して、前記プリクロックイネーブル（ＣＫＥ）コマンド内の示される前記少なくとも１つの電力管理動作を実行する、ためのものである、デバイス。
［項目６４］
前記メモリモジュールコントローラロジックはさらに、
前記少なくとも１つの電力管理動作を示すべく、レジスタを設定し、
前記ＣＫＥロー信号に応答して、前記レジスタを読み取ることによって、実行すべき前記少なくとも１つの電力管理動作を決定する、項目６３に記載のデバイス。
［項目６５］
前記メモリモジュールコントローラロジックはさらに、
実行すべき少なくとも１つの電力管理動作を示さない前記レジスタに応答して、既定のＣＫＥロー処理動作を実行する、項目６４に記載のデバイス。
［項目６６］
前記プリクロックイネーブル（ＣＫＥ）コマンドは、複数の電力管理状態のうちの１つの電力管理状態を示し、
実行される前記少なくとも１つの電力管理動作は、前記メモリモジュールを、示される前記１つの電力管理状態に構成すべく実行される複数の動作を含む、項目６３から６５のいずれか一項に記載のデバイス。
［項目６７］
複数の電力管理状態の各々は、複数の異なるスリープ状態を含み、前記複数の異なるスリープ状態においては、複数の異なるレベルの電力が前記メモリモジュール内の複数の異なるコンポーネントに適用され、
示される前記少なくとも１つの電力管理動作を実行することは、前記プリクロックイネーブル（ＣＫＥ）コマンド内で指定された電力管理スリープ状態に入る、項目６３から６６のいずれか一項に記載のデバイス。
［項目６８］
バスを介して、メモリモジュールに連結される、デバイスであって、
前記デバイスは、ホストメモリコントローラを備えており、
前記ホストメモリコントローラは、
前記メモリモジュールから戻されるリードデータパケットが少なくとも１つのライトクレジットを示すかどうかを決定し、かつ、
前記リードデータパケットが少なくとも１つのライトクレジットを示すとの決定に応答して、複数のライトクレジットをインクリメントする、デバイス。
［項目６９］
前記ホストメモリコントローラはさらに、
複数の利用可能なライトクレジットが存在するとの決定に応答して、ライトコマンドを前記メモリモジュールに送信し、かつ、
前記ライトコマンドの送信に応答して、前記複数のライトクレジットをデクリメントする、項目６８に記載のデバイス。
［項目７０］
前記リードデータパケットは、前記メモリモジュール内のデータを読み取るために、前記ホストメモリコントローラが、前記メモリモジュールに送信したリードリクエストに応答して戻される、項目６８または６９に記載のデバイス。
［項目７１］
複数の前記リードデータパケットは、複数のライトクレジットを示す、項目６８から７０のいずれか一項に記載のデバイス。
［項目７２］
バスを介して、ホストメモリコントローラからの複数のライトリクエストを処理するためのメモリモジュール内のデバイスであって、前記デバイスは、
ライトクレジットカウンタと、
メモリモジュールコントローラロジックと、を備えており、
前記メモリモジュールコントローラロジックは、前記ホストメモリコントローラからのライトリクエストの完了に応答して、前記ライトクレジットカウンタをインクリメントし、
前記ホストメモリコントローラからのリードリクエストに応答して、リードデータパケットを生成し、
前記ホストメモリコントローラに戻すための前記リードデータパケット内の前記ライトクレジットカウンタに示される複数のライトクレジットを示すためのものである、デバイス。
［項目７３］
前記メモリモジュールコントローラロジックはさらに、
ライトリクエストのためのライトバッファ内のライトデータを、複数のメモリストレージ要素にデステージすることによって、前記ライトリクエストを完了する、項目７２に記載のデバイス。
［項目７４］
複数のライトクレジットが前記リードデータパケット内に示される、項目７２または７３に記載のデバイス。
［項目７５］
前記メモリモジュールコントローラロジックはさらに、
前記ライトクレジットカウンタが閾値を超えるかどうかを決定し、および、
前記ライトクレジットカウンタが前記閾値を超えるという決定に応答して、前記ライトクレジットカウンタ内に少なくとも１つの前記ライトクレジットを戻すパケットを前記ホストメモリコントローラに送信する、項目７２から７４のいずれか一項に記載のデバイス。
［項目７６］
前記ライトクレジットカウンタが前記閾値を超える場合に、前記ホストに送信される、ライトクレジット数を示す前記パケットは、リードデータを有さないリードデータパケットを含む、項目７５に記載のデバイス。
［項目７７］
バスを介してホストメモリコントローラと通信するメモリモジュール内のデバイスであって、前記デバイスは、メモリモジュールコントローラを備えており、
前記メモリモジュールコントローラは、
エラーの検出に応答して、複数のエラー処理動作が実行されていることを、前記ホストメモリコントローラに対し、シグナリングすべく、第１のエラー信号を前記バス上のエラーピンにアサートし、
エラーの検出に応答して、前記バスを初期状態に戻すべく、複数のエラー処理動作を実行し、かつ、
複数のエラー処理動作が完了し、かつ、前記バスが前記初期状態に戻されたことをシグナリングすべく、第２のエラー信号を前記バス上の前記エラーピンにアサートする、デバイス。
［項目７８］
前記第１のエラー信号は、エラー信号ローを含み、かつ、前記第２のエラー信号は、エラー信号ハイを含む、項目７７に記載のデバイス。
［項目７９］
前記複数のエラー処理動作は、
すべての保留中のリードリクエストを破棄し、
ライトバッファ内の複数のライトを、前記メモリモジュール内の複数のストレージ要素にデステージし、かつ、
複数のメモリモジュールコントローラバッファをリセットする、項目７７または７８に記載のデバイス。
［項目８０］
前記複数のエラー処理動作は、戻すための複数のライトクレジットのためのライトクレジットカウンタをリセットすることを含む、項目７７から７９のいずれか一項に記載のデバイス。
［項目８１］
前記ホストメモリコントローラからの、前記第１のエラー信号が受信されたという受信確認の受信に応答して、前記複数のエラー処理動作が実行される、項目７７から８０のいずれか一項に記載のデバイス。
［項目８２］
バスを介してメモリモジュールに連結されるデバイスであって、
前記デバイスは、ホストメモリコントローラロジックを備えており、
前記ホストメモリコントローラロジックは、
エラーピン上に、前記メモリモジュールからの第１のエラー信号を検出し、
前記第１のエラー信号に応答して、前記メモリモジュールに対する、複数のリードおよびライト動作を中断し、
前記エラーピン上に、前記メモリモジュールからの第２のエラー信号を検出し、かつ、
前記第２のエラー信号の検出に応答して、前記メモリモジュールに対する、複数のリードおよびライト動作を再開する、ためのものである、デバイス。
［項目８３］
前記第１のエラー信号は、エラー信号ローを含み、かつ、前記第２のエラー信号は、エラー信号ハイを含む、項目８２に記載のデバイス。
［項目８４］
前記ホストメモリコントローラロジックはさらに、
前記第１のエラー信号が受信されたという受信確認を前記メモリモジュールに送信し、
前記受信確認の送信に応答して、前記複数のリードおよびライト動作を中断することおよび複数のエラー処理動作を実行することが行われる、項目８２または８３に記載のデバイス。
［項目８５］
前記ホストメモリコントローラロジックはさらに、
前記第１のエラー信号に応答して、複数のライトコマンドの送信可能時を示す複数のライトクレジットを最大量に設定する、項目８２から８４のいずれか一項に記載のデバイス。
［項目８６］
バスを介して、ホストメモリコントローラと通信するメモリモジュール内のデバイスであって、
前記デバイスは、メモリモジュールコントローラロジックを備えており、
前記メモリモジュールコントローラロジックは、
前記メモリモジュール内に、ライトリクエストのためのライトエラーを検出し、かつ、
前記ライトエラーの検出に応答して、前記バス上に、前記ホストメモリコントローラに対するエラー信号をアサートする、デバイス。
［項目８７］
前記エラー信号は、検出された前記ライトエラーに関する、前記ホストメモリコントローラとの唯一の通信である、項目８６に記載のデバイス。
［項目８８］
前記エラー信号は、前記バス上のエラーピン上にアサートされたエラーロー信号を含む、項目８６または８７に記載のデバイス。
［項目８９］
前記ライトリクエストの予め定められた時間内に前記エラー信号を送信しないことは、前記ライトリクエストが正常に完了したことを示す、項目８６から８８のいずれか一項に記載のデバイス。
［項目９０］
バスを介して、メモリモジュールに連結されるデバイスであって、
前記デバイスは、ホストメモリコントローラロジックを備えており、
前記ホストメモリコントローラロジックは、
ライトリクエストを前記メモリモジュールに送信し、
前記メモリモジュールからアサートされたエラー信号を検出し、かつ、
前記ライトリクエストの送信の予め定められた時間内に前記エラー信号を検出することに応答して、前記ライトリクエストを再送信する、デバイス。
［項目９１］
前記エラー信号は、前記バス上のエラーピン上にアサートされたエラーロー信号を含む、項目９０に記載のデバイス。
［項目９２］
前記ホストメモリコントローラロジックはさらに、
前記予め定められた時間後に、前記エラー信号を受信しないことに応答して、前記ライトリクエストを正常に完了したものとして処理する、項目９０または９１に記載のデバイス。
［項目９３］
ライトリクエストエラーに無関係のエラーに対し、前記エラー信号が送信された場合において、前記予め定められた時間内に、前記エラー信号が受信されたときは、前記ライトリクエストが再送信される、項目９０から９２のいずれか一項に記載のデバイス。
［項目９４］
前記ライトリクエストを前記再送信することは、前記エラー信号の前記予め定められた時間内に送信された複数のライトリクエストを決定することを含み、
前記再送信は、決定された前記複数のライトリクエストを再送信することを含む、項目９０から９３のいずれか一項に記載のデバイス。
［項目９５］
前記ホストメモリコントローラロジックはさらに、
前記エラー信号に対し決定された、複数のライトリクエストエラーに無関係のエラー処理動作を実行する、項目９０から９４のいずれか一項に記載のデバイス。
［項目９６］
前記ライトリクエストを再送信することに加え、複数のライトエラーに無関係の前記エラー処理動作が実行される、項目９５に記載のデバイス。
［項目９７］
バスを介してホストメモリコントローラと通信するメモリモジュール内のデバイスであって、前記デバイスは、
スクランブラシードと、
メモリモジュールコントローラロジックと、を備えており、
前記メモリモジュールコントローラロジックは、
リードリクエストに応答して、前記メモリモジュールのストレージ要素に格納されたデータを取得し、
リードデータパケット内に含めるべく、前記スクランブラシードを使用して、取得された前記データをスクランブルし、
スクランブルされた前記データを有する前記リードデータパケットを、前記ホストメモリコントローラに戻し、かつ、
前記スクランブラシードを更新する、ためのものである、デバイス。
［項目９８］
前記スクランブラシードは、前記リードデータパケット内に含まれる前記リードデータのアドレスをスクランブルする、項目９７に記載のデバイス。
［項目９９］
前記スクランブラシードを更新することは、前記スクランブラシードを疑似ランダム方式に更新することを含む、項目９７または９８に記載のデバイス。
［項目１００］
前記メモリモジュールコントローラロジックは、前記リードデータをスクランブルするためのスクランブラアルゴリズムを使用し、
前記スクランブラアルゴリズムは、前記リードデータパケット内のスクランブルされた前記リードデータをスクランブル／デスクランブルするための、前記ホストメモリコントローラにおいて実装された同一のスクランブラ／デスクランブラアルゴリズムを含んでいる、項目９７から９９のいずれか一項に記載のデバイス。
［項目１０１］
前記メモリモジュールコントローラロジックは、
前記メモリモジュール内のライトアドレスを示すスクランブルされたライトデータを有するライトリクエストを受信し、
アンスクランブルされたライトデータを生成すべく、前記ライトアドレスを使用して、スクランブルされた前記ライトデータをデスクランブルし、かつ、
前記メモリモジュール内の前記ライトアドレスに、アンスクランブルされた前記ライトデータを格納する、項目９７から１００のいずれか一項に記載のデバイス。
［項目１０２］
バスを介して、メモリモジュールと通信するデバイスであって、
前記デバイスは、
スクランブラシードと、
ホストメモリコントローラロジックと、を備えており、
前記ホストメモリコントローラロジックは、
リードリクエストに応答して、戻されるスクランブルされたリードデータを有するリードデータパケットを受信し、
前記リードデータパケットの受信に応答して、前記スクランブラシードを更新し、かつ、
スクランブルされた前記リードデータをデスクランブルすべく、前記スクランブラシードを使用する、ためのものである、デバイス。
［項目１０３］
前記リードデータのアドレスが前記リードデータパケット内でスクランブルされており、
スクランブルされた前記リードデータをデスクランブルすることはさらに、前記リードデータパケットが戻されるための前記リードリクエストを決定すべく、スクランブルされた前記アドレスをデスクランブルすることを含む、項目１０２に記載のデバイス。
［項目１０４］
前記スクランブラシードを更新することは、前記スクランブラシードを疑似ランダム方式に更新することを含む、項目１０３に記載のデバイス。
［項目１０５］
前記ホストメモリコントローラロジックは、前記リードデータをスクランブルすべく、スクランブラアルゴリズムを使用し、
前記スクランブラアルゴリズムは、前記リードデータパケット内のスクランブルされた前記リードデータをスクランブル／デスクランブルするための、前記ホストメモリコントローラにおいて実装された同一のスクランブラ／デスクランブラアルゴリズムを含む、項目１０２から１０４のいずれか一項に記載のデバイス。
［項目１０６］
バスを介してホストメモリコントローラと通信するメモリモジュール内のデバイスであって、
前記デバイスは、メモリモジュールコントローラロジックを備えており、
前記メモリモジュールコントローラロジックは、
第１のインターフェースパラメータを示すインターフェースパラメータに応答して、前記バスを介してデータを送信するために使用する第１のバス幅を有する第１のバスインターフェース構成を選択し、かつ、
第２のインターフェースパラメータを示す前記インターフェースパラメータに応答して、前記バスを介してデータを送信するために使用する第２のバス幅を有する第２のバスインターフェース構成を選択するためのものであり、
前記第１のバス幅は、前記第２のバス幅より、さらに少ない複数のビットを有する、デバイス。
［項目１０７］
前記メモリモジュールコントローラロジックはさらに、
前記第１のインターフェースパラメータを示す前記インターフェースパラメータに応答して、転送リクエストを実行すべく、前記第１のバスインターフェース構成のための第１の転送数を生成し、
前記第２のインターフェースパラメータを示す前記インターフェースパラメータに応答して、前記転送リクエストを実行すべく、前記第１のバスインターフェース構成のための第２の転送数を生成し、
前記第１の転送数は、前記第２の転送数より大きい、項目１０６に記載のデバイス。
［項目１０８］
前記メモリモジュールコントローラロジックはさらに、
第３のインターフェースパラメータを示すインターフェースパラメータに応答して、前記バスを介してデータを送信するために使用する第３のバス幅を有する第３のバスインターフェース構成を選択し、
前記第２のバス幅は、前記第３のバス幅より、さらに少ない複数のビットを有する、項目１０６または１０７に記載のデバイス。
［項目１０９］
前記第１のバス幅は９ビット、前記第２のバス幅は１８ビット、および前記第３のバス幅は７２ビットを含む、項目１０８に記載のデバイス。
［項目１１０］
前記メモリモジュールコントローラロジックはさらに、
前記バス上の、受信された少なくとも１つの信号に基づいて、前記インターフェースパラメータを設定する、項目１０６から１０９のいずれか一項に記載のデバイス。
［項目１１１］
前記メモリモジュールコントローラロジックはさらに、
前記バスにアクセスすることによって、前記バスのバス幅を決定し、
前記インターフェースパラメータは、決定された前記バス幅を示す、項目１０６から１１０のいずれか一項に記載のデバイス。
［項目１１２］
前記メモリモジュールコントローラロジックはさらに、
少なくとも１つのストラッピングピン上にアサートされた信号に基づいて、前記インターフェースパラメータを設定し、
前記少なくとも１つのストラッピングピンは前記バスの外部にあり、前記メモリモジュールに連結されており、前記バスの前記第１のバスインターフェース構成および前記第２のバスインターフェース構成の少なくとも１つを示す、項目１０６から１１１のいずれか一項に記載のデバイス。
【図１】
0006370958.tif 000002
【図２】
0006370958.tif 000003
【図３】
0006370958.tif 000004
【図４】
0006370958.tif 000005
【図５】
0006370958.tif 000006
【図６】
0006370958.tif 000007
【図７】
0006370958.tif 000008
【図８】
0006370958.tif 000009
【図９】
0006370958.tif 000010
【図１０】
0006370958.tif 000011
【図１１】
0006370958.tif 000012
【図１２】
0006370958.tif 000013
【図１３】
0006370958.tif 000014
【図１４】
0006370958.tif 000015
【図１５】
0006370958.tif 000016
【図１６】
0006370958.tif 000017
【図１７】
0006370958.tif 000018
【図１８】
0006370958.tif 000019
【図１９】
0006370958.tif 000020
【図２０】
0006370958.tif 000021
【図２１】
0006370958.tif 000022
【図２２】
0006370958.tif 000023
【図２３】
0006370958.tif 000024