Claims
- 1. A method of transferring data cells of plural classes from input ports to output ports through a switch, comprising:
storing cells at each input port in class-specific virtual output queues (VOQ) within sets of VOQs associated with output ports; providing credits to VOQs according to class-associated guaranteed bandwidths; upon receipt of cells at VOQs having credits, generating high-priority requests for transfer; upon receipt of cells at VOQs not having credits, generating low-priority requests for transfer; in response to requests, issuing grants to VOQ sets without regard to class, grants being issued in response to high-priority requests over low-priority requests; and at a VOQ set, upon receiving a grant for said VOQ set, arbitrating transfer of a cell, giving higher priority to VOQs having credits.
- 2. The method of claim 1, further comprising:
forwarding generated requests from all input ports to a central scheduler in a switch fabric slice, the central scheduler issuing the grants.
- 3. The method of claim 2, the switch fabric comprising multiple slices and associated central scheduler.
- 4. The method of claim 3, further comprising:
distributing requests across the switch fabric slices in parallel.
- 5. The method of claim 4, wherein the requests are distributed across the switch fabric slices in a fixed order.
- 6. The method of claim 3, every cell time, each input port sending a request in a cell to every central scheduler slice, the cell comprising a request and a cell payload, the request being valid responsive to a generated request.
- 7. The method of claim 6, a valid request comprising at least a reference to a target output of the request, and a request priority.
- 8. The method of claim 1, further comprising:
delaying generation of low-priority requests.
- 9. The method of claim 8, generation of low-priority requests for a class queue being delayed if the number of outstanding requests for the class queue exceeds a predetermined threshold.
- 10. The method of claim 8, further comprising:
generating requests upon arrivals of cells.
- 11. The method of claim 8, further comprising:
generating requests upon transmissions of cells.
- 12. The method of claim 8, further comprising:
generating requests upon a periodic flush timer signal.
- 13. The method of claim 1, further comprising:
granting low priority requests at the central scheduler according to weighted fair share policy.
- 14. The method of claim 1, further comprising:
at the central scheduler, tracking credits for all VOQs for all input port modules; and simultaneously, at each input port module, tracking credits for its local VOQs.
- 15. The method of claim 1, wherein credits are maintained using a virtual clock-based credit generation mechanism.
- 16. A switching system, comprising:
plural input port modules for receiving cells, each input port module comprising
class-specific virtual output queues (VOQs) within sets of VOQs, each set associated with an output port module, the VOQs accumulating credits according to class-associated guaranteed bandwidths, a request generator which generates high-priority requests for transfer upon receipt of cells at VOQs having credits, and which generates low-priority requests for transfer upon receipt of cells at VOQs not having credits, and an arbitrator which, upon receiving a class-independent grant at a VOQ set, arbitrates transfer of a cell from the VOQ set, giving higher priority to VOQs having credits; said output port modules for transmitting cells; a switch fabric which directs cells from the input port modules to the output port modules; and a central scheduler associated with each switch fabric slice, which, responsive to requests for transmission across the switch fabric from the input port modules, issues grants to the requesting input port modules, without regard to class, the central scheduler issuing grants in response to high-priority requests over low-priority requests.
- 17. The system of claim 16, further comprising:
a central scheduler which issues the grants to requests generated from all input ports to, the central scheduler issuing the grants.
- 18. The system of claim 17, the switch comprising multiple switch fabric slices and associated central scheduler.
- 19. The system of claim 18, requests being distributed across the switch fabric slices in parallel.
- 20. The system of claim 19, the requests being distributed across the switch fabric slices in a fixed order.
- 21. The system of claim 18, every cell time, each input port sending a cell to every central scheduler slice, the cell comprising a request and a cell payload, the request being valid responsive to a generated request.
- 22. The system of claim 21, a valid request comprising at least a reference to a target output of the request, and a request priority.
- 23. The system of claim 16, generation of low-priority requests being delayed.
- 24. The system of claim 23, generation of low-priority requests for a class queue being delayed if a number of outstanding requests for the class queue exceeds a predetermined threshold.
- 25. The system of claim 23, requests being generated upon arrivals of cells.
- 26. The system of claim 23, requests being generated upon transmissions of cells.
- 27. The system of claim 23, requests being generated upon a periodic flush timer signal.
- 28. The system of claim 16, the central scheduler issuing grants in response to low-priority requests according to weighted fair share policy.
- 29. The system of claim 16, the central scheduler, tracking credits for all VOQs for all input port modules, and simultaneously, each input port module tracking credits for its local VOQs.
- 30. The system of claim 16, further comprising:
a virtual clock-based credit generation mechanism to maintain credits.
- 31. A system for transferring data cells of plural classes from input ports to output ports through a switch, comprising:
means for storing cells at each input port in class-specific virtual output queues (VOQ) within sets of VOQs associated with output ports; means for providing credits to VOQs according to class-associated guaranteed bandwidths; means for generating high-priority requests for transfer, upon receipt of cells at VOQs having credits; means for generating low-priority requests for transfer, upon receipt of cells at VOQs not having credits; means for issuing grants, in response to requests, to VOQ sets without regard to class, grants being issued in response to high-priority requests over low-priority requests; and means for arbitrating, at a VOQ set, upon receiving a grant for said VOQ set, transfer of a cell, giving higher priority to VOQs having credits.
- 32. A method for scheduling transmission of cells through a switch, the switch having plural input ports, plural output ports, and at least one switching fabric slice, each cell arriving at an input port and designating an output port, and each cell having an associated class, the method comprising:
in each input port, maintaining plural virtual output queues (VOQs), each VOQ being associated with an output port and a class; associating a minimum guaranteed bandwidth (MGB) with each VOQ; maintaining and tracking credits per VOQ responsive to the associated MGB and traffic flow through the VOQ; at each input port and every cell time:
if at least one VOQ has at least one credit, selecting a VOQ having at least one credit, and generating a high-priority class-independent request designating the output port associated with the selected VOQ, and otherwise, selecting a non-empty VOQ, and generating a low-priority class-independent request designating the output port associated with the selected VOQ, and forwarding the generated request to a central scheduler; at each input port and every cell time:
upon receiving a grant from the central scheduler, selecting a VOQ associated with the grant's designated output port, the selected VOQ having at least one credit, and if all VOQs have zero credits, the selected VOQ being non-empty, and transmitting a cell from the selected VOQ; and at the central scheduler, every cell time:
receiving requests from the input ports, issuing class-independent grants to input ports, responsive to high-priority requests received from said input ports, issuing class-independent grants to input ports, responsive to low-priority requests received from said input ports and based on available bandwidth after issuing grants responsive to high-priority requests.
- 33. A method for scheduling transmission of cells through a switch, the switch having plural input ports, plural output ports, and a switching fabric, each cell arriving at an input port and designating an output port, and each cell having an associated class, the method comprising:
associating a minimum guaranteed bandwidth (MGB) with each input-output-class; every cell time, generating, at each input port, a request for transmission through the switch fabric, based on queue occupancy and requests previously generated, the request designating the output; assigning a priority to each generated request based on whether the MGB is currently satisfied for the input-output-class designation associated with the cell; forwarding the generated requests to a central scheduler; issuing grants, at the central scheduler, responsive to high-priority requests received from the input ports, according to a round robin scheduling applied to the input ports, grants being class-independent and designating outputs; issuing grants, at the central scheduler, responsive to low-priority requests, in a weighted fair-share manner, based on available bandwidth after granting high-priority requests, grants being class-independent and designating outputs; and upon an input port receiving a grant, allocating the grant to one of the input port's class queues associated with the designated output port and having at least one outstanding high-priority request, and if no such class queue exists, allocating the grant to one of the class queues associated with the designated output port and having at least one outstanding low-priority request.
- 34. A method for providing multi-class end-to-end quality of service (QoS) in a large-capacity input/output buffered crossbar switch, comprising:
reserving a channel for every input/output pair and every class, each channel having an associated minimum bandwidth guarantee, and a weighted fair share of unused output port bandwidth; receiving, at plural input ports, cells for transmission through the switch to plural output ports, each cell being associated with a class; queuing each received cell according to the input port in which it is received, its destination output port and its class; tracking credits for each queue; generating a request for service for a cell by dynamically mapping the cell's class from a plurality of service classes to one of plural priority levels, there being fewer priority levels than service classes.
RELATED APPLICATION(S)
[0001] This application claims the benefit of U.S. Provisional Application No. 60/387,394, filed Jun. 10, 2002 for “Large Capacity Switching System,” by Gopal Meempat, G. Ramamurthy, William J. Dally and Martin Braff. The entire teachings of the above application are incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60387394 |
Jun 2002 |
US |