Tracking the most frequently erased blocks in non-volatile memory systems
First Claim
1. A method for processing elements included in a non-volatile memory of a memory system, the method comprising:
- obtaining erase counts associated with a plurality of elements, the plurality of elements including erased elements and elements containing data, wherein each element included in the plurality of elements has an associated erase count, the associated erase count of each element being arranged to indicate a number of times the element has been erased;
defining a first set of erased elements, by selecting erased elements having highest associated erase counts relative to the erase counts associated with the plurality of elements; and
storing the erase counts associated with the first set in a memory component substantially within a table, wherein the memory component is associated with the memory system.
11 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus for performing wear leveling in a non-volatile memory system are disclosed. According to one aspect of the present invention, a method for processing elements included in a non-volatile memory of a memory system includes obtaining erase counts associated with a plurality of erased elements. Each element included in the plurality of elements has an associated erase count that indicates a number of times the element has been erased. The method also includes grouping a number of erased elements included in the plurality of elements into a first set, and storing the erase counts associated with the first set in a memory component of the memory system. Grouping the number of elements into the first set typically includes selecting erased elements included in the plurality of elements which have the highest associated erase counts of the erase counts associated with the plurality of elements.
155 Citations
31 Claims
-
1. A method for processing elements included in a non-volatile memory of a memory system, the method comprising:
-
obtaining erase counts associated with a plurality of elements, the plurality of elements including erased elements and elements containing data, wherein each element included in the plurality of elements has an associated erase count, the associated erase count of each element being arranged to indicate a number of times the element has been erased; defining a first set of erased elements, by selecting erased elements having highest associated erase counts relative to the erase counts associated with the plurality of elements; and storing the erase counts associated with the first set in a memory component substantially within a table, wherein the memory component is associated with the memory system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13)
-
-
12. The method of claim 12 wherein obtaining the erase counts includes obtaining the erase counts from the erase count block.
-
14. A method for processing elements included in a non-volatile memory of a memory system, the method comprising:
-
obtaining erase counts associated with a plurality of elements, wherein each element included in the plurality of elements has an associated erase count, the associated erase count of each element being arranged to indicate a number of times the element has been erased; grouping a number of elements included in the plurality of elements into a first set, wherein grouping the number of elements into the first set includes selecting erased elements included in the plurality of erased elements which have the highest associated erase counts of the erase counts associated with the plurality of erased elements; storing the erase counts associated with the first set in a memory component substantially within a table, wherein the memory component is associated with the memory system; and sorting the elements in the first set according to the erase count associated with each element; identifying a first element included in the first set, the first element having the lowest erase count associated with the first set; calculating an average erase count associated with the first set; determining whether the erase count associated with a second erased element included in the plurality of elements is greater than the average erase count by more than a predetermined percentage; disassociating the first element from the first set responsive to the erase count associated with the second element being greater than the average erase count by more than the predetermined percentage; and associating the second element with the first set responsive to the erase count associated with the second element being greater than the average erase count by more than the predetermined percentage.
-
-
15. A memory management system for processing elements included in a non-volatile memory of a memory system, the memory management system comprising:
-
code devices for obtaining erase counts associated with a plurality of elements, the plurality of elements including erased elements and elements containing data, wherein each element included in the plurality of elements has an associated erase count, the associated erase count of each element being arranged to indicate a number of times the element has been erased; code devices for defining a first set of erased element, by selecting erased elements having highest associated erase counts relative to the erase counts associated with the plurality of elements; and code devices for storing the erase counts associated with the first set as a part of a data structure in a memory component, the memory component being associated with the memory system. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
-
22. A method for processing elements included in a non-volatile memory of a memory system, each element having an associated erase count, the method comprising:
-
identifying erased elements in the non-volatile memory; defining a first set of erased elements, wherein the elements included in the first set of erased elements have associated erase counts that are high relative to erased elements not included in the first set of elements; placing entries associated with the first set of elements, the entries including the associated erase counts, into a data structure; sorting the entries within the data structure; identifying a first element within the first set of elements using the sorted entries, wherein the first element has a lower associated erase count than other elements included in the first set of elements; erasing the contents of a second element; responsive to an associated erase count of the second element exceeding the associated erase count of the identified first element, removing the first element from the first set of erased elements; and then adding the second element to the first set of erased elements. - View Dependent Claims (23, 24, 25, 26, 27)
-
-
28. A memory system comprising:
-
memory elements; a system memory component, for storing an associated erase count for each of the memory elements; means for identifying erased ones of the memory elements; means for defining a first set of the erased memory elements, wherein the memory elements included in the first set of erased memory elements have associated erase counts that are high relative to the erased memory elements not included in the first set of memory elements; means for placing entries associated with the first set of erased memory elements, the entries including an erase count associated with each erased memory element, into a data structure associated with the system memory component; means for sorting the entries within the data structure; means identifying a first memory element within the first set of memory elements using the sorted entries, wherein the first memory element has a lower associated erase count than other memory elements included in the first set of memory elements; and means for removing the first memory element from the first set of erased elements responsive to an associated erase count of the second element exceeding the associated erase count of the identified first element, and for then adding the second element to the first set of erased elements. - View Dependent Claims (29, 30, 31)
-
Specification