Reclaiming data storage capacity in flash memory systems
First Claim
1. A reprogrammable non-volatile memory system, comprising:
- blocks of non-volatile memory cells characterized by being erased prior to rewriting data therein, anda controller functionally connected with the blocks and that operates to select a block having a portion of its storage capacity not occupied by valid data to be reclaimed for use to store valid data on the basis of a combination of a relative amount of valid data stored and a relative amount of erased capacity remaining in individual ones of at least a plurality of the blocks, and then causes the valid data of the selected block to be copied to another block, wherein the controller further operates to select the block to be reclaimed on the basis of no obsolete data being contained in individual ones of the at least a plurality of the blocks.
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.
147 Citations
5 Claims
-
1. A reprogrammable non-volatile memory system, comprising:
-
blocks of non-volatile memory cells characterized by being erased prior to rewriting data therein, and a controller functionally connected with the blocks and that operates to select a block having a portion of its storage capacity not occupied by valid data to be reclaimed for use to store valid data on the basis of a combination of a relative amount of valid data stored and a relative amount of erased capacity remaining in individual ones of at least a plurality of the blocks, and then causes the valid data of the selected block to be copied to another block, wherein the controller further operates to select the block to be reclaimed on the basis of no obsolete data being contained in individual ones of the at least a plurality of the blocks. - View Dependent Claims (2, 3, 4)
-
-
5. A reprogrammable non-volatile memory system, comprising:
-
an array of non-volatile memory cells organized into blocks of memory cells that are simultaneously erasable, and a controller operably connected with the array that operates to; maintain a first list including any blocks that individually contain an amount of valid data plus obsolete data but without erased data storage capacity, determine whether one or more blocks exist on the first list and, if so, identify 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, determine whether one or more blocks exist on the second list and, if so, identify 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.
-
Specification