Method and system for managing a flash memory mass storage system
First Claim
1. A method for managing a mass storage system implemented using flash memory, comprising the steps of:
- (a) dividing said flash memory into a plurality of data blocks;
(b) indicating that specified data blocks belong to a first type of blocks, said first type designating blocks being used to store data organized in accordance with a pre-defined addressing scheme;
(c) indicating that specified data blocks belong to a second type of blocks, said second type designating blocks being used as image buffers of associated blocks of the first type for storing data, and as later replacements of the associated blocks of the first type;
(d) indicating that specified data blocks belong to a third type of blocks, said third type designating blocks containing data that will be erased;
(e) changing at least one of said plurality of blocks from one of said first, said second and said third types of blocks to another type; and
(f) equalizing the number of erasures for a subset of said plurality of data blocks.
1 Assignment
0 Petitions
Accused Products
Abstract
The present application discloses methods to provide defect management, wear leveling and data security to a mass storage system implemented using flash memory. The flash memory is organized into a plurality of blocks. Each block has a special region for storing its attributes. In defect management, defects arising from manufacturing and on-the-fly defects are scanned. Defective blocks are marked by altering its attributes. The present application also discloses a wear leveling method in which the difference between the number of erasures of any two blocks (except the defective blocks) is within a predetermined value. The present application further discloses a new error detection and correction method. The same data is stored in two separate memory locations. The content of these two locations are later "ored" or "anded" together (depending on the nature of error giving rise to the error) to recover the correct data.
314 Citations
13 Claims
-
1. A method for managing a mass storage system implemented using flash memory, comprising the steps of:
-
(a) dividing said flash memory into a plurality of data blocks; (b) indicating that specified data blocks belong to a first type of blocks, said first type designating blocks being used to store data organized in accordance with a pre-defined addressing scheme; (c) indicating that specified data blocks belong to a second type of blocks, said second type designating blocks being used as image buffers of associated blocks of the first type for storing data, and as later replacements of the associated blocks of the first type; (d) indicating that specified data blocks belong to a third type of blocks, said third type designating blocks containing data that will be erased; (e) changing at least one of said plurality of blocks from one of said first, said second and said third types of blocks to another type; and (f) equalizing the number of erasures for a subset of said plurality of data blocks. - View Dependent Claims (2, 3)
-
-
4. A method for managing a mass storage system implemented using flash memory, comprising the steps of:
-
(a) dividing said flash memory into a plurality of data blocks; (b) indicating that specified data blocks belong to a first type of blocks, said first type designating blocks being used to store data organized in accordance with a pre-defined addressing scheme; (c) indicating that specified data blocks belong to a second type of blocks, said second type designating blocks being used as image buffers of associated blocks of the first type for storing data, and as later replacements of the associated blocks of the first type; (d) indicating that specified data blocks belong to a third type of blocks, said third type designating blocks containing data that will be erased; (e) changing at least one of said plurality of blocks from one of said first, said second and said third types of blocks to another type; and (f) preserving valid data in a subset of said plurality of blocks. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12, 13)
-
Specification