System and method for bank logical data remapping
First Claim
1. A method of remapping storage of content between memory banks in a storage device, the method comprising:
- in a storage device having a controller in communication with non-volatile memory, wherein the non-volatile memory comprises a plurality of memory banks and wherein each of the plurality of memory banks is associated with a respective unique range of logical block addresses, the controller;
detecting a bank remapping review event, wherein detecting the bank remapping review event comprises determining a total erase count for only multi-level cell (MLC) flash memory cells in the plurality of memory banks exceeds a predetermined storage device erase count;
in response to detecting the bank remapping review event, determining a difference in erase counts between a first memory bank having a highest erase count in the plurality of memory banks and a second memory bank having a lowest erase count in the plurality of memory banks; and
when the difference in erase counts exceeds a predetermined threshold, remapping logical block addresses from a first range of logical block addresses associated with the first memory bank to a second range of logical block addresses associated with the second memory bank.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system are disclosed for remapping logical addresses between memory banks of discrete or embedded multi-bank storage device. The method may include a controller of a storage device tracking a total erase count for a storage device, determining if an erase count imbalance greater than a threshold exists between banks, and then remapping logical address ranges from the highest erase count bank to the lowest erase count bank to even out wear between the banks. The system may include a controller that may maintain a bank routing table, an erase counting mechanism and execute instructions for triggering a remapping process to remap an amount of logical addresses such that an address range is reduced for a hotter bank and increased for a colder bank.
15 Citations
19 Claims
-
1. A method of remapping storage of content between memory banks in a storage device, the method comprising:
in a storage device having a controller in communication with non-volatile memory, wherein the non-volatile memory comprises a plurality of memory banks and wherein each of the plurality of memory banks is associated with a respective unique range of logical block addresses, the controller; detecting a bank remapping review event, wherein detecting the bank remapping review event comprises determining a total erase count for only multi-level cell (MLC) flash memory cells in the plurality of memory banks exceeds a predetermined storage device erase count; in response to detecting the bank remapping review event, determining a difference in erase counts between a first memory bank having a highest erase count in the plurality of memory banks and a second memory bank having a lowest erase count in the plurality of memory banks; and when the difference in erase counts exceeds a predetermined threshold, remapping logical block addresses from a first range of logical block addresses associated with the first memory bank to a second range of logical block addresses associated with the second memory bank. - View Dependent Claims (2, 8)
-
3. A method of remapping storage of content between memory banks in a storage device, the method comprising:
in a storage device having a controller in communication with non-volatile memory, wherein the non-volatile memory comprises a plurality of memory banks and wherein each of the plurality of memory banks is associated with a respective unique range of logical block addresses, the controller; detecting a bank remapping review event; in response to detecting the bank remapping review event, determining a difference in erase counts between a first memory bank having a highest erase count in the plurality of memory banks and a second memory bank having a lowest erase count in the plurality of memory banks; and when the difference in erase counts exceeds a predetermined threshold, remapping logical block addresses from a first range of logical block addresses associated with the first memory bank to a second range of logical block addresses associated with the second memory bank; and wherein remapping logical block addresses comprises the controller of the storage device selecting a range of logical block addresses associated with the first memory bank and changing an association of the selected range of logical block addresses from the first memory bank to the second memory bank such that a total logical block address range associated with the first memory bank is reduced and a total logical block address range associated with the second memory bank is increased. - View Dependent Claims (4, 5, 6, 7)
-
9. A storage device comprising:
-
a non-volatile memory having a plurality of memory banks and wherein each of the plurality of memory banks is associated with a respective unique range of logical block addresses; and a controller in communication with the plurality of memory banks, the controller configured to; detect a bank remapping review event, wherein the controller is configured to detect the bank remapping review event when a total erase count for only multi-level cell (MLC) flash memory cells in the plurality of memory banks exceeds a predetermined storage device erase count; in response to detecting the bank remapping review event, determine a difference in erase counts between a first memory bank having a highest erase count in the plurality of memory banks and a second memory bank having a lowest erase count in the plurality of memory banks; and when the difference between the highest and lowest erase counts exceeds a predetermined threshold; remap logical block addresses from a first range of logical block addresses associated with the first memory bank to a second range of logical block addresses associated with the second memory bank. - View Dependent Claims (10, 11, 12, 13, 15, 16, 17)
-
-
14. A storage device comprising:
-
a non-volatile memory having a plurality of memory banks and wherein each of the plurality of memory banks is associated with a respective unique range of logical block addresses; and a controller in communication with the plurality of memory banks, the controller configured to; detect a bank remapping review event; in response to detecting the bank remapping review event, determine a difference in erase counts between a first memory bank having a highest erase count in the plurality of memory banks and a second memory bank having a lowest erase count in the plurality of memory banks; and when the difference between the highest and lowest erase counts exceeds a predetermined threshold; remap logical block addresses from a first range of logical block addresses associated with the first memory bank to a second range of logical block addresses associated with the second memory bank, wherein to remap logical block addresses the controller of the storage device is configured to select a range of logical block addresses associated with the first memory bank and change an association of the selected range of logical block addresses from the first memory bank to the second memory bank; and wherein the controller is configured to select logical block addresses associated with valid data and associate the selected logical block addresses to the second memory bank without copying the valid data from the first memory bank to the second memory bank, wherein the controller is configured to divert data associated with the selected logical block addresses received in a subsequent host write command to the second memory bank.
-
-
18. A storage device comprising:
-
a non-volatile memory having a plurality of memory banks and wherein each of the plurality of memory banks is associated with a respective unique range of logical block addresses; and a controller in communication with the plurality of memory banks, the controller configured to; detect a bank remapping review event; in response to detecting the bank remapping review event, determine a difference in erase counts between a first memory bank having a highest erase count in the plurality of memory banks and a second memory bank having a lowest erase count in the plurality of memory banks; and when the difference between the highest and lowest erase counts exceeds a first predetermined threshold; remap logical block addresses from a first range of logical block addresses associated with the first memory bank to a second range of logical block addresses associated with the second memory bank; in response to detecting the bank remapping review event, determine a difference in erase counts between a third memory bank having a second highest erase count in the plurality of memory banks and a fourth memory bank having a second lowest erase count in the plurality of memory banks; and when the difference between the second highest and second lowest erase counts exceeds a second predetermined threshold; remap logical block addresses from a third range of logical block addresses associated with the third memory bank to a fourth range of logical block addresses associated with the fourth memory bank. - View Dependent Claims (19)
-
Specification