IP Library Granted Patent US 6,915,372
Granted Patent B2
US 6,915,372 · App. 09/877,502 · Granted Jul 5, 2005

Methods and apparatus for managing traffic through a buffered crossbar switch fabric

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,915,372
App. No.
09/877,502
Granted
Jul 5, 2005
Kind
B2
Abstract

A data routing mechanism is disclosed. The data routing mechanism includes virtual output queues (VOQs), corresponding to a first input port, that store data to be sent to one of a first and second output port. The data routing mechanism includes VOQs, corresponding to a second input port, that store data to be sent to one of the first and second output port. The data routing mechanism includes a switch fabric that includes a plurality of buffers at crosspoints between the first and second input ports and the first and second output ports. The data routing mechanism includes a first input scheduler that transmits a first data from the VOQs corresponding to the first input port to one of the plurality of buffers based on lengths of the VOQs corresponding to the first input port and a credit state of the plurality of buffers.

Claims (61)

1. A data routing mechanism, comprising:

virtual output queues (VOQs) corresponding to a first input port that store data to be sent to one of a first and second output port;

VOQs corresponding to a second input port that store data to be sent to one of the first and second output port;

a switch fabric that includes a plurality of buffers at crosspoints between the first and second input ports and the first and second output ports;

a first input scheduler that transmits a first data from the VOQs corresponding to the first input port to one of the plurality of buffers based on lengths of the VOQs corresponding to the first input port and a credit state of the plurality of buffers.

2. The data routing mechanism of claim 1 , further comprising:

a second input scheduler that transmits a second data from the VOQs corresponding to the second input port to one of the plurality of buffers based on lengths of the VOQs corresponding to the second input port and the credit state of the plurality of buffers.

3. The data routing mechanism of claim 1 , further comprising:

a first output scheduler that transmits a second data from the plurality of buffers to the first output port based on a round robin scheduling scheme and the credit state of the plurality of buffers.

4. The data routing mechanism of claim 3 , further comprising

a second output scheduler that transmits a third data from the plurality of buffers to the second output port based on the round robin scheduling scheme and the credit state of the plurality of buffers.

5. The data routing mechanism of claim 1 , further comprising:

a first output scheduler that transmits a second data from the plurality of buffers to the first output port based on the lengths of the VOQs associated with the first output port and the credit state of the plurality of buffers.

6. The data routing mechanism of claim 5 , further comprising

a second output scheduler that transmits a third data from the plurality of buffers to the second output port based on the lengths of the VOQs associated with the second output port and the credit state of the plurality of buffers.

7. A data routing mechanism, comprising:

a first virtual output queue (VOQ) corresponding to a first input port that stores a cell to be sent to a first output port;

a second VOQ corresponding to the first input port that stores a cell to be sent to a second output port;

a first VOQ corresponding to a second input port that stores a cell to be sent to the first output port;

a second VOQ corresponding to the second input port that stores a cell to be sent to the second output port;

a first buffer at a crosspoint between the first input port and the first output port;

a second buffer at a crosspoint between the first input port and the second output port;

a third buffer at a crosspoint between the second input port and the first output port;

a fourth buffer at a crosspoint between the second input port and the second output port;

a first input scheduler that transmits the cell in one of the first and second VOQs corresponding to the first input port to one of the first and second buffers based on lengths of the first and second VOQs corresponding to the first input port and whether the first and second buffers may receive the first data.

8. The data routing mechanism of claim 7 , further comprising:

a second input scheduler that transmits the cell in one of the first and second VOQs corresponding to the second input port to one of the third and fourth buffers based on lengths of the first and second VOQs corresponding to the second input port and whether the third and fourth buffers may receive the second data.

9. The switch fabric of claim 7 , further comprising:

a first output scheduler that transmits a cell in one of the first and third buffers to the first output port based on a round robin scheduling scheme and whether the first and third buffers are occupied.

10. The switch fabric of claim 9 , further comprising:

a second output scheduler that transmits a cell in one of the second and fourth buffers to the second output port based on the round robin scheduling scheme and whether the second and fourth buffers are occupied.

11. The switch fabric of claim 7 , further comprising:

a first output scheduler that transmits a cell in one of the first and third buffers to the first output port based on the lengths of the first VOQs corresponding to the first and second input ports and whether the first and third buffers are occupied.

12. The switch fabric of claim 11 , further comprising:

a second output scheduler that transmits a cell in one of the second and fourth buffers to the second output port based on the lengths of the second VOQs corresponding to the first and second input ports and whether the second and fourth buffers are occupied.

13. A method for managing traffic in a switch fabric, comprising:

identifying queue lengths for virtual output queues (VOQs) corresponding to a first input port;

identifying buffers at crosspoints associate with the VOQs corresponding to the first input port that may receive a data cell; and

transmitting a data cell from a VOQ corresponding to the first input port with a relatively longest queue length and that is associated with a crosspoint having a buffer that may receive the data cell.

14. The method of claim 13 , wherein identifying the queue lengths for the VOQs corresponding to the first input port comprises:

determining a number of data cells in a first VOQ corresponding to the first input port that stores data cells to be sent to a first output port; and

determining a number of data cells in a second VOQ corresponding to the first input port that stores data cells to be sent to a second output port.

15. The method of claim 13 , wherein identifying the buffers at the crosspoints associated with the VOQs corresponding to the first input port that may receive the data cell comprises:

determining whether a first buffer at a crosspoint between the first input port and the first output port may be occupied; and

determining whether a second buffer at a crosspoint between the first input port and the second output port may be occupied.

16. The method of claim 13 , further comprising:

identifying queue lengths for virtual output queues (VOQs) corresponding to a second input port;

identifying buffers at crosspoints associate with the VOQs corresponding to the second input port that may receive the data cell; and

transmitting a data cell in a VOQ corresponding to the second input port with a relatively longest queue length and that is associated with a crosspoint having a buffer that may receive the data cell.

17. The method of claim 16 , further comprising:

identifying buffers corresponding to crosspoints of a first output port that are occupied; and

transmitting cells from the buffers corresponding to the crosspoints of the first output port that are occupied to the first output port based on a round robin scheduling scheme.

18. The method of claim 17 , further comprising:

identifying buffers corresponding to crosspoints of a second output port that are occupied; and

transmitting cells from the buffers corresponding to the crosspoints of the second output port that are occupied to the second output port based on the round robin scheduling scheme.

19. The method of claim 16 , further comprising:

identifying buffers corresponding to crosspoints of a first output port that are occupied; and

transmitting cells from the buffers corresponding to the crosspoints of the first output port that are occupied to the first output port based on the queue lengths of the VOQs corresponding to the first and second input ports.

20. The method of claim 17 , further comprising:

identifying buffers corresponding to crosspoints of a second output port that are occupied; and

transmitting cells from the buffers corresponding to the crosspoints of the second output port that are occupied to the second output port based on the queue lengths of the VOQs corresponding to the first and second input ports.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION NUMBER 10/075,623 PREVIOUSLY RECORDED AT REEL: 034484 FRAME: 0740. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT FOR SECURITY --- PATENTS. Recorded Jun 14, 2017
From: CORIANT OPERATIONS, INC.; TELLABS RESTON, LLC (FORMERLY KNOWN AS TELLABS RESTON, INC.); WICHORUS, LLC (FORMERLY KNOWN AS WICHORUS, INC.)
To: TELECOM HOLDING PARENT LLC
Reel/Frame 042980/0834 →
ASSIGNMENT FOR SECURITY - - PATENTS Recorded Nov 26, 2014
From: CORIANT OPERATIONS, INC.; TELLABS RESTON, LLC (FORMERLY KNOWN AS TELLABS RESTON, INC.); WICHORUS, LLC (FORMERLY KNOWN AS WICHORUS, INC.)
To: TELECOM HOLDING PARENT LLC
Reel/Frame 034484/0740 →
SECURITY AGREEMENT Recorded Dec 6, 2013
From: TELLABS OPERATIONS, INC.; TELLABS RESTON, LLC (FORMERLY KNOWN AS TELLABS RESTON, INC.); WICHORUS, LLC (FORMERLY KNOWN AS WICHORUS, INC.)
To: CERBERUS BUSINESS FINANCE, LLC, AS COLLATERAL AGENT
Reel/Frame 031768/0155 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2001
From: MAGILL, ROBERT B.; HRABIK, TERRY J.; JAVIDI, TARA
To: TELLABS OPERATIONS, INC.
Reel/Frame 012247/0989 →