ASIM team
LIP6 Laboratory Paris, France |
The user can specify a prioritary ordered set of output links for each interval. The priority handling is made by an arbitration tree whose functionality is described below.
Only 7 bits of the 8-bits prioritary configuration register are actually used to specify the ordered list of output links.
bit number | bit value | highest priority output selected |
1 | ||
1 | ||
1 | 3,2 | |
1 | 1 | 0,1 |
2 | 3 | |
2 | 1 | 2 |
3 | 4,5,6,7 | |
3 | 1 | 0,1,2,3 |
4 | 5 | |
4 | 1 | 4 |
5 | 6,7 | |
5 | 1 | 4,5 |
6 | 7 | |
6 | 1 | 6 |
This arbitration tree does not allow all the 8! possible orders of outputs but only 27.
Application :
If we refer to the previous tables 5.1, 5.2 and figure
9.1, a packet whose header is 2403 will be routed towards output link 7 if it is
available. Effectively, 2403 belongs to interval 0 whose possible outputs are 7,6,3,1,0 and the
highest priority is 3.
Let's describe how do we get this.
The binary tree is used to order a set of output links associated to an interval. If a
priority register associated to the interval contains the value xxxx1000, the ordering of the
eventual allowed output links would be:
3 > 2 > 1 > 0 > 4,5,6,7.
This means that if output 3 is allowed (i.e specified in the selection register), it
have the highest priority and it will be chosen unless it is busy. If it's the case, the next one
is output 2. If this output 2 is allowed, it is taken. And so on.
Let consider a header whose value is 2403 (decimal). If you refer to routing table
5.1, you can see the bounds values (also given in decimal) which divide the address
space into 8 intervals. 2403 belongs to the interval [501,2570[ i.e interval 0.
Now refer to the selection table 5.2. You can see that the output links
associated to interval 0 are : 7,6,3,1,0.
Now we have to determine which is the priority output. Refer to the figure 9.1. The priority register value for interval 0 is x1101100.
Now we will detail how the order is found.
In our example bit 3 is set to 1 so we can say now that:
link 0,1,2,3 > 4,5,6,7 where ">" means higher priority and "," means no ordering
yet.
bit 1 is set to 0 and bit 5 is set to 1 so: link 2,3 > 0,1 > 4,5 >
6,7.
Finally bit 0 is set to 0, bit 2 is set to 1, bit 4 is set to 0 and
bit 6 is set to 1.
These four values lead to the following order: 2 > 3 > 1 > 0 > 5 > 4
> 6 > 7.
Since output 2 is not allowed, the next highest priority allowed output is 3.
Server design A. Fenyö
mpc@mpc.lip6.fr - contact people About this Web Site $Date: 1998/02/14 17:06:25 $ |
Copyright © 1997-1998 UPMC/LIP6
All rights reserved |