Compute Engine in Smart SSD for Local Data Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current SSDs lack the capability for complex data manipulation, resulting in wait times and performance bottlenecks due to the need to move data between storage and processing units, hindering system performance in large-scale storage applications.

Innovation Solution

A storage subsystem with a Storage Central Processing Unit (SCPU) and a compute engine that performs computations locally within the SSD, reducing the need for data movement by embedding computation capabilities within the SSD itself.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If data is moved to and from main memory for computation, then computation can be performed by external processors, but system performance deteriorates due to data movement overhead

Engineering Contradiction:
Improvecomputation capabilityVSAvoidsystem performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent merges the computation capability directly into the SSD by integrating a compute engine with the storage subsystem. This allows computations to be performed at the storage location itself rather than requiring data to be moved to external processors and main memory, thereby maintaining versatility while eliminating the performance penalty associated with data movement.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces an intermediary compute engine within the SSD that acts as a mediator between data storage and external processing. This intermediary component enables data manipulation locally without requiring direct interaction with the host processor's main memory, thus reducing the data movement overhead that degrades system performance.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If SSDs remain as simple storage devices, then device complexity is low, but wait time increases due to lack of computation capability

Engineering Contradiction:
Improvedevice structureVSAvoidwait time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent implements preliminary computation capabilities within the SSD by integrating a compute engine that can perform data manipulation operations locally before data is retrieved or stored. This allows the system to prepare or transform data at the storage location itself, eliminating wait time associated with external processing while adding only moderate complexity through the integrated compute engine.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If data is moved across multiple interfaces for processing, then computation can be performed by external units, but power consumption increases

Engineering Contradiction:
Improveprocessing capabilityVSAvoidpower consumption
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by stationary object

Solution Approach 1:

The patent combines storage and computation functions into a single integrated SSD subsystem with an embedded compute engine. This merging eliminates the need for data to traverse multiple interfaces between storage and external processors, thereby reducing power consumption while maintaining the ability to perform complex data manipulation operations.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8935463B1Compute engine in a smart SSD exploiting locality of data
Publication Date: 2015.01.13 SMART HIGH RELIABILITY SOLUTIONS LLC
  • US8935463B1 patent drawing
  • US8935463B1 patent drawing
  • US8935463B1 patent drawing

AI summary

An embodiment of the invention includes a storage subsystem having a storage central processing unit (SCPU) operable to receive and send a command to a host, the command requiring data computation, a compute engine coupled to the SCPU, and a bank of memory devices coupled to the SCPU and the compute engine and configured to store data required by the commands, wherein the SCPU or the compute engine are operable to perform computation of the data.