IP Library Granted Patent US 10,558,524
Granted Patent B2
US 10,558,524 · App. 15/204,408 · Granted Feb 11, 2020

Computing system with data recovery mechanism and method of operation thereof

Inventors: Bing Fan (San Diego, CA); Xiaojie Zhang (Saratoga, CA)
Assignee: CNEX LABS, Inc.
G06F11/1076G06F3/064G06F3/0619G06F3/0689H03M13/13H03M13/154H03M13/3761
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,558,524
App. No.
15/204,408
Granted
Feb 11, 2020
Kind
B2
Abstract

A computing system includes an array of storage devices configured to store storage data and check data; and a storage engine, coupled to the array of storage devices, configured to: access the storage data, detect an erasure storage data, an erasure check data, or a combination thereof when the storage data is not accessible from the array of storage devices, and recover the storage data from the erasure storage data, the erasure check data, or the combination thereof by applying at least one of a block of check data including a slope from the check data.

Claims (62)

1. A computing system comprising:

an array of storage devices configured to store storage data and check data; and

a storage engine, coupled to the array of storage devices, configured to:

access the storage data,

detect an erasure storage data, an erasure check data, or a combination thereof when the storage data is not accessible from the array of storage devices, and

recover the storage data from the erasure storage data, the erasure check data, or the combination thereof by applying at least one of a block of check data, including a slope from the check data, by a shift encoding process including an exclusive OR (XOR) of the storage data and the block of check data, along the slope, and

wherein the shift encoding process includes:

an input buffer for aligning the storage data and the block of the check data,

an index generator configured to map the storage data into the input buffer,

a length counter configured to monitor the length of the storage data aligned in the input buffer,

a slope generator configured to establish the slope of the block of the check data, and

a tolerance target input configured to determine the number of blocks of the check data required for error correction.

2. The system as claimed in claim 1 wherein the storage engine is configured to generate the check data by generating a first parity block with a first slope and a second parity block with a second slope different from the first slope.

3. The system as claimed in claim 1 wherein the storage engine is configured to generate the check data by shift encoding a first parity block with a first slope and a second parity block with a second slope different from the first slope.

4. The system as claimed in claim 1 wherein the storage engine is configured to generate the check data by polynomial encoding a first parity block with a row of polynomials and a second parity block with a second row of polynomials different from the first row of polynomials.

5. The system as claimed in claim 1 wherein the storage engine is configured to recover the storage data by an exclusive or between a polynomial node and generating matrices.

6. The system as claimed in claim 1 wherein the storage engine is configured to recover the storage data including:

an index filter configured to index the erasure storage data;

a syndrome calculator, coupled to the index filter, configured to combine a persistent parity block and persistent data blocks with an exclusive or based on the index; and

a data recovery block, coupled to the syndrome calculator, configured to access an equation selector for recovering four erasures from the erasure storage data.

7. The system as claimed in claim 6 wherein the storage engine is configured to recover the storage data including dividing an input polynomial, by a clock, with a register array.

8. A method of operation of a computing system comprising:

storing storage data and check data in an array of storage devices;

accessing the storage data from the array of storage devices;

detecting an erasure storage data, an erasure check data, or a combination thereof when the storage data is not accessible from the array of storage devices;

recovering the storage data from the erasure storage data, the erasure check data, or the combination thereof by applying at least one of a block of check data, including a slope from the check data, by a shift encoding process including an exclusive OR (XOR) of the storage data and the block of check data, along the slope; and

wherein:

the shift encoding process includes:

aligning the storage data and the block of the check data, in an input buffer;

mapping the storage data into the input buffer by an index generator;

monitoring the length of the storage data aligned in the input buffer by a length counter;

establishing the slope of the block of the check data by a slope generator; and

determining the number of the blocks of the check data required for error correction.

9. The method as claimed in claim 8 further comprising generating the check data by generating a first parity block with a first slope and a second parity block with a second slope different from the first slope.

10. The method as claimed in claim 8 further comprising generating the check data by shift encoding a first parity block with a first slope and a second parity block with a second slope different from the first slope.

11. The method as claimed in claim 8 further comprising generating the check data by polynomial encoding a first parity block with a row of polynomials and a second parity block with a second row of polynomials different from the first row of polynomials.

12. The method as claimed in claim 8 wherein recovering the storage data includes extracting persistent data blocks from the check data by an exclusive or between a polynomial node and generating matrices.

13. The method as claimed in claim 8 wherein recovering the storage data includes:

indexing the erasure storage data;

combine a persistent parity block and persistent data blocks with an exclusive or based on the index; and

accessing an equation selector for recovering four erasures from the erasure storage data.

14. The method as claimed in claim 8 wherein recovering the storage data includes dividing an input polynomial, by a clock, with a register array.

15. A non-transitory computer readable medium including instructions for execution, the medium comprising:

storing storage data and check data in an array of storage devices;

accessing the storage data from the array of storage devices;

detecting an erasure storage data, an erasure check data, or a combination thereof when the storage data is not accessible from the array of storage devices; and

recovering the storage data from the erasure storage data, the erasure check data, or the combination thereof by applying at least one of a block of check data, including a slope from the check data, by a shift encoding process including an exclusive OR (XOR) of the storage data and the block of check data, along the slope; and

wherein:

the shift encoding process includes:

aligning the storage data and the block of the check data in an input buffer;

mapping the storage data into the input buffer by an index generator;

monitoring the length of the storage data aligned in the input buffer by a length counter;

establishing the slope of the block of the check data by a slope generator; and

determining the number of the blocks of the check data required for error correction.

16. The medium as claimed in claim 15 further comprising generating the check data by generating a first parity block with a first slope and a second parity block with a second slope greater than the first slope.

17. The medium as claimed in claim 15 further comprising generating the check data by shift encoding a first parity block with a first slope and a second parity block with a second slope different from the first slope.

18. The medium as claimed in claim 15 further comprising generating the check data by polynomial encoding a first parity block with a row of polynomials and a second parity block with a second row of polynomials different from the first row of polynomials.

19. The medium as claimed in claim 15 wherein recovering the storage data including:

indexing the erasure storage data;

combine a persistent parity block and persistent data blocks with an exclusive or based on the index; and

accessing an equation selector for recovering four erasures from the erasure storage data.

20. The medium as claimed in claim 15 wherein recovering the storage data including dividing an input polynomial by a clock.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2022
From: CNEX LABS, INC.
To: POINT FINANCIAL, INC.
Reel/Frame 058951/0738 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 2, 2021
From: CNEX LABS, INC.
To: POINT FINANCIAL, INC
Reel/Frame 058266/0086 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2016
From: FAN, BING; ZHANG, XIAOJIE
To: CNEX LABS, INC
Reel/Frame 039102/0404 →
Continuity (2)
Provisional Application 62272471 · Dec 29, 2015
Related Publication 20170185481A1 · Jun 29, 2017