Direct data file storage implementation techniques in flash memories
First Claim
Patent Images
1. A mass storage system, comprising:
- an array of non-volatile charge storage semiconductor memory cells organized into blocks that individually have a capacity of storing multiple units of received data that individually include at least 512 bytes of data, the memory cells of the individual blocks being concurrently erased prior to any new data being written therein, anda controller connected with the memory cell array and adapted to receive data of individual files having a logical address including a unique file identification and offsets of data within an identified file to program the received data at physical addresses within the blocks of memory cells, and which further operates to maintain a plurality of records of the programmed data for the individual files that identify groups of variable amounts of data making up the identified file, data within the groups individually having both contiguous logical offset addresses and contiguous physical addresses, wherein each individual record of the plurality of records include the file identification, at least a logical offset address of data within the identified file and a corresponding physical address of the data within the group, and the controller further operates to program in a single one of the blocks of memory cells at least two of the groups of data from the identified file, wherein the at least two of the groups of data have a discontinuity of offset addresses between the at least two of the groups of data and contiguous physical addresses between the at least two of the groups of data,the mass storage system directly translates file identifiers and offsets received from a host into physical addresses of blocks and pages of memory cells in which data of the individual files are written without the use of any intermediate logical address conversion.
2 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.
-
Citations
29 Claims
-
1. A mass storage system, comprising:
-
an array of non-volatile charge storage semiconductor memory cells organized into blocks that individually have a capacity of storing multiple units of received data that individually include at least 512 bytes of data, the memory cells of the individual blocks being concurrently erased prior to any new data being written therein, and a controller connected with the memory cell array and adapted to receive data of individual files having a logical address including a unique file identification and offsets of data within an identified file to program the received data at physical addresses within the blocks of memory cells, and which further operates to maintain a plurality of records of the programmed data for the individual files that identify groups of variable amounts of data making up the identified file, data within the groups individually having both contiguous logical offset addresses and contiguous physical addresses, wherein each individual record of the plurality of records include the file identification, at least a logical offset address of data within the identified file and a corresponding physical address of the data within the group, and the controller further operates to program in a single one of the blocks of memory cells at least two of the groups of data from the identified file, wherein the at least two of the groups of data have a discontinuity of offset addresses between the at least two of the groups of data and contiguous physical addresses between the at least two of the groups of data, the mass storage system directly translates file identifiers and offsets received from a host into physical addresses of blocks and pages of memory cells in which data of the individual files are written without the use of any intermediate logical address conversion. - View Dependent Claims (2, 3, 4)
-
-
5. A mass storage system, comprising:
-
an array of non-volatile charge storage semiconductor memory cells organized into blocks that are erased prior to any new data being written therein and which individually have a capacity of storing at least 1024 bytes of received data, a controller connected with the memory cell array and adapted to receive data from outside the mass storage system of individual files of varying amounts of data having a logical address including a unique file identification and offsets of data within an identified file to program the received data at physical addresses within the blocks of memory cells as defined groups of data individually having a size equal to or less than the capacity of the individual memory cell blocks and containing data having continuous logical offsets and continuous physical addresses, a file map capable of storing records of individual groups of data stored in the memory cell array, individual data records for a file of data including a starting logical offset address, a corresponding starting physical address and length of the data group, the mass storage system directly translates file identifiers and offsets received from an host into physical addresses of blocks and pages of memory cells in which data of the individual files are written without the use of any intermediate logical address conversion, and the controller further operating to program in a single one of the blocks of memory cells at least two of the defined groups of data from the identified file, wherein the at least two of the defined groups of data have a discontinuity of offset addresses between the at least two of the groups of data and contiguous physical addresses between the at least two of the groups of data. - View Dependent Claims (6)
-
-
7. A computer system, comprising:
-
a host computing system including a processor that provides data files that are individually identified by a unique identifier and offsets of data within an identified file, a mass data storage system including a controller and memory cells organized in separate blocks of memory cells that are concurrently erased prior to writing therein data therein and multiple pages within the individual blocks, the controller operating to write data files received from the host into the memory cells at physical addresses within the pages of the blocks as defined groups of data individually having a size equal to or less than a data storage capacity of the individual blocks and containing varying amounts of data with both continuous logical and physical addresses, the memory system having a capacity to store at least 256 megabytes of data, a file map stored in the memory cells and managed by the controller to store records of individual groups of the data stored in the memory cells, individual records of the groups of file data includes one unique file identifier, at least one logical offset address of data within an identified file and one corresponding physical address for one group of data, without any intermediate logical address, wherein the controller uses the file map to locate physical addresses of data of a file having one unique file identifier, and the controller further operating to program in a single one of the blocks of memory cells at least two of the groups of data from the identified file, wherein the at least two of the groups of data have a discontinuity of offset addresses between the at least two of the groups of data and contiguous physical addresses between the at least two of the groups of data. - View Dependent Claims (8, 9)
-
-
10. 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 of a plurality of files of varying amounts of data that are individually identified by logical addresses including a unique file identification and offsets of data within the identified file, mapping addresses of the received data from the received unique file identifications and offsets therein directly into physical addresses of memory cell blocks of the mass storage system and offsets therein by use of a file map, the direct mapping occurring without performing an intermediate logical address conversion, programming the received data at the physical addresses within the blocks of memory cells to which the received data are mapped, and maintaining a plurality of records in the file map of the programmed data for individual files that identify groups of variable amounts of data making up the file, the data of individual groups of data having both contiguous logical offset addresses and contiguous physical addresses, the plurality of records for at least one of the files including at least two records of at least two of the groups of data wherein the at least two of the groups of data have between them a discontinuity of logical offset addresses and a continuity of physical addresses, the at least two groups of data being programmed entirely within one of the blocks of memory cells. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. 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 varying amounts of data it generates by logical addresses including unique file identifiers and offsets of data within the individual files, and sends such file identifiers and offsets to the mass storage system along with data of the individual files, the mass storage system maps the logical addresses of the received data of the individual files directly into physical addresses including an identifier of memory cell blocks of the mass storage system and offsets of data therein, and stores the data of the individual files at the physical addresses of the mass storage system, the direct mapping occurring without performing an intermediate logical address conversion, and the mass storage system writes the data of an individual one of the individual files in an order received from the host system into at least one previously erased block of memory cells to which the file data are mapped with contiguous physical addresses independent of data offsets within the individual one of the individual files, wherein for at least one of the individual files including at least two records of at least two groups of data wherein the at least two of the groups of data have between them a discontinuity of logical offset addresses and a continuity of physical addresses, the at least two groups of data being programmed entirely within one of the blocks of memory cells. - View Dependent Claims (26, 27, 28, 29)
-
Specification