Reclaiming data storage capacity in flash memories
First Claim
1. A method of operating a non-volatile memory system with data storage cells grouped into blocks of memory cells that are erased prior to reprogramming, comprising:
- maintain at least one list including blocks that individually contain an amount of valid data less than a data storage capacity of the block,select a block from said at least one list on the basis of the amount of valid data therein relative to the amount of valid data in other blocks on said at least one list,copy the valid data from the selected block into another block, andthereafter erase the selected block, whereby the erased selected block becomes available for the storage of other data.
3 Assignments
0 Petitions
Accused Products
Abstract
Host system data files are written directly to a large erase block flash memory system with a unique identification of each file and offsets of data within the file but without the use of any intermediate logical addresses or a virtual address space for the memory. Directory information of where the files are stored in the memory is maintained within the memory system by its controller, rather than by the host. A type of memory block is selected to receive additional data of a file that depends upon the types of blocks into which data of the file have already been written. Blocks containing data are selected for reclaiming any unused capacity therefrom by a process that selects blocks in order starting with those containing the least amount of valid data.
-
Citations
14 Claims
-
1. A method of operating a non-volatile memory system with data storage cells grouped into blocks of memory cells that are erased prior to reprogramming, comprising:
-
maintain at least one list including blocks that individually contain an amount of valid data less than a data storage capacity of the block, select a block from said at least one list on the basis of the amount of valid data therein relative to the amount of valid data in other blocks on said at least one list, copy the valid data from the selected block into another block, and thereafter erase the selected block, whereby the erased selected block becomes available for the storage of other data. - View Dependent Claims (2, 3, 4)
-
-
5. A method of operating a non-volatile memory system with storage cells grouped into blocks of memory cells that are erased prior to reprogramming, comprising:
-
maintain at least one list including blocks that individually contain an amount of valid data plus either obsolete data or some erased data storage capacity or both, select a block from said at least one list by considering both the relative amounts of valid data and the erased storage capacity of the blocks on said at least one list, and copy the valid data from the selected block into another block, and thereafter erase the selected block, whereby the erased block becomes available for the storage of other data. - View Dependent Claims (6)
-
-
7. A method of operating a non-volatile memory system with storage cells grouped into blocks of memory cells that are erased prior to reprogramming, comprising:
-
maintain a first list of any blocks that individually contain an amount of valid data plus obsolete data but without erased data storage capacity, determining whether one or more blocks exist on the first list and, if so, identifying a first block from the first list on the basis of the amount of valid data in the blocks thereon, maintain a second list of any blocks that individually contain an amount of valid data plus some erased data storage capacity, determining whether one or more blocks exist on the second list and, if so, identifying a second block from the second list on the basis of both the amounts of valid data and erased storage capacity in the blocks thereon, select either the first or second block on the basis of value to operation of the memory system from reclaiming the blocks, and copy the valid data from the selected block into another block, and thereafter erase the selected block, whereby the selected first or second block has been reclaimed as an erased block that is available for the storage of other data.
-
-
8. A method of operating a non-volatile memory system with storage cells grouped into blocks of memory cells that are erased prior to reprogramming, comprising:
-
maintain a first list including any blocks that individually contain an amount of valid data plus obsolete data but without erased data storage capacity, determining whether one or more blocks exist on the first list and, if so, identifying a first block from the first list that has the least amount of valid data of the blocks thereon, maintain a second list including any blocks that individually contain an amount of valid data plus some erased data storage capacity, determining whether one or more blocks exist on the second list and, if so, identifying a second block from the second list that has the least amount of valid data of the blocks thereon, select either the first or second block on the basis of the amount of valid data contained in them after adjusting the amount of valid data in the second block for the amount of erased data storage capacity in the second block, and copy the valid data from the selected block into another block, and thereafter erase the selected block, whereby the selected first or second block has becomes an erased block that is available for the storage of other data.
-
-
9. A method of operating a non-volatile memory system with storage cells grouped into blocks of memory cells that are erased prior to reprogramming, comprising:
-
selecting a block for a reclaim operation on the basis of a content of at least some of the blocks, the content comprising the amount of data and the amount of erased capacity available in the individual blocks, and thereafter reclaiming the selected block by copying valid data of the selected block into another block and then erasing the selected block. - View Dependent Claims (10)
-
-
11. A method of operating a non-volatile memory system with storage cells grouped into blocks of memory cells that are erased prior to reprogramming, comprising:
-
selecting a block for a reclaim operation on the basis of a content of at least some of the blocks, and thereafter reclaiming the selected block by copying valid data of the selected block into another block and then erasing the selected block, wherein selecting a block for a reclaim operation includes doing so on the basis of a quantity of valid data and an amount of erased capacity remaining for the storage of data in individual ones of said at least some of the blocks. - View Dependent Claims (12)
-
-
13. A method of operating a non-volatile memory system with storage cells grouped into blocks of memory cells that are erased prior to reprogramming, comprising:
-
selecting a block for a reclaim operation on the basis of a content of at least some of the blocks, and thereafter reclaiming the selected block by copying valid data of the selected block into another block and then erasing the selected block, wherein selecting a block for a reclaim operation includes doing so on the basis of the content of at least some of the blocks individually including an amount of erased capacity remaining in the individual blocks for the storage of data.
-
-
14. A method of operating a non-volatile memory system with storage cells grouped into blocks of memory cells that are erased prior to reprogramming, comprising:
-
selecting a block for a reclaim operation on the basis of a content of at least some of the blocks, and thereafter reclaiming the selected block by copying valid data of the selected block into another block and then erasing the selected block, wherein selecting a block for a reclaim operation includes doing so on the basis of the content of at least some of the blocks individually including no obsolete data.
-
Specification