Synchronous memory read data capture
First Claim
1. A method for controlling a synchronous memory comprising:
- establishing a read data path delay between the memory and a memory controller by;
the memory controller writing an initialization sequence to predetermined locations of the memory;
the memory controller sending a read command to the memory to read the predetermined locations and receiving returned data signals;
a predetermined time after sending the read command, the memory controller sampling the returned data signals to produce an initialization sample;
using the initialization sample to determine the read delay between the memory and the memory controller.
12 Assignments
0 Petitions
Accused Products
Abstract
A method of snap-shot data training to determine the optimum timing of the DQS enable signal in a single read operation is provided. This is accomplished by first writing a Gray code count sequence into the memory and then reading it back in a single burst. The controller samples the read burst at a fixed interval from the time the command was issued to determine the loop-around delay. A simple truth table lookup determines the optimum DQS enable timing for normal reads. Advantageously, during normal read operations, the first positive edge of the enabled DQS signal is used to sample a counter that is enabled every time a command is issued. If the counter sample changes, indicating timing drift has occurred, the DQS enable signal can be adjusted to compensate for the drift and maintain a position centered in the DQS preamble. This technique can also be applied to a system that uses the iterative approach to determining DQS enable timing on power up. Another embodiment of the invention is a simple, low latency clock domain crossing circuit based on the DQS latched sample of the counter.
60 Citations
28 Claims
-
1. A method for controlling a synchronous memory comprising:
-
establishing a read data path delay between the memory and a memory controller by; the memory controller writing an initialization sequence to predetermined locations of the memory; the memory controller sending a read command to the memory to read the predetermined locations and receiving returned data signals; a predetermined time after sending the read command, the memory controller sampling the returned data signals to produce an initialization sample; using the initialization sample to determine the read delay between the memory and the memory controller. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A memory controller adapted to implement a method for controlling a memory that has a bidirectional read/write bus with source synchronous clocking and a bidirectional data strobe, the method comprising:
-
measuring a read delay between the memory and the memory controller by; the memory controller writing a Gray code initialization sequence to predetermined locations of the memory; the memory controller sending a read command to the memory to read the predetermined locations and receiving returned data signals; a predetermined time after sending the read command, the memory controller sampling the returned data signals to produce an initialization sample; using the initialization sample to determine the read delay between the memory and the memory controller.
-
-
18. A memory controller for controlling a memory that has a bidirectional read/write bus with source synchronous clocking and a bidirectional data strobe, the controller comprising:
-
a read delay determination circuit and a data strobe enable circuit; during initialization, the read delay determination circuit determining a read delay between sending a read command to the memory and receiving data signals in return, the read delay determination circuit comprising a circuit for sampling the data at a predetermined time to produce an initialization sample, and a table lookup function that stores a respective read delay in respect of each permutation of the initialization sample; the data strobe enable circuit being adapted to gate a received DQS as a function of the read delay. - View Dependent Claims (19, 20)
-
-
21. A data strobe enable circuit for use with a memory that has a bidirectional read/write bus with source synchronous clocking and a bi-directional data strobe, the data strobe enable circuit comprising:
-
an input for receiving a data strobe signal having rising and falling edges; an output for producing a gated data strobe signal; a multiplexer that gates the data strobe signal as a function of a select input; a select input generator circuit connected to receive a data strobe enable and data strobe disable;
that sets the select input to select the data strobe signal upon activation of the data strobe enable, and that sets the select input to deselect the data strobe signal upon activation of the data strobe disable and following a next edge of the data strobe signal. - View Dependent Claims (22, 23, 24)
-
-
25. A drift detector circuit comprising:
-
a first circuit for latching a first value of a first clock phase of a master clock synchronously with an input clock signal; a second circuit for latching a second value of a second clock phase of the master clock synchronously with the input clock signal; wherein a change in either the first value or the second value indicates that the input clock signal has drifted relative to the master clock source by at least a predetermined amount. - View Dependent Claims (26, 27, 28)
-
Specification