TOE NIC Direct Data Placement to User Buffer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional computer systems face significant network processing overhead due to CPU occupation by network message processing, leading to reduced availability for other data processing tasks, as high data transfer rates overwhelm the host CPU and require extensive processing in the kernel layer, particularly in the TCP/IP stack, resulting in inefficient system performance.
Innovation Solution
Implementing direct data placement of network message data from a network interface card (NIC) to a user buffer, utilizing a TCP Offload Engine (TOE) capable NIC and a ULP handler to process and strip headers, allowing direct writing of message data to a designated memory location in the user buffer without intermediate copying through the kernel buffer.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If high data transfer rates are implemented through modern NICs, then network throughput is improved, but CPU processing capacity is overwhelmed
Solution Approach 1:
The patent extracts the TCP/IP protocol processing function from the CPU kernel and relocates it to a dedicated TOE device. The TOE handles TCP segmentation, reassembly, and protocol header processing independently, removing this computationally intensive workload from the CPU. This allows the CPU to focus on application processing while the TOE manages network protocol operations, resolving the contradiction between high network throughput and CPU processing capacity.
Solution Approach 2:
The patent introduces an intermediary mechanism (the TOE device with its own processing engine) between the NIC and the CPU kernel. This intermediary handles the complex TCP/IP processing tasks that would otherwise burden the CPU, acting as a buffer that enables high-speed network data transfer without overwhelming the central processing unit.
2Ease of operation
If conventional kernel layer processing is used for network messages, then protocol decoding is achieved, but network processing overhead increases
Solution Approach 1:
The patent replaces the software-based kernel layer protocol processing with a hardware-based TOE engine. The TOE device performs TCP/IP protocol decoding, header stripping, and data reassembly using dedicated hardware circuits and processing logic, significantly faster than software execution. This substitution eliminates the time-consuming kernel processing overhead while maintaining full protocol decoding capability.
3Productivity
If direct data placement is implemented from NIC to user buffer, then CPU availability is improved, but system complexity increases
Solution Approach 1:
The TOE device serves as an intelligent intermediary that manages the direct data placement from NIC to user buffer. It handles the complexity of determining the correct destination buffer, performing the actual data transfer, and managing memory operations autonomously. This relieves the CPU from involvement in data copying operations while the TOE's internal complexity handles the placement logic, resolving the contradiction between CPU availability and system complexity.
Data Source
AI summary
Techniques, systems, and apparatus for conducting direct data placement of network message data to a final destination in a user buffer are disclosed. Generally, the invention is configured to conduct direct data copying from a NIC memory to a final destination user buffer location without any intermediate copying to a kernel buffer. The invention includes a method that involves receiving network delivered messages by a NIC of a local computer. The message is stored in the memory of the NIC. The headers are stripped from the message and processed. A ULP handler of the local computer is invoked to process the ULP header of the network message. Using information obtained from the processed ULP header, suitable memory locations in a user buffer are identified and designated for saving associated message data. The message data is then directly placed from the NIC memory to the designated memory location in the user buffer without intermediate copy steps like DMA.


