IP Library Granted Patent US 9,842,059
Granted Patent B2
US 9,842,059 · App. 15/098,668 · Granted Dec 12, 2017

Wear leveling in storage devices

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,842,059
App. No.
15/098,668
Granted
Dec 12, 2017
Kind
B2
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.

Claims (35)

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.

2. The system of claim 1 , 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:

determine whether the value of the first transient write counter is greater than a predetermined number multiplied by the value of the second transient write counter.

3. The system of claim 1 , wherein the processor is further configured to:

in response to determining that a sum of the value of the first transient write counter and a value of a first permanent write counter associated with the first logical block address collection exceeds a threshold block collection write count, rearrange, based on an offset value associated with the first logical block address collection, physical locations of data stored at logical addresses associated with the first logical block address collection; and

update the offset value associated with at least the first logical block address collection.

4. The system of claim 1 , wherein, the processor is further configured to, in response to determining to swap physical locations of the data stored at logical block address 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:

increase a value of a first permanent write counter associated with the first logical block address collection by the value of the first transient write counter; and

increase a value of a second permanent write counter associated with the second block collection by the value of the second transient write counter.

5. The system of claim 1 , further comprising:

a data storage device comprising:

the plurality of memory devices; and

the processor.

6. The system of claim 1 , further comprising:

a data storage device comprising the plurality of memory devices; and

a host device comprising the processor.

7. The system of claim 1 , wherein the processor is further configured to:

in further 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:

set the value of the first transient counter and the value of the second transient write counter equal to a baseline value.

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; and

wherein 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.

9. The method of claim 8 , wherein 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:

determining, by the processor, whether the value of the first transient write counter is greater than a predetermined number multiplied by the value of the second transient write counter.

10. The method of claim 8 , further comprising:

in response to determining that a sum of the value of the first transient write counter and a value of a first permanent write counter associate with the first logical block address collection exceeds a threshold block collection write count, rearranging, by the processor and based on an offset value associated with the first logical block address collection, physical locations of data stored at logical addresses associated with the first logical block address collection; and

updating, by the processor, the offset value associated with at least the first logical block address collection.

11. The method of claim 8 , further comprising:

in response to determining to swap physical locations of the data stored at logical block address 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:

increasing, by the processor, a value of a first permanent write counter associated with the first logical block address collection by the value of the first transient write counter; and

increasing, by the processor, a value of a second permanent write counter associated with the second block collection by the value of the second transient write counter.

12. The method of claim 8 , wherein determining whether 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 data stored at logical block addresses in the second logical block address collection is in response to determining, by the processor, that a value of a device write counter satisfies a threshold device write count.

13. The method of claim 8 , further comprising:

in further 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:

setting, by the processor, the value of the first transient counter and the value of the second transient write counter equal to a baseline value.

Assignments (12)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT SERIAL NO 15/025,946 PREVIOUSLY RECORDED AT REEL: 040831 FRAME: 0265. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 15, 2017
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 043973/0762 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2016
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 040831/0265 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2016
From: KAMRUZZAMAN, MD
To: HGST NETHERLANDS B.V.
Reel/Frame 038431/0590 →