IP Library Granted Patent US 9,946,483
Granted Patent B2
US 9,946,483 · App. 15/157,367 · Granted Apr 17, 2018

Efficiently managing unmapped blocks to extend life of solid state drive with low over-provisioning

Inventors: Senthil M. Thangaraj (Fremont, CA); Divya Reddy (Milpitas, CA); Aaron K. Olbrich (Morgan Hill, CA)
Assignee: SanDisk Technologies LLC
G06F3/0634G06F3/0604G06F3/0653G06F3/0679G06F3/0688G06F12/0246G06F2212/7211
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,946,483
App. No.
15/157,367
Granted
Apr 17, 2018
Kind
B2
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.

Claims (65)

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. The method of claim 1 , further comprising:

sending a status message to the host system in accordance with the determination that the level of over-provisioning in the storage device does not satisfy the first threshold.

3. The method of claim 1 , further comprising:

sending a status message to the host system in accordance with the 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.

4. The method of claim 3 , wherein the status message to the host system comprises a request that the host system unmap a portion of the storage device's storage capacity.

5. The method of claim 1 , wherein forgoing acceptance and processing of the write command from the host system includes changing the mode of operation of the storage device to a third mode of operation in which the storage device does not accept and process write commands from the host system.

6. The method of claim 5 , further comprising:

while operating the storage device in the third mode of operation, receiving one or more unmap commands from the host system; and

in accordance with a determination that, as result of processing the received one or more unmap commands, the portion of the declared storage capacity of the storage device that is unmapped would satisfy the second threshold, changing the mode of operation of the storage device to the second mode of operation.

7. The method of claim 1 , wherein determining the portion of the declared storage capacity of the storage device that is unmapped comprises determining a quantity of storage units in the declared storage capacity of the storage device that are usable for storing data and unmapped.

8. The method of claim 1 , wherein measuring the level of over-provisioning in the storage device comprises determining a first quantity of storage units in the storage device, comprising storage units that are mapped for storing data and storage units that are usable for storing data and unmapped, and subtracting from the first quantity a quantity corresponding to the declared storage capacity of the storage device.

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.

10. The storage device of claim 9 , wherein the controller is further configured to:

measure the level of over-provisioning in the storage device;

operate the storage device in the mode of operation that is the first mode of operation while the level of over-provisioning in the storage device satisfies a first threshold;

change the mode of operation 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;

determine the portion of the declared storage capacity that is unmapped; and

wherein the controller is further configured to:

(i) receive the write command from the host system;

(ii) determine whether processing the write command would reduce the portion of the declared storage capacity that is unmapped to less than the second threshold;

(iii) accept and process the write command from the host system in accordance with the 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; and

(iv) forgo acceptance and processing of the write command from the host system in accordance with the 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.

11. The storage device of claim 9 , wherein the controller is further configured to send a status message to the host system in accordance with the determination that the level of over-provisioning in the storage device does not satisfy the first threshold.

12. The storage device of claim 9 , wherein the controller is further configured to send a status message to the host system in accordance with the 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.

13. The storage device of claim 12 , wherein the status message to the host system comprises a request that the host system unmap a portion of the storage device's storage capacity.

14. The storage device of claim 9 , wherein forgoing acceptance and processing of the write command from the host system includes changing the mode of operation of the storage device to a third mode of operation in which the storage device does not accept and process write commands from the host system.

15. The storage device of claim 14 , wherein the controller is further configured to:

while operating the storage device in the third mode of operation, receive one or more unmap commands from the host system; and

in accordance with a determination that, as result of processing the received one or more unmap commands, the portion of the declared storage capacity of the storage device that is unmapped would satisfy the second threshold, change the mode of operation of the storage device to the second mode of operation.

16. The storage device of claim 9 , wherein determining the portion of the declared storage capacity of the storage device that is unmapped comprises determining a quantity of storage units in the declared storage capacity of the storage device that are usable for storing data and unmapped.

17. The storage device of claim 9 , wherein measuring the level of over-provisioning in the storage device comprises determining a first quantity of storage units in the storage device, comprising storage units that are mapped for storing data and storage units that are usable for storing data and unmapped, and subtracting from the first quantity a quantity corresponding to the declared storage capacity of the storage device.

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.

19. The non-transitory computer readable storage medium of claim 18 , wherein the one or more programs further include instructions that, when executed by the one or more processors of the storage device, cause the storage device to send a status message to the host system in accordance with the determination that the level of over-provisioning in the storage device does not satisfy the first threshold.

20. The non-transitory computer readable storage medium of claim 18 , wherein the one or more programs further include instructions that, when executed by the one or more processors of the storage device, cause the storage device to send a status message to the host system in accordance with the 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.

Assignments (5)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2016
From: THANGARAJ, SENTHIL M.; REDDY, DIVYA; OLBRICH, AARON K.
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 039427/0053 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038812/0954 →
Continuity (2)
Provisional Application 62262759 · Dec 3, 2015
Related Publication 20170160976A1 · Jun 8, 2017