The patent badge is an abbreviated version of the USPTO patent document. The patent badge does contain a link to the full patent document.

The patent badge is an abbreviated version of the USPTO patent document. The patent badge covers the following: Patent number, Date patent was issued, Date patent was filed, Title of the patent, Applicant, Inventor, Assignee, Attorney firm, Primary examiner, Assistant examiner, CPCs, and Abstract. The patent badge does contain a link to the full patent document (in Adobe Acrobat format, aka pdf). To download or print any patent click here.

Date of Patent:
Apr. 04, 2006

Filed:

May. 20, 2003
Applicants:

Richard E. Kessler, Shrewsbury, MA (US);

Peter J. Bannon, Concord, MA (US);

Maurice B. Steinman, Marlborough, MA (US);

Scott E. Breach, Sunnyvale, CA (US);

Allen J. Baum, Palo Alto, CA (US);

Gregg A. Bouchard, Round Rock, TX (US);

Inventors:

Richard E. Kessler, Shrewsbury, MA (US);

Peter J. Bannon, Concord, MA (US);

Maurice B. Steinman, Marlborough, MA (US);

Scott E. Breach, Sunnyvale, CA (US);

Allen J. Baum, Palo Alto, CA (US);

Gregg A. Bouchard, Round Rock, TX (US);

Assignee:
Attorney:
Primary Examiner:
Assistant Examiner:
Int. Cl.
CPC ...
G06F 12/00 (2006.01);
U.S. Cl.
CPC ...
Abstract

A computer system has a memory controller that includes read buffers coupled to a plurality of memory channels. The memory controller advantageously eliminates the inter-channel skew caused by memory modules being located at different distances from the memory controller. The memory controller preferably includes a channel interface and synchronization logic circuit for each memory channel. This circuit includes read and write buffers and load and unload pointers for the read buffer. Unload pointer logic generates the unload pointer and load pointer logic generates the load pointer. The pointers preferably are free-running pointers that increment in accordance with two different clock signals. The load pointer increments in accordance with a clock generated by the memory controller but that has been routed out to and back from the memory modules. The unload pointer increments in accordance with a clock generated by the computer system itself Because the trace length of each memory channel may differ, the time that it takes for a memory module to provide read data back to the memory controller may differ for each channel. The 'skew' is defined as the difference in time between when the data arrives on the earliest channel and when data arrives on the latest channel. During system initialization, the pointers are synchronized. After initialization, the pointers are used to load and unload the read buffers in such a way that the effects of inner-channel skew is eliminated.


Find Patent Forward Citations

Loading…