1. Field of the Invention
The present invention relates to a memory module, and particularly relates to a Load Reduced memory module.
2. Description of Related Art
A memory module such as a DIMM (Dual Inline Memory Module) has a configuration in which a large number of memory chips such as DRAMs (Dynamic Random Access Memories) are mounted on a module substrate. Such a memory module is inserted in a memory slot provided on a motherboard, thereby a data transfer is performed between a memory controller and the memory module. In recent years, because a system requires a considerable amount of memory capacity, it is hard to provide the required memory capacity with a single memory module. Therefore, in most cases, the motherboard includes a plurality of memory slots, so that a plurality of memory modules can be mounted on the motherboard.
However, when a plurality of memory modules are mounted on a motherboard, a load capacity of a data line on the motherboard increases, resulting in a degradation of signal quality. Although it does not cause a serious problem when a data transfer rate between the memory controller and the memory module is relatively low, it may cause a serious problem that the data transfer cannot be performed in a proper manner due to the degradation of the signal quality when the data transfer rate increases to a certain level. In recent years, a data transfer rate as high as about 1.6 Gbps to 3.2 Gbps is required, and in order to realize such a high speed data transfer, it is necessary to reduce the load capacity of the data line on the motherboard to a sufficiently low level.
A so-called Fully Buffered memory module is known as a memory module in which the load capacity of the data line can be reduced (Japanese Patent Application Laid-open No. 2008-135597). In a write operation of the Fully Buffered memory module, a dedicated chip called an Advanced Memory Buffer (AMB) once receives all write data supplied from the memory controller, and then the AMB supplies the write data to a predetermined memory chip. A read operation is opposite to the write operation, in which all read data output from a memory chip is once supplied to the AMB, and then the read data is supplied from the AMB to the memory controller. As a result, because the memory controller does not experience the load capacity of each memory chip, the load capacity of the data line is considerably reduced.
However, because the AMB employed in the Fully Buffered memory module is a sophisticated chip, which is relatively expensive, it causes a problem that the cost of the memory module considerably increases. Further, because an interface between the memory controller and the AMB is different from a typical interface between the memory controller and the memory chip in the Fully Buffered memory module, it causes another problem that a conventional memory controller cannot be used as it is.
Because of such a background, a memory module called a Load Reduced memory module has been recently proposed. The Load Reduced memory module is a memory module in which a register buffer is used instead of the AMB. Because the register buffer is a chip that only buffers signals such as data and command/address, it can be provided at low cost. In addition, because an interface between the memory controller and the register buffer has no difference from the typical interface between the memory controller and the memory chip in the Load Reduced memory module, the conventional memory controller can be used as it is.
However, from a result of extensive researches on the Load Reduced memory module by the present inventors, it has been found that, when the data transfer rate is considerably high, simply using a single register buffer is not sufficient to maintain the signal quality on the module substrate. To deal with this problem, the present inventors performed further researches on a Load Reduced memory module in which a considerably high data transfer rate can be realized. The present invention has been achieved as a result of such researches.
In one embodiment, there is provided a memory module comprising: a module substrate including a plurality of data connectors; a plurality of memory chips mounted on the module substrate, each of the memory chips including at least one data terminal; and a plurality of data register buffers mounted on the module substrate, each of the data register buffers being assigned to at least two memory chips, wherein each of the data register buffers includes M first input/output terminals each being connected to an associated one of the data connectors via a first data line formed on the module substrate, where M is a positive integer equal to or larger than 1, and N second input/output terminals each being connected to the data terminal of corresponding memory chips via a second data line formed on the module substrate, where N is a positive integer equal to or larger than 2M, so that number of the second data lines is N/M times number of the first data lines.
According to the present invention, because a plurality of data register buffers are mounted on a module substrate and numbers of data lines on a controller side and a memory chip side viewed from the data register buffers are asymmetrically provided, the load capacity of the data line on the module substrate is considerably reduced. This makes it possible to enhance the signal quality on the module substrate. As a result, it is possible to realize a considerably high data transfer rate.
The above features and advantages of the present invention will be more apparent from the following description of certain preferred embodiments taken in conjunction with the accompanying drawings, in which:
Preferred embodiments of the present invention will be explained below in detail with reference to the accompanying drawings.
As shown in
In the present embodiment, the memory module 100 includes thirty-six memory chips 200. When it is necessary to specify each of the memory chips, the memory chips are respectively represented by memory chips 200-0 to 200-35. Furthermore, in the present embodiment, the memory module 100 includes nine data register buffers 300. When it is necessary to specify each of the data register buffers, the data register buffers are respectively represented by data register buffers 300-0 to 300-8. On the other hand, the command/address/control register buffer 400 is provided as a single unit. However, it is not essential to set the number of units of the command/address/control register buffer 400 to one, but two or more units of the command/address/control register buffer 400 can be mounted without any limitation.
The module substrate 110 is a printed circuit board that includes a multilayer wiring. The planar shape of the module substrate 110 is substantially rectangle, as shown in
The data connectors 120 are connectors for exchanging write data to be written in the memory chip 200 and read data read from the memory chip 200 between the memory module 100 and the memory controller. Although it is not particularly limited, the number of pins of the data connectors 120 is seventy two in the present embodiment. As shown in
The command/address/control connectors 130 are connectors for supplying a command signal, an address signal, a control signal, and a clock signal to be supplied to the command/address/control register buffer 400. As shown in
The memory chips 200 are, for example, DRAMs. The memory chips 200-0, 200-2, . . . with even branch numbers are mounted on one surface of the module substrate 110 (a first surface), and the memory chips 200-1, 200-3, . . . with odd branch numbers are mounted on the other surface of the module substrate 110 (a second surface). Two corresponding memory chips, for example, the memory chips 200-0 and 200-1 are mounted at positions facing each other across the module substrate 110, respectively.
The memory module 100 according to the present embodiment has a so-called 4-Rank configuration. The number of Ranks indicates the number of memory spaces that can be selected in an exclusive manner. Although the same address is assigned to each of the Ranks, one of the Ranks is selected by exclusively activating a chip select (CS) signal or a clock enable (CKE) signal.
In the present embodiment, four memory chips 200 constitute a single group (a single set), and the four memory chips 200 constituting the single group belong to different Ranks from each other. For example, the memory chips 200-0 to 200-3 constitute a single group, and the memory chips 200-0 to 200-3 belong to different Ranks from each other.
As shown in
An operation of the memory chip 200 is controlled based on the command signal, the address signal, the control signal, and the clock signal supplied from the command/address/control register buffer 400. Details on the memory chip 200 will be described later.
A single data register buffer 300 is allocated for every four memory chips 200, as described above, so that nine data register buffers 300 are arranged along the X direction, which is the long side. The data register buffer 300 is a chip for buffering write data that is transferred via a data line L0 and outputting the write data to either one of the data lines L1 and L2, and at the same time, buffering read data that is transferred via either one of the data lines L1 and L2 and outputting the read data to the data line L0. The data line L0 is also formed inside the module substrate 110.
With the above configuration, the single data register buffer 300, the data connectors 120 and the four memory chips 200 corresponding to the data register buffer 300 constitute a group G. The memory chips 200, the data register buffer 300, and the data connectors 120 included in the same group are arranged along the Y direction, which is the short side, and a plurality of groups G formed in the above manner are arranged along the X direction, which is the long side. Therefore, a relative positional relationship between each of the data register buffers 300 and corresponding four memory chips 200 becomes constant in all the groups G.
With this arrangement, a line length of the data line L0 can be shortened, and at the same time, the line length of the data line L0 can be made substantially equal among the groups. Similarly, line lengths of the data lines L1 and L2 can be shortened, and at the same time, the line lengths of the data lines L1 and L2 can be made substantially equal among the groups.
An operation of the data register buffer 300 is controlled based on the control signal supplied from the command/address/control register buffer 400. Details on the data register buffer 300 will be described later.
Only a single command/address/control register buffer 400 is mounted on the module substrate 110. As shown in
The command/address/control register buffer 400 receives the command signal, the address signal, the control signal, and the clock signal (in some cases, collectively referred to as a command/address/control signal and the like) that are supplied from the command/address/control connectors 130 through an input terminal 401, buffers the signals, and supplies the signals to the memory chips 200. At the same time, the command/address/control register buffer 400 generates a control signal. The command/address/control signal to be supplied to the memory chips 200 are output through an output terminal 402, and the control signal to be supplied to the data register buffers 300 are output through an output terminal 403.
The output terminal 402 is provided at each of the left side and the right side of the command/address/control register buffer 400. For example, the output terminal 402 at the left side is commonly connected to the memory chips 200-0 to 200-19 except for a control signal that is used to select the Rank. That is, the command signal, the address signal, and the clock signal are commonly supplied to the memory chips 200-0 to 200-19. Similarly, the output terminal 403 is provided at each of the left side and the right side of the command/address/control register buffer 400. For example, the output terminal 403 at the left side is commonly connected to the data register buffers 300-0 to 300-4, so that the generated control signal is commonly supplied to the data register buffers 300-0 to 300-4.
In addition, on the module substrate 110, a terminating resistor R1 is provided at both edges in the X direction to prevent a reflection of the command/address signal and the control signal output from the command/address/control register buffer 400. Furthermore, in order to prevent a reflection wave of the command/address/control signal that is input to the command/address/control register buffer 400, a stub resistor R2 is inserted on a command/address/control line L3 that connects the command/address/control connectors 130 and the command/address/control register buffer 400. Details on the command/address/control register buffer 400 will be described later.
The information processing system 10 shown in
The memory module 100 shown in
A storage device 16, an I/O device 17, and a BIOS (Basic Input/Output System) 18 are connected to the ICH 13. The storage device 16 includes a magnetic drive such as a hard disk drive, an optical drive such as a CD-ROM drive, and the like. The I/O device 17 includes an input device such as a keyboard and a mouse, an output device such as a speaker, and a network device such as a modem and a LAN. The BIOS 18 is a kind of firmware that stores therein various pieces of basic information about the information processing system 10, which is formed by a nonvolatile memory such as a flash memory.
As shown in
On a signal path between the memory controller 12 and the memory chips 200, there exist a line 23 formed on the motherboard 21 and the data line L0 and the command/address/control line L3 formed on the module substrate 110. However, as described above referring to
Although only a single memory slot 22 is provided on the motherboard 21 in the memory system 20 shown in
A configuration of the memory chip 200 is explained next.
The memory chip 200 is a DRAM, which includes, as shown in
The clock terminal 201 is a terminal to which a clock signal CK is supplied. The clock signal CK is then supplied to an internal clock generating circuit 211. An internal clock ICLK, which is an output of the internal clock generating circuit 211, is supplied to various internal circuits. The clock signal CK is also supplied to a DLL circuit 212. The DLL circuit 212 takes a role of generating an internal clock LCLK and supplying the internal clock LCLK to a data input/output circuit 213 and a data strobe signal input/output circuit 214. The internal clock LCLK is a signal that is phase-controlled with respect to the clock signal CK, of which a phase is slightly advanced with respect to the clock signal CK such that phases of read data DQ and a data strobe signal DQS match with a phase of the clock signal CK.
It is selected based on a set content in a mode register whether to use the DLL circuit 212. That is, when “DLL on mode” is set in a mode register 215, the DLL circuit 212 is enabled, so that the internal clock LCLK is phase-controlled with respect to the clock signal CK. On the other hand, when “DLL off mode” is set in the mode register 215, the DLL circuit 212 is disabled (the clock signal CK is shortcut), so that the internal clock LCLK is not phase-controlled with respect to the clock signal CK.
The command terminal 202 is a terminal to which a command signal CMD that includes a row address strobe (RAS) signal, a column address strobe (CAS) signal, a write enable (WE) signal, and the like is supplied. The control terminal 206 is a terminal to which a control signal CTRL for each Rank, such as a chip select (CS) signal, a clock enable (CKE) signal, and an on die termination (ODT) signal, is supplied. By the chip select (CS) signal, a DRAM for which a command is to be issued is switched, and an activation of a clock system and a control of an on die termination in the DRAM are performed. The command signal CMD is supplied to a command decoder 216. The command decoder 216 is a circuit that generates various internal commands ICMD by storing, decoding, and counting the command signal in synchronization with the internal clock ICLK. The generated internal commands are supplied to various control circuits (not shown) including the mode register 215. The control signal CTRL is supplied to a control circuit 218. The control circuit 218 is a circuit that generates an internal control signal such as the ODT signal based on the control signal CTRL.
The address terminal 203 is a terminal to which an address signal ADD is supplied. The address signal is then supplied to an address latch circuit 217. The address latch circuit 217 is a circuit that latches the address signal ADD in synchronization with the internal clock ICLK. Among the address signals ADD that are latched in the address latch circuit 217, a row address is supplied to a row decoder 221 and a column address is supplied to a column decoder 222. In addition, upon entering a mode register set, the address signal ADD is supplied to the mode register 215, by which a content of the mode register 215 is updated.
The row decoder 221 is a circuit that selects one of word lines WL included in a memory cell array 230. In the memory cell array 230, a plurality of word lines WL and a plurality of bit lines BL intersect with each other, and a memory cell MC is arranged at each intersection point (only a single word line WL, a single bit line BL, and a single memory cell MC are shown in
The selected sense amplifier SA is connected to the data input/output circuit 213. The internal clock LCLK and an internal data strobe signal PDQS are supplied to the data input/output circuit 213. In a read operation, the data input/output circuit 213 outputs read data in synchronization with the internal clock LCLK, and in a write operation, the data input/output circuit 213 loads write data in synchronization with the internal data strobe signal PDQS. With this arrangement, in the read operation, the read data read out from the memory cell array 230 is output from the data input/output terminal 204, and in the write operation, the write data received from the data input/output terminal 204 is supplied to the memory cell array 230.
The data strobe terminal 205 is a terminal for performing input and output of the data strobe signal DQS, which is connected to the data strobe signal input/output circuit 214. The data strobe signal input/output circuit 214 generates the internal data strobe signal PDQS described above, and supplies it to the data input/output circuit 213.
The ODT signal, which is an output of the control circuit 218, is also supplied to the data input/output circuit 213 and the data strobe signal input/output circuit 214. When the ODT signal is activated, both the data input/output circuit 213 and the data strobe signal input/output circuit 214 function as terminating resistors.
The overall configuration of the memory chip 200 is as described above. A configuration of the data register buffer 300 is explained next.
As shown in
The FIFO circuits 301 and 302 shown in
The input/output terminals 340 and 350 are connected to the data connectors 120 via the data line L0. On the other hand, the input/output terminals 341 and 351 are connected to the memory chip 200 via the data line L1, and the input/output terminals 342 and 352 are connected to the memory chip 200 via the data line L2. In this manner, for the data register buffer 300, the number of the input/output terminals (M) to be connected to the memory controller 12 and the number of the input/output terminals (N) to be connected to the memory chip 200 are different from each other, which is, in the present embodiment, N=2M. In other words, the number of the data lines L1 and L2 is N/M times the number of the data line L0 (two times in the present embodiment).
An output operation timing of the FIFO (Write) circuit 301 is defined by the internal clock LCLKW that is generated by the DLL circuit 310. An output operation timing of the FIFO (Read) circuit 302 is defined by the internal clock LCLKR that is generated by the DLL circuit 310. The DLL circuit 310 is a circuit that generates the internal clocks LCLKW and LCLKR based on the clock signal CK that is supplied from the command/address/control register buffer 400, having the same circuit configuration and function as that of the DLL circuit 212 provided in the memory chip 200. It is selected based on a set content in a data register control circuit 320 whether to use the DLL circuit 310. The DLL circuit 310 can be replaced with a PLL circuit.
The data register control circuit 320 is a circuit that controls the operation of the data register buffer 300 based on a control signal DRC that is supplied from the command/address/control register buffer 400. Specifically, the data register control circuit 320 controls operations of an input buffer INB and an output buffer OUTB by generating a buffer control signal BC, and at the same time, controls operations of selectors 331 to 334 by generating a select signal SEL. Contents of controlling the output buffer OUTB include, for example, an adjustment of output impedance and an on/off control of an ODT operation. It is selected based on a set content in a mode register 321 that is included in the data register control circuit 320 whether to use the ODT function.
In addition, the data register control circuit 320 generates a feedback signal DRF and supplies it to the command/address/control register buffer 400. The feedback signal DRF is a signal indicating a current status of the data register buffer 300.
Furthermore, the data register control circuit 320 includes a write leveling circuit 322 and a read leveling circuit 323. The write leveling circuit 322 is a circuit for performing a write leveling operation, and the read leveling circuit 323 is a circuit for performing a read leveling operation. Details on the write leveling operation and the read leveling operation will be described later.
The selector 333 is a circuit that supplies data DQ that is an output of the FIFO (Write) circuit 301 to either one of the input/output terminals 341 and 342. The selector 334 is a circuit that selects data DQ input from either one of the input/output terminals 341 and 342 and supplies the selected data DQ to the FIFO (Read) circuit 302. The selectors 331 and 332 perform the similar functions as those of the selectors 333 and 334, respectively. Specifically, the selector 332 selects a data strobe signal DQS input from either one of the input/output terminals 351 and 352. A phase of the selected data strobe signal DQS is delayed by about 90 degrees by a delay circuit 372, and then the data strobe signal DQS is supplied to the FIFO (Read) circuit 302 as an input trigger signal. The selector 331 supplies the data strobe signal DQS that is supplied from the strobe generating circuit 374 to either one of the input/output terminals 351 and 352. A phase of the data strobe signal DQS generated by the strobe generating circuit 374 is delayed by about 90 degrees with respect to the internal clock LCLKW by a delay circuit 370. Each of the selections by the selectors 331 to 334 is specified by the select signal SEL that is an output of the data register control circuit 320.
In this manner, the data register buffer 300 buffers the write data that is transferred via the data line L0 and outputs the write data to either one of the data lines L1 and L2, and buffers the read data that is transferred via either one of the data lines L1 and L2 and outputs the read data to the data line L0. Because the data register buffer 300 only performs the buffering of the data, transfer rates of the write data and the read data that are transferred via the data line L0 and transfer rates of the write data and the read data that are transferred via the data lines L1 and L2 are equal to each other.
Therefore, the data register buffer 300 can be implemented with a chip that is provided at relatively low cost instead of an expensive chip such as an AMB used in a Fully Buffered memory module.
The overall configuration of the data register buffer 300 is as described above. A configuration of the command/address/control register buffer 400 is explained next.
As shown in
The command/address/control signal that is supplied from the memory controller 12 is input from the input terminal 401. Among input command/address/control signals, the command signal CMD, the address signal ADD, and the control signal CTRL are supplied to a register circuit 410, and the clock signal CK is supplied to a PLL circuit 420. The register circuit 410 is a circuit that buffers the command signal CMD, the address signal ADD, and the control signal CTRL, and the buffered command signal CMD, address signal ADD, and control signal CTRL are supplied to the memory chip 200 via the output terminal 402.
An operation timing of the register circuit 410 is defined by an internal clock LCLKCA that is generated by the PLL circuit 420. The PLL circuit 420 is a circuit that generates the internal clock LCLKCA based on the clock signal CK supplied from the memory controller 12 having the same circuit configuration and function as that of the DLL circuit 212 provided in the memory chip 200. It is selected based on a set content in a mode register 431 that is included in a control signal generating circuit 430 whether to use the PLL circuit 420. The PLL circuit 420 can be replaced with a DLL circuit.
The control signal generating circuit 430 is a circuit that generates the control signal DRC to be supplied to the data register buffer 300 based on the command/address/control signal supplied via the input terminal 401, of which an operation is performed in synchronization with the internal clock LCLKCA. The control signal DRC for the data register buffer 300 is supplied to the data register buffer 300 via the output terminal 403. The feedback signal DRF is supplied to the control signal generating circuit 430 from the data register buffer 300 via the input terminal 404.
The control signal DRC includes signals such as a signal indicating a direction of transmitting and receiving data, a signal for controlling an ODT timing at the data line L0 side of the data register buffer 300, a signal for controlling an ODT timing at the data lines L1 and L2 side, a signal for controlling on and off of the DLL circuit, a signal for controlling enable and disable of the data register buffer 300, and a signal for performing a mode switching of the data register buffer 300 and a mode register set and the like. A separate line can be allocated to each of these signals, or a single common line can be allocated to a plurality of these signals. Alternatively, these signals can be transmitted to the data register buffer 300 as commands.
The overall configuration of the command/address/control register buffer 400 is as described above.
As shown in
Although the data DQ-Pre and the data DQ-Post have the same content, because the data DQ is buffered by the data register buffer 300, the timing is off between the data DQ-Pre and the data DQ-Post. The same is true for a relationship between the data strobe signal DQS-Pre and the data strobe signal DQS-Post. Therefore, in the present embodiment, it is required to perform a timing adjustment between the memory chips 200 and the data register buffer 300 and a timing adjustment between the data register buffer 300 and the memory controller in a separate manner. Details on the timing adjustments will be described later.
As described above, in the present embodiment, the four memory chips 200 are allocated to a single data register buffer 300. The four memory chips 200 are memory chips that constitute different Ranks from each other, which are exclusively activated by the chip select (CS) signal or the clock enable (CKE) signal included in the control signal CTRL. The address signal ADD and the command signal CMD are commonly supplied to the four memory chips 200.
The address signal ADD, the command signal CMD, the control signal CTRL, and the clock signal CK supplied to the memory chips 200 are supplied from the command/address/control register buffer 400. The control signal DRC supplied to the data register buffer 300 is also supplied from the command/address/control register buffer 400.
As shown in
The clock signal CK to be supplied to the memory chip 200 and the data register buffer 300 is supplied from the command/address/control register buffer 400. In
As shown in
With the above configuration, the load capacity of a single data line L1 or L2 is reduced, the number of branch points decreases, and a line length from a branch point is shortened. As a result, the signal quality of data transferred on the data lines L1 and L2 is enhanced. Specifically, terminals connected to the single data line L1 are only three terminals total including data input/output terminals of the memory chips 200-0 and 200-1 and a data output terminal of the data register buffer 300. Furthermore, because the memory chips 200-0 and 200-1 are arranged facing each other across the module substrate 110, as shown in
As shown in
On the other hand, in the present embodiment, because the two data lines L1 and L2 are employed, as shown in
Meanwhile, when a layout is taken in which data are concentrated in the center of the module substrate, as in the case of the Fully Buffered memory module, it is required to form a plurality of long data lines in the direction of the long side of the module substrate. In such a layout, because the total length of the data lines increases by a considerable amount as compared to the layout of the present embodiment, it is required to take a measure such as significantly increasing the number of insulating layers forming the module substrate in order to double the number of the data lines.. However, according to the present embodiment, because it does not cause such a problem, it is possible to double the number of lines for connecting the memory chips 200 and the data register buffer 300 without increasing the number of insulating layers forming the module substrate 110.
As a result, in a period from a time T12 to a time T14, a data transfer is performed from the memory chip 200 of the Rank0 using the data line L1, in a period from the time T14 to a time T16, a data transfer is performed from the memory chip 200 of the Rank2 using the data line L2, in a period from the time T16 to a time T18, a data transfer is performed from the memory chip 200 of the Rank1 using the data line L1, and in a period from the time T18 to a time T20, a data transfer is performed from the memory chip 200 of the Rank3 using the data line L2. That is, the data lines L1 and L2 are used in an alternate manner.
The read data sequentially transferred in the above manner are supplied to the data register buffer 300, and after being buffered in a FIFO circuit included in the data register buffer 300, output to the data line L0. In the example, shown in
In this manner, in the present embodiment, because the interleaving operation can be performed using the two data lines L1 and L2, it is possible to perform a read operation for a plurality of memory chips without interruption. As a result, the read data output from the data register buffer 300 can also be supplied to the memory controller without interruption, so that the usage efficiency of a bus can be enhanced. Although the data lines L1 and L2 are not simultaneously used in the present embodiment, if the data lines L1 and L2 are put together in a single data line, it is required to spare a time equal to or longer than one cycle between read data output from different memory chips. On the other hand, in the present embodiment, because the two data lines L1 and L2 are alternately used, it is not necessary to put a time between read data output from different memory chips.
Although the read operation is explained as an example in
The operation of the memory module 100 according to the present embodiment is explained below in more detail.
In the read operation, an active command ACT and a read command Read are issued in order from the memory controller 12. In the example shown in
The commands ACT and Read reaching the command/address/control connectors 130 are input to the command/address/control register buffer 400. At this moment, there occurs a predetermined time difference (Flight Time) between a timing at which the commands ACT and Read reaches the command/address/control connectors 130 and a timing at which the commands ACT and Read are input to the command/address/control register buffer 400.
The command/address/control register buffer 400 registers the received commands ACT and Read with an input clock signal in the register circuit 410 shown in
The memory chip 200 receives the commands ACT and Read, and starts an actual read operation. At this moment, there occurs a predetermined time difference (Flight Time) between a timing at which the commands ACT and Read are output from the command/address/control register buffer 400 and a timing at which the commands ACT and Read are input to the memory chip 200.
Because CL=5 in the example shown in
The data register buffer 300 loads the read data DQ that is output from the memory chip 200 in the FIFO (Read) circuit 302 with a data strobe signal DQS that is delayed by a predetermined phase amount (for example, phase difference of about 90 degrees). At this moment, there occurs a predetermined time difference (Flight Time) between a timing at which the read data DQ and the data strobe signal DQS are output from the memory chip 200 and a timing at which the read data DQ and the data strobe signal DQS are input to the data register buffer 300.
Thereafter, the data register buffer 300 performs a re-timing in synchronization with the internal clock LCLKR using the FIFO (Read) circuit 302 to convert CL into CL=6, and outputs the read data DQ and the data strobe signal DQS. With this configuration, it becomes possible for the memory controller to receive the read data DQ in a correct manner.
The read operation of the memory module 100 according to the present embodiment is as described above. A write operation of the memory module 100 is explained next.
In the write operation, the memory controller issues an active command ACT and a write command Write in order, and after a lapse of a write latency (WL) since the write command Write is issued, burst outputs write data. In the example shown in
Because a flow of the command is similar to that in the read operation shown in
The data register buffer 300 loads the received write data DQ in the FIFO (Write) circuit 301 with a data strobe signal DQS that is delayed by a predetermined phase amount (for example, phase difference of about 90 degrees). The data register buffer 300 then performs a re-timing in synchronization with the internal clock LCLKW using the FIFO (Write) circuit 301 to convert WL into WL=5, and outputs the write data DQ and the data strobe signal DQS. As described above, the write data is transferred from the data register buffer 300 to the memory chip 200 using either one of the two data lines L1 and L2. The data line to be used is determined by a designated Rank.
The memory chip 200 receives the write data DQ that is burst output from the data register buffer 300, and writes it in the memory cell array. At this time, there occurs a predetermined time difference (Flight Time) between a timing at which the write data DQ and the data strobe signal DQS are output from the data register buffer 300 and a timing at which the write data DQ and the data strobe signal DQS are input to the memory chip 200. In consideration of this point, the data register buffer 300 outputs the write data DQ earlier by an amount equivalent to the Flight Time. With this configuration, it becomes possible for the memory chip 200 to receive the write data DQ in a correct manner.
An initializing operation of the memory module 100 according to the present embodiment at the time of activation is explained next.
With a power-on of the system (Step S1), each of the memory chip 200, the data register buffer 300, and the command/address/control register buffer 400 internally activates a reset signal to reset the internal circuit (Step S2). By resetting the internal circuit, each of the memory chip 200, the data register buffer 300, and the command/address/control register buffer 400 performs the initializing operation. The initializing operation includes a mode register setting operation by which predetermined mode information is set in the mode registers 215, 321, and 431 that are included in the memory chip 200, the data register buffer 300, and the command/address/control register buffer 400, respectively (Step S3).
Upon completing the mode register setting operation, a leveling operation between the data register buffer 300 and the memory chip 200 is performed (Step S4). The leveling operation is to adjust a write timing or a read timing in consideration of a propagation time of a signal. The adjustment of the write timing is performed by a write leveling operation, and the adjustment of the read timing is performed by a read leveling operation.
When the leveling operation between the data register buffer 300 and the memory chip 200 is completed, a leveling operation between the memory controller and the data register buffer 300 is performed (Step S5).
In the write leveling operation between the data register buffer 300 and the memory chip 200, as shown in
In the example in
The write leveling circuit 322 of the data register buffer 300 changes an output timing of the data strobe signal DQS by displacing the internal clock LCLKW based on the direction of the phase shift. In the example shown in
By repeating the above operation, as shown in
In the read leveling operation between the data register buffer 300 and the memory chip 200, as shown in
In the example shown in
The memory chip 200 receives the read command Read and performs an actual read operation. In the example shown in
The read data DQ output from the memory chip 200 reaches the data register buffer 300, by which the data register buffer 300 can find a time A from an input timing of the read command Read that is input as a part of the control signal DRC until the read data DQ is input. The time is measured for each of the memory chips 200, stored in the data register control circuit 320 in the data register buffer 300, and used in an adjustment of an activation timing of the input buffer circuit INB and the like. In
In the write leveling operation between the memory controller 12 and the data register buffer 300, as shown in
In the example shown in
The memory controller 12 changes an output timing of the data strobe signal DQS based on the direction of the phase shift. In the example shown in
By repeating the above operation, as shown in
In the read leveling operation between the memory controller 12 and the data register buffer 300, as shown in
In the example shown in
The data register buffer 300 receives the read command Read, and after a lapse of a predetermined CAS latency, outputs dummy data DQ. The dummy data DQ is not the read data read out from the memory chip 200 but data that is automatically generated by the data register control circuit 320 in the data register buffer 300. In the example shown in
The dummy data DQ output from the data register buffer 300 reaches the memory controller 12, by which the memory controller 12 can find a time B from an issuance timing of the read command Read until the read data DQ is input. The time is measured for each of the data register buffers 300, stored in the internal circuit of the memory controller 12, and used in an adjustment of an activation timing of an input buffer circuit (not shown) and the like. In
The initializing operation of the memory module 100 according to the present embodiment is as described above. A relationship between the DLL circuit and the ODT function of the memory module 100 according to the present invention is explained next.
As described above, the DLL circuit is a circuit that generates an internal clock signal of which a phase is controlled with respect to an external clock signal, which is used for matching the phases of the read data DQ and the data strobe signal DQS with the phase of the clock signal CK. In a recent high speed memory such as a DDR3 DRAM, a use of the DLL circuit is substantially essential. If the DLL circuit is not used, it is difficult to perform a data transfer in a proper manner. On the other hand, the DLL circuit has a problem of relatively large power consumption.
Meanwhile, the ODT function is a function of incorporating a terminating resistor inside a memory chip, which is used for preventing a degradation of signal quality due to a reflection of the signal. In a typical memory module, a large number of memory chips are commonly connected to a single data line. Therefore, in a recent high speed memory, a use of the ODT function is substantially essential. If the ODT function is set to off, a signal waveform is significantly degraded. On the other hand, if the ODT function is set to on, it causes a problem of increasing the power consumption. In addition, because the ODT operation necessitates a synchronization with a data input/output operation, the use of the DLL circuit is basically assumed.
In the example shown in
After a lapse of the tAONDFmin, although the ODT impedance becomes no longer the high impedance state according to a condition such as the power supply voltage and the chip temperature, it still does not reach the desired impedance RTT_ON depending on the condition. Under the worst condition, the desired impedance RTT_ON is obtained after tAONDFmax passes from the time T0. In the present example, the tAONDFmax is about eight clock cycles.
Therefore, in a period from a time T3 at which the ODT impedance becomes an undefined state to a time T9 that is next to a cycle at which the ODT impedance becomes the desired value RTT, the impedance becomes undefined. Accordingly, this period becomes a loss cycle in which an access to another memory chip is not allowed. In this manner, when the ODT operation is performed without using the DLL circuit, a switching between on and off controls of the ODT function is not synchronized, resulting in an increase of the period in which the impedance is undefined during which the read/write operation is inhibited.
In consideration of the loss cycle problem described above, it is desirable not to use the ODT function when the DLL circuit is not used. However, the ODT function is substantially essential in the typical memory module, so that it is difficult to turn the function off.
However, in the memory module 100 according to the present embodiment, because the load capacities of the data lines L1 and L2 connected to the memory chip 200 are considerably small, even when a high speed memory such as a DDR3 DRAM is used, the ODT operation can be set off in an actual operation. Besides, because a distance between the memory chip 200 and the data register buffer 300 is considerably short, even if a synchronization control is not performed using a DLL circuit, it is possible to perform a data transfer in a correct manner. That is, because both the ODT function and the DLL circuit can be set to off, it is possible to reduce the power consumption by a considerable amount. In addition, because the ODT function and the DLL circuit can be eliminated from the memory chip 200, it is also possible to reduce the chip dimension.
A difference in operation timings depending on the use of the ODT function and the DLL circuit is explained next.
As shown in
Accordingly, in a period from the time T5 to the time T9 during which read data DQ is burst output from the memory chip 200 of the Rank0, an impedance of the data input/output terminal 204 of the memory chip 200 of the Rank1 is set to Rtt_Nom by the ODT function. Similarly, in a period from a time T11 to a time T15 during which read data DQ is burst output from the memory chip 200 of the Rank1, an impedance of the data input/output terminal 204 of the memory chip 200 of the Rank0 is set to Rtt_Nom by the ODT function.
In this manner, during the read data DQ is output from the memory chip 200 on one side, the memory chip 200 on the other side performs the ODT operation, which prevents a reflection of a signal. However, as described above, current consumption is generated due to the usage of the ODT function and the DLL circuit.
As shown in
In this manner, in the present embodiment, even when both the ODT function and the DLL circuit of the memory chip 200 are set to off, it is possible to perform the same read operation as in a case that the ODT function and the DLL circuit are set to on. Rather, the output timing of the read data DQ is made earlier because the timing adjustment by the DLL circuit is not performed, which makes it possible to realize an even higher speed access.
As shown in
Accordingly, in a period from the time T5 to the time T9 during which write data DQ is burst input to the memory chip 200 of the Rank0, an impedance of the data input/output terminal 204 of the memory chip 200 of the Rank1 is set to Rtt_Nom by the ODT function. Similarly, in a period from the time T11 to the time T15 during which write data DQ is burst input to the memory chip 200 of the Rank1, an impedance of the data input/output terminal 204 of the memory chip 200 of the Rank0 is set to Rtt_Nom by the ODT function.
In this manner, during the memory chip 200 on one side receives the write data DQ, the memory chip 200 on the other side performs the ODT operation, which prevents a reflection of a signal. However, as described above, current consumption is generated due to the usage of the ODT function and the DLL circuit.
As shown in
In this manner, in the present embodiment, even when both the ODT function and the DLL circuit of the memory chip 200 are set to off, that is, the current consumption due to the ODT function and the DLL circuit is made zero, it is possible to perform the same write operation as in a case that the ODT function and the DLL circuit are set to on. Rather, because an operation for switching the ODT impedance is not necessary, it is also possible to make an input timing of the write data DQ earlier. Actually, the speed of the write-to-write operation is increased by one clock cycle in the operation timing shown in
Some modifications of the present invention are explained nest.
In the example shown in
In the example shown in
The memory module shown in
The sub-module 500 shown in
The external terminals 520 include DQ balls 521 for performing an exchange of data, Control balls 522 for performing a reception of a control signal to be supplied to the data register buffer 300, and CA balls 523 for performing a reception of a command/address/control signal. The DQ balls 521 and the Control balls 522 are arranged on the other side of the sub-module substrate 510 near an area in which the data register buffer 300 is mounted. On the other hand, the CA balls 523 are arranged on the other side of the sub-module substrate 510 near an area in which the memory chips 200 are mounted.
The DQ balls 521 and the Control balls 522 are connected to the data register buffer 300 via internal lines 511 and 514 that are formed on the sub-module substrate 510. The CA balls 523 are connected to the memory chips 200 via internal lines 513 that are formed on the sub-module substrate 510.
Using the sub-module 500 configured in the above manner eliminates a necessity of forming the data lines L1 and L2 for connecting the memory chips 200 and the data register buffer 300 on the module substrate 110. As a result, a freedom in the layout of the module substrate 110 is enhanced.
The sub-module 500 shown in
It is apparent that the present invention is not limited to the above embodiments, but may be modified and changed without departing from the scope and spirit of the invention. For example, while the above embodiment has described a memory chip that includes a DLL circuit therein as the memory chip 200, a memory chip that does not include a DLL circuit therein can be alternatively used. In this case, the DLL circuit included in the data register buffer 300 is used to adjust the input/output timing.
Number | Date | Country | Kind |
---|---|---|---|
2009-136648 | Jun 2009 | JP | national |