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.
Legal claims defining the scope of protection, as filed with the USPTO.
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.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
July 18, 2000
August 8, 2006
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.