Indexing of File Data in Reprogrammable Non-Volatile Memories That Directly Store Data Files
First Claim
1. 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 files received from outside the memory system, comprising:
- store, in the memory blocks, data of files having unique file identifiers, maintain, for individual files, records of the physical block locations of data of the individual files, maintain a classification of the individual files as either (1) likely to be modified in the near future or (2) not likely to be modified in the near future, maintain a directory of links to the records of the files by their unique file identifiers, the links being indirect for records of files classified as (1) and direct for records of files classified as (2), and access a selected one of the records through the directory by use of its unique file identifier.
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. Each data file is uniquely identified in a file directory, which points to entries in a file index table (FIT) of data groups that make up the file and their physical storage locations in the memory.
184 Citations
24 Claims
-
1. 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 files received from outside the memory system, comprising:
-
store, in the memory blocks, data of files having unique file identifiers, maintain, for individual files, records of the physical block locations of data of the individual files, maintain a classification of the individual files as either (1) likely to be modified in the near future or (2) not likely to be modified in the near future, maintain a directory of links to the records of the files by their unique file identifiers, the links being indirect for records of files classified as (1) and direct for records of files classified as (2), and access a selected one of the records through the directory by use of its unique file identifier. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
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 with data files identified by unique file identifiers, comprising:
-
storing data of individual files as one or more data groups, maintain records of the data groups that make up individual ones of the data files, and maintain a directory of links to the records by the unique file identifiers, the links being direct for inactive files and indirect for active files. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A method of operating a non-volatile memory system with storage cells grouped into blocks of memory cells that are erased prior to reprogramming pages of the blocks with data identified by a unique file identifier and an offset address within the file, comprising:
-
storing data of individual files as one or more data groups that individually specify data in contiguous logical file offset addresses and contiguous physical addresses within memory cell blocks, maintain a set of entries in a table of the data groups of the individual files, and maintain a file directory that links the files by their unique identifiers to the entries in the table of data of the files, the link being direct for data of closed files and indirect for data of open files. - View Dependent Claims (16, 17)
-
-
18. A method of operating a non-volatile memory system with storage cells grouped into blocks of memory cells that are erased prior to reprogramming data in pages of the blocks, comprising:
-
store, in a first plurality of pages, data of files that individually have a unique file identifier, maintain, in at least a second page, records of the physical page locations of data of the files stored in the first plurality of pages, and maintain, in at least a third page, pointers to the locations of records in at least the second page, wherein the records in the second page are limited to those of the files whose pointers are stored in the third page. - View Dependent Claims (19, 20, 21, 22)
-
-
23. A method of operating a non-volatile memory system with storage cells grouped into blocks of memory cells that are erased prior to reprogramming data in pages of the blocks, comprising:
-
maintain, in at least a first page, records of the physical page locations of where data are stored, and maintain, in at least a second page, pointers to the locations of records in at least the first page, wherein the records in the first page are limited to those pointed to by the pointers stored in the second page.
-
-
24. 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 files in pages of the blocks, comprising:
-
store, in the memory blocks, data of files having unique file identifiers, maintain, for individual files, records of the physical block locations of data of the individual files, maintain a directory of links to the records of the files by their unique file identifiers, the directory links being to one or more locations of memory that contain a physical address of the records, and access a selected one of the records through the directory by use of its unique file identifier, wherein records of individual files are maintained in individual pages without records of other files therein.
-
Specification