Memory managing method for non-volatile memory and controller using the same
AssigneePhison Electronics Corp.
InventorChih-Kang Yeh
Life of this patent
Estimating the term…
Abstract
A memory managing method for a non-volatile memory and a controller using the same are disclosed. The controller includes a system wear leveling member for performing a first wear leveling process in a non-volatile memory for choosing a memory unit; and a subsystem wear leveling member for performing a second wear leveling process in the chosen memory unit for selecting a block from the chosen memory unit for data programming; whereby uneven use of the blocks of the chosen memory unit is avoided.
Claims38
A memory managing method for a non-volatile memory having a first plurality of blocks, comprising the steps of:
- (a) grouping the first plurality of blocks into a second plurality of memory units;
- (b) writing data to at least a block of one of the second plurality of memory units;
- (c) increasing a counting value of the one memory unit after all the blocks of the one memory unit are written;
- and
- (d) performing a wear leveling process in the non-volatile memory according to the counting value of each of the memory units.
A controller for a non-volatile memory having a first plurality of blocks, the first plurality of blocks being grouped into a second plurality of memory units, the controller comprising:
- a microprocessor for programming and erasing data in the selected block;
- a calculating unit, coupled to the microprocessor and used for calculating a counting value of each of the second plurality of memory units;
- and
- a selector, coupled to the microprocessor and used for choosing a memory unit having an empty memory space with a least counting value, and for selecting at least one block from the chosen memory unit.
A data programming system, comprising:
- multiple memory modules, each having a plurality of blocks, respective blocks of the memory modules being grouped into respective memory units;
- and
- a controller for controlling the plurality of memory modules, including:
- a calculating unit for calculating a counting value of each of the memory units;
- a selector for choosing a memory unit having an empty memory space with a least counting value, and for selecting at least one block from the chosen memory unit;
- and
- a microprocessor for programming and erasing data in the selected block;
- whereby uneven use of the blocks of the chosen memory unit is avoided.
A memory managing method for a non-volatile memory having a first plurality of blocks, comprising the steps of:
- (a) grouping the first plurality of blocks into a second plurality of memory units;
- (b) calculating a first counting value of each of the memory units;
- (c) locating empty memory units among the memory units;
- (d) calculating a second counting value of each of the blocks of the memory units;
- (e) choosing a memory unit among the empty memory units having a least first counting value;
- (f) selecting a block from the chosen memory unit having a least second counting value;
- and
- (g) programming a data into the selected block;
- whereby uneven use of the blocks of the chosen memory unit is avoided.
Dependencies are inferred from the claim text.