Nova Patents
CA2227271C

Multiple level minimum logic network

Abstract

A network or interconnect structure utilizes a data flow technique that is based on timing and positioning of messages communicating through the interconnect structure. Switching control is distributed throughout multiple nodes in the structure so that a supervisory controller providing a global control function and complex logic structures are avoided. The interconnect structure operates as a "deflection" or "hot potato" system in which processing and storage overhead at each node is minimized. Elimination of a global controller and buffering at the nodes greatly reduces the amount of control and logic structures in the interconnect structure, simplifying overall control components and network interconnect components and improving speed performance of message communication.

CA2227271C, drawing sheet 1
Sheet 1 of 40

Term

Term ended

Expired 19 July 2016, 10.2 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

2 claims: 2 independent, 0 dependent

  1. 1
    CA 02227271 2002-02-22 70128-353 CLAIMS :1. A method of transmitting a message from a node N to a target destination in a first, a second and a third dimension of three dimensions in an interconnect structure arranged as a plurality of nodes in a topology of the three dimensions, the method comprising: determining whether a node en route to the target destination in the second and third dimensions and advancing one level toward the destination level of the first dimension is blocked by another message;advancing the message one level toward the destination level of the first dimension when the en route node is not blocked;moving the message in the second and third dimensions along a constant level in the first dimension otherwise;specifying the first dimension to describe a plurality of levels, the second dimension to describe a plurality of nodes spanning a cross-section of a level, and the third dimension to describe a plurality of nodes in the cross-section of a level;sending a control signal from a node on the level of the en route node to the node N in the first dimension, the control signal specifying whether the node en route is blocked;timing transmission of a message using a global clock specifying timing intervals to keep integral time modulus the number of nodes in a cross-section of a level;CA 02227271 2002-02-22 70128-353 Λ setting a first time interval a for moving the message in the second and third dimensions;setting a second time interval a - β for advancing the message one level toward the destination level, the global clock specifying a global time interval equal to the second time interval, the first time interval being smaller than the global time interval;and setting a third time interval for sending the control signal from the node on the level of the en route node to the node N, the third time interval being equal to β. 2. A method according to Claim 1, further comprising: timing the message moving and advancing steps so that the messages enter node N on level q at times having the form na + ςβ;and timing the control signal sending step so that the control signals enter node N on level q at times having the form na + ςβ so long as the node en route is not blocked. 3. A method according to Claim 1, further comprising: timing transmission of a message using a global clock;setting a first time interval for moving the message in the second and third dimensions;setting a second time interval for advancing the message one level toward the destination level in the first dimension;CA 02227271 2002-02-22 70128-353 specifying the first dimension to describe a plurality of levels, the second dimension to describe a plurality of nodes spanning a cross-section of a level, and the third dimension to describe a plurality of nodes in the cross-section of a level;specifying timing interval of the global clock to keep integral time modulus the number of nodes in a crosssection of a level, the global clock time interval being equal to the second time interval and the first time interval being smaller than the global time interval. 4. A method according to Claim 1 further comprising: defining a header and a payload in the message;encoding the destination in the second dimension in the header;determining whether a potentially en route node is en route to the target destination including the steps of: comparing the encoded destination in the second dimension to an encoded position of the potentially en route node in a single-bit comparison of the level-specific, single-bit destination code and the single-bit position code;resolving that the potentially en route node is en route when the encoded destination is the same as the encoded position of the potentially en route node, encoding the destination in the third dimension in the header in a plurality of single-bit codes, the singlebit codes relating to a level of the third dimension;CA 02227271 2002-02-22 70128-353 encoding the position of the potentially en route node in a single-bit code;and discarding the level-specific, single-bit destination code in the header as the message advances one level. 5. A method according to Claim 1 further comprising: on a level T of the first dimension, spanning one ring in 2T passes through the nodes in the second dimension so that 2T nodes in the third dimension designate one ring;and interconnecting the three dimensional interconnect structure so that advancing of levels from a start level to the destination level of the first dimension furnishes access to all nodes in a ring. 6. A method according to Claim 1 wherein a message injected into the interconnect structure at a node N(J, ql, zl) and targeted to exit the interconnect structure at a node N(0, q2, z2) and injected at a time (q2 - ql)modK * a + J causes the message to arrive at node N(0, q2, z2) at time 0. 7. A communication interconnect structure for transmitting messages, comprising: a plurality of nodes arranged in a structure including: a hierarchy of levels from a source level to a destination level;a plurality of nodes spanning a cross-section of a level;and CA 02227271 2002-02-22 70128-353 a plurality of nodes in a cross-section span, the level of a node being determined entirely by the position of the node in the structure;a plurality of interconnect lines coupling the nodes in the structure including for a node N on a level L: a message input interconnect line coupled to a node on a previous level L+l;a message input interconnect line coupled to a node on the level L;a message output interconnect line coupled to a node on the level L;a message output interconnect line coupled to a node X on a subsequent level L-l;a control input interconnect line coupled to the message output interconnect line of a node distinct from the node X on the level L-l;and a switch coupled to receive a message on the control input interconnect line and, in accordance with the message, to selectively transmit a message without buffering on the message output interconnect line coupled to the subsequent level L-l node or on the message output interconnect line coupled to the level L. 8. An interconnect structure according to Claim 7, further comprising: a control output interconnect line coupled to a control input terminal of the node on the previous level L+l;CA 02227271 2002-02-22 70128-353 a switch for determining that a message is blocking the node N and communicating via the control input interconnect line informing whether the node N is blocked;a global clock generating timing signals, the timing signals in discrete time steps of an integral time modulus the number of nodes on a level timing a message transmission time of a message transmitted from a level to a subsequent level and for timing a control signal transmission time of a control signal from a subsequent level to a level so that the control signal arrives first at a node;a control output interconnect line coupled to a control input terminal of the node on the previous level L+l;and a switch for determining that a message is blocking the node N and communicating via the control input interconnect line informing whether the node N is blocked. 9. A method of communicating messages in an interconnect structure comprising: arranging a plurality of nodes in a structure including a plurality of hierarchical levels from a source level to a destination level, the level of a node being determined entirely by the position of the node in the structure, a plurality of nodes spanning a cross-section of a level and a plurality of nodes in a cross-section span, the nodes having an input connection on the same level, an input connection on a previous level, an output connection on the same level and an output connection on a subsequent level;CA 02227271 2002-02-22 70128-353 specifying a destination node in the destination level for receiving a message;originating the message at a node in the source level;communicating a message from node to node including: determining at a node whether a node X on a subsequent level is directed toward the destination node;determining at a node whether the node on the subsequent level is blocked by another message, the determination being based on a control signal from a node distinct from the node X;advancing the message to the node on the subsequent level when the node is directed toward the destination node and a node is unblocked;and otherwise traversing the message to a node on the same level. 10. A method according to Claim 9 wherein determining whether a node on a subsequent level is directed toward the destination node further comprises: encoding the destination node in a message in the header field;encoding a designation of node position for the nodes at the levels;and determining that the node on the subsequent level is directed toward the destination node when the destination CA 02227271 2002-02-22 70128-353 node encoding and the node position designation encoding correspond. 11. A communication interconnect structure comprising: a plurality of nodes;and a plurality of interconnect lines coupling the nodes, a node X of the plurality of nodes having: a message input interconnect line coupled to a node A distinct from the node X;and a message input interconnect line coupled to a node B distinct from the node A and the node X, the node X accepting a message input from the node A and a message input from the node B with a control· interconnect line being coupled between the node A and the node B for communicating a control signal determining a priority relationship between conflicting messages, the control signal enforcing the priority relationship between the sending of a message from the node A to the node X and the sending of a message from the node B to the node X. 12. An interconnect apparatus, comprising: a plurality of nodes;and a plurality of interconnect lines in an interconnect structure selectively coupling the nodes in a hierarchical multiple level structure arranged to include: a plurality of J+l levels in an hierarchy of levels arranged from a lowest destination level Lq to a highest level Lj which is farthest from the lowest destination level Lg# the level of a node being determined CA 02227271 2002-02-22 7Q128-353 entirely by the position of the node in the structure, the interconnect structure transmitting a message M in a plurality of discrete time steps, the message M moving in a time step and the interconnect structure having interconnections to move the message M in one of three ways in the time step including: the message M enters a node in the interconnect structure from a device external to the interconnect structure;the message M exits the interconnect structure to a designated output buffer;and the message M either moves from a node U on a level Ljc to a different node V on the same level Ljç or moves from the node U to a node W on a level where k is greater than i so that the level Li is closer to the destination level Lq than the level L^, and the node U uses a control signal from a source distinct from the node V and the node W to determine where to send the message M. 13. An interconnect apparatus according to Claim 12, wherein the interconnect structure is self-routing. 14. An interconnect apparatus according to Claim 12, wherein a node on the level L^ has a plurality of interconnections including: a direct data input interconnection from a node on the level L^;a direct data output interconnection to a node on the level L^;CA 02227271 2002-02-22 70128-353 a direct data input interconnection from a node Ncm on the level Lm where m is greater than k so that the level Lm is farther from the destination level Lg than the level L^;and a direct data output interconnection to either a device Dg external to the interconnect structure or a node Ngj_ on the level Lj_ where k is greater than i so that the level is closer to the destination level Lg than the level L^. 15. An interconnect apparatus according to Claim 12, wherein a node on the level has a plurality of interconnections including : a direct data input interconnection from a node Νβ]ζ on the level L^;a direct data output interconnection to a node on the level L^;a direct data input interconnection from a device Dq external to the interconnect structure;and a direct data output interconnection to either a device Dg external to the interconnect structure or a node Ngj_ on the level Lj_ where k is greater than i so that the level Lj_ is closer to the destination level Lg than the level Lfc. 16. An interconnect apparatus according to Claim 12, wherein : CA 02227271 2002-02-22 70128-353 the plurality of nodes are arranged into a plurality of node groups in which all of the nodes of a given group Gm are on the same level and each node of the plurality of nodes is included in only one group of the plurality of groups;and a node N^ in the group Gm on the level has a plurality of interconnections including: a direct data input interconnection from a node in the group Gm on the level L^;and a direct data output interconnection to a node Ng^ in the group Gm on the level L^. 17. An interconnect apparatus according to Claim 12, wherein: the plurality of nodes are arranged into a plurality of mutually exclusive node groups including a group Gg and a group Gy in which all of the nodes of the group G(j are on the same level and all of the nodes of the group Gy are on the same level Lf;and if a node Np of the group Gg has an interconnect path for sending a message to a node Nq of the group Gy, then all nodes of the group Gg have interconnect paths for sending a message to a node of the group Gy. 18. An interconnect apparatus according to Claim 12, wherein: the plurality of nodes are arranged into a plurality of mutually exclusive node groups including a group Gg and a group Gy in which all of the nodes of the CA 02227271 2002-02-22 70128-353 group Gy are on the same level and all of the nodes of the group Gy are on the same level L^;and if an interconnect path exists for sending a message from a node of the group Gg to a node of the group Gy, and the group Gg includes a node Np and the group Gy includes a node Ng, then the interconnect structure includes an interconnect path for sending a message from the node Np to the node Ng. 19. An interconnect apparatus according to Claim 12, wherein: the plurality of nodes are arranged into a plurality of mutually exclusive node groups including a group Gy and a group Gy in which all of the nodes of the group Gg are on the same level and all of the nodes of the group Gy are on the same level L^;and if one node in the group Gg has an interconnect path for sending a message to a node in the group Gy, then all nodes in the group Gg have interconnect paths for sending messages to a node in the group Gy. 20. An interconnect apparatus according to Claim 12, wherein: a node Ng has a direct input interconnection from a node N^ in the interconnect structure and a direct input interconnection from a device G external to the interconnect structure;and the direct input interconnection from the node N^ has precedence over the direct input interconnection from CA 02227271 2002-02-22 70128-353 the external device G so that every message directed from the node N^ to the node Nq successfully moves from the node N^ to the node Nq. 21. An interconnect apparatus according to Claim 12, wherein: a node Νβ on the level Lj_ has a direct input interconnection from a node N^ also on the level Lj_ and a direct input interconnection from a node Ng on the level L^;and the direct input interconnection from the node N^ has precedence over the direct input interconnection from the node Ng so that every message directed from the node to the node Nq successfully moves from the node N^ to the node Nq. 22. An interconnect apparatus according to Claim 12, wherein the interconnect structure: carries messages and control signals;and includes a node N^ including: a direct message input interconnection for receiving a message having a header;a direct control input interconnection for receiving a control signal C&;a plurality of direct message output interconnections to a respective plurality of subsequent nodes for directing the message and CA 02227271 2002-02-22 70128-353 a control logic responsive to the control signal CA and the header of the message MA for determining a node of the plurality of subsequent nodes to direct the message MA. 23. An interconnect apparatus according to Claim 12, wherein the interconnect structure: carries messages and control signals;includes a node Np including: a direct message input interconnection for receiving a message Mg from a device G external to the interconnect structure;and a direct message input interconnection for receiving a message MA from a node NA;and the node NA has a control logic setting a precedence of the direct message input interconnection from the node NA to the node Np over the direct message input interconnection from the device G to the node Np so that, in a discrete time step, if the device G holds the message Mg for entry to the interconnect structure to the node Np and the node NA has the message MA directed to the node Np, then, in the discrete time step, the message MA is successfully sent from the node NA to the node Np and the message Mg is blocked from transmission to the node Np. 24. An interconnect apparatus according to Claim 12, wherein the interconnect structure: carries messages and control signals;CA 02227271 2002-02-22 70128-353 includes a node Np including: a direct message input interconnection for receiving a message Mg from a device G external to the interconnect structure;and a direct message input interconnection for receiving a message MA from a node NA;and the device G has a control logic and direct control input interconnection coupled to the control logic for receiving a control signal Cg from the node NA, the control signal Cg enforcing a precedence of the direct message input interconnection from the node NA to the node Np over the direct message input interconnection from the device G to the node Np so that, in a discrete time step, if the device G holds the message Mg for entry to the interconnect structure to the node Np and the node NA has the message MA directed to the node Np, then, in the discrete time step, the message MA is successfully sent from node na to node Np and the control logic receives the control signal Cg designating a blocking condition and, responsive to the control signal Cg blocking condition, the control logic blocks transmission of the message Mg to the node Np. 25. An interconnect apparatus according to Claim 12, wherein the interconnect structure : carries messages and control signals;includes a node Np including: CA 02227271 2002-02-22 70128-353 f a direct message input interconnection for receiving a message Mg from a device G external to the interconnect structure;and a direct message input interconnection for receiving a message M^ from a node N^;and the device G has a control logic and direct control input interconnection coupled to the control logic for receiving a control signal Cg from the node N^, the control signal Cg enforcing a precedence of the direct message input interconnection from the node to the node Ng over the direct message input interconnection from the device G to the node Nq so that, in a discrete time step, if the device G holds the message Mg for entry to the interconnect structure to the node Nd and the node Nj\ has no message directed to the node Nd, then, in the discrete time step, the control logic does not receive the control signal Cg designating a blocking condition and, responsive to the absence of the control signal Cg blocking condition, the control logic transmits the message Mg to the node Nd, wherein in the discrete time step: the node N^ is idle, or the node includes a control logic that: (1) directs the message M^ to a node Ng distinct from the node Nq;and (2) sends the control signal Cg designating the absence of the blocking condition. CA 02227271 2002-02-22 70128-353 26. An interconnect apparatus according to Claim 12, wherein the interconnect structure: carries messages and control signals;includes a node Np including: a direct message input interconnection for receiving a message M^ from a node N^;and a direct message input interconnection for receiving a message Mp from a node Np;and the node N^ has a control logic and a direct control input interconnection for receiving a control signal C^ from the node Np, the control signal C^ enforcing a precedence of the direct message input interconnection from the node Np to the node Np over the direct message input interconnection from the node N^ to the node Np so that, in a discrete time step, if the message is present at the node N^ and the node Np has the message Mp directed to the node Np, then, in the discrete time step, the message Mp is successfully sent from node Np to node Np and the control logic receives the control signal designating a blocking condition and, responsive to the control signal C^ blocking condition, the control logic blocks transmission of the message M^ to the node Np and directs the message to a node Np distinct from the node Np. 27. An interconnect apparatus according to Claim 12, wherein the interconnect structure: carries messages and control signals;CA 02227271 2002-02-22 7Q128-353 includes a node Ng including: a direct message input interconnection for receiving a message M^ from a node N^, the message M^ having a header;and a direct message input interconnection for receiving a message Mp from a node Np;and the node N^ has a control logic and a direct control input interconnection for receiving a control signal C^ from the node Np, the control signal enforcing a precedence of the direct message input interconnection from the node Np to the node Np over the direct message input interconnection from the node N^ to the node Np so that, in a discrete time step, if the message is present at the node N^ and the node Np has no message Mp directed to the node Np, then, in the discrete time step, the control logic does not receive the control signal designating a blocking condition and, responsive to the absence of the control signal blocking condition, the control logic uses the header of the message Mj\ to determine a preferred device for transmitting the message M^ and if the preferred device is the node Np, then the message M^ is sent to the node Np. 28. An interconnect apparatus according to Claim 27, wherein: in the discrete time step the node Np is idle. 29. An interconnect apparatus according to Claim 27, wherein: CA 02227271 2002-02-22 70128-353 in the discrete time step the node Np includes a control logic that: (1) directs the message Mp to a device distinct from the node Np;and (2) sends the control signal designating the absence of the blocking condition. 30. An interconnect apparatus according to Claim 27, wherein: a message Mp is present at the node Np, the message Mp having a header designating one or more target output buffers;if the node Np has an interconnect path to a node of the plurality of nodes N connected to a target output buffer designated by the message Mp, then the control logic of the node N^ directs the message to the node Np;and otherwise the control logic of the node N^ directs the message M^ to a node Np on the level Ιψ. 31. An interconnect apparatus according to Claim 12, further comprising : a node N^ on the level having a direct data output interconnection to a node Np on the level L-[, the node Np having an interconnect path to a node Np that is connected to an output buffer wherein: if a message M^ is present at the node N& and has a header designating the output buffer as a target output CA 02227271 2002-02-22 70128-353 buffer, and the message MA is not blocked from transmission to the node Ng;then a message Mg that is directed to the node Ng is sent directly to the node Ng;and otherwise the message is sent directly to a node Ng on the level L^. 32. An interconnect apparatus according to Claim 12, further comprising : a node N^ on the level L^, the node including a control logic that utilizes a header information of a message present at the node Njx to ascertain: whether a direct interconnect exists from the node Njx to a node belonging to a group Gy at the level Lj_ such that an interconnect path exists from a node in the group Gy to a node Νβ that is connected to an output buffer designated as a target output buffer by the message and whether an unblocked node exists in the group Gy;the control logic sending the message to a node of the group Gy if the direct interconnect and the unblocked node exist, and sending the message M^ to a node on the level Ljç otherwise. 33. An interconnect apparatus according to Claim 12, wherein: the interconnect structure transmits messages through the interconnect structure in discrete time steps;CA 02227271 2002-02-22 70128-353 the interconnect structure is coupled to one or more output buffers 0^, the message M having a header that designates target output buffers of the one or more output buffers to receive the message M;a selected output buffer of the plurality of output buffers being coupled to a plurality of output target devices and the selected output buffer including a plurality of buffer portions corresponding to and reserved for usage by respective devices of the plurality of output target devices, the message M being allocated to the buffer portions based on a position and a time of insertion into the interconnect structure of the message M^ and the discrete time step timing of transmission of the message M. 34. An interconnect apparatus comprising: a plurality of nodes;and a plurality of interconnect lines selectively coupling the nodes in an interconnect structure transmitting a message M in a plurality of discrete time steps, in which: a node Ny has a direct input interconnection from a node N^ in the interconnect structure and a direct input interconnection from a device G external to the interconnect structure;and the direct input interconnection from the node N^ has precedence over the direct input interconnection from the external device G so that a message Mj\ directed from the node N^ to the node Ny in the same time step as a message Mg directed from the external device G to the node Ny CA 02227271 2002-02-22 70128-353 successfully moves from the node N& to the node Νθ and the message Mq is deflected, wherein: the node distinct from the node Νρ has a direct control· interconnection to the device G external to the interconnect structure, the control interconnection for sending a message blocking command. 35. An interconnect apparatus, comprising : a plurality of nodes;and a plurality of interconnect lines selectively coupling the nodes in a hierarchical multiple level structure with the level of a node being determined entirely by the position of the node in the structure in which data moves only unilaterally from a source level to a destination level or laterally along a level of the multiple level structure, a data message being transmitted through the multiple level structure from a source node to a designated destination node, a level of the multiple levels including: one or more groups of nodes, the data message being transmitted to a group of the one or more groups of nodes that is en route to the destination node, a group of the one or more groups including: a plurality of nodes, the data message being transmitted to a node N of the plurality of nodes of a group unilaterally toward the destination level if the node is not blocked and otherwise the data message being transmitted laterally if the node is blocked, a node that transmits unilaterally to the node N being advised of a possible blocking condition at the node N by a node distinct from the node N. CA 02227271 2002-02-22 70128-353 36. An interconnect apparatus according to Claim 35, comprising: a plurality of interconnect lines selectively coupling the nodes in a hierarchical multiple level structure in which control signals move unilaterally from nodes on a level of the multiple levels to nodes on an adjacent sourceward level, the control signals designating whether an en route node is blocked or not blocked. 37. An interconnect apparatus according to Claim 35, wherein: an en route node on a level receives a data message transmitted laterally along the same level with precedence over a data message transmitted unilaterally from a node on an adjacent sourceward level, the en route node enforcing the precedence by transmitting a control signal to a node on the adjacent sourceward level indicating that the en route node is blocked. 38. An interconnect apparatus according to Claim 35, wherein: an en route node on a level receives a data message transmitted laterally along the same level with precedence over a data message transmitted unilaterally from a node on an adjacent sourceward level. 39. A method of moving messages M through an interconnect structure including a plurality of nodes N and a plurality of interconnect lines L to a plurality of output buffers B, the method comprising: selectively coupling the plurality of nodes N via the plurality of interconnect lines L so that an CA 02227271 2002-02-22 70128-353 interconnect line L(p,q) carries data directly from a node p to a node q;determining for a message M a set of nodes O(M) so that the output buffers B that are targets of the message M are connected to the set of nodes O(M);if the message M is located at the node p at a time t then at the time t, moving the message M on an interconnect line L(p,w) so that at time t+1, the message M is located at a node w, where the node w and the node p are different nodes;if the message M is located at the node p at the time t and the shortest path from the node p to a node of the set of nodes O(M) includes traversal of H interconnect lines L so that the node p is H hops from the nodes O(M), determining an interconnect line L(p,q) so that the shortest path from the node q to a node of the set of nodes O(M) includes traversal of H-l interconnect lines L so that the node q is H-l hops from the nodes O(M);if at time t, the message M is not blocked from using the interconnect line L(p,q) by a control signal originating from a node other than the node q, then at time t, sending the message M on the interconnect line L(p,q) so that at time t+1, the message M is located at the node q;and if at time t, the message M is blocked from using the interconnect line L(p,q) by a control signal originating from a node other than the node q, then at time t, sending the message M on an interconnect line L(p,r), where the node r and the node p are different nodes and the node r and the node q are different nodes, then at time t+1, sending the CA 02227271 2002-02-22 70128-353 message M on the interconnect line L(r,s), where the node s and the node p are different nodes, the node s and the node q are different nodes, the node s and the node r are different nodes, and the shortest path from the node s to a node of the plurality of nodes 0(M) includes traversal of no more than H interconnect lines L so that the node s is no more than H hops from the nodes O(M). 40. A network communicating messages in a sequence of discrete time steps, the network comprising: a plurality of nodes, the nodes including communication devices that receive messages and send messages;and a plurality of interconnect lines L interconnecting communication devices at the plurality of nodes, a node N of the plurality of nodes including: a connection to an interconnect line Lg^ for transmitting a message from a device U to the node N;a connection to an interconnect line Ly^ for transmitting a message from a device V to the node N;the network having a precedence relationship Pn(U,V) relating to the node N and the devices U and V such that the device U has precedence over the device V in sending a message to the node N so that for a message Mg at the device U that is directed to the node N via the interconnect line Lg^ at a time step t and a message My at the device V that is directed to the node N via the interconnect line Ly^ also at a time step t, the message Mg is successfully sent to the node N and the node V uses a control signal from a node not capable of receiving a CA 02227271 2002-02-22 70128-353 message directly from the node V to decide where to send the message My. 41. A network according to Claim 40, further comprising: a node W of the plurality of nodes including: a connection to an interconnect line Ly^ for transmitting a message from a device V to the node W;the message My is deflected to the node W. 42. A method of moving messages M through an interconnect structure including a plurality of nodes N and a plurality of interconnect lines L to a plurality of output buffers B in a sequence of discrete time steps, the method comprising: selectively coupling the plurality of nodes N via the plurality of interconnect lines L so that an interconnect line L(p,q) carries data directly from a node p to a node q;determining for a message M a set of nodes O(M) so that the output buffers B that are selected to receive the message M are connected to the set of nodes O(M);if the message M is located at the node p at a time t then at the time t, moving the message M on an interconnect line L(p,w) so that at time t+1, the message M is located at a node w, where the node w and the node p are different nodes;if the message M is located at the node p at the time t and the shortest path from the node p to a node of CA 02227271 2002-02-22 70128-353 the set of nodes O(M) includes traversal of H interconnect lines L so that the node p is H hops from the nodes O(M), determining an interconnect line L(p,q) so that the shortest path from the node q to a node of the set of nodes O(M) includes traversal of H-l interconnect lines L so that the node q is H-l hops from the nodes 0(M);if at time t, the message M is not blocked from using the interconnect line L(p,q) by a control signal originating from a node other than the node q, then at time t, sending the message M on the interconnect line L(p,q) so that at time t+1 the message M is located at the node q;and if at time t, the message M is blocked from using the interconnect line L(p,q) by a control signal originating from a node other than the node q, then at time t, sending the message M on an interconnect line L(p,r), where the node r and the node p are different nodes and the node r and the node q are different nodes, and a path exists from the node r to the set of nodes O(M) that does not pass through the node p and traverses no more than H+l hops. 43. A method according to Claim 42, further comprising: at time t+1, sending the message M on the interconnect line L(r,s), where the node s and the node p are different nodes, the node s and the node q are different nodes, the node s and the node r are different nodes, and the shortest path from the node s to the node of the plurality of nodes 0(M) includes traversal of no more than H interconnect lines L. 44. A network comprising: a plurality of nodes N;and CA 02227271 2002-02-22 70128-353 a plurality of interconnect lines L connecting the plurality of nodes N in a predetermined pattern, the interconnect lines carrying messages M and control signals C, the messages M and control signals C being received by a node of the plurality of nodes at a discrete time step t and the messages M being moved to subsequent nodes of the plurality of nodes in an immediately subsequent discrete time step t+1, the plurality of interconnect lines L connecting the plurality of nodes N to include: a node NA having a message input interconnection for receiving a message MA, a control input interconnection for receiving a control signal CA, a direct message output interconnection to a node Np, a direct message output interconnection to a node Np, a direct control output interconnection to a device G, and a control logic for determining whether the message MA is sent to the node Np or the node Np based on: (1) the control signal CA from a source distinct from the node ND and the node Np;
  2. 2
    (2) a location of the node NA within the plurality of interconnect lines L; and (3) a routing information contained in the message MA; the device G being an external device or a node ng45. A network according to Claim 44, wherein:CA 02227271 2002-02-22 70128-353 the control signal CA is sent by a node Np that is distinct from the node NA, the device G, the node Np, and the node Np. 46. An interconnect apparatus comprising: a plurality of nodes N;and a plurality of interconnect lines L connecting the plurality of nodes N in a predetermined pattern, the plurality of interconnect lines L connecting the plurality of nodes N to include: a node NA having a direct message input interconnection for receiving a message MA and having a plurality of direct message output interconnections for transmitting the message MA to a plurality of nodes including a preferred node Np being most preferred for receiving the message MA, the preferred node Np being determined only by routing information in a header of the message MA and the position of the node NA within the plurality of interconnect lines L;the preferred node Np having a plurality of direct message input interconnections for receiving a message Mp from a plurality of nodes including a priority node Ng which has priority for sending a message to the preferred node Np, the priority node Np being determined by position of the node Np within the plurality of interconnect lines L so that : CA 02227271 2002-02-22 70128-353 if the node is the same as the node Νθ, then the message M^ is the message Mp and is sent from the node N^ to the node Np;and if the node N^ is not the same as the node Np and the node Np directs a message Mp to the node Np, then the message Mp is sent from the node Np to the node Np, and the node N^ uses a control signal to determine where to send the message M^, the control signal not originating from a node capable of receiving a message directly from the node N^. 47. A network capable of carrying a plurality of messages M concurrently comprising: a plurality of output ports P;a plurality of nodes N, the individual nodes N including a plurality of direct message input interconnections and a plurality of direct message output interconnections, the individual nodes N for passing messages M to predetermined output ports of the plurality of output ports P, the predetermined output ports P being designated by the messages M;and a plurality of interconnect lines in an interconnect structure selectively coupling the nodes in a hierarchical multiple level structure arranged to include a plurality of J+l levels in an hierarchy of levels arranged from a lowest destination level Lq to a highest level Lj which is farthest from the lowest destination level Lq, the output ports P being connected to nodes at the lowest destination level Lq, the level of a node being determined entirely by the position of the node in the structure, CA 02227271 2002-02-22 70128-353 the network including a node of the plurality of nodes N, a control signal not originating at the node acting to limit the number of messages that are allowed to be sent to the node to eliminate contention for the predetermined output ports of the node so that the messages M are sent through the direct message output connections of the node to nodes Νβ that are a level L no higher than the level of the node N^, the nodes Νβ being on a path to the designated predetermined output ports P of the messages M. 48. An interconnect apparatus, comprising: a plurality of nodes;and a plurality of interconnect lines in an interconnect structure selectively coupling the nodes in a hierarchical multiple level structure arranged to include: a plurality of J+l levels with J an integer greater than 0 in an hierarchy of levels arranged from a lowest destination level Lq to a highest level Lj with the level of a node being determined entirely by the position of the node in the structure, the interconnect structure transmitting a plurality of multiple-bit messages entering the interconnect structure unsorted through a plurality of input ports, an individual message M of the plurality of messages being self-routing, the individual message M moving in a plurality of ways including three ways which are sufficient for the message M to exit the interconnect structure through an output port designated by the message M, the three ways being: CA 02227271 2002-02-22 70128-353 (1) the message M enters a node in the interconnect structure from a device external to the interconnect structure, the message M designating one or more designated output ports;(2) the message M moves through a node in the interconnect structure without buffering to a designated output port;and (3) the message M moves either through a node U on a level of the interconnect structure without buffering to a different node V on the same level or moves through the node U on a level of the interconnect structure without buffering to a node W on a level Lj_ nearer in the hierarchy to the destination level Lq than the level L^, and the node U uses a control signal from a source distinct from the node V and the node W to determine where to send the message M. 49. An interconnect apparatus as claimed in Claim 48, wherein a node on the level has a plurality of interconnections including: a direct data input interconnection from a node Νβ]ζ on the level a direct data output interconnection to a node Np^ on the level L^;a direct data input interconnection from a node NCm on a level Lm where m is greater than k, or from a device Dq external to the interconnect structure;and CA 02227271 2002-02-22 70128-353 a direct data output interconnection to a device De external to the interconnect structure, or a direct data output interconnection to a node Npj_ on the level Lj_ where k is greater than i so that the level Lj_ is closer in the hierarchy to the destination level Lg, wherein: among devices having a direct interconnection to the node N^, a precedence relationship exists for sending data to the node N^ so that: a node Νβ^ on the level having a direct interconnection to the node N^ has precedence over a device Dg where the device Dg is a node Ng^ on the level Lj_ or a device Dg external to the interconnect structure;the precedence relationship for a message MB to be sent from the node Νβ^ to the node and a message Mg to be sent from the device Dg to the node N^^ in a same time interval results in the message Μβ being sent and the message Mg prevented from being sent. 50. An interconnect apparatus as claimed in Claim 48, wherein the interconnect structure: carries messages and control signals;includes a node Ng including: a direct message input interconnection for receiving a message M^ from a node and a direct message input interconnection for receiving a message Mp from a node Np;and CA 02227271 2002-02-22 70128-353 the node N^ has a control logic and a control input interconnection for receiving a control signal from the node Np, the control signal enforcing a precedence of the direct message input interconnection from the node Np to the node Np over the message input interconnection from the node N^ to the node Np so that the node Np sends a message Mp to the node Np and sends a control signal (¾ designating a blocking condition to the node N^, the node N^ control logic receives the control signal designating the blocking condition and responds to the control signal by blocking transmission of the message M^ destined to arrive at the node Np at the same time as the message Mp, causing the blocked message M^ to be alternatively sent to a node Nq where the node Nq is distinct from the node Np and the node N^ is distinct from the node N^. 51. An interconnect apparatus as claimed in Claim 48, wherein the interconnect structure: carries messages and control signals;includes a node Np including: a direct message input interconnection for receiving a message M^ from a node N^, the message M^ having a header;and a direct message input interconnection for receiving a message Mp from a node Np;and CA 02227271 2002-02-22 70128-353 the node N^ has a control logic and a control input interconnection for receiving a control signal from the node Np, the control signal enforcing a precedence of the direct message input interconnection from the node Np to the node Np over the direct message input interconnection from the node N^ to the node Np so that a message arriving at the node N^ in the absence of a blocking control signal in a same time interval causes the node N^ control logic to use a header of the message to determine a selected device for transmitting the message M^, in case the selected device is the node Np then the message being sent to the node Np, wherein: the control logic of node N^ determines: whether, in a first condition, the node N^ has a direct output interconnection to a node Npj_ on the level i nearer in the hierarchy to the destination level Lq than the level in which the node Npj_ has a pathway to a designated output port designated by the message and whether, in a second condition, the node Npj_ is unblocked by another message;and the control logic of node N^, when the first and second conditions are satisfied, sends the message to the node Npj_;and the control logic of node N^, when the first and second conditions are not both satisfied, sends the message to a node Nq where node N^^ and node Np^ are distinct and the node Npi and the node Np are distinct. CA 02227271 2002-02-22 70128-353 52. An interconnect apparatus as claimed in Claim 48, further comprising : a plurality of output ports including a plurality of accessible output ports that are accessible to a node on the level L^, the accessible output ports being accessible via a pathway through the interconnect nodes;and each of the accessible output ports accessible to the node N^ also being accessible to a node Np^ on a level nearer in the hierarchy to the destination level Lq than the level L^, the node having a direct output interconnection to the node Npj_. 53. An interconnect apparatus as claimed in Claim 48, wherein: a node Np has a first data input interconnection from a node N^ and a second data input interconnection from a node Np;and a control interconnection between the node N^ and node Np resolves contention for sending messages to the node Np. 54. An interconnect apparatus as claimed in Claim 48, further comprising: a node N^ on the level L^ having a direct data output interconnection to a node N^j_ on a level Lj_ nearer in the hierarchy to the destination level Lq than the level L^, and having a precedence relationship with respect to a message Mq which, at a time T, moves through the node Nq and is preferentially sent to the node N^, but is blocked from CA 02227271 2002-02-22 70128-353 node Njx by a message Μβ so that the message Mg is deflected to a node on the level distinct from node Ngj^;a node Ng^- on the level having a direct data output interconnection to a node Ng^ on the level Lj_, the node Ngj_ having a pathway through the interconnect nodes to an accessible output port accessible to the message Mg, the message Mg being deflected to pass through the node Ngj^ at a time T', a first time step following the time T that a node directs message Mg to a lower level;wherein the interconnect structure disallows the message Μβ from being in a position to block the message Mg at the time T'. 55. A network according to Claim 48 further comprising: nodes B and C on a level Lj_]_ that are nodes capable of receiving a message directly from the node A on a level Lj;devices D and E, each of which is either a node on a level Lj_^ where N is greater than 1 or a device external to the network, the node B being capable of sending a message directly to the device D, the node C being capable of sending a message directly to the device E, the device D being incapable of sending a message directly or indirectly to the device E, the device E being incapable of sending a message directly or indirectly to the device D. 56. An interconnect structure comprising: a plurality of nodes;and CA 02227271 2002-02-22 70128-353 a plurality of interconnect lines in an interconnect structure selectively coupling the nodes in a structure, the interconnect structure transmitting a plurality of multiple-bit messages entering the interconnect structure unsorted through a plurality of input ports, an individual message M of the plurality of messages being self-routing, the interconnect structure including: a node Np having a first data input interconnection from a node N^ and a second data input interconnection from a node Np distinct from the node N^;and a control interconnection between the node N^ and node Np the control interconnection for carrying a control signal to resolve contention for sending messages to the node Np, the control signal being supplied from the node N^ or the node Np each distinct from the node Np with which messages are being communicated. 57. An interconnect apparatus as claimed in Claim 56, wherein the interconnect structure : carries messages and control signals;includes a node Np including: a direct message input interconnection for receiving a message from a node N^;and a direct message input interconnection for receiving a message Mp from a node Np;and the node has a control logic and a control input interconnection for receiving a control signal C^ from CA 02227271 2002-02-22 70128-353 the node Np, the control signal C& enforcing a precedence of the direct message input interconnection from the node Np to the node Ng over the message input interconnection from the node N^ to the node Ng so that the node Np sends a message Mp to the node Np and sends a control signal designating a blocking condition to the node N/^, the node NA control logic receives the control signal designating the blocking condition and responds to the control signal by blocking transmission of the message destined to arrive at the node Np at the same time as the message Mp, causing the blocked message to be alternatively sent to a node Ny where the node Ny is distinct from the node Np and the node Ny is distinct from the node N^. 58, An interconnect apparatus as claimed in Claim 56, wherein the interconnect structure : carries messages and control signals;includes a node Np including: a direct message input interconnection for receiving a message M^ from a node N^z the message having a header;and a direct message input interconnection for receiving a message Mp from a node Np;and the node N^ has a control logic and a control input interconnection for receiving a control signal from CA 02227271 2002-02-22 70128-353 the node Np, the control signal CA enforcing a precedence of the direct message input interconnection from the node Np to the node Np over the direct message input interconnection from the node NA to the node Np so that a message MA arriving at the node NA in the absence of a blocking control signal CA in a same time interval causes the node NA control logic to use a header of the message to determine a selected device for transmitting the message MA, in case the selected device is the node NE then the message MA being sent to the node Np. 59. A method of moving messages through an interconnect structure comprising: interconnecting a plurality of devices in a structure, the devices having a plurality of message input terminals and a plurality of message output terminals, a plurality of interconnect lines interconnecting the device with connections from a message output terminal of a sending device to a message input terminal of a receiving device;assigning a priority among a plurality of sending devices having output message terminals coupled to the input message terminal of a single receiving device;entering a message into the interconnect structure for transfer to one or more designated output ports;sending a message, without buffering, from a sending device to a receiving device en route to the one or more output ports using self-routing, with the sending device neither requesting of the receiving device nor receiving from the receiving device, permission to send the message to the receiving device;CA 02227271 2002-02-22 70128-353 communicating among a plurality of sending devices that send messages to a single receiving device, a sending device with priority for sending messages to the single receiving device having a control signal output terminal connected by an interconnect line to a control signal input terminal of a sending device without priority, the sending device with priority sending a control signal to the sending device without priority;deflecting a message intended to be sent from a sending device without priority to an intended receiving device, the deflected message being deflected to an alternative receiving device, the alternative receiving device also being en route to the one or more output ports, the message being deflected on the basis of a control signal being supplied from a node distinct from the node with which messages are being communicated. 60. A method of moving messages through an interconnect structure comprising: interconnecting a plurality of devices D to a node Ng using a plurality of direct node Ng input interconnections ;enforcing a precedence relationship among the devices D having a direct input interconnection to the node Ng for sending a message to the node Ng;sending a message from a node Nj\ to the node Ng in a time period T when: in the time period T a message moves through a node N^ having a direct input interconnection to the node CA 02227271 2002-02-22 70128-353 Np, the message MA is directed to be sent to the node Np in the time period T, and no message Mp directed to be sent to the node Np or deflected to the node Np moves through a node Np having a direct input interconnection to the node Np in the time period T in which the node Np has precedence over the node Na for sending messages to node Np. 61. A method as claimed in Claim 60 further comprising: aborting the sending of message MA to the node NA in the time period T if, in the time period T, the node Np sends a message Mp to the node Np;sending the message MA, aborted with respect to node Na, to a node Np, the node Np being distinct from the node Na and the node Np;and sending a control signal, by the node Np to the node Na causing the message MA to be aborted with respect to the node NA and enforcing the precedence relationship. 62. A method of moving messages M through an interconnect structure including a plurality of nodes N and a plurality of interconnect lines L to a plurality of output buffers B, the method comprising: selectively coupling the plurality of nodes N via the plurality of interconnect lines L so that an interconnect line L(p,q) carries data directly from a node p to a node q;CA 02227271 2002-02-22 70128-353 determining for a message M a set of nodes 0(M) so that the output buffers B that are targets of the message M are connected to the set of nodes 0(M);if the beginning of the message M is located at the node p at a step t then at the step t, moving·the message M on an interconnect line L(p,w) so that at a step t+1, the beginning of the message M is located at a node w, where the node w and the node p are different nodes;if the beginning of the message M is located at the node p at the step t and the shortest path from the node p to a node of the set of nodes O(M) is H hops, determining an interconnect line L(p,q) so that the shortest path from the node q to a node of the set of nodes O(M) is H-l hops;if at the step t, the message M is not blocked from using the interconnect line L(p,q) by a control signal originating from a node other than the node q, then at the step t, sending the beginning of the message M on the interconnect line L(p,q) so that at the step t+1, the message M is located at the node q;and if at the step t, the message M is blocked from using the interconnect line L(p,q) by a control signal originating from a node other than the node q, then at the step t, sending the message M on an interconnect line L(p,r), where the node r and the node p are different nodes and the node r and the node s are different nodes, then at the step t+1, sending the message M on the interconnect line L(r,s), where the node s and the node p are different nodes, the node s and the node q are different nodes and the node s and the node r are different nodes, and the shortest path from the node s to a node of the plurality of nodes O(M) is no more than H hops. CA 02227271 2002-02-22 70128-353 63. A method of moving messages M through an interconnect structure including a plurality of nodes N and a plurality of interconnect lines L to a plurality of output buffers B, the method comprising: selectively coupling the plurality of nodes N via the plurality of interconnect lines L so that an interconnect line L(p,q) carries data directly from a node p to a node q;determining for a message M a set of nodes 0(M) so that the output buffers B that are targets of the message M are connected to the set of nodes O(M);if a beginning portion of the message M is located at the node p at a step t then at the step t, moving the message M on an interconnect line L(p,w) so that at a step t+l, the beginning of the message M is located at a node w, where the node w and the node p are different nodes;if the beginning of the message the node p at the step t and the shortest p to a node of the set of nodes O(M) is H so that the shortest M is path hops, located at from the node an interconnect the node q to a line L(p,q) node of the set of nodes 0(M) is determining path from H-l hops;if at the step t, from using the interconnect the message M is not blocked line L(p,q) by a control signal originating from a node other than the node q, then at the step t, sending the message M on the interconnect line L(p,q) so that at the step t+l, the beginning portion of the message M is located at the node q;and if at the step t, the message M is blocked from using the interconnect line L(p,q) by a control signal originating from a node other than the node q, then at the CA 02227271 2002-02-22 70128-353 step t, sending the message M on an interconnect line L(p,r), where the node r and the node p are different nodes and the node r and the node q are different nodes, and the shortest path from the node r to a node of the plurality of nodes O(M) is no more than H hops. 64. A method of sending data comprising: providing an interconnect apparatus including a plurality of nodes N and a plurality of interconnect lines L connecting the plurality of nodes N in a predetermined pattern;connecting the plurality of nodes N using the plurality of interconnect lines L to include: a node NA having a direct message input interconnection for receiving a message MA and having a plurality of direct message output interconnections for transmitting the message MA to a plurality of nodes including a preferred node Np being most preferred for receiving the message MA, the preferred node Np being only determined by routing information in a header of the message Ma and the position of the node NA within the plurality of interconnect lines L;the preferred node Np having a plurality of direct message input interconnections for receiving a message Mp from a plurality of nodes including a priority node Np which has priority for sending a message to the preferred node Np, the priority node Np being determined by position of the node Np within the plurality of interconnect lines L;CA 02227271 2002-02-22 70128-353 if the node N^ is the same as the node Νβ, sending the message M^ as the message Mp from the node N^ to the node Np;and if the node N^ is not the same as the node Νβ and the node Νβ directs a message Mg to the node Np, then sending the message Μβ from the node Νβ to the node Np, and the node N^ uses a control signal from a source distinct from the node Np to determine where to send the message M^. 65, A method of sending messages comprising: providing a network for carrying a plurality of messages M concurrently including: a plurality of output ports P;and a plurality of nodes N, the individual nodes N including a plurality of direct message input interconnections and a plurality of direct message output interconnections, the individual nodes N for passing messages M to predetermined output ports of the plurality of output ports P, the predetermined output ports P being designated by the messages M;and a plurality of interconnect lines in an interconnect structure ;selectively coupling the nodes in a hierarchical multiple level structure to include a plurality of J+l levels with J an integer greater than 0 in an hierarchy of levels arranged from a lowest destination level Lq to a highest level Lj which is farthest in the hierarchy from the lowest destination level Lq, the level of a node being CA 02227271 2002-02-22 70128-353 determined entirely by the position of the node in the structure, the output ports P being connected to nodes at the lowest destination level Lq, including in the network a node of the plurality of nodes N;limiting the number of messages M that are allowed to enter the plurality of direct message input interconnections of node by using a control signal not originating at the node to eliminate contention for the predetermined output ports of the node so that the messages M are sent through the direct message output connections of the node to nodes Νβ that are a level L no higher than the level of the node the nodes Npj being on a path to the designated predetermined output ports P of the messages M. 66. A method of transmitting a message through an hierarchical interconnect structure including a plurality of nodes and a plurality of interconnect lines, the method comprising: selectively coupling the nodes in an hierarchical multiple level structure arranged to include a plurality of J+l levels with J an integer greater than 0 in an hierarchy of levels arranged from a lowest destination level Lq to a highest level Lj, the level of a node being determined entirely by the position of the node in the structure;entering a plurality of messages into the interconnect structure unsorted through a plurality of input ports;CA 02227271 2002-02-22 70128-353 moving, using self-routing, an individual message M of the plurality of messages through nodes, the message M moving in a plurality of ways including three ways which are sufficient for the message M to exit the interconnect structure through an output port designated by the message M, the three ways including: (1) entering the message M to a node in the interconnect structure from a device external to the interconnect structure, the message M designating one or more designated output ports;(2) moving the message M through a node in the interconnect structure without buffering to a designated output port;and (3) moving the message M either through a node U on a level of the interconnect structure without buffering to a different node V on the same level L^, the different node V also having a pathway to a designated output port;or moving the message M through the node U on the level of the interconnect structure without buffering to a node W on a level nearer in the hierarchy to the destination level Lq than the level L^, the node U using a control signal from a source distinct from the node V and the node W to determine where to send the message M. 67. An interconnect structure comprising: a plurality of nodes arranged in a topology of three dimensions;means for transmitting a message from a node N to a target destination including: CA 02227271 2002-02-22 70128-353 means for determining whether a node en route to the target destination in the second and third dimensions and advancing one level toward the destination level of the first dimension is blocked by another message;means for advancing the message one level toward the destination level of the first dimension when the en route node is not blocked;means for moving the message in the second and third dimensions along a constant level in the first dimension otherwise;means for specifying the first dimension to describe a plurality of levels, the second dimension to describe a plurality of nodes spanning a cross-seetion of a level, and the third dimension to describe a plurality of nodes in the cross-section of a level;means for sending a control signal from a node on the level of the en route node to the node N in the first dimension, the control signal specifying whether the node en route is blocked;means for timing transmission of a message using a global clock specifying timing intervals to keep integral time modulus the number of nodes in a cross-section of a level;means for setting a first time interval a for moving the message in the second and third dimensions;means for setting a second time interval a - β for advancing the message one level toward the destination level, the global clock specifying a global time interval CA 02227271 2002-02-22 70128-353 equal to the second time interval, the first time interval being smaller than the global time interval;and means for setting a third time interval for sending the control signal from the node on the level of the en route node to the node N, the third time interval being equal to β. 68. An interconnect structure according to Claim 67, further comprising: means for timing the message moving and advancing steps so that the messages enter node N on level q at times having the form not + qP;and means for timing the control signal sending step so that the control signals enter node N on level q at times having the form na + qP so long as the node en route is not blocked. 69. An interconnect structure according to Claim 67, further comprising: means for timing transmission of a message using a global clock;means for setting a first time interval for moving the message in the second and third dimensions;means for setting a second time interval for advancing the message one level toward the destination level in the first dimension;means for specifying the first dimension to describe a plurality of levels, the second dimension to describe a plurality of nodes spanning a cross-section of a CA 02227271 2002-02-22 70128-353 level, and the third dimension to describe a plurality of nodes in the cross-section of a level;means for specifying timing interval of the global clock to keep integral time modulus the number of nodes in a cross-section of a level, the global clock time interval being equal to the second time interval and the first time interval being smaller than the global time interval. 70. An interconnect structure according to Claim 67 further comprising: means for defining a header and a payload in the message;means for encoding the destination in the second dimension in the header;means for determining whether a potentially en route node is en route to the target destination including: means for comparing the encoded destination in the second dimension to an encoded position of the potentially en route node;means for resolving that the potentially en route node is en route when the encoded destination is the same as the encoded position of the potentially en route node, wherein: the destination in the third dimension in the header is encoded in a plurality of single-bit codes, the single-bit codes relating to a level of the third dimension;the position of the potentially en route node is encoded in a single-bit code;and CA 02227271 2002-02-22 70128-353 the means for comparing is a means for performing a single-bit comparison of the level-specific, single-bit destination code and the single-bit position code;and means for discarding the level-specific, singlebit destination code in the header as the message advances one level. 71. An interconnect structure according to Claim 67 wherein : a level T of the first dimension spans one ring in 2T passes through the nodes in the second dimension so that 2T nodes in the third dimension designate one ring;and the three dimensional interconnect structure is configured so that advancing of levels from a start level to the destination level of the first dimension furnishes access to all nodes in a ring. 72. An interconnect structure according to Claim 67 further comprising: injecting a message at a time (q2 - ql)modK * a + J into the interconnect structure at a node N(J, ql, zl) and targeting the message to exit the interconnect structure at a node N(0, q2, z2) causes the message to arrive at node N(0, q2, z2) at time 0. 73. A communication interconnect structure for transmitting messages, comprising: a plurality of nodes arranged in a structure including : a hierarchy of levels from a source level to a destination level;CA 02227271 2002-02-22 70128-353 a plurality of nodes spanning a cross-section of a level;and a plurality of nodes in a cross-section span, the level of a node being determined entirely by the position of the node in the structure;a plurality of interconnect lines coupling the nodes in the structure including for a node N on a level L: a message input interconnect line coupled to a node on a previous level L+l;a message input interconnect line coupled to a node on the level L;a message output interconnect line coupled to a node on the level L;a message output interconnect line coupled to a node on a subsequent level L-l;a control input interconnect line coupled to the message output interconnect line of a node on the level L-l;and a switch coupled to receive a message on the control input interconnect line and, in accordance with the message, to selectively transmit a message without buffering on the message output interconnect line coupled to the subsequent level L-l node or on the message output interconnect line coupled to the level L. 74. An interconnect structure according to Claim 73, further comprising: CA 02227271 2002-02-22 70128-353 a control output interconnect line coupled to a control input terminal of the node on the previous level L+l ;a switch for determining that a message is blocking the node N and communicating via the control input interconnect line informing whether the node N is blocked;a global clock generating timing signals, the timing signals in discrete time steps of an integral time modulus the number of nodes on a level timing a message transmission time of a message transmitted from a level to a subsequent level and for timing a control signal transmission time of a control signal from a subsequent level to a level so that the control signal arrives first at a node ;a control output interconnect line coupled to a control input terminal of the node on the previous level L+l;and a switch for determining that a message is blocking the node N and communicating via the control input interconnect line informing whether the node N is blocked. 75. A method of communicating messages in an interconnect structure comprising: arranging a plurality of nodes in a structure including a plurality of hierarchical levels from a source level to a destination level, the level of a node being determined entirely by the position of the node in the structure, a plurality of nodes spanning a cross-section of a level and a plurality of nodes in a cross-section span, the nodes having an input connection on the same level, an input connection on a previous level, an output connection CA 02227271 2002-02-22 70128-353 on the same level and an output connection on a subsequent level;specifying a destination node in the destination level for receiving a message;originating the message at a node in the source level;communicating a message from node to node including: determining at a node whether a node on a subsequent level is directed toward the destination node;determining at a node whether the node on the subsequent level is blocked by another message;advancing the message to the node on the subsequent level when the node is directed toward the destination node and a node is unblocked;and otherwise traversing the message to a node on the same level. 76. A method according to Claim 75 wherein determining whether a node on a subsequent level is directed toward the destination node further comprises: encoding the destination node in a message in the header field;encoding a designation of node position for the nodes at the levels;and determining that the node on the subsequent level is directed toward the destination node when the destination CA 02227271 2002-02-22 70128-353 node encoding and the node position designation encoding correspond. 77. A communication interconnect structure comprising: a plurality of nodes;and a plurality of interconnect lines coupling the nodes, a node X of the plurality of nodes having: a message input interconnect line coupled to a node A distinct from the node X;and a message input interconnect line coupled to a node B distinct from the node A and the node X, the node X accepting a message input from the node A and a message input from the node B with a control signal communicating between the node A and the node B for determining a priority relationship between conflicting messages, the control signal enforcing the priority relationship between the sending of a message from the node A to the node X and the sending of a message from the node B to the node X. 78. An interconnect apparatus, comprising : a plurality of nodes;and a plurality of interconnect lines in an interconnect structure selectively coupling the nodes in a hierarchical multiple level structure arranged to-include: a plurality of J+l levels in an hierarchy of levels arranged from a lowest destination level Lq to a highest level Lj which is farthest from the lowest destination level Lq, the level of a node being determined entirely by the position of the node in the structure, the CA 02227271 2002-02-22 70128-353 interconnect structure transmitting a message M in a plurality of discrete time steps, the message M moving in a time step and the interconnect structure having interconnections to move the message M in one of three ways in the time step including: the message M enters a node in the interconnect structure from a device external to the interconnect structure;the message M exits the interconnect structure to a designated output buffer;and the message M either moves from a node U on a level to a different node V on the same level or moves from the node U to a node W on a level Lj, where k is greater than i so that the level Lj, is closer to the destination level Lq than the level L^. 79. An interconnect apparatus according to Claim 78, wherein the interconnect structure is self-routing. 80. An interconnect apparatus according to Claim 78, wherein a node on the level Lj^ has a plurality of interconnections including: a direct data input interconnection from a node Νβ}ζ on the level L^;a direct data output interconnection to a node on the level L^;a direct data input interconnection from a node Nçm on the level Lm where m is greater than k so that the CA 02227271 2002-02-22 70128-353 level Lm is farther from the destination level Lg than the level L^;and a direct data output interconnection to a device Dg external to the interconnect structure or a node Ng| on the level Lj_ where k is greater than i so that the level Lj_ is closer to the destination level Lg than the level L^. 81. An interconnect apparatus according to Claim 78, wherein a node on the level has a plurality of interconnections including : a direct data input interconnection from a node Νβ}ζ on the level L^;a direct data output interconnection to a node on the level L^;a direct data input interconnection from a device Dg external to the interconnect structure;and a direct data output interconnection to a device Dg external to the interconnect structure or a node Ng^ on the level L-[ where k is greater than i so that the level is closer to the destination level Lg than the level L^. 82. An interconnect apparatus according to Claim 78, wherein : the plurality of nodes are arranged into a plurality of node groups in which all of the nodes of a given group Gm are on the same level and each node of the plurality of nodes is included in only one group of the plurality of groups;and CA 02227271 2002-02-22 70128-353 a node NAk in the group Gm on the level Ιψ has a plurality of interconnections including : a direct data input interconnection from a node Nfik ΐη the group Gm on the level L^;and a direct data output interconnection to a node in the group Gm on the level L^. 83. An interconnect apparatus according to Claim 78, wherein: the plurality of nodes are arranged into a plurality of mutually exclusive node groups including a group Gp and a group Gy in which all of the nodes of the group Gp are on the same level and all of the nodes of the group Gy are on the same level Lj_;and if a node Np of the group Gp has an interconnect path for sending a message to a node Nq of the group Gy, then all nodes of the group Gp have interconnect paths for sending a message to a node of the group Gy. 84. An interconnect apparatus according to Claim 78, wherein: the plurality of nodes are arranged into a plurality of mutually exclusive node groups including a group Gp and a group Gy in which all of the nodes of the group Gp are on the same level and all of the nodes of the group Gy are on the same level Lj_;and if an interconnect path exists for sending a message from a node of the group Gp to a node of the group CA 02227271 2002-02-22 70128-353 Gy, and the group Gy includes a node Np and the group Gy includes a node Ng, then the interconnect structure includes an interconnect path for sending a message from the node Np to the node Ng. 85. An interconnect apparatus according to Claim 78, wherein: the plurality of nodes are arranged into a plurality of mutually exclusive node groups including a group Gy and a group Gy in which all of the nodes of the group Gy are on the same level and all of the nodes of the group Gy are on the same level Lj_;and if one node in the group Gy has an interconnect path for sending a message to a node in the group Gy, then all nodes in the group Gy have interconnect paths for sending messages to a node in the group Gy. 86. An interconnect apparatus according to Claim 78, wherein: a node Ny has a direct input interconnection from a node N^ in the interconnect structure and a direct input interconnection from a device G external to the interconnect structure;and the direct input interconnection from the node N^ has precedence over the direct input interconnection from the external device G so that every message directed from the node N^ to the node Ny successfully moves from the node N^ to the node Ny. CA 02227271 2002-02-22 70128-353 87. An interconnect apparatus according to Claim 78, wherein: a node Np on the level Lj_ has a direct input interconnection from a node N^ also on the level Lj and a direct input interconnection from a node Ng on the level L^;and the direct input interconnection from the node N^ has precedence over the direct input interconnection from the node Ng so that every message M& directed from the node N/\ to the node Nq successfully moves from the node N& to the node Nq. 88. An interconnect apparatus according to Claim 78, wherein the interconnect structure: carries messages and control signals;and includes a node N& including: a direct message input interconnection for receiving a message having a header;a direct control input interconnection for receiving a control signal C^;a plurality of direct message output interconnections to a respective plurality of subsequent nodes for directing the message and a control logic responsive to the control signal Cjy and the header of the message for determining a node of the plurality of subsequent nodes to direct the message ma. CA 02227271 2002-02-22 70128-353 89. An interconnect apparatus according to Claim 78, wherein the interconnect structure : carries messages and control signals;includes a node Νβ including: a direct message input interconnection for receiving a message Mg from a device G external to the interconnect structure;and a direct message input interconnection for receiving a message M^ from a node N^;and the node N^ has a control logic setting a precedence of the direct message input interconnection from the node N^ to the node Νβ over the direct message input interconnection from the device G to the node Νβ so that, in a discrete time step, if the device G holds the message Mg for entry to the interconnect structure to the node Νβ and the node Ν/γ has the message M^ directed to the node Νβ, then, in the discrete time step, the message is successfully sent from the node N^ to the node Νβ and the message Mg is blocked from transmission to the node Ng. 90. An interconnect apparatus according to Claim 78, wherein the interconnect structure: carries messages and control signals;includes a node Νβ including: a direct message input interconnection for receiving a message Mg from a device G external to the interconnect structure;and CA 02227271 2002-02-22 70128-353 a direct message input interconnection for receiving a message MA from a node NA;and the device G has a control logic and direct control input interconnection coupled to the control logic for receiving a control signal Cg from the node NA, the control signal Cg enforcing a precedence of the direct message input interconnection from the node NA to the node Np over the direct message input interconnection from the device G to the node Np so that, in a discrete time step, if the device G holds the message Mg for entry to the interconnect structure to the node Np and the node NA has the message MA directed to the node Np, then, in the discrete time step, the message MA is successfully sent from node Na to node Np and the control logic receives the control signal Cg designating a blocking condition and, responsive to the control signal Cg blocking condition, the control logic blocks transmission of the message MG to the node Np. 91. An interconnect apparatus according to Claim 78, wherein the interconnect structure: carries messages and control signals;includes a node Np including: a direct message input interconnection for receiving a message Mg from a device G external to the interconnect structure;and a direct message input interconnection for receiving a message MA from a node NA;and CA 02227271 2002-02-22 70128-353 the device G has a control logic and direct control input interconnection coupled to the control logic for receiving a control signal Cg from the node N^, the control signal Cg enforcing a precedence of the direct message input interconnection from the node N/\ to the node Ng over the direct message input interconnection from the device G to the node Ng so that, in a discrete time step, if the device G holds the message Mg for entry to the interconnect structure to the node Ng and the node N^ has no message directed to the node Ng, then, in the discrete time step, the control logic does not receive the control signal Cg designating a blocking condition and, responsive to the absence of the control signal Cg blocking condition, the control logic transmits the message Mg to the node Ng, wherein in the discrete time step: the node N^ is idle, or the node N& includes a control logic that: (1) directs the message M^ to a node Ng distinct from the node Ng;and (2) sends the control signal Cg designating the absence of the blocking condition. 92. An interconnect apparatus according to Claim 78, wherein the interconnect structure: carries messages and control signals;includes a node Ng including: CA 02227271 2002-02-22 70128-353 a direct message input interconnection for receiving a message from a node N^;and a direct message input interconnection for receiving a message Mp from a node Np;and the node N& has a control logic and a direct control input interconnection for receiving a control signal (¾ from the node Np, the control signal enforcing a precedence of the direct message input interconnection from the node Np to the node Np over the direct message input interconnection from the node N^ to the node Np so that, in a discrete time step, if the message is present at the node N^ and the node Np has the message Mp directed to the node Np, then, in the discrete time step, the message Mp is successfully sent from node Np to node Np and the control logic receives the control signal C& designating a blocking condition and, responsive to the control signal blocking condition, the control logic blocks transmission of the message M^ to the node Np and directs the message to a node Np distinct from the node Np. 93. An interconnect apparatus according to Claim 78, wherein the interconnect structure: carries messages and control signals;includes a node Np including: a direct message input interconnection for receiving a message from a node Nj^, the message M& having a header;and CA 02227271 2002-02-22 70128-353 a direct message input interconnection for receiving a message Mp from a node Np;and the node N^ has a control logic and a direct control input interconnection for receiving a control signal from the node Np, the control signal C& enforcing a precedence of the direct message input interconnection from the node Np to the node Np over the direct message input interconnection from the node N^ to the node Np so that, in a discrete time step, if the message M^ is present at the node N^ and the node Np has no message Mp directed to the node Np, then, in the discrete time step, the control logic does not receive the control signal designating a blocking condition and, responsive to the absence of the control signal blocking condition, the control logic uses the header of the message M^ to determine a preferred device for transmitting the message M^ and if the preferred device is the node Np, then the message is sent to the node Np, wherein in the discrete time step: the node Np is idle;or the node Np includes a control logic that: (1) directs the message Mp to a device distinct from the node Np;and (2) sends the control signal designating the absence of the blocking condition. 94. An interconnect apparatus according to Claim 93, CA 02227271 2002-02-22 70128-353 a message Mg is present at the node Ng,. the message Mg having a header designating one or more target output buffers;if the node Ng has an interconnect path to a node of the plurality of nodes N connected to a target output buffer designated by the message Mg, then the control logic of the node N^ directs the message M& to the node Ng;and otherwise the control logic of the node N^ directs the message M^ to a node Ng on the level Ljç. 95. An interconnect apparatus according to Claim 78, further comprising: a node N& on the level Ιψ having a direct data output interconnection to a node Ng on the level Lj_, the node Ng having an interconnect path to a node N^ that is connected to an output buffer wherein: if a message is present at the node N^ and has a header designating the output buffer as a target output buffer, and the message M^ is not blocked from transmission to the node Ng;then a message Mg that is directed to the node Ng is sent directly to the node Ng;and otherwise the message M^ is sent directly to a node Ng on the level Lfc. 96. An interconnect apparatus according to Claim 78, further comprising: CA 02227271 2002-02-22 70128-353 t a node on the level the node including a control logic that utilizes a header information of a message present at the node N& to ascertain: whether a direct interconnect exists from the node to a node belonging to a group Gy at the level Lj_ such that an interconnect path exists from a node in the group Gy to a node Νβ that is connected to an output buffer designated as a target output buffer by the message M^;and whether an unblocked node exists in the group Gy;the control logic sending the message to a node of the group Gy if the direct interconnect and the unblocked node exist, and sending the message to a node on the level Lk otherwise. 97. An interconnect apparatus according to Claim 78, wherein: the interconnect structure transmits messages through the interconnect structure in discrete time steps;the interconnect structure is coupled to one or more output buffers 0^, the message M having a header that designates target output buffers of the one or more output buffers (¾ to receive the message M;a selected output buffer Opj of the plurality of output buffers being coupled to a plurality of output target devices and the selected output buffer including a plurality of buffer portions corresponding to and reserved for usage by respective devices of the plurality of output target devices, the message M being allocated to the buffer CA 02227271 2002-02-22 70128-353 portions based on a position and a time of insertion into the interconnect structure of the message and the discrete time step timing of transmission of the message M. 98. An interconnect apparatus, comprising: a plurality of nodes;and a plurality of interconnect lines selectively coupling the nodes in a hierarchical multiple level structure with the level of a node being determined entirely by the position of the node in the structure in which data moves only unilaterally from a source level to a destination level or laterally along a level of the multiple level structure, a data message being transmitted through the multiple level structure from a source node to a designated destination node, a level of the multiple levels including: one or more groups of nodes, the data message being transmitted to a group of the one or more groups of nodes that is en route to the destination node, a group of the one or more groups including: a plurality of nodes, the data message being transmitted to a node N of the plurality of nodes of a group unilaterally toward the destination level if the node is not blocked and otherwise the data message being transmitted laterally if the node is blocked. 99. An interconnect apparatus according to Claim 98, comprising: a plurality of interconnect lines selectively coupling the nodes in a hierarchical multiple level structure in which control signals move unilaterally from nodes on a level of the multiple levels to nodes on an CA 02227271 2002-02-22 70128-353 100 adjacent sourceward level, the control signals designating whether an en route node is blocked or not blocked. 100. An interconnect apparatus according to Claim 98, wherein: an en route node on a level receives a data message transmitted laterally along the same level with precedence over a data message transmitted unilaterally from a node on an adjacent sourceward level, the en route node enforcing the precedence by transmitting a control signal to a node on the adjacent sourceward level indicating that the en route node is blocked. 101. An interconnect apparatus according to Claim 98, wherein : an en route node on a level receives a data message transmitted laterally along the same level with precedence over a data message transmitted unilaterally from a node on an adjacent sourceward level. 102. A network communicating messages in a sequence of discrete time steps, the network comprising: a plurality of nodes, the nodes including communication devices that receive messages and send messages;and a plurality of interconnect lines L interconnecting communication devices at the plurality of nodes, a node N of the plurality of nodes including: a connection to an interconnect line Ly^ for transmitting a message from a device U to the node N;CA 02227271 2002-02-22 70128-353 101 a connection to an interconnect line for transmitting a message from a device V to the node N;the network having a precedence relationship Pn(U'V) relating to the node N and the devices U and V such that the device U has precedence over the device V in sending a message to the node N so that for a message My at the device U that is directed to the node N via the interconnect line Lyjq at a time step t and a message My at the device V that is directed to the node N via the interconnect line Ly^ also at a time step t, the message My is successfully sent to the node N and the node V uses a control signal to decide where to send the message My. 103. A network according to Claim 102 further comprising : a node W of the plurality of nodes including: a connection to an interconnect line Ly^ for transmitting a message from a device V to the node W;the message My is deflected to the node W. 104. A network comprising: a plurality of nodes N;and a plurality of interconnect lines L connecting the plurality of nodes N in a predetermined pattern, the interconnect lines carrying messages M and control signals C, the messages M and control signals C being received by a node of the plurality of nodes at a discrete time step t and the messages M being moved to subsequent nodes of the plurality of nodes in an immediately subsequent discrete CA 02227271 2002-02-22 70128-353 102 time step t+1, the plurality of interconnect lines L connecting the plurality of nodes N to include: a node NA having a message input interconnection for receiving a message MA, a control input interconnection for receiving a control signal CA, a direct message output interconnection to a node Np, a direct message output interconnection to a node Nj?, a direct control output interconnection to an external device G or a node and a control logic for determining whether the message MA is sent to the node Νθ or the node based on: (1) the control signal CA;(2) a location of the node NA within the plurality of interconnect lines L;and (3) a routing information contained in the message MA. 105. A network according to Claim 104, wherein: the control signal CA is sent by a node Np that is distinct from the node NA, the device G, the node Νθ, and the node Ng. 106. An interconnect apparatus comprising: a plurality of nodes N;and a plurality of interconnect lines L connecting the plurality of nodes N in a predetermined pattern, the plurality of interconnect lines L connecting the plurality of nodes N to include: CA 02227271 2002-02-22 70128-353 103 a node NA having a direct message input interconnection for receiving a message MA and having a plurality of direct message output interconnections for transmitting the message MA to a plurality of nodes including a preferred node Np being most preferred for receiving the message MA, the preferred node Np being determined only by routing information in a header of the message MA and the position of the node NA within the plurality of interconnect lines L;the preferred node Np having a plurality of direct message input interconnections for receiving a message Mp from a plurality of nodes including a priority node Ng which has priority for sending a message to the preferred node Np, the priority node Ng being determined by position of the node Ng within the plurality of interconnect lines L so that : if the node NA is the same as the node Ng, then the message MA is the message Mp and is sent from the node Na to the node Np;and if the node NA is not the same as the node Ng and the node Ng directs a message Mg to the node Np, then the message Mg is sent from the node Ng to the node Np. 107. A network capable of carrying a plurality of messages M concurrently comprising: a plurality of output ports P;a plurality of nodes N, the individual nodes N including a plurality of direct message input CA 02227271 2002-02-22 70128-353 104 interconnections and a plurality of direct message output interconnections, the individual nodes N for passing messages M to predetermined output ports of the plurality of output ports P, the predetermined output ports P being designated by the messages M;and a plurality of interconnect lines in an interconnect structure selectively coupling the nodes in a hierarchical multiple level structure arranged to include a plurality of J+l levels in an hierarchy of levels arranged from a lowest destination level Lq to a highest level Lj which is farthest from the lowest destination level Lq, the output ports P being connected to nodes at the lowest destination level Lq, the level of a node being determined entirely by the position of the node in the structure, the network including a node of the plurality of nodes N, a control signal operating to limit the number of messages that are allowed to be sent to the node to eliminate contention for the predetermined output ports of the node so that the messages M are sent through the direct message output connections of the node Ν/γ to nodes Npj that are a level L no higher than the level of the node N^, the nodes being on a path to the designated predetermined output ports P of the messages M. 108. An interconnect apparatus, comprising: a plurality of nodes;and a plurality of interconnect lines in an interconnect structure selectively coupling the nodes in a hierarchical multiple level structure arranged to include: CA 02227271 2002-02-22 70128-353 105 a plurality of J+l levels with J an integer greater than 0 in an hierarchy of levels arranged from a lowest destination level Lq to a highest level Lj with the level of a node being determined entirely by the position of the node in the structure, the interconnect structure transmitting a plurality of multiple-bit messages entering the interconnect structure unsorted through a plurality of input ports, an individual message M of the plurality of messages being self-routing, the individual message M moving in a plurality of ways including three ways which are sufficient for the message M to exit the interconnect structure through an output port designated by the message M, the three ways being: (1) the message M enters a node in the interconnect structure from a device external to the interconnect structure, the message M designating one or more designated output ports;(2) the message M moves through a node in the interconnect structure without buffering to a designated output port;and (3) the message M moves either through a node U on a level of the interconnect structure without buffering to a different node V on the same level Lfc or moves through the node U on a level L^ of the interconnect structure without buffering to a node W on a level L-[ nearer in the hierarchy to the destination level Lq than the level 109. An interconnect apparatus as claimed in Claim 108, wherein a node N^k on the level has a plurality of interconnections including: CA 02227271 2002-02-22 70128-353 106 a direct data input interconnection from a node Ngk on the level Ιψ;a direct data output interconnection to a node on the level L^;a direct data input interconnection from a node NCm on a ^m where m is greater than k, or from a device Dq external to the interconnect structure;and a direct data output interconnection to a device Dg external to the interconnect structure, or a direct data output interconnection to a node Ngj_ on the level Lj_ where k is greater than i so that the level Lj_ is closer in the hierarchy to the destination level Lq, wherein: among devices having a direct interconnection to the node N^, a precedence relationship exists for sending data to the node so that: a node on the level having a direct interconnection to the node has precedence over a device Dg where the device Dy is a node Ngi on the level Lj_ or a device De external to the interconnect structure;the precedence relationship for a message Mg to be sent from the node to the node and a message Mg to be sent from the device Dg to the node in a same time interval results in the message Μβ being sent and the message Me prevented from being sent. 110. An interconnect apparatus as claimed in Claim 108, wherein the interconnect structure: CA 02227271 2002-02-22 70128-353 107 carries messages and control signals;includes a node Ng including: a direct message input interconnection for receiving a message from a node N^;and a direct message input interconnection for receiving a message Mp from a node Np;and the node N^ has a control logic and a control input interconnection for receiving a control signal from the node Np, the control signal enforcing a precedence of the direct message input interconnection from the node Np to the node Ng over the message input interconnection from the node to the node Ng so that the node Np sends a message Mp to the node Ng and sends a control signal designating a blocking condition to the node N^, the node control logic receives the control signal C& designating the blocking condition and responds to the control signal C^ by blocking transmission of the message destined to arrive at the node Ng at the same time as the message Mp, causing the blocked message M^ to be alternatively sent to a node Nq where the node Nq is distinct from the node Ng and the node Nq is distinct from the node N^. 111. An interconnect apparatus as claimed in Claim 108, wherein the interconnect structure: carries messages and control signals;CA 02227271 2002-02-22 70128-353 108 includes a node Νβ including: a direct message input interconnection for receiving a message from a node N^, the message having a header;and a direct message input interconnection for receiving a message Mp from a node Np;and the node N^ has a control logic and a control input interconnection for receiving a control signal from the node Np, the control signal enforcing a precedence of the direct message input interconnection from the node Np to the node Np over the direct message input interconnection from the node N^ to the node Np so that a message. arriving at the node N^ in the absence of a blocking control signal (¾ in a same time interval causes the node N^ control logic to use a header of the message to determine a selected device for transmitting the message M^, in case the selected device is the node Np then the message being sent to the node Np, wherein the control logic of node N^ determines : whether, in a first condition, the node N^ has a direct output interconnection to a node Npj_ on the level i nearer in the hierarchy to the destination level Lq than the level Lfc in which the node Npi has a pathway to a designated output port designated by the message M^;and whether, in a second condition, the node Npi is unblocked by another message;and CA 02227271 2002-02-22 70128-353 109 the control logic of node N^, when the first and second conditions are satisfied, sends the message to the node Npi;and the control logic of node N^k* when the first and second conditions are not both satisfied, sends the message to a node Nq where node N^k and node are distinct and the node Nei and the node No are distinct. 112. An interconnect apparatus as claimed in Claim 108, further comprising: a plurality of output ports including a plurality of accessible output ports that are accessible to a node N^k on the level Lj^, the accessible output ports being accessible via a pathway through the interconnect nodes;and each of the accessible output ports accessible to the node N^k also being accessible to a node Nei on a level Lj_ nearer in the hierarchy to the destination level Lq than the level the node N^k having a direct output interconnection to the node Np^. 113. An interconnect apparatus as claimed in Claim 108, wherein: a node Np has a first data input interconnection from a node and a second data input interconnection from a node Np;and a control interconnection between the node and node Np resolves contention for sending messages to the node nECA 02227271 2002-02-22 70128-353 110 114. An interconnect apparatus as claimed in Claim 108, further comprising : a node Ng^ on the level having a direct data output interconnection to a node Ν/χΐ a level Li nearer in the hierarchy to the destination level Lq than the level Lfc, and having a precedence relationship with respect to a message Mg which, at a time T, moves through the node Ng and is preferentially sent to the node but is blocked from node Njx by a message Mg so that the message Mg is deflected to a node on the level distinct from node Ng^;a node Ngjç on the level having a direct data output interconnection to a node on the level Lj_, the node Ngi having a pathway through the interconnect nodes to an accessible output port accessible to the message Mg, the message Mg being deflected to pass through the node at a time Τ', a first time step following the time T that a node directs message Mg to a lower level;wherein the interconnect structure disallows the message Mg from being in a position to block the message Mg at the time Τ' . 115. A network according to Claim 108 further comprising: nodes B and C on a level Lj-χ that are nodes capable of receiving a message directly from the node A on a level Lj;devices D and E, each of which is either a node on a level Lj-N where N is greater than 1 or a device external CA 02227271 2002-02-22 70128-353 111 to the network, the node B being capable of sending a message directly to the device D, the node C being capable of sending a message directly to the device E, the device D being incapable of sending a message directly or indirectly to the device E, the device E being incapable of sending a message directly or indirectly to the device D. 116. An interconnect structure comprising: a plurality of nodes;and a plurality of interconnect lines in an interconnect structure selectively coupling the nodes in a structure, the interconnect structure transmitting a plurality of multiple-bit messages entering the interconnect structure unsorted through a plurality of input ports, an individual message M of the plurality of messages being self-routing, the interconnect structure including: a node Ng having a first data input interconnection from a node NA and a second data input interconnection from a node Np distinct from the node Na;and a control interconnection between the node NA and node Np for carrying a control signal to resolve contention for sending messages to the node Np, the control signal being supplied from the node NA or the node Np each distinct from the node Np with which messages are communicated. 117. An interconnect apparatus as claimed in Claim 116, wherein the interconnect structure : carries messages and control signals;CA 02227271 2002-02-22 70128-353 112 includes a node Np including: a direct message input interconnection for receiving a message M^ from a node N^;and a direct message input interconnection for receiving a message Mp from a node Np;and the node N^ has a control logic and a control input interconnection for receiving a control signal (¾ from the node Np, the control signal enforcing a precedence of the direct message input interconnection from the node Np to the node Np over the message input interconnection from the node N^ to the node Np so that the node Np sends a message Mp to the node Np and sends a control signal designating a blocking condition to the node N^, the node N& control logic receives the control signal designating the blocking condition and responds to the control signal by blocking transmission of the message Mj\ destined to arrive at the node Np at the same time as the message Mp, causing the blocked message to be alternatively sent to a node Ny where the node Nq is distinct from the node Np and the node Np is distinct from the node N^. 118. An interconnect apparatus as claimed in Claim 117, wherein: the message has a header;and OA 02227271 2002-02-22 70128-353 113 the message MA arriving at the node in the absence of a blocking control signal CA in a same time interval causes the node NA control logic to use a header of the message MA to determine a selected device for transmitting the message MA, in case the selected device is the node Np then the message MA being sent to the’node Ng. 119. A method of moving messages through an interconnect structure comprising: interconnecting a plurality of devices in a structure, the devices having a plurality of message input terminals and a plurality of message output terminals, a plurality of interconnect lines interconnecting the device with connections from a message output terminal of a sending device to a message input terminal of a receiving device;assigning a priority among a plurality of sending devices having output message terminals coupled to the input message terminal of a single receiving device;entering a message into the interconnect structure for transfer to one or more designated output ports;sending a message, without buffering, from a sending device to a receiving device en route to the one or more output ports using self-routing, with the sending device neither requesting of the receiving device nor receiving from the receiving device, permission to send the message to the receiving device;communicating among a plurality of sending devices that send messages to a single receiving device, a sending device with priority for sending messages to the single receiving device having a control signal output terminal CA 02227271 2002-02-22 70128-353 114 connected by an interconnect line to a control signal input terminal of a sending device without priority, the sending device with priority sending a control signal to the sending device without priority;and deflecting a message intended to be sent from a sending device without priority to an intended receiving device, the deflected message being deflected to an alternative receiving device, the alternative receiving device also being en route to the one or more output ports. 120. A method of sending data comprising: providing an interconnect apparatus including a plurality of nodes N and a plurality of interconnect lines L connecting the plurality of nodes N in a predetermined pattern;connecting the plurality of nodes N using the plurality of interconnect lines L to include: a node having a direct message input interconnection for receiving a message and having a plurality of direct message output interconnections for transmitting the message M& to a plurality of nodes including a preferred node Np being most preferred for receiving the message M^, the preferred node Np being only determined by routing information in a header of the message M^ and the position of the node within the plurality of interconnect lines L;the preferred node Np having a plurality of direct message input interconnections for receiving a message Mp from a plurality of nodes including a priority node Ng which CA 02227271 2002-02-22 70128-353 115 has priority for sending a message to the preferred node Np, the priority node Ng being determined by position of the node Ng within the plurality of interconnect lines L;if the node N^ is the same as the node Νβ, sending the message as the message Mp from the node to the node Np;and if the node N^ is not the same as the node Νβ and the node Νβ directs a message Μβ to the node Np, then sending the message Μβ from the node Np to the node Np. 121. A method of sending messages comprising: providing a network for carrying a plurality of messages M concurrently including: a plurality of output ports P;and a plurality of nodes N, the individual nodes N including a plurality of direct message input interconnections and a plurality of direct message output interconnections, the individual nodes N for passing messages M to predetermined output ports of the plurality of output ports P, the predetermined output ports P being designated by the messages M;and a plurality of interconnect lines in an interconnect structure;selectively coupling the nodes in a hierarchical multiple level structure to include a plurality of J+l levels with J an integer greater than 0 in an hierarchy of levels arranged from a lowest destination level Lq to a highest level Lj which is farthest in the hierarchy from the CA 02227271 2002-02-22 70128-353 116 lowest destination level Lq, the level of a node being determined entirely by the position of the node in the structure, the output ports P being connected to nodes at the lowest destination level Lq, including in the-network a node Ν/χ of the plurality of nodes N;limiting the number of messages M that are allowed to enter the plurality of direct message input interconnections of node to eliminate contention for the predetermined output ports of the node so that the messages M are sent through the direct message output connections of the node to nodes that are a level L no higher than the level of the node Ν^χ, the nodes Np being on a path to the designated predetermined output ports P of the messages M. 122. A method of transmitting a message through an hierarchical interconnect structure including a plurality of nodes and a plurality of interconnect lines, the method comprising : selectively coupling the nodes in an hierarchical multiple level structure arranged to include a plurality of J+l levels with J an integer greater than 0 in an hierarchy of levels arranged from a lowest destination level Lq to a highest level Lj, the level of a node being determined entirely by the position of the node in the structure;entering a plurality of messages into the interconnect structure unsorted through a plurality of input ports;moving, using self-routing, an individual message M of the plurality of messages through nodes, the message M CA 02227271 2002-02-22 70128-353 117 moving in a plurality of ways including three ways which are sufficient for the message M to exit the interconnect structure through an output port designated by the message M, the three ways including: 5 (1) entering the message M to a node in the interconnect structure from a device external to the interconnect structure, the message M designating one or more designated output ports;(2) moving the message M through a node in the 10 interconnect structure without buffering to a designated output port;and (3) ' moving the message M either through a node U on a level Ljç of the interconnect structure without buffering to a different node V on the same level L^, the 15 different node V also having a pathway to a designated output port;or moving the message M through the node U on the level of the interconnect structure without buffering to a node W on a level L| nearer in the hierarchy to the destination level Lg than the level L^. SMART & BIGGAR OTTAWA, CANADA PATENT AGENTS