VOQ-Based Matching Increasing Scheduling Efficiency

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.