Computational Storage Device Program Access via NVMe Protocol
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Users face difficulties in accessing device programs on computational storage devices for monitoring and troubleshooting user programs without additional hardware, as existing methods require connecting hardware or using storage protocols that do not support direct access to these programs.
Innovation Solution
A computational storage device is configured to execute user programs and provide access to device programs using a storage protocol like NVMe, allowing users to start, monitor, and retrieve output from device programs through commands, with output data exchanged via a shared buffer using a producer-consumer model.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If hardware connections are used to access device programs for monitoring and troubleshooting, then access capability is improved, but device complexity and hardware requirements increase
Solution Approach 1:
The patent introduces a mediator layer consisting of a device program interface and command processing logic that translates standard storage protocol commands into device program control operations. This intermediary enables access to device programs through the existing storage protocol infrastructure without requiring additional hardware connections or interfaces.
Solution Approach 2:
The storage protocol interface is enhanced to serve multiple functions: standard data transfer operations and device program control operations. The same storage protocol commands and data paths are used for both traditional storage operations and for launching, controlling, and retrieving output from device programs, eliminating the need for specialized hardware.
2Reliability
If additional hardware is connected to access device programs, then monitoring and troubleshooting capability is improved, but ease of operation deteriorates due to complex hardware connections
Solution Approach 1:
The storage device provides self-service monitoring and troubleshooting capabilities through device programs that can be launched and controlled via standard storage protocol commands. The device autonomously executes monitoring functions (tracing, debugging, profiling) and makes output data available through the existing data paths, eliminating the need for external hardware assistants or complex connection setups.
3Ease of operation
If storage protocol is used to exchange output data, then ease of operation is improved, but data retrieval efficiency may worsen without dedicated data paths
Solution Approach 1:
The patent merges the control data path and output data path into the existing storage protocol infrastructure. The same command queues and data transfer mechanisms used for storage operations are utilized for device program control and output retrieval, simplifying the interface while maintaining efficiency through optimized buffer management and direct memory access.
Solution Approach 2:
Output data from device programs is pre-buffered in designated memory regions before being transferred to the host. The storage device prepares data buffers and manages data staging in advance, allowing efficient data retrieval through standard storage protocol commands without requiring specialized high-speed data paths.
Data Source
AI summary
A method may include receiving, at a storage device, a command using a storage protocol, wherein the storage device is configured to execute a user program, and executing, at the storage device, a device program based on the command. The command may be a first command, and the method may further include receiving, at the storage device, using the storage protocol, a second command, and sending, from the storage device, using the storage protocol, information about the device program based on the second command. The method may further include sending, from the storage device, using the storage protocol, a list of device programs supported by the storage device based on the second command. The method may further include providing, by the storage device, output data from the device program. The providing may include sending, from the storage device, using the storage protocol, a log message.


