Datatype Engine Inline Compaction for Non-Contiguous Data Transfer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional systems face inefficiencies in data transfer due to serialized data copy operations when sending or receiving data in non-contiguous buffers, particularly when transmitting subsets of data elements in an 'array of structures' format, leading to prolonged communication times and inefficient use of high-bandwidth network resources.

Innovation Solution

A datatype engine (DTE) is implemented in hardware, residing in the network interface card (NIC) or ASIC, which performs gather/scatter operations using datatype descriptors to generate addresses and lengths, enabling inline compaction and reducing redundant memory usage, thus optimizing data transfers by handling multi-dimensional arrays efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data copy operations are performed in software, then data can be transferred between non-contiguous buffers, but communication time is significantly extended due to serialization

Engineering Contradiction:
Improvedata transfer accuracyVSAvoidcommunication time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent replaces software-based data copy operations with a hardware datatype engine that performs gather/scatter operations in parallel. This hardware engine processes multiple data elements simultaneously, eliminating the serialization inherent in software loops and significantly reducing communication time while maintaining data transfer accuracy.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The patent changes the operational parameters by implementing inline compaction that dynamically determines the number of elements to transfer based on byte masks. This allows the system to transfer only the necessary subset of data elements, optimizing both speed and resource utilization compared to traditional fixed-size buffer transfers.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If all data elements in an array of structures are transmitted, then complete data is transferred, but network resources are inefficiently utilized when only a subset is needed

Engineering Contradiction:
Improvedata completenessVSAvoidnetwork resource efficiency
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent extracts only the necessary subset of data elements for transmission by using byte masks to identify which elements need to be transferred. The datatype engine processes the array of structures and selectively gathers only the required elements, eliminating unnecessary network traffic and improving resource efficiency while ensuring data completeness for the needed subset.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent implements partial action by transferring only the necessary portion of data elements rather than all elements in the array. The byte mask mechanism enables precise control over which elements are included, avoiding the waste of bandwidth and energy that would result from transmitting complete arrays when only subsets are required.

Inventive Principle:
Principle #16Partial or excessive action

3Ease of operation

If traditional software-based pack and unpack operations are used, then data can be copied between buffers, but device complexity increases and productivity decreases

Engineering Contradiction:
Improvedata copying capabilityVSAvoiddata transfer throughput
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent replaces complex software-based pack and unpack operations with a dedicated hardware datatype engine that performs data movement and compaction in a single streamlined process. This hardware implementation eliminates the need for separate software copying stages, reducing device complexity while dramatically increasing data transfer throughput through parallel processing.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS12056044B2Mechanism to represent data structures for a datatype engine and provide inline compaction
Publication Date: 2024.08.06 HEWLETT PACKARD ENTERPRISE DEV LP
  • US12056044B2 patent drawing
  • US12056044B2 patent drawing
  • US12056044B2 patent drawing

AI summary

A system, method, and apparatus are provided to facilitate data structures for a datatype engine and provide inline compaction. The system receives, by a network interface card (NIC), a command to read data from a host memory, wherein the command indicates a datatype. The system generates a plurality of read requests comprising offsets from a base address and corresponding lengths based on the datatype. The system issues the plurality of read requests to the host memory to obtain the data from the host memory. The system obtains a byte-mask descriptor corresponding to the datatype. The system performs, based on the obtained data and the byte-mask descriptor, on-the-fly compaction of the obtained data, thereby allowing the NIC to return a requested subset of the obtained data.