NIC Datatype Engine for Zero-Copy Non-Contiguous Data Transfer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional systems require inefficient data copy operations in software, such as packing and unpacking data into contiguous buffers, which significantly extend communication time and hinder high performance computing.
Innovation Solution
A datatype engine in hardware, integrated into the network interface card (NIC) or application-specific integrated circuit (ASIC), performs gather/scatter operations using datatype descriptors to generate addresses and lengths, eliminating software-based data copies and optimizing data transfer.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If data is copied or packed into contiguous buffers using software, then data transfer can be performed, but communication time is significantly extended
Solution Approach 1:
The patent replaces software-based data copying and packing operations with hardware-based direct memory access (DMA) operations. The DMA controller directly transfers data between non-contiguous source buffers and destination buffers without requiring software intervention, thereby eliminating the time-consuming pack/unpack operations and significantly reducing communication time.
Solution Approach 2:
The patent extracts the data copying and packing functionality from the software domain and implements it in hardware through the DMA controller. This separation allows the software to focus on higher-level communication logic while the hardware handles the low-level data movement efficiently, resolving the contradiction between data transfer capability and communication time.
2Ease of operation
If software-based pack and unpack operations are used, then data can be transferred between non-contiguous buffers, but the operations are serialized with data transfer communications
Solution Approach 1:
The patent replaces the software-based pack/unpack operation sequence with a hardware-based DMA transfer that occurs in parallel with communication operations. The DMA controller manages the complexity of non-contiguous buffer transfers internally, presenting a simple interface to software while achieving high throughput through hardware optimization.
Solution Approach 2:
The patent merges the data copying, packing, and transfer operations into a single hardware-based DMA transaction. Instead of performing these operations sequentially in software, the DMA controller combines them into one efficient hardware operation that can proceed in parallel with communication protocols, thereby improving productivity without sacrificing ease of operation.
3Reliability
If data is transferred through contiguous buffers, then traditional communication protocols can be used, but resource usage increases due to intermediate buffering
Solution Approach 1:
The patent extracts the intermediate contiguous buffer requirement from the data transfer path by using DMA to directly access non-contiguous buffers. This eliminates the need for additional buffering resources while maintaining communication reliability through hardware-managed data integrity checks and error handling.
Solution Approach 2:
The DMA controller serves as an intermediary that enables direct transfer between non-contiguous buffers without requiring intermediate contiguous buffering. It manages the complexity of addressing and data movement internally, allowing efficient resource utilization while maintaining the reliability needed for correct data transfer.
Data Source
AI summary
A method and apparatus are provided for facilitating a datatype engine (DTE) to support high performance computing. A network interface card (NIC) receives, via a message passing interface, a command to read data from a host memory. The NIC determines that the command indicates a first datatype descriptor stored in the NIC. The NIC forms, based on the command, a packet which indicates a base address and a length associated with the data to be read from the host memory and passes the packet to the DTE. The DTE generates a plurality of read requests comprising offsets from the base address and corresponding lengths based on the first datatype descriptor. The DTE passes the plurality of read requests to a direct memory access module, thereby allowing the NIC to access the host memory while eliminating copies of the data on the host during transfer of the command across a network.


