Variability aware wear leveling
First Claim
Patent Images
1. A method, comprising:
- determining a health for each location in a nonvolatile memory based at least on one or more wear metrics corresponding to each location, where the one or more wear metrics are based on measurements of the location, the measurements estimating physical wear of each location;
creating a global cumulative distribution based on the determined health of each location;
collecting a candidate pool of physical locations for data to be written to skipping any location having a health less than a health of a predetermined percentage of locations based on the global cumulative distribution;
selecting a location from the candidate pool based on a probability, where the probability is a function of the health of the selected location; and
writing the data to the selected location in the nonvolatile memory.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are presented that include determining, for data to be written to a nonvolatile memory, a location in the nonvolatile memory to which the data should be written based at least on one or more wear metrics corresponding to the location. The one or more wear metrics are based on measurements of the location. The measurements estimate physical wear of the location. The techniques further include writing the data to the determined location in the nonvolatile memory. The techniques may be performed by methods, apparatus (e.g., a memory controller), and computer program products.
21 Citations
25 Claims
-
1. A method, comprising:
-
determining a health for each location in a nonvolatile memory based at least on one or more wear metrics corresponding to each location, where the one or more wear metrics are based on measurements of the location, the measurements estimating physical wear of each location; creating a global cumulative distribution based on the determined health of each location; collecting a candidate pool of physical locations for data to be written to skipping any location having a health less than a health of a predetermined percentage of locations based on the global cumulative distribution; selecting a location from the candidate pool based on a probability, where the probability is a function of the health of the selected location; and writing the data to the selected location in the nonvolatile memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A computer program product, comprising:
-
a non-transitory computer readable storage medium having computer readable program code embodied therewith, the computer readable program code configured to perform or control at least the following;
determining a health for each location in a nonvolatile memory based at least on one or more wear metrics corresponding to each location, where the one or more wear metrics are based on measurements of the location, the measurements estimating physical wear of each location;creating a global cumulative distribution based on the determined health of each location; collecting a candidate pool of physical locations for data to be written to skipping any location having a health less than a health of a predetermined percentage of locations based on the global cumulative distribution; selecting a location from the candidate pool based on a probability, where the probability is a function of the health of the selected location; and writing the data to the selected location in the nonvolatile memory.
-
-
23. An apparatus comprising:
-
at least one processor; and at least one memory including computer program code, wherein the at least one processor, in response to execution of the computer program code, is configured to cause the apparatus to perform at least the following; determining a health for each location in a nonvolatile memory based at least on one or more wear metrics corresponding to each location, where the one or more wear metrics are based on measurements of the location, the measurements estimating physical wear of each location; creating a global cumulative distribution based on the determined health of each location; collecting a candidate pool of physical locations for data to be written to skipping any location having a health less than a health of a predetermined percentage of locations based on the global cumulative distribution; selecting a location from the candidate pool based on a probability, where the probability is a function of the health of the selected location; and writing the data to the selected location in the nonvolatile memory. - View Dependent Claims (24, 25)
-
Specification