Data storage device and method for reusing a hardware encoder in a RAID recovery operation
A Redundant Array of Independent Disks (RAID) scheme can be used to allow recovery from a memory failure. RAID 6 can be used to recover data from up to two catastrophic failures. Typically, a hardware encoder is used to generate parities of the RAID 6 protection scheme, and a separate hardware decoder is used in the data recovery process. In an example data storage device described herein, some of the components of the hardware encoder are used to perform the data recovery process, thereby eliminating the need for a separate, additional hardware component.
1 . A data storage device comprising:
a memory;
a hardware encoder coupled with the memory and configured to generate p and q parities of a Redundant Array of Independent Disks (RAID) 6 protection scheme; and
one or more processors coupled with the memory, wherein the one or more processors, individually or in combination, are configured to reuse a subset of components of the hardware encoder to perform a data recovery operation.
2 . The data storage device of claim 1 , wherein the hardware encoder comprises a multiplier, an alpha generator, and/or an adder.
3 . The data storage device of claim 1 , wherein the subset of components of the hardware encoder that are reused to perform the data recovery operation comprises a multiplier, an alpha generator, and/or an adder.
4 . The data storage device of claim 1 , wherein the hardware encoder is configured to perform a first stage of the data recovery operation, wherein firmware is configured to perform a second stage of the data recovery operation, and wherein a combination of hardware and firmware is configured to perform a third stage of the data recovery operation.
5 . The data storage device of claim 1 , wherein the hardware encoder is further configured to calculate C=C+α i ·x, wherein C is an encoded output.
6 . The data storage device of claim 1 , wherein the hardware encoder is further configured to calculate a syndrome.
7 . The data storage device of claim 1 , wherein the hardware encoder is further configured to calculate powers of alpha in an inverse of A (i′,j′,k′).
8 . The data storage device of claim 1 , wherein the hardware encoder is further configured to calculate erased symbols by reusing only some components of the hardware encoder.
9 . The data storage device of claim 1 , wherein the RAID 6 protection scheme is based on a Reed-Solomon (RS) code that includes two parity symbols for every codeword and can correct any two failures in the codeword.
10 . The data storage device of claim 1 , wherein the memory comprises a plurality of memory dies.
11 . The data storage device of claim 10 , wherein the one or more processors, individually or in combination, are further configured to store the p and q parities on redundant ones of the plurality of memory dies.
12 . The data storage device of claim 1 , wherein the memory comprises a three-dimensional memory.
13 . In a data storage device comprising a memory and encoding hardware, a method comprising:
calculating a syndrome using the encoding hardware, which is a first stage of a Redundant Array of Independent Disks (RAID) 6 recovery operation;
calculating powers of alpha in an inverse of A (i′j′,k′) using the encoding hardware; and
calculating erased symbols by reusing only some components of the encoding hardware.
14 . The method of claim 13 , wherein the encoding hardware comprises a multiplier, an alpha generator, and/or an adder.
15 . The method of claim 13 , wherein a multiplier, a generator, and/or an adder are reused to calculate the erased symbols.
16 . The method of claim 13 , further comprising using software to perform second and third stages of the RAID 6 recovery operation.
17 . The method of claim 13 , wherein the memory comprises a plurality of memory dies.
18 . The method of claim 17 , further comprising storing p and q parities on redundant ones of the plurality of memory dies.
19 . The method of claim 13 , wherein the memory comprises a three-dimensional memory.
20 . A data storage device comprising:
a memory;
a hardware encoder configured to generate p and q parities of a Redundant Array of Independent Disks (RAID) 6 protection scheme; and
means for reusing a subset of components of the hardware encoder to perform a data recovery operation.