Shaped parity bit recovery via bit-flipping
An example includes a method for decoding a shaped codeword that includes shaped data and the shaped parity bits. The shaped codeword has been encoded via an identity matrix comprising an array of layers and block columns of parity data. The method also includes recovering parity data from the shaped parity data of the shaped codeword via the controller. Recovering the parity data includes comparing a syndrome weight of each of a plurality of block columns of the shaped parity data with a threshold and flipping bits of each of the block columns of the shaped parity data in response to the syndrome weight of the respective one of the block columns being greater than the threshold to recover parity data from the shaped parity data of the shaped codeword. The method further includes decoding the shaped data based on the recovered parity data via the controller.
1 . A method for decoding a shaped codeword comprising shaped parity bits, the method comprising:
reading the shaped codeword from a memory device via a controller, the shaped codeword comprising shaped data and the shaped parity bits, the shaped codeword having been encoded via an identity matrix comprising an array of layers and block columns of parity data;
recovering parity data from the shaped parity data of the shaped codeword via the controller, recovering the parity data comprising:
comparing a syndrome weight of each of a plurality of block columns of the shaped parity data with a threshold; and
flipping bits of each of the block columns of the shaped parity data in response to the syndrome weight of the respective one of the block columns being greater than the threshold to recover parity data from the shaped parity data of the shaped codeword; and
decoding the shaped data based on the recovered parity data via the controller.
2 . The method of claim 1 , wherein recovering the parity data further comprises iteratively repeating the comparing of the syndrome weight with the threshold and the flipping of the bits of the respective block columns of the shaped parity data in an iterative parity data recovery process until the bits of none of the block columns of the shaped parity data are flipped in a given iteration of the iterative parity data recovery process.
3 . The method of claim 2 , wherein the threshold is a variable threshold having a value that varies at each iteration of the iterative parity data recovery process.
4 . The method of claim 2 , wherein reading the shaped codeword from the memory device comprises extracting parity flip indicator data from the shaped codeword, the parity flip indicator identifying the block columns of the parity data having flipped bits, wherein recovering the parity data comprises recovering the parity data based on the parity flip indicator data.
5 . The method of claim 4 , wherein recovering the parity data comprises un-flipping each of the block columns of the shaped parity data having flipped bits based on the parity flip indicator data to set an initial flip state associated with each of the block columns of the shaped parity data, wherein the threshold is a variable threshold having a value that varies based on a flip state of each of the block columns of the shaped parity data relative to the initial flip state of the respective one of the block columns of the shaped parity data.
6 . The method of claim 5 , wherein the value of the variable threshold further varies at each iteration of the iterative parity data recovery process.
7 . The method of claim 5 , wherein the value of the variable threshold varies based on whether the flip state of each of the block columns of the shaped parity data matches the initial flip state of the respective one of the block columns of the shaped parity data in a previous iteration of the iterative parity data recovery process.
8 . The method of claim 1 , wherein decoding the shaped data comprises decoding the shaped data via a QC-low density parity check (LDPC) decoding process.
9 . A system decoding a shaped codeword comprising shaped parity bits, comprising:
the memory device; and
a processing device coupled to the memory device, the processing device to perform operations comprising:
reading the shaped codeword from a memory device, the shaped codeword comprising shaped data and the shaped parity bits, the shaped codeword having been encoded via an identity matrix comprising an array of layers and block columns of parity data;
recovering parity data from the shaped parity data of the shaped codeword, recovering the parity data comprising:
comparing a syndrome weight of each of a plurality of block columns of the shaped parity data with a threshold; and
flipping bits of each of the block columns of the shaped parity data in response to the syndrome weight of the respective one of the block columns being greater than the threshold to recover parity data from the shaped parity data of the shaped codeword; and
decoding the shaped data based on the recovered parity data.
10 . The system of claim 9 , wherein recovering the parity data further comprises iteratively repeating the comparing of the syndrome weight with the threshold and the flipping of the bits of the respective block columns of the shaped parity data in an iterative parity data recovery process until the bits of none of the block columns of the shaped parity data are flipped in a given iteration of the iterative parity data recovery process.
11 . The system of claim 10 , wherein reading the shaped codeword from the memory device comprises extracting parity flip indicator data from the shaped codeword, the parity flip indicator identifying the block columns of the parity data having flipped bits, wherein recovering the parity data comprises recovering the parity data based on the parity flip indicator data.
12 . The system of claim 11 , wherein recovering the parity data comprises un-flipping each of the block columns of the shaped parity data having flipped bits based on the parity flip indicator data to set an initial flip state associated with each of the block columns of the shaped parity data, wherein the threshold is a variable threshold having a value that varies based on a flip state of each of the block columns of the shaped parity data relative to the initial flip state of the respective one of the block columns of the shaped parity data.
13 . The system of claim 12 , wherein the value of the variable threshold further varies at each iteration of the iterative parity data recovery process.
14 . The system of claim 12 , wherein the value of the variable threshold varies based on whether the flip state of each of the block columns of the shaped parity data matches the initial flip state of the respective one of the block columns of the shaped parity data in a previous iteration of the iterative parity data recovery process.
15 . A non-transitory computer-readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to decode a shaped codeword comprising shaped parity bits, the instructions comprising:
reading the shaped codeword from a memory device, the shaped codeword comprising shaped data and the shaped parity bits, the shaped codeword having been encoded via an identity matrix comprising an array of layers and block columns of parity data;
recovering parity data from the shaped parity data of the shaped codeword, recovering the parity data comprising:
comparing a syndrome weight of each of a plurality of block columns of the shaped parity data with a threshold; and
flipping bits of each of the block columns of the shaped parity data in response to the syndrome weight of the respective one of the block columns being greater than the threshold to recover parity data from the shaped parity data of the shaped codeword; and
decoding the shaped data based on the recovered parity data.
16 . The medium of claim 15 , wherein recovering the parity data further comprises iteratively repeating the comparing of the syndrome weight with the threshold and the flipping of the bits of the respective block columns of the shaped parity data in an iterative parity data recovery process until the bits of none of the block columns of the shaped parity data are flipped in a given iteration of the iterative parity data recovery process.
17 . The medium of claim 16 , wherein reading the shaped codeword from the memory device comprises extracting parity flip indicator data from the shaped codeword, the parity flip indicator identifying the block columns of the parity data having flipped bits, wherein recovering the parity data comprises recovering the parity data based on the parity flip indicator data.
18 . The medium of claim 17 , wherein recovering the parity data comprises un-flipping each of the block columns of the shaped parity data having flipped bits based on the parity flip indicator data to set an initial flip state associated with each of the block columns of the shaped parity data, wherein the threshold is a variable threshold having a value that varies based on a flip state of each of the block columns of the shaped parity data relative to the initial flip state of the respective one of the block columns of the shaped parity data.
19 . The medium of claim 18 , wherein the value of the variable threshold further varies at each iteration of the iterative parity data recovery process.
20 . The medium of claim 18 , wherein the value of the variable threshold varies based on whether the flip state of each of the block columns of the shaped parity data matches the initial flip state of the respective one of the block columns of the shaped parity data in a previous iteration of the iterative parity data recovery process.