System and method for avoiding deadlock in multi-node network
First Claim
1. A message passing apparatus for avoiding deadlock in a multi-node computer network, comprising:
- a buffer for receiving network messages of various types including reliable transaction messages associated with transactions that must be completed reliably, and unreliable transaction messages associated with transactions that do not need to be completed reliably, said message types being classified based on their service requirements and messaging protocols;
a decoder for decoding the types of said network messages; and
an output controller coupled to said buffer and to said decoder for controlling the passage of said messages trough said buffer.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer architecture for avoiding a deadlock condition in an interconnection network comprises a messaging buffer having a size pre-calculated to temporarily store outgoing messages from a node. Messages are classified according to their service requirements and messaging protocols, and reserved quotas in the messaging buffer are allocated for different types of messages. The allocations of the reserved quotas are controlled by a mechanism that, to prevent overflow, limits the maximum number of messages that can be outstanding at any time. The messaging buffer is sized large enough to guarantee that a node is always able to service incoming messages, thereby avoiding deadlock and facilitating forward progress in communications. The buffer may be bypassed to improve system performance when the buffer is empty or when data in the buffer is corrupted. In addition, a multicast engine facilitates dense packing of the buffer and derives information from a message header to determine whether there is a multicast to perform and to permit passage of messages. Other considerations to reduce the buffer size are incorporated.
42 Citations
21 Claims
-
1. A message passing apparatus for avoiding deadlock in a multi-node computer network, comprising:
-
a buffer for receiving network messages of various types including reliable transaction messages associated with transactions that must be completed reliably, and unreliable transaction messages associated with transactions that do not need to be completed reliably, said message types being classified based on their service requirements and messaging protocols;
a decoder for decoding the types of said network messages; and
an output controller coupled to said buffer and to said decoder for controlling the passage of said messages trough said buffer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A message passing apparatus for avoiding deadlock in a multi-node computer network, comprising:
-
a buffer for receiving network messages of various types classified based on their service requirements and messaging protocols and including reliable transaction messages associated with transactions that must be completed reliably, posted messages associated with transactions that do not require a reply or other response message, and unreliable transaction messages associated with transactions that do not need to be completed reliably, said buffer having a reserved quota for each of said network message types based on a maximum number of outstanding messages allowed for the respective message type, the size of said reserved quota for said reliable transaction messages being a product of a maximum number of outstanding transactions per node, a maximum number of message fan-outs per transaction, a size of each message type, and half of a total number of nodes requiring reliable communication with one another; a decoder for decoding said network message types; and
an output controller coupled to said buffer and to said decoder for controlling the passage of said messages through said buffer.
-
-
20. A method for avoiding deadlock in a multiple-node computer network using network messages, comprising the steps of:
-
providing a buffer for storing said network messages;
classifying said network messages into different types including reliable transaction messages associated with transactions that must be completed reliably, posted messages associated with transactions that do not require a reply or other response message, and unreliable transaction messages associated with transactions that do not need to be completed reliably;
allocating reserved areas for said types of messages in said buffer, and implementing a flow control mechanism to ensure said reserved allocations are not exceeded.
-
-
21. A data processing system for avoiding deadlock in a multi-node computer network, comprising:
-
an inter-processor communication network;
a first processor node including at least one processor;
a first network interface unit coupled to said first processor node and coupled to said network, said first network interface unit including;
a first buffer for receiving first network messages from said first processor node;
a first decoder for decoding said first network messages into different types; and
a first output controller coupled to said first buffer and to said first decoder for controlling the passage of said first messages through said first buffer;
a second processor node including at least one processor;
a second network interface unit coupled to said second processor node and coupled to said network, said second network interface unit including;
a second buffer for receiving second network messages from said second processor node;
a second decoder for decoding said second network messages into different types; and
a second output controller coupled to said second buffer and to said second decoder for controlling the passage of said second messages.
-
Specification