JP2017162492A - device - Google Patents

device Download PDF

Info

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
Application number
JP2017087729A
Other languages
Japanese (ja)
Other versions
JP6370958B2 (en
Inventor
ナーレ、ビル
Nale Bill
シー. ジャスパー、ジョナサン
C Jasper Jonathan
シー. ジャスパー、ジョナサン
ブイ. ラヴレース、ジョン
V Lovelace John
ブイ. ラヴレース、ジョン
ケー. ナチムス、ムルガサミー
K Nachimuthu Murugasamy
ケー. ナチムス、ムルガサミー
ヂュー、ジュン
Jun Zhu
エム. コーク、トゥアン
M Quach Tuan
エム. コーク、トゥアン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Priority to JP2017087729A priority Critical patent/JP6370958B2/en
Publication of JP2017162492A publication Critical patent/JP2017162492A/en
Application granted granted Critical
Publication of JP6370958B2 publication Critical patent/JP6370958B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a memory module that supports different types of memory protocols and supports different types of memory devices.SOLUTION: A device for use in a memory module 8a, 8b coupled to a host memory controller 6 over a bus 10 comprises memory module controller logic 20a, 20b to generate a request signal to a host memory controller, the signal having a pulse width greater than or equal to a minimum pulse width. The minimum pulse width comprises a large number of clock cycles needed to guarantee that the host memory controller detects the request signal. The pulse width of the request signal indicates at least one function in addition to the request signal to the host memory controller.SELECTED DRAWING: Figure 1

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.

メモリシステムを有するシステムに係る一実施形態を示す。1 illustrates one embodiment of a system having a memory system. メモリモジュールの一実施形態を示す。1 illustrates one embodiment of a memory module. メモリシステムのピンアウト設計に係る一実施形態を示す。1 illustrates one embodiment of a pinout design of a memory system. ファンクションをエンコーディングするリクエスト信号を生成および処理する複数の動作に係る一実施形態を示す。FIG. 6 illustrates one embodiment of multiple operations for generating and processing a request signal encoding a function. FIG. メモリモジュール内の出力に対するタイミング調整を決定する複数の動作に係る一実施形態を示す。FIG. 6 illustrates one embodiment of multiple operations for determining timing adjustments for outputs within a memory module. モードレジスタセット(MRS)コマンドの一実施形態を示す。Fig. 4 illustrates an embodiment of a mode register set (MRS) command. MRSコマンドを生成および処理するための複数の動作に係る一実施形態を示す。FIG. 6 illustrates one embodiment of multiple operations for generating and processing MRS commands. FIG. 2パートで、コマンドを出力するためのタイミングチャートを提供する。In two parts, a timing chart for outputting a command is provided. 2パートで、コマンドを出力するためのタイミングチャートを提供する。In two parts, a timing chart for outputting a command is provided. 複数のクロックサイクルで送信されるコマンドを生成および受け取るための複数の動作に係る実施形態を示す。Fig. 4 illustrates an embodiment relating to multiple operations for generating and receiving commands sent in multiple clock cycles. 複数のクロックサイクルで送信されるコマンドを生成および受け取るための複数の動作に係る実施形態を示す。Fig. 4 illustrates an embodiment relating to multiple operations for generating and receiving commands sent in multiple clock cycles. メモリモジュールコントローラに対し、サポートされるインターフェース構成を示すための複数の動作に係る一実施形態を示す。FIG. 6 illustrates one embodiment of multiple operations for indicating a supported interface configuration for a memory module controller. FIG. メモリモジュールコントローラが、サポートされるインターフェース構成に基づいて、複数のアドレスビットを使用するための複数の動作に係る一実施形態を示す。FIG. 7 illustrates an embodiment of operations for a memory module controller to use a plurality of address bits based on a supported interface configuration. 複数の電力管理動作を示す複数のコマンドを使用するための複数の動作に係る一実施形態を示す。FIG. 7 illustrates an embodiment of multiple operations for using multiple commands indicating multiple power management operations. FIG. 複数のライトコマンドを送信すべく、複数のライトクレジットを使用し、かつ、ホストメモリコントローラに、複数のライトクレジットを戻す、複数の動作に係る一実施形態を示す。FIG. 10 illustrates an embodiment of operations that use multiple write credits to send multiple write commands and return multiple write credits to the host memory controller. ライトクレジットカウンタを備えたリードデータパケットを生成するための複数の動作に係る一実施形態を示す。6 illustrates one embodiment of a plurality of operations for generating a read data packet with a write credit counter. リードデータパケットを処理するための複数の動作に係る一実施形態を示す。FIG. 6 illustrates one embodiment of multiple operations for processing a read data packet. FIG. エラー信号を使用して、複数のエラー動作に係るフローを処理するための複数の動作に係る一実施形態を示す。FIG. 6 illustrates an embodiment of a plurality of operations for processing a flow associated with a plurality of error operations using an error signal. ライトエラーを処理するための複数の動作に係る一実施形態を示す。FIG. 6 illustrates an embodiment of multiple operations for handling write errors. FIG. バスを介して送信されたデータをスクランブルおよびデスクランブルするための複数の動作に係る一実施形態を示す。FIG. 6 illustrates an embodiment of operations for scrambling and descrambling data transmitted over a bus. メモリモジュール内のライトデータをデスクランブルするための複数の動作に係る一実施形態を示す。6 illustrates one embodiment of a plurality of operations for descrambling write data in a memory module. バスインターフェース構成を示すパラメータを設定するための複数の動作に係る一実施形態を示す。4 illustrates one embodiment of a plurality of operations for setting a parameter indicating a bus interface configuration. 転送リクエストを処理すべく、バスインターフェース構成を選択するための動作に係る一実施形態を示す。FIG. 6 illustrates one embodiment of an operation for selecting a bus interface configuration to process a transfer request. FIG.

以下の詳細な説明には、本願発明のより完全な理解を提供すべく、多くの具体的な詳細が記載されている。それらは例えば、複数のロジック実装、複数の演算コード、複数のオペランドを指定する手段、リソースパーティショニング/共有/重複の複数の実装、複数のシステムコンポーネントに係る複数のタイプおよび相互関係、およびロジックパーティショニング/統合の複数の選択肢である。しかしながら、本発明は、これらの具体的な詳細がなくても実施可能であることは当業者にとって明白である。他の複数の例において、本発明を不明確にするのを回避すべく、複数の制御構造、複数のゲートレベル回路、および複数の完全なソフトウェア命令シーケンスは、詳細に示されていない。詳細な説明を読んだ当業者であれば、何度も実験を繰り返さなくても、適切な機能を実装できるであろう。   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 computing system 2 that includes one or more processors 4, a host memory controller 6, and a plurality of memory modules 8a, 8b, usually mounted on a motherboard. The plurality of processors 4 may include a central processing unit and a multi-core processor. In response to a plurality of memory access requests from a plurality of processors 4, the host memory controller 6 communicates with a plurality of memory modules 8a and 8b via a bus 10, which is also referred to as a channel or a bus interface. Here, both of the memory modules 8a and 8b are connected to the same bus 10 separately and independently. The host memory controller 6 may include a request counter 7, a write credit counter 9, and a scramble seed value 11. Based on the number of requests indicated by the request counter 7, the request counter 7 is incremented when receiving a request signal for a grant that will be used later when issuing a plurality of grants. The write credit counter 9 indicates a large number or a plurality of credits permitting a plurality of write requests to be transmitted to one of the memory modules 8a and 8b. The scramble seed value 11 is used to descramble the data requested to be read from one of the memory modules 8a, 8b.

図1の実施形態において、メモリモジュール8a、8bは、システム2のマザーボード上の複数のスロットまたはメモリソケットに搭載される。メモリモジュール8a、8bは、マザーボード上の複数のメモリスロット内のピン配置と互換性のあるピン配置を有する、同一または異なるタイプの複数のメモリモジュールを備えてよい。さらに、複数のメモリモジュールは、Double Data Rate Fourth Generation(DDR4)プロトコルおよび追加の複数のプロトコル等の、同一または異なる複数のメモリプロトコルをサポートしてよい。2つのメモリモジュール8a、8bのみが示されているが、複数のメモリモジュールが存在してよい。   In the embodiment of FIG. 1, the memory modules 8 a and 8 b are mounted in a plurality of slots or memory sockets on the system 2 motherboard. The memory modules 8a, 8b may comprise a plurality of memory modules of the same or different types having a pin arrangement that is compatible with the pin arrangement in the plurality of memory slots on the motherboard. Further, the plurality of memory modules may support the same or different memory protocols, such as the Double Data Rate Fourth Generation (DDR4) protocol and additional protocols. Although only two memory modules 8a, 8b are shown, there may be a plurality of memory modules.

メモリモジュール8a、8bの各々は、データを格納するためのメモリチップ12a、14a、16a、18aおよび12b、14b、16b、18bをそれぞれ、メモリモジュールの一方または両方の側に含む。メモリモジュール8a、8bパッケージの一方または両方の側に配置される、複数のDRAMチップ等の複数のメモリチップは、プロセッサ4によって使用されているデータを格納する複数のストレージ要素を備える。   Each of the memory modules 8a, 8b includes memory chips 12a, 14a, 16a, 18a and 12b, 14b, 16b, 18b for storing data, respectively, on one or both sides of the memory module. A plurality of memory chips, such as a plurality of DRAM chips, disposed on one or both sides of the memory modules 8a, 8b package include a plurality of storage elements for storing data used by the processor 4.

各メモリモジュール8a、8bは、ホストメモリコントローラ6とのメモリ管理および複数のアクセス動作を調整するためのメモリモジュールコントローラ20a、20bを含んでよい。ホストメモリコントローラ6は、バス10に接続されたメモリモジュール8a、8bに対する、複数のリードおよびライト動作並びに複数のメモリ管理動作を管理するため、およびプロセッサ4をメモリモジュール8a、8bに対しやり取りさせるためのロジックを含む。ホストメモリコントローラ6は、プロセッサ4と統合されてよく、あるいはシステム2のマザーボード上のプロセッサ4とは分離したロジックに実装されてよい。   Each memory module 8a, 8b may include memory module controllers 20a, 20b for coordinating memory management and multiple access operations with the host memory controller 6. The host memory controller 6 manages a plurality of read and write operations and a plurality of memory management operations for the memory modules 8a and 8b connected to the bus 10, and allows the processor 4 to communicate with the memory modules 8a and 8b. Including logic. The host memory controller 6 may be integrated with the processor 4 or may be implemented in logic separate from the processor 4 on the motherboard of the system 2.

異なるタイプのメモリモジュール8a、8bが複数のメモリソケット内のピンアーキテクチャと互換性がある限り、システム2のマザーボードは、異なる複数のタイプのメモリチップと互換性のあるメモリソケットを含んでよく、異なる複数のタイプのメモリプロトコルをサポートする異なる複数のタイプのメモリデバイスをサポートする異なるタイプのメモリモジュール8a、8bを許容する。   As long as different types of memory modules 8a, 8b are compatible with the pin architecture in multiple memory sockets, the motherboard of system 2 may include memory sockets that are compatible with different multiple types of memory chips and are different. Allow different types of memory modules 8a, 8b that support different types of memory devices that support different types of memory protocols.

一実施形態において、メモリモジュール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 memory modules 8a, 8b may comprise the same or different types of dynamic random access memory (DRAM). In one embodiment, the memory modules 8a, 8b may be un-buffered DIMMs (UDIMMs), Load Reduced Dual-inline Memory Modules (LRDIMMs), Small Outline Dual In-line Memory Modules (SODIMMs), etc. (DIMM) may be provided. The memory modules 8a, 8b may implement various forms of memory, including but not limited to NAND type (flash) memory, ferroelectric RAM (FeTRAM), nanowire based non-volatile memory, phase 3D (3D) cross-point memory such as change memory (PCM), memory incorporating Memristor technology, magnetoresistive random access memory (MRAM), Spin Transfer Torque (STT) -MRAM, and the like.

特定の複数の実施形態において、複数の異なるタイプのメモリモジュール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, memory modules 8a, 8b may support a plurality of different protocols, since a plurality of different types of memory modules 8a, 8b may be mounted and connected to the bus 10. For example, the memory module 8a may comprise a DIMM of a type that conforms to the Double Data Rate Fourth Generation (DDR4) Static DRAM (SDRAM) protocol, and the memory module 8b is a memory using the DDR4 protocol on the same bus 10. Different protocols compatible with module 8a may be used. Multiple alternative and different protocols may also be used and implemented within the memory modules 8a, 8b.

メモリモジュール8a、8bが、複数の異なるDRAMプロトコルをサポートする場合、メモリモジュール8aに特有の第1のプロトコルとしてDDR4等、およびメモリモジュール8bに特有の第2のメモリプロトコルといったように、ホストメモリコントローラ6は複数の異なるプロトコルを使用して、バス10を介して通信するよう構成される。メモリモジュール8aに対するリードリクエストおよび管理リクエストは、第1のメモリプロトコルを用いて、第2のメモリモジュール8bに対しては第2のメモリプロトコルを用いて実装される。   When the memory modules 8a and 8b support a plurality of different DRAM protocols, the host memory controller such as DDR4 as the first protocol specific to the memory module 8a and the second memory protocol specific to the memory module 8b. 6 is configured to communicate over the bus 10 using a plurality of different protocols. The read request and the management request for the memory module 8a are implemented using the first memory protocol and the second memory module 8b using the second memory protocol.

図2は、メモリモジュール8a、8b等のメモリモジュール8の一実施形態のさらなる詳細を提供するものであり、複数のメモリモジュール動作およびホストメモリコントローラ6との複数の対話を実行するメモリモジュールコントローラ20を含むものとして示される。複数の特定の実装において、複数のメモリモジュールのうち一方、例えば8bは、図2のメモリモジュールを含んでよく、8a等の他方のメモリモジュール、例えば、DDR4規格に適合するメモリモジュール8a等はメモリモジュールコントローラ20を含まなくてよい。そのような複数の実施形態においては、RDIMMまたはバッファの場合のように、LRDIMMの場合のように、メモリモジュール8aはレジスタを含んでよい。   FIG. 2 provides further details of one embodiment of memory module 8 such as memory modules 8a, 8b, and performs a plurality of memory module operations and a plurality of interactions with host memory controller 6. Shown as including. In a plurality of specific implementations, one of the plurality of memory modules, such as 8b, may include the memory module of FIG. 2, and the other memory module, such as 8a, such as the memory module 8a that conforms to the DDR4 standard is a memory. The module controller 20 may not be included. In such embodiments, the memory module 8a may include registers, as in the case of LRDIMMs, as in the case of RDIMMs or buffers.

メモリモジュール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 memory module 8 may include a plurality of mode registers 22, a read buffer 24, a power management operation register 26, a write buffer 28, a write credit counter 30, a scramble seed value 32, and an interface parameter 34 in the memory module controller. The plurality of mode registers 22 have data that can be configured using a mode register set (MRS) command within the memory module controller. The read buffer 24 is for buffering the read data returned to the host memory controller 6 in response to the read command. The power management operation register 26 indicates a plurality of power management operations to be executed. The write buffer 28 is for buffering write data before being written to the memory chips 12, 14, 16, 18. The write credit counter 30 indicates a large number of write credits to be returned to the host memory controller 6. The scramble seed value 32 is used to randomize read data transferred to the host memory controller 6 via the bus 10. The interface parameter 34 identifies a supported interface configuration of the bus 10. The plurality of buffers and the plurality of parameters 24, 26, 28, 30, 32 and 34 may be implemented in the memory module controller 20 or in a circuit outside the memory module controller 20 in the memory module 8. Certain specific parameters 26, 30, 32 and 34 may be implemented in the mode register 22.

特定の複数の実施形態において、メモリモジュール8aは、メモリモジュール8bを含むファーメモリのためのキャッシングレイヤとして構成されるニアメモリを備えてよい。そのような構成では、ニアメモリモジュール8aは、特定のファーメモリモジュール8bがキャッシュするよう設計された、最も頻繁にアクセスされる複数のシステムメモリアドレスのアクセス時間を減らす効果を有するべきである。複数のニアメモリデバイスは、それらの対応するファーメモリのためのダイレクトマップ方式のキャッシュとして構成されてよい。   In certain embodiments, the memory module 8a may comprise a near memory configured as a caching layer for a far memory that includes the memory module 8b. In such a configuration, the near memory module 8a should have the effect of reducing the access time of the most frequently accessed system memory addresses that are designed to be cached by a particular far memory module 8b. The plurality of near memory devices may be configured as a direct mapped cache for their corresponding fur memory.

メモリモジュールコントローラ20およびホストメモリコントローラ6の記載された複数の実施形態は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)等のハードウェアロジックにエンコードされてよい。   The described embodiments of the memory module controller 20 and the host memory controller 6 may be encoded in hardware logic such as an application specific integrated circuit (ASIC), field programmable gate array (FPGA), or the like.

本願発明の複数の実施形態に係る複数の構成要素は、複数の機械実行可能命令を格納する機械可読媒体としても提供され得る。機械可読媒体は、限定はされないが、フラッシュメモリ、複数の光ディスク、リード専用コンパクトディスク(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 memory module 8a, 8b having a host memory controller 6, a plurality of bus 10 lines and memory modules 8a, 8b. Such multiple pin designations are described below or are known in the art.

[リクエスト信号内の複数のファンクションのエンコーディング]
特定の複数の実施形態において、ホストメモリコントローラ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 memory module controller 20 sends a request signal, such as REQ # 50, to the host memory to indicate that there is data in the read buffer 24 that the host memory controller 6 should return as part of the read command. It may be transmitted to the controller 6. The request signal may comprise a REQ # clock enable (CKE) signal 50 shown in the pinout diagram of FIG. The memory module controller 18 may send a request signal with a minimum pulse width to ensure detection by the host memory controller 6, which may comprise two clock cycles in some specific implementations. The memory module controller 20 may further encode additional functions performed by the host memory controller 6 in the request signal. Multiple functions may be indicated in a single signal by encoding multiple additional functions in the request signal to maximize the number of operations in the single signal and the information communicated.

図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 host memory controller 6 and memory module controller 20 that use request signals to communicate a plurality of additional functions to the host memory controller 6. At initialization (block 100) of the operation of generating a request signal, which may be part of a read command, transferring data from the read buffer 24 back to the host memory controller 6, the memory module controller 20 includes a function included with the request signal. Are determined (at block 102). Such a function may indicate a plurality of additional operations to be performed by the host memory controller 6, such as a specific error condition or interrupt or other functions. Next, the memory module controller 20 determines the pulse width that is used to indicate or encode the determined function (at block 104). For example, a pulse width equal to the minimum pulse width is used to ensure detection of the request signal by the host memory controller 6 and may indicate or encode the first function, and additional pulse widths greater than the minimum pulse width. May be used to indicate multiple additional functions. For example, if the minimum pulse width to ensure detection is 2 clocks, this minimum pulse width for the request signal may indicate one function, and the pulse widths 6, 10, 14 Different functions may be indicated. The pulse width 14 may indicate a catastrophic failure. Furthermore, in order to ensure proper detection of the pulse width by the host memory controller 6, a plurality of different pulse widths for request signals associated with a plurality of different functions can be obtained in certain embodiments, such as three cycles. May be divided by a minimum number of clock cycles. The memory module controller 20 generates a request signal having the determined pulse width for transmission to the host memory controller 6 (at block 106).

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 pin 50 having a minimum or first pulse width such as two clocks (at block 108), the host memory controller 6 needs to be sent to the memory module 8b that sends the request signal. The request counter 7 indicating a number of grant signals is incremented (at block 110). After incrementing the request counter 7, the host memory controller 6 uses a bus 10 for issuing a plurality of grant requests so that the requests indicated in the request counter 7 are batch-processed at different random times, That is, it may wait until a slot on the data bus is available. Upon receipt of the grant signal, the memory module controller 20 responds to a read request from the host memory controller 6 and transmits data in the read buffer 24, such as collected and buffered data, to the host memory controller 6 (block 112). In).

リクエスト信号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 request signal 50, if the request signal 50 does not continue beyond the measured minimum pulse width (at block 114), control ends. Alternatively, if the measured request signal (in block 116) does not continue beyond a second pulse width, such as 6 clocks, the host memory controller 6 may change the second function associated with that second pulse width. May be performed (at block 118). Alternatively, if the request signal 50 does not continue beyond a measured third pulse width, such as 10 clocks (in block 120), the host memory controller 6 may use a third function associated with the third pulse width. May be performed (at block 122). If the pulse width continues and a fourth pulse width such as 14 clocks is measured (at block 124), the host memory controller 6 may perform catastrophic error handling that the host memory controller 6 should perform. (At block 126).

記載された複数の実施形態は、リクエスト信号の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 host memory controller 6, multiple different pulse widths are used. The function may be encoded into the request signal by the memory module controller 20. Thus, with a single request signal, the memory module controller 20 may signal a request signal, such as a request to return data from the read buffer 24, and one of a plurality of different functions.

[第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 memory modules 8a and 8b may comprise a plurality of different types of memory modules having a plurality of different components. For example, the memory module 8a may or may not include a plurality of registers and a plurality of data buffers not included in the memory module 8b, and vice versa. The memory modules 8a, 8b may support a plurality of different memory protocols. The described embodiments provide a plurality of techniques in which one memory module, eg 8b, adjusts its timing to match the timing of the other memory module, eg 8a. As a result, the host memory controller 6 does not need to adjust to different timings from different memory modules such as different types of DIMMs. By having the memory module controllers 20a, 20b handle multiple timing adjustments, excessive multiple turnaround cycles and performance loss in the host memory controller are avoided.

図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 other memory modules 8a and 8b on the bus 10 executed by the memory module controller 20 such as the memory module controller 20b. One embodiment which concerns on is shown. Upon initializing the operation of outputting data from the data buffer 24 (at block 200), the memory module controller 20b is based on at least one component in at least one of the memory modules 8a, 8b on the channel. A timing adjustment is determined (at block 202). Blocks 204-208 provide an embodiment of multiple operations for determining timing adjustments. The memory module controller 20b may accelerate the timing in response to the first memory module 8b having at least one component that affects the output timing that is not included in the other second memory module 8a ( In block 204). Further, in response to the other second memory module 8a on the bus 10 having at least one component that affects the output timing in the second memory module 8a, not included in the first memory module 8b, A delay may be added to the timing (at block 206).

次に、メモリモジュールコントローラ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 data buffer 24 to the host memory controller 6 based on the determined timing adjustment to match the output timing of the second memory module 8a (at block 210).

例えば、複数の計算を実行するコントローラ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 memory module 8b including the controller 8b that executes a plurality of calculations includes the data buffer 24 not included in the other memory module 8a, the other second memory module 8a is included in the first memory module 8b. When no data buffer is included, the timing adjustment may include acceleration of output timing. In another implementation, as in the case of RDIMM, if the other memory module 8a has a register for performing calculations that is not included in the memory module 8b, in the other memory module 8a that is not included in the memory module 8b. The timing adjustment includes delaying the output timing in order to match the register performing the above calculation. If the timing acceleration for the data buffer 24 is greater than the delay added for the register in the other memory module 8a, the net timing adjustment includes timing acceleration. Similarly, if the added delay is greater than the acceleration, the net adjustment includes adding a delay to the timing. When the memory module 8b that performs a plurality of calculations does not include a plurality of registers or a plurality of data buffers 24 included in the other memory module, for example, when the other memory module 8a is an RDIMM and an LRDIMM, the memory module controller 20b The timing may be delayed to accommodate multiple delays caused by multiple additional components in the other memory module 8a.

メモリモジュール8a、8bが複数のUDIMM、複数のRDIMM、および複数のLRDIMM等の複数の異なるタイプのDIMMを備える場合、メモリモジュール8a、8bは、複数の異なるタイプのコンポーネントを、バス10に対するそれらのコマンド、アドレス、および複数の制御バス上に有してよい。   If the memory modules 8a, 8b comprise a plurality of different types of DIMMs such as a plurality of UDIMMs, a plurality of RDIMMs and a plurality of LRDIMMs, the memory modules 8a, 8b You may have on command, address, and multiple control buses.

複数の特定の記載された実施形態において、タイミングが調整される出力は、データバッファ24からのデータ出力をバス10内のデータバス上に備える。代替の複数の実施形態において、調整される複数の出力信号は、データ出力以外の出力を備えてよい。   In some particular described embodiments, the timing adjusted output comprises a data output from the data buffer 24 on a data bus in the bus 10. In alternative embodiments, the adjusted output signals may comprise outputs other than data outputs.

複数の動作が、複数のタイミング調整を実行する1つのメモリモジュールに関して記載されているが、バス10上の1または複数のメモリモジュール8a、8bが図5に係る複数のタイミング調整を実行してよい。   Although multiple operations have been described for one memory module that performs multiple timing adjustments, one or more memory modules 8a, 8b on the bus 10 may perform multiple timing adjustments according to FIG. .

記載された複数のタイミング調整では、メモリモジュールコントローラ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 data buffer 24, to match the timing for multiple similar types of output from the other memory module 8a. As a result, the host memory controller 6 does not need to make any timing adjustments to match different configurations of the different memory modules 8a and 8b on the bus 10.

[モードレジスタセット(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 memory module controller 20 may include a plurality of mode registers 22. In certain embodiments, the memory module controller 20b may implement a first protocol that is different from the second memory protocol used by the other controller 8a, eg, DDR4. However, the memory module controller 20b may support a specific plurality of commands from the second protocol such as DDR4 of the other memory module 8a, for example, a mode register set (MRS) command, It may be used for a different purpose than that used by the memory module controller 20a that implements one memory protocol.

図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 command 250. The MRS command 250 may or may not include multiple MRS fields from another memory protocol such as DDR4. The command 250 designates an operation code 252 indicating an MRS operation. Address registers A0-A13 may be used to provide data to one of the plurality of mode registers 22 in memory module controller 20, and the plurality of register bits 254 write the data in addresses A0-A13. The power mode register 22 is shown. For example, if there are 16 mode registers 22, four register bits 254, eg, BA 0, BA 1, BG 0, BG 1, should be used, one of the 16 mode registers 22 in the memory module controller 20. May be shown.

一実施形態において、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 MRS command 250 may be used to provide multiple configuration parameters to the memory module 8 before the bus 10 is serviced for multiple bus operations such as read and write operations. Cycle commands may be provided. Here, the read and write operations may include a two-cycle command. Thus, the MRS command 250 corresponds to the address input signals A0 to A17 indicated by the line 52 in the pinout design of FIG. 3 and the command input signal BG1: indicated by the lines 54 and 56 in the pinout design of FIG. Use 0 and BA1: 0. In certain embodiments, the address input signals A14-16 include MRS command operation codes.

図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 host memory controller 6 and the memory module controller 20 to program the plurality of mode registers 22 in the memory module controller 20. During initialization, such as before the bus 10 is serviced for read and write operations, which may include multiple commands transmitted in two clocks, the host memory controller 6 is configured with the data contained in the address field A13: 0. A MRS command 250 for specifying the mode register 22 in the memory module controller 20 may be generated (at block 280) and transmitted. For address field A13: 0, MRS command 250 may be sent in one clock cycle.

メモリモジュールコントローラ20はMRSコマンド250を受信(ブロック282において)し、ライン54および56上(図3)の複数のレジスタビット254で示されるモードレジスタ22を決定する(ブロック284において)。次に、メモリモジュールコントローラ20は、アドレスビットA0:A13内に提供されたデータを決定されたモードレジスタ22に書き込む(ブロック286において)。   Memory module controller 20 receives MRS command 250 (at block 282) and determines (at block 284) a mode register 22 indicated by a plurality of register bits 254 on lines 54 and 56 (FIG. 3). The memory module controller 20 then writes the data provided in the address bits A0: A13 to the determined mode register 22 (at block 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 host memory controller 6 further implements a DDR4 protocol in accordance with the DDR4 protocol to program one of eight mode registers in one of the memory chips 12a, 14a, 16a, 18a. An MRS command 250 for sending to a memory module such as 8a may be used. Register bits BA0, BA1, BG0 identify the mode register within the memory chip, and bit BG1 indicates whether those bits are inverted. In this way, the host memory controller 6 causes the memory controllers 20a and 20b implementing a plurality of different memory protocols to generate a plurality of different operations according to the plurality of different protocols using the same MRS command format. It's okay. For example, when the MRS command 250 is used for the memory module 8a that supports DDR4, the MRS command 250 writes data to the mode register in one of the memory chips 12a, 14a, 16a, and 18a. When the MRS command 250 is used for the memory module 8 b having the plurality of mode registers 22 in the memory module controller 20, the MRS command 250 is not in the DRAM chip 12, 14, 16, 18 but in the memory module controller 20. Data is written to the plurality of mode registers 22. Thus, the host memory controller 6 may use the same MRS command format with multiple memory modules that support multiple different memory protocols such as DDR4 and some other protocol.

[チップセレクト信号が前半のコマンドのためにのみ受信される場合、メモリモジュールにより後半のコマンドを受け取る]
複数の記載された実施形態は、メモリモジュール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 memory module 8 to be received. provide. As a result, the memory module 8 automatically receives the latter half command after a delay interval from when the first half command is transmitted. Further embodiments provide multiple techniques for incorporating delays to automatically receive late commands in a fast timing mode such as 2N timing. In the high-speed timing mode, the memory modules 8a and 8b operate at a higher speed than a normal timing mode such as 1N timing.

特定の複数の実施形態において、複数のコマンドは、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 memory module controller 20 recognizes the high-speed (2N) timing mode via the host memory controller 6 that programs the plurality of mode registers 22 on the memory module controller 20.

図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 first memory module 8a, the host memory controller 6 arranges the first half command CMD0a and the chip select signal S0 # 302, also indicated as the SO # line 58 in FIG. When receiving the chip select signal 302, the first memory module 8a may receive the first command CMD0a in the cycle 300, and further, for example, a clock cycle after one clock cycle with a delay interval from the first command CMD0a. At 304, the latter command CMD0b may be automatically received.

ホストメモリコントローラ6は、第2のメモリモジュール8bを選択すべく、前半のコマンドCMD1aおよび、図3でS2#ライン60としても示されるチップセレクト信号S2#306を、バス上にクロックサイクル308で配置してよい。第2のメモリモジュール8bは、チップセレクト信号306の受信時に、サイクル308で前半のコマンドCMD1aを受け取ってよく、さらに、後半のコマンドCMD1bを1クロックサイクル後のサイクル310で自動的に受け取ってよい。   In order to select the second memory module 8b, the host memory controller 6 arranges the command CMD1a in the first half and the chip select signal S2 # 306, which is also shown as the S2 # line 60 in FIG. You can do it. When receiving the chip select signal 306, the second memory module 8b may receive the first half command CMD1a in cycle 308, and may automatically receive the second half command CMD1b in cycle 310 after one clock cycle.

図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 bus 10. The host memory controller 6 arranges the command CMD0a in the first half of the two cycles on the bus at the clock cycle 320 for the first memory module 8a, and the chip select signal S0 # 322 also shown as the SO # line 58 in FIG. May be placed in the clock cycle 324, one cycle after the first command CMD0a is placed on the bus 10, and thus the chip select signal is delayed in the high-speed timing mode. When the first memory module 8a receives the chip select signal 322, the first memory module 8a may receive the first half command CMD0a in the clock cycle 324, and further the delay interval indicated by the second half command CMD0b being two clock cycles after the chip select signal 322. And may be received automatically at the start of clock cycle 328.

ホストメモリコントローラ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 host memory controller 6 arranges the first half command CMD1a in the cycle 330 and the chip select signal S2 # 332 also indicated as the S2 # line 60 in FIG. 3 in the cycle 332 after one cycle for the second memory module 8b. You can do it. The second memory module 8b may receive the first half command CMD1a in the clock cycle 336 of the chip select signal 332, and may automatically read the second half command CMD1b in a cycle 338 after two clock cycles. In this way, the host memory controller 6 delays the chip signal by one clock cycle in the middle of the first half command, and the memory module controller 20 delays the second half command read by two cycles after the first half command is read.

図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 host memory controller 6 and the memory module controller 20 for the 1N timing mode for commands that occupy 2 bits in a back-to-back cycle. During initialization for operation in the 1N timing mode, the host memory controller 6 may program the memory module controller 20 via a plurality of bits in a plurality of mode registers 22. When initializing the two-cycle command in the normal timing mode 1N (in block 350), the host memory controller 6 places the first half command (one cycle) on the bus 10 in the first clock cycle (in block 352). ). A chip select command is also placed on the bus 10 in the first clock cycle (at block 354). When the memory module controller 20 is programmed in the normal timing mode, upon detecting a chip select signal addressed to a particular memory module 8 including the memory module controller 20 (at block 356), the memory module controller 20 In the first clock cycle on bus 10 (at block 358).

さらに、ホストメモリコントローラ6は、後半のコマンド(前半からのバックツーバックサイクルで)をバス10上に、第1のクロックサイクルから1クロックサイクル後の第2のクロックサイクルで配置する(ブロック360において)。チップセレクト信号によって選択されるメモリモジュール8は、チップセレクト信号が受信され、前半のコマンドが受け取られたときから、1サイクルの遅延を待機することによって、後半のコマンドを、バス10上の第2のクロックサイクルで受け取る(ブロック362において)。メモリモジュールコントローラ20は、チップセレクト信号にバス10にアクセスすることを要求することなく、後半のコマンドをバス10上で自動的に受け取ってよい。   Further, the host memory controller 6 places the second half command (in the back-to-back cycle from the first half) on the bus 10 in the second clock cycle one clock cycle after the first clock cycle (in block 360). ). The memory module 8 selected by the chip select signal waits for a delay of one cycle from the time when the chip select signal is received and the first half command is received. (In block 362). The memory module controller 20 may automatically receive the latter half command on the bus 10 without requesting the chip select signal to access the bus 10.

図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 host memory controller 6 and the memory module controller 20 for a fast timing mode such as 2N for commands that occupy 2 bits in a back-to-back cycle. Indicates. The memory module controller 20 may be programmed via a plurality of bits in the plurality of mode registers 22 during initialization to operate in the fast timing mode. When initializing a two-cycle command in the fast timing mode (in block 380), the host memory controller 6 places the first half command (in one cycle) on the bus 10 in the first clock cycle (in block 382). . Next, a chip select signal is placed on the bus 10 in a second clock cycle (in block 384) that can be one clock cycle from the first clock cycle. In this way, the chip select signal is placed on the bus in a delay such as one clock cycle after the first half command is placed. If the memory module controller 20 is programmed in the fast timing mode, when the memory module controller 20 detects a chip select signal addressed to a specific memory module 8 (at block 386), the memory module controller 20 The first half command on bus 10 is received in two clock cycles (at block 388).

さらに、ホストメモリコントローラ6は、後半のコマンド(前半からの2サイクル後)をバス10上に、第1のクロックサイクルから2サイクル後の第3のクロックサイクルで配置する(ブロック390において)。チップセレクト信号によって選択されるメモリモジュール8内のメモリモジュールコントローラ20は、チップセレクト信号が受信され、前半のコマンドが受け取られたときから、2サイクルの遅延を待機することによって、後半のコマンドをバス10上で第4のクロックサイクルにおいて受け取る(ブロック392において)。メモリモジュールコントローラ20は、バス10上のチップセレクト信号を待機することなく、後半のコマンドを自動的に受け取ってよい。   Further, the host memory controller 6 places the second half command (after two cycles from the first half) on the bus 10 in the third clock cycle two cycles after the first clock cycle (at block 390). The memory module controller 20 in the memory module 8 selected by the chip select signal buses the latter command by waiting for a delay of two cycles from when the chip select signal is received and the first command is received. 10 in a fourth clock cycle (at block 392). The memory module controller 20 may automatically receive the latter half command without waiting for the chip select signal on the bus 10.

複数の記載された実施形態は、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 memory modules 8a, 8b receive More than one additional part of a command may be automatically received at multiple clock signal delay intervals from the chip select signal without requiring multiple additional chip select signals for.

[メモリモジュール内の複数の高アドレスビットの設定方法を決定する]
メモリモジュールコントローラ20は、異なるピンおよびインターフェース構成を有する複数のメモリモジュール8で動作するよう構成され得る。例えば、1つのメモリモジュールは、SO−DIMM等のより少ないピンを有する別のメモリモジュールより、アドレス指定用のより多くのピンを有する。より少ないアドレス指定用のピンを有するメモリモジュールは、アドレス指定用に利用可能なより多くのピンを有するメモリモジュールより、小さなアドレス空間を提供してよい。サポートされるインターフェース構成は、ホストメモリコントローラ6およびバス10の複数の機能によって変わってよく、あるいはメモリモジュール8のSO−DIMMまたはUDIMM等のピンおよびインターフェース構成の複数の機能によって変わってよい。
[Determine how to set multiple high address bits in memory module]
The memory module controller 20 may be configured to operate with multiple memory modules 8 having different pin and interface configurations. For example, one memory module has more pins for addressing than another memory module with fewer pins, such as SO-DIMM. A memory module with fewer addressing pins may provide a smaller address space than a memory module with more pins available for addressing. The supported interface configuration may vary depending on the functions of the host memory controller 6 and the bus 10, or may vary depending on the functions of the pin and interface configuration such as the SO-DIMM or UDIMM of the memory module 8.

そのような複数の実施形態に対し、例えば、メモリモジュールが複数の高アドレスビットのための利用可能な複数のピンを有するかどうかを示す等、複数のサポートされるインターフェース構成を示すべく、メモリモジュールコントローラ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 controller 20 may use one of the plurality of mode registers 22. In such a case, if the memory module controller 20 is operating on a module 8 that does not have one or more pins for a plurality of high address bits available in other memory modules, the memory module controller 20 A predetermined value, eg, zero, is used for those multiple high address bits that are not available in the module. Thus, the memory module controller 20 assumes a value of zero for a plurality of high address bits when there is no pin for receiving a plurality of values for those high address bits. In one embodiment, the plurality of high address bits may comprise 52 address bits A17 and 62 bits C2: 0 shown in the pinout diagram of FIG. Certain memory modules, such as SO-DIMMs, may not include pins 52 and 62.

図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 memory module controller 20 to configure multiple settings for addressing. The host memory controller 6 may send an MRS signal indicating a supported interface configuration to the memory module 8. Upon receiving an MRS signal indicating a supported interface configuration (at block 400), the memory module controller 20 may update the mode register 22 addressed by the MRS signal to indicate the supported interface configuration. The MRS signal may indicate a DIMM type such as SO-DIMM, UDIMM, or the contents supported by the interface, such as whether multiple high address bits are supported. Upon response, the memory module controller 20 sets an addressed mode register 22 indicating the interface configuration to indicate the interface configuration to be communicated, eg, indicating whether multiple high address bits are supported ( At block 402).

図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 memory module controller 20 to handle addressing using higher level address bits. Upon receiving a command having multiple address bits from the host memory controller 6 (at block 420), the memory module controller 20 determines a supported interface configuration from the mode register 22. Such information indicates whether the current memory module 8 supports addressing in multiple high address bits. If the supported interface configuration does not support multiple high address bits (at block 422), for example if the memory module 8 does not have multiple pins 52 and 62, then at least one for the received address The high address bits are set to a predetermined value. That is, if there are no pins for multiple high address bits, multiple high address bits are assumed to be zero. If the supported interface configuration indicated by the mode register 22 indicates that multiple high address bits are available (at block 422), the memory module controller 20 receives on at least one high address pin 52,62. At least one high address bit is used for the address being addressed (at block 426).

代替の複数の実施形態において、メモリモジュールコントローラ20は、複数のピンを有さないメモリモジュール上に、複数の高アドレスビット以外の複数のアドレスビットのための複数の予め定められた値を供給してよい。   In alternative embodiments, the memory module controller 20 provides a plurality of predetermined values for a plurality of address bits other than a plurality of high address bits on a memory module that does not have a plurality of pins. It's okay.

複数の記載された実施形態は、メモリモジュールコントローラが、複数の高アドレスビットを提供するための複数のピンを有さないメモリモジュール構成に対し、複数の高位のアドレスビットを提供すべく、アドレス指定のために利用可能な複数の異なるピン構成を有する複数のメモリモジュール内で動作することを可能にする。このように、メモリモジュールコントローラは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 memory module 8 to pre-configure a plurality of power management operations. It is a number of operations that will be performed later when the memory module controller detects a clock enable (CKE) low signal on a CKE pin, such as pin 64 or 66 shown in the pinout diagram of FIG. . This allows an extended series of power management operations to be performed when the CKE low signal is activated, such as entering a defined sleep state.

先に送信されたプリ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 memory module 8 where a low level of power supply is maintained. The sleep state of S4 is a state in which the contents of the memory module 8 are stored in the non-volatile memory, and the memory module 8 is turned off. In the state of S5, the minimum power is supplied to the power supply unit, but the memory module 8 is turned off. The nonvolatile memory in which the contents are stored may be provided in various forms, including but not limited to NAND (flash) memory, ferroelectric RAM (FeTRAM), nanowire-based nonvolatile memory, phase change memory ( PCM) and other three-dimensional (3D) cross point memories, memories incorporating Memristor technology, magnetoresistive random access memory (MRAM), and Spin Transfer Torque (STT) -MRAM.

図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 host memory controller 6 and the memory module controller 20 to facilitate multiple power management operations using the CKE low signal. For example, to initialize a plurality of operations that change the power management mode, such as switching to one of various recognized sleep modes, the host memory controller 6 communicates to the memory module controller 20 via the bus 10. In contrast, a pre-CKE command is transmitted (at block 500) indicating one or more power management operations. In one embodiment, the pre-CKE command may provide a code that indicates one or more specific actions or represents a series of actions. For example, the pre-CKE command may indicate, for example, a system state such as S3, S4, and S5 related to a plurality of ACPI sleep mode states or a power management state such as a sleep mode. They may be interpreted by the memory module controller 20 as a series of operations to be performed to implement the state.

プリ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 memory module controller 20 sets the power management operation register 26 to indicate at least one power management operation indicated by the pre-CKE command. Thereafter, when the host memory controller 6 attempts to cause the memory modules 8a, 8b to implement the indicated power management operation state changes, the host memory controller 6 may be on the pins 64 or 66 (FIG. 3). CKE low signal 56 is asserted (at block 506), such as low. Upon detecting the CKE low signal (at block 508), the memory module controller 20 indicates whether the power management operation register 56 indicates a plurality of operations to be performed, such as a sleep mode state or a specific plurality of operations. Are determined (at block 510). If no operation is indicated, such as null or a default value, the memory module controller 20 outputs a CKE low signal, eg, deactivation of multiple internal clock signals, precharge power down or self refresh operation. A predetermined action for processing may be performed (at block 512). If multiple operations or power modes are indicated by register 26, memory module controller 20 performs multiple power management operations indicated by register 26 to implement a particular power management state, eg, a sleep state. (Block 514).

複数の記載された実施形態は、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 host memory controller 6 triggers more complex power management operations to change the power mode than normally triggered in response to the CKE low signal. Assert CKE low signal. In multiple described embodiments, fewer complex signals are required for power management because more complex power management operations, such as entering a sleep mode, can be initialized with a CKE low signal.

[複数のライトコマンド用にホストメモリコントローラの複数のライトクレジットを提供する]
複数の記載された実施形態は、バス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 bus 10 for transmitting a plurality of write commands. A plurality of techniques for supplying a plurality of write credits of the host memory controller 6 to be used are provided.

図1につき、ホストメモリコントローラ6は、ライトクレジットカウンタ9を含んでおり、ライトクレジットカウンタ9が、複数のポジティブクレジットを有する場合にのみ、複数のライトコマンドを送信する。ライトクレジットカウンタ9は、ライトコマンドを送信するとき、デクリメントされる。各メモリモジュール8a、8bに対し、1つのライトクレジットカウンタ9が存在してよい。メモリモジュール8は、受信されるライトデータをバッファするためのライトバッファ28を含んでおり、受信されるライトデータは後で、メモリチップ12、14、16、18内の複数のストレージ要素にデステージされる。メモリモジュールコントローラ20は、ホストメモリコントローラ6に戻すための累積された複数のライトクレジットを示すライトクレジットカウンタ30を有する。ライトバッファ28の使用を管理すべく、複数のライトクレジットが使用され、よって、ホストメモリコントローラ6はライトデータを送信させて、ライトバッファ28をオーバーフローさせない。   1, the host memory controller 6 includes a write credit counter 9 and transmits a plurality of write commands only when the write credit counter 9 has a plurality of positive credits. The write credit counter 9 is decremented when a write command is transmitted. There may be one write credit counter 9 for each memory module 8a, 8b. The memory module 8 includes a write buffer 28 for buffering received write data, and the received write data is later destaged to a plurality of storage elements in the memory chips 12, 14, 16, 18. Is done. The memory module controller 20 has a write credit counter 30 indicating a plurality of accumulated write credits to be returned to the host memory controller 6. In order to manage the use of the write buffer 28, a plurality of write credits are used. Therefore, the host memory controller 6 does not cause the write buffer 28 to overflow by transmitting write data.

図15は、ホストメモリコントローラ6およびメモリモジュールコントローラ20がライトコマンドを処理するための複数の動作に係る一実施形態を示す。ライトコマンドの生成時、ホストメモリコントローラ6は、ライトクレジットカウンタ30がゼロより大きい、すなわち空以外であるかどうかを決定する(ブロック602において)。その場合、ライトコマンドがメモリモジュール8に対し送信される(ブロック604において)。ホストライトクレジットカウンタ9が空の場合(ブロック602において)、ホストメモリコントローラ6は、ライトコマンドを送信するために複数のクレジットが利用可能になるまで待機する。   FIG. 15 shows an embodiment relating to a plurality of operations for the host memory controller 6 and the memory module controller 20 to process a write command. Upon generation of the write command, the host memory controller 6 determines whether the write credit counter 30 is greater than zero, ie, non-empty (at block 602). In that case, a write command is sent to the memory module 8 (at block 604). If the host write credit counter 9 is empty (at block 602), the host memory controller 6 waits until multiple credits are available to send a write command.

ライトコマンドを受信すると(ブロック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 memory module controller 20 buffers the write data in the write buffer 30 (at block 612). When the write data from the write buffer 30 is destaged to a plurality of storage elements in the memory chips 12, 14, 16, 18 (at block 614), the memory module controller 20 writes a write credit indicating the credits returned to the host memory controller 6. Counter 30 is incremented (at block 616) to allow another write command. If the write credit counter 30 exceeds the threshold (at block 618), the memory module controller 20 indicates at least one of the plurality of write credits indicated in the write credit counter 30 that does not indicate any read data. A read data packet is generated (at block 620). A read data packet is sent to the host memory controller 6 (at block 622) and the write credit counter 30 is decremented by the number of credits returned (at block 624). In certain embodiments, there may be a limit on the number of credits returned, so the write credit counter 30 may or may not be reduced to zero. Thus, when the read packet is not transmitted for a long time, the memory module controller 20 transmits the read data packet without data and provides a plurality of write credits. As a result, the host memory controller 8 is blocked from transmitting a plurality of write commands without running out of a plurality of write credits. Alternatively, multiple write credits may be returned in multiple packets other than the read data packet.

図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 memory module controller 20 to generate a read data packet to return to the host memory controller 4. When generating a read data packet containing read data to return to a read request from the host memory controller 6 (at block 640), if the write credit counter 30 is greater than zero (at block 642), the memory module controller 20 Some or all of the write credits in 30 are indicated in the read data packet (at block 644) and the read data packet is sent to the host memory controller 6 (at block 646). The write credit counter 30 is decremented by the number of write credits returned (at block 648). The number of write credits returned may or may not be all credits in the counter 30. In this way, the plurality of write credits are collectively processed in the read data packet and returned to the host memory controller 6. This optimizes message usage for communicating information. Since there is a fixed set of responses, the memory module controller 20 does not have to show all credits in one packet. For example, the memory module controller 20 may indicate 0, 1, or 4 for the number of write credits returned in the read packet, or when multiple write credits are returned without read data (FIG. 15). In block 620, 0, 1, 4, or 8 may be indicated for a packet with no data.

図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 host memory controller 6 to process read data packets from the memory module 8. When the read data packet is received (in block 660), if the read data packet indicates multiple write credits (in block 662), the host memory controller 6 sets the write credit counter 9 to the write credit indicated in the read data packet. Increment by number (at block 664). After incrementing the write credit counter 9 (from block 664) or if there are no multiple write credits provided (from the no branch of block 662), if the read data packet contains read data (at block 666), The read data is processed (at block 670). After reading the data or if the packet contains no data (from the no branch of block 666), the read data packet is discarded (at block 668).

複数の記載された実施形態は、複数のリードパケット内の複数のライトクレジットまたは使用済みの他の複数のメッセージを一括処理することによって、バス10の帯域幅を低減させるように、メモリモジュール8がホストメモリコントローラ6に対し、複数のライトクレジットを通信する、複数の技術を提供する。   The described embodiments allow the memory module 8 to reduce the bandwidth of the bus 10 by batch processing multiple write credits or other used multiple messages in multiple read packets. A plurality of techniques for communicating a plurality of write credits to the host memory controller 6 are provided.

[複数のエラー信号を使用して、複数のエラー処理動作を実行する]
複数の記載された実施形態は、ホストメモリコントローラ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 memory module 8 that coordinate error handling with the host memory controller 6. In multiple described embodiments, memory module controller 20 may signal an error on error pin 68ERR0 # shown in the pinout design of FIG. The memory module controller 20 may assert an error (ERR) low signal on the error pin 68 to signal the start of multiple error handling operations, and the memory module controller 20 may indicate that the error mode has ended and the bus An error (ERR) high signal may be asserted on the error pin 68 to signal that 10 has been returned to an initial state ready for operation. In this way, communication for adjusting error handling between the memory module controller 20 and the host memory controller 6 on the bus 10 is intended to avoid consuming bandwidth with wider error handling adjustments. , With a limited number of signals.

図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 memory module controller 20 and the host memory controller 6 for managing a plurality of error processing operations when an error is detected in the memory module 8. Upon detecting an error (at block 700), the memory module controller 20 first signals on the bus 10, such as an ERR low signal, to signal to the host memory controller 6 that a plurality of error handling operations have been initiated. An error signal is asserted on pin 68 (FIG. 3) (at block 702). When a first error signal, such as an ERR low signal, is detected on pin 68 (at block 704), the host memory controller 6 sends a receipt confirmation that the first error signal has been received (at block 706), then Subsequently, in response to the first error signal, the read operation and the write operation for the memory module 8 having the error are interrupted (at block 708). The host memory controller 6 may perform a plurality of further error handling operations, such as setting the write credit counter 9 to a maximum value (at block 710). Thus, the host memory controller 6 assumes that all writes are flushed from the write buffer 28 to multiple storage elements in the memory chips 12, 14, 16, 18 as part of error handling. .

ホストメモリコントローラ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 memory module controller 20 performs a plurality of error handling operations to return the bus 10 to its initial state. Such multiple operations include discarding all pending read requests (at block 716), deallocating multiple writes in write buffer 28 to multiple storage elements in memory chips 12, 14, 16, and 18. Erasing (at block 722) a plurality of write credits to return from the stage (at block 718) and the write credit counter 30 may be included. After completion of multiple error handling operations, the memory module controller 20 asserts a second error signal, such as ERR high, on the error pin 68 (at block 724) to signal that error handling is complete. Upon detecting this second error signal (at block 726), the host memory controller 6 resumes read and write operations to the memory module in response to detection of the second error signal (at block 728).

複数の記載された実施形態に関し、メモリモジュール8およびホストメモリコントローラ6は、複数のエラー上の多くの通信およびバスを介して実行される複数のトランザクションを交換することなく、限定された数の信号を用いて調整し、複数の完全なエラー処理動作を実行する。各コンポーネント8および20は、他方がメモリモジュール8におけるエラーに応答して、バス10の完全な再初期化を実行することを前提とする。   With respect to the described embodiments, the memory module 8 and the host memory controller 6 allow a limited number of signals without exchanging multiple communications over multiple errors and transactions executed over the bus. To perform multiple complete error handling operations. Each component 8 and 20 assumes that the other performs a complete reinitialization of the bus 10 in response to an error in the memory module 8.

[ライトリクエストエラーおよびライトリクエスト受け取りを示すためのエラー信号を使用する]
複数の記載された実施形態は、例えば、ライトリクエストの送信から予め定められた時間内に、エラー信号ロー等、エラー信号をアサートしないことによって、ライトリクエストが正常に完了したこと、およびエラー信号をアサートすることによって、ライトリクエストが失敗したことを、メモリモジュールコントローラ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 memory module controller 20 provides a plurality of techniques for indicating to the host memory controller 6 that the write request has failed. When the error signal is detected, the host memory controller 6 retransmits the write request when the error signal is received within a predetermined time from the transmission of the write request. In this manner, the bandwidth of the bus 10 is saved by not transmitting a plurality of write completion receipt confirmations to the host memory controller 6 after each write request is completed.

図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 memory module controller 20 and the host memory controller 6 to illustrate the write request and the receipt of multiple errors within the write request. When memory module controller 20 detects a write error for one of the multiple write requests being processed (at block 750), memory module controller 20 asserts an error signal, such as error low signal ERR0 #, on pin 68 (FIG. 3). To indicate that no error has occurred, the memory module controller 20 maintains the error high signal active. The memory module controller 20 may additionally use the ERR0 # signal on pin 68 to indicate multiple errors unrelated to multiple write request errors. Further, the memory module controller 20 implicitly indicates the normal end of the write request by not transmitting an error low signal within a predetermined time from the write request, such as when a write request is transmitted / received.

ホストメモリコントローラ6がエラーロー信号を検出する際(ブロック754において)、1または複数のライトリクエストからの予め定められた時間内に、エラーロー信号が受信される場合(ブロック756において)、ホストメモリコントローラ20は、エラーロー信号の受信から予め定められた時間内に送信された1または複数の決定されたリクエストを再送信する(ブロック758において)。特定の複数の実施形態において、エラー信号が複数のライトエラーンに対し無関係である場合であっても、ホストメモリコントローラ20は、複数のライトリクエストを再送信する。このように、ホストメモリコントローラ20は、エラー信号ローが、予め定められた時間内に受信されない場合、複数のライトリクエストを正常に完了したものとして処理し、たとえ、エラー信号ローが複数のライトリクエストエラーに無関係のエラーをシグナリングする場合であっても。エラー信号ローが予め定められた時間内に受信されると、ライトリクエストを失敗したものとして処理する。   When the host memory controller 6 detects an error low signal (at block 754), if an error low signal is received within a predetermined time from one or more write requests (at block 756), the host memory controller 20 Retransmits (at block 758) one or more determined requests transmitted within a predetermined time from receipt of the error low signal. In certain embodiments, the host memory controller 20 retransmits multiple write requests even if the error signal is irrelevant for multiple write errors. Thus, if the error signal row is not received within a predetermined time, the host memory controller 20 processes a plurality of write requests as having been completed normally, even if the error signal row is a plurality of write requests. Even when signaling an error unrelated to the error. If an error signal low is received within a predetermined time, the write request is processed as having failed.

複数のライトリクエストを再送信後(ブロック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 host memory controller 6 will generate an error low signal. Is determined (at block 760) to determine if there are error handling operations to be performed that are unrelated to multiple write errors. If present, the host memory controller 6 performs an error handling operation unrelated to multiple write errors (at block 762).

記載された複数の実施形態に関し、メモリモジュール8は、各ライトの完了後、複数のライト完了受信確認を送信しない。代わりに、ホストメモリコントローラ6は、ライトリクエストの後、予め定められた時間内にエラー信号が受信されない場合にライトが完了したことを前提する。さらに、たとえ、メモリモジュールコントローラ20がライトエラーに無関係のエラーをシグナリングする場合であっても、エラー信号がライトリクエストの送信後、予め定められた時間内に受信される場合は、ホストメモリコントローラ6は、ライトリクエストを再送信する。   For the described embodiments, the memory module 8 does not send a plurality of write completion receipt confirmations after completion of each write. Instead, the host memory controller 6 assumes that the write has been completed if no error signal is received within a predetermined time after the write request. Furthermore, even if the memory module controller 20 signals an error unrelated to the write error, if the error signal is received within a predetermined time after the transmission of the write request, the host memory controller 6 Resends the write request.

[メモリモジュール内のリードデータをスクランブルする]
複数の記載された実施形態は、メモリモジュールコントローラ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 memory module controller 20 descrambles the write data and stores the unscrambled write data. Provides multiple techniques for scrambling data. Scrambling for data being transmitted on the bus 10 for both reads and writes is performed to avoid the probability of complex sequences occurring within the transmission that can cause multiple errors on the bus 10. 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 host memory controller 6 and memory module controller 20 maintain scramble seed values 11 and 32 (shown in FIGS. 1 and 2), respectively. Both seed values are initialized to a common value and then incremented after processing the read data packet. As a result, the incremented seed values 32 and 11 are individually set to the same value for the same read data packet, and the read request in the read data packet returned to the host memory controller 6 in response to the read request is made. Used to scramble and descramble data. In addition, the memory module controller 20 and the host memory controller 6 implement circuit logic for the same data scramble algorithm using seed values 11 and 32 to scramble and descramble the data, and the complexity generated on the bus 10 Remove the possibility of a bad sequence. In alternative embodiments, the host memory controller 6 and the memory module controller 20 may update the seed values 11 and 32 by a plurality of additional operations known in the art.

図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 memory module controller 20 and the host memory controller 6 to scramble read data transmitted via the bus 10. When the read request for the read address is received from the host memory controller 6 (at block 800), the memory module controller 20 reads the unscrambled read data from the storage elements such as the DRAM chips 12, 14, 16, 18 in the memory module 8. (At block 802). The memory module controller 20 uses the scramble seed 32 (at block 804) to scramble the requested read data and read address back to the read request from the host memory controller 6 (at block 806). Include in the packet. The scrambled 32 is then updated (at block 808). In one embodiment, the scrambled 11, 32 is then updated in a pseudo-random manner using a linear feedback shift register (LFSR) circuit.

リードパケットを受信すると、ホストメモリコントローラ6は、リードデータおよびリードアドレスを決定すべく、スクランブラシード11を使用して、リードデータパケットをデスクランブルする(ブロック812において)。次に、リードデータがそのリードリクエストに戻され得るよう、アンスクランブルされたアドレスに関連付けられたリードリクエストが決定される(ブロック814において)。スクランブラシード11が更新される(ブロック816において)。代替の実施形態において、スクランブラシード11および32は、スクランブルおよびデスクランブルに使用される前に、更新されてよい。   Upon receipt of the read packet, the host memory controller 6 descrambles the read data packet (at block 812) using the scrambled 11 to determine the read data and read address. Next, a read request associated with the unscrambled address is determined (at block 814) so that the read data can be returned to the read request. The scrambled 11 is updated (at block 816). In an alternative embodiment, the scrambled 11 and 32 may be updated before being used for scrambling and descrambling.

図21は、スクランブルされたライトデータを管理すべく、メモリモジュールコントローラ20によって実行される複数の動作に係る一実施形態を示す。スクランブルされたライトデータを有するライトリクエストをホストメモリコントローラ6から受信すると(ブロック830において)、メモリモジュールコントローラ20はライトリクエストのライトアドレスを使用して、スクランブルされたライトデータをデスクランブルし(ブロック832において)、次に、アンスクランブルされたデータをメモリモジュール8内のメモリチップ12、14、16、18に書き込む(ブロック834において)。   FIG. 21 illustrates one embodiment of multiple operations performed by the memory module controller 20 to manage scrambled write data. Upon receiving a write request with scrambled write data from the host memory controller 6 (at block 830), the memory module controller 20 descrambles the scrambled write data using the write address of the write request (block 832). Then, the unscrambled data is written to the memory chips 12, 14, 16, 18 in the memory module 8 (at block 834).

複数の記載された実施形態は、メモリモジュールコントローラ20が、アンスクランブルされたリードデータを格納後、シード値11と32とを使用して、リードデータおよびアドレスの両方をスクランブルしてバス10上に戻すことを可能にする。シード値11と32は、各コンポーネント8および20が複数の動作をスクランブルおよびデスクランブルするために更新する。   In the described embodiments, after the memory module controller 20 stores the unscrambled read data, the seed values 11 and 32 are used to scramble both the read data and the address on the bus 10. Makes it possible to return. Seed values 11 and 32 are updated for each component 8 and 20 to scramble and descramble multiple operations.

[使用する複数のバスインターフェース構成の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 interface parameters 34 that are configured within the memory module 8. This parameter is used by the memory controller 20 to determine the bus interface configuration used by the memory module 8. As described above, the memory module controller 20 includes a plurality of different bus interfaces 10, for example, a plurality of bus widths having a plurality of different bus widths, that is, a plurality of bus data widths such as a 9-bit interface, an 18-bit interface, a 72-bit interface, Can work with interface. For example, different types of DIMMs in which the memory module controller 20 may be implemented have multiple different bus width configurations, eg, different numbers of pins such as 72, 168, 184, 240, etc. A width may be implemented.

図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 memory module controller 20 to determine the interface parameters 34 (at block 900). The memory module controller 20 may determine the bus 10 interface configuration during initialization by scanning the bus 10 or querying the host memory controller 6. Alternatively, the host memory controller 6 or other component may communicate information about the bus 10 interface configuration, such as bus width, pin configuration, etc., via the bus 10 during initialization. In a further embodiment, the memory module 8 may have one or more strapping pins external to the bus 10 coupled to the memory module 8 and communicating the bus 10 interface configuration. The host memory controller 6 or other component may assert the bus interface configuration on at least one strapping pin. If there are only two supported bus interface configurations to communicate, one strapping pin may be used. If there are more than two supported bus interface configurations supported by the memory module controller 20, there may be additional pins to indicate more than two bus interface configurations. Upon determination of the bus interface configuration (at block 900), interface parameters 32 are set to indicate the determined interface parameters.

図23は、バスインターフェース構成に基づいて、転送リクエストを処理すべく、メモリモジュールコントローラ20によって実行される複数の動作に係る一実施形態を示す。転送リクエストを処理する動作の初期化時(ブロック930において)、メモリモジュールコントローラ20は、インターフェースパラメータ32に対応するバスインターフェース構成を選択する(ブロック932において)。この場合、選択されたバス構成は、各々が異なるバス幅およびピン構成を有する、第1、第2、第3、または更なるバス構成のうち1つを備えてよい。例えば、複数のバス構成は、9ビット、18ビット、72ビットのデータバスを備えてよく、これらのバス構成の各々は、異なる数のピンを有してよい。この選択されたバス構成が、複数の転送リクエストおよび他の複数の動作を処理する際に使用される。   FIG. 23 illustrates one embodiment of the operations performed by the memory module controller 20 to process a transfer request based on the bus interface configuration. Upon initialization of the operation to process the transfer request (at block 930), the memory module controller 20 selects the bus interface configuration corresponding to the interface parameter 32 (at block 932). In this case, the selected bus configuration may comprise one of a first, second, third, or further bus configuration, each having a different bus width and pin configuration. For example, the multiple bus configurations may comprise 9-bit, 18-bit, and 72-bit data buses, each of which may have a different number of pins. This selected bus configuration is used in processing multiple transfer requests and other multiple operations.

メモリモジュールコントローラ20は、選択されたバスインターフェース構成のバス幅に基づいて、転送リクエストを処理する、多数の転送を生成する(ブロック934において)。例えば、選択されたバス構成が、メモリモジュールコントローラ20によってサポートされる他の複数の可能性のある構成より、さらに小さいバス幅を有する場合、そのバス構成は、そのさらに小さいバス幅を収容すべく、より大きいバス幅とより多くのピンを有するサポートされるバスインターフェース構成に要求されるよりも、さらに多くの転送を要求する。このように、メモリモジュールコントローラ20は、選択されたバスインターフェース構成のバス幅に基づいて、転送リクエストを、異なる数のバストランザクションに分割してよい。生成された複数の転送は、選択されたバスインターフェース構成上で転送される(ブロック936において)。   The memory module controller 20 generates a number of transfers that process the transfer request based on the bus width of the selected bus interface configuration (at block 934). For example, if the selected bus configuration has a smaller bus width than the other possible configurations supported by the memory module controller 20, the bus configuration should accommodate that smaller bus width. , Requiring more transfers than required for supported bus interface configurations with larger bus widths and more pins. Thus, the memory module controller 20 may split the transfer request into different numbers of bus transactions based on the bus width of the selected bus interface configuration. The generated transfers are transferred over the selected bus interface configuration (at block 936).

複数の記載された実施形態は、メモリモジュールコントローラ20が、そこに実装されるメモリモジュール8のバス構成をサポートすることを許容すべく、複数の異なるバスインターフェース構成を有するメモリモジュール8内で動作可能なメモリモジュールコントローラ20を提供する。   The described embodiments are operable within a memory module 8 having a plurality of different bus interface configurations to allow the memory module controller 20 to support the bus configuration of the memory modules 8 implemented therein. A memory module controller 20 is provided.

本明細書全体において、「一実施形態」または「ある実施形態」という言及は、その実施形態に関連付けて記載される特定の特徴、構造、または特性が、本願発明の少なくとも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 claim 1, wherein the memory module controller logic further transmits data to the host memory controller in response to receiving the grant signal.
[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 claim 1, wherein a pulse width equal to the minimum pulse width indicates only the request signal and does not indicate an additional function. 5.
[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 6. The device of item 5, wherein the third function is indicated when the request signal having the third pulse width is generated.
[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 7. The device of any one of items 1-6, wherein a plurality of different generated pulse widths encode a plurality of different functions in the request signal.
[Item 8]
The minimum pulse width comprises two clocks;
In item 7, 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. The device described.
[Item 9]
Item 9. The device of any one of items 1 to 8, wherein the request signal includes a clock enable signal.
[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 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.
[Item 12]
The host memory controller logic further comprises:
Determining that the pulse width is equal to the minimum pulse width;
Item 12. The device of item 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.
[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 items 10 to 12, wherein the third function is responsive to the determined pulse width including at least a third pulse width that is greater than the second pulse width.
[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 claim 16, wherein the determined timing adjustment includes a net of the accelerating and adding the delay.
[Item 18]
The at least one component includes a data buffer in the first memory module;
The device of claim 16, wherein the timing adjustment includes delaying the output timing when the second memory module does not include a data buffer as included in the first memory module.
[Item 19]
The at least one component includes a register in the second memory module;
The device of claim 16, wherein the timing adjustment includes delaying the output timing when the second memory module includes the register not included in the first memory module.
[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 22, wherein the second memory module comprises one of unbuffered DIMM (UDIMM), registered DIMM (RDIMM), and load-reduced DIMM (LRDIMM).
[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 28, wherein a two-cycle command is used after servicing the memory module to communicate with the memory module via the bus.
[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 28.
[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 30, wherein the mode register command uses the plurality of address input signals on the bus to provide data for the indicated mode register.
[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 34, wherein the mode register command is received during initialization of the memory module before the bus for the memory module is serviced for multiple bus operations.
[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 items 34 to 36, wherein an input signal is used.
[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 50, wherein the device operates in the normal timing mode in response to determining that the timing mode is not the fast timing mode.
[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 54, wherein the plurality of high address bits are not available based on at least one of the plurality of functions of the bus and an interface configuration of the memory module.
[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 56, wherein the plurality of high address bits are not available when the memory module includes a Small Outline Dual In-line Memory Module (SODIMM).
[Item 58]
The command includes a mode register set command (MRS command); and
55. A device according to item 54, wherein the register to be set includes one of a plurality of mode registers set by the MRS command.
[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 60, wherein the at least one power management operation shown comprises a plurality of operations that are performed to configure the memory module to the one power management state shown.
[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 62. The sending of the CKE low signal causes the memory module controller to perform a plurality of operations to enter a power management sleep state specified in the preclock enable (CKE) command. device.
[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 64, wherein the device performs a predetermined CKE low processing operation in response to the register not indicating at least one power management operation to be performed.
[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 68, wherein the device decrements the plurality of write credits in response to sending the write command.
[Item 70]
70. A device according to item 68 or 69, wherein the read data packet is returned in response to a read request sent by the host memory controller to the memory module to read data in the memory module.
[Item 71]
71. A device according to any one of items 68 to 70, wherein a plurality of read data packets indicate a plurality of write credits.
[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 102, wherein descrambling the scrambled read data further comprises descrambling the scrambled address to determine the read request for the read data packet to be returned. .
[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 106, wherein the first transfer number is greater than the second transfer number.
[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 106 or 107, wherein the second bus width has a plurality of bits that are even smaller than the third bus width.
[Item 109]
109. The device of item 108, wherein the first bus width comprises 9 bits, the second bus width comprises 18 bits, and the third bus width comprises 72 bits.
[Item 110]
The memory module controller logic further includes
110. A device according to any of items 106 to 109, wherein the device sets the interface parameter based on at least one received signal on the bus.
[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 items 106 to 110, wherein the interface parameter indicates the determined bus width.
[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に記載のデバイス。   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. Devices. 前記最小パルス幅に等しいパルス幅は、前記リクエスト信号のみを示し、追加のファンクションを示さない、請求項1から3のいずれか一項に記載のデバイス。   4. The device according to claim 1, wherein a pulse width equal to the minimum pulse width indicates only the request signal and does not indicate an additional function. 5. 前記最小パルス幅より大きい少なくとも第1のパルス幅を有する前記リクエスト信号を生成することは、少なくとも第1のファンクションを示し、
前記第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.
前記第1のパルス幅を有する前記リクエスト信号が生成されるとき、前記第1のファンクションが示され、
前記第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つまたは前記最小パルス幅の複数を備え、
前記複数のパルス幅は、前記ホストメモリコントローラによる前記パルス幅の検出を保証するために必要なクロックサイクルの最小数によって分割されており、
異なる複数の生成された前記パルス幅は、前記リクエスト信号内の複数の異なるファンクションをエンコードする、請求項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.
前記最小パルス幅は、2クロックを備え、
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から8のいずれか一項に記載のデバイス。   The device according to claim 1, wherein the request signal includes a clock enable signal. バスを介して、少なくとも1つのメモリモジュールに連結される、デバイスであって、前記デバイスは、ホストメモリコントローラロジックを備えており、
前記ホストメモリコントローラロジックは、
前記メモリモジュールからの、最小パルス幅より大きいか等しいパルス幅を有するリクエスト信号を検出し、
前記リクエスト信号のパルス幅に対応するファンクションを決定し、
決定された前記ファンクションを実行するためのものであり、
前記最小パルス幅は、前記ホストメモリコントローラが前記リクエスト信号を検出することを保証するために必要な複数のクロックサイクルを有し、
前記リクエスト信号のパルス幅は、前記ホストメモリコントローラに対する前記リクエスト信号に加えて、少なくとも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.
前記第1のパルス幅を有する前記リクエスト信号が生成されるとき、前記第1のファンクションのみが示され、
前記第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.
JP2017087729A 2017-04-26 2017-04-26 device Expired - Fee Related JP6370958B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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