USRE47756EExpiredUtilityPatentIndex 72
High performance memory based communications interface
Est. expiryNov 12, 2025(expired)· nominal 20-yr term from priority
H04L 47/245H04L 49/9021H04L 49/9042H04L 47/35H04L 49/9094H04L 47/10H04L 49/90
72
PatentIndex Score
1
Cited by
125
References
20
Claims
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.
Claims
exact text as granted — not AI-modifiedThe invention claimed is:
1. 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 a communications endpoint processor (CEP) kernel, a header to the a prepared payload of a data packet 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 prepared payload, each of the plurality of CEP kernel protocol unit formats 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;
wherein the transforming includes transmitting to the CEP engine a first data structure comprising a virtual address in memory of the header, and at least one second data structure comprising a virtual address in memory of the prepared payload.
2. The method of claim 1 , wherein the size range of the prepared payload corresponding to each of the plurality of CEP kernel protocol units is programmable.
3. The method of claim 1 , wherein the transforming step transforms the CEP kernel protocol unit into plurality of CEP kernel protocol unit formats comprises a medium size CEP kernel format, a large CEP kernel format or and a small CEP kernel format.
4. The method of claim 1 , wherein the transforming step is carried out independently of the CEP kernel.
5. The method of claim 3 , wherein the transforming step includes a step of representing the medium size CEP kernel format of the CEP kernel protocol unit in a segment descriptor that includes a definition of the a physical address of all memory locations at which the data packet is stored.
6. The method of claim 5 , wherein the segment descriptor further includes an ordered plurality of fragment descriptors, each of the plurality of fragment descriptors corresponding to a fragment that contains a portion of the prepared payload and defining a physical memory location of its a corresponding fragment.
7. The method of claim 6 , wherein the plurality of fragment descriptors are stored in order in consecutive physical memory space.
8. The method of claim 1 , wherein the transforming step includes transmitting to the CEP engine a first data structure containing a virtual address in memory of the header, and at least one second data structure containing a virtual address in memory of the payload.
9. The method of claim 5 1, further including steps of comprising: transmitting, by the CEP driver, the first and the at least one second data structure to the CEP engine, and retrieving the header and payload from the memory using the transmitted first and at least one second data structure.
10. The method of claim 3 , wherein the transforming step transforms comprises transforming the CEP kernel protocol unit into the large CEP kernel format when in response to the payload is being larger than a largest packet size that is optimal for transmission through a communication system of the high performance computer system.
11. The method of claim 10 , wherein the transforming step transforms the CEP kernel protocol unit into the large CEP kernel format by comprises segmenting the prepared payload into a plurality of segments, all but a last one of the plurality of segments being of a size that is equal to or less than the largest packet size.
12. The method of claim 3 , wherein the transforming step transforms comprises transforming the CEP kernel protocol unit into the small size CEP kernel format and wherein the method further includes a step of comprises copying the prepared payload into a sequential physical memory segment of a main memory of the high performance computer system.
13. The method of claim 12 , wherein the transforming step generates comprises generating a single fragment descriptor that includes a physical memory location of the prepared payload and wherein the method further includes a step of comprises transmitting the single fragment descriptor to the CEP engine.
14. The method of claim 3 , wherein the transforming step transforms comprises transforming the CEP kernel protocol unit into the small size CEP kernel format and copies the prepared payload directly into a memory coupled to the CEP engine to which the CEP engine has direct access.
15. The method of claim 14 , wherein the memory coupled to the CEP engine includes a memory mapped packet output queue.
16. The method of claim 1 , further including the steps of A method for optimizing a data packet in a high performance computer system, comprising:
appending, by a communications endpoint processor (CEP) kernel, a header to a prepared payload of a data packet to generate a CEP kernel protocol unit;
transmitting, by the CEP kernel, the CEP kernel protocol unit to a CEP driver;
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 prepared payload, each of the plurality of CEP kernel protocol unit formats having a different format for efficient handling by a CEP engine;
providing the CEP engine with a descriptor output queue that is configured as a memory mapped FIFO; and
the CEP driver transmitting, by the CEP driver, the transformed CEP kernel protocol unit to the descriptor output queue.
17. The method of claim 16 , further including the steps of comprising: providing the CEP engine with a memory mapped descriptor output queue ready register,; and the CEP driver writing, by the CEP driver, to the descriptor output queue ready register when in response to the descriptors for at least a portion of the transformed CEP kernel protocol unit have having been written to the descriptor output queue.
18. The method of claim 17 wherein after the writing step, the method further includes a step of the CEP engine, further comprising: in response to the writing, performing, by the CEP engine, a descriptor output queue input operation to accept the descriptors written to the descriptor output queue.
19. The method of claim 16 , further comprising a step of the CEP driver including, by the CEP driver in one of the descriptors to be written to the descriptor output queue, an indication that descriptors for a CEP kernel protocol unit previously written to the descriptor output queue are ready for the CEP engine to remove from the descriptor output queue.
20. The method of claim 1,
wherein the CEP kernel protocol unit is optimized for a processor environment; wherein the CEP driver is optimized for high throughput and low latency; and wherein the CEP engine is configured to automate communication tasks and to interface to a system memory controller for direct memory operations.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.