IP Library Granted Patent US 9,105,305
Granted Patent B2
US 9,105,305 · App. 13/989,659 · Granted Aug 11, 2015

Dynamic higher-level redundancy mode management with independent silicon elements

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,105,305
App. No.
13/989,659
Granted
Aug 11, 2015
Kind
B2
Abstract

A Solid-State Disk (SSD) controller enables dynamic higher-level redundancy mode management with independent silicon elements to provide graceful degradation as non-volatile (e.g. flash) memory elements fail during operation of an SSD implemented by the controller. Higher-level error correction provides correction of lower-level uncorrectable errors. If a failure of one of the non-volatile memory elements is detected, then the higher-level error correction is dynamically transitioned from operating in a current mode to operating in a new mode. The transition includes one or more of reducing free space available on the SSD, rearranging data storage of the SSD, recovering/storing failed user data (if possible), and determining/storing revised higher-level error correction information. Operation then continues in the new mode. If another failure of the non-volatile memory elements is detected, then another transition is made to another new mode.

Claims (25)

1. A method comprising:

computing k redundant data portions to protect n-k data information portions;

storing each of the k redundant data portions and each of the n-k data information portions in separate corresponding areas, each of the corresponding areas in a respective one of n physical devices, the k redundant portions including a first parity code data and a second parity code data both associated with a first data information portion of the data information portions, the first parity code data and the second parity code data stored separately and computed using different coding, wherein the first parity code data and the second parity code data are stored on different physical devices of the n physical devices, wherein the first parity code data is computed using multiple exclusive-OR (XOR) operations, wherein the second parity code data is computed as a weighted sum of data, where weights are selected as index values;

subsequent to a failure such that one of the corresponding areas is no longer usable, computing j redundant data portions to protect n-1-j data information portions; and

wherein j<=k.

2. The method of claim 1 , wherein the computing k redundant data portions to protect n-k data information portions operates in a first data protection mode, the computing j redundant data portions to protect n-1-j data information portions operates in a second data protection mode, and further comprising, in response to the failure, switching from operating in the first data protection mode to operating in the second data protection mode.

3. The method of claim 1 , wherein when j==k, a total amount of the data information portions is decreased and a degree of protection is at least preserved.

4. The method of claim 3 , wherein the degree of protection is protection against failures of up to j of the corresponding areas.

5. The method of claim 1 , wherein when j==k-1 and j>=1, a total amount of the data information portions is preserved, a degree of protection is decreased, and the data information portions are protected.

6. The method of claim 5 , wherein the decreased degree of protection is protection against failures of up to j-1 of the corresponding areas.

7. The method of claim 1 ,

wherein each of the n physical devices comprises a plurality of the corresponding areas; further comprising storing, in each of a plurality of sets of the corresponding areas, a respective set of data comprising a data information subset and a redundant data subset protecting the data information subset, the redundant data subset stored in distinct ones of the n physical devices from the data information subset; and

wherein each of the sets of the corresponding areas comprises no more than one corresponding area of each one of the n physical devices, and each of the respective sets of data is stored in a different set of n or less of the n physical devices.

8. The method of claim 7 , wherein prior to the failure, the data information subset of a particular one of the sets of data comprises the n-k data information portions, and the redundant data subset of the particular set of data comprises the k redundant data portions.

9. The method of claim 7 , wherein a first one of the corresponding areas in a particular one of the n physical devices is used to store a portion of the data information subset of a first one of the sets of data, and a second one of the corresponding areas in the particular physical device is used to store a portion or all of the redundant data subset of a second one of the sets of data.

10. An apparatus comprising:

a set of n physical storage devices; and

a controller coupled to each of physical storage device of the set of n physical storage devices over an interface, the controller configured to:

compute k redundant data portions to protect n-k data information portions;

store each of the k redundant data portions and each of the n-k data information portions in separate corresponding areas, each of the corresponding areas in a respective one of the n physical storage devices, the k redundant portions including a first parity code data and a second parity code data both associated with a first data information portion of the data information portions, the first parity code data and the second parity code data stored separately and computed using different coding, the first parity code data and the second parity code data stored on different physical storage devices of the n physical storage devices, the first parity code data computed using multiple exclusive-OR (XOR) operations, the second parity code data computed as a weighted sum of data, where weights are selected as index values; and

subsequent to a failure such that one of the corresponding areas is no longer usable, compute j redundant data portions to protect n-1-j data information portions, wherein j<=k.

11. The apparatus of claim 10 , wherein the controller operates in a first data protection mode when computing the k redundant data portions and the controller operates in a second data protection mode when computing the j redundant data portions, and the controller is further configured to, in response to the failure, switch from operating in the first data protection mode to operating in the second data protection mode.

12. The apparatus of claim 10 , wherein when j==k-1 and j>=1, a total amount of the data information portions is preserved, a degree of protection is decreased, and the data information portions are protected.

13. The apparatus of claim 12 , wherein the decreased degree of protection is protection against failures of up to j-1 of the corresponding areas.

14. The apparatus of claim 10 , each of the n physical devices comprising a plurality of the corresponding areas, and the controller further configured to store, in each of a plurality of sets of the corresponding areas, a respective set of data comprising a data information subset and a redundant data subset protecting the data information subset, the redundant data subset stored in distinct ones of the n physical devices from the data information subset, wherein each of the sets of the corresponding areas comprises no more than one corresponding area of each one of the n physical devices, and each of the respective sets of data is stored in a different set of n or less of the n physical devices.

Assignments (4)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2015
From: LSI CORPORATION
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 034771/0571 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS INCLUDED IN SECURITY INTEREST PREVIOUSLY RECORDED AT REEL/FRAME (032856/0031) Recorded Nov 6, 2014
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 034177/0257 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →