Parallel Iterative Matching PIM Iterative Round-Robin Matching iRRM

INPUT-BUFFERED SWITCHES 58 input i q 1 has the highest priority to be granted access in the next round. If input i q 1 is idle in the next round, then input i q 2 has the highest priority, and so on so forth. In some simple approaches, only essential information is exchanged be- tween inputs and outputs: an input informs an output whether it has a cell for the output, and an output tells whether that cell is granted access. Some additional parameters, such as priority and timestamp, can be used to enhance the arbitration efficiency.

3.3.1 Parallel Iterative Matching PIM

w x The PIM scheme 2 uses random selection to solve the contention in inputs and outputs. Input cells are first queued in VOQs. Each iteration consists of three steps. All inputs and outputs are initially unmatched, and only those inputs and outputs that are not matched at the end of an iteration will be eligible to participate in the next matching iteration. The three steps in each iteration operate in parallel on each input and output as follows: 1. Each unmatched input sends a request to every output for which it has a queued cell. 2. If an unmatched output receives multiple requests, it grants one by randomly selecting a request over all requests. Each request has equal probability to be granted. 3. If an input receives multiple grants, it accepts one by randomly selecting an output among them. It has been shown that, on average, 75 of the remaining grants will be Ž . matched in each iteration. Thus, the algorithm converges at O log N itera- tions. Because of the random selection, it is not necessary to store the port number granted in the previous iteration. However, implementing a random function at high speed may be too expensive. Ž . Fig. 3.7 An example of parallel iterative matching. L x, y s z means that there are z cells on the VOQ from input x to output y. SCHEDULING ALGORITHMS 59 Ž . Fig. 3.8 An example of iRRM same input cell distribution as in PIM . INPUT-BUFFERED SWITCHES 60 Figure 3.7 shows how PIM works. Under uniform traffic, PIM achieves 63 and 100 throughput for 1 and N iterations, respectively.

3.3.2 Iterative Round-Robin Matching iRRM

w x The iRRM scheme 23 works similarly to PIM, but uses the round-robin schedulers instead of random selection at both inputs and outputs. Each arbiter maintains a pointer pointing at the port that has the highest priority. Such a pointer is called the accept pointer a at input i or the grant pointer g i j at output j. The algorithm is run as follows: 1. Each unmatched input 3 sends a request to every output for which it has a queued cell. 2. If an unmatched output receives any requests, it chooses the one that appears next in a round-robin schedule, starting from the highest-prior- ity element. The output notifies each input whether or not its request Ž . was granted. The pointer g is incremented modulo N to one location i beyond the granted input. 3. If an input receives a multiple grant, it accepts the one that appears next in its round-robin schedule, starting from the highest-priority Ž . element. Similarly, the pointer a is incremented modulo N to one j location beyond the accepted output. An example is shown in Figure 3.8. In this example, we assume that the Ž . initial value of each grant pointer is input 1 e.g., g s 1 . Similarly, each i Ž . accept pointer is initially pointing to output 1 e.g., a s 1 . During step 1, j the inputs request transmission to all outputs that they have a cell destined for. In step 2, among all received requests, each grant arbiter selects the requesting input that is nearest to the one currently pointed to. Output 1 chooses input 1, output 2 chooses input 1, output 3 has no requests, and output 4 chooses input 3. Then, each grant pointer moves one position beyond the selected one. In this case, g s 2, g s 2, g s 1, and g s 4. In 1 2 3 4 step 3, each accept pointer decides which grant is accepted, as the grant pointers did. In this example, input 1 accepts output 1, and input 3 accepts output 4, then a s 2, a s 1, a s 1, and a s 1. Notice that the pointer a 1 2 3 4 3 accepted the grant issued by output 4, so the pointer returns to position 1.

3.3.3 Iterative Round-Robin with SLIP i SLIP