Age-based network arbitration system and method
AssigneeSilicon Graphics, Inc.
InventorsRandal S. Passint, Gregory M. Thorson, Timothy Stremcha
Life of this patent
Estimating the term…
Abstract
In a multiprocessor system having a plurality of nodes connected to a network, wherein communication between the plurality of nodes is in the form of packets, a system and method of aging packets. A packet having an age value is built and transmitted through the network. The age value is increased at predetermined intervals, wherein increasing includes determining a current age of the packet and changing the interval as a function of the current age. A method of avoiding livelock and a method of preaging response packets is also described.
Claims24
In a multiprocessor system having a plurality of nodes connected to a network, wherein communication between the plurality of nodes is in the form of packets, a method of aging packets, comprising:
- building a packet having an age value;
- transmitting the packet through the network;
- and
- increasing the age value at predetermined intervals, wherein increasing includes determining a current age of the packet and changing the interval as a function of the current age, wherein changing the interval as a function of the current age includes:
- creating a plurality of age ranges;
- classifying the current age into one of the plurality of age ranges;
- and
- setting the interval as a function of the age range into which the current age is classified.
A method of aging packets within an age-based arbitration system, comprising:
- building a packet having an age field, wherein the age field contains an age value;
- transmitting the packet through a first router, wherein transmitting includes routing the packet through a port;
- determining a first predetermined interval;
- adding a first value to the age value after the first predetermined interval;
- transmitting the packet through a second router, wherein transmitting includes routing the packet through a port;
- determining a second predetermined interval, wherein the first and second predetermined intervals are not equal;
- and
- adding a second value to the age value after the second predetermined interval.
A method of aging packets within an age-based arbitration system, comprising:
- building a packet having an age field, wherein the age field contains an age value;
- transmitting the packet through a first router, wherein transmitting includes routing the packet through a port;
- determining a first predetermined interval;
- adding a first value to the age value after the first predetermined interval;
- transmitting the packet through a second router, wherein transmitting includes routing the packet through a port;
- determining a second predetermined interval, wherein the first and second predetermined intervals are not equal;
- and
- adding a second value to the age value after the second predetermined interval;
- wherein determining a first predetermined interval includes:
- classifying the age value into a first range of said plurality of ranges;
- associating the first range with a first bit of a free running counter;
- and
- beginning a new first predetermined interval each time the first bit toggles.
A method of aging packets within an age-based arbitration system, comprising:
- building a packet having an age field, wherein the age field contains an age value;
- transmitting the packet through a first router, wherein transmitting includes routing the packet through a port;
- determining a first predetermined interval;
- adding a first value to the age value after the first predetermined interval;
- transmitting the packet through a second router, wherein transmitting includes routing the packet through a port;
- determining a second predetermined interval, wherein the first and second predetermined intervals are not equal;
- and
- adding a second value to the age value after the second predetermined interval;
- wherein the first and second values equal one.
In a multiprocessor system having a plurality of nodes connected by a network, wherein communication between the plurality of nodes is in the form of packets routed through a router, wherein the router includes a plurality of ports, a method of routing packets through the plurality of ports, comprising:
- building a plurality of packets, wherein each packet has an age value;
- setting the age value within each packet to a constant;
- adding a value to the age value at predetermined intervals, wherein adding a value to the aging value includes determining a current age of the packet and changing the interval as a function of the current age;
- queuing packets in the router;
- transmitting one of the queued packets through one of the plurality of ports, wherein transmitting includes:
- examining the age value of queued packets to determine an oldest packet;
- and
- routing the oldest packet to a port.
In a multiprocessor system having a plurality of nodes connected by a network, wherein communication between the plurality of nodes is in the form of packets routed through a router, wherein the router includes a plurality of input ports and a plurality of output ports, a method of routing packets through the plurality of output ports, comprising:
- receiving packets at each of the plurality of input ports, wherein each packet has an age value;
- adding a value to the age value at predetermined intervals;
- transmitting one or more of the packets to output ports, wherein transmitting includes examining the age value of packets to determine an oldest packet and routing the oldest packet through one of the plurality of output ports;
- wherein routing the oldest packet includes:
- determining if a packet arriving through a first input port and a packet arriving through a second input port have equivalent ages;
- and
- if a packet arriving through a first port and a packet arriving through a second port have equivalent ages, determining the packet to be routed as a function of the port through which it arrived, wherein determining the packet to be routed as a function of the port through which it arrived includes applying a rotating priority to each port.
In a multiprocessor system having a plurality of nodes connected by a network, wherein the plurality of nodes includes a first node and a second node, wherein each node includes a response age register and a plurality of ports connected to a network, wherein the response age register includes a response age value, wherein communication between the plurality of nodes is in the form of packets, wherein each packet has,a source node field, a destination node field and an age field and wherein each age field contains an aging value, a method of routing packets through the plurality of ports, comprising:
- generating a request packet at the first node, wherein generating includes loading a first node identifier representative of the first node in the source node field;
- loading a second node identifier representative of the second node in the destination node field and setting the aging value to a constant;
- adding a value to the aging value at predetermined intervals;
- routing the request packet through a plurality of nodes to the second node, wherein routing includes resolving port conflicts through age-based arbitration;
- generating a response packet, wherein generating includes loading a first node identifier representative of the first node in the destination node field;
- loading a second node identifier representative of the second node in the source node field and setting the aging value to the response age value stored in the second node's response age register.
Dependencies are inferred from the claim text.