Flash memory mass storage architecture
First Claim
1. A non-volatile semiconductor mass storage device comprising:
- a. a plurality of non-volatile storage blocks, wherein each block is selectively programmable to store data and is selectively erasable and further wherein each block has a finite number of erase cycle lifetimes; and
b. means for ensuring no block is subjected to more than a predetermined larger number of erase cycles than any other block.
12 Assignments
0 Petitions
Accused Products
Abstract
A semiconductor mass storage system and architecture can be substituted for a rotating hard disk. The system and architecture avoid an erase cycle each time information stored in the mass storage is changed. (The erase cycle is understood to include, fully programming the block to be erased, and then erasing the block.) Erase cycles are avoided by programming an altered data file into an empty mass storage block rather than over itself as hard disk would. Periodically, the mass storage will need to be cleaned up. Secondly, all blocks in the mass storage are used evenly. These advantages are achieved through the use of several flags, a map to correlate a logical address of a block to a physical address of that block and a count register for each block. In particular, flags are provided for defective blocks, used blocks, old version of a block, a count to determine the number of times a block has been erased and written and erase inhibit flag.
451 Citations
24 Claims
-
1. A non-volatile semiconductor mass storage device comprising:
-
a. a plurality of non-volatile storage blocks, wherein each block is selectively programmable to store data and is selectively erasable and further wherein each block has a finite number of erase cycle lifetimes; and b. means for ensuring no block is subjected to more than a predetermined larger number of erase cycles than any other block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-volatile semiconductor mass storage device comprising:
-
a. a plurality of non-volatile storage blocks, wherein each block is selectively programmable to store data and is selectively erasable and further wherein each block has a finite number of erase cycle lifetimes; and b. a controller to ensure no block is subjected to more than a predetermined larger number of erase cycles than any other block. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A non-volatile semiconductor mass storage device comprising:
-
a. a plurality of non-volatile storage blocks, wherein each block is selectively programmable to store data and is selectively erasable and further wherein each block has a finite number of erase cycle lifetimes; b. a plurality of counters, one counter for each block, to count each time its associated block is erased, wherein a programmable maximum value is applied to all the blocks; c. a plurality of erase inhibit flags, each flag having a set condition and an unset condition, one flag for each block, wherein the flag for a block having a count value equal to the maximum value is set to prevent further erasing of that block; d. a controller to switch data in a block having a relatively small count value into a block having the maximum value; and e. an erase element to clear all counters and all flags once all flags are set. - View Dependent Claims (20, 21, 22, 23)
-
-
24. A method of maintaining parity of erase cycles amongst storage blocks in a non-volatile semiconductor mass storage device having a plurality of non-volatile storage blocks, wherein each block is selectively programmable to store data and is selectively erasable and further wherein each block has a finite number of erase cycle lifetimes, the method comprising;
-
a. counting and maintaining a count value for each block representing each time it is erased; b. setting a predetermined maximum value; c. preventing an erase cycle from being performed on a block having a count value equal to the maximum value; d. switching data from a block having a smallest count value into a block having the maximum value; and e. erasing the count values once all blocks have been erased the maximum value of times.
-
Specification