JP2017162492A - device - Google Patents
device Download PDFInfo
- Publication number
- JP2017162492A JP2017162492A JP2017087729A JP2017087729A JP2017162492A JP 2017162492 A JP2017162492 A JP 2017162492A JP 2017087729 A JP2017087729 A JP 2017087729A JP 2017087729 A JP2017087729 A JP 2017087729A JP 2017162492 A JP2017162492 A JP 2017162492A
- Authority
- JP
- Japan
- Prior art keywords
- pulse width
- memory module
- request signal
- controller
- memory controller
- 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
Links
Images
Abstract
Description
本明細書に記載された複数の実施形態は、概して、単一のチャネルまたはバス上で、ホストメモリコントローラが、当該チャネルおよびホストメモリコントローラに連結された複数のスロットと互換性のあるピンレイアウトを有する複数のメモリモジュールと通信するメモリシステムに関する。ホストメモリコントローラは、チャネルに連結された複数のメモリモジュールによって使用されるプロトコル、例えば、Double Data Rate Third Generation(DDR3)プロトコルをサポートする。複数の異なるタイプのDual In−Line Memory Module(DIMM)の場合のように、DIMM等の複数のメモリモジュールがバス上にデータを出力するにあたり複数の異なるタイミングを有する場合、ホストメモリコントローラは、異なる複数の連結されたDIMMの間で、それらのタイミングの差異に対し、調整する必要がある。ホストメモリコントローラは、複数の単一のサイクルコマンドを通信することができる。 Embodiments described herein generally have a pin layout on a single channel or bus in which the host memory controller is compatible with multiple slots coupled to the channel and the host memory controller. The present invention relates to a memory system that communicates with a plurality of memory modules. The host memory controller supports a protocol used by a plurality of memory modules coupled to the channel, for example, a Double Data Rate Third Generation (DDR3) protocol. The host memory controller is different when multiple memory modules, such as DIMMs, have multiple different timings for outputting data on the bus, as in the case of multiple different types of dual in-line memory modules (DIMMs). There is a need to adjust for differences in timing among multiple concatenated DIMMs. The host memory controller can communicate multiple single cycle commands.
バスを使用する前に、ホストメモリコントローラは、複数のメモリモジュールを複数の動作のために構成する必要がある。DDR3プロトコルでは、ホストメモリコントローラは、モードレジスタセット(MRS)コマンドを使用して、メモリモジュールパッケージ上の複数のダイナミックランダムアクセスメモリ(DRAM)チップ等の複数のメモリチップ内の最大8つのモードレジスタをプログラムできる。MRSコマンドは、メモリチップ上のモードレジスタを識別し、データが反転されたかどうかを示す反転ビットを含む。バスが整備された後、次にホストメモリコントローラは、リードおよびライトコマンドのために、およびデータを転送するために、バスを使用し得る。 Prior to using the bus, the host memory controller needs to configure multiple memory modules for multiple operations. In the DDR3 protocol, the host memory controller uses a mode register set (MRS) command to store up to eight mode registers in multiple memory chips, such as multiple dynamic random access memory (DRAM) chips on a memory module package. Can be programmed. The MRS command identifies the mode register on the memory chip and includes an inversion bit that indicates whether the data has been inverted. After the bus is serviced, the host memory controller can then use the bus for read and write commands and to transfer data.
複数のコマンドは、1コマンドにつき、1ビット/レーンで送信され得る。例えば、1Nタイミング等の通常のタイミングモード中、チップセレクト信号が、コマンドのサイクルでバスに配置され、選択されたメモリモジュールに対し、コマンドを受け取るようにさせる。2Nタイミング等の複数の高速動作中、コマンドが追加のセットアップタイムを許容する1クロックサイクル前に、ホストメモリコントローラは、バス上にチップセレクト信号を配置する。 Multiple commands may be transmitted at 1 bit / lane per command. For example, during a normal timing mode such as 1N timing, a chip select signal is placed on the bus in a command cycle to cause the selected memory module to receive the command. During multiple high speed operations such as 2N timing, the host memory controller places a chip select signal on the bus one clock cycle before the command allows additional setup time.
メモリモジュール内の複数の内部クロック信号を管理すべく、クロックイネーブル信号が使用され得る。クロックイネーブル(CKE)ハイ信号は、複数の内部クロック信号をアクティブ化し、かつ、リードおよびライトアクセス中、ハイに維持される。メモリモジュールに対するCKEロー信号は、複数の内部クロック信号、複数のデバイス入力バッファおよび複数の出力ドライバを非アクティブ化する。複数のCKEロー信号を採用することで、パワーダウンさせ、複数の動作をリフレッシュさせる。 A clock enable signal may be used to manage multiple internal clock signals within the memory module. The clock enable (CKE) high signal activates multiple internal clock signals and remains high during read and write accesses. The CKE low signal for the memory module deactivates the multiple internal clock signals, the multiple device input buffers, and the multiple output drivers. By adopting a plurality of CKE low signals, the power is reduced and a plurality of operations are refreshed.
ホストメモリコントローラからメモリモジュールへ、複数のライトが通信される場合、メモリモジュールにおける複数のライトは、複数のメモリチップに直接書き込まれ得る。しかしながら、ライトバッファを有する複数のメモリモジュール内では、クレジットシステムが実装可能である。そこでは、ホストメモリコントローラに、ライトクレジットの最大数が割り当てられ、複数の利用可能なライトクレジットが存在しなければ、ライトコマンドを送信できない。ライトコマンドを送信すると、複数のライトクレジットはデクリメントされる。各ライトが、クレジットをホストメモリコントローラに戻すのを完了したとき、メモリモジュールは、バスを介してメッセージを送信する。それにより、メッセージが受信されると、ライトクレジットカウンタをインクリメントする。 When multiple writes are communicated from the host memory controller to the memory module, the multiple writes in the memory module can be written directly to the multiple memory chips. However, a credit system can be implemented in a plurality of memory modules having a write buffer. There, the maximum number of write credits is allocated to the host memory controller, and a write command cannot be transmitted unless there are a plurality of available write credits. When the write command is transmitted, the plurality of write credits are decremented. When each write completes returning credit to the host memory controller, the memory module sends a message over the bus. Thereby, when the message is received, the write credit counter is incremented.
リードおよびライトリクエストの送信時、複雑なパターンを通信するのを回避すべく、現行の複数のホストメモリコントローラは、バス上でエラーを引き起こし得る、複雑なパターンを繰り返し生成する確率を減らすために、データをスクランブルし得る。ライトアドレスを備える、スクランブルされたライトデータを受信すると、メモリモジュールは、スクランブルされたライトデータをライトアドレスに格納する。リードリクエストに応答して、スクランブルされたデータが格納され、バスを介してホストメモリコントローラに送信され、デスクランブルされ、使用される。 To avoid communicating complex patterns when sending read and write requests, current host memory controllers can reduce the probability of repeatedly generating complex patterns that can cause errors on the bus. Data can be scrambled. Upon receiving scrambled write data with a write address, the memory module stores the scrambled write data at the write address. In response to the read request, the scrambled data is stored, transmitted to the host memory controller via the bus, descrambled, and used.
複数の添付図面を参照しつつ、例示目的で複数の実施形態が記載される。図面は正確な縮尺率ではなく、複数の同一の参照番号は、複数の同様の要素を指す。 Embodiments will now be described for purposes of illustration with reference to the accompanying drawings. The drawings are not to scale and like reference numerals refer to like elements.
以下の詳細な説明には、本願発明のより完全な理解を提供すべく、多くの具体的な詳細が記載されている。それらは例えば、複数のロジック実装、複数の演算コード、複数のオペランドを指定する手段、リソースパーティショニング/共有/重複の複数の実装、複数のシステムコンポーネントに係る複数のタイプおよび相互関係、およびロジックパーティショニング/統合の複数の選択肢である。しかしながら、本発明は、これらの具体的な詳細がなくても実施可能であることは当業者にとって明白である。他の複数の例において、本発明を不明確にするのを回避すべく、複数の制御構造、複数のゲートレベル回路、および複数の完全なソフトウェア命令シーケンスは、詳細に示されていない。詳細な説明を読んだ当業者であれば、何度も実験を繰り返さなくても、適切な機能を実装できるであろう。 In the following detailed description, numerous specific details are set forth in order to provide a more thorough understanding of the present invention. They include, for example, multiple logic implementations, multiple opcodes, means for specifying multiple operands, multiple implementations of resource partitioning / sharing / duplication, multiple types and relationships for multiple system components, and logic parties There are multiple options for shoting / integration. However, it will be apparent to those skilled in the art that the present invention may be practiced without these specific details. In other instances, multiple control structures, multiple gate level circuits, and multiple complete software instruction sequences have not been shown in detail in order to avoid obscuring the present invention. Those skilled in the art who have read the detailed description will be able to implement the appropriate functionality without having to repeat experiments.
本明細書における「一実施形態」、「ある実施形態」、「例示的な実施形態」等の複数の記載は、記載された実施形態が、特定の機能、構造または特性を含む場合があるが、各実施形態が必ずしもその特定の機能、構造または特性を含むものではないことを示す。さらに、そのような複数の用語は、必ずしも同一の実施形態を意味するものではない。 References herein to “one embodiment”, “an embodiment”, “an exemplary embodiment”, and the like indicate that the described embodiment may include particular features, structures, or characteristics. , Indicates that each embodiment does not necessarily include that particular function, structure, or characteristic. Moreover, such terms are not necessarily referring to the same embodiment.
以下の詳細な説明および特許請求の範囲において、用語「連結された」および「接続された」が、それらの派生語とともに使用され得る。これらの用語は、相互に同義語であることを意図するものではないことが理解されるべきである。「連結された」は、互いに直接物理的または電気的に接触していてもしていなくてもよい、2または2より多い要素が、互いに連携または対話することを示すために使用される。「接続された」は、互いに連結された2または2より多い要素の間で通信を確立させることを示すのに用いられる。複数の特定の実施形態は、複数のメモリデバイスの複数の電子アセンブリに関する。複数の実施形態は、複数の電子アセンブリを形成するための複数のデバイスおよび方法の両方を含む。 In the following detailed description and claims, the terms “coupled” and “connected” may be used with their derivatives. It should be understood that these terms are not intended as synonyms for each other. “Coupled” is used to indicate that two or more elements, which may or may not be in direct physical or electrical contact with each other, cooperate or interact with each other. “Connected” is used to indicate that communication is established between two or more elements coupled together. Certain embodiments relate to a plurality of electronic assemblies of a plurality of memory devices. Embodiments include both a plurality of devices and methods for forming a plurality of electronic assemblies.
図1は、通常マザーボードに搭載される、1または複数のプロセッサ4、ホストメモリコントローラ6および複数のメモリモジュール8a、8bを含む、コンピューティングシステム2に係る一実施形態を示す。複数のプロセッサ4は、中央処理装置、マルチコアプロセッサを備えてよい。ホストメモリコントローラ6は、複数のプロセッサ4からの複数のメモリアクセスリクエストに応答して、チャネル、バスインターフェース等とも言われるバス10を介して、複数のメモリモジュール8a、8bと通信する。ここでは、メモリモジュール8a、8bの両方は、別個かつ独立的に、同一のバス10に接続されている。ホストメモリコントローラ6は、リクエストカウンタ7、ライトクレジットカウンタ9、およびスクランブルシード値11を含んでよい。リクエストカウンタ7は、リクエストカウンタ7で示されるリクエスト数に基づいて、後に複数のグラントを発行する際に使用する、グラントのためのリクエスト信号を受信するとき、インクリメントされる。ライトクレジットカウンタ9は、メモリモジュール8a、8bの1つに、複数のライトリクエストが送信されることを許可する、多数または複数のクレジットを示す。スクランブルシード値11は、メモリモジュール8a、8bの1つからのリードリクエストされたデータをデスクランブルするのに使用される。
FIG. 1 shows an embodiment of a
図1の実施形態において、メモリモジュール8a、8bは、システム2のマザーボード上の複数のスロットまたはメモリソケットに搭載される。メモリモジュール8a、8bは、マザーボード上の複数のメモリスロット内のピン配置と互換性のあるピン配置を有する、同一または異なるタイプの複数のメモリモジュールを備えてよい。さらに、複数のメモリモジュールは、Double Data Rate Fourth Generation(DDR4)プロトコルおよび追加の複数のプロトコル等の、同一または異なる複数のメモリプロトコルをサポートしてよい。2つのメモリモジュール8a、8bのみが示されているが、複数のメモリモジュールが存在してよい。
In the embodiment of FIG. 1, the
メモリモジュール8a、8bの各々は、データを格納するためのメモリチップ12a、14a、16a、18aおよび12b、14b、16b、18bをそれぞれ、メモリモジュールの一方または両方の側に含む。メモリモジュール8a、8bパッケージの一方または両方の側に配置される、複数のDRAMチップ等の複数のメモリチップは、プロセッサ4によって使用されているデータを格納する複数のストレージ要素を備える。
Each of the
各メモリモジュール8a、8bは、ホストメモリコントローラ6とのメモリ管理および複数のアクセス動作を調整するためのメモリモジュールコントローラ20a、20bを含んでよい。ホストメモリコントローラ6は、バス10に接続されたメモリモジュール8a、8bに対する、複数のリードおよびライト動作並びに複数のメモリ管理動作を管理するため、およびプロセッサ4をメモリモジュール8a、8bに対しやり取りさせるためのロジックを含む。ホストメモリコントローラ6は、プロセッサ4と統合されてよく、あるいはシステム2のマザーボード上のプロセッサ4とは分離したロジックに実装されてよい。
Each
異なるタイプのメモリモジュール8a、8bが複数のメモリソケット内のピンアーキテクチャと互換性がある限り、システム2のマザーボードは、異なる複数のタイプのメモリチップと互換性のあるメモリソケットを含んでよく、異なる複数のタイプのメモリプロトコルをサポートする異なる複数のタイプのメモリデバイスをサポートする異なるタイプのメモリモジュール8a、8bを許容する。
As long as different types of
一実施形態において、メモリモジュール8a、8bは、同一または異なるタイプのダイナミックランダムアクセスメモリ(DRAM)を備えてよい。一実施形態において、メモリモジュール8a、8bは、アンバッファードDIMM(UDIMM)、Load Reduced Dual−inline Memory Module(LRDIMM)、Small Outline Dual In−line Memory Module(SODIMM)等のDual In−Line Memory Module(DIMM)を備えてよい。メモリモジュール8a、8bは、様々な形態のメモリを実装してよく、限定はされないがそれらには、NAND型(フラッシュ)メモリ、強誘電体RAM(FeTRAM)、ナノワイヤーベースの不揮発性メモリ、相変化メモリ(PCM)等の3次元(3D)クロスポイントメモリ、メモリスタ技術を組み込むメモリ、磁気抵抗ランダムアクセスメモリ(MRAM)、Spin Transfer Torque(STT)−MRAM等を含む。
In one embodiment, the
特定の複数の実施形態において、複数の異なるタイプのメモリモジュール8a、8bが搭載され、バス10に接続され得るので、メモリモジュール8a、8bは、複数の異なるプロトコルをサポートしてよい。例えば、メモリモジュール8aは、Double Data Rate Fourth Generation(DDR4)Static DRAM(SDRAM)プロトコルに適合するタイプのDIMMを備えてよく、メモリモジュール8bは、同一のバス10上で、DDR4プロトコルを使用するメモリモジュール8aと互換性のある異なるプロトコルを使用してよい。複数の代替的および異なるプロトコルも、メモリモジュール8a、8b内で使用および実装されてよい。
In certain embodiments,
メモリモジュール8a、8bが、複数の異なるDRAMプロトコルをサポートする場合、メモリモジュール8aに特有の第1のプロトコルとしてDDR4等、およびメモリモジュール8bに特有の第2のメモリプロトコルといったように、ホストメモリコントローラ6は複数の異なるプロトコルを使用して、バス10を介して通信するよう構成される。メモリモジュール8aに対するリードリクエストおよび管理リクエストは、第1のメモリプロトコルを用いて、第2のメモリモジュール8bに対しては第2のメモリプロトコルを用いて実装される。
When the
図2は、メモリモジュール8a、8b等のメモリモジュール8の一実施形態のさらなる詳細を提供するものであり、複数のメモリモジュール動作およびホストメモリコントローラ6との複数の対話を実行するメモリモジュールコントローラ20を含むものとして示される。複数の特定の実装において、複数のメモリモジュールのうち一方、例えば8bは、図2のメモリモジュールを含んでよく、8a等の他方のメモリモジュール、例えば、DDR4規格に適合するメモリモジュール8a等はメモリモジュールコントローラ20を含まなくてよい。そのような複数の実施形態においては、RDIMMまたはバッファの場合のように、LRDIMMの場合のように、メモリモジュール8aはレジスタを含んでよい。
FIG. 2 provides further details of one embodiment of
メモリモジュール8は、メモリモジュールコントローラ内の複数のモードレジスタ22、リードバッファ24、電力管理動作レジスタ26、ライトバッファ28、ライトクレジットカウンタ30、スクランブルシード値32、およびインターフェースパラメータ34を含んでよい。複数のモードレジスタ22は、メモリモジュールコントローラ内で、モードレジスタセット(MRS)コマンドを使用して構成可能なデータを有する。リードバッファ24は、リードコマンドに応答して、ホストメモリコントローラ6に戻されているリードデータをバッファするためのものである。電力管理動作レジスタ26は、実行すべき複数の電力管理動作を示すものである。ライトバッファ28は、メモリチップ12、14、16、18に書き込まれる前にライトデータをバッファするためのものである。ライトクレジットカウンタ30は、ホストメモリコントローラ6に戻す多数のライトクレジットを示すものである。スクランブルシード値32は、バス10を介してホストメモリコントローラ6に転送されるリードデータをランダム化するのに使用されるものである。インターフェースパラメータ34は、バス10のサポートされるインターフェース構成を識別するものである。複数のバッファおよび複数のパラメータ24、26、28、30、32および34は、メモリモジュールコントローラ20内、あるいはメモリモジュール8内のメモリモジュールコントローラ20の外部にある回路内に実装されてよい。特定の複数のパラメータ26、30、32および34はモードレジスタ22内に実装されてよい。
The
特定の複数の実施形態において、メモリモジュール8aは、メモリモジュール8bを含むファーメモリのためのキャッシングレイヤとして構成されるニアメモリを備えてよい。そのような構成では、ニアメモリモジュール8aは、特定のファーメモリモジュール8bがキャッシュするよう設計された、最も頻繁にアクセスされる複数のシステムメモリアドレスのアクセス時間を減らす効果を有するべきである。複数のニアメモリデバイスは、それらの対応するファーメモリのためのダイレクトマップ方式のキャッシュとして構成されてよい。
In certain embodiments, the
メモリモジュールコントローラ20およびホストメモリコントローラ6の記載された複数の実施形態は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)等のハードウェアロジックにエンコードされてよい。
The described embodiments of the
本願発明の複数の実施形態に係る複数の構成要素は、複数の機械実行可能命令を格納する機械可読媒体としても提供され得る。機械可読媒体は、限定はされないが、フラッシュメモリ、複数の光ディスク、リード専用コンパクトディスク(CD−ROM)、Digital Versatile/Video Disk(DVD)ROM、ランダムアクセスメモリ(RAM)、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、磁気若しくは光カード、伝播媒体、または複数の電子的命令を格納するのに好適な他のタイプの機械可読媒体を含んでよい。例えば、本発明の複数の実施形態は、リモートコンピュータ(サーバ等)から、リクエストするコンピュータ(クライアント等)に、ネットワーク送信を介して転送され得る、コンピュータプログラムとしてダウンロードされてよい。 A plurality of components according to embodiments of the present invention may also be provided as a machine readable medium storing a plurality of machine executable instructions. Machine-readable media include, but are not limited to, flash memory, multiple optical disks, read-only compact disks (CD-ROM), Digital Versatile / Video Disk (DVD) ROM, random access memory (RAM), erasable programmable ROM (EPROM) ), An electrically erasable programmable ROM (EEPROM), a magnetic or optical card, a propagation medium, or other type of machine-readable medium suitable for storing a plurality of electronic instructions. For example, embodiments of the present invention may be downloaded as a computer program that can be transferred from a remote computer (such as a server) to a requesting computer (such as a client) via a network transmission.
図3は、ホストメモリコントローラ6、複数のバス10のラインおよびメモリモジュール8a、8bを有するメモリモジュール8a、8b上の複数のピンの配置を示す。このような複数のピン指定については、以下に記載されるか、または当技術分野において既知である。
FIG. 3 shows the arrangement of a plurality of pins on a
[リクエスト信号内の複数のファンクションのエンコーディング]
特定の複数の実施形態において、ホストメモリコントローラ6がリードコマンドの一部として戻すべきデータがリードバッファ24内にあることを示すべく、メモリモジュールコントローラ20は、REQ#50等のリクエスト信号をホストメモリコントローラ6に送信してよい。リクエスト信号は、図3のピンアウトダイアグラムに示される、REQ#クロックイネーブル(CKE)信号50を備えてよい。メモリモジュールコントローラ18は、ホストメモリコントローラ6による検出を保証すべく、最小パルス幅でリクエスト信号を送信してよく、これは、複数の特定の実装において、2クロックサイクルを備えてよい。メモリモジュールコントローラ20はさらに、ホストメモリコントローラ6が実行する追加のファンクションをリクエスト信号内にエンコードしてよい。単一の信号内における動作数および通信される情報を最大化すべく、複数の追加のファンクションをリクエスト信号内にエンコーディングすることによって、複数のファンクションが1つの信号内で示され得る。
[Encoding of multiple functions in the request signal]
In certain embodiments, the
図4は、複数の追加のファンクションをホストメモリコントローラ6に通信すべくリクエスト信号を使用する、ホストメモリコントローラ6およびメモリモジュールコントローラ20によって実行される複数の動作の一実施形態を示す。リードバッファ24からホストメモリコントローラ6へデータを転送し返す、リードコマンドの一部であり得る、リクエスト信号を生成する動作の初期化時(ブロック100)において、メモリモジュールコントローラ20はリクエスト信号とともに含むファンクションを決定する(ブロック102において)。そのようなファンクションは、特定のエラー条件若しくは割り込み若しくは他の複数のファンクションといった、ホストメモリコントローラ6が実行すべき複数の追加の動作を示してよい。次に、メモリモジュールコントローラ20は、決定されたファンクションを示す、またはエンコードするために使用されるパルス幅を決定する(ブロック104において)。例えば、ホストメモリコントローラ6によるリクエスト信号の検出を保証すべく、最小パルス幅に等しいパルス幅が使用され、第1のファンクションを示すまたはエンコードしてよく、最小パルス幅より大きい追加の複数のパルス幅が使用され、複数の追加のファンクションを示してよい。例えば、検出を保証するための最小パルス幅が2クロックの場合、リクエスト信号のためのこの最小パルス幅は、1つのファンクションを示してよく、パルス幅6、10、14は、さらなる追加の複数の異なるファンクションを示してよい。パルス幅14は、壊滅的な故障を示してよい。さらに、ホストメモリコントローラ6によるパルス幅の適切な検出を保証すべく、複数の異なるファンクションに関連付けられたリクエスト信号のための複数の異なるパルス幅は、特定の複数の実施形態において、3サイクルのように、クロックサイクルの最小数で分割されてよい。メモリモジュールコントローラ20は、ホストメモリコントローラ6に送信するための、決定されたパルス幅を有するリクエスト信号を生成する(ブロック106において)。
FIG. 4 illustrates one embodiment of operations performed by the
2クロック等の最小または第1のパルス幅を有するピン50上のリクエスト信号REQ0#を検出すると(ブロック108において)、ホストメモリコントローラ6は、リクエスト信号を送信するメモリモジュール8bに対し送信される必要のある多数のグラント信号を示すリクエストカウンタ7をインクリメントする(ブロック110において)。リクエストカウンタ7をインクリメント後、ホストメモリコントローラ6は、リクエストカウンタ7内で示される複数のリクエストが、異なる複数のランダムな時間においてバッチ処理されるよう、複数のグラントリクエストを発行するためのバス10、すなわちデータバス上のスロットが利用可能になるまで待機してよい。グラント信号を受信すると、メモリモジュールコントローラ20は、ホストメモリコントローラ6からのリードリクエストに応答して、収集およびバッファされたデータ等、リードバッファ24内にあるデータをホストメモリコントローラ6に送信(ブロック112において)する。
Upon detecting the request signal REQ0 # on
リクエスト信号50の最小または第1のパルス幅を決定後、リクエスト信号50が測定された最小パルス幅を超えて継続しない場合(ブロック114において)、制御は終了する。あるいは、(ブロック116において)測定されたリクエスト信号が6クロック等の第2のパルス幅を超えて継続しない場合、ホストメモリコントローラ6は、その第2のパルス幅に関連付けられた第2のファンクションを実行してよい(ブロック118において)。あるいは、(ブロック120において)リクエスト信号50が測定された10クロック等の第3のパルス幅を超えて継続しない場合、ホストメモリコントローラ6は、その第3のパルス幅に関連付けられた第3のファンクションを実行してよい(ブロック122において)。パルス幅が継続し、14クロック等の第4のパルス幅が測定される場合(ブロック124において)、ホストメモリコントローラ6は、ホストメモリコントローラ6が実行すべき壊滅的なエラー処理を実行してよい(ブロック126において)。
After determining the minimum or first pulse width of the
記載された複数の実施形態は、リクエスト信号の4つの異なるパルス幅に対する4つのファンクションに関するものであるが、複数の特定の実装においては、4つより多いまたは少ないパルス幅によって示される4つより多いまたは少ないファンクションがあり得る。さらに、1つのパルス幅は、実行すべき一連の複数のファンクションを示してよい。 The described embodiments relate to four functions for four different pulse widths of the request signal, but in specific implementations, more than four as indicated by more or less than four pulse widths. Or there can be fewer functions. Furthermore, one pulse width may indicate a series of functions to be performed.
図4の複数の動作において、初期のリクエストグラントファンクションを超える複数のファンクションは、そのパルス幅がそれらの追加のファンクションに関連付けられたパルス幅を超えて継続しないと決定された後に、処理されるのみである。代替の実施形態において、そのパルス幅がその測定されたパルス幅を超えて継続する場合であっても、各追加のファンクションは、そのファンクションに関連付けられたパルス幅を測定したときに実行してよい。よって、パルス幅の複数の測定値がトリガパルス幅を超えるとき、各ファンクションが実行される。 In the operations of FIG. 4, functions that exceed the initial request grant function are only processed after it has been determined that the pulse width does not continue beyond the pulse width associated with those additional functions. It is. In an alternative embodiment, each additional function may be performed when measuring the pulse width associated with the function, even if the pulse width continues beyond the measured pulse width. . Therefore, each function is executed when a plurality of measured values of the pulse width exceed the trigger pulse width.
図4の記載された実施形態では、ホストメモリコントローラ6による、パルス幅の検出を保証する最小クロック数によって分割され得る、メモリモジュールコントローラ用の複数の異なるパルス幅を使用することによって、複数の異なるファンクションがメモリモジュールコントローラ20によってリクエスト信号にエンコードされてよい。このように、単一のリクエスト信号で、メモリモジュールコントローラ20は、リードバッファ24からのデータを戻すためのリクエスト等のリクエスト信号、および複数の異なるファンクションの1つをシグナリングしてよい。
In the described embodiment of FIG. 4, by using different pulse widths for the memory module controller that can be divided by the minimum number of clocks that guarantees detection of the pulse width by the
[第2のメモリモジュールとの複数のコンポーネントの差異に基づいて、第1のメモリモジュールからの出力タイミングを調整して、第2のメモリモジュールからのタイミングを一致させる]
複数の特定の実装において、メモリモジュール8aおよび8bは、複数の異なるコンポーネントを有する、複数の異なるタイプのメモリモジュールを備えてよい。例えば、メモリモジュール8aは、メモリモジュール8b内に含まれない複数のレジスタおよび複数のデータバッファを含んでも含まなくてもよく、逆も同様である。メモリモジュール8a、8bは複数の異なるメモリプロトコルをサポートしてよい。記載された複数の実施形態は、一方のメモリモジュール、例えば8bがそのタイミングを調整して、他方のメモリモジュール、例えば8aのタイミングに一致させる複数の技術を提供する。その結果、ホストメモリコントローラ6は、複数の異なるタイプのDIMM等の複数の異なるメモリモジュールからの複数の異なるタイミングに調整する必要がない。メモリモジュールコントローラ20a、20bに複数のタイミング調整を処理させることによって、ホストメモリコントローラにおける過度の複数のターンアラウンドサイクルおよび性能損失が回避される。
[Adjusting the output timing from the first memory module based on the difference of the plurality of components from the second memory module to match the timing from the second memory module]
In some specific implementations, the
図5は、メモリモジュールコントローラ20b等のメモリモジュールコントローラ20によって実行される、バス10上の他方のメモリモジュール8a、8bとの複数のコンポーネントの差異に基づいて、出力タイミングを調整する、複数の動作に係る一実施形態を示す。データバッファ24からのデータを出力する動作を初期化すると(ブロック200において)、メモリモジュールコントローラ20bは、チャネル上のメモリモジュール8a、8bのうちの少なくとも1つにある、少なくとも1つのコンポーネントに基づいて、タイミング調整を決定する(ブロック202において)。ブロック204〜208は、タイミング調整を決定するための複数の動作に係る一実施形態を提供する。メモリモジュールコントローラ20bは、他方の第2のメモリモジュール8aに含まれない、出力タイミングに影響を及ぼす少なくとも1つのコンポーネントを有する第1のメモリモジュール8bに応答して、そのタイミングを加速させてよい(ブロック204において)。さらに、第1のメモリモジュール8bに含まれない、第2のメモリモジュール8aにおける出力タイミングに影響を及ぼす少なくとも1つのコンポーネントを有する、バス10上の他方の第2のメモリモジュール8aに応答して、タイミングに遅延が追加されてよい(ブロック206において)。
FIG. 5 shows a plurality of operations for adjusting the output timing based on the difference in the plurality of components from the
次に、メモリモジュールコントローラ20bは、追加された任意の遅延またはタイミングの加速から、正味のタイミング調整を決定してよい(ブロック208において)。メモリモジュールコントローラ20bは、第2のメモリモジュール8aの出力タイミングに一致させるべく、決定されたタイミング調整に基づいて、データバッファ24からホストメモリコントローラ6への出力タイミングを調整する(ブロック210において)。
The memory module controller 20b may then determine a net timing adjustment (at block 208) from any added delay or timing acceleration. The memory module controller 20b adjusts the output timing from the
例えば、複数の計算を実行するコントローラ8bを含むメモリモジュール8bが、他方のメモリモジュール8aにないデータバッファ24を含む場合、他方の第2のメモリモジュール8aが第1のメモリモジュール8bに含まれるようなデータバッファを含まないとき、タイミング調整は、出力タイミングの加速を含んでよい。別の実装において、RDIMMの場合のように、他方のメモリモジュール8aが、メモリモジュール8bに含まれない、計算を実行するレジスタを有する場合、メモリモジュール8bに含まれない、他方のメモリモジュール8a内の計算を行うレジスタに合わせるべく、タイミング調整は、出力タイミングを遅延させることを含む。データバッファ24のためのタイミングの加速が、他方のメモリモジュール8a内のレジスタのために追加された遅延より大きい場合、正味のタイミング調整は、タイミングの加速を含む。同様に、追加された遅延が加速より大きい場合、正味の調整は、タイミングに遅延を追加することを含む。複数の計算を行うメモリモジュール8bが、他方のメモリモジュールに含まれる複数のレジスタまたは複数のデータバッファ24を含まない場合、例えば、他方のメモリモジュール8aがRDIMMおよびLRDIMMの場合、メモリモジュールコントローラ20bは、他方のメモリモジュール8a内の複数の追加のコンポーネントによって引き起こされる複数の遅延に合わせるべく、タイミングを遅延させてよい。
For example, when the
メモリモジュール8a、8bが複数のUDIMM、複数のRDIMM、および複数のLRDIMM等の複数の異なるタイプのDIMMを備える場合、メモリモジュール8a、8bは、複数の異なるタイプのコンポーネントを、バス10に対するそれらのコマンド、アドレス、および複数の制御バス上に有してよい。
If the
複数の特定の記載された実施形態において、タイミングが調整される出力は、データバッファ24からのデータ出力をバス10内のデータバス上に備える。代替の複数の実施形態において、調整される複数の出力信号は、データ出力以外の出力を備えてよい。
In some particular described embodiments, the timing adjusted output comprises a data output from the
複数の動作が、複数のタイミング調整を実行する1つのメモリモジュールに関して記載されているが、バス10上の1または複数のメモリモジュール8a、8bが図5に係る複数のタイミング調整を実行してよい。
Although multiple operations have been described for one memory module that performs multiple timing adjustments, one or
記載された複数のタイミング調整では、メモリモジュールコントローラ20bは、データバッファ24からの出力等、その出力のタイミングを調整して、他方のメモリモジュール8aからの複数の同様のタイプの出力に対するタイミングと一致させてよく、その結果、ホストメモリコントローラ6は、バス10上の異なるメモリモジュール8a、8bに係る異なる複数の構成に対し合わせるべく、タイミング調整を何ら行う必要がなくなる。
In the multiple timing adjustments described, the memory module controller 20b adjusts the timing of its output, such as the output from the
[モードレジスタセット(MRS)コマンド内での複数のレジスタのエンコーディング使用]
メモリモジュールコントローラ20は、複数のモードレジスタ22を含んでよい。特定の複数の実施形態において、メモリモジュールコントローラ20bは、他方のコントローラ8aで使用される第2のメモリプロトコル、例えばDDR4、とは異なる第1のプロトコルを実装してよい。しかしながら、メモリモジュールコントローラ20bは他方のメモリモジュール8aのDDR4のような第2のプロトコルからの特定の複数のコマンド、例えばモードレジスタセット(MRS)コマンド、をサポートしてよく、さらに当該コマンドを、第1のメモリプロトコルを実装するメモリモジュールコントローラ20aによって使用されるのとは異なる目的で使用してよい。
[Encoding of multiple registers in the mode register set (MRS) command]
The
図6は、MRSコマンド250の一実施形態を示す。MRSコマンド250は、DDR4等の別のメモリプロトコルからの複数のMRSフィールドを含んでも含まなくてもよい。コマンド250は、MRS動作を示すオペレーションコード252を指定する。メモリモジュールコントローラ20内の複数のモードレジスタ22の1つに対し、データを提供すべく、アドレスレジスタA0〜A13が使用されてよく、複数のレジスタビット254は、アドレスA0〜A13内のデータを書き込むべきモードレジスタ22を示す。例えば、16個のモードレジスタ22がある場合、4つのレジスタビット254、例えば、BA0、BA1、BG0、BG1が、使用すべき、メモリモジュールコントローラ20内の16個のモードレジスタ22のうちの1つを示してよい。
FIG. 6 illustrates one embodiment of the
一実施形態において、MRSコマンド250は、バス10がリードおよびライト動作等の複数のバス動作のために整備される前に、複数の構成パラメータをメモリモジュール8に対し提供すべく使用され得る単一のサイクルコマンドを備えてよい。ここでリードおよびライト動作は、2サイクルコマンドを備えてよい。このように、MRSコマンド250は、図3のピンアウト設計において、ライン52で示されるアドレス入力信号A0〜A17、および図3のピンアウト設計において、ライン54と56とでそれぞれ示されるコマンド入力信号BG1:0およびBA1:0を使用する。特定の複数の実施形態において、アドレス入力信号A14〜16は、MRSコマンドオペレーションコードを含む。
In one embodiment, the
図7は、メモリモジュールコントローラ20内の複数のモードレジスタ22をプログラムすべく、ホストメモリコントローラ6およびメモリモジュールコントローラ20によって実行される、複数の動作の一実施形態を示す。バス10が2クロックで送信される複数のコマンドを含み得るリードおよびライト動作のために整備される前といった初期化中、ホストメモリコントローラ6は、アドレスフィールドA13:0内に含まれるデータで構成すべき、メモリモジュールコントローラ20内のモードレジスタ22を指定するためのMRSコマンド250を生成(ブロック280において)および送信してよい。アドレスフィールドA13:0に対し、MRSコマンド250が1クロックサイクルで送信され得る。
FIG. 7 illustrates one embodiment of operations performed by the
メモリモジュールコントローラ20はMRSコマンド250を受信(ブロック282において)し、ライン54および56上(図3)の複数のレジスタビット254で示されるモードレジスタ22を決定する(ブロック284において)。次に、メモリモジュールコントローラ20は、アドレスビットA0:A13内に提供されたデータを決定されたモードレジスタ22に書き込む(ブロック286において)。
ホストメモリコントローラ6はさらに、メモリチップ12a、14a、16a、18aのうちの1つにある、8つのモードレジスタのうちの1つをプログラムすべく、DDR4プロトコルに従って、DDR4プロトコルを実装する、メモリモジュール8a等のメモリモジュールに対し送信するためのMRSコマンド250を使用してよい。レジスタビットBA0、BA1、BG0はメモリチップ内のモードレジスタを識別し、ビットBG1はそれらのビットが反転されているかどうかを示す。このように、ホストメモリコントローラ6は、複数の異なるメモリプロトコルを実装するメモリコントローラ20a、20bに対し、同一のMRSコマンドフォーマットを使用して、複数の異なるプロトコルに従った複数の異なる動作を発生させてよい。例えば、DDR4をサポートするメモリモジュール8aに対し、MRSコマンド250が使用される場合、MRSコマンド250はメモリチップ12a、14a、16a、18aのうちの1つにあるモードレジスタに対し、データを書き込む。メモリモジュールコントローラ20内の複数のモードレジスタ22を有するメモリモジュール8bに対しMRSコマンド250が使用される場合、MRSコマンド250は、DRAMチップ12、14、16、18ではなく、メモリモジュールコントローラ20内の複数のモードレジスタ22にデータを書き込む。このように、ホストメモリコントローラ6は、DDR4および何らかの他のプロトコル等の複数の異なるメモリプロトコルをサポートする複数のメモリモジュールとともに、同一のMRSコマンドフォーマットを使用してよい。
The
[チップセレクト信号が前半のコマンドのためにのみ受信される場合、メモリモジュールにより後半のコマンドを受け取る]
複数の記載された実施形態は、メモリモジュール8のための1つのチップセレクト信号を受け取るのみでよい状態にする、メモリモジュールが、二等分等、複数パートでコマンドを受け取るための複数の技術を提供する。その結果、メモリモジュール8は、前半のコマンドが送信されたときから遅延間隔をおいて、後半のコマンドを自動的に受け取るようになる。さらなる複数の実施形態は、2Nタイミング等の高速タイミングモードで後半のコマンドを自動的に受け取るべく、遅延を組み込むための複数の技術を提供する。高速タイミングモードでは、メモリモジュール8a、8bが1Nタイミング等の通常のタイミングモードに対し、より高速で動作している。
[If the chip select signal is received only for the first half command, the second half command is received by the memory module]
Multiple described embodiments enable multiple techniques for a memory module to receive commands in multiple parts, such as bisection, that only requires one chip select signal for the
特定の複数の実施形態において、複数のコマンドは、2ビット/レーンを占有し、複数のバックツーバッククロックで送信される。これにより、2コマンドではなく、1コマンド内でアドレス全体が送信されることを可能にし、たとえば、行および列の情報を1コマンドで送信する。メモリモジュールコントローラ20は、メモリモジュールコントローラ20上の複数のモードレジスタ22をプログラミングするホストメモリコントローラ6を介して、高速(2N)タイミングモードを認識する。
In certain embodiments, the commands occupy 2 bits / lane and are transmitted with multiple back-to-back clocks. This allows the entire address to be sent within one command instead of two commands, for example, row and column information is sent in one command. The
図8は、複数のリードコマンド等の複数のコマンドに対する、1Nタイミング等の通常のタイミングモードのためのタイミングチャートの一実施形態を提供する。複数のコマンドは、CMD0a、CMD0b、CMD1a、CMD1b、CMD2a、CMD2bで示される2パートで送信される。ホストメモリコントローラ6は、第1のメモリモジュール8aに対し、前半のコマンドCMD0aおよび、図3でSO#ライン58としても示されるチップセレクト信号S0#302を、バス上にクロックサイクル300で配置する。第1のメモリモジュール8aは、チップセレクト信号302の受信時に、サイクル300で前半のコマンドCMD0aを受け取ってよく、さらに、前半のコマンドCMD0aから遅延間隔をおいて、例えば、1クロックサイクル後のクロックサイクル304において、後半のコマンドCMD0bを自動的に受け取ってよい。
FIG. 8 provides one embodiment of a timing chart for a normal timing mode such as 1N timing for multiple commands such as multiple read commands. A plurality of commands are transmitted in two parts indicated by CMD0a, CMD0b, CMD1a, CMD1b, CMD2a, and CMD2b. For the
ホストメモリコントローラ6は、第2のメモリモジュール8bを選択すべく、前半のコマンドCMD1aおよび、図3でS2#ライン60としても示されるチップセレクト信号S2#306を、バス上にクロックサイクル308で配置してよい。第2のメモリモジュール8bは、チップセレクト信号306の受信時に、サイクル308で前半のコマンドCMD1aを受け取ってよく、さらに、後半のコマンドCMD1bを1クロックサイクル後のサイクル310で自動的に受け取ってよい。
In order to select the
図9は、通常のタイミングより高速度の、2Nタイミング等の高速タイミングモードのためのタイミングチャートの一実施形態を提供する。ここでは、CMD0a、CMD0b、CMD1a、CMD1b、CMD2a、CMD2bとして示される、2クロックサイクルのための各コマンドの両方のパートがバス10上に存在する。ホストメモリコントローラ6は、第1のメモリモジュール8aに対し、2サイクルの前半のコマンドCMD0aをバス上にクロックサイクル320で配置し、図3でSO#ライン58としても示されるチップセレクト信号S0#322をバス上に、前半のコマンドCMD0aがバス10上に配置されてから1サイクル後のクロックサイクル324で配置してよく、よって、高速タイミングモードにおいてチップセレクト信号を遅延させる。第1のメモリモジュール8aは、チップセレクト信号322の受信時に、クロックサイクル324で前半のコマンドCMD0aを受け取ってよく、さらに、後半のコマンドCMD0bをチップセレクト信号322から2クロックサイクル後として示される遅延間隔をおいて、クロックサイクル328の開始時に自動的に受け取ってよい。
FIG. 9 provides one embodiment of a timing chart for a fast timing mode, such as 2N timing, which is faster than normal timing. Here, both parts of each command for two clock cycles, shown as CMD0a, CMD0b, CMD1a, CMD1b, CMD2a, CMD2b, are present on the
ホストメモリコントローラ6は、第2のメモリモジュール8b用に、前半のコマンドCMD1aをサイクル330で、図3でS2#ライン60としても示されるチップセレクト信号S2#332を1サイクル後のサイクル332で配置してよい。第2のメモリモジュール8bは、チップセレクト信号332のクロックサイクル336において、前半のコマンドCMD1aを受け取ってよく、さらに、2クロックサイクル後のサイクル338で、後半のコマンドCMD1bを自動的に読み取ってよい。このように、ホストメモリコントローラ6はチップ信号を前半のコマンドの途中で1クロックサイクル遅延させ、メモリモジュールコントローラ20は、後半のコマンドの読み取りを、前半のコマンドの読み取り後、2サイクル遅延させる。
The
図10は、バックツーバックサイクルで2ビットを占有する複数のコマンドに対する、1Nタイミングモードのために、ホストメモリコントローラ6およびメモリモジュールコントローラ20によって実行される複数の動作に係る一実施形態を示す。ホストメモリコントローラ6は、1Nタイミングモードで動作するための初期化中、メモリモジュールコントローラ20を複数のモードレジスタ22内の複数のビットを介してプログラムしてよい。通常のタイミングモード1Nで2サイクルコマンドを初期化するとき(ブロック350における)、ホストメモリコントローラ6は、前半のコマンド(1サイクル)をバス10上に第1のクロックサイクルで配置する(ブロック352における)。チップセレクトコマンドも、バス10上に第1のクロックサイクルで配置される(ブロック354における)。メモリモジュールコントローラ20が通常のタイミングモードでプログラムされている場合、メモリモジュールコントローラ20を含む特定のメモリモジュール8に宛てられたチップセレクト信号を検出すると(ブロック356において)、メモリモジュールコントローラ20は、前半のコマンドをバス10上の第1のクロックサイクルで受け取る(ブロック358において)。
FIG. 10 illustrates one embodiment of the operations performed by the
さらに、ホストメモリコントローラ6は、後半のコマンド(前半からのバックツーバックサイクルで)をバス10上に、第1のクロックサイクルから1クロックサイクル後の第2のクロックサイクルで配置する(ブロック360において)。チップセレクト信号によって選択されるメモリモジュール8は、チップセレクト信号が受信され、前半のコマンドが受け取られたときから、1サイクルの遅延を待機することによって、後半のコマンドを、バス10上の第2のクロックサイクルで受け取る(ブロック362において)。メモリモジュールコントローラ20は、チップセレクト信号にバス10にアクセスすることを要求することなく、後半のコマンドをバス10上で自動的に受け取ってよい。
Further, the
図11は、バックツーバックサイクルで2ビットを占有する複数のコマンドに対する、2N等の高速タイミングモードのための、ホストメモリコントローラ6およびメモリモジュールコントローラ20によって実行される複数の動作に係る一実施形態を示す。メモリモジュールコントローラ20は、高速タイミングモードで動作するための初期化中、複数のモードレジスタ22内の複数のビットを介してプログラムされてよい。高速タイミングモードで2サイクルコマンドを初期化するとき(ブロック380における)、ホストメモリコントローラ6は、前半のコマンド(1サイクル)を、バス10上に第1のクロックサイクルで配置する(ブロック382における)。次に、チップセレクト信号が、バス10上に、第1のクロックサイクルから1クロックサイクルとなり得る第2のクロックサイクルで配置される(ブロック384における)。このように、前半のコマンドを配置してから、1クロックサイクル等の遅延において、チップセレクト信号がバス上に配置される。メモリモジュールコントローラ20が高速タイミングモードでプログラムされている場合、メモリモジュールコントローラ20が特定のメモリモジュール8に宛てられたチップセレクト信号を検出すると(ブロック386において)、メモリモジュールコントローラ20は、遅延における第2のクロックサイクルでバス10上の前半のコマンドを受け取る(ブロック388において)。
FIG. 11 illustrates one embodiment of the operations performed by the
さらに、ホストメモリコントローラ6は、後半のコマンド(前半からの2サイクル後)をバス10上に、第1のクロックサイクルから2サイクル後の第3のクロックサイクルで配置する(ブロック390において)。チップセレクト信号によって選択されるメモリモジュール8内のメモリモジュールコントローラ20は、チップセレクト信号が受信され、前半のコマンドが受け取られたときから、2サイクルの遅延を待機することによって、後半のコマンドをバス10上で第4のクロックサイクルにおいて受け取る(ブロック392において)。メモリモジュールコントローラ20は、バス10上のチップセレクト信号を待機することなく、後半のコマンドを自動的に受け取ってよい。
Further, the
複数の記載された実施形態は、2Nタイミング等の高速タイミングモードにおいて、チップセレクト信号が、前半のコマンドを送信してから、1クロック信号分遅延させることを提供する。さらに、メモリモジュールは、チップセレクト信号から2クロック信号後、後半のコマンドを自動的に受け取ってよい。チップセレクト信号におけるこの遅延によって、高速モードにおける、追加のセットアップタイムが可能になる。後半のコマンドを受け取るための遅延によって、チップセレクト信号を要求することなく、コマンドを自動的に受け取ることが可能になる。 The described embodiments provide that in high speed timing modes such as 2N timing, the chip select signal delays one clock signal after transmitting the first half command. Further, the memory module may automatically receive the latter half command after two clock signals from the chip select signal. This delay in the chip select signal allows additional setup time in the high speed mode. The delay for receiving the second half command allows the command to be automatically received without requesting a chip select signal.
代替の複数の実施形態において、記載された1クロック信号とは異なる間隔で、チップセレクト信号がバス上に配置されてよく、後半のコマンドが受け取られてよい。さらに、代替の複数の実施形態において、複数のコマンドは、2より多いパート(複数のビット等)で構成され、2より多いクロックサイクルを使用してよく、かつ、メモリモジュール8a、8bは、受け取るための複数の追加のチップセレクト信号を要求することなく、コマンドの1つの追加パートより多いものを、チップセレクト信号からの複数のクロック信号遅延間隔において、自動的に受け取ってよい。
In alternative embodiments, chip select signals may be placed on the bus at intervals different from the one clock signal described, and later commands may be received. Further, in alternative embodiments, the commands may consist of more than two parts (such as bits), use more than two clock cycles, and the
[メモリモジュール内の複数の高アドレスビットの設定方法を決定する]
メモリモジュールコントローラ20は、異なるピンおよびインターフェース構成を有する複数のメモリモジュール8で動作するよう構成され得る。例えば、1つのメモリモジュールは、SO−DIMM等のより少ないピンを有する別のメモリモジュールより、アドレス指定用のより多くのピンを有する。より少ないアドレス指定用のピンを有するメモリモジュールは、アドレス指定用に利用可能なより多くのピンを有するメモリモジュールより、小さなアドレス空間を提供してよい。サポートされるインターフェース構成は、ホストメモリコントローラ6およびバス10の複数の機能によって変わってよく、あるいはメモリモジュール8のSO−DIMMまたはUDIMM等のピンおよびインターフェース構成の複数の機能によって変わってよい。
[Determine how to set multiple high address bits in memory module]
The
そのような複数の実施形態に対し、例えば、メモリモジュールが複数の高アドレスビットのための利用可能な複数のピンを有するかどうかを示す等、複数のサポートされるインターフェース構成を示すべく、メモリモジュールコントローラ20は、複数のモードレジスタ22のうちの1つを使用してよい。そのような場合、メモリモジュールコントローラ20が他の複数のメモリモジュールで利用可能な複数の高アドレスビット用の1または複数のピンを有さないモジュール8で動作している場合、メモリモジュールコントローラ20は予め定められた値、例えばゼロを、当該モジュールで利用不可能なそれらの複数の高アドレスビットのために使用する。このように、メモリモジュールコントローラ20は、それらの高アドレスビットのための複数の値を受信するためのピンがない場合に、複数の高アドレスビット用に値ゼロを前提とする。一実施形態において、複数の高アドレスビットは、図3のピンアウトダイアグラムで示される52のアドレスビットA17および62のビットC2:0を備えてよい。SO−DIMM等の特定の複数のメモリモジュールは、ピン52および62を含まなくてよい。
For such embodiments, a memory module to indicate a plurality of supported interface configurations, for example, indicating whether the memory module has a plurality of pins available for a plurality of high address bits. The
図12は、アドレス指定用の複数の設定を構成すべく、メモリモジュールコントローラ20によって実行される複数の動作に係る一実施形態を示す。ホストメモリコントローラ6は、サポートされるインターフェース構成を示すMRS信号をメモリモジュール8に対し送信してよい。サポートされるインターフェース構成を示すMRS信号を受信すると(ブロック400において)、メモリモジュールコントローラ20はサポートされるインターフェース構成を示すべく、MRS信号によってアドレス指定されるモードレジスタ22を更新してよい。MRS信号は、SO−DIMM、UDIMM等のDIMMタイプを示すか、あるいは、複数の高アドレスビットがサポートされるか否かといった、インターフェースがサポートする内容を示してよい。応答時、メモリモジュールコントローラ20は、例えば複数の高アドレスビットがサポートされるかどうかを示すといったように、通信されるインターフェース構成を示すべく、インターフェース構成を示すアドレス指定されたモードレジスタ22を設定(ブロック402において)する。
FIG. 12 illustrates one embodiment of the operations performed by the
図13は、より高レベルの複数のアドレスビットを使用する、アドレス指定を処理すべく、メモリモジュールコントローラ20によって実行される複数の動作に係る一実施形態を示す。複数のアドレスビットを有するコマンドをホストメモリコントローラ6から受信すると(ブロック420において)、メモリモジュールコントローラ20は、サポートされるインターフェース構成をモードレジスタ22から決定する。そのような情報は、現在のメモリモジュール8が複数の高アドレスビットにおけるアドレス指定をサポートするか否かを示す。サポートされるインターフェース構成が複数の高アドレスビットをサポートしない場合(ブロック422において)、例えは、メモリモジュール8が複数のピン52および62を有さない場合、受信されるアドレスのための少なくとも1つの高アドレスビットは予め定められた値に設定される。すなわち、複数の高アドレスビットのためのピンがない場合、複数の高アドレスビットはゼロと前提される。モードレジスタ22で示されるサポートされるインターフェース構成が、複数の高アドレスビットが利用可能であると示す場合(ブロック422において)、メモリモジュールコントローラ20は、少なくとも1つの高アドレスピン52、62上で受信されるアドレス用に、少なくとも1つの高アドレスビットを使用する(ブロック426において)。
FIG. 13 illustrates one embodiment of the operations performed by the
代替の複数の実施形態において、メモリモジュールコントローラ20は、複数のピンを有さないメモリモジュール上に、複数の高アドレスビット以外の複数のアドレスビットのための複数の予め定められた値を供給してよい。
In alternative embodiments, the
複数の記載された実施形態は、メモリモジュールコントローラが、複数の高アドレスビットを提供するための複数のピンを有さないメモリモジュール構成に対し、複数の高位のアドレスビットを提供すべく、アドレス指定のために利用可能な複数の異なるピン構成を有する複数のメモリモジュール内で動作することを可能にする。このように、メモリモジュールコントローラはSO−DIMMおよびUDIMM等の複数のメモリモジュール内で展開および動作され得、両方のインターフェース構成に対し、複数の完全なアドレス指定機能を提供できる。 The described embodiments provide addressing for the memory module controller to provide a plurality of high order address bits for a memory module configuration that does not have a plurality of pins for providing a plurality of high address bits. It is possible to operate in a plurality of memory modules having a plurality of different pin configurations available for use. In this manner, the memory module controller can be deployed and operated within multiple memory modules such as SO-DIMM and UDIMM, and can provide multiple complete addressing functions for both interface configurations.
[CKEロー信号のための複数の拡張動作を提供する]
複数の記載された実施形態は、複数の電力管理動作の事前構成をメモリモジュール8で可能にする複数の技術を提供する。それは、メモリモジュールコントローラが、図3のピンアウトダイアグラムで示されるピン64または66等のCKEピン上で、クロックイネーブル(CKE)ロー信号を検出すると、後で実行されることになる複数の動作である。これによって、CKEロー信号がアクティブ化されると、定義済みのスリープ状態に入る等、拡張された一連の電力管理動作が実行されることを可能にする。
[Providing multiple extended operations for CKE low signal]
The described embodiments provide a plurality of techniques that allow the
先に送信されたプリCKEコマンドによって、CKEロー信号の受信時、異なる可能性のある複数のスリープ状態がアクティブ化され得る。そのような示される複数の状態は、Advanced Configuration and Power Interface(ACPI)規格で指定されるものを含んでよい。例えば、S3スタンドバイ状態は、低レベルの電力供給が維持される、メモリモジュール8に対するスリープまたは中断である。S4の休止状態は、メモリモジュール8の内容は不揮発性メモリに保存され、メモリモジュール8は電源が切られる状態である。S5の状態は、最小量電力が電源供給ユニットに供給されるもののメモリモジュール8は電源が切られるものである。その内容が保存される不揮発性メモリは様々な形態で提供されてよく、限定はされないが、NAND(フラッシュ)メモリ、強誘電体RAM(FeTRAM)、ナノワイヤーベースの不揮発性メモリ、相変化メモリ(PCM)等の3次元(3D)クロスポイントメモリ、メモリスタ技術を組み込むメモリ、磁気抵抗ランダムアクセスメモリ(MRAM)、Spin Transfer Torque(STT)‐MRAMを含む。
The previously transmitted pre-CKE command may activate multiple sleep states that may be different upon receipt of the CKE low signal. Such indicated states may include those specified in the Advanced Configuration and Power Interface (ACPI) standard. For example, the S3 standby state is sleep or interruption for the
図14は、CKEロー信号を使用して、複数の電力管理動作を容易化すべく、ホストメモリコントローラ6およびメモリモジュールコントローラ20によって実行される複数の動作に係る一実施形態を示す。例えば、様々な認識されるスリープモードのうちの1つへの切り替えといった、電力管理モードを変更する複数の動作を初期化すべく、ホストメモリコントローラ6は、バス10を介して、メモリモジュールコントローラ20に対し、1または複数の電力管理動作を示す、プリCKEコマンドを送信する(ブロック500において)。一実施形態において、プリCKEコマンドは、1または複数の特定の動作を示す、または一連の動作を表すコードを提供してよい。例えば、プリCKEコマンドは、例えば、複数のACPIスリープモード状態に係るS3、S4、S5等のシステム状態またはスリープモード等の電力管理状態を示してよい。それらをメモリモジュールコントローラ20は、その状態を実装するために実行すべき一連の動作として解釈してよい。
FIG. 14 illustrates an embodiment of operations performed by the
プリCKEコマンドを受信すると(ブロック502において)、メモリモジュールコントローラ20は、電力管理動作レジスタ26を、プリCKEコマンドで示される少なくとも1つの電力管理動作を示すよう設定する。その後、ホストメモリコントローラ6がメモリモジュール8a、8bに対し、示された複数の電力管理動作の状態変更を実装させようとする際、ホストメモリコントローラ6は、ピン64または66(図3)上のローといったように、CKEロー信号56をアサートする(ブロック506において)。CKEロー信号を検出すると(ブロック508において)、メモリモジュールコントローラ20は、電力管理動作レジスタ56がスリープモード状態または特定の複数の動作を示すといったように、実行すべき複数の動作を示しているかどうかを決定する(ブロック510において)。ヌルまたは既定値等、動作が何も示されていない場合、メモリモジュールコントローラ20は、例えば、複数の内部クロック信号の非アクティブ化、プリチャージパワーダウンまたはセルフリフレッシュ動作のように、CKEロー信号を処理するための既定の動作を実行してよい(ブロック512において)。複数の動作または電力モードがレジスタ26で示されている場合、メモリモジュールコントローラ20は、特定の電力管理状態、例えば、スリープ状態を実装すべく、レジスタ26で示される複数の電力管理動作を実行する(ブロック514)。
Upon receiving the pre-CKE command (at block 502), the
複数の記載された実施形態は、CKEロー信号を使用して、後で一連の電力管理動作を実行するようメモリモジュールコントローラを構成するための複数の技術を提供する。プリCKEコマンドが送信された後、ホストメモリコントローラ6は、CKEロー信号に応答して通常トリガされるよりも、電力モードを変更するための、より複雑な複数の電力管理動作をトリガすべく、CKEロー信号をアサートする。複数の記載された実施形態では、スリープモードへの移行等、より複雑な電力管理動作がCKEロー信号で初期化され得るので、電力管理のために、より少ない複数の信号が必要とされる。
The described embodiments provide techniques for configuring a memory module controller to perform a series of power management operations later using the CKE low signal. After the pre-CKE command is sent, the
[複数のライトコマンド用にホストメモリコントローラの複数のライトクレジットを提供する]
複数の記載された実施形態は、バス10上のバス帯域幅の消費を低減すべく、戻される複数のリードデータパケット内に複数のライトクレジットを含めることで、複数のライトコマンドを送信するために使用するホストメモリコントローラ6の複数のライトクレジットを供給する複数の技術を提供する。
[Provide multiple write credits of host memory controller for multiple write commands]
Multiple described embodiments include a plurality of write credits included in a plurality of read data packets returned to reduce the consumption of bus bandwidth on the
図1につき、ホストメモリコントローラ6は、ライトクレジットカウンタ9を含んでおり、ライトクレジットカウンタ9が、複数のポジティブクレジットを有する場合にのみ、複数のライトコマンドを送信する。ライトクレジットカウンタ9は、ライトコマンドを送信するとき、デクリメントされる。各メモリモジュール8a、8bに対し、1つのライトクレジットカウンタ9が存在してよい。メモリモジュール8は、受信されるライトデータをバッファするためのライトバッファ28を含んでおり、受信されるライトデータは後で、メモリチップ12、14、16、18内の複数のストレージ要素にデステージされる。メモリモジュールコントローラ20は、ホストメモリコントローラ6に戻すための累積された複数のライトクレジットを示すライトクレジットカウンタ30を有する。ライトバッファ28の使用を管理すべく、複数のライトクレジットが使用され、よって、ホストメモリコントローラ6はライトデータを送信させて、ライトバッファ28をオーバーフローさせない。
1, the
図15は、ホストメモリコントローラ6およびメモリモジュールコントローラ20がライトコマンドを処理するための複数の動作に係る一実施形態を示す。ライトコマンドの生成時、ホストメモリコントローラ6は、ライトクレジットカウンタ30がゼロより大きい、すなわち空以外であるかどうかを決定する(ブロック602において)。その場合、ライトコマンドがメモリモジュール8に対し送信される(ブロック604において)。ホストライトクレジットカウンタ9が空の場合(ブロック602において)、ホストメモリコントローラ6は、ライトコマンドを送信するために複数のクレジットが利用可能になるまで待機する。
FIG. 15 shows an embodiment relating to a plurality of operations for the
ライトコマンドを受信すると(ブロック610において)、メモリモジュールコントローラ20は、ライトデータをライトバッファ30内にバッファする(ブロック612において)。ライトバッファ30からのライトデータをメモリチップ12、14、16、18内の複数のストレージ要素へデステージすると(ブロック614において)、メモリモジュールコントローラ20は、ホストメモリコントローラ6に戻すクレジットを示すライトクレジットカウンタ30をインクリメントし(ブロック616において)、別のライトコマンドを許容するようにする。ライトクレジットカウンタ30が閾値を超えている場合(ブロック618において)メモリモジュールコントローラ20は、リードデータを何も示さない、ライトクレジットカウンタ30内で示される複数のライトクレジットのうち少なくとも1つを示す、リードデータパケットを生成する(ブロック620において)。リードデータパケットがホストメモリコントローラ6に送信され(ブロック622において)、ライトクレジットカウンタ30は、戻されるクレジット数だけ、低減される(ブロック624において)。特定の複数の実施形態において、戻されるクレジット数に制限があってよく、よって、ライトクレジットカウンタ30はゼロに低減されてもされなくてもよい。このように、リードパケットが長時間送信されない場合、メモリモジュールコントローラ20はデータなしでリードデータパケットを送信し、複数のライトクレジットを提供する。その結果、ホストメモリコントローラ8は、複数のライトクレジットが不足せず、複数のライトコマンドを送信することをブロックされる。代替において、複数のライトクレジットがリードデータパケット以外の複数のパケットで戻されてよい。
Upon receipt of the write command (at block 610), the
図16は、ホストメモリコントローラ4に戻すためのリードデータパケットを生成すべく、メモリモジュールコントローラ20によって実行される複数の動作に係る一実施形態を示す。ホストメモリコントローラ6からのリードリクエストに戻すためのリードデータを含むリードデータパケットの生成時(ブロック640において)、ライトクレジットカウンタ30がゼロより大きい場合(ブロック642において)、メモリモジュールコントローラ20は、カウンタ30内の一部または全部のライトクレジットをリードデータパケットに示し(ブロック644において)、リードデータパケットをホストメモリコントローラ6に送信する(ブロック646において)。ライトクレジットカウンタ30は、戻されるライトクレジット数だけ低減される(ブロック648において)。戻されるライトクレジット数は、カウンタ30内のすべてのクレジットであってもよいし、なくてもよい。このように、複数のライトクレジットはリードデータパケット内で一括処理され、ホストメモリコントローラ6に戻される。これにより、情報を通信するためのメッセージ使用を最適化する。複数の応答からなる固定のセットが存在するので、メモリモジュールコントローラ20は、1パケット内にすべてのクレジットを示さなくてくてよい。例えば、メモリモジュールコントローラ20はリードパケット内に、戻すライトクレジット数に対し、0、1、または4を示すことができてよく、または複数のライトクレジットがリードデータなしで戻される場合(図15のブロック620において)、データなしのパケットに対し、0、1、4、または8を示すことができてよい。
FIG. 16 illustrates one embodiment of multiple operations performed by the
図17は、メモリモジュール8からのリードデータパケットを処理すべく、ホストメモリコントローラ6によって実行される複数の動作に係る一実施形態を示す。リードデータパケットの受信時(ブロック660において)、リードデータパケットが複数のライトクレジットを示す場合(ブロック662において)、ホストメモリコントローラ6は、ライトクレジットカウンタ9を、リードデータパケット内で示されるライトクレジット数だけ、インクリメントする(ブロック664において)。ライトクレジットカウンタ9をインクリメントした後(ブロック664から)または提供される複数のライトクレジットが存在しない場合(ブロック662のいいえの分岐から)、リードデータパケットがリードデータを含む場合(ブロック666において)、リードデータが処理される(ブロック670において)。データの読み取り後またはパケットがデータを含まない場合(ブロック666のいいえの分岐から)、リードデータパケットは破棄される(ブロック668において)。
FIG. 17 illustrates one embodiment of multiple operations performed by the
複数の記載された実施形態は、複数のリードパケット内の複数のライトクレジットまたは使用済みの他の複数のメッセージを一括処理することによって、バス10の帯域幅を低減させるように、メモリモジュール8がホストメモリコントローラ6に対し、複数のライトクレジットを通信する、複数の技術を提供する。
The described embodiments allow the
[複数のエラー信号を使用して、複数のエラー処理動作を実行する]
複数の記載された実施形態は、ホストメモリコントローラ6とのエラー処理を調整する、メモリモジュール8における簡易なエラーフローのための複数の技術を提供する。複数の記載された実施形態において、メモリモジュールコントローラ20は、図3のピンアウト設計に示されるエラーピン68ERR0#上にエラーをシグナリングしてよい。メモリモジュールコントローラ20は、複数のエラー処理動作の開始をシグナリングすべく、エラーピン68上にエラー(ERR)ロー信号をアサートしてよく、またメモリモジュールコントローラ20は、エラーモードが終了したこと、およびバス10が動作の準備が整った初期状態に戻されたことをシグナリングすべく、エラーピン68上にエラー(ERR)ハイ信号をアサートしてよい。このように、バス10上でのメモリモジュールコントローラ20とホストメモリコントローラ6との間のエラー処理を調整するための通信は、より広範なエラー処理調整で、帯域幅を消費することを回避すべく、制限された数の信号を備える。
[Execute multiple error handling operations using multiple error signals]
The described embodiments provide a number of techniques for simple error flow in the
図18は、メモリモジュール8内でのエラー検出時に、複数のエラー処理動作を管理するための、メモリモジュールコントローラ20とホストメモリコントローラ6との間の複数の動作に係る一実施形態を示す。エラーを検出すると(ブロック700において)、メモリモジュールコントローラ20は、複数のエラー処理動作が開始されたことをホストメモリコントローラ6に対しシグナリングすべく、バス10上において、ERRロー信号等、第1のエラー信号をピン68上(図3)にアサートする(ブロック702において)。ERRロー信号等、第1のエラー信号をピン68上に検出すると(ブロック704において)、ホストメモリコントローラ6は、第1のエラー信号が受信されたという受信確認を送信(ブロック706において)後、継続して、第1のエラー信号に応答して、エラーを有するメモリモジュール8に対するリード動作およびライト動作を中断する(ブロック708において)。ホストメモリコントローラ6は、ライトクレジットカウンタ9を最大値に設定する等(ブロック710において)、さらなる複数のエラー処理動作を実行してよい。このように、ホストメモリコントローラ6は、エラー処理の一部として、すべてのライトがライトバッファ28からメモリチップ12、14、16、18内の複数のストレージ要素へとフラッシュされることを前提とする。
FIG. 18 shows an embodiment relating to a plurality of operations between the
ホストメモリコントローラ6からの第1のエラー信号の受信に係る受信確認を受信すると(ブロック712において)、メモリモジュールコントローラ20は、バス10を初期状態に戻すための複数のエラー処理動作を実行する。そのような複数の動作は、すべての保留中のリードリクエストの破棄(ブロック716において)、ライトバッファ28内の複数のライトのメモリチップ12、14、16、18内の複数のストレージ要素へのデステージ(ブロック718において)、およびライトクレジットカウンタ30から、戻す複数のライトクレジットを消去(ブロック722において)することが含まれてよい。複数のエラー処理動作の完了後、メモリモジュールコントローラ20は、エラー処理が完了したことをシグナリングすべく、ERRハイ等の第2のエラー信号をエラーピン68上にアサートする(ブロック724において)。この第2のエラー信号を検出すると(ブロック726において)、ホストメモリコントローラ6は、第2のエラー信号の検出に応答して、メモリモジュールに対するリード動作およびライト動作を再開する(ブロック728において)。
Upon receipt of an acknowledgment for receipt of the first error signal from the host memory controller 6 (at block 712), the
複数の記載された実施形態に関し、メモリモジュール8およびホストメモリコントローラ6は、複数のエラー上の多くの通信およびバスを介して実行される複数のトランザクションを交換することなく、限定された数の信号を用いて調整し、複数の完全なエラー処理動作を実行する。各コンポーネント8および20は、他方がメモリモジュール8におけるエラーに応答して、バス10の完全な再初期化を実行することを前提とする。
With respect to the described embodiments, the
[ライトリクエストエラーおよびライトリクエスト受け取りを示すためのエラー信号を使用する]
複数の記載された実施形態は、例えば、ライトリクエストの送信から予め定められた時間内に、エラー信号ロー等、エラー信号をアサートしないことによって、ライトリクエストが正常に完了したこと、およびエラー信号をアサートすることによって、ライトリクエストが失敗したことを、メモリモジュールコントローラ20が、ホストメモリコントローラ6に対し、示すための複数の技術を提供する。エラー信号を検出すると、ホストメモリコントローラ6は、ライトリクエストの送信から予め定められた時間内に、エラー信号が受信された場合、ライトリクエストを再送信する。このように、各ライトリクエストの完了後に、複数のライト完了受信確認をホストメモリコントローラ6に対し送信しないことによって、バス10の帯域幅が節約される。
[Use error signal to indicate write request error and receipt of write request]
Several described embodiments may indicate that a write request has been successfully completed and an error signal, for example, by not asserting an error signal, such as an error signal low, within a predetermined time since the transmission of the write request. By asserting, the
図19は、ライトリクエストおよびライトリクエスト内の複数のエラーの受け取りを示すべく、メモリモジュールコントローラ20およびホストメモリコントローラ6によって実行される複数の動作に係る一実施形態を示す。メモリモジュールコントローラ20が処理中の複数のライトリクエストの1つに関するライトエラーを検出すると(ブロック750において)、メモリモジュールコントローラ20は、エラーロー信号ERR0#等のエラー信号をピン68上にアサートする(図3)。エラーが何も発生していないことを示すべく、メモリモジュールコントローラ20は、エラーハイ信号をアクティブに維持する。メモリモジュールコントローラ20は、複数のライトリクエストエラーと無関係の複数のエラーを示すべく、ピン68上のERR0#信号を追加で使用してよい。さらに、メモリモジュールコントローラ20は、ライトリクエストが送受信されたとき等、ライトリクエストからの予め定められた時間内に、エラーロー信号を送信しないことによって、ライトリクエストの正常終了を暗に示す。
FIG. 19 illustrates one embodiment of the operations performed by the
ホストメモリコントローラ6がエラーロー信号を検出する際(ブロック754において)、1または複数のライトリクエストからの予め定められた時間内に、エラーロー信号が受信される場合(ブロック756において)、ホストメモリコントローラ20は、エラーロー信号の受信から予め定められた時間内に送信された1または複数の決定されたリクエストを再送信する(ブロック758において)。特定の複数の実施形態において、エラー信号が複数のライトエラーンに対し無関係である場合であっても、ホストメモリコントローラ20は、複数のライトリクエストを再送信する。このように、ホストメモリコントローラ20は、エラー信号ローが、予め定められた時間内に受信されない場合、複数のライトリクエストを正常に完了したものとして処理し、たとえ、エラー信号ローが複数のライトリクエストエラーに無関係のエラーをシグナリングする場合であっても。エラー信号ローが予め定められた時間内に受信されると、ライトリクエストを失敗したものとして処理する。
When the
複数のライトリクエストを再送信後(ブロック758において)または予め定められた時間内に送信された複数のライトリクエストが存在する場合(ブロック756のいいえの分岐から)、ホストメモリコントローラ6は、エラーロー信号に関連される、複数のライトエラーに無関係の、実行すべきエラー処理動作が存在するかどうかを決定する(ブロック760において)。存在する場合、ホストメモリコントローラ6は、複数のライトエラーに無関係のエラー処理動作を実行する(ブロック762において)。
After retransmitting multiple write requests (in block 758) or if there are multiple write requests transmitted within a predetermined time (from the no branch of block 756), the
記載された複数の実施形態に関し、メモリモジュール8は、各ライトの完了後、複数のライト完了受信確認を送信しない。代わりに、ホストメモリコントローラ6は、ライトリクエストの後、予め定められた時間内にエラー信号が受信されない場合にライトが完了したことを前提する。さらに、たとえ、メモリモジュールコントローラ20がライトエラーに無関係のエラーをシグナリングする場合であっても、エラー信号がライトリクエストの送信後、予め定められた時間内に受信される場合は、ホストメモリコントローラ6は、ライトリクエストを再送信する。
For the described embodiments, the
[メモリモジュール内のリードデータをスクランブルする]
複数の記載された実施形態は、メモリモジュールコントローラ20が、ライトデータをデスクランブルし、アンスクランブルされたライトデータを格納した後、リードアドレスのスクランブリングを含む、リードリクエストに戻すべく、格納されたデータをスクランブルする複数の技術を提供する。リードおよびライトの両方のためにバス10上で送信されているデータに対するスクランブルは、バス10で複数のエラーを引き起こす可能性のある、送信内で発生する複雑なシーケンスの確率を回避すべく実行される。
[Scramble the read data in the memory module]
Multiple described embodiments are stored for returning to a read request, including scrambling of the read address, after the
リードデータのスクランブルを許容すべく、ホストメモリコントローラ6およびメモリモジュールコントローラ20は、スクランブルシード値11および32(図1および2に示される)をそれぞれ維持する。両方のシード値が共通の値に初期化され、次に、リードデータパケットの処理後、インクリメントされる。その結果、インクリメントされたシード値32および11は個別に、同一リードデータパケットに対し同一値に設定され、リードリクエストに応答してホストメモリコントローラ6に戻されたリードデータパケット内のリードリクエストされたデータをスクランブルおよびデスクランブルするのに使用される。さらに、メモリモジュールコントローラ20およびホストメモリコントローラ6は、データをスクランブルおよびデスクランブルするための、シード値11、32を使用する同一データスクランブルアルゴリズムのための回路ロジックを実装し、バス10で発生する複雑なシーケンスの可能性を除去する。代替の複数の実施形態において、ホストメモリコントローラ6およびメモリモジュールコントローラ20は、当技術分野において既知の複数の追加の動作によって、シード値11および32を更新してよい。
To allow read data scrambling, the
図20は、バス10を介して送信されるリードデータをスクランブルすべく、メモリモジュールコントローラ20およびホストメモリコントローラ6によって実行される複数の動作に係る一実施形態を示す。リードアドレスに対するリードリクエストをホストメモリコントローラ6から受信すると(ブロック800において)、メモリモジュールコントローラ20は、メモリモジュール8内のDRAMチップ12、14、16、18等のストレージ要素からアンスクランブルされたリードデータを取得する(ブロック802において)。メモリモジュールコントローラ20は、スクランブルシード32を使用し(ブロック804において)、リクエストされたリードデータおよびリードアドレスをスクランブルして、ホストメモリコントローラ6からのリードリクエストに戻すべく(ブロック806において)、リードデータパケット内に含める。スクランブラシード32はその後、更新される(ブロック808において)。一実施形態において、その後、スクランブラシード11、32は、リニアフィードバックシフトレジスタ(LFSR)回路を使用して、疑似ランダム方式に更新される。
FIG. 20 illustrates an embodiment of a plurality of operations performed by the
リードパケットを受信すると、ホストメモリコントローラ6は、リードデータおよびリードアドレスを決定すべく、スクランブラシード11を使用して、リードデータパケットをデスクランブルする(ブロック812において)。次に、リードデータがそのリードリクエストに戻され得るよう、アンスクランブルされたアドレスに関連付けられたリードリクエストが決定される(ブロック814において)。スクランブラシード11が更新される(ブロック816において)。代替の実施形態において、スクランブラシード11および32は、スクランブルおよびデスクランブルに使用される前に、更新されてよい。
Upon receipt of the read packet, the
図21は、スクランブルされたライトデータを管理すべく、メモリモジュールコントローラ20によって実行される複数の動作に係る一実施形態を示す。スクランブルされたライトデータを有するライトリクエストをホストメモリコントローラ6から受信すると(ブロック830において)、メモリモジュールコントローラ20はライトリクエストのライトアドレスを使用して、スクランブルされたライトデータをデスクランブルし(ブロック832において)、次に、アンスクランブルされたデータをメモリモジュール8内のメモリチップ12、14、16、18に書き込む(ブロック834において)。
FIG. 21 illustrates one embodiment of multiple operations performed by the
複数の記載された実施形態は、メモリモジュールコントローラ20が、アンスクランブルされたリードデータを格納後、シード値11と32とを使用して、リードデータおよびアドレスの両方をスクランブルしてバス10上に戻すことを可能にする。シード値11と32は、各コンポーネント8および20が複数の動作をスクランブルおよびデスクランブルするために更新する。
In the described embodiments, after the
[使用する複数のバスインターフェース構成の1つを選択する]
複数の記載された実施形態は、メモリモジュール8内で構成するインターフェースパラメータ34を提供する。当該パラメータは、メモリモジュール8によって使用されるバスインターフェース構成を決定すべく、メモリコントローラ20によって使用される。このように、メモリモジュールコントローラ20は、異なる複数のバスインターフェース10、例えば、複数の異なるバス幅、すなわち、9ビットインターフェース、18ビットインターフェース、72ビットインターフェース等の複数のバスデータ幅を有する複数のバスインターフェース、で動作できる。例えば、メモリモジュールコントローラ20がそこに実装され得る異なるタイプのDIMMは、複数の異なるバス幅構成、例えば、72、168、184、240等の異なる数のピン、を有して、複数の異なるバス幅を実装してよい。
[Select one of multiple bus interface configurations to use]
The described embodiments provide
図22は、インターフェースパラメータ34を決定すべく(ブロック900において)、メモリモジュールコントローラ20によって実行される複数の動作に係る一実施形態を示す。メモリモジュールコントローラ20は、バス10をスキャンすること、またはホストメモリコントローラ6に対しクエリすることによって、初期化中にバス10インターフェース構成を決定してよい。あるいは、ホストメモリコントローラ6または他のコンポーネントが、初期化中にバス10を介して、バス幅、ピン構成等のバス10インターフェース構成に関する情報を通信してよい。さらなる実施形態において、メモリモジュール8は、メモリモジュール8に連結され、バス10インターフェース構成を通信する、1または複数のストラッピングピンをバス10の外部に有してよい。ホストメモリコントローラ6または他のコンポーネントは、少なくとも1つのストラッピングピン上に、バスインターフェース構成をアサートしてよい。通信すべきサポートされるバスインターフェース構成が2つのみ存在する場合、1つのストラッピングピンが使用されてよい。メモリモジュールコントローラ20がサポートする、3つ以上のサポートされるバスインターフェース構成が存在する場合、3つ以上のバスインターフェース構成を示すための追加の複数のピンが存在してよい。バスインターフェース構成の決定時(ブロック900において)、決定されたインターフェースパラメータを示すべく、インターフェースパラメータ32が設定される。
FIG. 22 illustrates one embodiment of the operations performed by the
図23は、バスインターフェース構成に基づいて、転送リクエストを処理すべく、メモリモジュールコントローラ20によって実行される複数の動作に係る一実施形態を示す。転送リクエストを処理する動作の初期化時(ブロック930において)、メモリモジュールコントローラ20は、インターフェースパラメータ32に対応するバスインターフェース構成を選択する(ブロック932において)。この場合、選択されたバス構成は、各々が異なるバス幅およびピン構成を有する、第1、第2、第3、または更なるバス構成のうち1つを備えてよい。例えば、複数のバス構成は、9ビット、18ビット、72ビットのデータバスを備えてよく、これらのバス構成の各々は、異なる数のピンを有してよい。この選択されたバス構成が、複数の転送リクエストおよび他の複数の動作を処理する際に使用される。
FIG. 23 illustrates one embodiment of the operations performed by the
メモリモジュールコントローラ20は、選択されたバスインターフェース構成のバス幅に基づいて、転送リクエストを処理する、多数の転送を生成する(ブロック934において)。例えば、選択されたバス構成が、メモリモジュールコントローラ20によってサポートされる他の複数の可能性のある構成より、さらに小さいバス幅を有する場合、そのバス構成は、そのさらに小さいバス幅を収容すべく、より大きいバス幅とより多くのピンを有するサポートされるバスインターフェース構成に要求されるよりも、さらに多くの転送を要求する。このように、メモリモジュールコントローラ20は、選択されたバスインターフェース構成のバス幅に基づいて、転送リクエストを、異なる数のバストランザクションに分割してよい。生成された複数の転送は、選択されたバスインターフェース構成上で転送される(ブロック936において)。
The
複数の記載された実施形態は、メモリモジュールコントローラ20が、そこに実装されるメモリモジュール8のバス構成をサポートすることを許容すべく、複数の異なるバスインターフェース構成を有するメモリモジュール8内で動作可能なメモリモジュールコントローラ20を提供する。
The described embodiments are operable within a
本明細書全体において、「一実施形態」または「ある実施形態」という言及は、その実施形態に関連付けて記載される特定の特徴、構造、または特性が、本願発明の少なくとも1つの実施形態に含まれていることを示す。従って、本明細書の様々な箇所における「ある実施形態」または「一実施形態」または「代替の実施形態」という3つ以上の言及は、すべて必ずしも同一の実施形態について言及しているわけではないことをここに強調し且つ理解されたい。更に、複数の特定の特徴、構造、または特性は、本発明に係る1または複数の実施形態において、好適に組み合わされてよい。 Throughout this specification, reference to “one embodiment” or “an embodiment” includes a particular feature, structure, or characteristic described in connection with that embodiment in at least one embodiment of the invention. Indicates that Thus, references to “an embodiment” or “one embodiment” or “alternative embodiment” in various places in the specification are not necessarily all referring to the same embodiment. It should be emphasized and understood here. Further, a plurality of specific features, structures, or characteristics may be suitably combined in one or more embodiments according to the present invention.
同様に、本発明の複数の実施形態に係る上記の説明において、1または複数の様々な本発明の態様に係る理解を助けるよう、本開示を簡素化する意図で、様々な特徴は単一の実施形態、図、または説明において場合によってまとめられることを理解されたい。しかしながら、この開示方法は、特許請求された主題が、各請求項に明示的に記載されたものより、多くの特徴を必要とするという意図を反映するものと解釈されるべきではない。そうではなく、以降の特許請求の範囲が反映しているように、複数の発明的態様は、上記で開示されている単一の実施形態のすべての特徴より少ないものに存する。よって、詳細な説明の後に続く、特許請求の範囲は、本明細書において、この詳細な説明に明示的に組み込まれる。本明細書によれば、以下の各項目に記載の事項もまた開示される。
[項目1]
バスを介して、ホストメモリコントローラに連結される、メモリモジュールで使用されるデバイスであって、前記デバイスは、
ホストメモリコントローラに対する、最小パルス幅より大きいか等しいパルス幅を有するリクエスト信号を生成するメモリモジュールコントローラロジックを備えており、
前記最小パルス幅は、前記ホストメモリコントローラが前記リクエスト信号を検出することを保証するために必要な複数のクロックサイクルを備えており、
前記リクエスト信号の前記パルス幅は、前記ホストメモリコントローラに対する前記リクエスト信号に加え、少なくとも1つのファンクションを示す、デバイス。
[項目2]
前記リクエスト信号は、前記ホストメモリコントローラに対し、グラント信号を生成させ、
前記メモリモジュールコントローラロジックはさらに、前記グラント信号の受信に応答して、データを前記ホストメモリコントローラに送信する、項目1に記載のデバイス。
[項目3]
前記パルス幅は、前記ホストメモリコントローラに対し、前記リクエスト信号に応答して、前記グラント信号を送信することに加え、前記パルス幅によって示される前記少なくとも1つのファンクションを実行させる、項目2に記載のデバイス。
[項目4]
前記最小パルス幅に等しいパルス幅は、前記リクエスト信号のみを示し、追加のファンクションを示さない、項目1から3のいずれか一項に記載のデバイス。
[項目5]
前記最小パルス幅より大きい少なくとも第1のパルス幅を有する前記リクエスト信号を生成することは、少なくとも第1のファンクションを示し、
前記第1のパルス幅より大きい少なくとも第2のパルス幅を有する前記リクエスト信号を生成することは、少なくとも第2のファンクションを示し、
前記第2のパルス幅より大きい少なくとも第3のパルス幅を有する前記リクエスト信号を生成することは、少なくとも第3のファンクションを示す、項目1から4のいずれか一項に記載のデバイス。
[項目6]
前記第1のパルス幅を有する前記リクエスト信号が生成されるとき、前記第1のファンクションが示され、
前記第2のパルス幅を有する前記リクエスト信号が生成されるとき、前記第2のファンクションが示され、
前記第3のパルス幅を有する前記リクエスト信号が生成されるとき、前記第3のファンクションが示される、項目5に記載のデバイス。
[項目7]
生成される前記パルス幅は、前記最小パルス幅に等しい複数のパルス幅のうち1つまたは前記最小パルス幅の複数を備え、
前記複数のパルス幅は、前記ホストメモリコントローラによる前記パルス幅の検出を保証するために必要なクロックサイクルの最小数によって分割されており、
異なる複数の生成された前記パルス幅は、前記リクエスト信号内の複数の異なるファンクションをエンコードする、項目1から6のいずれか一項に記載のデバイス。
[項目8]
前記最小パルス幅は、2クロックを備え、
6、10、および14クロックのパルス幅のうちの1つのパルス幅で前記リクエスト信号を生成することは、前記ホストメモリコントローラが前記リクエスト信号の処理に加えて実行する異なるファンクションを示す、項目7に記載のデバイス。
[項目9]
前記リクエスト信号はクロックイネーブル信号を含む、項目1から8のいずれか一項に記載のデバイス。
[項目10]
バスを介して、少なくとも1つのメモリモジュールに連結される、デバイスであって、前記デバイスは、ホストメモリコントローラロジックを備えており、
前記ホストメモリコントローラロジックは、
前記メモリモジュールからの、最小パルス幅より大きいか等しいパルス幅を有するリクエスト信号を検出し、
前記リクエスト信号のパルス幅に対応するファンクションを決定し、
決定された前記ファンクションを実行するためのものであり、
前記最小パルス幅は、前記ホストメモリコントローラが前記リクエスト信号を検出することを保証するために必要な複数のクロックサイクルを有し、
前記リクエスト信号のパルス幅は、前記ホストメモリコントローラに対する前記リクエスト信号に加えて、少なくとも1つのファンクションを示す、デバイス。
[項目11]
前記ホストメモリコントローラロジックがさらに、
前記リクエスト信号の受信に応答して、前記バスを介して、前記メモリモジュールに送信するグラント信号を生成する、項目10に記載のデバイス。
[項目12]
前記ホストメモリコントローラロジックがさらに、
前記パルス幅が前記最小パルス幅に等しいことを決定し、
決定された前記ファンクションが、前記最小パルス幅に等しい前記リクエスト信号の前記パルス幅に応答して、追加のファンクションなしに、前記リクエスト信号を含む、項目10または11に記載のデバイス。
[項目13]
前記ホストメモリコントローラロジックがさらに、
前記パルス幅を決定し、
決定された前記ファンクションは、
第1のファンクション、
第2のファンクション、および
第3のファンクションのうち少なくとも1つを含んでおり、
前記第1のファンクションは、前記最小パルス幅より大きいか等しい少なくとも第1のパルス幅を含む前記決定されたパルス幅に応答し、
前記第2のファンクションは、前記第1のパルス幅より大きい少なくとも第2のパルス幅を含む前記決定されたパルス幅に応答し、
前記第3のファンクションは、前記第2のパルス幅より大きい少なくとも第3のパルス幅を含む前記決定されたパルス幅に応答する、項目10から12のいずれか一項に記載のデバイス。
[項目14]
前記第1のパルス幅を有する前記リクエスト信号が生成されるとき、前記第1のファンクションのみが示され、
前記第2のパルス幅を有する前記リクエスト信号が生成されるとき、前記第2のファンクションが示され、
前記第3のパルス幅を有する前記リクエスト信号が生成されるとき、前記第3のファンクションが示される、項目13に記載のデバイス。
[項目15]
バスを介して、ホストメモリコントローラと、第2のメモリモジュールとに連結される、第1のメモリモジュール内に実装されるデバイスであって、
前記デバイスは、メモリモジュールコントローラロジックを備えており、
前記メモリモジュールコントローラロジックは、
前記第1のメモリモジュールおよび前記第2のメモリモジュールの少なくとも1つにある少なくとも1つのコンポーネントに基づいて、タイミング調整を決定し、
前記第2のメモリモジュールにおける出力タイミングに一致させるべく、決定された前記タイミング調整に基づいて、前記ホストメモリコントローラに対する出力タイミングを調整する、ためのものである、デバイス。
[項目16]
前記タイミング調整を決定することは、
前記第2のメモリモジュールに含まれない、出力タイミングに影響を及ぼす少なくとも1つのコンポーネントを有する前記第1のメモリモジュールに応答して、前記タイミングを加速化させること、および
前記第1のメモリモジュールに含まれない、前記第2のメモリモジュールにおける前記出力タイミングに影響を及ぼす少なくとも1つのコンポーネントを有する前記第2のメモリモジュールに応答して、前記タイミングに遅延を追加すること、を含む、項目15に記載のデバイス。
[項目17]
前記タイミング調整を決定することは、前記タイミングを加速化させること、および前記遅延を追加することの両方を含み、
決定された前記タイミング調整は、前記加速化させことおよび前記遅延を追加することの正味を含む、項目16に記載のデバイス。
[項目18]
前記少なくとも1つのコンポーネントは、前記第1のメモリモジュール内にデータバッファを含み、
前記タイミング調整は、前記第2のメモリモジュールが前記第1のメモリモジュール内に含まれるようなデータバッファを含まない場合に、前記出力タイミングを遅延させることを含む、項目16に記載のデバイス。
[項目19]
前記少なくとも1つのコンポーネントは、前記第2のメモリモジュール内にレジスタを含み、
前記タイミング調整は、前記第2のメモリモジュールが前記第1のメモリモジュール内に含まれない前記レジスタを含む場合に、前記出力タイミングを遅延させることを含む、項目16に記載のデバイス。
[項目20]
前記第2のメモリモジュール内の前記レジスタは、コマンド、アドレス、および複数の制御バス上にある、項目19に記載のデバイス。
[項目21]
調整された前記タイミングを有する前記出力は、前記第1のメモリモジュールのデータバッファからの出力を含む、項目15から20のいずれか一項に記載のデバイス。
[項目22]
前記第1のメモリモジュールおよび前記第2のメモリモジュールは、複数の異なるタイプのDual in−Line Memory Module(DIMM)を含む、項目15から21のいずれか一項に記載のデバイス。
[項目23]
前記第2のメモリモジュールは、アンバッファードDIMM(UDIMM)、レジスタードDIMM(RDIMM)、およびload−reduced DIMM(LRDIMM)のうち1つを含む、項目22に記載のデバイス。
[項目24]
前記タイミング調整は、前記第1のメモリモジュールがデータバッファを含み、かつ、前記第2のメモリモジュールがUDIMMを含む場合に、前記出力タイミングを加速化させることを含む、項目23に記載のデバイス。
[項目25]
前記タイミング調整は、
前記第2のメモリモジュールがRDIMMを含み、かつ、前記第1のメモリモジュールがレジスタを含まない場合に、前記出力タイミングを遅延させること、および
前記第1のメモリモジュールが前記出力上にデータバッファを含む場合に、前記出力タイミングを加速化させること、を含む、項目23に記載のデバイス。
[項目26]
前記タイミング調整は、前記第2のメモリモジュールが前記LRDIMMを含み、かつ、前記第1のメモリモジュールが前記出力上にデータバッファを含まない場合に、前記出力タイミングを遅延させることを含む、項目23に記載のデバイス。
[項目27]
バスを介して、メモリモジュールに連結されるデバイスであって、
前記デバイスは、ホストメモリコントローラロジックを備えており、
前記ホストメモリコントローラロジックは、前記メモリモジュール内の複数のモードレジスタのうちの1つをプログラムすべく、チャネルを介して前記メモリモジュールにモードレジスタコマンドを送信するためのものであり、
前記モードレジスタコマンドは、前記複数のモードレジスタのうちの1つを示し、かつ、示された前記モードレジスタのためのデータを含む、デバイス。
[項目28]
前記メモリモジュールに対するバスが、複数のバス動作のために整備される前の前記メモリモジュールの初期化中に、前記モードレジスタコマンドが前記メモリモジュールに送信される、項目27に記載のデバイス。
[項目29]
前記モードレジスタコマンドは単一のサイクルコマンドを含み、かつ、
前記バスを介して、前記メモリモジュールと通信すべく、前記メモリモジュールの整備後、2サイクルコマンドが使用される、項目28に記載のデバイス。
[項目30]
前記複数のモードレジスタのうちの1つを示し、かつ、示された前記モードレジスタのためのデータを提供すべく、前記モードレジスタコマンドは、複数のアドレス入力信号および複数のコマンド入力信号を使用する、項目28に記載のデバイス。
[項目31]
使用する前記モードレジスタを示すべく、前記モードレジスタコマンドは、前記バス上の前記複数のコマンド入力信号を使用し、かつ、
示された前記モードレジスタのためのデータを提供すべく、前記モードレジスタコマンドは、前記バス上の前記複数のアドレス入力信号を使用する、項目30に記載のデバイス。
[項目32]
前記メモリモジュールは、第1のメモリモジュールを含み、かつ、前記モードレジスタコマンドは、第1のモードレジスタコマンドを含み、前記ホストメモリコントローラロジックはさらに、
バスを介して第2のメモリモジュールに第2のモードレジスタコマンドを送信し、
前記第1のモードレジスタコマンドおよび前記第2のモードレジスタコマンドは、同一フォーマットを有しており、
前記第2のモードレジスタコマンドは、前記第2のメモリモジュールに対し、モードレジスタ内の前記第2のモードレジスタコマンド内のデータを、前記第2のメモリモジュール上の複数のメモリチップのうちの1つに格納させる、項目27から31のいずれか一項に記載のデバイス。
[項目33]
前記メモリモジュール内に16個のモードレジスタが存在し、前記モードレジスタは、前記データを格納するための前記16個のモードレジスタのうちの1つを示す、4つの入力ビットを含む、項目27から32のいずれか一項に記載のデバイス。
[項目34]
バスを介して、ホストメモリコントローラと通信する、メモリモジュール内に実装されるデバイスであって、前記デバイスは、
複数のモードレジスタと、
メモリモジュールコントローラロジックと、を備えており、
前記メモリモジュールコントローラロジックは、
前記複数のモードレジスタのうちの1つをプログラムすべく、チャネルを介して前記ホストメモリコントローラからモードレジスタコマンドを受信し、
前記モードレジスタコマンド内に含まれるデータを、前記メモリモジュールコントローラ内の示された前記モードレジスタに書き込む、ためのものであり、
前記モードレジスタコマンドは、前記複数のモードレジスタのうちの1つを示し、かつ、示された前記モードレジスタのためのデータを含む、デバイス。
[項目35]
前記メモリモジュールに対するバスが、複数のバス動作のために整備される前の前記メモリモジュールの初期化中に、前記モードレジスタコマンドが受信される、項目34に記載のデバイス。
[項目36]
前記モードレジスタコマンドは単一のサイクルコマンドを含み、かつ、
前記バスを介して、前記メモリモジュールと、前記ホストメモリコントローラとの間で通信すべく、前記メモリモジュールの整備後、2サイクルコマンドが使用される、項目35に記載のデバイス。
[項目37]
前記複数のモードレジスタのうちの1つを示し、かつ、示された前記モードレジスタのための前記データを提供すべく、前記モードレジスタコマンドは、前記メモリモジュールに対する複数のアドレス入力信号および複数のコマンド入力信号を使用する、項目34から36のいずれか一項に記載のデバイス。
[項目38]
使用する前記モードレジスタを示すべく、前記モードレジスタコマンドは、前記バス上の前記複数のコマンド入力信号を使用し、かつ、
示された前記モードレジスタのための前記データを提供すべく、前記モードレジスタコマンドは、前記バス上の前記複数のアドレス入力信号を使用する、項目37に記載のデバイス。
[項目39]
バスを介して、メモリモジュールにデータを転送するためのデバイスであって、
前記デバイスは、ホストメモリコントローラロジックを備えており、
前記ホストメモリコントローラロジックは、
前記メモリモジュールのための前半のコマンドを前記バス上に第1のクロックサイクルで配置し、
前記前半のコマンドに対する、前記メモリモジュールのためのチップセレクトコマンドを前記バス上に配置し、
後半のコマンドを前記バス上に、前記第1のクロックサイクルの後の第2のクロックサイクルで配置する、ためのものであり、
前記メモリモジュールは、前記前半のコマンドを受け取ってから遅延間隔を置いて、前記後半のコマンドを受け取る、デバイス。
[項目40]
前記ホストメモリコントローラは、前記メモリモジュールに対し、前記後半のコマンドにアクセスするよう指示する、追加のチップセレクトコマンドを前記バス上に発行しない、項目39に記載のデバイス。
[項目41]
前記第2のクロックサイクルは、前記第1のクロックサイクルから1または2クロックであり、かつ、前記遅延間隔は、前記前半のコマンドが受け取られてから、1または2クロックサイクルである、項目39または40に記載のデバイス。
[項目42]
前記第2のクロックサイクルは、前記第1のクロックサイクルから1クロックであり、かつ、前記遅延間隔は、前記チップセレクトコマンドが通常のタイミングモードで受け取られてから、1クロックサイクルである、項目41に記載のデバイス。
[項目43]
前記ホストメモリコントローラロジックはさらに、高速タイミングモードを初期化し、
前記高速タイミングモードでは、
前記前半のコマンドおよび前記後半のコマンドは、2クロックサイクルでそれぞれ前記バス上に配置され、
前記チップセレクトコマンドは、前記前半のコマンドが前記バス上に配置されたときの前記第1のクロックサイクルから1クロックサイクルで、前記バス上に配置され、
前記第2のクロックサイクルは、前記第1のクロックサイクルから2クロックであり、かつ、
前記遅延間隔は、2クロックサイクルを有する、項目42に記載のデバイス。
[項目44]
前記ホストメモリコントローラロジックはさらに、
前記高速タイミングモードを示すべく、初期化中に前記メモリモジュールをプログラムし、かつ、
前記通常のタイミングモードを示すべく、初期化中に前記メモリモジュールをプログラムする、項目43に記載のデバイス。
[項目45]
前記前半のコマンドおよび前記後半のコマンドは、リードコマンドのための1つのアドレスに係る複数の部分を含む、項目39から44のいずれか一項に記載のデバイス。
[項目46]
バスを介して、ホストメモリコントローラと通信するメモリモジュールに実装されるデバイスであって、
前記デバイスは、メモリモジュールコントローラロジックを備えており、
前記メモリモジュールコントローラロジックは、
前記ホストメモリコントローラによって、第1のクロックサイクルでバス上に配置される前半のコマンドのためのチップセレクトコマンドを受信し、
前記チップセレクトコマンドに応答して、前記バス上の前記前半のコマンドを受け取り、かつ、
前記ホストメモリコントローラによって、前記第1のクロックサイクルの後の第2のクロックサイクルで前記バス上に配置される後半のコマンドを受け取る、ためのものであり、
前記第1のクロックサイクルの後の第2のクロックサイクルは、前記前半のコマンドの受け取りからの遅延間隔である、デバイス。
[項目47]
前記メモリモジュールは、前記ホストメモリコントローラからの追加のチップセレクト信号を自動的に受信することなく、前記バス上の前記後半のコマンドを自動的に受け取る、項目46に記載のデバイス。
[項目48]
前記第2のクロックサイクルは、前記第1のクロックサイクルから1または2クロックであり、かつ、前記遅延間隔は、前記チップセレクトコマンドが受け取られてから、1または2クロックサイクルである、項目46または47に記載のデバイス。
[項目49]
前記第2のクロックサイクルは、前記第1のクロックサイクルから1クロックであり、かつ、前記遅延間隔は、前記チップセレクトコマンドが通常のタイミングモードで受け取られてから、1クロックサイクルである、項目48に記載のデバイス。
[項目50]
前記メモリモジュールコントローラロジックはさらに、高速タイミングモードを初期化し、
前記高速タイミングモードでは、
前記前半のコマンドおよび前記後半のコマンドは、2クロックサイクルでそれぞれ前記バス上に配置され、
前記チップセレクトコマンドは、前記前半のコマンドが前記バス上に配置されたときの前記第1のクロックサイクルから1クロックサイクルで、前記バス上に配置され、
第2のクロックサイクルは、前記第1のクロックサイクルから2クロックであり、かつ、
前記後半のコマンドを受け取る時を決定するために前記メモリモジュールによって使用される前記遅延間隔は、前記前半のコマンドの受け取りから2クロックサイクルを有する、項目49に記載のデバイス。
[項目51]
前記メモリモジュールコントローラロジックはさらに、
前記タイミングモードが前記高速タイミングモードかどうかを決定し、前記タイミングモードが前記高速タイミングモードであるとの決定に応答して、前記高速タイミングモードが初期化され、
前記タイミングモードが前記高速タイミングモードでないとの決定に応答して、前記通常のタイミングモードで動作する、項目50に記載のデバイス。
[項目52]
前記前半のコマンドおよび前記後半のコマンドは、リードコマンドのための1つのアドレスに係る複数の部分を含む、項目46から51のいずれか一項に記載のデバイス。
[項目53]
バスを介して、ホストメモリコントローラから送信される複数のコマンド内の複数のアドレスを処理するためのメモリモジュール内のデバイスであって、
前記デバイスは、メモリモジュールコントローラを備えており、
前記メモリモジュールコントローラは、
前記メモリモジュールための複数の高アドレスビットが利用可能かどうかを決定し、
前記メモリモジュール内の第1のアドレス空間を指定するために、前記複数の高アドレスビットが利用可能でないとの決定に応答して、前記ホストメモリコントローラから通信される複数のアドレスを有する、少なくとも1つの高アドレスビットのための予め定められた値を使用し、かつ、
第2のアドレス空間を指定するために、前記複数の高アドレスビットが利用可能であるとの決定に応答して、前記少なくとも1つの高アドレスビットのために使用される、少なくとも1つのピン上の、前記ホストメモリコントローラから通信される複数の値を使用する、ためのものであり、
前記第2のアドレス空間は、前記第1のアドレス空間よりも大きい、デバイス。
[項目54]
前記メモリモジュールコントローラはさらに、
前記複数の高アドレスビットが利用可能であることを示すコマンドを、前記ホストメモリコントローラから受信し、かつ、
前記複数の高アドレスビットが利用可能であることを示すべく、レジスタを設定し、
前記複数の高アドレスビットが利用可能かどうかの前記決定は、前記レジスタ内の値を読み取ることによってなされる、項目53に記載のデバイス。
[項目55]
前記バスの複数の機能のうちの少なくとも1つ、および前記メモリモジュールのインターフェース構成に基づいて、前記複数の高アドレスビットは利用可能でない、項目54に記載のデバイス。
[項目56]
前記メモリモジュールが、前記バス上でサポートされるものより少ないアドレス指定のために使用されるピンを有する場合、前記複数の高アドレスビットは利用可能でない、項目55に記載のデバイス。
[項目57]
前記メモリモジュールが、Small Outline Dual In−line Memory Module(SODIMM)を含む場合、前記複数の高アドレスビットは利用可能でない、項目56に記載のデバイス。
[項目58]
前記コマンドが、モードレジスタセットコマンド(MRSコマンド)を含み、かつ、
設定される前記レジスタは、前記MRSコマンドによって設定される複数のモードレジスタのうちの1つを含む、項目54に記載のデバイス。
[項目59]
前記メモリモジュールコントローラは、前記バス上および前記メモリモジュール上で、サポートされる異なる複数のインターフェース構成のための異なる複数のアドレス指定機能をサポートする、項目53から58のいずれか一項に記載のデバイス。
[項目60]
バスを介してメモリモジュールに連結されるデバイスであって、
前記デバイスは、ホストメモリコントローラロジックを備えており、
前記ホストメモリコントローラロジックは、
実行すべき少なくとも1つの電力管理動作を示すプリクロックイネーブル(CKE)コマンドを、前記バスを介して、前記メモリモジュールに送信し、かつ、
メモリモジュールコントローラに対し、CKEロー信号に応答して、示される前記少なくとも1つの電力管理動作を実行させるべく、前記プリクロックイネーブル(CKE)コマンドの送信後、前記CKEロー信号を前記メモリモジュールにアサートする、デバイス。
[項目61]
前記プリクロックイネーブル(CKE)コマンドは、複数の電力管理状態のうちの1つの電力管理状態を示し、
示される前記少なくとも1つの電力管理動作は、前記メモリモジュールを、示される前記1つの電力管理状態に構成すべく実行される複数の動作を含む、項目60に記載のデバイス。
[項目62]
前記複数の電力管理状態の各々は、複数の異なるスリープ状態を含み、前記複数の異なるスリープ状態においては、複数の異なるレベルの電力が前記メモリモジュール内の複数の異なるコンポーネントに適用され、
前記CKEロー信号を送信することは、前記メモリモジュールコントローラに対し、前記プリクロックイネーブル(CKE)コマンド内で指定された電力管理スリープ状態に入るための複数の動作を実行させる、項目61に記載のデバイス。
[項目63]
バスを介して、ホストメモリコントローラに連結される、メモリモジュールコントローラ内に実装されるデバイスであって、
前記デバイスは、メモリモジュールコントローラロジックを備えており、
前記メモリモジュールコントローラロジックは、
実行すべき少なくとも1つの電力管理動作を示す、プリクロックイネーブル(CKE)コマンドを受信し、
前記プリクロックイネーブル(CKE)コマンドの受信後、CKEロー信号を検出し、かつ、
前記CKEロー信号に応答して、前記プリクロックイネーブル(CKE)コマンド内の示される前記少なくとも1つの電力管理動作を実行する、ためのものである、デバイス。
[項目64]
前記メモリモジュールコントローラロジックはさらに、
前記少なくとも1つの電力管理動作を示すべく、レジスタを設定し、
前記CKEロー信号に応答して、前記レジスタを読み取ることによって、実行すべき前記少なくとも1つの電力管理動作を決定する、項目63に記載のデバイス。
[項目65]
前記メモリモジュールコントローラロジックはさらに、
実行すべき少なくとも1つの電力管理動作を示さない前記レジスタに応答して、既定のCKEロー処理動作を実行する、項目64に記載のデバイス。
[項目66]
前記プリクロックイネーブル(CKE)コマンドは、複数の電力管理状態のうちの1つの電力管理状態を示し、
実行される前記少なくとも1つの電力管理動作は、前記メモリモジュールを、示される前記1つの電力管理状態に構成すべく実行される複数の動作を含む、項目63から65のいずれか一項に記載のデバイス。
[項目67]
複数の電力管理状態の各々は、複数の異なるスリープ状態を含み、前記複数の異なるスリープ状態においては、複数の異なるレベルの電力が前記メモリモジュール内の複数の異なるコンポーネントに適用され、
示される前記少なくとも1つの電力管理動作を実行することは、前記プリクロックイネーブル(CKE)コマンド内で指定された電力管理スリープ状態に入る、項目63から66のいずれか一項に記載のデバイス。
[項目68]
バスを介して、メモリモジュールに連結される、デバイスであって、
前記デバイスは、ホストメモリコントローラを備えており、
前記ホストメモリコントローラは、
前記メモリモジュールから戻されるリードデータパケットが少なくとも1つのライトクレジットを示すかどうかを決定し、かつ、
前記リードデータパケットが少なくとも1つのライトクレジットを示すとの決定に応答して、複数のライトクレジットをインクリメントする、デバイス。
[項目69]
前記ホストメモリコントローラはさらに、
複数の利用可能なライトクレジットが存在するとの決定に応答して、ライトコマンドを前記メモリモジュールに送信し、かつ、
前記ライトコマンドの送信に応答して、前記複数のライトクレジットをデクリメントする、項目68に記載のデバイス。
[項目70]
前記リードデータパケットは、前記メモリモジュール内のデータを読み取るために、前記ホストメモリコントローラが、前記メモリモジュールに送信したリードリクエストに応答して戻される、項目68または69に記載のデバイス。
[項目71]
複数の前記リードデータパケットは、複数のライトクレジットを示す、項目68から70のいずれか一項に記載のデバイス。
[項目72]
バスを介して、ホストメモリコントローラからの複数のライトリクエストを処理するためのメモリモジュール内のデバイスであって、前記デバイスは、
ライトクレジットカウンタと、
メモリモジュールコントローラロジックと、を備えており、
前記メモリモジュールコントローラロジックは、前記ホストメモリコントローラからのライトリクエストの完了に応答して、前記ライトクレジットカウンタをインクリメントし、
前記ホストメモリコントローラからのリードリクエストに応答して、リードデータパケットを生成し、
前記ホストメモリコントローラに戻すための前記リードデータパケット内の前記ライトクレジットカウンタに示される複数のライトクレジットを示すためのものである、デバイス。
[項目73]
前記メモリモジュールコントローラロジックはさらに、
ライトリクエストのためのライトバッファ内のライトデータを、複数のメモリストレージ要素にデステージすることによって、前記ライトリクエストを完了する、項目72に記載のデバイス。
[項目74]
複数のライトクレジットが前記リードデータパケット内に示される、項目72または73に記載のデバイス。
[項目75]
前記メモリモジュールコントローラロジックはさらに、
前記ライトクレジットカウンタが閾値を超えるかどうかを決定し、および、
前記ライトクレジットカウンタが前記閾値を超えるという決定に応答して、前記ライトクレジットカウンタ内に少なくとも1つの前記ライトクレジットを戻すパケットを前記ホストメモリコントローラに送信する、項目72から74のいずれか一項に記載のデバイス。
[項目76]
前記ライトクレジットカウンタが前記閾値を超える場合に、前記ホストに送信される、ライトクレジット数を示す前記パケットは、リードデータを有さないリードデータパケットを含む、項目75に記載のデバイス。
[項目77]
バスを介してホストメモリコントローラと通信するメモリモジュール内のデバイスであって、前記デバイスは、メモリモジュールコントローラを備えており、
前記メモリモジュールコントローラは、
エラーの検出に応答して、複数のエラー処理動作が実行されていることを、前記ホストメモリコントローラに対し、シグナリングすべく、第1のエラー信号を前記バス上のエラーピンにアサートし、
エラーの検出に応答して、前記バスを初期状態に戻すべく、複数のエラー処理動作を実行し、かつ、
複数のエラー処理動作が完了し、かつ、前記バスが前記初期状態に戻されたことをシグナリングすべく、第2のエラー信号を前記バス上の前記エラーピンにアサートする、デバイス。
[項目78]
前記第1のエラー信号は、エラー信号ローを含み、かつ、前記第2のエラー信号は、エラー信号ハイを含む、項目77に記載のデバイス。
[項目79]
前記複数のエラー処理動作は、
すべての保留中のリードリクエストを破棄し、
ライトバッファ内の複数のライトを、前記メモリモジュール内の複数のストレージ要素にデステージし、かつ、
複数のメモリモジュールコントローラバッファをリセットする、項目77または78に記載のデバイス。
[項目80]
前記複数のエラー処理動作は、戻すための複数のライトクレジットのためのライトクレジットカウンタをリセットすることを含む、項目77から79のいずれか一項に記載のデバイス。
[項目81]
前記ホストメモリコントローラからの、前記第1のエラー信号が受信されたという受信確認の受信に応答して、前記複数のエラー処理動作が実行される、項目77から80のいずれか一項に記載のデバイス。
[項目82]
バスを介してメモリモジュールに連結されるデバイスであって、
前記デバイスは、ホストメモリコントローラロジックを備えており、
前記ホストメモリコントローラロジックは、
エラーピン上に、前記メモリモジュールからの第1のエラー信号を検出し、
前記第1のエラー信号に応答して、前記メモリモジュールに対する、複数のリードおよびライト動作を中断し、
前記エラーピン上に、前記メモリモジュールからの第2のエラー信号を検出し、かつ、
前記第2のエラー信号の検出に応答して、前記メモリモジュールに対する、複数のリードおよびライト動作を再開する、ためのものである、デバイス。
[項目83]
前記第1のエラー信号は、エラー信号ローを含み、かつ、前記第2のエラー信号は、エラー信号ハイを含む、項目82に記載のデバイス。
[項目84]
前記ホストメモリコントローラロジックはさらに、
前記第1のエラー信号が受信されたという受信確認を前記メモリモジュールに送信し、
前記受信確認の送信に応答して、前記複数のリードおよびライト動作を中断することおよび複数のエラー処理動作を実行することが行われる、項目82または83に記載のデバイス。
[項目85]
前記ホストメモリコントローラロジックはさらに、
前記第1のエラー信号に応答して、複数のライトコマンドの送信可能時を示す複数のライトクレジットを最大量に設定する、項目82から84のいずれか一項に記載のデバイス。
[項目86]
バスを介して、ホストメモリコントローラと通信するメモリモジュール内のデバイスであって、
前記デバイスは、メモリモジュールコントローラロジックを備えており、
前記メモリモジュールコントローラロジックは、
前記メモリモジュール内に、ライトリクエストのためのライトエラーを検出し、かつ、
前記ライトエラーの検出に応答して、前記バス上に、前記ホストメモリコントローラに対するエラー信号をアサートする、デバイス。
[項目87]
前記エラー信号は、検出された前記ライトエラーに関する、前記ホストメモリコントローラとの唯一の通信である、項目86に記載のデバイス。
[項目88]
前記エラー信号は、前記バス上のエラーピン上にアサートされたエラーロー信号を含む、項目86または87に記載のデバイス。
[項目89]
前記ライトリクエストの予め定められた時間内に前記エラー信号を送信しないことは、前記ライトリクエストが正常に完了したことを示す、項目86から88のいずれか一項に記載のデバイス。
[項目90]
バスを介して、メモリモジュールに連結されるデバイスであって、
前記デバイスは、ホストメモリコントローラロジックを備えており、
前記ホストメモリコントローラロジックは、
ライトリクエストを前記メモリモジュールに送信し、
前記メモリモジュールからアサートされたエラー信号を検出し、かつ、
前記ライトリクエストの送信の予め定められた時間内に前記エラー信号を検出することに応答して、前記ライトリクエストを再送信する、デバイス。
[項目91]
前記エラー信号は、前記バス上のエラーピン上にアサートされたエラーロー信号を含む、項目90に記載のデバイス。
[項目92]
前記ホストメモリコントローラロジックはさらに、
前記予め定められた時間後に、前記エラー信号を受信しないことに応答して、前記ライトリクエストを正常に完了したものとして処理する、項目90または91に記載のデバイス。
[項目93]
ライトリクエストエラーに無関係のエラーに対し、前記エラー信号が送信された場合において、前記予め定められた時間内に、前記エラー信号が受信されたときは、前記ライトリクエストが再送信される、項目90から92のいずれか一項に記載のデバイス。
[項目94]
前記ライトリクエストを前記再送信することは、前記エラー信号の前記予め定められた時間内に送信された複数のライトリクエストを決定することを含み、
前記再送信は、決定された前記複数のライトリクエストを再送信することを含む、項目90から93のいずれか一項に記載のデバイス。
[項目95]
前記ホストメモリコントローラロジックはさらに、
前記エラー信号に対し決定された、複数のライトリクエストエラーに無関係のエラー処理動作を実行する、項目90から94のいずれか一項に記載のデバイス。
[項目96]
前記ライトリクエストを再送信することに加え、複数のライトエラーに無関係の前記エラー処理動作が実行される、項目95に記載のデバイス。
[項目97]
バスを介してホストメモリコントローラと通信するメモリモジュール内のデバイスであって、前記デバイスは、
スクランブラシードと、
メモリモジュールコントローラロジックと、を備えており、
前記メモリモジュールコントローラロジックは、
リードリクエストに応答して、前記メモリモジュールのストレージ要素に格納されたデータを取得し、
リードデータパケット内に含めるべく、前記スクランブラシードを使用して、取得された前記データをスクランブルし、
スクランブルされた前記データを有する前記リードデータパケットを、前記ホストメモリコントローラに戻し、かつ、
前記スクランブラシードを更新する、ためのものである、デバイス。
[項目98]
前記スクランブラシードは、前記リードデータパケット内に含まれる前記リードデータのアドレスをスクランブルする、項目97に記載のデバイス。
[項目99]
前記スクランブラシードを更新することは、前記スクランブラシードを疑似ランダム方式に更新することを含む、項目97または98に記載のデバイス。
[項目100]
前記メモリモジュールコントローラロジックは、前記リードデータをスクランブルするためのスクランブラアルゴリズムを使用し、
前記スクランブラアルゴリズムは、前記リードデータパケット内のスクランブルされた前記リードデータをスクランブル/デスクランブルするための、前記ホストメモリコントローラにおいて実装された同一のスクランブラ/デスクランブラアルゴリズムを含んでいる、項目97から99のいずれか一項に記載のデバイス。
[項目101]
前記メモリモジュールコントローラロジックは、
前記メモリモジュール内のライトアドレスを示すスクランブルされたライトデータを有するライトリクエストを受信し、
アンスクランブルされたライトデータを生成すべく、前記ライトアドレスを使用して、スクランブルされた前記ライトデータをデスクランブルし、かつ、
前記メモリモジュール内の前記ライトアドレスに、アンスクランブルされた前記ライトデータを格納する、項目97から100のいずれか一項に記載のデバイス。
[項目102]
バスを介して、メモリモジュールと通信するデバイスであって、
前記デバイスは、
スクランブラシードと、
ホストメモリコントローラロジックと、を備えており、
前記ホストメモリコントローラロジックは、
リードリクエストに応答して、戻されるスクランブルされたリードデータを有するリードデータパケットを受信し、
前記リードデータパケットの受信に応答して、前記スクランブラシードを更新し、かつ、
スクランブルされた前記リードデータをデスクランブルすべく、前記スクランブラシードを使用する、ためのものである、デバイス。
[項目103]
前記リードデータのアドレスが前記リードデータパケット内でスクランブルされており、
スクランブルされた前記リードデータをデスクランブルすることはさらに、前記リードデータパケットが戻されるための前記リードリクエストを決定すべく、スクランブルされた前記アドレスをデスクランブルすることを含む、項目102に記載のデバイス。
[項目104]
前記スクランブラシードを更新することは、前記スクランブラシードを疑似ランダム方式に更新することを含む、項目103に記載のデバイス。
[項目105]
前記ホストメモリコントローラロジックは、前記リードデータをスクランブルすべく、スクランブラアルゴリズムを使用し、
前記スクランブラアルゴリズムは、前記リードデータパケット内のスクランブルされた前記リードデータをスクランブル/デスクランブルするための、前記ホストメモリコントローラにおいて実装された同一のスクランブラ/デスクランブラアルゴリズムを含む、項目102から104のいずれか一項に記載のデバイス。
[項目106]
バスを介してホストメモリコントローラと通信するメモリモジュール内のデバイスであって、
前記デバイスは、メモリモジュールコントローラロジックを備えており、
前記メモリモジュールコントローラロジックは、
第1のインターフェースパラメータを示すインターフェースパラメータに応答して、前記バスを介してデータを送信するために使用する第1のバス幅を有する第1のバスインターフェース構成を選択し、かつ、
第2のインターフェースパラメータを示す前記インターフェースパラメータに応答して、前記バスを介してデータを送信するために使用する第2のバス幅を有する第2のバスインターフェース構成を選択するためのものであり、
前記第1のバス幅は、前記第2のバス幅より、さらに少ない複数のビットを有する、デバイス。
[項目107]
前記メモリモジュールコントローラロジックはさらに、
前記第1のインターフェースパラメータを示す前記インターフェースパラメータに応答して、転送リクエストを実行すべく、前記第1のバスインターフェース構成のための第1の転送数を生成し、
前記第2のインターフェースパラメータを示す前記インターフェースパラメータに応答して、前記転送リクエストを実行すべく、前記第1のバスインターフェース構成のための第2の転送数を生成し、
前記第1の転送数は、前記第2の転送数より大きい、項目106に記載のデバイス。
[項目108]
前記メモリモジュールコントローラロジックはさらに、
第3のインターフェースパラメータを示すインターフェースパラメータに応答して、前記バスを介してデータを送信するために使用する第3のバス幅を有する第3のバスインターフェース構成を選択し、
前記第2のバス幅は、前記第3のバス幅より、さらに少ない複数のビットを有する、項目106または107に記載のデバイス。
[項目109]
前記第1のバス幅は9ビット、前記第2のバス幅は18ビット、および前記第3のバス幅は72ビットを含む、項目108に記載のデバイス。
[項目110]
前記メモリモジュールコントローラロジックはさらに、
前記バス上の、受信された少なくとも1つの信号に基づいて、前記インターフェースパラメータを設定する、項目106から109のいずれか一項に記載のデバイス。
[項目111]
前記メモリモジュールコントローラロジックはさらに、
前記バスにアクセスすることによって、前記バスのバス幅を決定し、
前記インターフェースパラメータは、決定された前記バス幅を示す、項目106から110のいずれか一項に記載のデバイス。
[項目112]
前記メモリモジュールコントローラロジックはさらに、
少なくとも1つのストラッピングピン上にアサートされた信号に基づいて、前記インターフェースパラメータを設定し、
前記少なくとも1つのストラッピングピンは前記バスの外部にあり、前記メモリモジュールに連結されており、前記バスの前記第1のバスインターフェース構成および前記第2のバスインターフェース構成の少なくとも1つを示す、項目106から111のいずれか一項に記載のデバイス。
Similarly, in the above description of embodiments of the invention, various features are represented in a single manner in an attempt to simplify the disclosure so as to assist in understanding the various aspects of the invention. It should be understood that the embodiments, figures, or descriptions may be summarized in some cases. This method of disclosure, however, should not be interpreted as reflecting an intention that the claimed subject matter requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all the features of a single embodiment disclosed above. Thus, the claims following the detailed description are hereby expressly incorporated into this detailed description. According to the present specification, matters described in the following items are also disclosed.
[Item 1]
A device used in a memory module coupled to a host memory controller via a bus, the device comprising:
A memory module controller logic for generating a request signal having a pulse width greater than or equal to a minimum pulse width for a host memory controller;
The minimum pulse width comprises a plurality of clock cycles necessary to ensure that the host memory controller detects the request signal;
The device wherein the pulse width of the request signal indicates at least one function in addition to the request signal to the host memory controller.
[Item 2]
The request signal causes the host memory controller to generate a grant signal,
The device of
[Item 3]
The pulse width causes the host memory controller to execute the at least one function indicated by the pulse width in addition to transmitting the grant signal in response to the request signal. device.
[Item 4]
4. The device according to
[Item 5]
Generating the request signal having at least a first pulse width greater than the minimum pulse width indicates at least a first function;
Generating the request signal having at least a second pulse width greater than the first pulse width indicates at least a second function;
Item 5. The device of any of items 1-4, wherein generating the request signal having at least a third pulse width greater than the second pulse width indicates at least a third function.
[Item 6]
When the request signal having the first pulse width is generated, the first function is indicated;
When the request signal having the second pulse width is generated, the second function is indicated,
[Item 7]
The generated pulse width comprises one of a plurality of pulse widths equal to the minimum pulse width or a plurality of the minimum pulse widths;
The plurality of pulse widths are divided by a minimum number of clock cycles required to ensure detection of the pulse width by the host memory controller;
[Item 8]
The minimum pulse width comprises two clocks;
In
[Item 9]
[Item 10]
A device coupled to at least one memory module via a bus, the device comprising host memory controller logic;
The host memory controller logic is
Detecting a request signal from the memory module having a pulse width greater than or equal to a minimum pulse width;
Determine the function corresponding to the pulse width of the request signal,
For executing the determined function,
The minimum pulse width has a plurality of clock cycles necessary to ensure that the host memory controller detects the request signal;
A device wherein the pulse width of the request signal indicates at least one function in addition to the request signal to the host memory controller.
[Item 11]
The host memory controller logic further comprises:
11. The device of
[Item 12]
The host memory controller logic further comprises:
Determining that the pulse width is equal to the minimum pulse width;
[Item 13]
The host memory controller logic further comprises:
Determining the pulse width;
The determined function is
The first function,
A second function, and
Contains at least one of the third functions,
The first function is responsive to the determined pulse width including at least a first pulse width greater than or equal to the minimum pulse width;
The second function is responsive to the determined pulse width including at least a second pulse width greater than the first pulse width;
13. The device of any one of
[Item 14]
When the request signal having the first pulse width is generated, only the first function is shown,
When the request signal having the second pulse width is generated, the second function is indicated,
14. The device of item 13, wherein the third function is indicated when the request signal having the third pulse width is generated.
[Item 15]
A device mounted in a first memory module coupled to a host memory controller and a second memory module via a bus,
The device comprises memory module controller logic,
The memory module controller logic is:
Determining a timing adjustment based on at least one component in at least one of the first memory module and the second memory module;
A device for adjusting output timing to the host memory controller based on the determined timing adjustment to match output timing in the second memory module.
[Item 16]
Determining the timing adjustment is
Accelerating the timing in response to the first memory module having at least one component that affects output timing not included in the second memory module; and
Adding a delay to the timing in response to the second memory module having at least one component that affects the output timing in the second memory module not included in the first memory module. The device according to item 15, comprising:
[Item 17]
Determining the timing adjustment includes both accelerating the timing and adding the delay;
The device of
[Item 18]
The at least one component includes a data buffer in the first memory module;
The device of
[Item 19]
The at least one component includes a register in the second memory module;
The device of
[Item 20]
20. The device of item 19, wherein the register in the second memory module is on a command, address, and multiple control buses.
[Item 21]
21. A device according to any one of items 15 to 20, wherein the output having the adjusted timing comprises an output from a data buffer of the first memory module.
[Item 22]
22. The device according to any one of items 15 to 21, wherein the first memory module and the second memory module include a plurality of different types of dual in-line memory modules (DIMMs).
[Item 23]
24. The device of
[Item 24]
24. The device of item 23, wherein the timing adjustment includes accelerating the output timing when the first memory module includes a data buffer and the second memory module includes a UDIMM.
[Item 25]
The timing adjustment is
Delaying the output timing when the second memory module includes an RDIMM and the first memory module does not include a register; and
24. The device of item 23, comprising accelerating the output timing when the first memory module includes a data buffer on the output.
[Item 26]
The timing adjustment includes delaying the output timing when the second memory module includes the LRDIMM and the first memory module does not include a data buffer on the output. Device described in.
[Item 27]
A device coupled to a memory module via a bus,
The device comprises host memory controller logic,
The host memory controller logic is for sending a mode register command to the memory module over a channel to program one of a plurality of mode registers in the memory module;
The device wherein the mode register command indicates one of the plurality of mode registers and includes data for the indicated mode register.
[Item 28]
28. The device of item 27, wherein the mode register command is sent to the memory module during initialization of the memory module before a bus for the memory module is serviced for multiple bus operations.
[Item 29]
The mode register command includes a single cycle command; and
29. The device of
[Item 30]
The mode register command uses a plurality of address input signals and a plurality of command input signals to indicate one of the plurality of mode registers and provide data for the indicated mode register. 29. The device according to
[Item 31]
The mode register command uses the command input signals on the bus to indicate the mode register to use, and
The device of
[Item 32]
The memory module includes a first memory module, and the mode register command includes a first mode register command, and the host memory controller logic further includes:
Sending a second mode register command to the second memory module via the bus;
The first mode register command and the second mode register command have the same format;
In the second mode register command, the data in the second mode register command in the mode register is transmitted to the second memory module as one of a plurality of memory chips on the second memory module. 32. The device according to any one of items 27 to 31, which is stored in a device.
[Item 33]
From item 27, there are 16 mode registers in the memory module, the mode register including four input bits indicating one of the 16 mode registers for storing the data. 33. The device according to any one of 32.
[Item 34]
A device implemented in a memory module that communicates with a host memory controller via a bus, the device comprising:
Multiple mode registers,
Memory module controller logic, and
The memory module controller logic is:
Receiving a mode register command from the host memory controller via a channel to program one of the plurality of mode registers;
Writing data contained in the mode register command to the indicated mode register in the memory module controller;
The device wherein the mode register command indicates one of the plurality of mode registers and includes data for the indicated mode register.
[Item 35]
35. The device of
[Item 36]
The mode register command includes a single cycle command; and
36. The device of item 35, wherein a two-cycle command is used after servicing the memory module to communicate between the memory module and the host memory controller via the bus.
[Item 37]
To indicate one of the plurality of mode registers and provide the data for the indicated mode register, the mode register command includes a plurality of address input signals and a plurality of commands to the memory module 37. A device according to any one of
[Item 38]
The mode register command uses the command input signals on the bus to indicate the mode register to use, and
38. The device of item 37, wherein the mode register command uses the plurality of address input signals on the bus to provide the data for the indicated mode register.
[Item 39]
A device for transferring data to a memory module via a bus,
The device comprises host memory controller logic,
The host memory controller logic is
Placing the first half command for the memory module on the bus in a first clock cycle;
A chip select command for the memory module corresponding to the first half command is arranged on the bus,
Placing a second half command on the bus in a second clock cycle after the first clock cycle;
The device, wherein the memory module receives the second half command after receiving the first half command at a delay interval.
[Item 40]
40. The device of item 39, wherein the host memory controller does not issue an additional chip select command on the bus to instruct the memory module to access the second half command.
[Item 41]
Item 39 or wherein the second clock cycle is one or two clocks from the first clock cycle and the delay interval is one or two clock cycles since the first half command was received. 40. The device according to 40.
[Item 42]
Item 41, wherein the second clock cycle is one clock from the first clock cycle, and the delay interval is one clock cycle after the chip select command is received in a normal timing mode. Device described in.
[Item 43]
The host memory controller logic further initializes a fast timing mode,
In the fast timing mode,
The first half command and the second half command are respectively arranged on the bus in two clock cycles,
The chip select command is arranged on the bus in one clock cycle from the first clock cycle when the first half command is arranged on the bus,
The second clock cycle is two clocks from the first clock cycle; and
43. A device according to item 42, wherein the delay interval has two clock cycles.
[Item 44]
The host memory controller logic further includes
Programming the memory module during initialization to indicate the fast timing mode; and
44. The device of item 43, wherein the memory module is programmed during initialization to indicate the normal timing mode.
[Item 45]
45. The device according to any one of items 39 to 44, wherein the first half command and the second half command include a plurality of portions related to one address for a read command.
[Item 46]
A device implemented in a memory module that communicates with a host memory controller via a bus,
The device comprises memory module controller logic,
The memory module controller logic is:
Receiving a chip select command for the first half command placed on the bus in the first clock cycle by the host memory controller;
In response to the chip select command, receiving the first half command on the bus; and
Receiving a second half command placed on the bus in a second clock cycle after the first clock cycle by the host memory controller;
The second clock cycle after the first clock cycle is a delay interval from receipt of the first half command.
[Item 47]
47. The device of item 46, wherein the memory module automatically receives the second half command on the bus without automatically receiving an additional chip select signal from the host memory controller.
[Item 48]
The second clock cycle is 1 or 2 clocks from the first clock cycle, and the delay interval is 1 or 2 clock cycles since the chip select command was received, Item 46 or 48. The device according to 47.
[Item 49]
Item 48, wherein the second clock cycle is one clock from the first clock cycle, and the delay interval is one clock cycle after the chip select command is received in a normal timing mode. Device described in.
[Item 50]
The memory module controller logic further initializes a fast timing mode,
In the fast timing mode,
The first half command and the second half command are respectively arranged on the bus in two clock cycles,
The chip select command is arranged on the bus in one clock cycle from the first clock cycle when the first half command is arranged on the bus,
The second clock cycle is two clocks from the first clock cycle, and
50. The device of item 49, wherein the delay interval used by the memory module to determine when to receive the second half command has two clock cycles from receipt of the first half command.
[Item 51]
The memory module controller logic further includes
Determining whether the timing mode is the fast timing mode, and in response to determining that the timing mode is the fast timing mode, the fast timing mode is initialized;
51. The device of
[Item 52]
52. The device according to any one of items 46 to 51, wherein the first half command and the second half command include a plurality of portions related to one address for a read command.
[Item 53]
A device in a memory module for processing a plurality of addresses in a plurality of commands transmitted from a host memory controller via a bus,
The device comprises a memory module controller;
The memory module controller
Determining whether a plurality of high address bits for the memory module are available;
At least one address having a plurality of addresses communicated from the host memory controller in response to determining that the plurality of high address bits are not available to specify a first address space in the memory module Use a predetermined value for the two high address bits, and
On at least one pin used for the at least one high address bit in response to determining that the plurality of high address bits are available to specify a second address space , For using a plurality of values communicated from the host memory controller,
The device, wherein the second address space is larger than the first address space.
[Item 54]
The memory module controller further includes
Receiving a command from the host memory controller indicating that the plurality of high address bits are available; and
Set a register to indicate that the plurality of high address bits are available;
54. The device of item 53, wherein the determination of whether the plurality of high address bits are available is made by reading a value in the register.
[Item 55]
55. The device of
[Item 56]
56. The device of item 55, wherein the plurality of high address bits are not available when the memory module has pins that are used for addressing less than that supported on the bus.
[Item 57]
57. The device according to
[Item 58]
The command includes a mode register set command (MRS command); and
55. A device according to
[Item 59]
59. A device according to any of items 53 to 58, wherein the memory module controller supports different addressing functions for different supported interface configurations on the bus and on the memory module. .
[Item 60]
A device coupled to a memory module via a bus,
The device comprises host memory controller logic,
The host memory controller logic is
A pre-clock enable (CKE) command indicating at least one power management operation to be performed is sent to the memory module via the bus; and
Assert the CKE low signal to the memory module after sending the pre-clock enable (CKE) command to cause the memory module controller to perform the indicated at least one power management operation in response to the CKE low signal. To the device.
[Item 61]
The pre-clock enable (CKE) command indicates one power management state among a plurality of power management states,
61. The device of
[Item 62]
Each of the plurality of power management states includes a plurality of different sleep states, wherein the plurality of different sleep states apply a plurality of different levels of power to a plurality of different components within the memory module;
[Item 63]
A device implemented in a memory module controller coupled to a host memory controller via a bus,
The device comprises memory module controller logic,
The memory module controller logic is:
Receiving a pre-clock enable (CKE) command indicating at least one power management operation to be performed;
Detecting a CKE low signal after receiving the pre-clock enable (CKE) command; and
A device for performing the at least one power management operation indicated in the pre-clock enable (CKE) command in response to the CKE low signal.
[Item 64]
The memory module controller logic further includes
Set a register to indicate the at least one power management operation;
64. The device of item 63, wherein the device determines the at least one power management operation to be performed by reading the register in response to the CKE low signal.
[Item 65]
The memory module controller logic further includes
65. The device of
[Item 66]
The pre-clock enable (CKE) command indicates one power management state among a plurality of power management states,
66. The item of any one of items 63 through 65, wherein the at least one power management operation performed includes a plurality of operations performed to configure the memory module to the one power management state shown. device.
[Item 67]
Each of the plurality of power management states includes a plurality of different sleep states, wherein a plurality of different levels of power are applied to a plurality of different components in the memory module,
67. The device of any one of items 63 to 66, wherein performing the indicated at least one power management operation enters a power management sleep state specified in the pre-clock enable (CKE) command.
[Item 68]
A device coupled to a memory module via a bus,
The device comprises a host memory controller,
The host memory controller is
Determining whether a read data packet returned from the memory module indicates at least one write credit; and
A device that increments a plurality of write credits in response to determining that the read data packet represents at least one write credit.
[Item 69]
The host memory controller further includes
In response to determining that there are a plurality of available write credits, sending a write command to the memory module; and
69. The device of
[Item 70]
70. A device according to
[Item 71]
71. A device according to any one of
[Item 72]
A device in a memory module for processing a plurality of write requests from a host memory controller via a bus, the device comprising:
A light credit counter,
Memory module controller logic, and
The memory module controller logic increments the write credit counter in response to the completion of the write request from the host memory controller,
In response to a read request from the host memory controller, a read data packet is generated,
A device for indicating a plurality of write credits indicated in the write credit counter in the read data packet for return to the host memory controller.
[Item 73]
The memory module controller logic further includes
75. The device of item 72, wherein the write request is completed by destaging write data in a write buffer for the write request to a plurality of memory storage elements.
[Item 74]
74. A device according to item 72 or 73, wherein a plurality of write credits are indicated in the read data packet.
[Item 75]
The memory module controller logic further includes
Determining whether the light credit counter exceeds a threshold; and
75. In any one of items 72 through 74, in response to a determination that the write credit counter exceeds the threshold, a packet is returned to the host memory controller that returns at least one write credit in the write credit counter. The device described.
[Item 76]
76. The device of item 75, wherein the packet indicating the number of write credits transmitted to the host when the write credit counter exceeds the threshold includes a read data packet having no read data.
[Item 77]
A device in a memory module that communicates with a host memory controller via a bus, the device comprising a memory module controller;
The memory module controller
In response to detecting the error, assert a first error signal to the error pin on the bus to signal to the host memory controller that a plurality of error handling operations are being performed;
In response to detecting an error, performing a plurality of error handling operations to return the bus to an initial state; and
A device that asserts a second error signal to the error pin on the bus to signal that a plurality of error handling operations have been completed and the bus has been returned to the initial state.
[Item 78]
78. The device according to item 77, wherein the first error signal includes an error signal low and the second error signal includes an error signal high.
[Item 79]
The plurality of error handling operations are:
Discard all pending read requests,
Destages a plurality of writes in a write buffer to a plurality of storage elements in the memory module; and
79. A device according to item 77 or 78, wherein the device resets a plurality of memory module controller buffers.
[Item 80]
80. A device according to any one of items 77 to 79, wherein the plurality of error handling operations includes resetting a write credit counter for a plurality of write credits to return.
[Item 81]
81. The item according to any one of items 77 to 80, wherein the plurality of error processing operations are executed in response to receiving a reception confirmation from the host memory controller that the first error signal has been received. device.
[Item 82]
A device coupled to a memory module via a bus,
The device comprises host memory controller logic,
The host memory controller logic is
Detecting a first error signal from the memory module on an error pin;
In response to the first error signal, interrupting a plurality of read and write operations on the memory module;
Detecting a second error signal from the memory module on the error pin; and
A device for resuming a plurality of read and write operations to the memory module in response to detection of the second error signal.
[Item 83]
83. A device according to item 82, wherein the first error signal includes an error signal low and the second error signal includes an error signal high.
[Item 84]
The host memory controller logic further includes
Sending an acknowledgment to the memory module that the first error signal has been received;
84. A device according to item 82 or 83, wherein in response to sending the acknowledgment, the plurality of read and write operations are interrupted and a plurality of error handling operations are performed.
[Item 85]
The host memory controller logic further includes
85. The device according to any one of items 82 to 84, wherein a plurality of write credits indicating when a plurality of write commands can be transmitted are set to a maximum amount in response to the first error signal.
[Item 86]
A device in a memory module that communicates with a host memory controller via a bus,
The device comprises memory module controller logic,
The memory module controller logic is:
Detecting a write error for a write request in the memory module; and
A device that asserts an error signal on the bus to the host memory controller in response to detecting the write error.
[Item 87]
90. The device of item 86, wherein the error signal is the only communication with the host memory controller regarding the detected write error.
[Item 88]
88. A device according to item 86 or 87, wherein the error signal comprises an error low signal asserted on an error pin on the bus.
[Item 89]
89. A device according to any one of items 86 to 88, wherein failure to transmit the error signal within a predetermined time of the write request indicates that the write request has been successfully completed.
[Item 90]
A device coupled to a memory module via a bus,
The device comprises host memory controller logic,
The host memory controller logic is
Send a write request to the memory module;
Detecting an error signal asserted from the memory module; and
A device that resends the write request in response to detecting the error signal within a predetermined time of transmission of the write request.
[Item 91]
94. The device of item 90, wherein the error signal comprises an error low signal asserted on an error pin on the bus.
[Item 92]
The host memory controller logic further includes
92. A device according to item 90 or 91, wherein the write request is processed as being normally completed in response to not receiving the error signal after the predetermined time.
[Item 93]
Item 90, when the error signal is transmitted in response to an error unrelated to a write request error and the error signal is received within the predetermined time, the write request is retransmitted. 99. The device according to any one of 1 to 92.
[Item 94]
Retransmitting the write request includes determining a plurality of write requests transmitted within the predetermined time of the error signal;
94. The device according to any one of items 90 to 93, wherein the retransmission includes retransmitting the determined plurality of write requests.
[Item 95]
The host memory controller logic further includes
95. A device according to any one of items 90 to 94, which performs an error handling operation determined for the error signal and unrelated to a plurality of write request errors.
[Item 96]
96. The device of item 95, wherein in addition to retransmitting the write request, the error handling operation unrelated to multiple write errors is performed.
[Item 97]
A device in a memory module that communicates with a host memory controller via a bus, the device comprising:
With scrambled,
Memory module controller logic, and
The memory module controller logic is:
In response to a read request, obtain data stored in the storage element of the memory module;
Using the scrambled to scramble the acquired data for inclusion in a read data packet;
Returning the read data packet with the scrambled data to the host memory controller; and
A device for updating the scrambled.
[Item 98]
98. The device of item 97, wherein the scrambled scrambles an address of the read data included in the read data packet.
[Item 99]
99. The device of item 97 or 98, wherein updating the scrambled includes updating the scrambled to a pseudo-random manner.
[Item 100]
The memory module controller logic uses a scrambler algorithm to scramble the read data;
97. The scrambler algorithm comprises the same scrambler / descrambler algorithm implemented in the host memory controller for scrambling / descrambling the scrambled read data in the read data packet. 100. The device according to any one of 1 to 99.
[Item 101]
The memory module controller logic is:
Receiving a write request having scrambled write data indicating a write address in the memory module;
Descrambling the scrambled write data using the write address to generate unscrambled write data; and
101. The device according to any one of items 97 to 100, wherein the unscrambled write data is stored at the write address in the memory module.
[Item 102]
A device that communicates with a memory module via a bus,
The device is
With scrambled,
Host memory controller logic, and
The host memory controller logic is
In response to the read request, receive a read data packet having scrambled read data returned;
In response to receiving the read data packet, updating the scrambled, and
A device for using the scrambled blade to descramble the scrambled read data.
[Item 103]
The address of the read data is scrambled in the read data packet;
103. The device of
[Item 104]
104. The device of item 103, wherein updating the scrambled includes updating the scrambled in a pseudo-random manner.
[Item 105]
The host memory controller logic uses a scrambler algorithm to scramble the read data,
Items 102-104, wherein the scrambler algorithm includes the same scrambler / descrambler algorithm implemented in the host memory controller for scrambling / descrambling the scrambled read data in the read data packet. The device according to any one of the above.
[Item 106]
A device in a memory module that communicates with a host memory controller via a bus,
The device comprises memory module controller logic,
The memory module controller logic is:
In response to an interface parameter indicating a first interface parameter, selecting a first bus interface configuration having a first bus width used to transmit data over the bus; and
Responsive to the interface parameter indicating a second interface parameter, for selecting a second bus interface configuration having a second bus width used to transmit data over the bus;
The device, wherein the first bus width has a plurality of bits that are even smaller than the second bus width.
[Item 107]
The memory module controller logic further includes
Responsive to the interface parameter indicating the first interface parameter to generate a first transfer number for the first bus interface configuration to execute a transfer request;
Responsive to the interface parameter indicating the second interface parameter to generate a second transfer number for the first bus interface configuration to execute the transfer request;
107. A device according to
[Item 108]
The memory module controller logic further includes
In response to an interface parameter indicating a third interface parameter, selecting a third bus interface configuration having a third bus width used to transmit data over the bus;
108. A device according to
[Item 109]
109. The device of
[Item 110]
The memory module controller logic further includes
110. A device according to any of
[Item 111]
The memory module controller logic further includes
Determining the bus width of the bus by accessing the bus;
111. A device according to any one of
[Item 112]
The memory module controller logic further includes
Setting the interface parameter based on a signal asserted on at least one strapping pin;
The at least one strapping pin is external to the bus and is coupled to the memory module and indicates at least one of the first bus interface configuration and the second bus interface configuration of the bus. 111. A device according to any one of 106 to 111.
Claims (14)
ホストメモリコントローラに対する、最小パルス幅より大きいか等しいパルス幅を有するリクエスト信号を生成するメモリモジュールコントローラロジックを備えており、
前記最小パルス幅は、前記ホストメモリコントローラが前記リクエスト信号を検出することを保証するために必要な複数のクロックサイクルを備えており、
前記リクエスト信号の前記パルス幅は、前記ホストメモリコントローラに対する前記リクエスト信号に加え、少なくとも1つのファンクションを示す、デバイス。 A device used in a memory module coupled to a host memory controller via a bus, the device comprising:
A memory module controller logic for generating a request signal having a pulse width greater than or equal to a minimum pulse width for a host memory controller;
The minimum pulse width comprises a plurality of clock cycles necessary to ensure that the host memory controller detects the request signal;
The device wherein the pulse width of the request signal indicates at least one function in addition to the request signal to the host memory controller.
前記メモリモジュールコントローラロジックはさらに、前記グラント信号の受信に応答して、データを前記ホストメモリコントローラに送信する、請求項1に記載のデバイス。 The request signal causes the host memory controller to generate a grant signal,
The device of claim 1, wherein the memory module controller logic further transmits data to the host memory controller in response to receiving the grant signal.
前記第1のパルス幅より大きい少なくとも第2のパルス幅を有する前記リクエスト信号を生成することは、少なくとも第2のファンクションを示し、
前記第2のパルス幅より大きい少なくとも第3のパルス幅を有する前記リクエスト信号を生成することは、少なくとも第3のファンクションを示す、請求項1から4のいずれか一項に記載のデバイス。 Generating the request signal having at least a first pulse width greater than the minimum pulse width indicates at least a first function;
Generating the request signal having at least a second pulse width greater than the first pulse width indicates at least a second function;
5. The device according to claim 1, wherein generating the request signal having at least a third pulse width greater than the second pulse width indicates at least a third function. 6.
前記第2のパルス幅を有する前記リクエスト信号が生成されるとき、前記第2のファンクションが示され、
前記第3のパルス幅を有する前記リクエスト信号が生成されるとき、前記第3のファンクションが示される、請求項5に記載のデバイス。 When the request signal having the first pulse width is generated, the first function is indicated;
When the request signal having the second pulse width is generated, the second function is indicated,
The device of claim 5, wherein the third function is indicated when the request signal having the third pulse width is generated.
前記複数のパルス幅は、前記ホストメモリコントローラによる前記パルス幅の検出を保証するために必要なクロックサイクルの最小数によって分割されており、
異なる複数の生成された前記パルス幅は、前記リクエスト信号内の複数の異なるファンクションをエンコードする、請求項1から6のいずれか一項に記載のデバイス。 The generated pulse width comprises one of a plurality of pulse widths equal to the minimum pulse width or a plurality of the minimum pulse widths;
The plurality of pulse widths are divided by a minimum number of clock cycles required to ensure detection of the pulse width by the host memory controller;
7. A device according to any one of the preceding claims, wherein a plurality of different generated pulse widths encode a plurality of different functions in the request signal.
6、10、および14クロックのパルス幅のうちの1つのパルス幅で前記リクエスト信号を生成することは、前記ホストメモリコントローラが前記リクエスト信号の処理に加えて実行する異なるファンクションを示す、請求項7に記載のデバイス。 The minimum pulse width comprises two clocks;
8. Generating the request signal with one of a pulse width of 6, 10, and 14 clocks indicates a different function that the host memory controller performs in addition to processing the request signal. Device described in.
前記ホストメモリコントローラロジックは、
前記メモリモジュールからの、最小パルス幅より大きいか等しいパルス幅を有するリクエスト信号を検出し、
前記リクエスト信号のパルス幅に対応するファンクションを決定し、
決定された前記ファンクションを実行するためのものであり、
前記最小パルス幅は、前記ホストメモリコントローラが前記リクエスト信号を検出することを保証するために必要な複数のクロックサイクルを有し、
前記リクエスト信号のパルス幅は、前記ホストメモリコントローラに対する前記リクエスト信号に加えて、少なくとも1つのファンクションを示す、デバイス。 A device coupled to at least one memory module via a bus, the device comprising host memory controller logic;
The host memory controller logic is
Detecting a request signal from the memory module having a pulse width greater than or equal to a minimum pulse width;
Determine the function corresponding to the pulse width of the request signal,
For executing the determined function,
The minimum pulse width has a plurality of clock cycles necessary to ensure that the host memory controller detects the request signal;
A device wherein the pulse width of the request signal indicates at least one function in addition to the request signal to the host memory controller.
前記リクエスト信号の受信に応答して、前記バスを介して、前記メモリモジュールに送信するグラント信号を生成する、請求項10に記載のデバイス。 The host memory controller logic further comprises:
The device of claim 10, wherein the device generates a grant signal to be transmitted to the memory module via the bus in response to receiving the request signal.
前記パルス幅が前記最小パルス幅に等しいことを決定し、
決定された前記ファンクションが、前記最小パルス幅に等しい前記リクエスト信号の前記パルス幅に応答して、追加のファンクションなしに、前記リクエスト信号を含む、請求項10または11に記載のデバイス。 The host memory controller logic further comprises:
Determining that the pulse width is equal to the minimum pulse width;
12. A device according to claim 10 or 11, wherein the determined function comprises the request signal without an additional function in response to the pulse width of the request signal equal to the minimum pulse width.
前記パルス幅を決定し、
決定された前記ファンクションは、
第1のファンクション、
第2のファンクション、および
第3のファンクションのうち少なくとも1つを含んでおり、
前記第1のファンクションは、前記最小パルス幅より大きいか等しい少なくとも第1のパルス幅を含む前記決定されたパルス幅に応答し、
前記第2のファンクションは、前記第1のパルス幅より大きい少なくとも第2のパルス幅を含む前記決定されたパルス幅に応答し、
前記第3のファンクションは、前記第2のパルス幅より大きい少なくとも第3のパルス幅を含む前記決定されたパルス幅に応答する、請求項10から12のいずれか一項に記載のデバイス。 The host memory controller logic further comprises:
Determining the pulse width;
The determined function is
The first function,
Including at least one of a second function and a third function;
The first function is responsive to the determined pulse width including at least a first pulse width greater than or equal to the minimum pulse width;
The second function is responsive to the determined pulse width including at least a second pulse width greater than the first pulse width;
13. A device according to any one of claims 10 to 12, wherein the third function is responsive to the determined pulse width including at least a third pulse width greater than the second pulse width.
前記第2のパルス幅を有する前記リクエスト信号が生成されるとき、前記第2のファンクションが示され、
前記第3のパルス幅を有する前記リクエスト信号が生成されるとき、前記第3のファンクションが示される、請求項13に記載のデバイス。 When the request signal having the first pulse width is generated, only the first function is shown,
When the request signal having the second pulse width is generated, the second function is indicated,
14. The device of claim 13, wherein the third function is indicated when the request signal having the third pulse width is generated.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017087729A JP6370958B2 (en) | 2017-04-26 | 2017-04-26 | device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017087729A JP6370958B2 (en) | 2017-04-26 | 2017-04-26 | device |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016500074A Division JP6139010B2 (en) | 2013-03-15 | 2013-03-15 | device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017162492A true JP2017162492A (en) | 2017-09-14 |
JP6370958B2 JP6370958B2 (en) | 2018-08-08 |
Family
ID=59857965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017087729A Expired - Fee Related JP6370958B2 (en) | 2017-04-26 | 2017-04-26 | device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6370958B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022197419A1 (en) * | 2021-03-19 | 2022-09-22 | Microsoft Technology Licensing, Llc | Memory operations management in computing systems |
US11599415B2 (en) | 2021-07-09 | 2023-03-07 | Microsoft Technology Licensing, Llc | Memory tiering techniques in computing systems |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004524641A (en) * | 2001-03-13 | 2004-08-12 | マイクロン テクノロジー インコーポレイテッド | System latency levelization for read data |
JP2011040041A (en) * | 2009-08-18 | 2011-02-24 | Samsung Electronics Co Ltd | Control method of memory device for performing write leveling operation, write leveling method of memory device, memory controller performing write leveling operation, memory device and memory system |
-
2017
- 2017-04-26 JP JP2017087729A patent/JP6370958B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004524641A (en) * | 2001-03-13 | 2004-08-12 | マイクロン テクノロジー インコーポレイテッド | System latency levelization for read data |
JP2011040041A (en) * | 2009-08-18 | 2011-02-24 | Samsung Electronics Co Ltd | Control method of memory device for performing write leveling operation, write leveling method of memory device, memory controller performing write leveling operation, memory device and memory system |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022197419A1 (en) * | 2021-03-19 | 2022-09-22 | Microsoft Technology Licensing, Llc | Memory operations management in computing systems |
US11599415B2 (en) | 2021-07-09 | 2023-03-07 | Microsoft Technology Licensing, Llc | Memory tiering techniques in computing systems |
Also Published As
Publication number | Publication date |
---|---|
JP6370958B2 (en) | 2018-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6139010B2 (en) | device | |
US10002668B2 (en) | Memory device, memory module, and memory system | |
US10095421B2 (en) | Hybrid memory module bridge network and buffers | |
JP6370958B2 (en) | device | |
US11610624B2 (en) | Memory device skipping refresh operation and operation method thereof | |
CN112052195A (en) | Memory module | |
US8006029B2 (en) | DDR flash implementation with direct register access to legacy flash functions | |
US20230060322A1 (en) | Memory channel controller operation | |
BR112015019459B1 (en) | DEVICE FOR USE IN A MEMORY MODULE AND METHOD PERFORMED IN A MEMORY MODULE |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180130 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180426 |
|
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: 20180515 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20180613 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180711 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6370958 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |