ASIM team
LIP6 Laboratory
Paris, France

next up previous contents
Next: About this document ... Up: No Title Previous: South Face

Annexe.1

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.


 
Figure 9.1: Arbitration tree  

Only 7 bits of the 8-bits prioritary configuration register are actually used to specify the ordered list of output links.

 
Figure 9.1: Arbitration tree  
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.


 
Table 9.9: Example of priority register value  
interval priority out 7 out 6 out 5 out 4 out 3 out 2 out 1 out 0
number configuration prio prio prio prio prio prio prio prio
  register value rank rank rank rank rank rank rank rank
  x1101100 8 7 5 6 2 1 3 4
1 x0001011 5 6 7 8 3 4 1 2
2 x0000000 1 2 3 4 5 6 7 8
3 x0010000 1 2 4 3 5 6 7 8
4 x1101101 8 7 5 6 2 1 4 3
5 x0001000 5 6 7 8 1 2 3 4
6 x0011000 5 6 8 7 1 2 3 4
7 x1000101 2 1 3 4 6 5 8 7


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.


next up previous contents
Next: About this document ... Up: No Title Previous: South Face

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