next up previous
Next: 3.3.3 Output blocks that Up: 3.3 On-line reconfiguration Previous: 3.3.1 Blocks with too

3.3.2 Input blocks count awake switches in output blocks

Now the erasure algorithm must determine, for each splitter, whether its output blocks contain too many faults, and it must inform each input switch if either of the two output blocks must be erased.

In order to count the number of faulty switches in the output blocks, the switches in each input block organize themselves into trees. Suppose that some switch r in a block of size M remains awake for tex2html_wrap_inline1003 steps. We call r a ruler. Each ruler attempts to form a depth- tex2html_wrap_inline1007 breadth-first spanning tree of the working switches that it can reach with itself as the root. If r were the only ruler, then the number of steps required to form the spanning tree would be at most tex2html_wrap_inline1011 . However, since each ruler simultaneously attempts to form a spanning tree, there will be conflicts when the trees overlap. To resolve these conflicts, we will assume that each switch in the block possesses a distinct label. Each time a switch is added to a spanning tree, it is given the label of the spanning tree's ruler. If several trees attempt to add the same switch, then the one with the smallest label succeeds, even if the switch must be removed from another tree. Since the growth of the spanning tree with the smallest label is unimpeded by the other spanning trees, after tex2html_wrap_inline1013 steps, it will contain at least tex2html_wrap_inline1015 switches.

Next, in tex2html_wrap_inline1017 steps, each ruler counts the number of switches in its spanning tree. If the total is at least tex2html_wrap_inline1019 , then it broadcasts a message to the switches in the tree, telling them that they belong to a large tree.

Now each large tree makes an underestimate of the number of switches that are awake in the upper and lower output blocks. In order to perform this task, a third set of edges is added to the graph. For each input switch, tex2html_wrap_inline1021 edges are added to switches in both the upper and lower output blocks of outputs at the next level. The edges are inserted at random so that each set of tex2html_wrap_inline1023 switches in a block of size M has at least tex2html_wrap_inline1027 neighbors in both the upper and lower blocks, where tex2html_wrap_inline1029 . These edges increase the VLSI layout area of the network by at most a constant factor. We will choose tex2html_wrap_inline1031 so that a tree of size tex2html_wrap_inline1033 will have at least tex2html_wrap_inline1035 neighbors in each output block, and we will choose tex2html_wrap_inline1037 to be large so that tex2html_wrap_inline1039 . In tex2html_wrap_inline1041 steps, each large tree sums up the number of different switches in the upper output block that are awake and have a neighbor in the tree. It then does the same for the lower output block.



next up previous
Next: 3.3.3 Output blocks that Up: 3.3 On-line reconfiguration Previous: 3.3.1 Blocks with too



Bruce Maggs
Mon Jul 22 19:56:03 EDT 1996