IP Library Granted Patent US 7,486,688
Granted Patent B2
US 7,486,688 · App. 10/812,141 · Granted Feb 3, 2009

Compact packet switching node storage architecture employing Double Data Rate Synchronous Dynamic RAM

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 7,486,688
App. No.
10/812,141
Granted
Feb 3, 2009
Kind
B2
Abstract

A two-chip/single-die switch architecture and a method for accessing a DDR SDRAM memory store in a switching environment are presented. The two-chip/single-die architecture includes an internal memory storage block on the single-die, an external memory storage interface to a Double Data Rate Synchronous Dynamic Random Access Memory (DDR SDRAM), an external memory manager, and a packet data transfer engine effecting packet data transfers between an internal memory store and the external DDR SDRAM memory. The packet data transfer engine operates as an adaptation layer addressing issues related to employing appropriate: addressing schemes, granule sizes, memory transfer burst sizes, access timing, etc. The packet data transfer engine includes a minimal number of dual mode operational blocks such as: a queue manager, and adaptation receive and transmit blocks. The method relates to a packet data transfer discipline addressing random memory access latencies incurred in employing DDR SDRAM, using predictive bank switching to hide random access latencies, packet length dependent variable memory write burst lengths to minimize bank switching, and performing memory read and write operations during corresponding read and write windows. Advantages are derived from the a space-efficient two-chip/single-die switching node architecture implemented with a reduced amount of dual mode logic, and also from DDR SDRAM bandwidth utilization efficiencies.

Claims (46)

1. A method of accessing Double Data Rate Synchronous Dynamic Random Access Memory (DDR SDRAM) memory storage employed in a packet switch, the DDR SDRAM memory having a plurality of memory banks for storing packet data of a plurality of packets, the method comprising steps of:

a. segmenting packet data into variable size burst units;

b. sequencing a plurality of burst unit memory write operations ensuring that each burst unit memory write operation writes packet data to a memory bank different from the previous burst unit memory write operation;

c. sequencing a plurality of burst unit memory read operations ensuring that each bust unit memory read operation reads packet data from a memory bank different from the previous burst unit memory read operation;

d. arranging the plurality of sequenced burst unit memory write operations in a plurality of write windows;

e. arranging the plurality of sequenced bust unit memory read operations in a plurality of read windows; and

f. performing memory access operations interleaving the write windows with the read windows.

2. The method claimed in claim 1 , wherein segmenting packet data into variable size burst units, the method further comprises a step of:

segmenting packet data in respect of packets received via a plurality of input switch ports prior to storing the packet data into the memory storage.

3. The method claimed in claim 2 , further comprising a prior step of: enforcing packet acceptance control.

4. The method claimed in claim 3 , wherein enforcing packet acceptance control, the method further comprises a step from: selectively accepting a packet, and selectively discarding another packet.

5. The method claimed in claim 2 , wherein sequencing the plurality of memory burst unit memory write operations, the method further comprises a step of:

preferentially scheduling write burst units corresponding to a packet from one of:

a packet received via a high bandwidth input port, a high quality-of-service packet, a packet of a particular type of service, an alarm packet, and a signaling packet.

6. The method claimed in claim 5 , wherein preferentially scheduling write burst units, the method further comprises a step of:

delaying scheduling of write burst units totaling less than ten memory access cycles long to a single bank.

7. The method claimed in claim 1 , wherein segmenting packet data into variable size burst units, the method further comprises segmenting packet data in respect of packets stored in the memory storage for transmission via a plurality of output switch ports.

8. The method claimed in claim 7 , wherein sequencing the plurality of memory burst unit memory read operations, the method further comprises a step of:

preferentially scheduling read burst units corresponding to packets from one of:

a packet to be transmitted via a high bandwidth output port, a high quality-of-service packet, a packet of a particular type of service, an alarm packet, and a signaling packet.

9. The method claimed in claim 7 , wherein sequencing the plurality of memory burst unit memory read operations, the method further comprises a step of:

delaying scheduling of read burst units corresponding to packets destined to a congested output port.

10. The method claimed in claim 7 , wherein sequencing the plurality of memory burst unit memory read operations, the method further comprises a step of:

delaying scheduling of read burst units totaling less than ten memory access cycles long to a single bank.

11. The method claimed in claim 1 , wherein segmenting packet data, the method further comprises a step of: segmenting packet data into at least four memory access cycles long burst units.

12. The method claimed in claim 11 , wherein segmenting packet data, the method further comprises a step of: segmenting packet data into burst units transferring at least 49 bytes of packet data.

13. The method claimed in claim 1 , further employing windows at least 128 memory access cycles long.

14. A method comprising:

segmenting packet data into variable size burst units based on a predefined rule;

sequencing a plurality of memory write operations such that each memory write operation writes packet data to a memory bank different from the previous memory write operation;

sequencing a plurality of burst unit memory read operations such that each memory read operation reads packet data from a memory bank different from the previous memory read operation;

arranging the plurality of sequenced burst unit memory write operations in a plurality of write windows;

arranging the plurality of sequenced bust unit memory read operations in a plurality of read windows, wherein the windows are at least a predetermined minimum size; and

performing memory access operations by interleaving the write windows with the read windows.

15. The method of claim 14 , wherein segmenting packet data into variable size burst units based on a predefined rule comprises segmenting packet data such that the burst units are between a predetermined minimum and a predetermined maximum burst unit size.

16. The method of claim 15 , wherein segmenting packet data into variable size burst units based on a predefined rule further comprises segmenting packet data such that the burst units have a predetermined median burst unit size.

17. The method of claim 14 , wherein the predetermined minimum size is 128 memory access cycles.

18. A system comprising:

means for partitioning packet data, wherein the partitioned packet data size falls between a predetermined minimum and a predetermined maximum burst unit size;

means for arranging burst unit memory write operations, wherein each memory write operation writes packet data to a memory bank different from the previous memory write operation;

means for arranging burst unit memory read operations, wherein each memory read operation reads packet data from a memory bank different from the previous memory read operation;

means for arranging the burst unit memory write operations in a plurality of write windows;

means for arranging the burst unit memory read operations in a plurality of read windows; and

means for interleaving the write windows with the read windows to perform memory access operations.

19. The system of claim 18 , wherein the windows are at least 128 memory access cycles long.

20. The system of claim 18 , wherein the predetermined minimum burst unit size is 49 bytes of packet data.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Sep 30, 2015
From: ALCATEL-LUCENT USA, INC.
To: IKANOS COMMUNICATIONS, INC.
Reel/Frame 036732/0876 →
RELEASE OF SECURITY INTEREST Recorded Sep 30, 2015
From: SILICON VALLEY BANK
To: IKANOS COMMUNICATIONS, INC.
Reel/Frame 036733/0031 →
SECURITY INTEREST Recorded Jun 10, 2015
From: IKANOS COMMUNICATIONS, INC.
To: SILICON VALLEY BANK
Reel/Frame 035874/0351 →
NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS Recorded May 5, 2015
From: IKANOS COMMUNICATIONS, INC.
To: ALCATEL-LUCENT USA, INC.
Reel/Frame 035581/0710 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2009
From: CONEXANT SYSTEMS, INC.; CONEXANT, INC.; BROOKTREE BROADBAND HOLDING INC.
To: IKANOS COMMUNICATIONS, INC.
Reel/Frame 023163/0723 →
RELEASE OF SECURITY INTEREST Recorded Aug 24, 2009
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: CONEXANT SYSTEMS, INC.
Reel/Frame 023134/0249 →
SECURITY AGREEMENT Recorded Nov 22, 2006
From: CONEXANT SYSTEMS, INC.
To: BANK OF NEW YORK TRUST COMPANY, N.A.
Reel/Frame 018711/0818 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2006
From: ZARLINK SEMICONDUCTOR V.N. INC.; ZARLINK SEMICONDUCTOR, INC.
To: CONEXANT SYSTEMS, INC.
Reel/Frame 018498/0775 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2004
From: BARRACK, CRAIG; WANG, YEONG; CHANG, RONG-FENG
To: ZARLINK SEMICONDUCTOR INC.
Reel/Frame 015489/0522 →