Memory system executing garbage collection
US-2016321171-A1 · Nov 3, 2016 · US
US10133490B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10133490-B2 |
| Application number | US-201514928732-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 30, 2015 |
| Priority date | Oct 30, 2015 |
| Publication date | Nov 20, 2018 |
| Grant date | Nov 20, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Systems and methods for managing regular maintenance operations in combination with infrequent extended maintenance operations in a non-volatile memory are disclosed. The method may include executing portions of the extended maintenance over the course of multiple regular maintenance operations. A memory system may include non-volatile memory and a controller configured to execute one or more of the steps of selecting a previously programmed source block for an extended maintenance operation, sequentially selecting a plurality of previously programmed blocks for regular maintenance operations and dividing execution of the extended maintenance operation up such that the extended maintenance operation is completed in parts across the plurality of regular maintenance operations.
Opening claim text (preview).
We claim: 1. A method of managing data comprising: performing, in a non-volatile memory system having a non-volatile memory and a controller in communication with the non-volatile memory, the following steps: sequentially selecting a plurality of previously programmed source blocks in the non-volatile memory for a plurality of maintenance operations of a first type; selecting an additional previously programmed source block in the non-volatile memory for a maintenance operation of a second type, wherein the first type differs from the second type of maintenance operation; sequentially executing the plurality of maintenance operations of the first type with execution of a single maintenance operation of the second type such that execution of the single maintenance operation of the second type is divided over all of the plurality of maintenance operations of the first type; and wherein sequentially executing the plurality of maintenance operations of the first type with execution of the single maintenance operation of the second type comprises relocating all valid data from the selected plurality of previously programmed source blocks to relocation blocks in combination with writing an amount of host data to other blocks in the non-volatile memory in a same cycle with executing a fraction of the single maintenance operation of the second type, and wherein the fraction is one of a plurality of fractions of the single maintenance operation of the second type. 2. The method of claim 1 , wherein the plurality of maintenance operations of the first type comprises maintenance operations to maintain a predetermined amount of free space in the non-volatile memory. 3. The method of claim 2 , wherein sequentially selecting the plurality of previously programmed source blocks comprises selecting source blocks having a least amount of valid data. 4. The method of claim 2 , wherein the maintenance operation of the second type comprises a maintenance operation triggered by other than a need to maintain a predetermined amount of free space in the non-volatile memory. 5. The method of claim 4 , wherein the of maintenance operation of the second type comprises a maintenance operation triggered in response to a wear leveling criteria. 6. The method of claim 1 , wherein sequentially selecting the plurality of previously programmed source blocks for the maintenance operations of the first type comprises selecting a predetermined number of previously programmed source blocks based on the maintenance operation of the second type. 7. The method of claim 2 , wherein the fraction of the maintenance operation of the second type executed with each of the plurality of maintenance operations of the first type is an equal fraction. 8. The method of claim 1 , wherein each of the plurality of maintenance operations of the first type is executing over a first time span as a schedule cycle including relocating of valid data from a selected source block interleaved with writing a maximum amount of host data to the non-volatile memory, the maximum amount of host data comprising an amount equal to a difference between a full block of data and a total amount of valid data in the selected source block; and wherein the second type of maintenance operation is executing over a second time span greater than the first time span as an extended schedule cycle including relocating of valid data from the additional previously programmed source block interleaved with writing a second maximum amount of host data comprising an amount equal to a difference between the full block of data and a total amount of valid data in the selected additional source block; and further comprising interleaving an equal fraction of the extended schedule cycle with each schedule cycle of the plurality of maintenance operations of the first type. 9. The method of claim 8 , wherein relocating valid data from the selected source block for each maintenance operation of the first type comprises relocating the valid data to a different relocation block in the non-volatile memory than data relocated from the selected additional source block for the second type of maintenance operation. 10. A memory system, comprising: at least one non-volatile memory having a plurality of memory blocks; and a controller in communication with the at least one non-volatile memory, the controller configured to: sequentially select a plurality of previously programmed source blocks in the non-volatile memory for a plurality of regular maintenance operations; select an additional previously programmed source block in the non-volatile memory for an extended maintenance operation, wherein the regular maintenance operation differs from the extended maintenance operation; for each of the plurality of previously programmed source blocks, interleave relocation of valid data from a respective source block with host data writes in a respective regular maintenance operation, wherein each regular maintenance operation is defined by an amount of valid data relocation necessary to free one of the selected plurality of previously programmed source blocks; for the additional previously programmed source block, interleave relocation of valid data from the additional previously programmed source block with host data writes in an extended maintenance operation, wherein the extended maintenance operation is defined by an amount of data relocation necessary to free the additional previously programmed source block; and execute, during execution of each of a plurality of the regular maintenance operations, a portion of the extended maintenance operation such that the extended maintenance operation is completed in parts across the plurality of regular maintenance operations. 11. The memory system of claim 10 , wherein the regular maintenance operations comprise maintenance operations to maintain a predetermined amount of free space in the non-volatile memory. 12. The memory system of claim 11 , wherein the controller is configured to select as the plurality of previously programmed source blocks previously programmed blocks having a least amount of valid data. 13. The memory system of claim 11 , wherein the extended maintenance operation comprises a type of maintenance operation triggered by other than a need to maintain a predetermined amount of free space in the non-volatile memory. 14. The memory system of claim 13 , wherein the extended maintenance operation comprises a maintenance operation triggered in response to a wear leveling criteria. 15. The memory system of claim 13 , wherein the controller is configured to select a predetermined number of previously programmed source blocks for regular maintenance operations based on the type of the extended maintenance operation. 16. The memory system of claim 10 , wherein the controller is configured to execute an equal size portion of the extended maintenance operation during each of the plurality of regular maintenance operations. 17. The memory system of claim 10 , wherein for each regular maintenance cycle the controller is configured to interleave relocation of valid data from the respective source block with writing up to a maximum amount of host data to the non-volatile memory, the maximum amount of host data comprising an amount equal to a difference between a full block of data and a total amount of valid data in the respective source block. 18. The memory system of claim 10 , wherein the non-volatile memory comprises a three dimensional memory array. 19. A method of managing data comprising: per
Addressing or allocation; Relocation (program address sequencing G06F9/00; arrangements for selecting an address in a digital store G11C8/00) · CPC title
in block erasable memory, e.g. flash memory · CPC title
Improving I/O performance · CPC title
Wear leveling · CPC title
Non-volatile semiconductor memory arrays · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.