Scalable routing scheme for a multi-path interconnection fabric
First Claim
1. A method of sending a message in an interconnection fabric, wherein the interconnection fabric couples together a plurality of nodes, wherein each node of the plurality of nodes comprises a plurality of input ports and a plurality of output ports, comprising:
- identifying a route in the interconnection fabric for sending the message from a sending node to a destination node;
encoding a routing directive in the message, wherein the routing directive describes the route and comprises at least one segment, wherein each segment comprises a direction component and a distance component;
sending the message on one of the output ports of the sending node;
receiving the message on one of the input ports of a first node connected to the output port of the sending node;
decrementing the distance component for a current segment of the routing directive;
selecting one of the output ports of the first node according to the current segment of the routing directive in the message; and
sending the message on the selected one of the output ports of the first node.
4 Assignments
0 Petitions
Accused Products
Abstract
Various embodiments of a scalable routing system for use in an interconnection fabric are disclosed. In this routing scheme, a routing directive describes a route in the interconnection fabric between a sending node and a destination node. Either the sending node or a sending device connected to the sending node encodes the routing directive in a message to be sent to the destination node. The routing directive may include a variable number of segments. Each segment includes a distance component and a direction component that tell each node along the route how it should send the message. Generally, each distance component describes a distance in the interconnection fabric while each direction component specifies a direction in the interconnection fabric.
-
Citations
52 Claims
-
1. A method of sending a message in an interconnection fabric, wherein the interconnection fabric couples together a plurality of nodes, wherein each node of the plurality of nodes comprises a plurality of input ports and a plurality of output ports, comprising:
-
identifying a route in the interconnection fabric for sending the message from a sending node to a destination node;
encoding a routing directive in the message, wherein the routing directive describes the route and comprises at least one segment, wherein each segment comprises a direction component and a distance component;
sending the message on one of the output ports of the sending node;
receiving the message on one of the input ports of a first node connected to the output port of the sending node;
decrementing the distance component for a current segment of the routing directive;
selecting one of the output ports of the first node according to the current segment of the routing directive in the message; and
sending the message on the selected one of the output ports of the first node. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A node, comprising:
-
a routing unit;
a plurality of input ports; and
a plurality of output ports;
wherein the node is configured to be connected to an interconnection fabric, wherein the interconnection fabric is configured to connect the node to a plurality of nodes;
wherein the routing unit is configured to receive a message being sent along a route from a sending node to a destination node in the interconnection fabric;
wherein the routing unit is further configured to receive a routing directive encoded in the message, wherein the routing directive describes the route and comprises at least one segment, and wherein a segment comprises a direction component and a distance component; and
wherein the node is configured to receive the message on one of the input ports when the node is not the sending node, wherein the node is further configured to decrement the distance component of a current segment of the routing directive and to select one of the output ports according to the current segment. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52)
-
-
39. A device, comprising:
-
an interface configured to communicate with a source node in an interconnection fabric, wherein the interconnection fabric comprises a plurality of routes between the source node and a destination node; and
a controller configured to provide a first routing directive describing a first route from the source node to the destination node, wherein the routing directive comprises at least one segment, wherein each segment comprises a distance component and a direction component, wherein the distance component is configured to be decremented by a receiving node;
and wherein the controller is further configured to encode the first routing directive in a message, and to communicate the message to the source node to be sent on the interconnection fabric to the destination node.
-
Specification