Knockout Switch
- To reach the lower half of all the outputs
[ON/2 , ...
ON ]
,
a cell must be routed down in the first stage.
- To reach the lowest quarter
[O3N/4 , ...
ON ]
,
a cell must be routed down in the second stage as well.
- And so on for each stage.
Therefore, self routing can be implemented by putting the output
port number (in binary format) into the cell header and
routing the cells bit by bit.
Example:
From I1 to O6
(6 = 110(2), 1 = route down, 0 = route up)
- This self-routing is a particular type of "source routing",
in which the address of the
destination determines the actual route through the switch.
- It is a simple local control mechanism which ensures high speed routing.
Motivation: Consider several options for the internal
switch fabric of an N x N crossbar switch.
Option 0
Low speed fabric, no buffering
- Big problem: Cell loss up to 36% (at high load, even with i.i.d. input).
- Low Cost.
Option 1
Low speed fabric, a lot of buffers.
- Cost goes up because of buffering.
- Cell loss goes down, depending on the size of input buffer.
Option 2
High speed output buses, buffering at each output
- Lower cost and lower loss with only N buffers.
- But higher cost for high speed links.
Option 3
Parallel low speed output buses
- Single buffers (multiplexors) to store packets from each output
line and forward one by one. It will be very expensive to
implement an "N-to-1" MUX for N very large.
- Large number of internal lines.
To remove problem of high loss, we must pay the price of technology somewhere.
Compromise: Knockout Switch
Combine option 0 with option 3:
Use L-Selectors to select L outputs from N inputs.
- L = 1 becomes Option 0. High Loss.
- L = N becomes Option 3. High Cost.
Pick L between 1 and N for a balance between cost and cell loss.
We will show later that if L = 20, then even for very large N
we have Total Loss < 1 x 10^-12. Thus, the Knockout Switch architecture
will provide very low loss at low cost.