Computational Storage Data Transfer for Program Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Computational storage devices face challenges in executing applications when data required for execution is distributed across multiple devices, as the first device may not have access to the necessary data stored on other devices, leading to incomplete or failed program execution.
Innovation Solution
A storage system comprising multiple computational storage devices and a host device that offloads programs, transfers data between non-volatile memory and local/shared memory spaces, allowing execution of programs using data from multiple devices, including data transferred between devices via a shared memory space.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If data is distributed and stored in multiple computational storage devices, then data storage capacity and distribution are improved, but data accessibility and program execution completeness deteriorate when the executing device lacks access to required data
Solution Approach 1:
The patent merges data from multiple computational storage devices into a unified execution environment. When a program requires data from multiple devices, the system automatically retrieves the necessary data from source devices and consolidates it at the executing device, ensuring all required data is available for complete program execution while maintaining the distributed storage architecture.
Solution Approach 2:
The patent introduces a mediator mechanism (the computational storage device executing the program) that facilitates data transfer between distributed storage devices. This mediator coordinates data retrieval from multiple source devices and ensures proper data delivery to the execution environment, enabling reliable program execution across distributed storage without requiring direct peer-to-peer communication between all devices.
2Reliability
If data is transferred between computational storage devices, then data availability for program execution is improved, but system complexity and data movement overhead increase
Solution Approach 1:
The patent implements self-service mechanisms where computational storage devices autonomously determine and execute data transfer operations. When a program is offloaded to a device that doesn't possess all required data, the executing device automatically identifies missing data, retrieves it from appropriate source devices, and completes the execution without external intervention, reducing the need for complex centralized coordination.
Solution Approach 2:
The patent performs preliminary actions by pre-fetching and caching data that may be needed for program execution. The system anticipates data requirements and proactively transfers data between devices before execution is critically needed, reducing runtime data movement overhead and simplifying the execution process by ensuring data is already available when required.
Data Source
AI summary
In a storage system, a first computational storage device may be configured to store first data used to execute a program, and a second computational storage device may be configured to store second data used to execute the program. The second computational storage device may be configured to receive the program offloaded from the host device, bring the first data from the first computational storage device, and execute the program using a plurality of data including the first data and the second data.


