High performance memory based communications interface
First Claim
1. A method for transmitting a data packet to a communications medium, the data packet including a header and a payload, the method comprising the steps of:
- segmenting the data packet into a plurality of fragments stored in non-contiguous portions of a computer memory;
generating a fragment descriptor for each of the plurality of fragments such that one of the generated fragment descriptors is associated with the header and at least one other of the generated fragment descriptors is associated with the payload;
storing the generated fragment descriptors in contiguous portions of the computer memory;
sending the stored plurality of fragment descriptors across an interface;
retrieving the sent fragment descriptors from the interface;
reassembling the segmented data packet by retrieving the header and the payload associated with the retrieved fragment descriptors from the computer memory, and transmitting the reassembled data packet to the communications medium.
3 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present invention include enhanced functionalities and components within a Communication Endpoint Processor (CEP) that act as an interface between computational and communications domains. The embodiments disclosed herein deliver a complete memory mapped high performance interface that has the ability to support the simultaneous transmission of multiple frames of multiple sizes, and that has the ability to interrupt the transmission of lower priority frames in order to send higher priority frames.
148 Citations
53 Claims
-
1. A method for transmitting a data packet to a communications medium, the data packet including a header and a payload, the method comprising the steps of:
-
segmenting the data packet into a plurality of fragments stored in non-contiguous portions of a computer memory;
generating a fragment descriptor for each of the plurality of fragments such that one of the generated fragment descriptors is associated with the header and at least one other of the generated fragment descriptors is associated with the payload;
storing the generated fragment descriptors in contiguous portions of the computer memory;
sending the stored plurality of fragment descriptors across an interface;
retrieving the sent fragment descriptors from the interface;
reassembling the segmented data packet by retrieving the header and the payload associated with the retrieved fragment descriptors from the computer memory, and transmitting the reassembled data packet to the communications medium. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A computer communications interface for transmitting a data packet to a communications medium, the data packet including a header and a payload, comprising:
-
a communications endpoint processor (CEP) interface;
a CEP kernel coupled to the CEP interface, the CEP kernel being configured to segment the data packet into a plurality of fragments, to store the plurality of fragments in non-contiguous portions of a computer memory, to generate a fragment descriptor for each of the plurality of fragments such that one of the generated fragment descriptors is associated with the header and at least one other of the generated fragment descriptors is associated with the payload, to store the generated fragment descriptors in contiguous portions of the computer memory and to send the stored plurality of fragment descriptors across the CEP interface, and a CEP engine coupled to the CEP interface, the CEP engine being configured to retrieve the fragment descriptors from the interface, to reassemble the segmented data packet by retrieving the header and the payload associated with the retrieved fragment descriptors from the computer memory, and to transmit the reassembled data packet to the communications medium. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34)
-
-
33. A method for a local computational host to communicate with a remote computational host, the local and remote computational hosts each comprising an operating system, a workload;
- a communication endpoint processor (CEP) kernel coupled to the workload over an interface and a CEP engine coupled to the CEP kernel over a CEP engine interface, the method comprising the steps of;
the local workload invoking a one sided remote memory operation across the interface to the local CEP kernel;
the local CEP kernel constructing a memory operation command;
the local CEP kernel sending the constructed memory operation command across a local CEP kernel to remote CEP engine protocol;
the remote CEP engine consuming and executing the sent memory operation command without invoking services of the remote CEP kernel, the remote workload or of the remote operating system, and the local CEP engine receiving one of a result of the executed memory operation command and a confirmation that the sent memory operation command has been carried out.
- a communication endpoint processor (CEP) kernel coupled to the workload over an interface and a CEP engine coupled to the CEP kernel over a CEP engine interface, the method comprising the steps of;
-
35. A method for optimizing a data packet in a high performance computer system, comprising the steps of:
-
preparing a payload of the data packet;
passing the prepared payload to a communications endpoint processor (CEP) kernel;
appending, by the CEP kernel, a header to the prepared payload to generate a CEP kernel protocol unit that is optimized for a processor environment;
transmitting, by the CEP kernel, the CEP kernel protocol unit to a CEP driver that is optimized for high throughput and low latency, and transforming, by the CEP driver, the transmitted CEP kernel protocol unit into one of a plurality of CEP kernel protocol unit formats depending upon a size range of the payload, each of the plurality having a different format for efficient handling by a CEP engine that is configured to automate communication tasks and to interface to a system memory controller for direct memory operations. - View Dependent Claims (36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53)
-
Specification