Management of Memory Blocks That Directly Store Data Files
First Claim
1. A method of storing data in blocks of re-programmable non-volatile memory as uniquely identified files, which comprises:
- maintaining a record for the individual stored files of one of a plurality of file states that are based upon how data of the file are distributed among one or more of a plurality of types of blocks, and writing additional data of a given one of the files to a type of block that is selected based upon the state in the record of the given file.
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
18 Claims
-
1. A method of storing data in blocks of re-programmable non-volatile memory as uniquely identified files, which comprises:
-
maintaining a record for the individual stored files of one of a plurality of file states that are based upon how data of the file are distributed among one or more of a plurality of types of blocks, and writing additional data of a given one of the files to a type of block that is selected based upon the state in the record of the given file. - View Dependent Claims (2, 3, 4, 5, 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 with data of uniquely identified files, comprising:
-
designating a set of a plurality of data block types in terms of a structure of file data stored within individual blocks so designated, designating a set of a plurality of permitted file states in terms of a combination of types of one or more blocks in which data of individual files so designated are stored, maintaining a record of the file states of individual data files stored in the memory system, and writing data for an individual file to a type of block selected according to the current state of the file in the record. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A method of operating a non-volatile memory system with memory storage cells grouped into blocks of memory cells that are simultaneously erased prior to reprogramming and which stores data as a plurality of distinctly identified data files, comprising:
-
identifying blocks storing data of individual files by one of a plurality of types of blocks including a first type of block containing valid data of two or more files and a second type of block containing data of only one file, designating one of a plurality of permitted states for individual files stored in one or more blocks of the memory system in terms of an allowed one or more types of the blocks, maintaining a set of a plurality of permitted transitions between file states that limit a number of blocks of the first type that can store data of a single file in favor of blocks of the second type, in response to a need to write additional data to an existing file stored in the memory, identify one of the blocks to which data of the existing file have most recently been written but if this identified block cannot accept additional data of the file then transition the state of the file to a next permitted state within the set of permitted file state transitions and identify an additional block having a type allowed by the next permitted state, and thereafter writing the additional data to the type of block so identified. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A method of programming a distinctly identified data file into blocks of non-volatile memory cells that are characterized by being erased prior to reprogramming, comprising:
-
selecting one or more blocks in which to program a data file that maintains a number of blocks partially containing data of the file below a preset limit, and programming data of the file into the selected one or more blocks.
-
Specification