IP Library Granted Patent US 9,298,608
Granted Patent B2
US 9,298,608 · App. 14/137,440 · Granted Mar 29, 2016

Biasing for wear leveling in storage systems

Inventors: James Fitzpatrick (Sudbury, MA); James Higgins (Chandler, AZ)
Assignee: SANDISK ENTERPRISE IP LLC
G06F12/0246G11C16/3495
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,298,608
App. No.
14/137,440
Granted
Mar 29, 2016
Kind
B2
Abstract

The various implementations described herein include systems, methods and/or devices used to enable biasing for wear leveling in storage systems. In one aspect, the method includes (1) determining, for each erase unit of a plurality of erase units in the storage medium, an age metric, (2) determining a representative age metric of the plurality of erase units, (3) for each respective erase unit of the plurality of erase units, biasing a respective garbage collection control metric for the respective erase unit in accordance with the age metric of the respective erase unit in relation to the representative age metric of the plurality of erase units to generate an adjusted garbage collection control metric for the respective erase unit, and (4) performing garbage collection for the storage medium in accordance with the adjusted garbage collection control metrics of the plurality of erase units.

Claims (71)

1. A method of wear leveling for a storage medium in a storage system, the method comprising:

determining, for each erase unit of a plurality of erase units in the storage medium, an age metric;

determining a representative age metric of the plurality of erase units;

for each respective erase unit of the plurality of erase units, biasing a respective garbage collection control metric for the respective erase unit in accordance with the age metric of the respective erase unit in relation to the representative age metric of the plurality of erase units to generate an adjusted garbage collection control metric for the respective erase unit, wherein biasing the respective garbage collection control metric includes:

calculating a difference between the age metric of the respective erase unit and the representative age metric of the plurality of erase units,

calculating a first value, the first value determined by multiplying the absolute value of the calculated difference by a predefined number of valid pages, and

biasing the respective garbage collection control metric by the calculated first value; and

performing garbage collection for the storage medium in accordance with the adjusted garbage collection control metrics of the plurality of erase units.

2. The method of claim 1 , wherein the garbage collection control metric is a valid-page count, and wherein biasing the respective valid-page count for the respective erase unit includes:

determining the respective valid-page count, wherein the respective valid-page count is a count of valid pages in the respective erase unit;

calculating a bias value for the respective erase unit in accordance with the age metric of the respective erase unit in relation to the representative age metric of the plurality of erase units;

in accordance with a first determination that the age metric of the respective erase unit corresponds to a shorter estimated remaining life than erase units having the representative age metric of the plurality of erase units, adding the bias value to the respective valid-page count for the respective erase unit to generate the adjusted valid-page count for the respective erase unit; and

in accordance with a second determination that the age metric of the respective erase unit corresponds to a longer estimated remaining life than erase units having the representative age metric of the plurality of erase units, subtracting the bias value from the respective valid-page count for the respective erase unit to generate the adjusted valid-page count for the respective erase unit.

3. The method of claim 1 , wherein:

the calculated first value is limited to a predefined maximum; and

the garbage collection control metric for the respective erase unit is biased by the limited first value.

4. The method of claim 2 , wherein performing garbage collection for the storage medium includes selecting an erase unit with a lowest adjusted valid-page count for garbage collection.

5. The method of claim 2 , wherein performing garbage collection for the storage medium includes performing garbage collection on a first erase unit with a first adjusted valid-page count prior to performing garbage collection on a second erase unit with a second adjusted valid-page count, wherein the first adjusted valid-page count is less than the second adjusted valid-page count.

6. The method of claim 1 , wherein biasing the respective garbage collection control metric for the respective erase unit includes:

determining the respective garbage collection control metric;

calculating a bias value for the respective erase unit in accordance with the age metric of the respective erase unit in relation to the representative age metric of the plurality of erase units, including limiting a range of the bias value to a predefined range; and

mathematically adjusting the respective garbage collection control metric for the respective erase unit with the calculated bias value to generate the adjusted garbage collection control metric for the respective erase unit.

7. The method of claim 1 , wherein the age metric for each erase unit is determined in accordance with a metric corresponding to estimated remaining life of each erase unit.

8. The method of claim 1 , wherein the erase unit is a single erase block.

9. The method of claim 1 , wherein the erase unit is a super block, wherein the super block includes a plurality of erase blocks.

10. The method of claim 1 , wherein the storage medium comprises one or more flash memory devices.

11. The method of claim 1 , wherein determining, for each erase unit of a plurality of erase units in the storage medium, the age metric comprises determining, for each storage unit of a plurality of storage units in the storage medium, an age metric for a respective storage unit, wherein each storage unit comprises a plurality of the erase units.

12. A device operable to perform wear leveling for a storage medium, the device comprising:

a storage medium interface for coupling the device to the storage medium; and

one or more modules, including a memory management module that includes one or more processors and memory storing one or more programs configured for execution by the one or more processors, the one or more modules coupled to the storage medium interface and configured to:

determine, for each erase unit of a plurality of erase units in the storage medium, an age metric;

determine a representative age metric of the plurality of erase units;

bias, for each respective erase unit of the plurality of erase units, a respective garbage collection control metric for the respective erase unit in accordance with the age metric of the respective erase unit in relation to the representative age metric of the plurality of erase units to generate an adjusted garbage collection control metric for the respective erase unit, wherein biasing the respective garbage collection control metric includes:

calculating a difference between the age metric of the respective erase unit and the representative age metric of the plurality of erase units,

calculating a first value, the first value determined by multiplying the absolute value of the calculated difference by a predefined number of valid pages, and

biasing the respective garbage collection control metric by the calculated first value; and

perform garbage collection for the storage medium in accordance with the adjusted garbage collection control metrics of the plurality of erase units.

13. The device of claim 12 , wherein the garbage collection control metric is a valid-page count, and wherein the one or more modules are configured to bias the respective valid-page count for the respective erase unit, including:

determining the respective valid-page count, wherein the respective valid-page count is a count of valid pages in the respective erase unit;

calculating a bias value for the respective erase unit in accordance with the age metric of the respective erase unit in relation to the representative age metric of the plurality of erase units;

in accordance with a first determination that the age metric of the respective erase unit corresponds to a shorter estimated remaining life than erase units having the representative age metric of the plurality of erase units, adding the bias value to the respective valid-page count for the respective erase unit to generate the adjusted valid-page count for the respective erase unit; and

in accordance with a second determination that the age metric of the respective erase unit corresponds to a longer estimated remaining life than erase units having the representative age metric of the plurality of erase units, subtracting the bias value from the respective valid-page count for the respective erase unit to generate the adjusted valid-page count for the respective erase unit.

14. The device of claim 12 , wherein:

the calculated first value is limited to a predefined maximum; and

the garbage collection control metric for the respective erase unit is biased by the limited first value.

15. The device of claim 13 , wherein the one or more modules are configured to perform garbage collection for the storage medium, including performing garbage collection on a first erase unit with a first adjusted valid-page count prior to performing garbage collection on a second erase unit with a second adjusted valid-page count, wherein the first adjusted valid-page count is less than the second adjusted valid-page count.

16. The device of claim 12 , wherein the one or more modules are configured to bias the respective garbage collection control metric for the respective erase unit, including:

determining the respective garbage collection control metric;

calculating a bias value for the respective erase unit in accordance with the age metric of the respective erase unit in relation to the representative age metric of the plurality of erase units, including limiting a range of the bias value to a predefined range; and

mathematically adjusting the respective garbage collection control metric for the respective erase unit with the calculated bias value to generate the adjusted garbage collection control metric for the respective erase unit.

17. The device of claim 12 , wherein the age metric for each erase unit is determined in accordance with a metric corresponding to estimated remaining life of each erase unit.

18. The device of claim 12 , wherein the storage medium comprises one or more flash memory devices.

19. A storage system, comprising:

a storage medium;

one or more processors; and

memory storing one or more programs, which when executed by the one or more processors cause the storage system to:

determine, for each erase unit of a plurality of erase units in the storage medium, an age metric;

determine a representative age metric of the plurality of erase units;

bias, for each respective erase unit of the plurality of erase units, a respective garbage collection control metric for the respective erase unit in accordance with the age metric of the respective erase unit in relation to the representative age metric of the plurality of erase units to generate an adjusted garbage collection control metric for the respective erase unit, wherein biasing the respective garbage collection control metric includes:

calculating a difference between the age metric of the respective erase unit and the representative age metric of the plurality of erase units,

calculating a first value, the first value determined by multiplying the absolute value of the calculated difference by a predefined number of valid pages, and

biasing the respective garbage collection control metric by the calculated first value; and

perform garbage collection for the storage medium in accordance with the adjusted garbage collection control metrics of the plurality of erase units.

20. A non-transitory computer readable storage medium storing one or more programs configured for execution by a device coupled to a storage medium, the one or more programs comprising instructions for:

determining, for each erase unit of a plurality of erase units in the storage medium, an age metric;

determining a representative age metric of the plurality of erase units;

for each respective erase unit of the plurality of erase units, biasing a respective garbage collection control metric for the respective erase unit in accordance with the age metric of the respective erase unit in relation to the representative age metric of the plurality of erase units to generate an adjusted garbage collection control metric for the respective erase unit, wherein biasing the respective garbage collection control metric includes:

calculating a difference between the age metric of the respective erase unit and the representative age metric of the plurality of erase units,

calculating a first value, the first value determined by multiplying the absolute value of the calculated difference by a predefined number of valid pages, and

biasing the respective garbage collection control metric by the calculated first value; and

performing garbage collection for the storage medium in accordance with the adjusted garbage collection control metrics of the plurality of erase units.

Assignments (6)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0948 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2016
From: SANDISK ENTERPRISE IP LLC
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 038295/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2014
From: FITZPATRICK, JAMES; HIGGINS, JAMES
To: SANDISK ENTERPRISE IP LLC
Reel/Frame 032040/0898 →
Continuity (2)
Provisional Application 61893102 · Oct 18, 2013
Related Publication 20150113206A1 · Apr 23, 2015