This U.S. non-provisional patent application claims priority under 35 U.S.C. § 119 to Korean Patent Application No. 10-2019-0114889 filed on Sep. 18, 2019, in the Korean Intellectual Property Office, the disclosure of which is incorporated by reference herein in its entirety.
Embodiments of the inventive concept disclosed herein relate to a semiconductor device, and more particularly, relate to a memory module supporting an interface training operation that is performed by a host.
A computing system includes a main memory for temporarily storing data that a processor uses. The main memory is manufactured to operate in compliance with standards such as a dual in-line memory module (DIMM), a registered DIMM (RDIMM), and a load reduced DIMM (LRDIMM). A memory module of an LRDIMM type includes a data buffer. However, a memory module of an RDIMM type does not include the data buffer.
The data buffer of the memory module of the LRDIMM type may be mounted on a printed circuit board to occupy a partial area of the printed circuit board. Accordingly, only a limited number of memory devices can be mounted on the printed circuit board. Also, a latency may additionally occur in read and write operations performed on a memory module of the LRDIMM type because data is read or written through the data buffer.
At least one exemplary embodiment of the inventive concept provides a memory module capable of operating as an LRDIMM type without including a data buffer.
According to an exemplary embodiment, a memory module includes a device controller that communicates with a host device based on a first interface including a first clock signal, a first data signal, and a first data strobe signal and operates in one of a first operation mode or a second operation mode depending on an operation mode control value from the host device, and a memory device that communicates with the device controller based on a second interface including a second data signal and a second data strobe signal. The device controller includes a logic circuit that transmits a predetermined training result value to the host device depending on a training control value from the host device, when a training is performed on a third interface being a virtual interface recognized by the host device in the first operation mode.
According to an exemplary embodiment, an operating method of a memory module which includes a device controller and a memory device includes performing an initialization operation in one of a first operation mode or a second operation mode depending on an operation mode control value from a host device, receiving, from the host device, a training mode enable signal for training a virtual interface between the memory device and a virtual data buffer recognized by the host device as being included in the memory module, after the initialization operation is performed in the first operation mode, receiving a training control value corresponding to a delay value of the virtual interface from the host device, after the training mode enable signal is received, and transmitting a predetermined training result value to the host device depending on the received training control value.
According to an exemplary embodiment, a memory module includes a device controller that communicates with a host device based on a first interface, and a memory device that communicates with the device controller based on a second interface. When a first training operation is performed on the first interface by the host device, the device controller transmits a training result value obtained depending on the first training operation to the host device. When a second training operation is performed on a third interface being a virtual interface by the host device, the device controller transmits a predetermined training result value to the host device.
The inventive concept will become apparent by describing in detail exemplary embodiments thereof with reference to the accompanying drawings.
Below, embodiments of the inventive concept are described in detail and clearly to such an extent that one of ordinary skill in the art can implements the inventive concept.
In the specification, an “interface” between two devices means signals exchanged between the two devices and signals used to exchange the signals. For example, an interface may include a data signal, a data strobe signal, a clock signal, etc.
In the specification, “interface training” means an operation of selecting an optimized delay value obtained by adjusting a delay value (i.e., a phase or a timing value) of signals exchanged between two devices and signals used to exchange the signals.
The substrate 1001 may be a mother board or a printed circuit board on which the processor 1100, the main memory 1200, the system interconnect 1300, the storage device 1400, the user input/output device 1500, and the modem 1600 are mounted. The substrate 1001 may include first to fifth connectors 1010 to 1050 on which the processor 1100, the main memory 1200, the storage device 1400, the user input/output device 1500, and the modem 1600 are mounted. The connectors 1010 to 1050 may be conductive pads. The substrate 1001 may be manufactured to include the system interconnect 1300.
The processor 1100 may include a central processing unit (CPU) or an application processor that controls the computing system 1000 and performs various operations. The processor 1100 may include a host controller 1110 (e.g., a control circuit) configured to control the main memory 1200. The processor 1100 may store codes (e.g., executable codes) necessary to perform operations in the main memory 1200. The operations may generate data, write data and read written data.
The main memory 1200 may be connected to the substrate 1001 through the second connector 1020. The main memory 1200 may include a dynamic random access memory (DRAM). The main memory 1200 may be a storage class memory (SCM) including a nonvolatile memory such as a flash memory or a phase change memory. The main memory 1200 may be based on a dual in-line memory module (DIMM).
The main memory 1200 may include a device controller 1210 (e.g., a control circuit). The device controller 1210 may control the main memory 1200 based on a command provided from the host controller 1110. For example, the device controller 1210 may write data in a memory device included in the main memory 1200 or may read data from the memory device.
The system interconnect 1300 may provide communication channels between the processor 1100, the storage device 1400, the user input/output device 1500, and the modem 1600. The system interconnect 1300 may be based on one of various standards such as Peripheral Component Interconnect express (PCIe), Nonvolatile Memory express (NVMe), Advanced eXtensible Interface (AXI), and ARM Microcontroller Bus Architecture (AMBA).
The storage device 1400 may be connected to the substrate 1001 through the third connector 1030. The storage device 1400 may function as a secondary memory of the computing system 1000. The storage device 1400 may store an operating system and an application driven by the processor 1100 and original data of user data. The storage device 1400 may include a hard disk drive (HDD), a solid state drive (SSD), an optical disk drive (ODD), etc.
The user input/output device 1500 may be connected to the substrate 1001 through the fourth connector 1040. The user input/output device 1500 may be configured to exchange information with a user. The user input/output device 1500 may include user input devices, which are able to receive information from the user, such as a keyboard, a mouse, a touch panel, an operation sensor, and a microphone. The user input/output device 1500 may include user output devices, which are able to provide information to the user, such as a display device, a speaker, a beam projector, and a printer.
The modem 1600 may be connected to the substrate 1001 through the fifth connector 1050. The modem 1600 may be configured to exchange data with an external device wiredly or wirelessly. In an exemplary embodiment, the modem 1600 may be integrated with the substrate 1001 or the processor 1100.
Referring to
The device controller 100 communicates with the host controller 3000 through a host interface. The host interface may include signals that are exchanged between the device controller 100 and the host controller 3000. For example, the host interface may include a data signal DQ and a data strobe signal DQS.
The device controller 100 may receive a command CMDe, an address ADDRe, a clock signal CK, the data signal DQ, and the data strobe signal DQS from the host controller 3000. In an exemplary embodiment, the device controller 100 latches a level of the data signal DQ based on a transition timing of the data strobe signal DQS. For example, the device controller 100 may latch a level of the data signal DQ each time the data strobe signal DQS transitions from one logic level to a different logic level. A signal that the device controller 100 receives from the host controller 3000 is not limited thereto, and the device controller 100 may receive various signals (e.g., control signals) from the host controller 3000. The device controller 100 may transmit the data signal DQ and the data strobe signal DQS to the host controller 3000.
The device controller 100 may communicate with the memory devices 210 to 2n0 based on a controller interface. The controller interface may include signals that are exchanged between the device controller 100 and the memory devices 210 to 2n0. For example, the controller interface may include a data signal CDQ and a data strobe signal CDQS.
The device controller 100 may transmit a command CMDi, an address ADDRi, a clock signal MCK, the data signal CDQ, and the data strobe signal CDQS to each of the memory devices 210 to 2n0. The device controller 100 may receive the data signal CDQ and the data strobe signal CDQS from each of the memory devices 210 to 2n0. In an exemplary embodiment, the device controller 100 latches a level of the data signal CDQ based on a transition timing of the data strobe signal CDQS. For example, the device controller 100 may latch a level of the data signal CDQ each time the data strobe signal CDQS transitions from one logic level to a different logic level.
The device controller 100 may transmit the command CMDi, the address ADDRi, and the clock signal MCK to at least one of the memory devices 210 to 2n0 in response to the command CMDe, the address ADDRe, and the clock signal CK transmitted from the host controller 3000. The device controller 100 may transmit the command CMDi, the address ADDRi, and the clock signal MCK to at least one of the memory devices 210 to 2n0 in response to a selection signal from the host controller 3000.
The device controller 100 may transmit the data signal CDQ and the data strobe signal CDQS to a relevant memory device based on the data signal DQ and the data strobe signal DQS. For example, the device controller 100 may transmit the data signal CDQ and the data strobe signal CDQS to the first memory device 210 through a fifth signal line 105 and a sixth signal line 106, based on the data signal DQ and the data strobe signal DQS respectively received through a first signal line 101 and a second signal line 102. The device controller 100 may transmit the data signal CDQ and the data strobe signal CDQS to the n-th memory device 2n0 through a seventh signal line 107 and an eighth signal line 108, based on the data signal DQ and the data strobe signal DQS respectively received through a third signal line 103 and a fourth signal line 104.
In an exemplary embodiment, the device controller 100 transmits the data signal DQ transmitted from the host controller 3000 to a memory device without modification. In this case, a value of the data signal DQ may be identical to a value of the data signal CDQ transmitted from the device controller 100 to a memory device. In another embodiment, the device controller 100 processes the data signal DQ transmitted from the host controller 3000 to generate a processed data signal and transmits the processed data signal to a memory device. In this case, a value of the data signal DQ may be different from a value of the data signal CDQ transmitted from the device controller 100 to a memory device.
Based on the command CMDi and the address ADDRi, the device controller 100 may read the data signal CDQ from each of the memory devices 210 to 2n0 or may write the data signal CDQ in each of the memory devices 210 to 2n0. For example, when the command CMDi is a read command, the device controller 100 may receive the data signal CDQ from one of the memory devices 210 to 2n0 indicated by the address ADDRi or from a location within one of the memory devices 210 to 2n0 indicated by the address ADDRi.
In response to the command CMDi and the address ADDRi, each of the memory devices 210 to 2n0 may output the data signal CDQ from internal memory cells or may store the data signal CDQ in the internal memory cells. To output the data signal CDQ, each of the memory devices 210 to 2n0 may transmit the data signal CDQ and the data strobe signal CDQS to the device controller 100. To store the data signal CDQ, each of the memory devices 210 to 2n0 may receive the data signal CDQ and the data strobe signal CDQS from the device controller 100. In an exemplary embodiment, each of the memory devices 210 to 2n0 latches a level of the data signal CDQ based on a transition timing of the data strobe signal CDQS. For example, each of the memory devices 210 to 2n0 may latch a level of the data signal CDQ each time a transition of the data strobe signal CDQS occurs.
Each of the memory devices 210 to 2n0 may operate based on the clock signal MCK. For example, each of the memory devices 210 to 2n0 may generate the data strobe signal CDQS from the clock signal MCK.
Each of the memory devices 210 to 2n0 may be a volatile memory such as a DRAM, or a nonvolatile memory such as a flash memory, a PRAM, an RRAM, or an MRAM.
The device controller 100 includes a control logic circuit 110, a first register 120, a second register 130, and a buffer training support logic circuit 140. In an exemplary embodiment, the control logic circuit 110 stores a control value associated with an operation of the device controller 100 in the first register 120 in response to the command CMDe and the address ADDRe. The device controller 100 may operate depending on the control value stored in the first register 120. For example, the device controller 100 may operate in a first operation mode or a second operation mode depending on the control value stored in the first register 120. That is, the device controller 100 may operate in an operation mode selected by the host controller 3000 from among the first operation mode and the second operation mode. For example, the control value may be set to a first value to select the first operation mode and set to a second other value to select a second operation mode.
In an exemplary embodiment, the first operation mode refers to a mode of operating in compliance with the LRDIMM standard, and the second operation mode refers to a mode of operating in compliance with the RDIMM standard. In the case where the device controller operates in the first operation mode, the memory module 2000 may be recognized as a memory module of the LRDIMM type by the host controller 3000. In the case where the device controller (e,g., 100) operates in the second operation mode, the memory module 2000 may be recognized as a memory module of the RDIMM type by the host controller 3000. That is, the memory module 2000 may operate as the LRDIMM or the RDIMM depending on a control value received from the host controller 3000.
In the case where the memory module 2000 operates in the first operation mode, as illustrated in
The host controller 3000 may recognize that the data buffer 400 and the memory device 500 communicate based on a memory interface. In this case, the memory interface may include first signals exchanged between the data buffer 400 and the memory device 500 and second signals used to exchange the first signals. For example, the memory interface may include a data signal MDQ, a data strobe signal MDQS, and a clock signal BCK.
The host controller 3000 may recognize that the data buffer 400 receives the data signal DQ and the data strobe signal DQS and operates based on the clock signal BCK provided from the device controller 300. In this case, it may be recognized that the clock signal BCK is generated based on the clock signal CK. The host controller 3000 may recognize that the data buffer 400 transmits the data signal MDQ and the data strobe signal MDQS to the memory device 500 based on the data signal DQ and the data strobe signal DQS. The host controller 3000 may recognize that the data buffer 400 receives the data signal MDQ and the data strobe signal MDQS from the memory device 500.
The host controller 3000 may recognize that the memory device 500 receives the data signal MDQ and the data strobe signal MDQS from the data buffer 400 and transmits the data signal MDQ and the data strobe signal MDQS to the data buffer 400. In this case, it may be recognized that the memory device 500 operates based on the clock signal MCK provided from the device controller 300 and the clock signal MCK is generated based on the clock signal CK.
As such, in the case where the memory module 2000 operates in the first operation mode, the host controller 3000 may recognize that the memory module 2000 operates as the memory module 4000 even though the memory module 2000 does not actually include a data buffer. In this case, the host controller 3000 may recognize that the data buffer 400 and the memory device 500 communicate based on a memory interface. That is, the data buffer 400 may be a virtual data buffer that is recognized by the host controller 3000 as being included in the memory module 2000. Accordingly, the memory interface may be a virtual interface between the virtual data buffer 400 and the memory device 500.
Since the memory module 2000 is recognized as the memory module 4000 by the host controller 3000, the host controller 3000 may recognize that both the host interface and the memory interface exist. For example, the host controller 3000 may recognize that a data signal DQ, a data strobe signal DQS, a data signal MDQ, a data strobe signal MDQS, and a clock signal BCK all need to be generated. As such, the host controller 3000 may perform a host interface training operation and a memory interface training operation. The host controller 3000 may perform an interface training operation before the memory module 2000 performs a normal operation. Examples of the normal operation may include a read operation and a write operation.
Returning to
The control logic circuit 110 receives the command CMDe and the address ADDRe for the memory interface training operation from the host controller 3000. In an exemplary embodiment, the control logic circuit 110 provides a training control value to the buffer training support logic circuit 140 based on the received command CMDe and the received address ADDRe. The buffer training support logic circuit 140 may generate a predetermined training result value depending on the provided training control value and may transmit the generated training result value to the host controller 3000 through the data signal DQ. That is, the buffer training support logic circuit 140 may replicate the memory interface training operation by transmitting the predetermined training result value to the host controller 3000. For example, instead of performing the memory interface training operation to generate an actual training result value, the buffer training support logic circuit 140 transmits a predetermined training result value to the host controller 3000.
The host controller 3000 may select a final delay value (i.e., a final phase value or a final timing value) of the memory interface based on the training result value. For example, the host controller 3000 may select a final delay value of the data strobe signal MDQS from the data buffer 400 of
The device controller 100 may receive the command CMDe and the address ADDRe for the host interface training operation from the host controller 3000. The device controller 100 actually performs the host interface training operation based on the received command CMDe and the received address ADDRe. The device controller 100 provides a training result value generated through the training operation to the host controller 3000. The host controller 3000 may select a final delay value of the host interface based on the training result value. The host controller 3000 may store the selected final delay value in an internal register. As such, the host interface training operation may be completed.
In an exemplary embodiment, the buffer training support logic circuit 140 is used for the host interface training operation. The host interface training operation of the device controller 100 will be described with reference to
The device controller 100 may perform a controller interface training operation automatically regardless of a command of the host controller 3000. For example, the control logic circuit 110 may perform the controller interface training operation and may store a final delay value of a controller interface selected through the training operation in the second register 130. As such, the device controller 100 may transmit or receive the data signal CDQ and the data strobe signal CDQS based on the final delay value stored in the second register 130.
The device controller 100 may perform the training operation on the controller interfaces between the memory devices 210 to 2n0 and the device controller 100, respectively. For example, the device controller 100 may train a first controller interface between the first memory device 210 and the device controller 100. The device controller 100 may train an n-th controller interface between the n-th memory device 2n0 and the device controller 100, independently of the first controller interface training operation. As such, the second register 130 may separately store an optimized delay value of the first controller interface and an optimized delay value of the n-th controller interface.
As described above, the memory module 2000 may operate in the first operation mode (i.e., the LRDIMM type) without including a data buffer. In the case where the memory module 2000 has a predetermined size, because the memory module 2000 does not include a data buffer, the number of memory devices to be mounted on the memory module 2000 may increase. Accordingly, the capacity of the memory module 2000 may increase. Also, because data are transferred between the host controller 3000 and the memory devices 210 to 2n0 without using a data buffer, a read latency and a write latency may decrease.
In operation S103, the memory module 2000 performs the memory interface training operation and the host interface training operation. The memory interface training operation and the host interface training operation may be controlled by the host controller 3000. The memory module 2000 may perform the training operation based on a command or a training control value transmitted from the host controller 3000. In an exemplary embodiment, final delay values of a memory interface are selected by the host controller 3000 through the memory interface training operation. In an exemplary embodiment, final delay values of a host interface are selected by the host controller 3000 through the host interface training operation.
After the training operations in operation S103 have completed, in operation S104, the memory module 2000 tests the trained interface. An interface test operation used to test the trained interface may be controlled by the host controller 3000. The host controller 3000 may determine whether the interface training operations are normally performed depending on the interface test operation.
After the test operation has completed, in operation S105, the memory module 2000 performs a normal operation. In the normal operation, the memory module 2000 may communicate with the host controller 3000 and the memory devices 210 to 2n0 based on the host interface and the controller interface. The controller interface training operation may be separately performed by the memory module 2000. In the normal operation, the memory module 2000 does not use final delay values selected through the memory interface training operation.
The memory interface training operation of the memory module 2000 will be more fully described with reference to
In an exemplary embodiment, the selection circuit 150 transfers the data signal DQ to one of a first data path P1 or a second data path P2 based on a control signal SCC from the control logic circuit 110. The data signal DQ transferred through the first data path P1 may be provided to a memory device or may be provided to a separate circuit of the device controller 100. The data signal DQ transferred through the second data path P2 is provided to the buffer training support logic circuit 140. Also, the selection circuit 150 may provide the host controller 3000 with the data signal DQ input from one of the first data path P1 or the second data path P2 based on the control signal SCC from the control logic circuit 110.
The control logic circuit 110 may control the selection circuit 150 such that the data signal DQ is transferred to the device controller 100 or the host controller 3000 through the first data path P1 in the normal operation. The control logic circuit 110 may control the selection circuit 150 such that the data signal DQ is transferred to the device controller 100 or the host controller 3000 through the second data path P2 in the memory interface training operation.
The buffer training support logic circuit 140 includes a buffer register 141, a control register 142, and a training result value generator 143. The buffer register 141 may store the data signal DQ transferred through the second data path P2. The data signal DQ stored in the buffer register 141 may be transmitted to the host controller 3000 through the second data path P2.
The control register 142 may store a training control value associated with the memory interface training operation. The control logic circuit 110 may receive the training control value based on the command CMDe and the address ADDRe from the host controller 3000. The control logic circuit 110 may store the training control value received through a control signal BTC in the control register 142. The control logic circuit 110 may store the training control value in a location of the control register 142 indicated by the address ADDRe.
The training result value generator 143 may generate a predetermined training result value based on the training control value stored in the control register 142. The predetermined training result value may correspond to an actual training result value that is obtained through a training operation performed on an actual memory interface. That is, the predetermined training result value may be a replica value associated with the actual training result value. For example, the predetermined training result value may be generated depending on a particular algorithm such that the memory interface training operation is normally completed or may be stored in advance as a particular value. The generated training result value may be transmitted to the host controller 3000 through the buffer register 141.
As described above, in the memory interface training operation, the buffer training support logic circuit 140 replicates the memory interface training operation by generating the predetermined training result value depending on the training control value. As such, the memory interface training operation that is performed by the host controller 3000 may be normally completed. Accordingly, the memory module 2000 may operate in the first operation mode without a data buffer.
The mode field MODE may direct a kind of a training mode. In the memory interface training operation, the mode field MODE may store one of various training modes of the memory interface training operation. For example, the training modes for the memory interface may include a mode (hereinafter referred to as an “MRE(P) training mode”) of training a data signal (MDQ) receive enable phase MRE(P), a mode (hereinafter referred to as a “DWL training mode”) of training write leveling, a mode (hereinafter referred to as an “MRD training mode”) of training a read delay, and a mode (hereinafter referred to as an “MWD training mode”) of training a write delay.
In the MRE(P) training mode, there may be selected a final delay value of a receive enable signal that is generated from the clock signal BCK of the data buffer 400 of
In the DWL training mode, there may be selected a final delay value of the data strobe signal MDQS transmitted from the data buffer 400 of
In the MRD training mode, there may be selected a final delay value of the receive enable signal and a final delay value of the data strobe signal MDQS and the data signal MDQ received from the memory device 500 of
In the MWD training mode, there may be selected a final delay value of the data strobe signal MDQS and the data signal MDQ transmitted from the data buffer 400 of
Below, for convenience of description, a final delay value selected within one cycle is referred to as a “partial cycle delay”, and a final delay value being one selected from multiples of one cycle is referred to as a “full cycle delay”.
In the memory interface training operation, the mode field MODE may store a training mode value TMV indicating one of the MRE(P) training mode, the DWL training mode, the MRD training mode, and the MWD training mode.
The control field MRE(P) may store a training control value TCV_A that is used in the MRE(P) training mode. For example, a phase (i.e., the partial cycle delay) of the receive enable signal generated from the clock signal BCK may be adjusted depending on the training control value TCV_A.
The control field DWL may store a training control value TCV_B that is used in the DWL training mode. For example, a phase (i.e., the partial cycle delay) of the data strobe signal MDQS transmitted from the data buffer 400 may be adjusted depending on the training control value TCV_B.
The control fields MRD1 to MRD3 may store training control values TCV_C to TCV_E that are used in the MRD training mode, respectively. For example, a full cycle delay of the receive enable signal and a phase (i.e., the partial cycle delay) of the data strobe signal MDQS and the data signal MDQ input to the data buffer 400 may be adjusted depending on the training control values TCV_C to TCV_E.
The control fields MWD1 and MWD2 may store training control values TCV_F and TCV_G that are used in the MWD training mode. For example, the full cycle delay of the data strobe signal MDQS transmitted from the data buffer 400 and a phase (i.e., the partial cycle delay) of the data signal MDQ transmitted from the data buffer 400 may be adjusted depending on the training control values TCV_F and TCV_G.
The data field MPR may store expected data ED used in the training operation. For example, an operation of comparing particular data and the expected data ED may be performed in the memory interface training operation.
The data field TSW may store a comparison result CR that is generated in the training operation. For example, in the memory interface training operation, a value corresponding to the comparison result CR of comparing the particular data and the expected data ED may be stored in the data field TSW.
In the interface training operation, the control logic circuit 110 may write values in the corresponding fields of the control register 142 based on the command CMDe and the address ADDRe. In an exemplary embodiment, the training control values TCV_A to TCV_G of the control fields MRE(P), DWL, MRD1 to MRD3, MWD1, and MWD2 may be stored in the initialization operation of
The training result value generator 143 may generate a training result value based on values written in the fields of the control register 142. For example, in the memory interface training operation, the training result value generator 143 may generate a predetermined training result value depending on the training control values TCV_A to TCV_G of the control fields MERP, DWL, MRD1 to MRD3, MWD1, and MWD2 of the control register 142.
In operation S112, the memory module 2000 transmits a predetermined training control value to the host controller 3000 depending on the training control value TCV_A. For example, the training result value generator 143 may generate the predetermined training result value depending on the training control value TCV_A stored in the control field MRE(P) of the control register 142. Here, the training control value TCV_A may correspond to a partial cycle delay value of the receive enable signal generated from the clock signal BCK, and the predetermined training result value may correspond to a value obtained by sampling the clock signal BCK based on the data strobe signal MDQS transmitted from the memory device 500 of
In operation S113, the memory module 2000 receives a new training control value TCV_A from the host controller 3000. For example, the control logic circuit 110 may write the received new training control value TCV_A in the control field MRE(P) of the control register 142. Accordingly, a value of the control field MRE(P) may vary.
In operation S114, the memory module 2000 determines whether the new training control value TCV_A is a final training control value TCV_A. When the new training control value TCV_A is the final training control value TCV_A, the MRE(P) training operation is terminated. In this case, the control field MRE(P) of the control register 142 may store the final training control value TCV_A. That is, a final partial cycle delay value of the receive enable signal may be set.
When the new training control value TCV_A is not the final training control value TCV_A, the memory module 2000 may again perform operation S112 and operation S113. For example, the memory module 2000 may transmit the predetermined training result value to the host controller 3000 depending on the new training control value TCV_A.
The host controller 3000 may select the final training control value TCV_A based on at least one training result value transmitted from the memory module 2000. For example, when the final training control value TCV_A is selected based on the at least one training result value, in operation S113, the host controller 3000 may transmit the selected final training control value TCV_A to the memory module 2000. When the final training control value TCV_A is not selected based on the at least one training result value, in operation S113, the host controller 3000 may transmit the new training control value TCV_A for receiving a new training result value to the memory module 2000.
The memory module 2000 may transmit a predetermined training control value to the host controller 3000 depending on each training control value. For example, at the 1st to 32nd t1 to t32, the memory module 2000 may transmit “0” as a training result value to the host controller 3000 depending on the 1st to 32nd training control values TCV_A1 to TCV_A32, respectively. At the 33rd to 64th t33 to t64, the memory module 2000 may transmit “1” as a training result value to the host controller 3000 depending on each of the 33rd to 64th training control values TCV_A33 to TCV_A64.
The host controller 3000 may select the final training control value TCV_A based on 64 training result values transmitted from the memory module 2000. For example, the host controller 3000 may select, as the final training control value TCV_A, the 33rd training control value TCV_A33 corresponding to the 33rd time t33 when the training result value transitions from “0” to “1”. Afterwards, the host controller 3000 may transmit the 33rd training control value TCV_A33 to the memory module 2000 as the final training control value TCV_A.
As described above, the host controller 3000 may select a final partial cycle delay value of the receive enable signal based on a plurality of training result values transmitted from the memory module 2000. A final partial cycle delay value selecting method described with reference to
In operation S122, the memory module 2000 transmits a predetermined training result value to the host controller 3000 depending on the training control value TCV_B. For example, the training result value generator 143 may generate the predetermined training result value depending on the training control value TCV_B stored in the control field DWL of the control register 142. Here, the training control value TCV_B may correspond to a partial cycle delay value of the data strobe signal MDQS from the data buffer 400 of
In operation S123, the memory module 2000 receives a new training control value TCV_B. For example, the control logic circuit 110 may write the received new training control value TCV_B in the control field DWL of the control register 142. Accordingly, a value of the control field DWL may vary.
In operation S124, the memory module 2000 determines whether the new training control value TCV_B is a final training control value TCV_B. When the new training control value TCV_B is the final training control value TCV_B, the DWL training operation is terminated. In this case, the control field DWL of the control register 142 may store the final training control value TCV_B. That is, a final partial cycle delay value of the data strobe signal MDQS transmitted from the data buffer 400 of
The host controller 3000 may select the final training control value TCV_B based on at least one training result value transmitted from the memory module 2000. For example, the host controller 3000 may select the final training control value TCV_B in a method that is similar to the final training control value (TCV_A) selecting method described with reference to
In operation S132, the memory module 2000 stores the expected data ED from the host controller 3000. For example, the host controller 3000 may direct a buffer control words (BCW) register (not illustrated) of the data buffer 400 of
In operation S133, the memory module 2000 transmits a predetermined training result value to the host controller 3000 depending on the training control values TCV_C to TCV_E. For example, the training result value generator 143 may generate the predetermined training result value depending on the training control values TCV_C to TCV_E stored in the control fields MRD1 to MRD3 of the control register 142. Here, the training control values TCV_C to TCV_E may respectively correspond to a full cycle delay, a partial cycle delay, and a partial cycle delay of the receive enable signal, the data strobe signal MDQS, and the data signal MDQ, which are used to read particular data from the memory device 500. Also, the predetermined training result value may correspond to a comparison result of comparing expected data ED stored in advance in the BCW register of the data buffer 400 of
The predetermined training result value may be a first value (e.g., “1”) indicating that two data are matched or a second value (e.g., “0”) indicating that two data are different. For example, the training result value generator 143 may generate the predetermined training result value so as to have the first value regardless of the training control values TCV_C to TCV_E. In another example, in the case where particular training control values TCV_C to TCV_E are stored in the control fields MRD1 to MRD3, the training result value generator 143 may generate the predetermined training result value corresponding to the first value. The training result value generator 143 may store the generated training result value in the data field TSW of the control register 142 as the comparison result CR. The training result value stored in the control register 142 may be transmitted to the host controller 3000 through the buffer register 141.
In operation S134, the memory module 2000 receives new training control values TCV_C to TCV_E. For example, the control logic circuit 110 may write the new training control values TCV_C to TCV_E in the control fields MRD1 to MRD3 of the control register 142. Accordingly, values of the control fields MRD1 to MRD3 may vary.
In operation S135, the memory module 2000 may determine whether the new training control values TCV_C to TCV_E are final training control values TCV_C to TCV_E. When the new training control values TCV_C to TCV_E are the final training control values TCV_C to TCV_E, the MRD training operation is terminated. In this case, the control fields MRD1 to MRD3 of the control register 142 may store the final training control values TCV_C to TCV_E. That is, a final full cycle delay value of the receive enable signal and a final partial cycle delay value of the data strobe signal MDQS and the data signal MDQ input to the data buffer 400 of
The host controller 3000 may select the final training control values TCV_C to TCV_E based on at least one training result value transmitted from the memory module 2000. For example, in the case where a training result value is the first value, the host controller 3000 may select the corresponding training control values TCV_C to TCV_E as the final training control values TCV_C to TCV_E. In another example, in the case where each of training result values corresponding to various combinations of the training control values TCV_C to TCV_E is the first value, the host controller 3000 may select one of the various combinations of the training control values TCV_C to TCV_E as the final training control values TCV_C to TCV_E.
In operation S142, the memory module 2000 stores the expected data ED from the host controller 3000. For example, the host controller 3000 may direct the BCW register of the data buffer 400 of
In operation S143, the memory module 2000 transmits a predetermined training result value to the host controller 3000 depending on the training control values TCV_F and TCV_G. For example, the training result value generator 143 may generate the predetermined training result value depending on the training control values TCV_F and TCV_G stored in the control fields MWD1 and MWD2 of the control register 142. Here, the training control values TCV_F and TCV_G may respectively correspond to a full cycle delay and a partial cycle delay of the data strobe signal MDQS and the data signal MDQ, which are used to write particular data in the memory device 500. The predetermined training result value may correspond to a comparison result of comparing expected data ED stored in advance in the BCW register of the data buffer 400 of
The predetermined training result value may be a first value (e.g., “1”) indicating that two data are matched or a second value (e.g., “0”) indicating that two data are different. For example, the training result value generator 143 may generate the predetermined training result value so as to have the first value regardless of the training control values TCV_F and TCV_G. In another example, in the case where particular training control values TCV_F and TCV_G are stored in the control fields MWD1 and MWD2, the training result value generator 143 may generate the predetermined training result value corresponding to the first value. The training result value generator 143 may store the generated training result value in the data field TSW of the control register 142 as the comparison result CR. The training result value stored in the control register 142 may be transmitted to the host controller 3000 through the buffer register 141.
In operation S144, the memory module 2000 receives new training control values TCV_F and TCV_G. For example, the control logic circuit 110 may write the received new training control values TCV_F and TCV_G in the control fields MWD1 and MWD2 of the control register 142. Accordingly, values of the control fields MWD1 and MWD2 may vary.
In operation S145, the memory module 2000 determines whether the new training control values TCV_F and TCV_G are final training control values TCV_F and TCV_G. When the new training control values TCV_F and TCV_G are the final training control values TCV_F and TCV_G, the MWD training operation is terminated. In this case, the control fields MWD1 and MWD2 of the control register 142 may store the final training control values TCV_F and TCV_G. That is, there may be set a final full cycle delay value and a final partial cycle delay value of the data strobe signal MDQS and the data signal MDQ transmitted from the data buffer 400 of
The host controller 3000 may select the final training control values TCV_F and TCV_G based on at least one training result value transmitted from the memory module 2000. The host controller 3000 may select the final training control values TCV_F and TCV_G as described in the MRD training operation of
As described above, in the memory interface training operation, the memory module 2000 may replicate the training operation by generating a predetermined training result value depending on a training control value in various training modes.
Below, the host interface training operation of the memory module 2000 will be more fully described with reference to
The device controller 100 of
Referring to
The selection circuit 150 may receive the data strobe signal DQS having a particular delay value from the host controller 3000. The selection circuit 150 may transfer the data strobe signal DQS to a third data path P3 based on the control signal SCC from the control logic circuit 110. The data strobe signal DQS transferred through the third data path P3 may be provided to the sampling circuit 160. The sampling circuit 160 may sample the clock signal CK based on the data strobe signal DQS. The sampling circuit 160 may operate based on a control signal SAC from the control logic circuit 110. The sampling circuit 160 may provide a sampled clock signal S_CK to the selection circuit 150 through the first data path P1. The selection circuit 150 may transmit the sampled clock signal S_CK to the host controller 3000 through the data signal DQ.
The host controller 3000 may select a final delay value of the data strobe signal DQS based on the sampled clock signal S_CK. For example, the host controller 3000 may select a final delay value of the data strobe signal DQS as described with reference to
In the case where it is impossible to select a final delay value, the host controller 3000 may change a delay value and may transmit the data strobe signal DQS having another delay value to the device controller 100. As such, the device controller 100 may sample the clock signal CK based on the data strobe signal DQS having another delay value and may transmit the sampled clock signal S_CK to the host controller 3000.
An example is illustrated in
In the case where a normal operation or any other training operation is performed after a final delay value of the data strobe signal DQS is selected by the host controller 3000, the HWL training operation is terminated. In the case where a final delay value of the data strobe signal DQS is not selected by the host controller 3000, operation S152 and operation S153 may be repeatedly performed until the final delay value is selected.
Referring to
The control logic circuit 110 may write the expected data ED in the data field MPR of the control register 142. The expected data ED may be provided from the host controller 3000 through the command CMDe and the address ADDRe. The control logic circuit 110 may control the selection circuit 150 such that particular data PD identical to the expected data ED is written in the buffer register 141. The particular data PD may be provided from the host controller 3000 through the data signal DQ. In this case, the data signal DQ may have a phase corresponding to a delay value set by the host controller 3000.
The selection circuit 150 may receive the data signal DQ from the host controller 3000. The selection circuit 150 may transfer the data signal DQ to the second data path P2 based on the control signal SCC from the control logic circuit 110. The data signal DQ transferred through the second data path P2 may be provided to the buffer register 141. Accordingly, the buffer register 141 may store particular data PD.
The comparator 144 may compare the particular data PD stored in the buffer register 141 and the expected data ED stored in the control register 142 to generate a comparison result CR. The comparator 144 may store the comparison result CR in the data field TSW of the control register 142. For example, in the case where the particular data PD and the expected data ED are matched, the comparator 144 may generate a first value (e.g., “1”) as the comparison result CR. In the case where the particular data PD and the expected data ED are different, the comparator 144 may generate a second value (e.g., “0”) as the comparison result CR.
Even though the particular data PD and the expected data ED having the same value are provided from the host controller 3000, a value of the particular data PD stored in the buffer register 141 may vary depending on a phase difference between the data signal DQ and the data strobe signal DQS. In the case where a final delay value of the data strobe signal DQS is set through the HWL training operation, a value of the particular data PD stored in the buffer register 141 may vary depending on a delay value of the data signal DQ. Accordingly, the comparator 144 may generate the first value or the second value as the comparison result CR depending on the delay value of the data signal DQ.
The comparison result CR stored in the control register 142 may be transmitted to the host controller 3000 through the buffer register 141. In this case, the selection circuit 150 may provide the host controller 3000 with the data signal DQ provided through the second data path P2 based on the control signal SCC.
The host controller 3000 may select a final delay value of the data signal DQ based on the comparison result CR. The host controller 3000 may select a final delay value as described in the MRD training operation of
In the case where it is impossible to select a final delay value, the host controller 3000 may change a delay value and may transmit the data signal DQ (i.e., the particular data PD) having another delay value (i.e., another phase) to the device controller 100. Accordingly, the device controller 100 may generate the comparison result CR based on the data signal DQ having another delay value and may transmit the generated comparison result CR to the host controller 3000.
In the case where a normal operation or any other training operation is performed after a final delay value of the data signal DQ is selected by the host controller 3000, the HIW training operation may be terminated. In the case where a final delay value of the data signal DQ is not selected by the host controller 3000, operation S162 and operation S163 may be repeatedly performed until the final delay value is selected.
As described above, the memory module 2000 may perform an actual training operation for the host interface training operation. A final delay value of the data signal DQ and the data strobe signal DQS may be set based on a value generated through the actual training operation. Accordingly, in a normal operation of a first operation mode, the host controller 3000 may transmit the data signal DQ and the data strobe signal DQS having the set final delay value to the memory module 2000.
As described above, the description is given with respect to training operations being performed based on the expected data ED stored in the data field MPR, but the inventive concept is not limited thereto. In another embodiment, the expected data ED may be generated from a particular register (e.g., a linear feedback shift register (LFSR)) in the device controller 100. Training operations including a data comparison operation may be performed on the expected data ED generated from the particular register.
A memory module according to at least one embodiment of the inventive concept may operate as an LRDIMM type without including a data buffer. Because the memory module according to the inventive concept does not include a data buffer, the number of memory devices to be included in the memory module may increase. Also, a read latency and a write latency may decrease.
While the inventive concept has been described with reference to exemplary embodiments thereof, it will be apparent to those of ordinary skill in the art that various changes and modifications may be made thereto without departing from the spirit and scope of the inventive concept.
Number | Date | Country | Kind |
---|---|---|---|
10-2019-0114889 | Sep 2019 | KR | national |
Number | Name | Date | Kind |
---|---|---|---|
7647467 | Hutsell | Jan 2010 | B1 |
8688901 | Chiu et al. | Apr 2014 | B2 |
9015408 | Amer et al. | Apr 2015 | B2 |
9449651 | Takefman et al. | Sep 2016 | B2 |
9640236 | Sun et al. | May 2017 | B2 |
9753651 | Choi | Sep 2017 | B2 |
10185499 | Wang et al. | Jan 2019 | B1 |
10261697 | Lee et al. | Apr 2019 | B2 |
20140195728 | Hsu | Jul 2014 | A1 |
20160314822 | Yeung | Oct 2016 | A1 |
20180059933 | Helmick | Mar 2018 | A1 |
Number | Date | Country | |
---|---|---|---|
20210081204 A1 | Mar 2021 | US |