Data protection and recovery
A redundant array of independent disks (RAID) protection can be provided along with other types of error correction code (ECC) schemes that correct either errors in data prior to the data being input to the RAID process or residual errors from the RAID process. The ECC schemes can utilize parity bits generated using a parity matrix whose bit patterns have an amount of bits that can be used to identify a location of the memory system from which data corresponding to the respective bit pattern is read.
1 . An apparatus, comprising:
a first group of memory units configured to store first user data; and
a controller communicatively coupled to the first group of memory units, the controller configured to:
perform, to perform an error correction operation on the first user data using error correction information and a parity check matrix including a plurality of bit patterns, one or more XOR operations between:
each bit of the first user data and the error correction information having a particular bit value; and
a respective bit pattern of the plurality of bit patterns, wherein each bit pattern of the plurality of bit patterns includes one or more first bits to identify, among the first group of memory units, a memory unit corresponding to a bit position of the first user data having an error.
2 . The apparatus of claim 1 , wherein the one or more first bits are indicative of a plurality of data values, wherein each data value of the plurality of data values corresponds to a respective memory unit of the first group of memory units.
3 . The apparatus of claim 1 , wherein each bit pattern of the plurality of bit patterns further comprises one or more second bits to identify a respective bit position of the first user data.
4 . The apparatus of claim 1 , wherein the controller is configured to perform the error correction operation on the first user data as well as on second user data collectively.
5 . The apparatus of claim 4 , wherein the controller is configured to, prior to performance of the error correction operation:
read the first user data from the first group of memory units; and
read second user data from a second group of memory units.
6 . The apparatus of claim 5 , wherein the one or more first bits of each bit pattern of the plurality of bit patterns assigned to a number of bits of the first user data is indicative of:
a first data value corresponding to a first memory unit of the first group of memory units; and
a second data value corresponding to a second memory unit of the first group of memory units.
7 . The apparatus of claim 5 , wherein the one or more first bits of each bit pattern of the plurality of bit patterns assigned to a number of bits of the second user data is indicative of:
a first data value corresponding to a first memory unit of the second group of memory units; and
a second data value corresponding to a second memory unit of the second group of memory units.
8 . An apparatus, comprising:
a plurality of memory units configured to store user data; and
a controller communicatively coupled to the plurality of memory units, the controller configured to:
perform, using data recovery information, a data recovery operation on at least one subset of a plurality of subsets corresponding to the user data to recover the at least one subset; and
perform, using error correction information that is different from the data recovery information, a first error correction operation on the plurality of subsets to correct one or more bit errors remaining in the plurality of subsets subsequent to the data recovery operation.
9 . The apparatus of claim 8 , wherein the controller is configured to perform the first error correction operation using a parity check matrix comprising a first plurality of bit patterns, wherein each bit pattern of the first plurality of bit patterns further comprises:
one or more first bits indicative of data values respectively assigned to the plurality of memory units; and
one or more second bits to indicate a bit position among bit positions of a respective subset of the plurality of subsets of the user data.
10 . The apparatus of claim 9 , wherein the parity check matrix further comprises a second plurality of bit patterns, wherein each bit pattern of the second plurality of bit patterns comprises one or more bits to indicate a bit position among bit positions of the data recovery information.
11 . The apparatus of claim 9 , wherein the controller is configured to perform, prior to the data recovery operation, a second error correction operation on the user data to correct one or more bit errors in the user data using the error correction information and the parity check matrix.
12 . The apparatus of claim 11 , wherein the controller is configured to:
perform an error detection operation on the user data subsequent to the second error correction operation; and
perform the data recovery operation in response to the error detection operation indicating one or more bit errors in the user data.
13 . The apparatus of claim 8 , wherein the one or more bit errors remaining in the plurality of subsets correspond to one or more bit errors propagated from performing the data recovery operation using data recovery information having one or more bit errors.
14 . The apparatus of claim 8 , wherein the controller is configured to:
perform an error detection operation on the user data subsequent to the first error correction operation; and
notify, in response to the error detection operation indicating one or more bit errors in the user data, a host of the one or more bit errors in the user data.
15 . A method, comprising:
reading, from respective memory units, a plurality of subsets of user data corresponding to a redundant array of independent disks (RAID) stripe;
performing a RAID operation on the plurality of subsets using RAID parity data; and
performing, using error correction information that is different from the RAID parity data, an error correction operation on the plurality of subsets to correct one or more bit errors remaining in the plurality of subsets subsequent to the RAID operation.
16 . The method of claim 15 , wherein performing the RAID operation on the plurality of subsets using the RAID parity data further comprises:
performing a first RAID operation to recover a first subset of the plurality of subsets; and
performing a second RAID operation independently of the first RAID operation to recover a second subset of the plurality of subsets.
17 . The method of claim 16 , further comprising the first RAID operation and the second RAID operation in parallel.
18 . The method of claim 16 , wherein performing the error correction operation on the plurality of subsets further comprises:
performing a first error correction operation on a plurality of subsets corresponding to a result of the first RAID operation; and
performing a second error correction operation on a plurality of subsets corresponding to a result of the second RAID operation.
19 . The method of claim 18 , further comprising:
performing a plurality of error detection operation independently on results respectively corresponding to the first error correction operation and the second error correction operation; and
output one of the results not indicated as having one or more bit errors in the plurality of subsets.
20 . The method of claim 15 , further comprising:
performing, prior to perform the RAID operation, an error detection operation on the plurality of subsets to indicate whether the plurality of subsets includes one or more bit errors; and
performing the RAID operation responsive to the error detection operation indicating the one or more bit errors on the plurality of subsets.