Scheduling the dispatch of cells in multistage switches
First Claim
1. A method for use in a multi-stage switch including a plurality of central modules, and a plurality of input modules, each including virtual output queues and outgoing links coupled with each of the plurality of central modules, for scheduling the dispatch of cells stored in the virtual output queues, the method comprising:
- a) matching a non-empty virtual output queue of an input module with an outgoing link in the input module; and
b) matching the outgoing link with an outgoing link of one of the central modules, wherein high switch throughput can be achieved without speedup of the central modules.
3 Assignments
0 Petitions
Accused Products
Abstract
A multiple phase cell dispatch scheme, in which each phase uses a simple and fair (e.g., round robin) arbitration methods, is described. VOQs of an input module and outgoing links of the input module are matched in a first phase. An outgoing link of an input module is matched with an outgoing link of a central module in a second phase. The arbiters become desynchronized under stable conditions which contributes to the switch'"'"'s high throughput characteristic. Using this dispatch scheme, a scalable multiple-stage switch able to operate at high throughput, without needing to resort to speeding up the switching fabric and without needing to use buffers in the second stage, is possible. The cost of speed-up and the cell out-of-sequence problems that may occur when buffers are used in the second stage are therefore avoided.
-
Citations
34 Claims
-
1. A method for use in a multi-stage switch including
a plurality of central modules, and a plurality of input modules, each including virtual output queues and outgoing links coupled with each of the plurality of central modules, for scheduling the dispatch of cells stored in the virtual output queues, the method comprising: -
a) matching a non-empty virtual output queue of an input module with an outgoing link in the input module; and
b) matching the outgoing link with an outgoing link of one of the central modules, wherein high switch throughput can be achieved without speedup of the central modules. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for use in a multi-stage switch including
a plurality of central modules, and a plurality of input modules, each including virtual output queues and outgoing links coupled with each of the plurality of central modules, for matching a non-empty virtual output queue of an input module with an outgoing link in the input module, the method comprising: -
a) broadcasting a request for the non-empty virtual output queue to an arbiter for each of the outgoing links of the input module;
b) selecting, with the arbiter 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 for the selected non-empty virtual output queue; and
d) selecting, with the arbiter of the selected non-empty virtual output queue, an outgoing link from among the one or more outgoing links that sent a grant. - View Dependent Claims (12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33)
-
-
17. A combination for use in a multi-stage switch, the combination comprising:
-
a) a plurality of central modules, each including outgoing links towards output modules including a plurality of output ports;
b) a plurality of input modules, each including i) virtual output queues, and ii) outgoing links coupled with each of the plurality of central modules; and
c) means for matching a non-empty virtual output queue of the input module with an outgoing link in the input module; and
d) means for matching the outgoing link of the input module with an outgoing link of one of the central modules, wherein high switch throughput can be achieved without speedup of the central modules
-
-
27. An input module for use a multi-stage switch including a plurality of central modules, the input module comprising:
-
a) virtual output queues;
b) outgoing links coupled with each of the plurality of central modules; and
c) means for matching a non-empty virtual output queue of an input module with an outgoing link in the input module, the means for matching including i) 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, ii) for each of the outgoing links of the input module, an arbiter for selecting a non-empty virtual output queue that broadcast a request, iii) means for sending a grant to an arbiter for the selected non-empty virtual output queue, and iv) for the selected non-empty virtual output queue, an arbiter for selecting an outgoing link from among the one or more outgoing links that sent a grant.
-
-
34. A machine readable medium having stored thereon information comprising:
-
a) a sequence of virtual output queue identifiers, each having an associated indicator indicating whether or not a request was received from the associated virtual output queue;
b) a first pointer pointing to one of the sequence of virtual output queue identifiers;
c) a sequence of outgoing link identifiers, each having an associated indicator indicating whether or not a grant was received from an associated outgoing link; and
d) a second pointer pointing to one of the sequence of outgoing link identifiers.
-
Specification