SSD-to-FPGA Streaming via Stream Buffers Without Host Overhead

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current storage systems, particularly those using NVMe SSDs, face complexity and security issues due to the need for exposing data layout details during data transfer between SSDs and secondary devices like FPGAs, which limits direct streaming capabilities and introduces performance limitations and latencies.

Innovation Solution

A method and system for direct streaming between a storage device (SSD) and a secondary device (FPGA) that allows data transfer without exposing internal data layout details, using a stream buffer to manage data and minimize host CPU intervention, enabling efficient data processing and security by maintaining data layout and translations private to the host.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data layout details are exposed during data transfer between SSD and secondary device, then data transfer can be performed, but system complexity and security issues increase

Engineering Contradiction:
Improvedata transfer capabilityVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a computational storage drive acting as an intermediary device between the SSD and secondary device. This intermediary performs data processing and transformation internally, allowing data transfer without exposing the SSD's internal data layout details to the secondary device, thus resolving the contradiction between enabling data transfer and maintaining system simplicity/security

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system is segmented into distinct functional components: the SSD for storage, the computational storage drive for processing and protocol management, and the secondary device for computation. This segmentation allows each component to operate independently with well-defined interfaces, enabling data transfer while hiding internal complexities

Inventive Principle:
Principle #1Segmentation

2Reliability

If host CPU intervention is used to manage data transfer, then data layout details can be managed securely, but performance limitations and latencies increase

Engineering Contradiction:
Improvedata securityVSAvoiddata transfer speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The computational storage drive performs self-service by autonomously managing data transfer protocols and processing between the SSD and secondary device without requiring host CPU intervention. The device independently handles data layout translations and security management, enabling secure high-speed data transfer while reducing host CPU load and latency

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The computational storage drive performs preliminary data processing and protocol preparation before data transfer occurs. By pre-configuring data layouts and processing requirements, the system enables secure transfers at high speeds without real-time host CPU involvement during the actual data movement

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11379374B2Systems and methods for streaming storage device content
Publication Date: 2022.07.05 SAMSUNG ELECTRONICS CO LTD
  • US11379374B2 patent drawing
  • US11379374B2 patent drawing
  • US11379374B2 patent drawing

AI summary

A method of streaming between a storage device and a secondary device includes receiving, by the storage device, from the secondary device, a memory read request command including a memory address of the storage device corresponding to a stream identity, the stream identity being unique between the storage device and the secondary device; streaming, by the storage device, data between the storage device and the secondary device by transferring the data corresponding to the memory address of the storage device to the secondary device; determining, by the storage device, that the data requested by the secondary device in the memory read request command is transferred to the secondary device; and ending, by the storage device, the streaming between the storage device and the secondary device.