Wear leveling in storage devices
First Claim
1. A system comprising:
- a plurality of memory devices comprising a plurality of physical locations at which data is stored;
a processor configured to;
determine, based on a value of a first transient write counter associated with a first logical block address collection and a value of a second transient write counter associated with a second logical block address collection, whether to swap physical locations of data stored at logical block addresses in the first logical block address collection and physical locations of data stored at logical block addresses in the second logical block address collection, wherein;
the value of the first transient write counter equals a number of times data has been written to the first logical block address collection since a prior data swap involving the first logical block address collection, and the value of the second transient write counter equals a number of times data has been written to the second logical block address collection since a prior data swap involving the second logical block address collection; and
in response to determining to swap the physical locations of the data stored at logical block addresses in the first logical block address collection and the physical locations of the data stored at logical block addresses in the second logical block address collection;
swap the physical locations of the data stored at the logical block addresses in the first logical block address collection and the physical locations of the data stored at the logical block addresses in the second logical block address collection; and
wherein the processor is configured to determine whether to swap physical locations of the data stored at logical block addresses in the first logical block address collection and physical locations of the data stored at logical block addresses in the second logical block address collection by at least;
summing the value of the first transient write counter with a value of a first permanent write counter associated with the first logical block address collection to determine a first total write value indicating a total number of writes to the first logical block address collection, wherein the value of the first permanent write counter equals the number of times data was written to the first logical block address collection before a prior data swap involving the first logical block address collection;
summing the value of the second transient write counter with a value of a second permanent write counter associated with the second logical block address collection to determine a second total write value indicating a total number of writes to the second logical block address collection, wherein the value of the second permanent write counter equals the number of times data was written to the second logical block address collection before a prior data swap involving the second logical block address collection; and
determining whether the first total write value is greater than a predetermined number multiplied by the second total write value.
7 Assignments
0 Petitions
Accused Products
Abstract
A system may include a plurality of memory cells and a processor. The plurality of memory cells may include a plurality of physical locations at which data is stored. The processor may be configured to determine whether to swap physical locations of data stored at logical block addresses in the first logical block address collection and physical locations of data stored at logical block addresses in the second logical block address collection. The processor may be further configured to, in response to determining to swap the physical locations of the data, swap the physical locations of the data stored at the logical block addresses in the first logical block address collection and the physical locations of the data stored at the logical block addresses in the second logical block address collection.
30 Citations
13 Claims
-
1. A system comprising:
- a plurality of memory devices comprising a plurality of physical locations at which data is stored;
a processor configured to;
determine, based on a value of a first transient write counter associated with a first logical block address collection and a value of a second transient write counter associated with a second logical block address collection, whether to swap physical locations of data stored at logical block addresses in the first logical block address collection and physical locations of data stored at logical block addresses in the second logical block address collection, wherein;
the value of the first transient write counter equals a number of times data has been written to the first logical block address collection since a prior data swap involving the first logical block address collection, and the value of the second transient write counter equals a number of times data has been written to the second logical block address collection since a prior data swap involving the second logical block address collection; and
in response to determining to swap the physical locations of the data stored at logical block addresses in the first logical block address collection and the physical locations of the data stored at logical block addresses in the second logical block address collection;
swap the physical locations of the data stored at the logical block addresses in the first logical block address collection and the physical locations of the data stored at the logical block addresses in the second logical block address collection; andwherein the processor is configured to determine whether to swap physical locations of the data stored at logical block addresses in the first logical block address collection and physical locations of the data stored at logical block addresses in the second logical block address collection by at least;
summing the value of the first transient write counter with a value of a first permanent write counter associated with the first logical block address collection to determine a first total write value indicating a total number of writes to the first logical block address collection, wherein the value of the first permanent write counter equals the number of times data was written to the first logical block address collection before a prior data swap involving the first logical block address collection;
summing the value of the second transient write counter with a value of a second permanent write counter associated with the second logical block address collection to determine a second total write value indicating a total number of writes to the second logical block address collection, wherein the value of the second permanent write counter equals the number of times data was written to the second logical block address collection before a prior data swap involving the second logical block address collection; and
determining whether the first total write value is greater than a predetermined number multiplied by the second total write value. - View Dependent Claims (2, 3, 4, 5, 6, 7)
- a plurality of memory devices comprising a plurality of physical locations at which data is stored;
-
8. A method comprising:
- determining, by a processor, based on a value of a first transient write counter associated with a first logical block address collection and a value of a second transient write counter second logical block address collection associated, whether to swap physical locations of data stored in the first logical block address collection and physical locations of data stored in the second logical block address collection, wherein;
the value of the first transient write counter equals a number of times data has been written to the first logical block address collection since a prior data swap involving the first logical block address collection, and the value of the second transient write counter equals a number of times data has been written to the second logical block address collection since a prior data swap involving the second logical block address collections and in response to determining to swap the physical locations of the data stored at logical block addresses in the first logical block address collection and the physical locations of the data stored at logical block addresses in the second logical block address collection;
causing, by the processor, the physical locations of the data stored at the logical block addresses in the first logical block address collection to be swapped with the physical locations of the data stored at the logical block addresses in the second logical block address collection; andwherein determining whether to swap physical locations of the data stored at logical block addresses in the first logical block address collection and physical locations of the data stored at logical block addresses in the second logical block address collection comprises;
summing, by the processor, the value of the first transient write counter with a value of a first permanent write counter associated with the first logical block address collection to determine a first total write value indicating a total number of writes to the first logical block address collection, wherein the value of the first permanent write counter equals the number of times data was written to the first logical block address collection before a prior data swap involving the first logical block address collection;
summing, by the processor, the value of the second transient write counter with a value of a second permanent write counter associated with the second logical block address collection to determine a second total write value indicating a total number of writes to the second logical block address collection, wherein the value of the second permanent write counter equals the number of times data was written to the second logical block address collection before a prior data swap involving the second logical block address collection; and
determining, by the processor, whether the first total write value is greater than a predetermined number multiplied by the second total write value. - View Dependent Claims (9, 10, 11, 12, 13)
- determining, by a processor, based on a value of a first transient write counter associated with a first logical block address collection and a value of a second transient write counter second logical block address collection associated, whether to swap physical locations of data stored in the first logical block address collection and physical locations of data stored in the second logical block address collection, wherein;
Specification