Method and apparatus for routing message packets
First Claim
1. Apparatus for routing message packets through a network of nodes that are interconnected in a pattern of two or more dimensions comprising:
- means for generating a message packet that is routed from one node to another in said pattern in accordance with relative address information included in said message packet, said relative address comprising as many digits as there are dimensions, each digit representing the relative displacement of the message packet from the node to which it is addressed,means associated with each dimension for examining a digit of the address of said message packet received at a node to determine if the displacement in that dimension is zero,means associated with each dimension for routing said message packet to another node in the same dimension if an examined digit indicates that the message packet has not reached its destination and if a connection to such node is available,means for passing the message packet from one examining means to another when the message packet is not routed to another node in the same dimension, andstoring and processing means for routing message packets that have reached their destination to a message sink, for temporarily storing message packets that have not been routed on to their destination and for recycling stored message packets to said examining means for further routing.
6 Assignments
0 Petitions
Accused Products
Abstract
A parallel processor array is disclosed comprising an array of processor/memories and means for interconnecting these processor/memories in an n-dimensional pattern having at least 2n nodes through which data may be routed from any processor/memory in the array to any other processor/memory. Each processor/memory comprises a read/write memory and a processor for producing an output depending at least in part on data read from the read/write memory and on instruction information. The interconnecting means comprises means for generating an addressed message packet that is routed from one processor/memory to another in accordance with address information in the message packet and a synchronized routing circuit at each node in the n-dimensional pattern for routing message packets in accordance with the address information in the packets. Preferably the address information in the message packet is relative to the node in which the message packet is being sent and each digit of the address represents the relative displacement of the message packet in one dimension from the node to which the message packet is being sent. Advantageously, the n-dimensional pattern is a Boolean cube of 15 dimensions. With presently available technology, more than one million such processor/memories can be operated in parallel while interconnected by these interconnecting means.
216 Citations
49 Claims
-
1. Apparatus for routing message packets through a network of nodes that are interconnected in a pattern of two or more dimensions comprising:
-
means for generating a message packet that is routed from one node to another in said pattern in accordance with relative address information included in said message packet, said relative address comprising as many digits as there are dimensions, each digit representing the relative displacement of the message packet from the node to which it is addressed, means associated with each dimension for examining a digit of the address of said message packet received at a node to determine if the displacement in that dimension is zero, means associated with each dimension for routing said message packet to another node in the same dimension if an examined digit indicates that the message packet has not reached its destination and if a connection to such node is available, means for passing the message packet from one examining means to another when the message packet is not routed to another node in the same dimension, and storing and processing means for routing message packets that have reached their destination to a message sink, for temporarily storing message packets that have not been routed on to their destination and for recycling stored message packets to said examining means for further routing. - View Dependent Claims (8, 46, 47, 48, 49)
-
-
2. Apparatus for routing message packets through a network of nodes that are interconnected in a pattern of two or more dimensions comprising:
-
means for generating a message packet that is routed from one node to another in said pattern in accordance with relative address information included in said message packet, said relative address comprising as many digits as there are dimensions, each digit representing the relative displacement of the message packet from the node to which it is addressed, at least first and second means for examining the first and second digits, respectively, of the address of said message packet received at a node to determine if the displacement in that dimension is zero, at least first and second means for routing said message packet to another node in the first and second dimensions, respectively, if the examined digit indicates that the message packet has not reached its destination and if a connection to such node is available, first means for providing the message packet to said second means for examining the second digit of the address information when said first connection is not available or said first digit indicates that the message packet has reached its destination in that dimension, second means for providing the message packet to additional examining means or to storing and processing means when a connection is not available or said second digit indicates that the message packet has reached its destination in that dimension, and storing and processing means for routing messages that have reached their destination to a message sink, for temporarily storing messages that have not been routed on to their destination and for recycling stored messages to said first examining means for further routing. - View Dependent Claims (3, 4, 5, 9)
-
-
6. Apparatus for routing message packets through a network of nodes that are interconnected in a pattern of two or more dimensions comprising:
-
means for generating a message packet that is routed from one node to another in said pattern in accordance with relative address information included in said message packet, said relative address comprising as many digits as there are dimensions, each digit representing the relative displacement of the message packet from the node to which it is addressed, for each dimension of the address, a plurality of means for examining the digit associated with that dimension in the address of said message packet received at a node to determine if the displacement in that dimension is zero, for routing said message packet to another node in that dimension if the examined digit indicates that the message packet has not reached its destination in that dimension and if a connection to such node is available, and for providing the message packet to another means at the same node for performing the same steps with respect to another dimension when the examined digit indicates that the message packet has reached its destination in that dimension or when the connection to another node in that dimension is not available, and means connected to the examining, routing and providing means of the last dimension for routing to a data sink message packets that have reached their destination, for temporarily storing message packets that have not been routed on to their destination and for recycling stored message packets to the examining, routing and providing means of the first dimension. - View Dependent Claims (10)
-
-
7. A method for routing message packets through a network of nodes that are interconnected in a pattern of two or more dimensions comprising the steps of
(a) generating a message packet that is routed from one node to another in said pattern in accordance with relative address information included in said message packet, said relative address comprising as many digits as there are dimensions, each digit representing the relative displacement of the message packet from the node to which it is addressed, (b) examining a digit of the address of said message packet received at a node to determine if the displacement in that dimension is zero, (c) routing said message packet to another node if the examined digit indicates that the message packet has not reached its destination and if a connection to such node is available, (d) providing the message packet to means for examining another digit of the address when said first connection is not available or said first digit examined indicates that the message packet has reached its destination in that dimension, (e) repeating steps (b), (c) and (d) until all digits of the relative address have been examined, (f) if the message packet reaches the node to which it is addressed by the time all the digits of the relative address have been examined, providing the message packet to a data sink at said node and if the message packet has not reached the node to which it is addressed repeating steps (b) through (f).
-
12. A method for routing message packets through a network of nodes that are interconnected in a pattern of two or more dimensions comprising the steps of:
-
generating a message packet that is routed from one node to another in said pattern in accordance with address information included in said message packet, said address information comprising as many digits as there are dimensions, each digit providing addressing information for one dimension, examining a digit of the address of said message packet received at a node to determine if the message packet has reached its destination in the dimension associated with that digit, routing said message packet to another node in the same dimension if an examined digit indicates that the message packet has not reached its destination in that dimension and if a connection to such node is available, and if said message packet is not routed, examining another digit of the address of said message packet to determine if the message packet has reached its destination in the dimension associated with that digit. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A method for routing message packets through a network of nodes that are interconnected in a pattern of two or more dimensions comprising the steps of:
-
generating a plurality of message packets each of which is routed from a different node in said pattern to another node in accordance with address information included in said message packet, said address information comprising as many digits as there are dimensions, each digit providing addressing information for one dimension, examining at each node a digit of the address of said message packet received at said node to determine if the message packet has reached its destination in the dimension associated with that digit, routing said message packet to another node in the same dimension if an examined digit indicates that the message packet has not reached its destination in that dimension and if a connection to such node is available, and if said message packet is not routed, examining another digit of the address of said message packet to determine if the message packet has reached its destination in the dimension associated with that digit. - View Dependent Claims (24, 25, 26, 27, 28)
-
-
29. A method for routing message packets through a network of nodes that are interconnected in a pattern of two or more dimensions comprising the steps of:
-
generating a message packet that is routed from one node to another in said pattern in accordance with address information included in said message packet, said address information comprising as many digits as there are dimensions, each digit providing addressing information for one dimension, during a first period of a routing cycle examining a first digit of the address of said message packet at a first node where said digit is then located to determine if the message packet has reached its destination in a first dimension associated with that digit, routing said message packet to another node in the first dimension if an examined digit indicates that the message packet has not reached its destination in that dimension and if a connection to such node is available, during a second period of the same routing cycle, examining a second digit of the address of said message packet at a node where said digit is then located to determine if the message packet has reached its destination in a second dimension associated with that digit, routing said message packet to another node in the second dimension if an examined digit indicates that the message packet has not reached its destination in that dimension and if a connection to such node is available, and during additional periods of the same routing cycle, routing the message packet until each digit of address information is examined at a node where said digit is then located, whereby during one routing cycle, the message packet can be routed serially through as many nodes as there are dimensions. - View Dependent Claims (30, 31, 32, 33, 34, 35)
-
-
36. A method for routing message packets through a network of nodes that are interconnected in a pattern of two or more dimensions comprising the steps of:
-
generating a message packet that is routed from one node to another in said pattern in accordance with address information included in said message packet, said address information comprising as many digits as there are dimensions, each digit providing addressing information for one dimension, during successive periods of a routing cycle examining successive digits of the address of said message packet at a node where the digit being examined is then located to determine if the message packet has reached its destination in a dimension associated with that digit, routing said message packet to another node in that dimension if an examined digit indicates that the message packet has not reached its destination in that dimension and if a connection to such node is available, and repeating the routing cycle until the message packet has reached the node to which it is addressed. - View Dependent Claims (37, 38, 39, 40)
-
-
41. Apparatus for routing message packets through a network of nodes that are interconnected in a pattern of two or more dimensions comprising:
-
means for generating a message packet that is routed from one node to another in said pattern in accordance with address information included in said message packet, said address information comprising as many digits as there are dimensions, each digit providing addressing information for one dimension, means operative during successive periods of a routing cycle for examining successive digits of the address of said message packet at a node where the digit being examined is then located to determine if the message packet has reached its destination in a dimension associated with that digit, and for routing said message packet to another node in that dimension if an examined digit indicates that the message packet has not reached its destination in that dimension and if a connection to such node is available, and means for repeating the routing cycle until the message packet has reached the node to which it is addressed. - View Dependent Claims (42, 43, 44, 45)
-
Specification