| Ref.: |
| |
SpaceWire Router |
| UserManual | |
Issue: | 3.4 | ||
User Manual | |||
Date: | 11th July 2008 | ||
|
|
|
8.3.2.4 Arbitration of packets with different priority (2)
In Figure
At stage one input ports 1 and 3 have packets with logical addresses 80 and 52 respectively, which are both to be routed to output port 5. Logical address 80 is high priority and 52 low priority. Input port 4 has just finished transferring a packet to output port 5.
At stage two the previous port selected by output port 5 was input port 4 therefore the high priority packet waiting at input port 1 which has logical address 80 is selected and its packet transferred to output port5. In the meantime a packet with high priority logical address 80 arrives at input port 4.
At stage three the packet from input port 1 has been forwarded and the packet with HIGH priority at input port 4 is selected by the routing control logic as the next packet to be routed to output port 5. In the meantime a packet with low priority logical address 52 arrives at input port 4.
At stage number four the high priority packet from input port 4 has been forwarded and the routing control logic arbitrates again for access to output port 5. There are no high priority packets waiting to use output port 5 so the low priority packets that are waiting are considered. The previous low priority packet that was routed through output port 5 was from input port 1, therefore the next packet selected by the routing control logic is the one from input port 3.
At stage number five the packet from input port 3 has completed and the low priority packet waiting at input port 1 gets its chance to access output port 5 and is forwarded.
Note that low priority packets will not be routed until there are no more high priority packets waiting to be routed to the same output port. Therefore, in the situation when there is a high volume of high priority traffic coming from multiple ports, a low priority packet could never get the chance to be routed. This low priority packet would never timeout even when timeout is enabled, thus blocking the link indefinitely. If the tail of this packet goes through another
Preliminary | 90 |