Zero-Copy Packet Processing via Header-Payload Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems face bandwidth issues and performance degradation due to the need to transfer and store all packets in the DPU memory, leading to memory overload and inefficient data transfer in peripheral devices.
Innovation Solution
Storing packet headers in the DPU memory while corresponding payloads remain in the host memory, using descriptors to match processed headers with payloads, allowing efficient processing and retrieval without overwhelming the DPU memory.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If all packets are transferred and stored in the DPU memory, then complete packet processing is enabled, but memory overload and performance degradation occur
Solution Approach 1:
The packet is divided into two segments: headers are transferred to and stored in DPU memory, while payloads remain in host memory. This segmentation allows the DPU to process headers without loading entire packets, reducing memory load while maintaining processing capability.
Solution Approach 2:
The payload portion of each packet is extracted from the DPU memory transfer and kept in host memory. Only the essential header information is extracted and transferred to the DPU, reducing the quantity of data stored in DPU memory while enabling complete packet processing through descriptor-based retrieval.
2Device complexity
If all packets are transferred to DPU memory, then processing is simplified, but data transfer efficiency decreases
Solution Approach 1:
By segmenting packets into headers and payloads, the system transfers only headers to the DPU, reducing data transfer volume and improving efficiency. The descriptors enable efficient retrieval of payloads from host memory without requiring full packet transfers.
Solution Approach 2:
Descriptors act as intermediaries between the DPU and host memory, enabling the DPU to efficiently retrieve payloads without direct access to host memory. This intermediary mechanism maintains processing simplicity while optimizing data transfer efficiency.
3Reliability
If complete packets are stored in DPU memory, then packet processing is complete, but memory bandwidth is consumed
Solution Approach 1:
The packet processing is segmented into two phases: header processing in DPU memory and payload retrieval from host memory using descriptors. This ensures complete packet processing while minimizing memory bandwidth consumption by avoiding transfer of payload data to the DPU.
Solution Approach 2:
The payload extraction and retention in host memory eliminates unnecessary data movement, ensuring complete packet processing is maintained through descriptor-based access while significantly reducing memory bandwidth usage compared to transferring complete packets.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
In one embodiment, a system includes a peripheral device including a memory access interface to receive from a host device headers of packets, while corresponding payloads of the packets are stored in a host memory of the host device, and descriptors being indicative of respective locations in the host memory at which the corresponding payloads are stored, a data processing unit memory to store the received headers and the descriptors without the payloads of the packets, and a data processing unit to process the received headers, wherein the peripheral device is configured, upon completion of the processing of the received headers by the data processing unit, to fetch the payloads of the packets over the memory access interface from the respective locations in the host memory responsively to respective ones of the descriptors, and packet processing circuitry to receive the headers and payloads of the packets, and process the packets.