US 11,914,894 B2
Using scheduling tags in host compute commands to manage host compute task execution by a storage device in a storage system
Ramanathan Muthiah, Bangalore (IN)
Assigned to Western Digital Technologies, Inc., San Jose, CA (US)
Filed by Western Digital Technologies, Inc., San Jose, CA (US)
Filed on Feb. 16, 2021, as Appl. No. 17/176,833.
Claims priority of provisional application 63/122,541, filed on Dec. 8, 2020.
Prior Publication US 2022/0179585 A1, Jun. 9, 2022
Int. Cl. G06F 3/06 (2006.01)
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
OG exemplary drawing
 
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.