Concurrent Round-Robin Dispatching Scheme

THE CONTINUOUS ROUND-ROBIN DISPATCHING SWITCH 265 Fig. 10.8 CRRD switch with virtual output queues in the input modules. The first stage consists of k IMs, each of which is n = m. The second stage consists of m bufferless CMs, each of which is k = k. The third stage consists of k OMs, each of which is m = n. Ž . w x Ž . IM i has nk VOQs to eliminate HOL blocking 10 . VOQ i, ® stores cells Ž . Ž . Ž . that go from IM i to OP j, h at OM j , where ® s hk q j. A VOQ can receive, at most, n cells from n IPs in each cell time slot. The HOL cell in Ž . each VOQ can be selected for transmission across the switch through CM r in each time slot. This ensures that cells are transmitted from the same VOQ in sequence. Ž . Ž . Ž . IM i has m output links. An output link L i, r , is connected to CM r . i Ž . Ž . CM r has k output links, denoted as L r, j , and it is connected to k c Ž . OMs, denoted as OM j . Ž . Ž . OM j has n output ports, denoted as OP j, h , and has an output buffer. Each output buffer receives at most m cells in one time slot, and each output port of an OM forwards one cell in a FIFO manner to the output line.

10.4.2 Concurrent Round-Robin Dispatching Scheme

Figure 10.9 illustrates the detailed CRRD algorithm. To determine the Ž . Ž . matching between a request from VOQ i, ® and the output link L i, r , i Ž . CRRD adopts an iterative matching within IM i . An IM has m output link arbiters, each of which is associated with each output link, and each VOQ has a VOQ arbiter as shown in Figure 10.9. CLOS-NETWORK SWITCHES 266 Fig. 10.9 CRRD scheme. We consider two phases for dispatching from the first stage to the second stage. In phase 1, at most m VOQs are selected as candidates, and the selected VOQ is assigned to an IM output link. A request that is associated with this output link is sent from IM to CM. This matching between VOQs and output links is performed only within the IM. In phase 2, each selected VOQ that is associated with each IM output link sends a request from IM to CM. CMs respond with the arbitration results to IMs so that the matching between IMs and CMs can be done. 䢇 Phase 1: Matching within an IM 䢇 First iteration 䢇 Step 1: Each nonempty VOQ sends a request to every output link Ž . arbiter, each of which is associated with L i, r , where 0 F i F i k y 1 and 0 F r F m y 1. 䢇 Ž . Step 2: Each output link L i, r , where 0 F i F k y 1 and 0 F r F i m y 1, independently seeks a request among nk nonempty VOQs. Ž . Each output link arbiter associated with L i, r has its own pointer i Ž . P i, r , where 0 F i F k y 1 and 0 F r F m y 1. The output link L Ž . arbiter seeks one nonempty VOQ request from the P i, r in a RR L fashion. Each output link arbiter sends the grant to a requesting Ž . VOQ. Each VOQ has its own RR arbiter and one pointer P i, ® , V where 0 F ® F nk y 1, to choose one output link. The VOQ arbiter seeks one grant among several grants that are given by the output Ž . link arbiters from the position of P i, ® . V 䢇 Ž . Step 3: The VOQ that chooses one output link L i, r by using the i RR arbiter sends the grant to the selected output link. Note that THE CONTINUOUS ROUND-ROBIN DISPATCHING SWITCH 267 Ž . the pointer P i, r that is associated with each output link and the L Ž . pointer P i, ® that is associated with each VOQ are updated to V one position after the granted position, but only if they are matched and the request is also granted by the CM in phase 2. 䢇 Ž . ith iteration i 1 䢇 Step 1: Each unmatched VOQ at the previous iterations sends a request to all the output link arbiters again. 䢇 Steps 2 and 3: Follow the same procedure as in the first iteration. Phase 2: Matching Between IM and CM 䢇 Ž . Step 1: After phase 1 is completed, output link L i, r sends the i request to the CM. Then contention control in the CM is performed. Ž . Ž . CM r has k pointers P r, j , where 0 F r F m y 1 and 0 F j F c Ž . k y 1, each of which corresponds to each OM j . The CM makes its Ž . arbitration using the pointer P r, j in a RR fashion, and sends the c Ž . Ž . Ž . grants to L i, r of IM i . The pointer P r, j is updated when the i c CM sends the grant to the IM. 䢇 Step 2: If the IM receives the grant from the CM, it sends a corre- sponding cell from that VOQ in the next time slot. Otherwise, the IM will not send a cell in the next time slot. The request that is not granted from the CM will be dispatched again at the next time slot, because the pointers that are related to the ungranted requests are not updated. The CRRD algorithm has to be completed within one time slot to provide the matching result in every time slot. Figure 10.9 shows an example with n s m s k s 3, where CRRD is Ž . Ž . operated at the first iteration in phase 1. At step 1, VOQ i, 0 , VOQ i, 3 , Ž . Ž . VOQ i, 4 , and VOQ i, 6 , which are nonempty VOQs, send requests to all the output link arbiters. At step 2, output link arbiters associated with Ž . Ž . Ž . Ž . Ž . Ž . L i, 0 , L i, 1 , and L i, 2 , select VOQ i, 0 , VOQ i, 0 , and VOQ i, 3 , i i i Ž . respectively, according to their pointers’ positions. At step 3, VOQ i, 0 Ž . Ž . receives two grants from both output link arbiters of L i, 0 and L i, 1 , i i Ž . selects L i, 0 by using its own VOQ arbiter, and sends a grant to the output i Ž . Ž . link arbiter of L i, 0 . Since VOQ i, 3 receives one grant from an output i Ž . link arbiter L i, 2 , it sends a grant to the output link arbiter. With one i Ž . iteration, L i, 1 cannot be matched with any nonempty VOQs. At the next i Ž . iteration, the matching between unmatched nonempty VOQs and L i, 1 will i be performed.

10.4.3 Desynchronization Effect of CRRD