Adaptive threshold for bad flash memory blocks

US12087382B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12087382-B2
Application numberUS-201916381581-A
CountryUS
Kind codeB2
Filing dateApr 11, 2019
Priority dateApr 11, 2019
Publication dateSep 10, 2024
Grant dateSep 10, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method of tracking flash memory in a storage system is provided. The method includes initializing a bad blocks threshold value and marking one or more planes or logical unit numbers (LUNs) of flash memory as bad, responsive to determining that bad blocks in the one or more planes or LUNs meet the bad blocks threshold value. The method includes adjusting the bad blocks threshold value, responsive to exceeding a threshold number or rate of retiring planes or LUNs of flash memory, and repeating the marking and the adjusting, with the bad blocks threshold value capped at a maximum threshold value.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: initializing a threshold value of an amount of bad blocks; marking one or more planes or logical unit numbers (LUNs) of flash memory as bad, responsive to determining that an amount of bad blocks in the one or more planes or LUNs meets the threshold value; determining that a number of planes or LUNs marked as bad exceeds a threshold number of bad planes or LUNs; and in response to determining that the number of planes or LUNs marked as bad exceeds the threshold number of bad planes or LUNs, adjusting the threshold value of the amount of bad blocks. 2. The method of claim 1 , further comprising: performing the marking, adjusting and repeating with a separate threshold value for each of a plurality of flash drives. 3. The method of claim 1 , further comprising: performing the marking, adjusting and repeating with a separate threshold value for each of a plurality of types of flash memory. 4. The method of claim 1 , wherein the determining that the amount of bad blocks in the one or more planes or LUNS meets the threshold value is based on separate weights for each of a plurality of types of failure. 5. The method of claim 1 , further comprising: adjusting each of a plurality of weights for types of failure, based on number of program erase cycles per one of block, plane or LUN, wherein the plurality of weights for types of failure is used for the determining that the amount of bad blocks in the one or more planes or LUNS meets the threshold value. 6. The method of claim 1 , wherein the maximum threshold value is based on a manufacturer-provided number of bad blocks per flash device divided by a number of planes or LUNS per flash device. 7. The method of claim 1 , wherein an increment for the adjusting is based on an interpolation of amount of memory declared bad relative to a specified maximum amount of memory declared bad. 8. The method of claim 1 , further comprising: finding one or more bad blocks in a plane of the flash memory; ceasing writing to the plane of the flash memory; testing further blocks in the plane of the flash memory; and determining whether to return to the writing to the plane of the flash memory or to mark the plane as bad, based on the testing. 9. A tangible, non-transitory, computer-readable media having instructions thereupon which, when executed by a processor, cause the processor to perform a method comprising: setting a threshold value of an amount of bad blocks; recording that one or more planes or LUNs of flash memory are bad, responsive to determining there is a sufficient amount of bad blocks in the one or more planes or LUNs to meet the threshold value; determining that a number of planes or LUNs marked as bad exceeds a threshold number of bad planes or LUNs; and in response to determining that the number of planes or LUNs marked as bad exceeds the threshold number of bad planes or LUNs, increasing the threshold value of the amount of bad blocks. 10. The computer-readable media of claim 9 , wherein the method further comprises: performing the recording, increasing and repeating, using a first threshold value of an amount of bad blocks for a first flash drive and a second threshold for a second flash drive. 11. The computer-readable media of claim 9 , further comprising: performing the recording, increasing and repeating, using a first threshold value of an amount of bad blocks for a first type of flash memory and a second threshold for a second type of flash memory. 12. The computer-readable media of claim 9 , wherein to determine there is a sufficient amount of bad blocks in the one or more planes or LUNS to meet the threshold value, the method comprises using a first weight for a first type of failure and a second weight for a second type of failure. 13. The computer-readable media of claim 9 , wherein the method further comprises: adjusting a first weight for a first type of failure and a second weight for a second type of failure, based on number of program erase cycles per one of a block, plane or LUN, wherein the determining there is a sufficient amount of bad blocks in the one or more planes or LUNS to meet the threshold value uses the first weight and the second weight for failures of blocks. 14. The computer-readable media of claim 9 , wherein the method further comprises: determining that there are one or more bad blocks in a plane of the flash memory; ceasing writing to the plane of the flash memory; testing further blocks in the plane of the flash memory; and determining whether to resume the writing to the plane of the flash memory or to record that the plane is bad, based on the testing. 15. A storage system, comprising: flash memory; and one or more processors, to: initialize a threshold value of an amount of bad blocks;  record that one or more planes or LUNs of flash memory are bad, responsive to determining there is a sufficient amount of bad blocks in the one or more planes or LUNs to meet the threshold value; determine that a number of planes or LUNs marked as bad exceeds a threshold number of bad planes or LUNs; and in response to determining that the number of planes or LUNs marked as bad exceeds the threshold number of bad planes or LUNs, adjust the threshold value of the amount of bad blocks towards a maximum threshold value. 16. The storage system of claim 15 , wherein the one or more processors are further to: iterate such recording and adjusting for each of a plurality of flash drives using separate thresholds. 17. The storage system of claim 15 , further comprising: iterate such recording and adjusting for each of a plurality of types of flash memory using separate thresholds. 18. The storage system of claim 15 , wherein the one or more processors are to use a plurality of weights for a plurality of types of failure of blocks in the determining there is a sufficient amount of bad blocks to meet the threshold value. 19. The storage system of claim 15 , wherein the one or more processors are further to: adjust a plurality of weights for a plurality of types of failure of blocks, based on number of program erase cycles per block, plane or LUN, wherein the plurality of weights are to be used in the determining there is a sufficient amount of bad blocks in the one or more planes or LUNS to meet the threshold value. 20. The storage system of claim 15 , wherein the one or more processors are further to: determine that there are one or more bad blocks in a plane of the flash memory; stop writing to the plane of the flash memory; test further blocks in the plane of the flash memory; and determine whether to resume the writing to the plane of the flash memory or to record that the plane is bad, based on the testing.

Assignees

Inventors

Classifications

  • Response verification devices · CPC title

  • with adaption or trimming of parameters · CPC title

  • by replacing auxiliary circuits, e.g. spare voltage generators, decoders or sense amplifiers, to be used instead of defective ones · CPC title

  • Internal storage of test result, quality data, chip identification, repair information · CPC title

  • Online test · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12087382B2 cover?
A method of tracking flash memory in a storage system is provided. The method includes initializing a bad blocks threshold value and marking one or more planes or logical unit numbers (LUNs) of flash memory as bad, responsive to determining that bad blocks in the one or more planes or LUNs meet the bad blocks threshold value. The method includes adjusting the bad blocks threshold value, respons…
Who is the assignee on this patent?
Pure Storage Inc
What technology area does this patent fall under?
Primary CPC classification G11C29/44. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 10 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).