SSD Compute Engine with Dynamic Local Memory Reallocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current enterprise systems are ill-equipped to manage large-scale data processing due to the time and cost associated with transferring data from solid state drives (SSDs) to host system main memory, as they rely on moving data for processing, which is inefficient for large datasets and requires prohibitively large DRAM capacity.

Innovation Solution

Integrating a compute engine within the SSD to perform data manipulation operations such as scanning, filtering, and joining, reducing the need for data transfer by bringing compute resources closer to the data, and dynamically reallocating local memory for logical to physical address translation to support compute operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is moved from SSD to host main memory for processing, then data processing capability is improved, but data transfer time and cost increase

Engineering Contradiction:
Improvedata processing capabilityVSAvoiddata transfer time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent merges the compute engine with the SSD controller, integrating data processing capabilities directly into the storage device. This eliminates the need to transfer data to host memory for processing, as computations can be performed on data while it remains in the SSD, thereby reducing transfer time while maintaining processing capability.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The compute engine acts as an intermediary between the SSD storage and the host system. It enables data manipulation and processing operations to be performed locally within the SSD before data is transferred to the host, serving as a mediator that reduces the burden of data transfer while still providing processing functionality.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If large scale DRAM capacity is included in host systems for data processing, then data processing capability is improved, but cost and power consumption increase prohibitively

Engineering Contradiction:
Improvedata processing capabilityVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by stationary object

Solution Approach 1:

The compute engine is merged with the SSD controller, creating an integrated processing unit that can perform data operations locally. This eliminates the need for large DRAM capacity in the host system, as data can be processed in the SSD itself, thereby reducing power consumption while maintaining processing capability.

Inventive Principle:
Principle #5Merging (Combining)

3Speed

If local memory is allocated for logical to physical address translation, then address translation efficiency is improved, but memory available for compute operations decreases

Engineering Contradiction:
Improveaddress translation efficiencyVSAvoidmemory available for compute operations
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent implements dynamic memory allocation where the local memory buffer size for address translation is adjusted based on the specific data manipulation operation being performed. For operations that require extensive data movement, more memory is allocated to address translation buffers, while for operations that can work directly with data patterns, less memory is allocated, thereby optimizing the trade-off between address translation efficiency and compute operation memory availability.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10459644B2Non-volatile storage system with integrated compute engine and optimized use of local fast memory
Publication Date: 2019.10.29 SANDISK TECHNOLOGIES LLC
  • US10459644B2 patent drawing
  • US10459644B2 patent drawing
  • US10459644B2 patent drawing

AI summary

A memory system (e.g. a solid state drive) includes one or more non-volatile memory die, a controller in communication with the memory die, a local memory connected to (or part of) the controller and a compute engine inside the memory system that is near the location of the data and can be used to perform common data manipulation operations. When the memory system receives instructions to use the compute engine to perform data manipulation operations, the local memory is reallocated such that an amount of space allocated in the local memory for logical to physical translation information is changed based on the one or more data manipulation instructions.