IP Library Granted Patent US 6,920,526
Granted Patent B1
US 6,920,526 · App. 09/619,771 · Granted Jul 19, 2005

Dual-bank FIFO for synchronization of read data in DDR SDRAM

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 6,920,526
App. No.
09/619,771
Granted
Jul 19, 2005
Kind
B1
Abstract

The present invention comprises a dual bank FIFO memory buffer operable to buffer read data from memory and thereby compensate for specific timing problems in certain computerized systems. One embodiment of the invention includes a dual bank FIFO that comprises a first bank of memory elements operable to buffer memory data and a second bank of memory elements operable to buffer memory data. Write control address logic is operable to store selected memory data in memory elements with selected addresses within a bank of memory elements, and write control timing logic is operable to selectively grant write access to the banks of memory elements at predetermined time. Also, read control logic operable to read data stored in the first and second banks.

Claims (58)

1. A dual bank FIFO memory buffer, comprising:

a first bank of memory elements operable to buffer memory data;

a second bank of memory elements operable to buffer memory data;

write control address logic operable to store selected memory data in memory elements with selected addresses;

a first write pointer associated with the first bank of memory elements, the first write pointer operable to allow received data to be written to the first bank of memory elements when a second write pointer is in a null state;

a second write pointer associated with the second bank of memory elements, the second write pointer operable to allow received data to be written to the second bank of memory elements when the first write pointer is in a null state;

write control timing logic operable to selectively grant write access to the banks of memory elements at predetermined times by enabling the first and second write pointers at times dependent on received strobe signal preamble timing;

read control logic operable to read data stored in the first and second banks;

a first port connecting the dual bank FIFO memory buffer to a memory; and

a second port connecting the dual bank FIFO memory buffer to a memory controller.

2. The dual bank FIFO memory buffer of claim 1 , wherein the memory data is provided by double data rate synchronous dynamic read only memory (DDR SDRAM) operatively connected to the buffer via the first port.

3. The dual bank FIFO memory buffer of claim 1 , wherein the write control address logic is operable to determine an element within a bank of memory elements in which selected memory data is to be stored by evaluating rising and falling edges of a strobe signal.

4. The dual bank FIFO memory buffer of claim 3 , wherein the determination of the element in which selected memory data is to be stored further comprises selection of sequential element addresses during sequential strobe cycles.

5. The dual bank FIFO memory buffer of claim 1 , wherein the write control timing logic comprises a write pointer associated with each FIFO bank.

6. The dual bank FIFO memory buffer of claim 5 , wherein each write pointer is operable to control write access to its associated FIFO bank.

7. The dual bank FIFO memory buffer of claim 6 , wherein write access is granted via write pointer only during predetermined time periods when the read data is determined to be valid.

8. The dual bank FIFO memory buffer of claim 7 , wherein determination that the read data is valid comprises determination that a programmed expected time delay after issuing a read request has occurred.

9. The dual bank FIFO memory buffer of claim 8 , wherein the programmed expected time delay is determined independently for different units of memory.

10. A memory controller, comprising:

a command signal output operable to issue a data read command;

a data input operable to receive read data from a memory; and

a dual-bank FIFO connected between the data input and the memory and operable to buffer the read data, the dual-bank FIFO further comprising:

a first bank of memory elements operable to buffer memory data;

a second bank of memory elements operable to buffer memory data;

write control address logic operable to store selected memory data in memory elements with selected addresses;

a first write pointer associated with the first bank of memory elements, the first write pointer operable to allow received data to be written to the first bank of memory elements when a second write pointer is in a null state;

a second write pointer associated with the second bank of memory elements, the second write pointer operable to allow received data to be written to the second bank of memory elements when the first write pointer is in a null state;

write control timing logic operable to selectively grant write access to the banks of memory elements at predetermined times by enabling the first and second write pointers at times dependent on received strobe signal preamble timing; and

read control logic operable to read data stored in the first and second banks.

11. The memory controller of claim 10 , wherein the memory data is provided by double data rate synchronous dynamic read only memory (DDR SDRAM) operatively connected to the buffer.

12. The memory controller of claim 10 , wherein the write control address logic is operable to determine an element within a bank of memory elements in which selected memory data is to be stored by evaluating rising and falling edges of a strobe signal.

13. The memory controller of claim 12 , wherein the determination of the element in which selected memory data is to be stored further comprises selection of sequential element addresses during sequential strobe cycles.

14. The memory controller of claim 10 , wherein the write control timing logic comprises a write pointer associated with each FIFO bank.

15. The memory controller of claim 14 , wherein each write pointer is operable to control write access to its associated FIFO bank.

16. The memory controller of claim 15 , wherein write access is granted via write pointer only during predetermined time periods when the read data is determined to be valid.

17. The memory controller of claim 16 , wherein determination that the read data is valid comprises determination that a programmed expected time delay after issuing a read request has occurred.

18. A computerized information handling system, the system comprising:

a memory controller;

a memory;

a processor; and

a dual-bank FIFO connected between the memory and the memory controller and operable to buffer read data, the dual-bank FIFO further comprising:

a first bank of memory elements operable to buffer memory data;

a second bank of memory elements operable to buffer memory data;

write control address logic operable to store selected memory data in memory elements with selected addresses;

a first write pointer associated with the first bank of memory elements, the first write pointer operable to allow received data to be written to the first bank of memory elements when a second write pointer is in a null state;

a second write pointer associated with the second bank of memory elements, the second write pointer operable to allow received data to be written to the second bank of memory elements when the first write pointer is in a null state;

write control timing logic operable to selectively grant write access to the banks of memory elements at predetermined times by enabling the first and second write pointers at times dependent on received strobe signal preamble timing; and

read control logic operable to read data stored in the first and second banks.

19. The dual bank FIFO memory buffer of claim 18 , wherein the memory data is provided by double data rate synchronous dynamic read only memory (DDR SDRAM) operatively connected to the buffer.

20. The dual bank FIFO memory buffer of claim 18 , wherein the write control address logic is operable to determine an element within a bank of memory elements in which selected memory data is to be stored by evaluating rising and falling edges of a strobe signal.

21. The dual bank FIFO memory buffer of claim 20 , wherein the determination of the element in which selected memory data is to be stored further comprises selection of sequential element addresses during sequential strobe cycles.

22. The dual bank FIFO memory buffer of claim 18 , wherein the write control timing logic comprises a write pointer associated with each FIFO bank.

23. The dual bank FIFO memory buffer of claim 22 , wherein each write pointer is operable to control write access to its associated FIFO bank.

24. The dual bank FIFO memory buffer of claim 23 , wherein write access is granted via write pointer only during predetermined time periods when the read data is determined to be valid.

25. The dual bank FIFO memory buffer of claim 24 , wherein determination that the read data is valid comprises determination that a programmed expected time delay after issuing a read request has occurred.

26. The dual bank FIFO memory buffer of claim 25 , wherein the programmed expected time delay is determined independently for different units of memory.

27. A method of compensating for potential read loop delay timing-induced read errors, comprising:

selectively granting write access to a bank of FIFO buffer memory selected from a multi-bank FIFO of memory elements at determined time via write control timing logic, the write control timing logic comprising a write pointer associated with each FIFO bank and operable to control write access to the associated bank during periods when read data is determined to be valid, the multi-bank FIFO coupled between a memory and a memory controller.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC., AS AGENT
To: SILICON GRAPHICS INTERNATIONAL CORP.
Reel/Frame 040545/0362 →
SECURITY INTEREST Recorded Mar 13, 2015
From: SILICON GRAPHICS INTERNATIONAL CORP.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 035200/0722 →
MERGER Recorded Jan 22, 2015
From: SGI INTERNATIONAL, INC.
To: SILICON GRAPHICS INTERNATIONAL CORP.
Reel/Frame 034804/0437 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2015
From: SILICON GRAPHICS, INC.
To: SILICON GRAPHICS INTERNATIONAL, INC.
Reel/Frame 034804/0446 →
CHANGE OF NAME Recorded Jan 22, 2015
From: SILICON GRAPHICS INTERNATIONAL, INC.
To: SGI INTERNATIONAL, INC.
Reel/Frame 034804/0661 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2012
From: SILICON GRAPHICS, INC. ET AL.; SGI INTERNATIONAL, INC.
To: SILICON GRAPHICS INTERNATIONAL, CORP.
Reel/Frame 027727/0020 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2007
From: GENERAL ELECTRIC CAPITAL CORPORATION
To: MORGAN STANLEY & CO., INCORPORATED
Reel/Frame 019995/0895 →
SECURITY INTEREST Recorded Oct 24, 2006
From: SILICON GRAPHICS, INC.
To: GENERAL ELECTRIC CAPITAL CORPORATION
Reel/Frame 018545/0777 →
SECURITY AGREEMENT Recorded Aug 19, 2005
From: SILICON GRAPHICS, INC. AND SILICON GRAPHICS FEDERAL, INC. (EACH A DELAWARE CORPORATION)
To: WELLS FARGO FOOTHILL CAPITAL, INC.
Reel/Frame 016871/0809 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2001
From: SIKKINK, MARK RONALD; MA, NAN
To: SILICON GRAPHICS, INC.
Reel/Frame 011501/0443 →