Hardware Offloading Engine for Multi-Stream NV Storage Commands

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing non-volatile storage systems face inefficiencies in handling multiple input data streams due to limitations in current two-way data streaming protocols, leading to increased latency and communication overhead between host devices and servers.

Innovation Solution

Implementing a hardware offloading engine that processes multiple input data streams using two-way data streaming protocols, allowing for the consolidation of separate input buffers in a single command descriptor format to optimize performance by reducing the number of commands and communications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple input data streams are handled using traditional two-way data streaming protocols, then each data stream requires separate commands and communications, but this increases latency and communication overhead

Engineering Contradiction:
Improvedata stream processing efficiencyVSAvoidlatency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent merges multiple input data streams into a single command descriptor by consolidating multiple input buffer descriptors into one unified structure. This allows the host device to send a single offloading command containing references to multiple input buffers, eliminating the need for separate commands for each data stream and reducing communication overhead between host and server.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The offloading command structure is enhanced to serve multiple functions simultaneously: it can reference multiple input data streams, specify different operations for each stream, and define output destinations all within a single command. This multi-functional command structure reduces the number of communications required while maintaining full processing capability.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Ease of operation

If separate commands are used for each input data stream, then protocol compatibility is maintained, but the number of commands and communications increases

Engineering Contradiction:
Improveprotocol compatibilityVSAvoidnumber of commands
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent segments the command descriptor into multiple fields, each capable of referencing different input buffers. The command structure includes fields such as input buffer 1, input buffer 2, and additional input buffers, allowing systematic organization of multiple data streams within a single protocol-compliant command framework.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Multiple input buffer descriptors are nested within a single offloading command structure. Each input buffer reference is contained within the broader command framework, creating a hierarchical organization where multiple data stream specifications are embedded within one parent command, reducing the overall number of communications.

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS12498870B2Method and system for acceleration or offloading utilizing a multiple input data stream
Publication Date: 2025.12.16 CHENGDU OCEAN ENGINE INFORMATION TECH CO LTD
  • US12498870B2 patent drawing
  • US12498870B2 patent drawing
  • US12498870B2 patent drawing

AI summary

Methods and systems for performing a hardware acceleration process that includes a hardware offloading engine. The hardware offloading engine includes an interface for communicating with a host device and a hardware accelerator for performing the acceleration process. The hardware accelerator has a processor configured to: receive from the interface a hardware offloading command from the host device, the hardware offloading command including an operation code, an input pointer, a total input size, and a first input size, parse the operation code, the input pointer, the total input size, and the first input size from the hardware offloading command, retrieve input data based on the input pointer and the total input size, separate the input data into a first data stream and a second data stream based on the first input size, and execute an offloaded operation on the first data stream and the second data stream.