Efficiently managing unmapped blocks to extend life of solid state drive
First Claim
1. A method of managing a storage device that includes non-volatile memory, the method comprising:
- receiving write commands from a host system;
determining a quantity of storage units in the storage device that are unmapped;
operating the storage device in a mode of operation that is a first mode of operation while the quantity of storage units in the storage device that are unmapped satisfies a first threshold regardless of a level of overprovisioning in the storage device, wherein the quantity of storage units that are unmapped comprises unmapped storage units in a declared storage capacity and in over-provisioning space of the storage device;
changing the mode of operation of the storage device to a second mode of operation in accordance with a determination that the quantity of storage units in the storage device that are unmapped does not satisfy the first threshold;
while operating the storage device in the second mode of operation, for each write command received from the host system;
determining whether processing the write command would reduce the quantity of storage units in the storage device that are unmapped to a quantity less than a second threshold;
in accordance with a determination that processing the write command would not reduce the quantity of storage units in the storage device that are unmapped to a quantity less than the second threshold, accepting and processing the write command from the host system; and
in accordance with a determination that processing the write command would reduce the quantity of storage units in the storage device that are unmapped to a quantity less than the second threshold, forgoing acceptance and processing of the write command from the host system.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods disclosed herein allow for efficiently managing unmapped blocks to extend life of solid-state drives. In one aspect, a method includes: determining a quantity of unmapped storage units in the storage device and operating the storage device in a first mode of operation while the quantity satisfies a first threshold. The method also includes: changing to a second mode of operation if the quantity of unmapped storage units doesn'"'"'t satisfy the first threshold. While operating in the second mode of operation, the method includes: determining whether processing a write command would reduce the quantity of unmapped storage units to a quantity less than a second threshold. If processing the write command wouldn'"'"'t reduce the quantity of unmapped storage units to a quantity less than the second threshold, the method includes: accepting and processing the write command. Else, the method includes: forgoing acceptance and processing of the write command.
-
Citations
20 Claims
-
1. A method of managing a storage device that includes non-volatile memory, the method comprising:
-
receiving write commands from a host system; determining a quantity of storage units in the storage device that are unmapped; operating the storage device in a mode of operation that is a first mode of operation while the quantity of storage units in the storage device that are unmapped satisfies a first threshold regardless of a level of overprovisioning in the storage device, wherein the quantity of storage units that are unmapped comprises unmapped storage units in a declared storage capacity and in over-provisioning space of the storage device; changing the mode of operation of the storage device to a second mode of operation in accordance with a determination that the quantity of storage units in the storage device that are unmapped does not satisfy the first threshold; while operating the storage device in the second mode of operation, for each write command received from the host system; determining whether processing the write command would reduce the quantity of storage units in the storage device that are unmapped to a quantity less than a second threshold; in accordance with a determination that processing the write command would not reduce the quantity of storage units in the storage device that are unmapped to a quantity less than the second threshold, accepting and processing the write command from the host system; and in accordance with a determination that processing the write command would reduce the quantity of storage units in the storage device that are unmapped to a quantity less than the second threshold, forgoing acceptance and processing of the write command from the host system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A storage device, comprising:
-
non-volatile memory; one or more processors; and a storage controller, the storage controller configured to; receive write commands from a host system; determine a quantity of storage units in the storage device that are unmapped; operate the storage device in a mode of operation that is a first mode of operation while the quantity of storage units in the storage device that are unmapped satisfies a first threshold regardless of a level of overprovisioning in the storage device, wherein the quantity of storage units that are unmapped comprises unmapped storage units in a declared storage capacity and in over-provisioning space of the storage device; change the mode of operation of the storage device to a second mode of operation in accordance with a determination that the quantity of storage units in the storage device that are unmapped does not satisfy the first threshold; while operating the storage device in the second mode of operation, for each write command received from the host system; determine whether processing the write command would reduce the quantity of storage units in the storage device that are unmapped to a quantity less than a second threshold; in accordance with a determination that processing the write command would not reduce the quantity of storage units in the storage device that are unmapped to a quantity less than a second threshold, accept and process the write command from the host system; and in accordance with a determination that processing the write command would reduce the quantity of storage units in the storage device that are unmapped to a quantity less than a second threshold, forgo acceptance and processing of the write command from the host system. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A non-transitory computer readable storage medium, storing one or more programs configured for execution by one or more processors of a storage device, the one or more programs including instructions that, when executed by the one or more processors of the storage device, cause the storage device to:
-
receive write commands from a host system; determine a quantity of storage units in the storage device that are unmapped; operate the storage device in a mode of operation that is a first mode of operation while the quantity of storage units in the storage device that are unmapped satisfies a first threshold regardless of a level of overprovisioning in the storage device, wherein the quantity of storage units that are unmapped comprises unmapped storage units in a declared storage capacity and in over-provisioning space of the storage device; change the mode of operation of the storage device to a second mode of operation in accordance with a determination that the quantity of storage units in the storage device that are unmapped does not satisfy the first threshold; while operating the storage device in the second mode of operation, for each write command received from the host system; determine whether processing the write command would reduce the quantity of storage units in the storage device that are unmapped to a quantity less than a second threshold; in accordance with a determination that processing the write command would not reduce the quantity of storage units in the storage device that are unmapped to a quantity less than a second threshold, accept and process the write command from the host system; and in accordance with a determination that processing the write command would reduce the quantity of storage units in the storage device that are unmapped to a quantity less than a second threshold, forgo acceptance and processing of the write command from the host system. - View Dependent Claims (19, 20)
-
Specification