CPC G06F 3/0659 (2013.01) [G06F 3/0625 (2013.01); G06F 3/0631 (2013.01); G06F 3/0653 (2013.01); G06F 3/0673 (2013.01)] | 20 Claims |
12. A computer-implemented method comprising:
receiving, by a storage device and from a host system, host storage commands for reading and writing host data in a storage medium of the storage device;
directing, responsive to receiving host storage commands, host storage commands to a host storage command path configured to parse storage input/output commands;
receiving, by the storage device and from the host system, host compute commands for executing host compute tasks, wherein:
the host compute commands each:
target a set of host data in the storage medium;
define a host compute operation for that host compute command; and
include a scheduling tag as a parameter received from the host system in that host compute command; and
the host compute operation is configured to create derivative data from the set of host data;
directing, responsive to receiving host compute commands, host compute commands to a host compute command path that is distinct from the host storage command path and configured to execute host compute operations;
determining, independent of the host storage command path and the host compute command path, background task trigger conditions for background tasks configured for execution during an idle state;
determining, by the storage device, a storage processing state for executing host storage commands;
determining, by the storage device, the idle state for executing background tasks in an absence of pending host storage commands;
selectively executing, by the storage device and based on the scheduling tag of a first host compute command, a first host compute task during the idle state; and
selectively executing, by the storage device and based on the scheduling tag of a second host compute command, a second host compute task during the storage processing state.
|