In-Storage Code Execution for Data Processing Offload

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for offloading data processing tasks to storage devices are limited by hardware compatibility, security vulnerabilities, and suboptimal performance due to inability to account for real-time operating conditions.

Innovation Solution

Implementing a data storage system with a translation and execution engine that receives and executes portable, hardware-agnostic code, optimizing performance by translating and executing translatable instructions, and ensuring security through verification of code integrity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If compiled binary code is sent from host to storage device for data processing offload, then data processing capability is improved, but hardware compatibility is limited and device complexity increases

Engineering Contradiction:
Improvedata processing capabilityVSAvoidhardware compatibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent introduces bytecode as an intermediary instruction set between the host and storage device. Instead of compiling host-specific binary code directly for storage device execution, the code is first translated into a platform-independent bytecode format that can be executed by any storage device with a bytecode interpreter, thereby resolving the hardware compatibility issue while maintaining data processing capability

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a virtual copy of the host processing environment within the storage device through the bytecode execution engine. This allows the storage device to execute processed code without requiring the original host's specific hardware architecture, enabling portability across different storage devices while preserving the intended data processing functionality

Inventive Principle:
Principle #26Copying

2Productivity

If compiled binary code is executed on storage device, then data processing is offloaded, but security vulnerabilities increase requiring complicated protection measures

Engineering Contradiction:
Improvedata processing offloadVSAvoidsecurity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The storage device performs self-verification of the bytecode integrity through built-in verification mechanisms. The bytecode is designed to be inherently secure and self-validating, eliminating the need for complex external security infrastructure such as tunneling or containers while still providing robust security for the offloaded data processing operations

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent changes the code format parameter from compiled binary to bytecode, which fundamentally alters the security model. Bytecode's platform-independent nature and structured format enable simpler verification processes and reduce security vulnerabilities inherent in binary code execution, allowing secure offloading without complicated protection measures

Inventive Principle:
Principle #35Parameter changes

3Ease of operation

If data processing task is offloaded to storage device, then host burden is reduced, but performance optimization is limited due to inability to account for real-time operating conditions

Engineering Contradiction:
Improvehost burdenVSAvoidperformance optimization
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent implements dynamic code execution where the bytecode is executed directly on the storage device without pre-compilation to device-specific instructions. This allows the storage device to dynamically adapt the code execution to its real-time operating conditions, such as available processing resources, current workload, and operational state, thereby achieving performance optimization while maintaining ease of operation for the host

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The storage device's bytecode execution engine provides feedback about real-time operating conditions during code execution. This enables the system to adjust and optimize performance based on actual device state, allowing the offloaded data processing tasks to run optimally while the host remains burden-free

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11275615B2Data processing offload using in-storage code execution
Publication Date: 2022.03.15 SANDISK TECHNOLOGIES LLC
  • US11275615B2 patent drawing
  • US11275615B2 patent drawing
  • US11275615B2 patent drawing

AI summary

Systems and methods for offloading data processing tasks using in-storage code execution are disclosed. For example, a data storage system including one or more processors, a non-transitory storage medium, and a storage logic executable by the one or more processors to perform operations including: receiving portable code configured to perform a data processing offload task, the portable code comprising one or more translatable, hardware-agnostic instructions for processing data stored on the storage medium; translating and executing the one or more translatable, hardware-agnostic instructions of the portable code to perform the data processing offload task using a translation and execution engine disposed in the storage logic; determining that use of the portable code has concluded; and responsive to determining that use of the portable code has concluded, releasing the portable code.