9946473

Efficiently Managing Unmapped Blocks to Extend Life of Solid State Drive

PublishedApril 17, 2018
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
20 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

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

2. The method of claim 1 , further comprising: sending a status message to a host system in accordance with the determination that the quantity of storage units in the storage device that are unmapped does not satisfy the first threshold.

3

3. The method of claim 1 , further comprising: sending a status message to a host system in accordance with the 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.

4

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

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

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 quantity of storage units in the storage device that are unmapped would satisfy the second threshold, changing the mode of operation of the storage device to the second mode of operation.

7

7. The method of claim 1 , further comprising: while operating the storage device in the second mode of operation, receiving one or more unmap commands; and in accordance with a determination that, as a result of processing the received one or more unmap commands, the quantity of storage units in the storage device that are unmapped would satisfy the second threshold, changing the mode of operation of the storage device to the first mode of operation.

8

8. The method of claim 1 , wherein determining the quantity of storage units in the storage device that are unmapped includes determining a quantity of storage units in the storage device that are usable for storing data and unmapped.

9

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.

10

10. The storage device of claim 9 , wherein the controller is further configured to: determine the 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 and change the mode of operation 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; and 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 quantity of storage units in the storage device that are unmapped to a quantity less than a 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 quantity of storage units in the storage device that are unmapped to a quantity 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 quantity of storage units in the storage device that are unmapped to a quantity less than the second threshold.

11

11. The storage device of claim 9 , wherein the controller is configured to send a status message to the host system in accordance with the determination that the quantity of storage units in the storage device that are unmapped does not satisfy the first threshold.

12

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

13

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

14. The storage device of claim 9 , wherein to forgo acceptance and processing of the write command from the host system the controller is further configured to change 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

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 quantity of storage units in the storage device that are unmapped would satisfy the second threshold, change the mode of operation of the storage device to the second mode of operation.

16

16. The storage device of claim 9 , wherein the controller is further configured to: while operating the storage device in the second mode of operation, receive one or more unmap commands; and in accordance with a determination that, as a result of processing the received one or more unmap commands, the quantity of storage units in the storage device that are unmapped would satisfy the second threshold, changing the mode of operation of the storage device to the first mode of operation.

17

17. 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 storage device that are usable for storing data and unmapped.

18

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.

19

19. The non-transitory computer readable storage medium of claim 18 , wherein the one or more programs include: an unmap program containing processor executable instructions for determining the quantity of storage units in the storage device that are unmapped; a mode of operation program containing processor executable instructions for (i) 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 and (ii) changing the mode of operation 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; and a data write program containing processor executable instructions for: (i) receiving the write command from the host system; (ii) 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; (iii) accepting and processing the write command from the host system in accordance with the 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; and (iv) forgoing acceptance and processing of the write command from the host system in accordance with the 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.

20

20. The non-transitory computer readable storage medium of claim 18 , wherein the one or more programs include a host messaging program containing processor executable instructions for sending a status message to the host system in accordance with the determination that the quantity of storage units in the storage device that are unmapped does not satisfy the first threshold.

Patent Metadata

Filing Date

Unknown

Publication Date

April 17, 2018

Inventors

Senthil M. Thangaraj
Divya Reddy
Aaron K. Olbrich

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Efficiently Managing Unmapped Blocks to Extend Life of Solid State Drive” (9946473). https://patentable.app/patents/9946473

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.