IP Library › Granted Patent US 7,779,173
Granted Patent B2
US 7,779,173 · App. 11/754,719 · Granted Aug 17, 2010

Direct memory access transfer completion notification

Assignee: International Business Machines Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,779,173
App. No.
11/754,719
Granted
Aug 17, 2010
Kind
B2
Abstract

Methods, apparatus, and products are disclosed for DMA transfer completion notification that include: inserting, by an origin DMA engine on an origin compute node in an injection FIFO buffer, a data descriptor for an application message to be transferred to a target compute node on behalf of an application on the origin compute node; inserting, by the origin DMA engine, a completion notification descriptor in the injection FIFO buffer after the data descriptor for the message, the completion notification descriptor specifying an address of a completion notification field in application storage for the application; transferring, by the origin DMA engine to the target compute node, the message in dependence upon the data descriptor; and notifying, by the origin DMA engine, the application that the transfer of the message is complete, including performing a local direct put operation to store predesignated notification data at the address of the completion notification field.

Claims (60)

1. A method of Direct Memory Access (‘DMA’) transfer completion notification, the method comprising:

inserting, by an origin DMA engine on an origin compute node in an injection first-in-first-out (‘FIFO’) buffer, a data descriptor for an application message to be transferred to a target compute node on behalf of an application on the origin compute node;

inserting, by the origin DMA engine, a completion notification descriptor in the injection FIFO buffer after the data descriptor for the application message, the completion notification descriptor specifying an address of a completion notification field in application storage for the application;

transferring, by the origin DMA engine to the target compute node, the application message in dependence upon the data descriptor; and

notifying, by the origin DMA engine, the application that the transfer of the application message is complete, including performing a local direct put operation to store predesignated notification data at the address of the completion notification field.

2. The method of claim 1 wherein:

the completion notification descriptor specifies an address in DMA storage containing the predesignated notification data; and

performing a local direct put operation to store predesignated notification data at the address of the completion notification field further comprises:

retrieving the predesignated notification data from the address in DMA storage, and

storing the predesignated notification data at the address of the completion notification field in the application storage for the application.

3. The method of claim 1 wherein:

inserting, by an origin DMA engine on an origin compute node in an injection FIFO buffer, a data descriptor for an application message further comprises receiving the data descriptor from a messaging module on the origin compute node; and

inserting, by the origin DMA engine, a completion notification descriptor in the injection FIFO buffer after the data descriptor for the application message further comprises receiving the completion notification descriptor from the messaging module on the origin compute node.

4. The method of claim 1 wherein:

the data descriptor specifies a shared DMA counter; and

transferring, by the origin DMA engine to the target compute node, the application message in dependence upon the data descriptor further comprises disregarding, by the origin DMA engine, a value for the shared DMA counter.

5. The method of claim 1 wherein:

the completion notification descriptor specifies a shared DMA counter; and

notifying, by the origin DMA engine, the application that transfer of the application message is complete further comprises disregarding, by the origin DMA engine, a value for the shared DMA counter.

6. The method of claim 1 wherein the origin compute node and the target compute node are comprised in a parallel computer, the parallel computer comprising a plurality of compute nodes connected for data communications through a data communications network, the data communications network optimized for point to point data communications.

7. An origin compute node capable of Direct Memory Access (‘DMA’) transfer completion notification, the compute node comprising a DMA controller, an origin DMA engine installed upon the DMA controller, a computer processor, and computer memory operatively coupled to the computer processor, the DMA controller, and the origin DMA engine, the computer memory having disposed within it computer program instructions performing the steps of:

inserting, by an origin DMA engine on an origin compute node in an injection first-in-first-out (‘FIFO’) buffer, a data descriptor for an application message to be transferred to a target compute node on behalf of an application on the origin compute node;

inserting, by the origin DMA engine, a completion notification descriptor in the injection FIFO buffer after the data descriptor for the application message, the completion notification descriptor specifying an address of a completion notification field in application storage for the application;

transferring, by the origin DMA engine to the target compute node, the application message in dependence upon the data descriptor; and

notifying, by the origin DMA engine, the application that the transfer of the application message is complete, including performing a local direct put operation to store predesignated notification data at the address of the completion notification field.

8. The origin compute node of claim 7 wherein:

the completion notification descriptor specifies an address in DMA storage containing the predesignated notification data; and

performing a local direct put operation to store predesignated notification data at the address of the completion notification field further comprises:

retrieving the predesignated notification data from the address in DMA storage, and

storing the predesignated notification data at the address of the completion notification field in the application storage for the application.

9. The origin compute node of claim 7 wherein:

inserting, by an origin DMA engine on an origin compute node in an injection FIFO buffer, a data descriptor for an application message further comprises receiving the data descriptor from a messaging module on the origin compute node; and

inserting, by the origin DMA engine, a completion notification descriptor in the injection FIFO buffer after the data descriptor for the application message further comprises receiving the completion notification descriptor from the messaging module on the origin compute node.

10. The origin compute node of claim 7 wherein:

the data descriptor specifies a shared DMA counter; and

transferring, by the origin DMA engine to the target compute node, the application message in dependence upon the data descriptor further comprises disregarding, by the origin DMA engine, a value for the shared DMA counter.

11. The origin compute node of claim 7 wherein:

the completion notification descriptor specifies a shared DMA counter; and

notifying, by the origin DMA engine, the application that transfer of the application message is complete further comprises disregarding, by the origin DMA engine, a value for the shared DMA counter.

12. The origin compute node of claim 7 wherein the origin compute node and the target compute node are comprised in a parallel computer, the parallel computer comprising a plurality of compute nodes connected for data communications through a data communications network, the data communications network optimized for point to point data communications.

13. A computer program product for Direct Memory Access (‘DMA’) transfer completion notification, the computer program product disposed upon a recordable, computer readable medium, the computer program product comprising computer program instructions performing the steps of:

inserting, by an origin DMA engine on an origin compute node in an injection first-in-first-out (‘FIFO’) buffer, a data descriptor for an application message to be transferred to a target compute node on behalf of an application on the origin compute node;

inserting, by the origin DMA engine, a completion notification descriptor in the injection FIFO buffer after the data descriptor for the application message, the completion notification descriptor specifying an address of a completion notification field in application storage for the application;

transferring, by the origin DMA engine to the target compute node, the application message in dependence upon the data descriptor; and

notifying, by the origin DMA engine, the application that the transfer of the application message is complete, including performing a local direct put operation to store predesignated notification data at the address of the completion notification field.

14. The computer program product of claim 13 wherein:

the completion notification descriptor specifies an address in DMA storage containing the predesignated notification data; and

performing a local direct put operation to store predesignated notification data at the address of the completion notification field further comprises:

retrieving the predesignated notification data from the address in DMA storage, and

storing the predesignated notification data at the address of the completion notification field in the application storage for the application.

15. The computer program product of claim 13 wherein:

inserting, by an origin DMA engine on an origin compute node in an injection FIFO buffer, a data descriptor for an application message further comprises receiving the data descriptor from a messaging module on the origin compute node; and

inserting, by the origin DMA engine, a completion notification descriptor in the injection FIFO buffer after the data descriptor for the application message further comprises receiving the completion notification descriptor from the messaging module on the origin compute node.

16. The computer program product of claim 13 wherein:

the data descriptor specifies a shared DMA counter; and

transferring, by the origin DMA engine to the target compute node, the application message in dependence upon the data descriptor further comprises disregarding, by the origin DMA engine, a value for the shared DMA counter.

17. The computer program product of claim 13 wherein:

the completion notification descriptor specifies a shared DMA counter; and

notifying, by the origin DMA engine, the application that transfer of the application message is complete further comprises disregarding, by the origin DMA engine, a value for the shared DMA counter.

18. The computer program product of claim 13 wherein the origin compute node and the target compute node are comprised in a parallel computer, the parallel computer comprising a plurality of compute nodes connected for data communications through a data communications network, the data communications network optimized for point to point data communications.

Assignments (2)
CONFIRMATORY LICENSE Recorded Feb 5, 2008
From: INTERNATIONAL BUSINESS MACHINES CORP.
To: ENERGY, U.S. DEPARTMENT OF
Reel/Frame 020452/0740 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2007
From: ARCHER, CHARLES J; BLOCKSOME, MICHAEL A; PARKER, JEFFREY J
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 019351/0276 →
Continuity (1)
Related Publication 20080301327A1 · Dec 4, 2008