Hybrid Computational Storage with Local Commodity Microcontrollers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computational storage devices are cumbersome and expensive, often relying on high-cost FPGAs that consume excessive energy and are difficult to program, and they struggle with data movement bottlenecks and complex programming environments, especially for data-intensive tasks like exploratory data science and artificial intelligence workloads.
Innovation Solution
A computational storage system with integrated computational acceleration, a memory subsystem, and a host, utilizing commodity microcontrollers to manage storage and reduce data movement by enabling object-focused computation locally, thereby simplifying programming and reducing energy consumption.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If FPGA-based computational storage systems are used, then computational capability is improved, but device cost and energy consumption increase
Solution Approach 1:
The patent changes the hardware parameter from FPGA to commodity microcontroller, transforming the computational storage device from a high-performance but high-consumption system to a low-cost, low-power system that still provides adequate computational capability for storage-related tasks
Solution Approach 2:
The patent replaces expensive FPGAs with inexpensive commodity microcontrollers, accepting that the computational capability may be less versatile but sufficient for storage-specific workloads, thereby dramatically reducing device cost and energy consumption
2Adaptability or versatility
If FPGA-based computational storage systems are used, then computational capability is improved, but device complexity increases
Solution Approach 1:
The patent uses commodity microcontrollers with well-documented, standardized programming interfaces instead of FPGAs, which require complex hardware description languages and specialized knowledge, thereby simplifying the programming environment and reducing device complexity
Solution Approach 2:
The patent employs commodity microcontrollers that have universal programming interfaces and can be programmed using standard C/C++ compilers, making them accessible to a broader range of developers and simplifying the overall system complexity
3Adaptability or versatility
If data is moved from storage subsystem to host for processing, then computational capability is improved, but data movement time increases
Solution Approach 1:
The patent merges the computational functions with the storage subsystem by integrating a microcontroller directly into the storage device, allowing data processing to occur locally at the storage location rather than requiring data movement to the host, thereby eliminating data movement time for processing operations
Solution Approach 2:
The storage subsystem performs computational tasks autonomously through the integrated microcontroller, processing data locally without requiring host intervention or data transfer, thereby reducing data movement time and enabling self-sufficient computational operations
4Adaptability or versatility
If data is moved from storage subsystem to host for processing, then computational capability is improved, but energy consumption increases
Solution Approach 1:
The patent combines storage and computation in a single subsystem, allowing data processing to occur locally without energy-intensive data transfers across system boundaries, thereby reducing overall energy consumption while maintaining computational capability
Solution Approach 2:
The storage subsystem independently performs computational tasks using its integrated microcontroller, eliminating the need to transfer data to the host for processing, thereby reducing the energy consumption associated with data movement and host-side processing
Data Source
AI summary
A computational storage system includes a computational storage subsystem having a controller and a storage. The controller is configured to receive a work chunk from a host. The work chunk includes identification of an executable object and identification of a data object. The controller is further configured to locate the data object in the storage via the identification of the data object, obtain a copy of the data object in a memory of the controller, execute functions in the executable object on the data object in the memory of the controller to generate a result object, and convey the result object to a destination of the computational storage system.


