1. Field of the Invention
This invention relates to semiconductor circuits. More particularly, it relates to circuitry used to access data in a memory device.
2. Background of Related Art
The basic principle of Double Data Rate (DDR) Synchronous Dynamic Random Access Memory (SDRAM), or DDR-SDRAM, is very simple. DDR-SDRAM is RAM that transfers data on both 0-1 and 1-0 clock transitions, theoretically yielding twice the data transfer rate of normal SDRAM. Thus, while a DDR-SDRAM memory module is clocked at the same speed as normal SDRAM, it is able to transport double the amount of data by using the rising as well as falling edge of the clock signal for data transfers.
During any data access, a controller provides the DDR SDRAM with a clock, inverted clock, address, and control signals. During a write cycle, the controller also provides data as well as a data strobe signal (DQS). During a read cycle, the DDR-SDRAM provides data and the DQS signal. Accordingly, the DQS signal is bi-directional because it is used to clock data into the DDR-SDRAM during a write cycle, and the other direction into the controller during a read cycle. Bank pre-charging, refreshes, and so forth are handled in a DDR-SDRAM controller in much the same way they are handled in a standard SDRAM.
The DDR-SDRAM specification requires that the clock and inverted clock received from the controller cross within a very tight window. The crossing point of these clocks is considered the clock edge in the DDR SDRAM specification.
To maximize setup and hold time windows, the controller must drive DQS 90° out of phase with the data. Data is clocked by the DDR SDRAM on both edges of DQS. During a read, the DDR SDRAM provides both data and DQS. However, the DDR SDRAM provides data and DQS coincident with each other. This means the controller must either provide the 90° phase shift internally or find another way to clock in data. In addition, DQS is a strobed signal. It is driven while there is a transaction in progress, but tri-stated otherwise.
To achieve the ideal 90° phase shift, one of the most difficult issues addressed in the design of a Double Data Rate (DDR) SDRAM controller is delaying the SDRAM data strobe (DQS) to the center of the read window.
In conventional Double Data Rate (DDR) SDRAM controllers, it is common design practice to use Delay Locked Loops (DLLs) to implement a fixed, predetermined delay of the SDRAM read data strobe (DQS) to the approximate center of the received data eye. However, this use of DLLs providing a fixed amount of DQS delay is seen by the inventors of the present invention to have particular disadvantages. In particular, this delay is usually based on a calculated optimal value, which may not, in practice, be the optimal value.
At the Double Data Rate (DDR) SDRAM side, all data and data strobes (DQS) are clocked out by the same clock signal provided by the DDR SDRAM controller, and all will transit at nominally the same time. To capture the data from the DDR, the controller must delay the received DQS strobes so that the strobe transition occurs as close as possible to the center of the received data window, or “eye”.
To design a robust data capture circuit, several factors are taken into account including, e.g., DDR timing parameters, as well as board level and package skews. Typically, a DDR SDRAM controller is implemented in an FPGA or ASIC, in which case internal routing mismatches and PVT (Process, Voltage, and Temperature) for the controller device must also be considered. This is all well documented in literature available from DDR manufacturers such as the “DesignLine”, Vol. 8, Issue 3, 3Q99, available from MICRON™. The final result of this analysis results in a fixed DQS delay value (DLYDQS) which a DLL is used to implement.
In particular, the conventional DDR read data capture circuit shown in
One of the disadvantages of such a conventional SDRAM controller is that it relies on dividing a clock period by a value, n, to obtain a desired delay. Since n must be an integer value, and the clock is usually the clock provided to the DDR SDRAMs, it is realized by the inventors of the present application that the resulting delay value will probably not be exactly equal to the actual, optimal delay value.
There is a need for better techniques and designs for centering DQS data strobes based on actual, optimal values.
In accordance with the principles of the present invention, a method of providing an optimal memory access strobe comprises determining an initial delay for a data access signal to a memory device by employing a delay locked loop (DLL) circuit to delay the data access signal to a center of a data window. A memory test of the memory device is performed, and the initial delay is adjusted by a fine tuning offset determined by the memory test.
In accordance with another aspect of the present invention, a DQS strobe controller for a double data rate (DDR) memory device comprises a delay line formed by a plurality of programmable delay elements to provide an initial delay. An adder/subtracter element implements a fine tuning adjustment of the initial delay. The fine tuning adjustment is determined empirically by operation of the DQS strobe controller in operation with the DDR memory device.
Features and advantages of the present invention will become apparent to those skilled in the art from the following description with reference to the drawings, in which:
Conventional DQS data strobes are centered based on fixed, predetermined designs. The present invention improves upon conventional DQS data strobes by providing a technique for tweaking the DQS data strobe delay resulting in a more exact, actual center of a received data eye. In an additional embodiment, the present invention also adds compensation for actual on-chip delay changes due to voltage and/or temperature fluctuations.
Thus, the present invention provides a DDR SDRAM controller that determines and locks-in on the actual center of the DDR SDRAM received (read) data window, or “eye”. While disclosed with respect to a DDR-DRAM in particular, the invention relates as well to DDR-RAM in general, or even to any memory controller that captures data from a source that also provides the capture clock or strobe.
Accordingly, the present invention provides better centering of DQS data strobes by integrating a fine adjustment, or “tweaking”, of a DQS delay via a programmable offset value to be added to or subtracted from a nominal value determined by a DLL. Moreover, in a further embodiment, a PVT circuit may be also (or alternatively) be implemented to maintain the data strobe in an actual centered position by automatically compensating for fluctuations in voltage and temperature.
To accomplish this, the present invention provides a double data rate (DDR) synchronous dynamic RAM (SDRAM) memory controller employing a delay locked loop (DLL) circuit to delay an SDRAM data strobe (DQS) signal to the center, or ‘eye’ of the read data window. However, in distinction from conventional techniques, the initial delay determined by the DLL is importantly also fine tuned with an offset empirically determined, e.g., by a memory test. Moreover, in an additional embodiment, the delay may be further adjusted during operation to compensate for environmental conditions by a PVT (process, value, temperature) circuit.
In particular, as shown in
The disclosed control register 102 provides an offset value and a bit that controls whether the offset value is added to or subtracted from the delay value 106 determined by the DLL 100. With these modifications, an additional controller (hardware or software, not shown) may be added to run a memory test while adding and subtracting various offsets 11 to determine the limits of failure free operation. The final offset 11 to be used in normal operation is preferably the one in the middle of the limits in which the memory test passes.
This embodiment of the invention utilizes a control register 102 that can be written, to determine the overall DQS delay limits for failure free memory operation. Preferably, the memory test is implemented in software. However, a memory test may be implemented in hardware within the principles of the present invention.
One important advantage provided by this embodiment of the present invention is that the data strobe (DQS) delay can be tweaked by the addition or subtraction of a fine adjustment offset 11, to allow it to be positioned closer to the actual, optimal center of the data eye. This results in more reliable memory operations, as well as a higher frequency of operation.
In particular,
Thus, the addition of a PVT circuit 200 as shown in
U.S. Pat. No. 6,581,017 to Zumkehr shows a conventional technique for providing a DOS strobe signal to a DDR-DRAM. In particular, Zumkehr teaches master and slave strobe delay devices each incorporating a separate PVT circuit. In the Zumkehr patent, the slave delays MUST initially be calibrated by software (or suitable hardware) after power-up. Thereafter, the master “PVT” circuit is used to incrementally adjust the slave circuits' delays.
The present invention differs significantly in that a master delay circuit is not a PVT circuit, but rather is a delay locked loop (DLL). The inventive DLL 100a performs most of the calibration that conventional methods such as is taught by Zumkehr requires significant amounts of software and/or hardware to accomplish. The present invention also utilizes software (or a hardware equivalent) to write to a control register 102 to “tweak” or fine tune the delay determined by the DLL 100a and provide additional accuracy and/or reliability.
Furthermore, to provide continued reliability, the inventive solution utilizes a separate PVT circuit 200 to fine tune the delays determined by the DLL 100a, as adjusted on the whole by a master PVT circuit 200.
Also, the delay circuits 302a–302d in accordance with the principles of the present invention are preferably only simple programmable delay circuits. They rely completely on the DLL 100a, and tweaking circuitry 200, 102, 204 to determine the amount of their actual delay. In contrast, conventional circuits such as that taught by Zumkehr require slave delay circuits to each incorporate an oscillator and frequency counter circuitry.
U.S. Pat. Appl. Publ. No. 2002/0013881 to Delp et al. describes a method to provide programmable clock delays between memory control signals such as RAS, CAS, Enable, etc. Delp fails to address anything about how to delay a memory data strobe (DQS) to line up with memory data.
U.S. Pat. Appl. Publ. No. 2003/005250 to Johnson et al. discloses a DLL that provides N phases of an input clock signal (RCLK), and programmable phase command registers to select one of N phases. Johnson uses this circuitry to synchronize read data outputs with an input clock. However, Johnson fails to provide a slave delay line 100a with programmable “tweaking” or fine tuning to delay a separate clock signal (like DQS) based on actual optimal parameters, nor does Johnson provide a PVT circuit 200, as implemented in various embodiments in accordance with the principles of the present invention.
U.S. Pat. Appl. Publ. No. 2003/0001650 to Cao et al. describes a conventional PVT circuit and how it may be used to preset a shift register used in the implementation of a DLL.
U.S. Pat. No. 6,484,232 to Olarig et al. describes a method to adjust memory controller calibration frequencies based on temperature and other environmental conditions. Olarig fails to address anything to do with fine tuning adjustment of delay line values based on a programmable offset and/or on a PVT circuit, as does the present invention.
While the invention has been described with reference to the exemplary embodiments thereof, those skilled in the art will be able to make various modifications to the described embodiments of the invention without departing from the true spirit and scope of the invention.
Number | Name | Date | Kind |
---|---|---|---|
6286077 | Choi et al. | Sep 2001 | B1 |
6327217 | Chung | Dec 2001 | B1 |
6330636 | Bondurant et al. | Dec 2001 | B1 |
6373301 | Chen et al. | Apr 2002 | B1 |
6426900 | Maruyama et al. | Jul 2002 | B1 |
6438067 | Kuge et al. | Aug 2002 | B2 |
6438670 | McClannahan | Aug 2002 | B1 |
6442102 | Borkenhagen et al. | Aug 2002 | B1 |
6453381 | Yuan et al. | Sep 2002 | B1 |
6484232 | Olarig et al. | Nov 2002 | B2 |
6487648 | Hassoun | Nov 2002 | B1 |
6529424 | Koutsoures | Mar 2003 | B2 |
6553452 | Garlepp et al. | Apr 2003 | B2 |
6553472 | Yang et al. | Apr 2003 | B2 |
6556489 | Gomm et al. | Apr 2003 | B2 |
6563747 | Faue | May 2003 | B2 |
6570815 | Kashiwazaki | May 2003 | B2 |
6581017 | Zumkehr | Jun 2003 | B2 |
6584578 | Faue | Jun 2003 | B1 |
20010054135 | Matsuda | Dec 2001 | A1 |
20020013881 | Delp et al. | Jan 2002 | A1 |
20020172079 | Hargis et al. | Nov 2002 | A1 |
20020178322 | Gans et al. | Nov 2002 | A1 |
20030001650 | Cao et al. | Jan 2003 | A1 |
20030005250 | Johnson et al. | Jan 2003 | A1 |
20030011414 | Bell | Jan 2003 | A1 |
20030070052 | Lai | Apr 2003 | A1 |
20030076712 | Jang | Apr 2003 | A1 |
Number | Date | Country | |
---|---|---|---|
20050105349 A1 | May 2005 | US |