Virtual small block file manager for flash memory array
AssigneeIntel Corporation
InventorsDeborah See, Rina Martin
Life of this patent
Estimating the term…
Abstract
A file system created in a flash EEPROM memory array including a first data structure for file entries, the file entries being arranged serially for access, each file entry pointing to one of a plurality of second data structures; a plurality of second data structures for file information entries, each file information entry of the second data structure pointing to data in one file, each file information entry of the second data structure being arranged serially for access and pointing to data entered in a file; and a plurality of data entries each pointed to by a file information entry of one of the second data structures.
Claims26
A method for organizing data in a flash memory array, said method comprising the steps of:
- storing data in the flash memory array in a plurality of files, each of the plurality of files being respectively stored in one or more sectors having a predetermined size;
- storing in the flash memory array a plurality of file information tables, each of the plurality of file information tables corresponding to a respective file of the plurality of files;
- and
- storing in each of the plurality of file information tables one or more file information entries, there being one respective file information entry for each of the one or more sectors in the respective file, each of the one or more file information entries including a pointer to a respective sector of the one or more sectors and a value indicating a number of storage locations in the respective sector that contain valid data.
A method for inserting data in a file stored in a flash memory array, the method comprising the steps of:
- identifying a first unit of storage that includes a predetermined number of storage locations in the flash memory array and having stored therein at least a portion of a file, the at least a portion of the file including a first number of data values and a separate second number of data values between which additional data is to be inserted;
- storing in a second unit of storage that includes the predetermined number of storage locations in the flash memory array at least a portion of the additional data;
- and
- storing in a file organization table in the flash memory array an entry including a pointer to the first unit of storage and a value indicating that the first unit of storage contains the first number of valid data values.
A method comprising:
- identifying in a flash memory array a first storage division having stored therein first and second portions of a file;
- allocating a second storage division in the flash memory array;
- storing in the second storage division data to be inserted in the file between the first and second portions;
- and
- storing a value that indicates the amount of valid data stored in the first storage division to indicate that the first storage division contains the amount of data in the first portion of the file.
An apparatus including:
- a processor;
- a flash memory array;
- and
- a memory having stored therein software which, when executed by the processor, causes the processor to:
- identify in the flash memory array a first storage division having stored therein first and second portions of a file;
- allocate a second storage division in the flash memory array;
- store in the second storage division data to be inserted in the file between the first and second portions;
- and
- store a value that indicates the amount of valid data stored in the first storage division to indicate that the first storage division contains the amount of data in the first portion of the file.
An apparatus comprising:
- means for storing data in the flash memory array in a plurality of files, each of the plurality of files being respectively stored in one or more sectors having a predetermined size;
- means for storing in the flash memory array a plurality of file information tables, each of the plurality of file information tables corresponding to a respective file of the plurality of files;
- and
- means for storing in each of the plurality of file information tables one or more file information entries, there being one respective file information entry for each of the one or more sectors in the respective file, each of the one or more file information entries including a pointer to a respective sector of the one or more sectors and a value indicating a number of storage locations in the respective sector that contain valid data.
An apparatus comprising:
- a programmed processor storing data in the flash memory array in a plurality of files, each of the plurality of files being respectively stored in one or more sectors having a predetermined size;
- said programmed processor storing in the flash memory array a plurality of file information tables, each of the plurality of file information tables corresponding to a respective file of the plurality of files;
- and
- said programmed processor storing in each of the plurality of file information tables one or more file information entries, there being one respective file information entry for each of the one or more sectors in the respective file, each of the one or more file information entries including a pointer to a respective sector of the one or more sectors and a value indicating a number of storage locations in the respective sector that contain valid data.
An article of manufacture including one or more computer-readable media having embodied thereon instructions which, when executed by a processor, cause said processor to perform the steps of:
- identifying in a flash memory array a first storage division having stored therein first and second portions of a file;
- allocating a second storage block in the flash memory array;
- storing in the second storage division data to be inserted in the file between the first and second portions;
- and
- storing a value that indicates the amount of valid data stored in the first storage division to indicate that the first storage division contains the amount of data in the first portion of the file.
Dependencies are inferred from the claim text.