Latency-based scheduling of command processing in data storage devices
First Claim
Patent Images
1. A storage device, comprising:
- a host interface;
a controller;
non-volatile storage media; and
firmware containing instructions executable by the controller to;
receive, via the host interface, a plurality of commands from a host,select a subset of commands from the plurality of commands;
schedule the subset for execution during an idle time; and
reduce write amplification in executing the commands in the subset during the idle time;
wherein the non-volatile storage media includes flash memory; and
the controller performs garbage collection during the idle time;
wherein the commands of the subset include write commands for storing data in the flash memory;
wherein the write commands in the subset are scheduled in a queue for execution during the idle time in response to the host specifying a quality of service level lower than a threshold for the commands of the subset.
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 write commands of low priority to the storage device, which places them in a queue for execution at an idle time. In response to a determination that the storage device is in an idle state, the storage device best accommodates the write commands in the idle queue in connection with housekeeping tasks, such as garbage collection and wear leveling, to best reduce write amplification.
-
Citations
16 Claims
-
1. A storage device, comprising:
-
a host interface; a controller; non-volatile storage media; and firmware containing instructions executable by the controller to; receive, via the host interface, a plurality of commands from a host, select a subset of commands from the plurality of commands; schedule the subset for execution during an idle time; and reduce write amplification in executing the commands in the subset during the idle time; wherein the non-volatile storage media includes flash memory; and
the controller performs garbage collection during the idle time;wherein the commands of the subset include write commands for storing data in the flash memory; wherein the write commands in the subset are scheduled in a queue for execution during the idle time in response to the host specifying a quality of service level lower than a threshold for the commands of the subset. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method implemented in a storage device, the method comprising:
receiving, via a host interface of the storage device, a plurality of commands from a host, selecting, by a controller executing firmware, a subset of commands from the plurality of commands; scheduling, by the controller, the subset for execution during an idle time; and reducing, by the controller, write amplification in non-volatile storage media of the storage device in executing the commands in the subset during the idle time; wherein reducing write amplification includes compressing data of the commands in the subset using a technique different from a compression technique used for commands executed at a non-idle time. - View Dependent Claims (14, 15)
-
16. A non-transitory computer storage medium storing instructions which, when executed by a storage device, cause the storage device to perform a method, the method comprising:
receiving, via a host interface of the storage device, a plurality of commands from a host, selecting, by a controller executing firmware, a subset of commands from the plurality of commands; scheduling, by the controller, the subset for execution during an idle time; and reducing, by the controller, write amplification in non-volatile storage media of the storage device in executing the commands in the subset during the idle time; wherein reducing write amplification includes compressing data of the commands in the subset using a technique different from a compression technique used for commands executed at a non-idle time.
Specification