Flash Memory Systems With Direct Data File Storage Utilizing Data Consolidation and Garbage Collection
First Claim
Patent Images
1. A re-programmable non-volatile memory system having a plurality of blocks of memory cells that are individually erased prior to data being written therein, wherein:
- an inventory of a minimum number of erased blocks ready to have data stored therein are maintained, data of files logically addressed by unique file identifiers and offsets within the files are stored in the memory blocks by storing the received data of a first file as pages within one or more of the erased blocks that only partially fill one of the erased blocks, thereby leaving erased data storage capacity within the partially filled block, and consolidation of valid data from the partially filled block with valid data of a second file into another one of the erased blocks is postponed until at least the inventory of the number of erased blocks is deemed insufficient to maintain the minimum number.
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.
-
Citations
7 Claims
-
1. A re-programmable non-volatile memory system having a plurality of blocks of memory cells that are individually erased prior to data being written therein, wherein:
-
an inventory of a minimum number of erased blocks ready to have data stored therein are maintained, data of files logically addressed by unique file identifiers and offsets within the files are stored in the memory blocks by storing the received data of a first file as pages within one or more of the erased blocks that only partially fill one of the erased blocks, thereby leaving erased data storage capacity within the partially filled block, and consolidation of valid data from the partially filled block with valid data of a second file into another one of the erased blocks is postponed until at least the inventory of the number of erased blocks is deemed insufficient to maintain the minimum number. - View Dependent Claims (2, 3)
-
-
4. A re-programmable non-volatile memory system having a plurality of blocks of memory cells that are individually erased prior to data being written therein, wherein:
-
data having logical addresses of unique file identifiers and offsets within the individual files are accepted, valid data from a first group of two or more blocks partially programmed with data of two or more files are occasionally consolidated into another block, blocks containing valid data from a second group of one or more blocks that also contain obsolete data are occasionally garbage collected, only one of the data consolidation or garbage collection is carried out at one time, and priority is given to garbage collection over data consolidation.
-
-
5. A re-programmable non-volatile memory system having a plurality of blocks of memory cells that are individually erased prior to data being written therein, wherein:
-
data having logical addresses of unique file identifiers and offsets within the individual files are accepted, received data of individual files are programmed into one or more erased blocks in a manner that data of at least a first file may only partially fill a first block and thereby leave erased storage capacity in the first block, subsequent operations on data within the memory system cause at least some of the data of a second file stored in a second block to become obsolete, any remaining valid data in the second block are copied into a third block in response to at least some of the data of the second file in the second block becoming obsolete, valid data are copied from the first block into a fourth block in response to the first block having erased storage capacity, and priority is given to the above-recited copying of valid data from the second block into the third block over the above-recited copying of valid data from the first block into the fourth block. - View Dependent Claims (6, 7)
-
Specification