Direct data file storage in flash memories
First Claim
1. A method of transferring data between a host system and a re-programmable non-volatile semiconductor mass storage system having memory cells organized into blocks of memory cells that are erasable together and which individually store multiple units of data in multiple pages, an individual block being erased prior to new data being written therein, wherein:
- a plurality of files containing varying amounts of data are generated by the host system,the host system identifies the individual files of data generated by unique file identifiers and offsets of data within individual files, and sends data of the individual files and their said file identifiers and offsets to the mass storage system,the mass storage system writes at least one unit at a time of individual ones of the files of data received from the host system into pages of at least one previously erased block of memory cells until the data received from the host system have been written, wherein an individual unit of data contains more than 512 bytes, andthe mass storage system directly translates the file identifiers and offsets received from the host into physical addresses of blocks and pages of memory cells in which data of the identified files are written without the use of any intermediate logical address conversion.
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.
-
Citations
25 Claims
-
1. A method of transferring data between a host system and a re-programmable non-volatile semiconductor mass storage system having memory cells organized into blocks of memory cells that are erasable together and which individually store multiple units of data in multiple pages, an individual block being erased prior to new data being written therein, wherein:
-
a plurality of files containing varying amounts of data are generated by the host system, the host system identifies the individual files of data generated by unique file identifiers and offsets of data within individual files, and sends data of the individual files and their said file identifiers and offsets to the mass storage system, the mass storage system writes at least one unit at a time of individual ones of the files of data received from the host system into pages of at least one previously erased block of memory cells until the data received from the host system have been written, wherein an individual unit of data contains more than 512 bytes, and the mass storage system directly translates the file identifiers and offsets received from the host into physical addresses of blocks and pages of memory cells in which data of the identified files are written without the use of any intermediate logical address conversion. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. In a flash memory system having a memory with a data storage capacity of at least 256 megabytes and a controller of the memory, the memory being organized with storage elements thereof being grouped into blocks of elements that are erasable together, the controller operates according to a method that comprises:
-
receiving host generated data files of varying amounts of data to be stored in the memory from outside of the memory system, data of individual received data files being identified by a unique file identifier and offsets of data within the file, identifying storage element blocks that are erased, storing one or more units of data of the received data files in the identified blocks at a time, the units of data individually containing more than 512 bytes of received data, and maintaining within the memory, address translation records that directly map the blocks and storage elements within the blocks in which data of the individual data files are stored to the unique file identifier and offsets of the data within the file, without the use of any intermediate logical address conversion. - View Dependent Claims (19, 20, 21, 22)
-
-
23. A mass storage memory system, comprising:
-
re-programmable non-volatile memory cells formed on at least one semiconductor substrate, the memory cells being arranged in a plurality of blocks of memory cells that are erasable together and which are connected together in a plurality of series strings of memory cells that share conductive word lines extending across them to define rows of memory cells, the memory cells in individual rows storing at least 1024 bytes of data and the blocks individually containing at least eight rows of memory cells, a controller including a microprocessor that is adapted to receive files of varying amounts of data that are individually identified by unique file identifiers and offsets of data within the file, and which causes a received data file to be stored in one or more blocks of memory cells, and an address translation index maintained by the controller that identifies the blocks and rows of memory cells in which the received data are stored by a direct correspondence with unique file identifications and offsets of data within the files in which data of the identified files are written without the use of any intermediate logical address conversion. - View Dependent Claims (24, 25)
-
Specification