IP Library Granted Patent US 7,089,289
Granted Patent B1
US 7,089,289 · App. 09/619,051 · Granted Aug 8, 2006

Mechanisms for efficient message passing with copy avoidance in a distributed system using advanced network devices

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,089,289
App. No.
09/619,051
Granted
Aug 8, 2006
Kind
B1
Abstract

An efficient mechanism for sending messages without the use of intermediate copies (i.e. without the staging of data) is provided. In particular an interface specification which allows use users of a transport protocol is defined so as to lend itself to efficient implementations. The interface specification is a complete and robust set of user functions usable within systems desiring reliable and efficient zero copy transport protocols. Two methods are provided to accomplish the implementation of an efficient zero copy protocol. The first method is especially useful in systems where the network device has limited capabilities in terms of hardware, message fragmentation and message reassembly. An additional RDRAM memory allows data to reside in an adapter while handshake operations take place between an adapter and a node so as to specify the final destination of the data. The second method takes advantage of network devices with advanced features which are exploited for maximum efficiency.

Claims (17)

1. A method for sending a message stored in the memory of a first data processing system into the memory of a second data processing system, said method comprising the steps of:

establishing, via at least one application program interface call to an operating system, a message structure which includes a message and a target memory location in an application level address space;

transmitting said message structure from said first data processing system to a temporary memory in an adapter which is connected to said second data processing system;

transferring, from said adapter to said second data processing system, an indication that said temporary memory in said adapter contains the message structure received from said first data processing system;

transferring, from said second data processing system to said adapter, real address information as determined by said target memory location, said target memory location being an application level address space location;

transferring said message, from said temporary memory in said adapter, directly into said target memory location in the memory of said second data processing system, said transfer occurring via direct memory access;

transferring, from said adapter to said second data processing system, an indication that said target location now contains the message received from said first data processing system; and

transmitting an acknowledgment of receipt of said message from said second data processing system to said first data processing system.

2. The method of claim 1 further including the step of advancing indicators in said first data processing system in preparation of transmitting another message, whereby a number of messages may be sent in rapid sequence.

3. A method for sending a message from a first data processing system to the memory of a second data processing system, said method comprising the steps of:

establishing, via at least one application program interface call to an operating system, a message structure which includes a message and a target memory location in an application level address space;

transmitting said message structure from said first data processing system to a temporary memory in an adapter which is connected to said second data processing system;

transferring, from said adapter to said second data processing system, an indication that said temporary memory in said adapter contains the message structure received from said first data processing system;

transferring, from said second data processing system to said adapter, real address information as determined by said target memory location, said target memory location being an application level address space location;

transferring said message, from said temporary memory in said adapter, directly into said target memory location in the memory of said second data processing system, said transfer occurring via direct memory access;

transferring, from said adapter to said second data processing system, an indication that said target memory location contains the message received from said first data processing system; and

transmitting an acknowledgment of receipt of said message from said second data processing system to said first data processing system.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: LINKEDIN CORPORATION
Reel/Frame 035201/0479 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 6, 2000
From: BLACKMORE, ROBERT S.; GILDEA, KEVIN J.; GOVINDARAJU,RAMA K.; SHAH, GAUTAM H.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 011239/0948 →