METHOD FOR IMPROVING PERFORMANCE
55 TABLE 3.1
The Maximum Throughput Achievable with Input Queuing for Various Switch Sizes N and Window Sizes w
Window Size w N
1 2
3 4
5 6
7 8
2 0.75
0.84 0.89
0.92 0.93
0.94 0.95
0.96 4
0.66 0.76
0.81 0.85
0.87 0.89
0.91 0.92
8 0.62
0.72 0.78
0.82 0.85
0.87 0.88
0.89 16
0.60 0.71
0.77 0.81
0.84 0.86
0.87 0.88
32 0.59
0.70 0.76
0.80 0.83
0.85 0.87
0.88 64
0.59 0.70
0.76 0.80
0.83 0.85
0.86 0.88
128 0.59
0.70 0.76
0.80 0.83
0.85 0.86
0.88
Fig. 3.4 Virtual output queue at the input ports.
3.2.2.2 VOQ-Based Matching
Another way to alleviate the HOL block- ing in input-buffered switches is for every input to provide a single and
separate FIFO for each output. Such a FIFO is called a virtual output queue Ž
. VOQ , as shown in Figure 3.4. For example, VOQ
stores cells arriving at
i, j
input port i and destined for output port j. With virtual output queuing, an input may have cells granted access by
more than one output. Since each input can transfer only one cell in a time slot, the others have to wait, and their corresponding outputs will be idle.
This inefficiency can be alleviated if the algorithm runs iteratively. In more intelligent schemes, matching methods can be applied to have the optimal
scheduling. Three matching methods are introduced:
maximal matching, maximum matching, and stable matching.
INPUT-BUFFERED SWITCHES
56
Fig. 3.5 A maximum matching and a maximal matching. Dotted lines represent the
request pairs not in the matching.
A maximum matching is one that matches the maximum number of inputs and outputs, while a maximal matching is a matching where no more matches
can be made without modifying the existing matches. See Figure 3.5 for an example.
The definition of stable matching assumes there is a priority list for each input and for each output. An input priority list includes all the cells queued
at the input, while an output priority list concerns all the cells destined for Ž
. the output although some of them are still waiting at inputs . A matching is
said to be stable if for each cell c waiting in an input queue, one of the following conditions holds:
1. Cell c is part of the matching, i.e., c will be transferred from the input side to the output side during this phase.
2. A cell that is ahead of c in its input priority list is part of the matching. 3. A cell that is ahead of c in its output priority list is part of the
matching. Conditions 2 and 3 may be simultaneously satisfied, but condition 1
excludes the other two. Figure 3.6 illustrates how the matching algorithm w
x works for a 3 = 3 switch 32 . The letter in each cell denotes the output port
where the cell should be forwarded, while the number denotes its order in the preference list of that output. The light arrows indicate the requests
made by outputs, while the dark arrows represent the requests granted by inputs. During the first iterations each output asks for its most preferred cell
w Ž .x
enqueued at the inputs see Figure 3.6 a . In turn, input 2 grants the only
SCHEDULING ALGORITHMS
57
Fig. 3.6 Example to illustrate a stable matching for a 3 = 3 switch.
request it receives to output c, while input 1 grants the request corresponding Ž
. to its most preferred cell i.e. the request issued by output a for cell a.1 .
Thus, after the first iteration, outputs a and c are matched to their most preferred cells. During the next iteration, the unmatched output port b
2
w Ž .x
requests its most preferred cell from input 3 see Figure 3.6 b . As a result, input 3 grants the output b’s request and the matching completes. Figure
Ž . 3.6 d shows the switch’s state after cells are transferred according to the
resulting matching.
3.3 SCHEDULING ALGORITHMS
The arbitration process of a switch decides which cells at input buffers will be transferred to outputs. In the distributed manner, each output has its own
arbiter, and operating independently from the others. An arbitration scheme decides which information should be passed from inputs to arbiters, and
based on that information, how each output arbiter picks one among all input cells destined for the output.
An arbitration scheme is essentially a service discipline that arranges the service order among the input cells. We have three basic arbitration ap-
proaches: random selection, FIFO, and round-robin. In random selection, a cell is randomly selected among those cells. The FIFO arbitration picks the
oldest cell. The slightly more complicated round-robin scheme is widely used because of its fairness. Inputs are numbered, say from 1 to N. Each output
arbiter memorizes the last input that is granted access, say input i. Then
2
Note that since output b was rejected in the first iteration by input 1, it does not longer consider this input in the current iteration.