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.