Patent Publication Number: US-9406357-B2

Title: Data capture system and method, and memory controllers and devices

Description:
CROSS REFERENCE TO RELATED APPLICATION(S) 
     This application is a continuation of U.S. patent application Ser. No. 13/438,634, filed Apr. 8, 2012, which is a continuation of U.S. patent application Ser. No. 12/565,655, filed Sep. 23, 2009, issued as U.S. Pat. No. 8,164,975 on Apr. 24, 2012. These applications and patent are incorporated herein by reference, in their entirety, for any purpose. 
    
    
     TECHNICAL FIELD 
     Embodiments of this invention relate to digital integrated circuits, and, more particularly, to systems and methods for correctly capturing serial data bursts in an integrated circuit device. 
     BACKGROUND OF THE INVENTION 
     Digital data is often coupled to integrated circuit devices, such as memory devices, in the form of one or more bursts of serial data. For example, memory devices may have 4 or 8 data bus terminals, each of which transmits or receives a specific number of data bits at the same time the other data bus terminals transmit or receive corresponding bits. For example, a first set of 8 write data bits may be applied to the 8 data bus terminals in parallel, followed by a second set of 8 bits, and so forth, until an eighth and final set of 8 write data bits have been applied to the data bus terminals. 
     As each burst of 8 write data bits is applied to the data bus terminals, the data bits are stored in respective latches responsive to a DQS signal, which is normally applied to the memory device along with the write data. Each bit of the write data may be applied to the data bus terminals at the same frequency as, and in synchronism with, a system clock signal. The transitions of the DQS signal are normally offset 90 degrees from the system clock signal so that the transitions of the DQS signal occur midway between the transitions of the system clock, and can be used to capture the write data in the memory device. 
     As the data bandwidth of memory devices has continued to increase, the need to transfer data at a faster rate has resulted in the development of memory devices that apply more than one write data bit to each data bus terminal during each period of the system clock signal. For example, memory devices known as double data rate (“DDR”) devices may capture write data on both the rising and falling edge transitions of the DQS signal. As a result, two write data bits can be captured at each data bus terminal during each period of the system clock signal. 
     Although the use of DDR techniques has been successful in significantly increasing the data bandwidth of memory devices, the need exists to transfer data at rates that are even faster than the rate at which data can be received and transmitted by DDR memory devices. As a result, DDR2 and DDR3 memory devices have been developed that receive and transmit data at even faster speeds. However, as clock speeds and resulting data rates have increased, the “data eye” during which the write data can be properly captured by a DQS signal transmitted to a memory device along with the write data has continued to decrease, thus making it more difficult to properly capture write data. One approach that has been proposed is to frequency divide the DQS signal and then generate multiple phases of the frequency-divided signal, such as 4 phases to generate DQS0-3 signals. 
     In operation of a memory device, write data capture may begin a specific latency period after a write command has been applied to a memory device in synchronism with the system clock signal. For example, the latency may be 6 transitions of the system clock signal. After the latency period has expired, a write signal may become active in synchronism with the system clock signal. Write data capture may then begin on the first rising edge of the DQS0-3 signal following the write signal becoming active. The first rising edge of one of the DQS0-3 signals is not necessarily a rising edge of the DQS0 signal. Instead, any one of the four DQS signals can be the first to transition high after the write signal becomes active. As a result, the first data bit that is captured in the memory device may be other than the DQ0 bit. 
     Despite the data bandwidth increases resulting from the transition from DDR to DDR2 and from DDR2 to DDR3, the need exists for still higher data bandwidths. Yet, significant problems can be encountered in attempting to transfer data at a faster rate, some of which are discussed below. Furthermore, although this discussion of the need to increase data bandwidth has been in the context of memory devices, a similar need exists for other types of digital electronic devices. Thus, there is a need for a technique for transferring data at an even faster rate. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a timing diagram illustrating how serial data bits may be captured by respective phases of a frequency divided strobe signal. 
         FIG. 2  is a timing diagram showing signals that may be present in a data capture system. 
         FIG. 3  is a timing diagram showing other signals that may be present in a data capture system. 
         FIG. 4  is a block diagram of a data capture system according to an embodiment of the present invention. 
         FIG. 5  is a timing diagram showing signals that are present in a data capture system of  FIG. 4 . 
         FIG. 6  is a block diagram of an embodiment of a memory device using an embodiment of a data capture system. 
         FIG. 7  is a block diagram of an embodiment of a memory system using a memory controller containing an embodiment of a data capture system. 
     
    
    
     DETAILED DESCRIPTION 
     One approach to increasing the data bandwidth beyond that achieved by DDR3 is to use data strobe signals having a higher frequency than the system clock frequency. For example, if the DQS signal had twice the frequency of the system clock signal, then 4 write data bits could be applied to each data bus terminal during each period of the system clock signal. Memory devices using this technique may be referred to as DDR4 memory devices. However, increases in the frequency of system clock signals may result in the “data eye” becoming too short to accurately capture the write data bits. Therefore, increasing system clock frequencies may make it difficult or impossible to accurately capture write data. 
     One approach to allowing use of DQS signals that are twice the frequency of the system clock signal may be used in DDR4 memory devices to divide the DQS signals by 2 and then generate 4 phases of the resulting half frequency signal. This approach results in 4 PH0-3 signals having the same frequency as the system clock signal, and it therefore provides the same internal “data eye” as the DQS signals in DDR3 memory devices. However, as shown in  FIG. 1 , each transition of the double frequency DQS signal still coincides with the rising edge of one of the PH0-3 signals so that a data bit is captured during each transition of the DQS signal. 
     Although using 4 PH0-3 signals having half the frequency of the DQS signal may reduce the problem of an excessively short “data eye,” it can create other problems. With reference to  FIG. 2 , capturing 64 bits of write data (i.e., 8 bits at each of 8 data bus terminals) followed by capturing another 64 bits of write data does not result in any problem because the PH0 signal will capture the first bit DQ0 of the second burst of 8-bits immediately after the PH3 signal captures the seventh bit DQ7 of the first burst of 8-bits. Thus the PH0-3 signals can correctly store the DQ0-7 bits of the second burst in a latch after the DQ0-7 bits of the first burst have been stored in the latch. 
     Although  FIGS. 1 and 2  illustrate the lack of any problems when write data are applied to the data bus terminals in serial bursts of 4 bits and multiples of 4 bits, such as 8 data bits, a problem may exist if write data are applied to the data bus terminals in serial bursts of other than 4 bits. For example, as shown in  FIG. 3 , some memory devices may receive write data in bursts of either 8 write data bits applied to each data bus terminal or 10 write data bits applied to each data bus terminal. When 10 write data bits are applied to each data bus terminal, the first 4 bits may be captured during the first system clock period, and the second 4 bits may be captured during the second system clock period. However, 4 write data bits may also be captured during the third system clock period even though the first two of these captured bits are the last two bits of the first burst of write data bits, and the last two of these captured bits are the first two bits of the second burst of write data bits. Therefore, as shown in  FIG. 4 , the first rising edge of the PH0 signal captures the DQ0 bit at the start of the period when the write signal is active and stores the data bit in the DQ0 bit location of the latch. Similarly, the third rising edge of the PH1 signal captures the DQ9 bit and correctly stores it in a DQ9 bit location of the latch just before the DQ0 bit for the next burst of write data are applied to the respective data bus terminals. As a result, the rising edge of the PH2 signal that immediately follows the rising edge of the PH1 signal will capture the DQ0 bit of the next burst of data and improperly store the data in the DQ2 bit location of the latch. This situation may present a problem since the location of the latch (not shown) that should store the DQ2 bit will then be storing the DQ0 bit. Additionally, the bit location of the latch that should store the DQ3 bit will instead store the DQ1 bit, the bit location of the latch that should store the DQ4 bit will instead store the DQ2 bit, and so forth. 
     One example of a system  100  for solving this problem is illustrated in  FIG. 4 . The system  100  includes a sequencer  110  that receives the DQS signal and divides the DQS signal by two and generates signals PH0-3 that are at four phases of the divided signal. However, the sequencer  110  also generates signals PH0-3* that are at four phases of the complement of the PH0-3 signals, respectively. The sequencer  100  applies both the PH0-3 and the PH0-3* signals to a selector  120 . The selector  120  under control of a controller  124  selects either the PH0-3 or the PH0-3* signals, and generates write latch signals W0-3 corresponding to the selected signals. In the event a burst of 10 data bits is applied to each of the eight data bus terminals, the 120 selector initially applies W0-3 signals corresponding to the PH0-3 signals to each of a set of eight 10-bit write latches  130   a - h . After the first 10 bits have been captured from each data bus terminal DQ, the selector  120  applies W0-3 signals corresponding to the PH0-3* signals to the latches  130   a - h  to capture the data in the next 8-bit or 10-bit burst. Thus, the first bit of the first burst is captured as the first bit location and is output as bit DIN&lt;0&gt; in each of the latches  130   a - h , and the first bit of the second burst is also correctly captured as the first bit location and is output as bit DIN&lt;0&gt; in each of the latches  130   a - h . If the selector  120  did not switch from using the PH0-3 signals to using the PH0-3* signals to generate the W0-3 signals, the first bit of the second burst would be incorrectly captured at the third bit location and it would be output as bit DIN&lt;2&gt; in each of the latches  130   a - h.    
     As shown in  FIG. 5 , the first rising edge of the W0 signal corresponding to PH0 signal captures the first bit DO of the first burst of 10 data bits, and the third rising edge of the W1 signal corresponding to the PH1 signal captures the last bit D9 of the first burst of 10 data bits. The selector  120  then selects the PH0-3* signals for use as the W0-3 signals at a time designated by the line SW in  FIG. 5 . The first rising edge of the W0 signal corresponding to PH0* signal therefore captures the first bit DO of the second burst of 10 data bits, and the third rising edge of the W1 signal corresponding to the PH1* signal captures the last bit D9 of the second burst of 10 data bits. Thus, unlike in the example shown in  FIG. 3 , since the first bit DO of the second burst of 10 data bits is captured by the PH0* signal, it is stored in the correct location in the latch for receiving the DO bit. 
     Although the principle embodied in the data capture system  100  is illustrated with each of the latches  130   a - h  configured to capture 10 data bits using 4 data capture signals having respective phases, it can be generalized to any data capture system in which latches are configured to capture M data bits using N data capture signals having respective phases, where M and N are each a positive integer. If M/N is an integer, then it may not be necessary for the controller  124  to generate a control signal that causes the selector  120  to switch from selecting one of the sets of periodic signals PH0-3 or PH0-30* to the other of the sets of periodic signals PH0-3* or PH0-3, respectively. However, if M/N is not an integer, then it may be necessary for the selector  120  to switch from selecting one set of periodic signals to the other so that the first bit of the subsequent burst will be correctly stored in the first location in the respective latch  130 . 
     The data capture system  100  or a data capture system according to some other embodiment may be used in a wide variety of applications. For example, data capture system embodiments may be used in data input buffers, such as data input buffers used in a memory device as shown in  FIG. 6 . The memory device may be a conventional double data rate dynamic random access memory (“DDR DRAM”)  200  including a command decoder  204  for controlling its operation responsive to high-level command signals received on a control bus  206 . The command decoder  204  may generate a sequence of command signals responsive to the high level command signals to carry out the function (e.g., a read or a write) designated by each of the high level command signals. The DDR DRAM may also include a clock generator  208  configured to generate a system clock signal CLK. 
     The DDR DRAM  200  may include an address register  212  that may receive row addresses and column addresses through an address bus  214 . The address bus  214  may be coupled to a memory controller (not shown in  FIG. 6 ). A row address may first be received by the address register  212  and applied to a row address multiplexer  218 . The row address multiplexer  218  may couple the row address to a number of components associated with either of two memory banks  220 ,  222  depending upon the state of a bank address bit forming part of the row address. A respective row address latch  226  may be associated with each of the memory banks  220 ,  222  for storing the row address. A row decoder  228  may decode the row address and apply corresponding signals to one of the banks  220  or  222 . The row address multiplexer  218  may also couple row addresses to the row address latches  226  for the purpose of refreshing the memory cells in the banks  220 ,  222 . The row addresses may be generated for refresh purposes by a refresh counter  230 , which may be controlled by a refresh controller  232 . The refresh controller  232  may, in turn, be controlled by the command decoder  204 . 
     After the row address has been applied to the address register  212  and stored in one of the row address latches  226 , a column address may be applied to the address register  212 . The address register  212  may couple the column address to a column address latch  240 . Depending on the operating mode of the DDR DRAM  200 , the column address may be either coupled through a burst counter  242  to a column address buffer  244 , or to the burst counter  242 , which may apply a sequence of column addresses to the column address buffer  244  starting at the column address output by the address register  212 . In either case, the column address buffer  244  may apply a column address to a column decoder  248 . 
     Data to be read from one of the banks  220 ,  222  may be coupled in parallel form to column circuitry  250 ,  252 , which may include sense amplifiers, I/O gating, DQM &amp;WPB mask logic, block write col/byte mask logic for one of the arrays  220 ,  222 , respectively. The data bits developed by the sense amplifiers may then be coupled in parallel form to a data output buffer  256 . The data output buffer  256  may include a serializer  268  configured to convert a plurality of sets of parallel data bits to corresponding bursts of serial data bits, and to apply each burst of serial data bits to each of several data bit terminals  258 . The serializer  268  may also receive the CLK signal from the clock generator  208  for serializing the read data. Data to be written to one of the arrays  220 ,  222  may be coupled from each of the data bus terminals  258  to the data input buffer  260  in serial form. The data input buffer  260  may capture the serial input data using a data capture system  262 , which may be the data capture system  100  or a data capture system according to another embodiment. The data capture system  262  also receives an externally applied DQS signal. The serial write data applied to each of the data bit terminals  258  is thus converted to a set of corresponding parallel data to be coupled to the banks  220 ,  222  in parallel form. 
     An embodiment of a memory system  300  is shown in  FIG. 7 . The memory system  300  includes a memory device  310 , which may be the memory device  200  shown in  FIG. 6 , a memory device according to some other embodiment or a conventional memory device. The memory device  310  may be coupled through a command bus  320 , address bus  330  and data bus  340  to a memory controller  350 . The memory controller  350  may include a command circuit  354  configured to output memory commands, and an addressing circuit  356  configured to output memory addresses. The memory controller  350  may also include an output buffer  360  configured to output write data to the data bus  340 , and a data input buffer  370  configured to receive read data from the data bus  340 . The data input buffer  370  may include a read data capture system  380  configured to capture a burst of serial read data bits at each of a plurality of terminals of the data bus  340 . The read data capture system  380 , which may also receive an externally applied DQS signal, may be the data capture system  100  or a data capture system according to another embodiment. 
     Although the present invention has been described with reference to the disclosed embodiments, persons skilled in the art will recognize that changes may be made in form and detail without departing from the invention. For example, the term “bit” is used herein to describe a single binary digit. However, in other embodiments digits other than binary digits may be used. Such modifications are well within the skill of those ordinarily skilled in the art. Accordingly, the invention is not limited except as by the appended claims.