Method and apparatus for flash memory wear-leveling using logical groups
First Claim
1. A method of wear-leveling a memory device, the method comprising:
- grouping a first region of the device into a plurality of logical groups each comprising a plurality of logical block numbers;
checking whether logical group information comprising block erase counts for logical block numbers in a logical group is loaded into random access memory (“
RAM”
), and if not, loading the logical group information into RAM;
calculating a group erase count for the logical group from the block erase counts in RAM wherein the calculated group erase count is one of a minimum, maximum or average of all of the block erase counts for the logical block numbers currently in the logical group;
receiving a command having a logical address;
converting the logical address into a logical block number;
determining a logical group number for a current logical group that includes the converted logical block number; and
checking whether an accumulated number of merge operations is greater than a predetermined number, and if so, selecting a logical block number currently classified as a data block number and having a minimum block erase count from another logical group having a minimum group erase count, and swapping the selected logical block number from the other logical group into the current logical group in exchange for a logical block number currently classified as a free block number and having a maximum block erase count.
1 Assignment
0 Petitions
Accused Products
Abstract
A memory system and corresponding method of wear-leveling are provided, the system including a controller, a random access memory in signal communication with the controller, and another memory in signal communication with the controller, the other memory comprising a plurality of groups, each group comprising a plurality of first erase units or blocks and a plurality of second blocks, wherein the controller exchanges a first block from a group with a second block in response to at least one block erase count within the group; and the method including receiving a command having a logical address, converting the logical address into a logical block number, determining a group number for a group that includes the converted logical block number, and checking whether group information comprising block erase counts for the group is loaded into random access memory, and if not, loading the group information into random access memory.
-
Citations
39 Claims
-
1. A method of wear-leveling a memory device, the method comprising:
-
grouping a first region of the device into a plurality of logical groups each comprising a plurality of logical block numbers; checking whether logical group information comprising block erase counts for logical block numbers in a logical group is loaded into random access memory (“
RAM”
), and if not, loading the logical group information into RAM;calculating a group erase count for the logical group from the block erase counts in RAM wherein the calculated group erase count is one of a minimum, maximum or average of all of the block erase counts for the logical block numbers currently in the logical group; receiving a command having a logical address; converting the logical address into a logical block number; determining a logical group number for a current logical group that includes the converted logical block number; and checking whether an accumulated number of merge operations is greater than a predetermined number, and if so, selecting a logical block number currently classified as a data block number and having a minimum block erase count from another logical group having a minimum group erase count, and swapping the selected logical block number from the other logical group into the current logical group in exchange for a logical block number currently classified as a free block number and having a maximum block erase count. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method of wear-leveling a memory device, the method comprising:
-
dividing a first region of the device into a plurality of logical groups wherein each logical group comprises a plurality of logical erase units or logical blocks; calculating a group erase count for each logical group in response to at least one block erase count from the logical group, wherein the calculated group erase count for a logical group is a minimum, maximum or average of all of the block erase counts in said logical group; and replacing a logical block in one logical group in response to a comparison of the calculated group erase counts when an accumulated number of merge operations is greater than a predetermined number, wherein a logical block having a maximum block erase count is swapped out for a logical block having a minimum block erase count from a logical group having a minimum group erase count, wherein a logical block currently classified as a free block and having a maximum block erase count is swapped out for a logical block currently classified as a data block and having a minimum block erase count. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A wear-leveling memory system comprising:
-
a controller; a random access memory (“
RAM”
) in signal communication with the controller; andanother memory in signal communication with the controller, the other memory comprising a plurality of logical groups, each logical group comprising a plurality of first logical erase units or logical blocks and a plurality of second logical blocks, wherein the controller is disposed for exchanging a first logical block from a logical group with a second logical block in response to at least one block erase count within the logical group by calculating a group erase count for each logical group in response to at least one block erase count from the logical group where the group erase count is a minimum, maximum or average of all the block erase counts in the logical group, and replacing a logical block in the logical group in response to a comparison of the calculated group erase counts when an accumulated number of merge operations is greater than a predetermined number where a logical block having a maximum block erase count is swapped out for a logical block having a minimum block erase count from a logical group having a minimum group erase count, wherein a logical block currently classified as a free block and having a maximum block erase count is swapped out for a logical block currently classified as a data block and having a minimum block erase count. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39)
-
Specification