Computational Storage Offload for I/O-Bound Block Data Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data storage systems are limited by the speed of input/output controllers and bandwidth, which hinder the performance of computational operations in block-based storage solutions like SSDs.
Innovation Solution
Implementing computational storage solutions that offload compute operations directly to block storage devices using block-based compute descriptors, allowing for computation to be performed directly on stored data within the storage system, reducing the need for multiple roundtrips and minimizing scheduling overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If computational operations are performed on host systems using conventional block-based storage, then data can be stored with high capacity and stability, but the I/O controller speed and bandwidth limit the performance of compute operations
Solution Approach 1:
The system segments computational operations into two parts: data transfer operations that remain on the host, and compute operations that are offloaded to the storage device. This segmentation allows compute-intensive tasks to execute in parallel on the storage device while data is being transferred, bypassing the I/O controller speed limitation for the computation phase.
Solution Approach 2:
A compute descriptor is introduced as an intermediary data structure that carries computation instructions from the host to the storage device. This descriptor enables the storage device to understand and execute computational operations locally, eliminating the need for continuous host intervention and reducing I/O traffic.
2Adaptability or versatility
If data is transferred between host and storage device for computation, then compute operations can be performed, but multiple roundtrips increase I/O traffic and reduce efficiency
Solution Approach 1:
The system performs preliminary actions by transferring data to the storage device and simultaneously issuing compute descriptors that prepare the storage device to execute computations locally. This preliminary setup eliminates the need for subsequent roundtrips, as the storage device processes computations on-reside without requiring data to be fetched back to the host.
Solution Approach 2:
The storage device is empowered to perform computational operations autonomously using its own processing resources. By executing compute operations locally on the stored data, the storage device serves itself rather than requiring continuous host intervention, significantly reducing I/O traffic and improving energy efficiency.
3Productivity
If computational capabilities are added to storage devices, then compute operations can be offloaded, but device complexity increases
Solution Approach 1:
The storage device is designed with universal computational capabilities that can handle multiple types of compute operations through a standardized interface. The compute descriptor framework provides a unified mechanism for specifying various computational tasks, allowing the storage device to perform diverse operations without requiring separate specialized hardware for each function.
Data Source
AI summary
In one embodiment, a system comprises a host processor and a storage system. The storage system comprises one or more storage devices, and each storage device comprises a non-volatile memory and a compute offload controller. The non-volatile memory stores data, and the compute offload controller performs compute tasks on the data based on compute offload commands from the host processor.


