Wear leveling of static areas in flash memory
First Claim
1. A method for wear leveling in flash storage media, comprising the steps of:
- i. activating the wear leveling method at least once per some number of operations done by a flash data manager;
ii. selecting a unit in the media, independently of how often said unit has been erased and in a manner that successive selections will ultimately select all units;
iii. moving selected unit data from the media to a free unit in the media, and erasing said selected unit.
4 Assignments
0 Petitions
Accused Products
Abstract
An improved method for affecting wear leveling in all units of a flash media, with a considerable decrease in usage of system resources. This is enabled by providing an algorithm that ensures that static areas do not remain static, and that the static data within them is guaranteed to move to other physical locations, such that wear leveling is achieved for all units. The method comprises: launching the wear leveling method once per some large number of write or erase operations done by the Flash data manager; selecting a unit in the media in a manner that successive selections will ultimately select all units; and moving the selected unit data to another free unit, and erasing the selected unit.
-
Citations
7 Claims
-
1. A method for wear leveling in flash storage media, comprising the steps of:
-
i. activating the wear leveling method at least once per some number of operations done by a flash data manager;
ii. selecting a unit in the media, independently of how often said unit has been erased and in a manner that successive selections will ultimately select all units;
iii. moving selected unit data from the media to a free unit in the media, and erasing said selected unit. - View Dependent Claims (2, 3, 4, 5)
a. counting erase operations to determine when said count is a multiple of a chosen number;
b. counting write operations to determine when said count is a multiple of a chosen number;
c. generating a random process for each erase operation, according to a chosen probability for success; and
d. generating a random process for each write operation, according to a chosen probability for success.
-
-
3. The method of claim 2, further comprising performing said generation of said some number in a manner designed to be of low incidence relative to the number of write and erase operations that the flash media is subjected to.
-
4. The method of claim 1, wherein said selecting of said unit is performed in a manner selected from the group consisting of:
-
I. setting a specific order for selection; and
II. selecting units by a random process, such that equal probability is given for each unit to be selected.
-
-
5. The method of claim 1, wherein said selected unit is a static unit.
-
6. A mechanism for ensuring that no erase unit in a flash storage media remains static during a significant portion of the lifespan of the flash storage media containing it, comprising:
-
i. a flash storage media for storing data; and
ii. a computer executable code for ensuring that no erase unit in said flash storage media remains static during a significant portion of the lifespan of said flash storage media, by periodically selecting an erase unit, independently of how often said unit has been erased and in a manner such that successive selections will ultimately select all erase units, moving data from said selected unit to a free unit and erasing said selected erase unit.
-
-
7. A mechanism for ensuring that all erase units in a flash storage media are subjected to at least one erase operation during a significant portion of the lifespan of the flash storage media containing it, comprising:
-
i. a flash storage media for storing data; and
ii. a computer executable code for ensuring that all erase units in said flash storage media are subjected to at least one erase operation during a significant portion of the lifespan of said flash storage media, by periodically selecting an erase unit, independently of how often said unit has been erased and in a manner such that successive selections will ultimately select all erase units, moving data from said selected unit to a free unit and erasing said selected erase unit.
-
Specification