IP Library Granted Patent US 10,186,296
Granted Patent B2
US 10,186,296 · App. 15/921,610 · Granted Jan 22, 2019

Error correction for storage devices

Inventors: Gregory Burd (San Jose, CA); Nedeljko Varnica (San Jose, CA); Heng Tang (San Jose, CA)
Assignee: Marvell World Trade Ltd.
G11B20/1833G06F11/08G06F11/1076G11B20/1217G11B2020/1222G11B2020/1238
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,186,296
App. No.
15/921,610
Granted
Jan 22, 2019
Kind
B2
Abstract

A method for redundantly storing data includes receiving data at a storage controller, partitioning the data into a plurality of data blocks, generating a first error correction code associated with a first page within the plurality of data blocks, and generating a first redundancy code associated with at least two data blocks within the plurality of data block. The first redundancy code provides additional error recovery if the first error correction code fail. The method further includes storing the plurality of data blocks, the first error correction code, and the first redundancy code across a plurality of solid state storage devices.

Claims (34)

1. A method for redundantly storing data, the method comprising:

receiving data at a storage controller;

partitioning the data into a plurality of data blocks;

generating a first error correction code associated with a first page within the plurality of data blocks;

generating a first redundancy code associated with at least two data blocks within the plurality of data blocks, wherein the first redundancy code provides additional error recovery if the first error correction code fails; and

storing the plurality of data blocks, the first error correction code, and the first redundancy code across a plurality of solid state storage devices.

2. The method of claim 1 , wherein the first error correction code comprises parity information generated from the first page.

3. The method of claim 2 , wherein the parity information is implemented within a hard decode error correction procedure.

4. The method of claim 2 , wherein the parity information is implemented within a soft decode error correction procedure.

5. The method of claim 1 , wherein the first redundancy code is generated using at least an XOR operation applied to the at least two data blocks.

6. The method of claim 1 , wherein the first redundancy code is associated with a RAID-based error recovery operation.

7. The method of claim 1 , wherein the plurality of solid state storage devices comprises at least two flash memory chips.

8. The method of claim 7 , wherein the at least two flash memory chips implement multi-level cell storage.

9. The method of claim 7 , wherein the at least two flash memory chips implement three-layer cell storage.

10. A method for recovering stored data, the method comprising:

receiving a request to read data stored within a plurality of solid state storage devices;

identifying a portion of data within the data, the portion of data having at least one error;

applying a first error recovery operation in an attempt to generate a first recovered data portion, the first error recovery operation implements a first error correction code;

applying a second error recovery operation if the first error recovery operation fails, the second error recovery operation implements a first redundancy code to generate a second recovered data portion; and

reading the data from the plurality of solid state storage devices, the data comprising at least one of the first recovered data portion and the second recovered data portion.

11. The method of claim 10 , wherein the first error correction code comprises parity information.

12. The method of claim 11 , wherein the first error recovery operation comprises at least one of a hard decode procedure using the parity information and a soft decode procedure using the parity information.

13. The method of claim 10 , wherein the first redundancy code is generated using an XOR operation on at least two blocks within the data.

14. The method of claim 10 , wherein the first redundancy code is associated with a RAID-based error recovery operation.

15. The method of claim 10 , wherein the plurality of solid state storage devices comprises at least two flash memory chips.

16. A controller for storing data with redundancy, the controller comprising:

a processor coupled to receive a request to read data stored across a plurality of solid state storage devices;

an error-correcting code module coupled to the processor, wherein the error-correcting code module applies a first error recovery operation to at least one data portion having an error and the first error recovery operation implements a first error correction code in an attempt to recover the at least one data portion; and

a redundant array of independent blocks encoder coupled to the processor, wherein the redundant array of independent blocks encoder applies a second error recovery operation if the first error recovery operation fails and the second error recovery operation implements a first redundancy code to recover the at least one data portion.

17. The controller of claim 16 , further comprising a redundancy check module that identifies errors within the data.

18. The controller of claim 16 , further comprising at least one parity buffer coupled to the processor, wherein the at least one parity buffer stores at least one of the first error correction code and the first redundancy code.

19. The controller of claim 16 , wherein the first error correction code includes parity information and the parity information is implemented within a soft decode error correction procedure.

20. The controller of claim 16 , wherein the first redundancy code is generated using at least an XOR operation applied to at least two data blocks within the data.

21. The controller of claim 16 , wherein the plurality of solid state storage devices comprises at least two flash memory chips.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053475/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: MARVELL INTERNATIONAL LTD.
To: CAVIUM INTERNATIONAL
Reel/Frame 052918/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2020
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 051778/0537 →
Continuity (10)
Continuation 14947833 · Nov 20, 2015
Continuation 14642526 · Mar 9, 2015
Continuation 14466881 · Aug 22, 2014
Continuation In Part 14260237 · Apr 23, 2014
Continuation 13844302 · Mar 15, 2013
Continuation 12881881 · Sep 14, 2010
Provisional Application 61876360 · Sep 11, 2013
Provisional Application 61254577 · Oct 23, 2009
Provisional Application 61242662 · Sep 15, 2009
Related Publication 20180204594A1 · Jul 19, 2018