Back to results
US 8,509,255 B2Granted
Hardware packet pacing using a DMA in a parallel computer
AssigneeInternational Business Machines Corporation
InventorsDong Chen, Phillip Heidelberger, Pavlos Vranas
Life of this patent
Estimating the term…
Abstract
Method and system for hardware packet pacing using a direct memory access controller in a parallel computer which, in one aspect, keeps track of a total number of bytes put on the network as a result of a remote get operation, using a hardware token counter.
Claims16
A method of hardware packet pacing using a direct memory access controller in a multi-node parallel computer, comprising:
- establishing in a first node a token counter on a direct memory access controller initially set to a first predetermined value;
- establishing in the first node maximum pacing submessage size, the maximum pacing submessage size being a value less than or equal to the first predetermined value;
- establishing in the first node a remaining bytes count, the remaining bytes count initially set to a message length field value in an original remote get packet;
- setting in the first node a submessage size to the maximum pacing submessage size or the remaining bytes count, whichever is less;
- waiting in the first node for the token counter to be greater than or equal to the submessage size;
- injecting a remote get packet of the submessage size to a network of at least one or more other nodes when the token counter is greater than or equal to the submessage size and decrementing the token counter and the remaining bytes count by the submessage size;
- and
- repeating the steps of setting, waiting and injecting until the remaining bytes count is zero.
5 more elements
A method of hardware packet pacing using a direct memory access controller in a multi-node parallel computer, comprising:
- detecting in a first node a remote get message descriptor in an injection fifo associated with a direct memory controller;
- retrieving in the first node put descriptor information from information specified in the remote get message descriptor, the put description information including at least a message size, an injection offset, a reception offset, an injection counter identifier and a reception counter identifier;
- setting in the first node a pacing submessage size;
- setting in the first node a token counter to a predetermined value greater than the pacing size;
- assembling in the first node a new remote get packet using the put description information, the new remote get packet specifying a message size that is at most the pacing size;
- before sending the new remote get packet, waiting in the first node until the token counter is greater than or equal to the message size specified in the new remote get packet;
- sending the new remote get packet to at least one or more other nodes;
- decrementing in the first node the token counter by the message size specified in the new remote get packet;
- and
- incrementing in the first node the injection offset and the reception offset by the message size specified in the new remote get packet;
- and
- repeating the steps of assembling, waiting, sending, decrementing and incrementing until the message size of the remote get has been processed by all the new remote get packets.
9 more elements
Dependencies are inferred from the claim text.