Tracking the least 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, each element having an associated erase count, the method comprising:
- identifying a first set of erased elements, wherein the erased elements included in the first set of erased elements are less worn than erased elements not included in the first set of erased elements, by identifying a number of erased elements for which the associated erase counts are relatively low and grouping the identified erased elements into the first set;
placing entries associated with the first set of elements into a data structure;
sorting the entries within the data structure; and
identifying a first element within the first set of elements using the sorted entries, wherein the first element is less worn than other elements included in the first set of elements;
determining when a second element not included in the first set is to be erased;
removing the first element from the first set when it is determined that the second element is to be erased;
copying one of contents of the second element and new contents to replace the contents of the second element into the first element;
erasing the contents from the second element; and
adding the second element to the first set.
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, one method for processing elements included in a non-volatile memory of a memory system includes obtaining erase counts associated with elements and grouping a number of the elements into a first set. Each element has an associated erase count that substantially indicates a number of times the element has been erased. Grouping the number of elements into the first set includes selecting elements included in the plurality of elements which have the lowest associated erase counts of the erase counts associated with the plurality of elements. The method also includes storing the erase counts associated with the first set in a memory component substantially within a table.
-
Citations
24 Claims
-
1. 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 a first set of erased elements, wherein the erased elements included in the first set of erased elements are less worn than erased elements not included in the first set of erased elements, by identifying a number of erased elements for which the associated erase counts are relatively low and grouping the identified erased elements into the first set; placing entries associated with the first set of elements into a data structure; sorting the entries within the data structure; and identifying a first element within the first set of elements using the sorted entries, wherein the first element is less worn than other elements included in the first set of elements; determining when a second element not included in the first set is to be erased; removing the first element from the first set when it is determined that the second element is to be erased; copying one of contents of the second element and new contents to replace the contents of the second element into the first element; erasing the contents from the second element; and adding the second element to the first set. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A flash memory system, comprising:
-
an array of non-volatile memory cells, arranged into a plurality of physical blocks; system memory, comprising non-volatile memory for storing at least one data structure comprised of a plurality of entries, the entries including erase counts of physical blocks of the array; and memory controller circuitry, coupled to the array and the system memory, and programmed to perform a plurality of operations comprising; identifying a first set of erased physical blocks, wherein the erased physical blocks included in the first set of erased physical blocks are less worn than erased physical blocks not included in the first set of erased physical blocks, by identifying a number of erased physical blocks for which the associated erase counts stored in the system memory are relatively low and grouping the identified erased physical blocks into the first set; placing entries associated with the first set of physical blocks into a first data structure; sorting the entries within the first data structure; identifying a first physical block within the first set of physical blocks using the sorted entries, wherein the first physical block is less worn than other physical blocks included in the first set of physical blocks; determining when a second physical block not included in the first set is to be erased; removing the first physical block from the first set when it is determined that the second physical block is to be erased; copying one of contents of the second physical block and new contents to replace the contents of the second physical block into the first physical block; erasing the contents from the second physical block; and adding the second physical block to the first set. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
Specification