A pipeline-based matching scheduling approach for input-buffered switches relaxes the timing constraint for arbitration with matching schemes, such as CRRD and CMSD. In the new approach, arbitration may operate in a pipelined manner. Each sub-scheduler is allowed to take more than one time slot for its matching. Every time slot, one of them provides a matching result(s). The sub-scheduler can use a matching scheme such as CRRD and CMSD.
|
0. 40. A dispatch scheduler for use with a multi-stage switch, the dispatch scheduler comprising:
a sub-scheduler; and
a first indicator, associated with a virtual output queue, for indicating whether the virtual output queue is storing a cell awaiting dispatch arbitration, wherein the sub-scheduler is configured to perform a matching operation to match a cell buffered at the virtual output queue with an output port, and comprises:
means for matching a non-empty virtual output queue with an outgoing link of an input module, and
means for matching the outgoing link of the input module with an outgoing link of an associated central module, wherein the sub-scheduler requires more than one cell time slot to generate a match from the matching operation, and wherein the sub-scheduler collectively generates a match result in each cell time slot.
0. 27. A method for scheduling the dispatch of cells or packets stored in a virtual output queue of a multi-stage switch, the method comprising:
maintaining a first indicator for indicating whether the virtual output queue is storing a cell awaiting dispatch arbitration; and
performing a matching operation using a sub-scheduler to match a cell buffered at the virtual output queue with an outgoing link of a central module via an outgoing link of an input module, wherein the matching operation comprises:
matching a non-empty virtual output queue with the outgoing link of the input module, and
matching the outgoing link of the input module with the outgoing link of the associated central module, wherein the sub-scheduler requires more than one cell time slot to generate a match from the matching operation, and wherein the sub-scheduler collectively generates a match result in each cell time slot.
0. 53. A multi-stage switch with a computer-readable storage medium having computer-readable instructions for scheduling the dispatch of cells or packets stored in a virtual output queue of the multi-stage switch stored therein, the computer-readable comprising instructions for:
maintaining a first indicator for indicating whether the virtual output queue is storing a cell awaiting dispatch arbitration; and
performing a matching operation using a sub-scheduler if the sub-scheduler has been reserved, to match a cell buffered at the virtual output queue with an outgoing link of a central module via an outgoing link of an input module, wherein the matching operation comprises:
matching a non-empty virtual output queue with the outgoing link of the input module, and
matching the outgoing link of the input module with an outgoing link of the associated central module, wherein the sub-scheduler requires more than one cell time slot to generate a match from the matching operation, and wherein the sub-scheduler collectively generates a match result in each cell time slot.
14. For A dispatch scheduler for use with a multi-stage switch including
a plurality of central modules, each including outgoing links towards output modules, the output modules collectively including a first number of output ports,
a plurality of input modules, each including virtual output queues and outgoing links coupled with each of the plurality of central modules, the input modules collectively including a second number of input ports,
a dispatch scheduler comprising:
a) a third number of sub-schedulers; and
b) a first indicator, associated with each of the virtual output queues, for indicating whether the virtual output queue is storing a cell awaiting dispatch arbitration,
wherein each of the sub-schedulers is adapted to perform a matching operation, if it has been reserved, to match a cell buffered at a virtual output queue with its corresponding output port, and includes:
i) for an input module, means for matching a non-empty virtual output queue with an outgoing link of the input module, and
ii) means for matching the outgoing link of the input module with an outgoing link of the associated central module,
wherein each of the sub-schedulers requires more than one cell time slot to generate a match from its matching operation, and
wherein the sub-schedulers can collectively generate a match result in each cell time slot.
1. For use with a A method for scheduling the dispatch of cells or packets in a multi-stage switch, the multi-stage switch having
a plurality of central modules, each having outgoing links, and
a plurality of input modules, each including
a first number of input ports, each of the input ports having a second number of virtual output queues, and
outgoing links coupled with each of the plurality of central modules, and
a third number of sub-schedulers, each of the third number of sub-schedulers being able to arbitrate matching an input port with an outgoing link of one of the plurality of central modules via an outgoing link of the input module including the input port, a method for scheduling the dispatch of cells or packets stored in the virtual output queues, the method comprising:
a) for each of the virtual output queues, maintaining a first indicator for indicating whether the virtual output queue is storing a cell awaiting dispatch arbitration; and
b) for each of the sub-schedulers, performing a matching operation, if it has been reserved, to match a cell buffered at a virtual output queue with an outgoing link of one of the plurality of central modules via an outgoing link of the input module, wherein the matching operation includes:
i) for an input module, matching a non-empty virtual output queue with an outgoing link of the input module, and
ii) matching the outgoing link of the input module with an outgoing link of the associated central module,
wherein each of the sub-schedulers requires more than one cell time slot to generate a match from its matching operation, and
wherein the sub-schedulers can collectively generate a match result in each cell time slot.
2. The method of
A) broadcasting a request for the non-empty virtual output queue to an arbiter of the sub-scheduler for each of the outgoing links of the input module;
B) selecting, with the arbiter, of the sub-scheduler, of each of the outgoing links of the input module, a non-empty virtual output queue that broadcast a request;
C) sending a grant to an arbiter, of the sub-scheduler, for the selected non-empty virtual output queue; and
D) selecting, with the arbiter, of the sub-scheduler, of the selected non-empty virtual output queue, an outgoing link of the input module from among the one or more outgoing links that sent a grant.
3. The method of
4. The method of
5. The method of
A) broadcasting a request for the non-empty virtual output queue to an arbiter of the sub-scheduler for each of the outgoing links of the input module;
B) selecting, with the arbiter of the sub-scheduler of each of the outgoing links of the input module, a non-empty virtual output queue that broadcast a request;
C) sending a grant to an arbiter of the sub-scheduler for the selected non-empty virtual output queue; and
D) selecting, with the arbiter of the sub-scheduler of the selected non-empty virtual output queue, an outgoing link from among the one or more outgoing links that sent a grant,
are performed at least twice within the third number of cell time slots.
6. The method of
7. The method of
c) if a cell buffered at a virtual output queue has been successfully matched with its corresponding output port, informing the virtual output queue.
8. The method of
d) for each of the virtual output queues, if the virtual output queue has been informed that it has been successfully matched with its corresponding output port, then dispatching its head of line cell.
9. The method of
wherein the count is incremented upon learning that a new cell has arrived at the virtual output queue.
10. The method of
11. The method of
c) for each of the sub-schedulers, maintaining a second indicator for each of the virtual output queues, for indicating whether the sub-scheduler is available or reserved,
wherein the second indicator, for each of the sub-schedulers, is set to indicate that the associated sub-scheduler is reserved if the first indicator indicates that a corresponding virtual output queue is storing a cell awaiting dispatch arbitration.
12. The method of
c) for each of the sub-schedulers, maintaining a second indicator for each of the virtual output queues, for indicating whether the sub-scheduler is available or reserved,
wherein the second indicator, for each of the sub-schedulers, is set to indicate that the associated sub-scheduler is available if the associated sub-scheduler matches a cell buffered at a virtual output queue with its corresponding output port.
13. The method of
c) for each of the sub-schedulers, maintaining a second indicator for each of the virtual output queues, for indicating whether the sub-scheduler is available or reserved,
wherein the second indicator is set to indicate that a pth sub-scheduler is reserved if the first indicator indicates that a corresponding virtual output queue is storing a cell awaiting dispatch arbitration,
wherein p is set to the current cell time slot modulo the third number.
15. The dispatch scheduler of
A) means for broadcasting a request for the non-empty virtual output queue to an arbiter for each of the outgoing links of the input module;
B) for each of the outgoing links of the input module, an arbiter for selecting a non-empty virtual output queue that broadcast a request;
C) means for sending a grant to an arbiter for the selected non-empty virtual output queue; and
D) for the selected non-empty virtual output queue, an arbiter for selecting an outgoing link of the input module from among the one or more outgoing links of the input module that sent a grant.
16. The dispatch scheduler of
17. The dispatch scheduler of
18. The dispatch scheduler of
19. The dispatch scheduler of
wherein the count is incremented upon learning that a new cell has arrived at the virtual output queue.
20. The dispatch scheduler of
21. The dispatch scheduler of
c) a second indicator for each of the virtual output queues and for each of the sub-schedulers, indicating whether the sub-scheduler is available or reserved,
wherein the second indicator, for each of the sub-schedulers, is set to indicate that the associated sub-scheduler is reserved if the first indicator indicates that a corresponding virtual output queue is storing a cell awaiting dispatch arbitration.
22. The dispatch scheduler of
c) a second indicator for each of the virtual output queues and for each of the sub-schedulers, indicating whether the sub-scheduler is available or reserved,
wherein the second indicator, for each of the sub-schedulers, is set to indicate that the associated sub-scheduler is available if the associated sub-scheduler matches a cell buffered at a virtual output queue with its corresponding output port.
23. The dispatch scheduler of
c) a second indicator for each of the virtual output queues and for each of the sub-schedulers, indicating whether the sub-scheduler is available or reserved,
wherein the second indicator is set to indicate that a pth sub-scheduler is reserved if the first indicator indicates that a corresponding virtual output queue is storing a cell awaiting dispatch, and
wherein p is set to the current cell time slot modulo the third number.
24. The dispatch scheduler of
25. The dispatch scheduler of
26. The dispatch scheduler of
0. 28. The method of claim 27, wherein matching a non-empty virtual output queue with an outgoing link of the input module comprises:
broadcasting a request for the non-empty virtual output queue to an arbiter of the sub-scheduler for the outgoing links of the input module;
selecting, with the arbiter, of the sub-scheduler, the non-empty virtual output queue that broadcasts a request;
sending a grant to an arbiter, of the sub-scheduler, for the selected non-empty virtual output queue; and
selecting, with the arbiter, of the sub-scheduler, of the selected non-empty virtual output queue, the outgoing link of the input.
0. 29. The method of claim 28, wherein selecting, with the arbiter, of the sub-scheduler, the non-empty virtual output queue that broadcasts a request is done using a round robin discipline.
0. 30. The method of claim 29, wherein the round robin discipline moves through groups of virtual output queues, before moving through virtual output queues within each group.
0. 31. The method of claim 28, wherein broadcasting a request for the non-empty virtual output queue; selecting the non-empty virtual output queue that broadcasts a request; sending a grant to an arbiter of the sub-scheduler; and selecting the outgoing link are performed at least twice within the cell time slots.
0. 32. The method of claim 27, wherein the sub-scheduler requires no more than the number of cell time slots to generate a match result from its matching operation.
0. 33. The method of claim 27 further comprising if a cell buffered at a virtual output queue has been successfully matched with the corresponding output port, informing the virtual output queue.
0. 34. The method of claim 33 further comprising if the virtual output queue has been informed that it has been successfully matched with the corresponding output port, dispatching its head of line cell.
0. 35. The method of claim 27, wherein the first indicator is a count, and wherein the count is incremented upon learning that a new cell has arrived at the virtual output queue.
0. 36. The method of claim 35, wherein the count is decremented when the sub-scheduler is reserved for considering a head of line cell at the corresponding virtual output queue.
0. 37. The method of claim 27, further comprising maintaining a second indicator for the virtual output queue, for indicating whether the sub-scheduler is available or reserved, wherein the second indicator is set to indicate that the associated sub-scheduler is reserved if the first indicator indicates that the corresponding virtual output queue is storing a cell awaiting dispatch arbitration.
0. 38. The method of claim 27 further comprising maintaining a second indicator for the virtual output queue, for indicating whether the sub-scheduler is available or reserved, wherein the second indicator is set to indicate that the associated sub-scheduler is available if the associated sub-scheduler matches a cell buffered at the virtual output queue with the corresponding output port.
0. 39. The method of claim 27 further comprising maintaining a second indicator for the virtual output queues, for indicating whether the sub-scheduler is available or reserved, wherein the second indicator is set to indicate that a sub-scheduler is reserved if the first indicator indicates that the corresponding virtual output queue is storing a cell awaiting dispatch and wherein the sub-scheduler is selected from a plurality of sub-schedulers based on the current cell time slot modulo the total number of sub-schedulers.
0. 41. The dispatch scheduler of claim 40 wherein the means for matching a non-empty virtual output queue with an outgoing link of the input module comprises means for broadcasting a request for the non-empty virtual output queue to an arbiter for each of the outgoing links of the input module; an arbiter for selecting the non-empty virtual output queue that broadcast a request; means for sending a grant the an arbiter for the selected non-empty virtual output queue; and for the selected non-empty virtual output queue, an arbiter for selecting an outgoing link of the input module.
0. 42. The dispatch scheduler of claim 40, wherein each of the sub-schedulers require no more than the number of cell time slots to generate a match result from its matching operation.
0. 43. The dispatch scheduler of claim 40, wherein if a cell buffered at the virtual output queue has been successfully matched with the corresponding output port, the virtual output queue is informed.
0. 44. The dispatch scheduler of claim 40, wherein if a cell buffered at the virtual output queue has been successfully matched with the corresponding output port, a head of line cell is dispatched.
0. 45. The dispatch scheduler of claim 40, wherein the first indicator is a count, and wherein the count is incremented upon learning that a new cell has arrived at the virtual output queue.
0. 46. The dispatch scheduler of claim 45, wherein the count is decremented when the sub-scheduler is reserved for considering the head of line cell at the corresponding virtual output queue.
0. 47. The dispatch scheduler of claim 40, further comprising a second indicator indicating whether the sub-scheduler is available or reserved, wherein the second indicator is set to indicate that the associated sub-scheduler is reserved if the first indicator indicates that the corresponding virtual output queue is storing a cell awaiting dispatch arbitration.
0. 48. The dispatch scheduler of claim 40 further comprising a second indicator indicating whether the sub-scheduler is available or reserved, wherein the second indicator is set to indicate that the associated sub-scheduler is available if the associated sub-scheduler matches a cell buffered at the virtual output queue with the corresponding output port.
0. 49. The dispatch scheduler of claim 40 further comprising a second indicator indicating whether the sub-scheduler is available or reserved, wherein the second indicator is set to indicate that a p.sup.th sub-scheduler is reserved if the first indicator indicates that the corresponding virtual output queue is storing a cell awaiting dispatch, and wherein p is set to the current cell time slot modulo the number of sub-schedulers.
0. 50. The dispatch scheduler of claim 40, wherein the arbiter for selecting the non-empty virtual output queue that broadcasts a request operates using a round robin discipline.
0. 51. The dispatch scheduler of claim 50, wherein the round robin discipline moves through groups of virtual output queues, before moving through virtual output queues within each group.
0. 52. The dispatch scheduler of claim 40, wherein the means for matching the non-empty virtual output queue with an outgoing link of the input module performs multiple iterations of matching the non-empty virtual output queue with an outgoing link of the input module within the cell time slots.
|
Benefit is claimed, under 35 U.S.C. §119 (e)(1), to the filing date of: provisional patent application Ser. No. 60/252,006, entitled “CRRD: A CONCURRENT ROUND-ROBIN DISPATCHING SCHEME FOR CLOS-NETWORK SWITCHES”, filed on Nov. 20, 2000 and listing Jonathan Chao and Eiji Oki as the inventors; and provisional patent application Ser. No. 60/253,335, entitled “A SCALABLE ROUND-ROBIN BASED DISPATCHING SCHEME FOR LARGE-SCALE CLOS-NETWORK SWITCHES”, filed on Nov. 27, 2000 and listing Jonathan Chao and Eiji Oki as inventors, for any inventions disclosed in the manner provided by 35 U.S.C. §112, ¶ 1. These provisional applications are expressly incorporated herein by reference.
This application is
where C is a port speed. Thus, the allowable scheduling time Tsch decreases with port speed C, but increases with P. For example, in a non-pipelined CRRD matching scheme, if C=40 Gbits/second, Tsch=12.8 ns. With such a timing constraint, it is difficult to implement round-robin arbiters that support a large number of ports (N) in hardware, using available CMOS technologies. On the other hand, the improvement of the present invention can expand Tsch by increasing P. Accordingly, when C=40 Gbits/second and P=4, Tsch becomes 51.2 ns. As can be appreciated from this example, such pipelining expands the allowable scheduling time for dispatching, so that faster port speeds can be supported, even as N increases.
Oki, Eiji, Chao, Hung-Hsiang Jonathan, Rojas-Cessa, Roberto
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
5367520, | Nov 25 1992 | TTI Inventions A LLC | Method and system for routing cells in an ATM switch |
5495474, | Mar 29 1991 | International Business Machines Corp. | Switch-based microchannel planar apparatus |
5495476, | Jan 26 1995 | International Business Machines Corporation; IBM Corporation | Parallel algorithm to set up benes switch; trading bandwidth for set up time |
5689506, | Jan 16 1996 | THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT | Multicast routing in multistage networks |
5889775, | Aug 07 1995 | THALES AVIONICS, INC | Multi-stage switch |
6061330, | Mar 15 1996 | Telefonaktiebolaget LM Ericsson | Flow and congestion control in packet switched networks |
6072772, | Jan 12 1998 | Extreme Networks, Inc | Method for providing bandwidth and delay guarantees in a crossbar switch with speedup |
6078585, | Mar 20 1995 | Fujitsu Limited | Multistage connection switch and extension method |
6125112, | Mar 23 1998 | Hewlett Packard Enterprise Development LP | Non-buffered, non-blocking multistage ATM switch |
6141323, | Jun 03 1996 | Whittaker Corporation | Closed loop congestion control using a queue measurement system |
6154459, | Jul 11 1997 | Telefonaktiebolaget LM Ericsson | Data shaper for ATM traffic |
6157643, | Nov 06 1996 | Nokia Telecommunications Oy | Switching fabric |
6285679, | Aug 22 1997 | FUTUREWEI TECHNOLOGIES, INC , DBA HUAWEI TECHNOLOGIES USA | Methods and apparatus for event-driven routing |
6295295, | Nov 27 1995 | Telefonaktiebolaget LM Ericsson | Scheduler for an information packet switch |
6324165, | Sep 05 1997 | Ciena Corporation | Large capacity, multiclass core ATM switch architecture |
6473428, | Dec 31 1998 | RPX CLEARINGHOUSE LLC | Multi-threaded, multi-cast switch |
6477169, | May 14 1999 | AVAYA MANAGEMENT L P | Multicast and unicast scheduling for a network device |
6563837, | Feb 10 1998 | Extreme Networks, Inc | Method and apparatus for providing work-conserving properties in a non-blocking switch with limited speedup independent of switch size |
6625121, | Apr 28 1999 | Cisco Technology, Inc. | Dynamically delisting and relisting multicast destinations in a network switching node |
6657959, | Jun 27 1998 | Micron Technology, Inc | Systems and methods for implementing ABR with guaranteed MCR |
6661773, | Jun 07 1999 | Intel Corporation | Method for detection of stale cells following route changes in a data communication |
6687225, | Nov 10 1998 | Fujitsu Limited | Bandwidth control apparatus |
6725267, | May 31 2000 | Prediwave Corporation | Prefetched data in a digital broadcast system |
6747971, | Apr 20 1999 | Cisco Technology, Inc | Crosspoint switch with independent schedulers |
6795442, | Apr 23 1998 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | System and method for scheduling message transmission and processing in a digital data network |
6810031, | Feb 29 2000 | CELOX NETWORKS, INC | Method and device for distributing bandwidth |
6816487, | Jul 20 2000 | CIENA LUXEMBOURG S A R L ; Ciena Corporation | Mapping of high bandwidth connections in a multi-stage switch |
6940851, | Nov 20 2000 | Intellectual Ventures Holding 19, LLC | Scheduling the dispatch of cells in non-empty virtual output queues of multistage switches using a pipelined arbitration scheme |
6959002, | May 01 2001 | MICROSEMI STORAGE SOLUTIONS US , INC | Traffic manager for network switch port |
6977935, | Oct 02 2000 | Juniper Networks, Inc | Two-dimensional pipelined scheduling technique |
6987732, | Dec 15 2000 | TELECOM HOLDING PARENT LLC | Apparatus and methods for scheduling packets in a broadband data stream |
6999413, | Nov 13 2000 | Hitachi, Ltd. | Packet switching apparatus |
7006514, | May 31 2001 | Intellectual Ventures Holding 19, LLC | Pipelined maximal-sized matching cell dispatch scheduling |
7023840, | Feb 17 2001 | Alcatel | Multiserver scheduling system and method for a fast switching element |
7042883, | Jan 03 2001 | Juniper Networks, Inc | Pipeline scheduler with fairness and minimum bandwidth guarantee |
7046661, | Nov 20 2000 | Intellectual Ventures Holding 19, LLC | Scheduling the dispatch of cells in non-empty virtual output queues of multistage switches using a pipelined hierarchical arbitration scheme |
7065046, | Apr 06 2001 | Lucent Technologies, INC | Scalable weight-based terabit switch scheduling method |
7103056, | Nov 20 2000 | Intellectual Ventures Holding 19, LLC | Scheduling the dispatch of cells in multistage switches using a hierarchical arbitration scheme for matching non-empty virtual output queues of a module with outgoing links of the module |
7154885, | Dec 31 2001 | STMicroelectronics Ltd | Apparatus for switching data in high-speed networks and method of operation |
7158528, | Dec 15 2000 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Scheduler for a packet routing and switching system |
7173931, | Nov 20 2000 | Intellectual Ventures Holding 19, LLC | Scheduling the dispatch of cells in multistage switches |
7277428, | Feb 26 2003 | Lucent Technologies Inc.; Lucent Technologies, INC | Multiple stage cross connect switch |
7292576, | Aug 21 1998 | Nippon Telegraph and Telephone Corporation | ATM switch having output buffers |
7339935, | Aug 21 1998 | Nippon Telegraph and Telephone Corporation | ATM switch for distributing cells to avoid blocking in the ATM switch |
7492782, | Dec 27 2003 | Electronics and Telecommunications Research Institute | Scalable crossbar matrix switching apparatus and distributed scheduling method thereof |
7519065, | May 14 1999 | AVAYA MANAGEMENT L P | Multicast and unicast scheduling for a network device |
20010023469, | |||
20020061020, | |||
20020110134, | |||
20020131412, | |||
20020141427, | |||
20020176431, | |||
20020181483, | |||
20030007498, | |||
20030021266, | |||
20040081184, | |||
20040120321, | |||
20050053096, | |||
20050083939, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jun 13 2006 | Polytechnic University | Intellectual Ventures Holding 19, LLC | LICENSE SEE DOCUMENT FOR DETAILS | 022635 | /0518 | |
Sep 06 2007 | Polytechnic University | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Apr 19 2013 | REM: Maintenance Fee Reminder Mailed. |
Sep 06 2013 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Oct 21 2014 | ASPN: Payor Number Assigned. |
Date | Maintenance Schedule |
Aug 09 2014 | 4 years fee payment window open |
Feb 09 2015 | 6 months grace period start (w surcharge) |
Aug 09 2015 | patent expiry (for year 4) |
Aug 09 2017 | 2 years to revive unintentionally abandoned end. (for year 4) |
Aug 09 2018 | 8 years fee payment window open |
Feb 09 2019 | 6 months grace period start (w surcharge) |
Aug 09 2019 | patent expiry (for year 8) |
Aug 09 2021 | 2 years to revive unintentionally abandoned end. (for year 8) |
Aug 09 2022 | 12 years fee payment window open |
Feb 09 2023 | 6 months grace period start (w surcharge) |
Aug 09 2023 | patent expiry (for year 12) |
Aug 09 2025 | 2 years to revive unintentionally abandoned end. (for year 12) |