IP Library Granted Patent US 10,983,704
Granted Patent B1
US 10,983,704 · App. 15/195,543 · Granted Apr 20, 2021

Method and system for adaptive wear leveling in solid state memory

Inventor: Richard H. Van Gaasbeck (Mountain View, CA)
Assignee: EMC Corporation
G06F3/0616G06F3/0629G06F3/0653G06F3/0673
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 10,983,704
App. No.
15/195,543
Granted
Apr 20, 2021
Kind
B1
Abstract

A method for controlling wear level operations in solid state memory. The method includes receiving a request to write to a memory location identified by a write address of the solid state memory, and making a first determination that the writing to the memory location results in a duplicate write to the memory location. The method further includes, based on the first determination, making a second determination that a number of encountered duplicate writes has reached an adaptively controlled maximum number of duplicate writes, and based on the second determination, performing a wear level operation.

Claims (37)

1. A method for controlling wear level operations in solid state memory, the method comprising:

receiving a request to write to a first memory location identified by a write address of the solid state memory;

making a first determination that a duplicate write to the first memory location occurred;

making a second determination, based on the first determination, that a number of encountered duplicate writes has reached an adaptively controlled maximum number of duplicate writes, wherein making the second determination comprises:

generating a first hash of the write address using a first hash function;

generating a second hash of the write address using a second hash function;

matching the first hash to a first location in a compact representation of memory locations of the solid state memory;

matching the second hash to a second location in the compact representation;

making an assessment, using a probabilistic scale, that the matching of the first hash and the matching of the second hash results in a positive match that is more likely to be true than false; and

decrementing, based on the assessment, a divider count by a quantity less than 1, wherein the difference between the quantity and 1 represents a probability that the positive match is false; and

performing, based on the second determination, a wear level operation.

2. The method of claim 1 , wherein the number of encountered duplicate writes is a total number of duplicate writes to the first memory location.

3. The method of claim 2 , wherein a frequency of encountered duplicate writes is determined in a time window selected from a group consisting of a sliding time window and a time window with a fixed beginning.

4. The method of claim 3 , wherein the time window has a fixed duration.

5. The method of claim 2 , wherein a frequency of encountered duplicate writes is obtained from one selected from a group consisting of:

a ratio of a number of duplicate writes to memory locations to a number of non-duplicate writes to memory locations, and

a ratio of a number of duplicate writes to memory locations to a number of writes to memory locations.

6. The method of claim 2 , wherein the adaptively controlled maximum number of duplicate writes is adjusted based on one selected from the group consisting of:

linearly modulating the adaptively controlled maximum number of duplicate writes, based on a frequency of encountered duplicate writes, and

stepwise modulating the adaptively controlled maximum number of encountered duplicate writes, based on the frequency of observed duplicate writes.

7. A storage appliance comprising: storage modules comprising solid state memory, wherein the storage appliance is configured to: receive a request to write to a first memory location identified by a write address of the solid state memory; make a first determination that a duplicate write to the first memory location occurred; make a second determination, based on the first determination, that a number of encountered duplicate writes has reached an adaptively controlled maximum number of duplicate writes, wherein making the second determination comprises: generating a first hash of the write address using a first hash function; generating a second hash of the write address using a second hash function; matching the first hash to a first location in a compact representation of memory locations of the solid state memory; and matching the second hash to a second location in the compact representation; make an assessment, using a probabilistic scale, that the matching of the first hash and the matching of the second hash results in a positive match that is more likely to be true than false, decrementing, based on the assessment, a divider count by a quantity less than 1, wherein the difference between the quantity and 1 represents a probability that the positive match is false; and perform, based on the second determination 1 a wear level operation.

8. The storage appliance of claim 7 , wherein the number of encountered duplicate writes is a total of number of duplicate writes to the first memory location.

9. The storage appliance of claim 8 , wherein a frequency of encountered duplicate writes is determined in a time window selected from a group consisting of a sliding time window and a time window with a fixed beginning.

10. The storage appliance of claim 9 , wherein the time window has a fixed duration.

11. The storage appliance of claim 8 , wherein a frequency of encountered duplicate writes is obtained from one selected from a group consisting of:

a ratio of a number of duplicate writes to memory locations to a number of non-duplicate writes to memory locations, and

a ratio of a number of duplicate writes to memory locations to a number of writes to memory locations.

12. The storage appliance of claim 8 , wherein the adaptively controlled maximum number of duplicate writes is adjusted based on one selected from the group consisting of:

linearly modulating the adaptively controlled maximum number of duplicate writes, based on a frequency of encountered duplicate writes, and

stepwise modulating the adaptively controlled maximum number of encountered duplicate writes, based on the frequency of observed duplicate writes.

13. A non-transitory computer readable medium (CRM) comprising instructions that enable a storage appliance to: receive a request to write to a first memory location identified by a write address of solid state memory; make a first determination that a duplicate write to the first memory location occurred; make a second determination that a number of encountered duplicate writes has reached an adaptively controlled maximum number of duplicate writes, wherein making the second determination comprises: generating a first hash of the write address using a first hash function; generating a second hash of the write address using a second hash function; matching the first hash to a first location in a compact representation of memory locations of the solid state memory; and matching the second hash to a second location in the compact representation; making an assessment, using a probabilistic scale, that the matching of the first hash and the matching of the second hash results in a positive match that is more to be true than false, decrementing, based on the assessment, a divider count by a quantity less than 1, wherein the difference between the quantity and 1 represents a probability that the positive match is false; and perform, based on the second determination a wear level operation.

14. The non-transitory CRM of claim 13 , wherein the number of encountered duplicate writes is a total of number of duplicate writes to the first memory location.

15. The non-transitory CRM of claim 14 , wherein a frequency of encountered duplicate writes is determined in a time window selected from a group consisting of a sliding time window and a time window with a fixed beginning.

16. The non-transitory CRM of claim 15 , wherein the time window has a fixed duration.

17. The non-transitory CRM of claim 14 , wherein a frequency of encountered duplicate writes is obtained from one selected from a group consisting of:

a ratio of a number of duplicate writes to memory locations to a number of non-duplicate writes to memory locations, and

a ratio of a number of duplicate writes to memory locations to a number of writes to memory locations.

Assignments (5)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2017
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041872/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2016
From: VAN GAASBECK, RICHARD H.
To: EMC CORPORATION
Reel/Frame 039102/0736 →
Continuity (1)
Provisional Application 62339634 · May 20, 2016
Cited By (2)
US 12,242,413 US 12,450,179