IP Library Granted Patent US 46,819
Granted Patent E1
US 46,819 · App. 14/141,686 · Granted May 1, 2018

Synchronous memory read data capture

Inventors: Peter Gillingham (Kanata, CA); Robert McKenzie (Ottawa, CA)
Assignee: Conversant Intellectual Property Management Inc.
G06F13/4243G11C7/1066G11C29/50012G11C2207/2254
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 46,819
App. No.
14/141,686
Granted
May 1, 2018
Kind
E1
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.

Claims (35)

1. A method for enabling a data strobe input in a synchronous memory controller comprising:

determining a data strobe enable value and a data strobe edge value;

starting a counter upon issuance of a read command;

enabling the data strobe input when an output of the counter reaches the data strobe enable value;

latching the output of the counter with an edge of the data strobe input to provide a data strobe edge sample; and

if the data strobe edge sample differs from the data strobe edge value:

adding the difference between the data strobe edge sample and the data strobe edge value to the data strobe enable value, and

replacing the data strobe edge value with the data strobe edge sample.

2. The method as claimed in claim 1 wherein latching the output of the counter comprises latching the output of the counter on the first edge of the data strobe input following enabling the data strobe input.

3. The method as claimed in claim 1 wherein latching the output of the counter comprises latching the output of the counter on a rising edge of the data strobe input.

4. The method as claimed in claim 1 further comprising clocking the counter at four times a frequency of the data strobe input.

5. A method for enabling a data strobe input in a synchronous memory controller comprising:

determining a data strobe enable value, a first data strobe edge value, and a second data strobe edge value;

enabling the data strobe input following issuance of a read command at a time determined by the data strobe enable value;

latching a clock with an edge of the data strobe input for providing a first data strobe edge sample;

latching a phase shifted version of the clock with the edge of the data strobe input for providing a second data strobe edge sample; and

if the first data strobe edge sample differs from the first data strobe edge value or the second data strobe edge sample differs from the second data strobe edge value:

adjusting the data strobe enable value for compensating for drift, and

replacing the first data strobe edge value with the first data strobe edge sample and the second data strobe edge value with the second data strobe edge sample.

6. The method as claimed in claim 5 wherein the clock and the phase shifted version of the clock are latched on a first edge of the data strobe input following enabling the data strobe input.

7. The method as claimed in claim 5 wherein the clock and the phase shifted version of the clock are latched on a rising edge of the data strobe input.

8. The method as claimed in claim 5 wherein a frequency of the phase shifted version of the clock is substantially equal to a frequency of the clock.

9. The method as claimed in claim 8 wherein the phase shifted version of the clock is shifted 90 degrees with respect to the clock.

10. The method as claimed in claim 8 wherein the frequency of the phase shifted version of the clock and the frequency of the clock are substantially equal to a frequency of the data strobe input.

11. A method for enabling a data strobe input in a synchronous memory controller comprising:

determining a data strobe enable value and a data strobe edge value;

starting a counter upon issuance of a read command;

enabling the data strobe input when an output of the counter reaches the data strobe enable value;

latching the output of the counter with an edge of the data strobe input to provide a data strobe edge sample; and

adjusting the data strobe enable value based on the data strobe edge sample.

12. The method as claimed in claim 11, further comprising adjusting the data strobe edge value based on the data strobe edge sample.

13. The method as claimed in claim 12, wherein adjusting the data strobe edge value comprises replacing the data strobe edge value with the data strobe edge sample.

14. The method as claimed in claim 11 wherein latching the output of the counter comprises latching the output of the counter on the first edge of the data strobe input following enabling the data strobe input.

15. The method as claimed in claim 11 wherein latching the output of the counter comprises latching the output of the counter on a rising edge of the data strobe input.

16. The method as claimed in claim 11 further comprising clocking the counter at four times a frequency of the data strobe input.

Assignments (8)
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY'S NAME PREVIOUSLY RECORDED AT REEL: 057857 FRAME: 0193. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded Aug 28, 2023
From: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
To: MOSAID TECHNOLOGIES INCORPORATED
Reel/Frame 064741/0939 →
CHANGE OF NAME Recorded Oct 19, 2021
From: CONVERSANT INTELLECTUAL PROPERTY INC.
To: MOSAID TECHNOLOGIES INCORPORATED
Reel/Frame 057857/0193 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2020
From: CPPIB CREDIT INVESTMENTS INC.
To: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
Reel/Frame 054310/0421 →
RELEASE OF U.S. PATENT AGREEMENT (FOR NON-U.S. GRANTORS) Recorded Oct 12, 2018
From: ROYAL BANK OF CANADA, AS LENDER
To: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
Reel/Frame 047645/0424 →
AMENDED AND RESTATED U.S. PATENT SECURITY AGREEMENT (FOR NON-U.S. GRANTORS) Recorded Aug 22, 2018
From: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
To: CPPIB CREDIT INVESTMENTS, INC.
Reel/Frame 046900/0136 →
U.S. PATENT SECURITY AGREEMENT (FOR NON-U.S. GRANTORS) Recorded Sep 9, 2014
From: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
To: CPPIB CREDIT INVESTMENTS INC., AS LENDER; ROYAL BANK OF CANADA, AS LENDER
Reel/Frame 033706/0367 →
CHANGE OF ADDRESS Recorded Sep 3, 2014
From: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
To: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
Reel/Frame 033678/0096 →
CHANGE OF NAME Recorded Mar 17, 2014
From: MOSAID TECHNOLOGIES INCORPORATED
To: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
Reel/Frame 032457/0560 →
Continuity (2)
Reissue 12619238 · Nov 16, 2009
Continuation 11477659 · Jun 30, 2006