IP Library Granted Patent US 8,601,311
Granted Patent B2
US 8,601,311 · App. 12/967,228 · Granted Dec 3, 2013

System and method for using over-provisioned data capacity to maintain a data redundancy 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,311
App. No.
12/967,228
Granted
Dec 3, 2013
Kind
B2
Abstract

Redundant “parity” RAID (5, 6, 50, 60) is a well-known technique for increasing data reliability beyond the failure rate of an individual storage device. In many implementations of redundant RAID, when a storage element is lost, a replacement or spare element is required to restore redundancy. A typical solid state storage device is over-provisioned with more storage media than is required to satisfy the specified user capacity. Embodiments of the present invention utilize the additional over-provisioned capacity and potentially modify the stripe size to restore RAID redundancy when a storage element or path (i.e., page, block, plane, die, channel, etc.) has failed. In some cases, this may also involve reducing the RAID stripe size.

Claims (31)

1. A solid-state storage subsystem comprising:

a non-volatile memory array comprising a user data quota portion and an over-provisioning quota portion, each quota portion comprising a plurality of solid-state storage elements; and

a controller configured to:

implement a data redundancy configuration with a plurality of data stripes, each data stripe comprising a respective subset of the plurality of storage elements of the user data quota portion; and

be responsive to a failure of a storage element of the user data quota portion by at least:

replacing the failed storage element of the user data quota portion with one of the storage elements of the over-provisioning quota portion; and

rebuilding one or more of the data stripes that include the failed storage element using the storage element from the over-provisioning quota portion.

2. The solid-state storage subsystem of claim 1 , wherein the controller is further configured to perform the replacement of storage elements and rebuilding of data stripes only when a capacity of the over-provisioning quota portion is above a pre-defined minimum size, the pre-defined minimum being a value that exceeds an amount needed to replace a storage element.

3. The solid-state storage subsystem of claim 1 , wherein the storage elements comprise a plurality of pages, blocks, dies, devices or channels.

4. The solid-state storage subsystem of claim 1 , wherein the data redundancy configuration is a redundant array of independent disks (RAID) configuration.

5. A method of maintaining data redundancy in a solid-state storage subsystem in the event of a storage element failure, the method comprising:

dividing a non-volatile memory array of the solid-state storage subsystem into a user data quota portion and an over-provisioning quota portion, each quota portion comprising a plurality of storage elements, the user data quota portion storing a plurality of stripes that are arranged in accordance with a data redundancy configuration, each data stripe comprising a respective subset of the plurality of storage elements in the user data quota portion; and

in response to detecting a failure in a storage element in the user data quota portion,

removing the failed storage element from one or more of the data stripes that include the failed storage element;

rebuilding the one or more data stripes; and

prior to rebuilding the one or more data stripes, determining if a capacity of the over-provisioning quota portion is above a pre-defined minimum size, the pre-defined minimum being a value that exceeds an amount needed to replace a storage element.

6. The method of claim 5 , wherein the storage elements comprise a plurality of pages, blocks, dies, devices or channels.

7. The method of claim 6 , further comprising:

prior to rebuilding the one or more data stripes, replacing the failed storage element with a storage element from the over-provisioning quota portion when the failed storage element is a die, a device, or a channel.

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

9. A method of maintaining data redundancy in a solid-state storage subsystem in the event of a storage element failure, the method comprising:

dividing a non-volatile memory array of the solid-state storage subsystem into a user data quota portion and an over-provisioning quota portion, each quota portion comprising a plurality of storage elements, the user data quota portion storing a plurality of stripes that are arranged in accordance with a data redundancy configuration, each data stripe comprising a respective subset of the plurality of storage elements in the user data quota portion; and

in response to detecting a failure in a storage element in the user data quota portion,

replacing the failed storage element of the user data quota portion with one of the storage elements of the over-provisioning quota portion; and

rebuilding the one or more data stripes.

10. The method of claim 9 , further comprising:

prior to rebuilding the one or more data stripes, determining if a capacity of the over-provisioning quota portion is above a pre-defined minimum size, the pre-defined minimum being a value that exceeds an amount needed to replace a storage element.

11. The method of claim 9 , wherein the storage elements comprise a plurality of pages, blocks, dies, devices or channels.

12. The method of claim 11 , further comprising:

prior to rebuilding the one or more data stripes, replacing the failed storage element with a storage element from the over-provisioning quota portion when the failed storage element is a die, a device, or a channel.

13. The method of claim 9 , 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 →