Static end to end retransmit apparatus and method
First Claim
1. A method for retransmission of transactions in a multi-processor computer architecture, comprising:
- at a source node in the computer architecture, the source node comprising a retransmit buffer, designating a transaction for transmission to a destination node in the computer architecture, the destination node comprising a receive buffer, wherein the transaction is designated for transmission over a first path in a first flow control class;
retrieving a sequence number for the designated transaction;
comparing the retrieved sequence number for the designated transaction to sequence numbers in the retransmit buffer, wherein if the comparison does not show a match;
attaching the retrieved sequence number to the designated transaction, placing the designated transaction in the retransmit buffer, and sending the designated transaction to the destination node; and
wherein if the comparison shows a match, transmitting the designated transaction over a second path.
2 Assignments
0 Petitions
Accused Products
Abstract
In a multiprocessor computer system with multiple nodes, a static end to end retry apparatus and method uses the concept of sequence numbers combined with a path number. All transactions sent along a path are delivered in order to remove any time dependency. The apparatus and method ensure there are no duplicate transactions through the use of special probe and plunge transactions and their respective responses. The apparatus and method also allow for any number of alternate paths being active simultaneously, such that if one path fails, the remaining alternate paths can continue on the communication (along with the backup alternate path if desired) as usual without any loss of transactions. Each node keeps track of transactions the node has sent over time to every other node, as well as every transaction the node has received from every other node along each active path for each flow control class. To accomplish this tracking function, two data structures exist. A send_seqid, representing the sequence identification (ID) (or sequence number) for the last transaction sent by the sending (or source) node to a given destination node exists along any given active path, and a flow control class. A second structure is a receive_seqid, representing the sequence ID (sequence number) of the last transaction that a destination node received and for which the destination node sent an acknowledgement (ACK) back to the source node, for each node, along every active path, and for each flow control class. The send_seqid and the receive_seqid may be stored in send_seqid and receive_seqid tables at each node in the multiprocessor computer system.
-
Citations
21 Claims
-
1. A method for retransmission of transactions in a multi-processor computer architecture, comprising:
-
at a source node in the computer architecture, the source node comprising a retransmit buffer, designating a transaction for transmission to a destination node in the computer architecture, the destination node comprising a receive buffer, wherein the transaction is designated for transmission over a first path in a first flow control class;
retrieving a sequence number for the designated transaction;
comparing the retrieved sequence number for the designated transaction to sequence numbers in the retransmit buffer, wherein if the comparison does not show a match;
attaching the retrieved sequence number to the designated transaction, placing the designated transaction in the retransmit buffer, and sending the designated transaction to the destination node; and
wherein if the comparison shows a match, transmitting the designated transaction over a second path. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. An apparatus for retransmission of transactions in a multi-processor computer architecture, comprising:
-
a source node having a retransmit buffer, wherein the source node stores transactions transmitted from the source node;
a send_seqid table comprising a sequence number for each transaction sent from the source node;
a destination node comprising a receive buffer, wherein the destination node stores transactions transmitted from the destination node;
a receive_seqid table comprising a sequence number for each transaction sent from the destination node, wherein the source node sends normal transactions to the destination node and the destination node sends acknowledgements for the normal transactions to the source node, wherein if the source node does not receive an acknowledgement within a specified time, a corresponding normal transaction in the retransmit buffer times out; and
a probe transaction, whereby the source node queries the destination node for a timed-out transaction. - View Dependent Claims (17, 18, 19, 20, 21)
-
Specification