IP Library Granted Patent US 9,377,960
Granted Patent B2
US 9,377,960 · App. 13/532,718 · Granted Jun 28, 2016

System and method of using stripes for recovering data in a flash storage system

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,377,960
App. No.
13/532,718
Granted
Jun 28, 2016
Kind
B2
Abstract

A data storage method, comprising, receiving host data to be written to a plurality of flash storage devices, allocating the host data to one or more data units of a plurality of data units, allocating pad data to one or more data units of the plurality of data units that have not been filled with host data and generating redundant data in a redundant data unit based on the plurality of data units. The method further comprises steps for writing the plurality of data units and the redundant data unit to a stripe across the plurality of flash storage devices, wherein each of the plurality of data units and the redundant data unit is written in the respective flash storage devices at a common physical address.

Claims (22)

1. A data storage method, comprising:

receiving host data to be written to a stripe across a plurality of flash storage devices;

allocating the host data to one or more data units of a plurality of data units;

allocating pad data to one or more data units of the plurality of data units that have not been filled with host data at a periodic interval;

generating redundant data in one or more redundant data units based on the plurality of data units at the periodic interval; and

writing the plurality of data units and the one or more redundant data units to the stripe at the periodic interval, the one or more redundant data units storing memory locations of the pad data allocated to the plurality of data units

wherein each of a respective plurality of data units and a respective one or more redundant data units is written in respective flash storage devices at a common physical address, and wherein the one or more redundant data units are distributed among the plurality of flash storage devices such that each of the one or more redundant data units is written to a different flash storage device of the plurality of flash storage devices.

2. The method of claim 1 , wherein the redundant data comprises parity data.

3. The method of claim 2 , wherein the pad data is parity neutral.

4. The method of claim 1 , wherein one of the data units comprises host data and pad data.

5. The method of claim 1 , wherein one or more portions of the plurality of flash storage devices comprises an unavailable memory location at the common physical address, and

wherein the plurality of data units and the plurality of redundant data units are not written to the flash storage devices comprising the unavailable memory location at the common physical address.

6. The method of claim 5 , further comprising:

storing an indicator for each of the flash storage devices having an unavailable memory location at the common physical address, wherein the indicator is stored in at least one of the one or more redundant data units.

7. A data storage method, comprising:

reading a plurality of data units and a redundant data unit of a first stripe across a plurality of flash storage devices, wherein each of the plurality of data units and the redundant data unit have a first common physical address in the respective flash storage devices;

recovering one of the plurality of data units in the first stripe associated with a read error;

writing the plurality of data units, including the recovered data unit, and the redundant data unit to a second stripe across the plurality of flash storage devices, wherein each of the plurality of data units and the redundant data unit is written to the respective flash storage devices at a second common physical address different from the first common physical address;

in response to the read error associated with the first stripe, identifying a plurality of data units and a redundant data unit of a third stripe stored across the plurality of flash storage devices, wherein the read error is not associated with the third stripe, wherein each of the plurality of data units and the redundant data unit of the third stripe have a third common physical address in the respective flash storage devices, and wherein the first common physical address and the third common physical address are located in a common block in the respective flash storage devices; and

writing the plurality of data units and the redundant data unit of the third stripe to a fourth stripe across the plurality of flash storage devices, wherein each of the plurality of data units and the redundant data unit of the third stripe is written to the respective flash storage devices at a fourth common physical address different from the third common physical address.

8. The data storage method of claim 7 , wherein recovering one of the plurality of data units of the first stripe further comprises performing an error correction algorithm using the plurality of data units and the redundant data unit of the first stripe.

9. The data storage method of claim 7 , wherein recovering one of the plurality of data units of the first stripe comprises performing an exclusive ‘OR’ (XOR) operation on the plurality of data units and the redundant data unit of the first stripe.

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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2018
From: HGST TECHNOLOGIES SANTA ANA, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 046174/0446 →
CHANGE OF NAME Recorded Jul 1, 2015
From: STEC, INC.
To: HGST TECHNOLOGIES SANTA ANA, INC.
Reel/Frame 036042/0390 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2012
From: MOSHAYEDI, MARK; CALVERT, WILLIAM
To: STEC, INC.
Reel/Frame 029019/0271 →