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;
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.
35 Citations
23 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; 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, 3, 4, 5, 6, 7, 8, 9, 10)
-
11. 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 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 (12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. 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 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; 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 the second highest and second lowest erase counts exceeds a 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 (23)
-
Specification