Direct data file storage implementation techniques in flash memories
First Claim
1. A method of operating a re-programmable non-volatile mass storage system having memory cells organized into blocks that are erased prior to any new data being written therein and which individually have a capacity of storing multiple units of data that individually include at least 512 bytes of data, comprising:
- receiving data with a logical address including a unique file identification and offsets of data within the identified file, programming the received data at physical addresses within the blocks of memory cells, and maintaining a plurality of records of the programmed data for the individual files that identify groups of variable amounts of data making up the file and which individually have both contiguous logical offset addresses and contiguous physical addresses of data within the group.
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. The file based interface between the host and memory systems allows the memory system controller to utilize the data storage blocks within the memory with increased efficiency.
218 Citations
27 Claims
-
1. A method of operating a re-programmable non-volatile mass storage system having memory cells organized into blocks that are erased prior to any new data being written therein and which individually have a capacity of storing multiple units of data that individually include at least 512 bytes of data, comprising:
-
receiving data with a logical address including a unique file identification and offsets of data within the identified file, programming the received data at physical addresses within the blocks of memory cells, and maintaining a plurality of records of the programmed data for the individual files that identify groups of variable amounts of data making up the file and which individually have both contiguous logical offset addresses and contiguous physical addresses of data within the group. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method of transferring data between a host system and a re-programmable non-volatile mass storage system having memory cells organized into blocks of memory cells that are erasable together, an individual block being erased prior to new data being written therein, wherein:
-
the host system identifies individual files of data it generates by unique file identifiers and offsets of given sized units of data within the individual files, and the mass storage system stores said individual files of data into at least one previously erased block of memory cells with boundaries between groups of data having non-sequential data offsets within one file or between groups of data of two different files that are specified with a physical address resolution equal to that of the file offset address unit. - View Dependent Claims (16, 17, 18, 19, 20)
-
-
21. A method of operating a re-programmable non-volatile memory system with a host system, the memory system having blocks of memory cells that are erased prior to new data being written therein, comprising:
-
receiving data addressed by a unique file identification, storing the received file data within one or more of the memory system blocks, thereafter rendering at least some of the stored file data obsolete as a result of responding to subsequent commands from the host, and thereafter garbage collecting one or more blocks containing the obsolete file data in a manner to obtain at least one erased block prior to the host sending a command to program data that requires use of said erased block to store new data. - View Dependent Claims (22, 23, 24, 25)
-
-
26. A method of transferring data between a host system and a re-programmable non-volatile mass storage system having blocks of memory cells that are erasable together, an individual block being erased prior to new data being written therein, wherein:
-
the host system identifies individual files of data it generates by unique file identifiers and offsets of given sized units of data within the individual files, and sends such file identifiers and offsets to the mass storage system, and the mass storage system writes units of data of a file in an order received from the host system into at least one previously erased block of memory cells with contiguous physical addresses independent of data offsets within the file. - View Dependent Claims (27)
-
Specification