IP Library Granted Patent US 8,601,313
Granted Patent B1
US 8,601,313 · App. 12/966,892 · Granted Dec 3, 2013

System and method for a data reliability scheme in a solid state memory

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 8,601,313
App. No.
12/966,892
Granted
Dec 3, 2013
Kind
B1
Abstract

Embodiments of the present invention use high granularity reliability information (e.g., from individual pages, blocks, etc.) in a solid state storage device to vary the number of elements in each RAID stripe and to combine the elements in a stripe to achieve a more homogenous reliability metric across the device. In one embodiment, a reliability metric of a stripe group of storage elements is calculated based on monitored conditions of the storage elements such as erase counts, number of bit errors encountered, calculated voltage reference values, etc. The reliability metrics of the stripe groups are used to decide how many storage elements and which storage elements should be combined in the redundant RAID stripes to achieve a desired probability of data loss for the overall device. The target error probability could be fixed for the life of the storage device or adjusted as the device wide error rates increase.

Claims (32)

1. A method of enhancing data reliability in a solid state storage device, the method comprising:

monitoring one or more conditions of a solid state storage device comprising a plurality of storage elements, the solid state storage device being configured to implement a data redundancy configuration with a plurality of stripe groups, each stripe group comprising a respective subset of the plurality of storage elements;

determining a reliability metric for each of the stripe groups, the reliability metric being based at least on the one or more monitored conditions associated with individual storage elements associated with the respective stripe group; and

in response to detecting that the reliability metric of a first of said stripe groups fails to satisfy a selected reliability target, removing at least one storage element from the first stripe group to cause an improvement in the reliability metric of the first stripe group.

2. The method of claim 1 , wherein removing the at least one storage element from the first stripe group comprises:

reassigning the at least one storage element to a second of said stripe groups that has a reliability metric that satisfies the selected reliability target.

3. The method of claim 1 , wherein removing the at least one storage element from the first stripe group comprises:

replacing the at least one storage element with at least one storage element from a second of said stripe groups that has a reliability metric that satisfies the selected reliability target.

4. The method of claim 3 , wherein replacing the at least one storage element from the first stripe group with the at least one storage element from the second stripe group comprises:

moving data stored in a storage element in the first stripe group to a storage element in a third of said stripe groups prior to replacing the at least one storage element from the first stripe group with the at least one storage element from the second stripe group.

5. The method of claim 1 , wherein the monitored plurality of conditions comprise one or more of: a bit error count of a data access, an error correction code (ECC) error rate, a voltage reference level, an erase count, and a wear level.

6. The method of claim 1 , wherein the selected reliability target is periodically adjusted in accordance with a desired level of probability of data loss for the solid state storage device.

7. The method of claim 1 , further comprising:

determining an order of the stripe groups by their associated reliability metrics.

8. The method of claim 1 , wherein the storage elements comprise a plurality of pages, blocks, dies, or devices.

9. The method of claim 1 , wherein the data redundancy configuration is a redundant array of independent disks (RAID) configuration.

10. A storage subsystem comprising:

a non-volatile memory storage array configured to implement a data redundancy configuration with a plurality of stripe groups, the non-volatile memory storage array comprising a plurality of storage elements assigned to various of the plurality of stripe groups; and

a controller configured to periodically monitor a plurality of conditions associated with the storage elements;

wherein the controller is configured to:

periodically determine a reliability metric for each of the stripe groups, the reliability metric being determined based at least in part on one or more of the monitored conditions associated with individual storage elements associated with the respective stripe groups; and

in response to detecting that the reliability metric of a first of said stripe groups fails to satisfy a selected reliability target, replace a storage element from the first stripe group with a storage element from a second of said stripe groups that has a reliability metric that satisfies the selected reliability target to cause an improvement in the reliability metric of the first stripe group.

11. The storage subsystem of claim 10 , wherein the controller is further configured to move data stored in a storage element in the first stripe group to a storage element of a third stripe group prior to replacing the storage element from the first stripe group with the storage element from the second stripe group.

12. The storage subsystem of claim 10 , wherein the controller is further configured to replace a number of storage elements from the first stripe group with a number of storage elements from the second stripe group, the number sufficient to cause the first stripe group to have a reliability metric that satisfies the selected reliability target.

13. The storage subsystem of claim 10 , wherein the storage elements comprise a plurality of pages, blocks, dies, or devices.

14. The storage subsystem of claim 10 , wherein the monitored plurality of conditions comprise one or more of: a bit error count of a data access, an error correction code (ECC) error rate, a voltage reference level, an erase count, and a wear level.

15. The storage subsystem of claim 10 , wherein the selected reliability target is periodically adjusted in accordance with a desired level of probability of data loss of the storage subsystem.

16. The storage subsystem of claim 10 , wherein the controller is further configured to determine an order of the stripe groups by their associated reliability metrics.

17. The storage subsystem of claim 10 , wherein the controller is further configured to replace at least one storage element from each stripe group with a reliability metric that fails to satisfy the selected reliability target with at least one storage element from a stripe group that has a reliability metric that satisfies the selected reliability target until each stripe group has a reliability metric that satisfies the selected reliability target.

18. The storage subsystem of claim 17 , wherein the controller is further configured to:

in response to detecting the replacements do not cause each stripe group to attain a reliability metric that satisfies the selected reliability target, remove at least one storage element from at least one stripe group with a reliability metric that fails to satisfy the selected reliability target to cause the at least one stripe group to attain a reliability metric that satisfies the selected reliability target.

19. The storage subsystem of claim 10 , wherein the data redundancy configuration is a redundant array of independent disks (RAID) configuration.

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 038744 FRAME 0481 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0556 →
RELEASE OF SECURITY INTEREST Recorded Mar 5, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045501/0714 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038722/0229 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038744/0281 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038744/0481 →