Flash memory mass storage architecture incorporation wear leveling technique
DCFirst Claim
1. A non-volatile semiconductor mass storage device comprising:
- a. a plurality of non-volatile storage blocks, wherein each block is selectively programmable and erasable and only blocks containing no data may be programmed;
b. means for determining whether any unprogrammed blocks remain;
c. means for replacing superseded data with updated data, the means for replacing including nonvolatile flag means, corresponding to each of the storage blocks, and programming means, wherein the nonvolatile flag means is set for blocks having superseded data and further wherein the programming means stores updated data into a block containing no data; and
d. means for periodically and selectively erasing all blocks having nonvolatile flag means which are set, whereby an erase cycle is not needed each time data is stored into one of the blocks;
e. means for correlating coupled to the storage blocks and to the means for replacing for directly correlating a logical address assigned to superseded data to a physical address of updated data wherein the non-volatile flag means and a logical address of each of the storage blocks are stored in a nonvolatile content addressable memory.
13 Assignments
Litigations
0 Petitions
Accused Products
Abstract
A semiconductor mass storage device can be substituted for a rotating hard disk. The device avoids 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 a hard disk would. Periodically, the mass storage will need to be cleaned up. Secondly, a circuit for evenly using all blocks in the mass storage is provided. These advantages are achieved through the use of several flags, a map to directly 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.
-
Citations
41 Claims
-
1. A non-volatile semiconductor mass storage device comprising:
-
a. a plurality of non-volatile storage blocks, wherein each block is selectively programmable and erasable and only blocks containing no data may be programmed; b. means for determining whether any unprogrammed blocks remain; c. means for replacing superseded data with updated data, the means for replacing including nonvolatile flag means, corresponding to each of the storage blocks, and programming means, wherein the nonvolatile flag means is set for blocks having superseded data and further wherein the programming means stores updated data into a block containing no data; and d. means for periodically and selectively erasing all blocks having nonvolatile flag means which are set, whereby an erase cycle is not needed each time data is stored into one of the blocks; e. means for correlating coupled to the storage blocks and to the means for replacing for directly correlating a logical address assigned to superseded data to a physical address of updated data wherein the non-volatile flag means and a logical address of each of the storage blocks are stored in a nonvolatile content addressable memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A non-volatile semiconductor mass storage device comprising:
-
a. a plurality of non-volatile storage blocks, wherein each block is selectively programmable and erasable; b. a first indicating element to provide a first indicia whether each block has been programmed with a data file; c. a second indicating element to provide a second indicia whether the data file of each programmed block is superseded; d. a programming element to program a new data file into an empty block; and e. a periodically activated erasing circuit coupled to each of the storage blocks for selectively erasing all blocks in which the data file is superseded, wherein the erasing circuit is not activated each time data is stored in one of the storage blocks; f. means for correlating coupled to the storage blocks and to the programming element for directly correlating a logical address assigned to superseded data to a physical address of updated data wherein the first indicating element, the second indicating element and the logical address are stored in a nonvolatile content addressable memory. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. 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; b. a plurality of first flags, one first flag for each block, each first flag having a first logic state to indicate that a block has not been programmed with data and a second logic state to indicate that the block has been programmed with data; c. a selecting element coupled to the storage blocks and to the plurality of first flags for identifying an empty storage block having a first flag in the first logic state where new and updated data may be stored; d. a plurality of second flags that can only be changed in a block having its first flag in the second logic state, one second flag for each block, each second flag having a third logic state to indicate that the data in a block is valid and a fourth logic state to indicate that the data in the block has been superseded; e. a content addressable memory for storing a logical address assigned to a block of superseded data and a physical address of a block of updated data corresponding to the superseded data; and f. an erasing circuit coupled to each of the storage blocks for selectively erasing all blocks having a second flag in the fourth logic state, wherein the erasing circuit is not activated each time data is stored in a storage block; and g. means for directly correlating coupled to the storage blocks and to content addressable memory, for correlating a logical address assigned to the superseded data to a physical address of updated data. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. A method of storing data into a non-volatile semiconductor mass storage device having a plurality of non-volatile storage blocks, wherein each block is selectively programmable and erasable wherein only blocks containing no data may be programmed, the method comprising the steps of:
-
a. determining whether any unprogrammed blocks remain; b. replacing superseded data with updated data by ignoring blocks having superseded data and programming the updated data into a block containing no data without erasing the superseded data; and c. periodically and selectively erasing all blocks having superseded data; d. directly correlating a logical address assigned to a block of superseded data to a physical address of a corresponding block of updated data. - View Dependent Claims (38, 39, 40, 41)
-
Specification