Basic Architecture Distributed and Random Arbitration

THE ATLANTA SWITCH 261 In the following, we describe the operation of the MSM switch fabric with reference to the specific 40 = 40 configuration shown in Figure 10.6. The operation of configurations of other sizes can be easily inferred from this discussion.

10.3.1 Basic Architecture

The MSM configuration is based on three main principles: 䢇 By using buffers in the first stage to store cells that cannot be routed to the output buffers at a given time, the number of paths necessary for nonblocking behavior can be greatly reduced. 䢇 By using a bufferless center stage, cells belonging to the same virtual circuit can be routed individually without affecting the cell sequence. 䢇 By using selective backpressure from the output buffers to the input buffers, buffers can be located where it is most economical. Under these design principles in the ATLANTA switch, a memory switch is used to implement the switching modules in the first and the third stages, while crossbars are implemented in the second stage. Each module in the first and third stages must be connected to all crossbars. All interconnection lines between adjacent stages have the same rate as the input and output ports. To realize nonblocking in the MSM configuration, it is well known that its internal capacity must be higher than the aggregate capacity of the input ports. We call this expansion. The required expansion is achieved by connect- ing fewer than eight ports to each input and output module. In the 40 = 40 configuration of Figure 10.6, five ports are connected to each edge module Ž . for an expansion factor of 5 : 8. The expansion ratio is 1.6 s 8r5 . Each module in the first stage maintains 40 groups of queues; each group corre- sponds to one of the output ports in the switch. Each module in the third stage manages a number of groups equal to the number of ports connected to Ž . that module in this case five .

10.3.2 Distributed and Random Arbitration

In order to minimize the required expansion, an efficient routing algorithm is necessary to route cells from the input to the output modules. Intuitively, the idea is that the fabric is nonblocking as long as the equivalent service capacity Ži.e., the maximum switching capacity provided by the expansion and the . routing algorithm in the input queues is higher than the aggregate input capacity of those queues. A practical constraint for such a system to be cost-effective is that the routing algorithm must be fully distributed and independently run by each input module. Below is the novel concurrent dispatching algorithm that is used in the ATLANTA architecture. CLOS-NETWORK SWITCHES 262 The concurrent dispatching works as follows. In each time slot, each input module in the first stage selects up to eight cells to be served in that time slot. The selection process over the 40 groups of queues uses a two-level weighted-round-robin mechanism. 1 Once the cells are selected, each input module sends up to eight bids to the crossbars, one for each crossbar. A bid contains the desired destination and service priority of one of the selected cells. Since there is no coordination among the input modules, a crossbar can receive more than one bid at a time for the same output module. In case of conflict between two or more bids, the crossbar selects one as the winning bid. In selecting the winning bid, and generally in determining whether a bid is successful or not, the crossbar takes into account whether or not the specific queue in the output module requested by each bid has available Ž buffer space the third-stage modules continuously send backpressure infor- mation to the crossbars informing them of the availability of buffers for each . queue , and never declares successful a bid that requests a queue with no available buffer space. Then the crossbar sends a feedback signal to the input modules, informing each module whether or not the bid was successful, and in the latter case whether the bid was unsuccessful because of lost contention in the crossbar or because of selective backpressure from the output modules. If the bid was successful, in the following time slot the input module transmits the corresponding cell through the crossbar; in the same time slot, the input module also selects another cell and initiates a new bidding process for it on that crossbar. If the bid was unsuccessful because of lost contention in the crossbar, the input module again sends that same bid to the crossbar in the following time slot. If the bid was unsuccessful because of backpressure from the output modules, the input module selects a different cell from the the buffer and initiates a bidding process for it in the following time slot.

10.3.3 Multicasting