Efficiently managing unmapped blocks to extend life of solid state drive with low over-provisioning
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;
measuring a level of over-provisioning in the storage device;
operating the storage device in a mode of operation that is a first mode of operation while the level of over-provisioning in the storage device satisfies a first threshold;
changing the mode of operation of the storage device to a second mode of operation in accordance with a determination that the level of over-provisioning in the storage device 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 a portion of a declared storage capacity of the storage device that is unmapped;
determining whether processing the write command would reduce the portion of the declared storage capacity of the storage device that is unmapped to less than a second threshold;
in accordance with a determination that processing the write command would not reduce the portion of the declared storage capacity of the storage device that is unmapped to 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 portion of the declared storage capacity of the storage device that is unmapped to 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: measuring a level of over-provisioning (“OP”) in a storage device and operating it in a first mode of operation while the OP satisfies a first threshold. The method also includes: changing to a second mode of operation if the OP does not satisfy the first threshold. While operating in the second mode of operation, the method includes: (i) determining an unmapped portion of a declared storage capacity of the storage device; and (ii) determining whether processing a write command would reduce the unmapped portion to less than a second threshold. If processing the write command wouldn'"'"'t reduce the unmapped portion to 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.
67 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; measuring a level of over-provisioning in the storage device; operating the storage device in a mode of operation that is a first mode of operation while the level of over-provisioning in the storage device satisfies a first threshold; changing the mode of operation of the storage device to a second mode of operation in accordance with a determination that the level of over-provisioning in the storage device 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 a portion of a declared storage capacity of the storage device that is unmapped; determining whether processing the write command would reduce the portion of the declared storage capacity of the storage device that is unmapped to less than a second threshold; in accordance with a determination that processing the write command would not reduce the portion of the declared storage capacity of the storage device that is unmapped to 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 portion of the declared storage capacity of the storage device that is unmapped to 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 configured to; receive write commands from a host system; measure a level of over-provisioning in the storage device; operate the storage device in a mode of operation that is a first mode of operation while the level of over-provisioning in the storage device satisfies a first threshold; change the mode of operation of the storage device to a second mode of operation in accordance with a determination that the level of over-provisioning in the storage device 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 a portion of a declared storage capacity of the storage device that is unmapped; determine whether processing the write command would reduce the portion of the declared storage capacity of the storage device that is unmapped to less than a second threshold; in accordance with a determination that processing the write command would not reduce the portion of the declared storage capacity of the storage device that is unmapped to less than the 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 portion of the declared storage capacity of the storage device that is unmapped to less than the 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; measure a level of over-provisioning in the storage device; operate the storage device in a mode of operation that is a first mode of operation while the level of over-provisioning in the storage device satisfies a first threshold; change the mode of operation of the storage device to a second mode of operation in accordance with a determination that the level of over-provisioning in the storage device 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 a portion of a declared storage capacity of the storage device that is unmapped; determine whether processing the write command would reduce the portion of the declared storage capacity of the storage device that is unmapped to less than a second threshold; in accordance with a determination that processing the write command would not reduce the portion of the declared storage capacity of the storage device that is unmapped to less than the 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 portion of the declared storage capacity of the storage device that is unmapped to less than the second threshold, forgo acceptance and processing of the write command from the host system. - View Dependent Claims (19, 20)
-
Specification