Multiprocessing packet switching connection system having provision for error correction and recovery
First Claim
1. A cluster controller for use in a multiprocessor system comprising a plurality of processor clusters coupled by way of a switching network, said cluster controller comprising:
- switching means, connected to receive packets from said switching network, for distributing said packets from said switching network in accordance with a destination address contained in said packets;
global storage means for storing data, said global storage means being connected to receive said packets from said switching means;
queue means for buffering packet flow to a plurality of processors, said queue means comprising a plurality of packet queues associated with each of said processors;
a plurality of first busses, each of said first busses being connected to an output port of said switching means and an input port of one of said packet queues, said first busses having a first number of bits;
a plurality of processing element port means for transferring data between said cluster controller and said processors;
a plurality of second busses, each of said second busses being connected to an output port of one of said packet queues and an input port of one of said processing element port means,assembly buffer means for assembling data from said processors into packets, said assembly buffer means comprising one assembly buffer for each of said processors and round robin means for selecting an assembled packet to be output, said assembly buffer means being connected to receive said data from said processing element ports; and
selector means for selecting one packet to be sent to said switching network, said selector means being connected to receive packets from said assembly buffer means and said global store means.
2 Assignments
0 Petitions
Accused Products
Abstract
A large number of processing elements (e.g. 4096) are interconnected by means of a high bandwidth switch. Each processing element includes one or more general purpose microprocessors, a local memory and a DMA controller that sends and receives messages through the switch without requiring processor intervention. The switch that connects the processing elements is hierarchical and comprises a network of clusters. Sixty-four processing elements can be combined to form a cluster and sixty four clusters can be linked by way of a Banyan network. Messages are routed through the switch in the form of packets which includes a command field, a sequence number, a destination address, a source address, a data field (which can include subcommands), and an error correction code. Error correction is performed at the processing elements. If a packet is routed to a non-present or non-functional processor, the swithc reverses the source and destination field and returns the packet to the sender with an error flag. If the packet is misrouted to a functional processing element, the processing element corrects the error and retransmits the packet through the switch over a different path. In one embodiment, each processing element can be provided with a hardward accelerator for database functions. In this embodiment, the multiprocessor of the present invention can be employed as a coprocessor to a 370 host and used to perform database functions.
-
Citations
13 Claims
-
1. A cluster controller for use in a multiprocessor system comprising a plurality of processor clusters coupled by way of a switching network, said cluster controller comprising:
-
switching means, connected to receive packets from said switching network, for distributing said packets from said switching network in accordance with a destination address contained in said packets; global storage means for storing data, said global storage means being connected to receive said packets from said switching means; queue means for buffering packet flow to a plurality of processors, said queue means comprising a plurality of packet queues associated with each of said processors; a plurality of first busses, each of said first busses being connected to an output port of said switching means and an input port of one of said packet queues, said first busses having a first number of bits; a plurality of processing element port means for transferring data between said cluster controller and said processors; a plurality of second busses, each of said second busses being connected to an output port of one of said packet queues and an input port of one of said processing element port means, assembly buffer means for assembling data from said processors into packets, said assembly buffer means comprising one assembly buffer for each of said processors and round robin means for selecting an assembled packet to be output, said assembly buffer means being connected to receive said data from said processing element ports; and selector means for selecting one packet to be sent to said switching network, said selector means being connected to receive packets from said assembly buffer means and said global store means. - View Dependent Claims (2, 3)
-
-
4. A cluster connected multiprocessing system, comprising:
-
a first plurality of processors, wherein each of said processors in said first plurality comprises a local memory; a second plurality of processors, wherein each of said processors in said second plurality comprises a local memory; first cluster controller means connected to receive first data from said first plurality of processors, for assembling said first data into a first plurality of packets comprising a source field, a destination field and a command field, and for outputting said first plurality of packets; second cluster controller means connected to receive second data from said second plurality of processors, for assembling said second data into a second plurality of packets comprising a source field, a destination field and a command field, and for outputting said second plurality of packets; and switching network means connected to receive said first and second plurality of packets from said first and second cluster controller means, for decoding said destination field and for determining which one of said cluster controller means is connected to an addressed processor corresponding to said destination field and for routing each of said packets in said first and second plurality to a corresponding one of said cluster controller means identified by said destination field. - View Dependent Claims (5, 6, 7, 8, 9, 10)
-
-
11. A cluster controller for use in a multiprocessor system comprising a plurality of processing element clusters coupled by way of a switching network, said cluster controller comprising:
-
switching means, connected to receive packets from said switching network, for distributing said packets from said switching network in accordance with a destination address contained in said packets; queue means, coupled to a plurality of said processing elements, for buffering packet flow to said plurality of processing elements, said queue means comprising a plurality of packet queues associated with each of said processing elements, assembly buffer means, coupled to said plurality of said processing elements, for assembling data from said processing elements into packets, said assembly buffer means comprising one assembly buffer for each of said processing elements; and selector means, coupled to said assembly buffer means for selecting a packet from said assembly buffer means to be sent to said switching network.
-
-
12. A packet format for use in a cluster connected multiprocessing system comprising:
-
a command field comprising; a first defined pattern of bits which when decoded by a cluster controller within said multiprocessing system will cause a write to a global memory within said cluster controller; a second defined pattern of bits which identifies a packet including said command field as carrying a message body; a third defined pattern of bits which identifies a packet including said command field as carrying a message header; a sequence number field for carrying any of a sequence number of a packet where said command field defines said packet as a message body, and a count of message packets to follow where said command field defines said packet as a message header; a destination field for carrying an first address of a destination processing element in said cluster connected multiprocessing system; a source field for carrying a second address of a source processing element in said cluster connected system; a data field; and an error correction code field for carrying an error detection and correction code. - View Dependent Claims (13)
-
Specification