Method and system for managing background operations in a multi-layer memory

US9734050B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9734050-B2
Application numberUS-201313827038-A
CountryUS
Kind codeB2
Filing dateMar 14, 2013
Priority dateDec 31, 2012
Publication dateAug 15, 2017
Grant dateAug 15, 2017

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 multi-layer memory and method for performing background maintenance operations are disclosed. The memory includes a plurality of flash memory die having multiple layers, where each layer is made up of flash memory cells having a greater bit per cell storage capacity than then prior layer and each layer may have a plurality of partitions for different data types. A controller managing the flash memory die is configured to identify an idle die and determine if a layer in the die satisfies a background maintenance criterion. Upon identifying a layer satisfying the background maintenance criterion, the valid data from reclaim blocks in the layer is relocated into a relocation block in the same layer until the relocation block is filled and the background maintenance cycle ends.

First claim

Opening claim text (preview).

We claim: 1. A mass storage memory system, comprising: an interface adapted to receive data from a host system; a plurality of flash memory die, each of the plurality of flash memory die having a plurality of layers, and each of the plurality of layers in a particular die having a different bit-per-cell capacity; and a controller in communication with the interface and the plurality of flash memory die, the controller configured to: identify an idle die in the plurality of flash memory die; determine whether a layer in the plurality of layers in the idle die satisfies a background maintenance criterion; when the layer in the idle die is determined to satisfy the background maintenance criterion, execute a background maintenance operation in the layer independently and asynchronously of any other operation in other flash memory die managed by the controller; and wherein the background maintenance criterion is based on a ratio of unused data capacity in free blocks in the layer to a total unused data capacity of the layer, and wherein a free block is a block containing no valid data. 2. The mass storage memory system of claim 1 , wherein the controller is configured to execute the background maintenance operation by only relocating valid data between blocks in the layer that satisfies the background maintenance criterion. 3. The mass storage system of claim 2 , wherein the controller is configured to identify a particular die in the plurality of flash memory die as the idle die only when no host data write transactions are queued for execution in the particular die and no maintenance operations are active in the particular die. 4. The mass storage system of claim 1 , wherein the controller is configured to determine that the layer satisfies the background maintenance criterion only when the ratio is less than a threshold ratio for the layer. 5. The mass storage memory system of claim 4 , wherein the background maintenance criterion is further based on a total amount of valid data in the layer, and wherein the controller is configured to determine that the layer satisfies the background maintenance criterion unless the total amount of valid data in the layer is greater than a predetermined maximum amount for the layer, or the ratio is greater than the threshold ratio for the layer. 6. The mass storage memory system of claim 4 , wherein a first layer and a second layer of the plurality of layers in the flash memory die each comprise a different threshold ratio. 7. The mass storage memory system of claim 3 , wherein the layer comprises a plurality of partitions, each of the plurality of partitions in the layer comprising programmed blocks having only a respective predetermined data type; and wherein the controller is further configured to only relocate valid data in the layer by selecting a particular partition in the layer and only relocating valid data between blocks in the particular partition in the layer. 8. The mass storage memory system of claim 7 , wherein the controller is configured to select as the particular partition a partition in the layer of the idle die having a lowest average valid data count per programmed block. 9. A method of performing background maintenance procedures in flash memory, the method comprising: in a mass storage memory system having an interface for receiving data from a host system, a plurality of flash memory die, and a controller in communication with the interface and the plurality of flash memory die, the controller: identifying an idle die in the plurality of flash memory die, where each of the plurality of flash memory die include a plurality of layers, and each of the plurality of layers in a particular die having a different bit-per-cell capacity; determining whether a layer in the plurality of layers in the idle die satisfies a background maintenance criterion; in response to determining that the layer satisfies the background maintenance criterion, executing a background maintenance operation in the layer independently and asynchronously of any other operation in other flash memory die managed by the controller; and wherein the background maintenance criterion is based on a ratio of unused data capacity in free blocks in the layer to a total unused data capacity of the layer, and wherein a free block is a block containing no valid data. 10. The method of claim 9 , further comprising executing the background maintenance operation by only relocating valid data between blocks in the layer that satisfies the background maintenance criterion. 11. The method of claim 10 , wherein identifying the idle die comprises identifying a particular die in the plurality of flash memory die as the idle die only when no host data write transactions are queued for execution in the particular die and no maintenance operations are active in the particular die. 12. The method of claim 9 , further comprising determining that the layer satisfies the background maintenance criterion only when the ratio is less than a threshold ratio. 13. The method of claim 12 , wherein the background maintenance criterion is further based on a total amount of valid data in the layer, and wherein determining whether the layer satisfies the background maintenance criterion comprises determining that the layer satisfies the background maintenance criterion unless the total amount of valid data in the layer is greater than a predetermined maximum amount for the layer, or the ratio is greater than the threshold ratio for the layer. 14. The method of claim 12 , wherein a first layer and a second layer of the plurality of layers in the flash memory die each comprise a different threshold ratio. 15. The method of claim 11 , wherein the layer comprises a plurality of partitions, each of the plurality of partitions in the layer comprising programmed blocks having only a respective predetermined data type; and further comprising only relocating valid data in the layer by selecting a particular partition in the layer and only relocating valid data between blocks in the particular partition in the layer. 16. The method of claim 15 , wherein selecting the particular partition comprises selecting a partition in the layer of the idle die having a lowest average valid data count per programmed block.

Assignees

Inventors

Classifications

  • Garbage collection, i.e. reclamation of unreferenced memory · CPC title

  • in block erasable memory, e.g. flash memory · CPC title

  • Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title

  • Cleaning, compaction, garbage collection, erase control · 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 US9734050B2 cover?
A multi-layer memory and method for performing background maintenance operations are disclosed. The memory includes a plurality of flash memory die having multiple layers, where each layer is made up of flash memory cells having a greater bit per cell storage capacity than then prior layer and each layer may have a plurality of partitions for different data types. A controller managing the flas…
Who is the assignee on this patent?
Sinclair Alan Welsh, Thomas Nicholas James, Wright Barry, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F12/0246. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 15 2017 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).