Memory module and method for performing wear-leveling of memory module using remapping, link, and spare area tables
First Claim
1. A memory module capable of wear-leveling, comprising:
- a flash memory, comprising a plurality of management units, wherein each of the management units comprises a plurality of blocks; and
a controller, receiving new data with a logical address managed by a first management unit selected from the management units, popping a first spare block from a spare area of the first management unit, determining whether an erase count of the first spare block is greater than a first threshold value, searching a second management unit selected from the management units for a replacing block with an erase count lower than a second threshold value when the erase count of the first spare block is greater than the first threshold value, and directing the first management unit and the second management unit to exchange the first spare block and the replacing block;
wherein each of the management units has a remapping table storing a first corresponding relationship between a plurality of physical addresses and a plurality of indexes corresponding to all of the blocks of the management unit, and each of the management units further has a link table storing a second corresponding relationship between a plurality of logical addresses of stored data and a first portion of the indexes corresponding to the blocks holding the stored data, and a spare area table storing a second portion of the indexes corresponding to the blocks storing no data.
1 Assignment
0 Petitions
Accused Products
Abstract
The invention comprises a memory module capable of wear-leveling. In one embodiment, the memory module comprises a flash memory and a controller. The flash memory comprises a plurality of management units, wherein each of the management units comprises a plurality of blocks. The controller receives new data with a logical address managed by a first management unit selected from the management units, pops a first spare block from a spare area of the first management unit, determines whether an erase count of the first spare block is greater than a first threshold value, searches a second management unit selected from the management units for a replacing block with an erase count lower than a second threshold value when the erase count of the first spare block is greater than the first threshold value, and directs the first management unit and the second management unit to exchange the first spare block with the replacing block.
21 Citations
18 Claims
-
1. A memory module capable of wear-leveling, comprising:
-
a flash memory, comprising a plurality of management units, wherein each of the management units comprises a plurality of blocks; and a controller, receiving new data with a logical address managed by a first management unit selected from the management units, popping a first spare block from a spare area of the first management unit, determining whether an erase count of the first spare block is greater than a first threshold value, searching a second management unit selected from the management units for a replacing block with an erase count lower than a second threshold value when the erase count of the first spare block is greater than the first threshold value, and directing the first management unit and the second management unit to exchange the first spare block and the replacing block; wherein each of the management units has a remapping table storing a first corresponding relationship between a plurality of physical addresses and a plurality of indexes corresponding to all of the blocks of the management unit, and each of the management units further has a link table storing a second corresponding relationship between a plurality of logical addresses of stored data and a first portion of the indexes corresponding to the blocks holding the stored data, and a spare area table storing a second portion of the indexes corresponding to the blocks storing no data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for performing wear-leveling in a memory module, wherein the memory module comprises a flash memory comprising a plurality of management units, and each of the management units comprises a plurality of blocks, comprising:
-
receiving new data with a logical address managed by a first management unit selected from the management units; popping a first spare block from a spare area of the first management unit; determining whether an erase count of the first spare block is greater than a first threshold value; searching a second management unit selected from the management units for a replacing block with an erase count lower than a second threshold value when the erase count of the first spare block is greater than the first threshold value; and directing the first management unit and the second management unit to exchange the first spare block and the replacing block; wherein each of the management units has a remapping table storing a first corresponding relationship between a plurality of physical addresses and a plurality of indexes corresponding to all of the blocks of the management unit, and each of the management units further has a link table storing a second corresponding relationship between a plurality of logical addresses of stored data and a first portion of the indexes corresponding to the blocks holding the stored data, and a spare area table storing a second portion of the indexes corresponding to the blocks storing no data. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification