Post on 05-Jan-2016
Submitting:Eli Cohen 032076515Barak Pinhas 037584042Hana Sender 034366666
Crossbar-based SwitchesIn order to allow a router to receive several packets from different sources to different outputs, a simple design was suggested:Each input (source) will be able to connect to each output (destination). A control mechanism will decide which input will be connected to which output (according to the input’s request).
Input
Output
Matching Algorithms
Each algo. is evaluated by four parameters:1. Latency.2. Starvation free.3. Fast.4. Implementation.
3. iSLIP – Iterative Serial-Line IP2. RRM – Round-Robin Matching1. PIM - Parallel Iterative Matching
We will discuss three different matching algo.:
When no new matching can be found, the algorithm stops.
3. Accept - If an input receives a grant, it accepts one by selecting an output randomly among those that granted to this output..
2. Grant - If an unmatched output receives any requests, it grants to one by randomly selecting a request uniformly over all requests.
1. Request - Each unmatched input sends a request to every output for which it has a queued cell.
PIM - Parallel Iterative Matching
The basic matching algorithm. Each iteration of the algorithm follows these three steps:
RRM – Round-Robin Matching
The pointer gi to the highest priority element of the round-robin schedule is incremented (modulo N) to one location beyond the granted input.
2. Grant - If an output receives any requests, it chooses the one that appears next in a fixed, round-robin schedule starting from the highest priority element. The output notifies each input whether or not its request was granted.
1. Request - Each unmatched input sends a request to every output for which it has a queued cell.
g2
g4
g1a1
a3
a4
1
23
4
1
23
4
1
23
41
23
4
1
23
4
1
23
4
RRM – Round-Robin Matching
The pointer ai to the highest priority element of the round-robin schedule is incremented (modulo N) to one location beyond the accepted output.
3. Accept - If an input receives a grant, it accepts the one that appears next in a fixed, round-robin schedule starting from the highest priority element.
The pointer gi to the highest priority element of the round-robin schedule is incremented (modulo N) to one location beyond the granted input.
2. Grant - If an output receives any requests, it chooses the one that appears next in a fixed, round-robin schedule starting from the highest priority element. The output notifies each input whether or not its request was granted.
1. Request - Each unmatched input sends a request to every output for which it has a queued cell.
a1
a3
a4
1
23
4
1
23
4
1
23
41
23
4
1
23
4
1
23
4
g2
g4
g1
RRM – Round-Robin Matching
The pointer ai to the highest priority element of the round-robin schedule is incremented (modulo N) to one location beyond the accepted output.
3. Accept - If an input receives a grant, it accepts the one that appears next in a fixed, round-robin schedule starting from the highest priority element.
The pointer gi to the highest priority element of the round-robin schedule is incremented (modulo N) to one location beyond the granted input.
2. Grant - If an output receives any requests, it chooses the one that appears next in a fixed, round-robin schedule starting from the highest priority element. The output notifies each input whether or not its request was granted.
1. Request - Each unmatched input sends a request to every output for which it has a queued cell.
a1
a3
a4
1
23
4
1
23
4
1
23
41
23
4
1
23
4
1
23
4
g2
g4
g1
RRM – Round-Robin Matching
g2
g3
g1a1
a2
a3
12
3
12
3
12
312
3
12
3
12
3
First cycle
The RRM is not starvation free:In the following example, we assume there are always cells waiting to be transferred. The destination is always the same.
RRM – Round-Robin Matching
g2
g3
g1
a1
a2
a3
12
3
12
3
12
312
3
12
3
12
3
First cycle
The RRM is not starvation free:In the following example, we assume there are always cells waiting to be transferred. The destination is always the same.
RRM – Round-Robin Matching
g2
g3
g1
a1
a2
a3
12
3
12
3
12
312
3
12
3
12
3
First cycle
The RRM is not starvation free:In the following example, we assume there are always cells waiting to be transferred. The destination is always the same.
RRM – Round-Robin Matching
g2
g3
g1
a1
a2
a3
12
3
12
3
12
312
3
12
3
12
3
First cycle
The RRM is not starvation free:In the following example, we assume there are always cells waiting to be transferred. The destination is always the same.
RRM – Round-Robin Matching
g2
g3
g1
a1
a2
a3
12
3
12
3
12
312
3
12
3
12
3
First cycle
The RRM is not starvation free:In the following example, we assume there are always cells waiting to be transferred. The destination is always the same.
RRM – Round-Robin Matching
g2
g3
g1
a1
a2
a3
12
3
12
3
12
312
3
12
3
12
3
Second cycle
The RRM is not starvation free:In the following example, we assume there are always cells waiting to be transferred. The destination is always the same.
RRM – Round-Robin Matching
g2
g3
g1
a1
a2
a3
12
3
12
3
12
312
3
12
3
12
3
Second cycle
The RRM is not starvation free:In the following example, we assume there are always cells waiting to be transferred. The destination is always the same.
RRM – Round-Robin MatchingThe RRM is not starvation free:In the following example, we assume there are always cells waiting to be transferred. The destination is always the same.
g2
g3
g1
a1
a2
a3
12
3
12
3
12
312
3
12
3
12
3
Second cycle
At this point the sequence of the events will repeat itself:Outputs 1 and 3 will always grant input 1, while output 2 will always grant input 1 at the first iteration of the first cycle, but input 1 will select output 1 indefinitely, leaving output 2 to grant either input 2 or input 3.Thus the cell from input 1 to output 2 will never be granted.In order to solve this starvation the iSlip algorithm was developed.
iSLIP – Iterative Serial-Line IP2. Grant - If an output receives any requests, it chooses the one that appears next in a fixed, round-robin schedule starting from the highest priority element. The output notifies each input whether or not its request was granted.
g2
g4
g1a1
a3
a4
1
23
4
1
23
4
1
23
41
23
4
1
23
4
1
23
4
The pointer gi to the highest priority element of the round-robin schedule is incremented (modulo N) to one location beyond the granted input if and only if the grant is accepted in Step 3 of the first iteration.
iSLIP – Iterative Serial-Line IP
The pointer gi to the highest priority element of the round-robin schedule is incremented (modulo N) to one location beyond the granted input if and only if the grant is accepted in Step 3 of the first iteration.
2. Grant - If an output receives any requests, it chooses the one that appears next in a fixed, round-robin schedule starting from the highest priority element. The output notifies each input whether or not its request was granted.
g2
g4
g1
1
23
4
1
23
4
1
23
41
23
4
1
23
4
1
23
4
a1
a3
a4
iSLIP – Iterative Serial-Line IPThe iSlip algorithm prioritizes the requests by not advancing the grant pointer, unless the grant was accepted in the first iteration, thus preventing synchronization of the output arbiters.The outcome of this change is the prevention of the starvation presented before.
And now...
Latency
The differences between the RRM and the iSlip are minor, although the standard deviation is in favor for the iSlip algorithm.
The PIM is clearly the worst of the three when latency is discussed.
Starvation Free
The RRM is not completely starvation free, although the starvation is very rare.The iSlip is starvation free.
The PIM is not starvation free, since both input and output controls select the matching randomly.
fast
The RRM and the iSlip have queues to manage, which makes the matching a little slower although the difference is minor
The fastness of the PIM depends upon the random function only.
Implementation
The RRM and the iSlip are a little harder to implement, but the difference (once more) is minor.
The PIM is allegedly the easiest to implement, but sometimes a good random function is hard to implement.