Data storage device idle time processing
First Claim
Patent Images
1. A computer system, comprising:
- a host, comprising a plurality of submission queues to communicate requests to a storage device, and the plurality of submission queues comprising first queues and a second queue identified to the storage device for submission of requests for execution during idle times of the storage device; and
the storage device having;
a host interface in communication with the host;
a controller;
non-volatile storage media; and
firmware containing instructions executable by the controller; and
wherein the host transmits, to the storage device, a module and a request to run the module;
wherein the storage device receives, from the host, the module and the request, and runs the module in accordance with the request in response to a determination that the storage device is in an idle state;
wherein the firmware configures the controller to fetch commands from the second queue after the first queues are empty andafter completing idle time garbage collection; and
wherein the idle time garbage collection executes before the storage device is in the idle state.
5 Assignments
0 Petitions
Accused Products
Abstract
A computer system having a host coupled to a storage device via a peripheral component interconnect express bus. The host communicates with the storage device in accordance with a non-volatile memory host controller interface specification. The host provides a customized module containing instructions for performing the operations of a customized command. The host sends an idle time command to the storage device for execution at an idle time. In response to a determination that the storage device is in an idle state, the storage device executes the idle time command, during which the module may be used by the controller of the storage device.
-
Citations
17 Claims
-
1. A computer system, comprising:
-
a host, comprising a plurality of submission queues to communicate requests to a storage device, and the plurality of submission queues comprising first queues and a second queue identified to the storage device for submission of requests for execution during idle times of the storage device; and the storage device having; a host interface in communication with the host; a controller; non-volatile storage media; and firmware containing instructions executable by the controller; and wherein the host transmits, to the storage device, a module and a request to run the module; wherein the storage device receives, from the host, the module and the request, and runs the module in accordance with the request in response to a determination that the storage device is in an idle state; wherein the firmware configures the controller to fetch commands from the second queue after the first queues are empty and after completing idle time garbage collection; and wherein the idle time garbage collection executes before the storage device is in the idle state. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method implemented in a computer system, the method comprising:
-
transmitting, from a host to a storage device, a module, wherein the storage device having a host interface in communication with the host, a controller, non-volatile storage media, and firmware containing instructions executable by the controller; communicating, by a plurality of submission queues of the host, requests to the storage device, the plurality of submission queues comprising first queues and a second queue identified to the storage device for submission of requests for execution during idle times of the storage device; transmitting, from the host to the storage device, a request to run the module; receiving, in the storage device from the host, the module; receiving in the storage device from the host, the request; determining, by the controller of the storage device, whether the storage device is in an idle state; in response to a determination that the storage device is in the idle state, running the module in accordance with the request; configuring, by the firmware, the controller to fetch commands from the second queue after the first queues are empty and after completing idle time garbage collection, wherein the idle time garbage collection executes before the storage device is in the idle state. - View Dependent Claims (15, 16)
-
-
17. A non-transitory computer storage medium storing instructions which, when executed by a computer system, cause the computer system to perform a method, the method comprising:
-
storing, by a host in a storage device, a module defining operations to be performed by a customized command, wherein the storage device having a host interface in communication with the host, a controller, non-volatile storage media, and firmware containing instructions executable by the controller; communicating, by a plurality of submission queues of the host, requests to the storage device, the plurality of submission queues including first queues and a second queue identified to the storage device for submission of requests for execution during idle times of the storage device; submitting, from the host to the storage device, the customized command; receiving in the storage device from the host, the customized command; scheduling, by the controller executing the firmware, the customized command for execution at an idle state; determining, by the controller of the storage device, whether the storage device is in the idle state; in response to a determination that the storage device is in the idle state, loading the module to execute the customized command; configuring, by the firmware, the controller to fetch commands from the second queue after the first queues are empty and after completing idle time garbage collection, wherein the idle time garbage collection executes before the storage device is in the idle state.
-
Specification