Polar-BCH combined generalized concatenated codes
A nonvolatile memory device includes a memory and processing circuitry configured to receive a read request from a host, read an ECC noisy codeword from the memory based on the read request, determine to decode the ECC noisy codeword using a first decoder or a second decoder, and decode the ECC noisy codeword using the determined decoder.
1 . A nonvolatile memory device comprising:
a memory; and
processing circuitry including a first decoder and a second decoder, wherein the processing circuitry is configured to:
receive a read request from a host,
read an ECC noisy codeword from the memory based on the read request,
determine the first decoder or the second decoder for decoding the ECC noisy codeword, and
decode the ECC noisy codeword using the determined decoder, wherein the first decoder is configured to:
generate a first transform space by applying a first transform to the ECC noisy codeword, wherein the first transform comprises a transform matrix,
generate a second transform space by applying a second transform to the first transform space, wherein the second transform comprises an equation, and
wherein the second decoder is configured to:
generate the first transform space by applying the first transform to the ECC noisy codeword.
2 . The nonvolatile memory device according to claim 1 , wherein the first decoder is configured to handle a first decoding complexity and the second decoder is configured to handle a second decoding complexity that is greater than the first decoding complexity.
3 . The nonvolatile memory device according to claim 1 , wherein the first decoder is a Bose-Chaudhuri-Hocquenghem generalized concatenated codes (BCH-GCC) and the second decoder is a Polar-GCC decoder.
4 . The nonvolatile memory device according to claim 1 , wherein the processing circuitry is configured to decode the ECC noisy codeword using the second decoder in response to an attempt to decode the ECC noisy codeword by the first decoder being unsuccessful.
5 . The nonvolatile memory device according to claim 1 , wherein the processing circuitry is configured to:
decode the ECC noisy codeword using the second decoder based on the first transform space in response to determining to decode the ECC noisy codeword using the second decoder.
6 . The nonvolatile memory device according to claim 1 , wherein the processing circuitry is configured to:
decode the ECC noisy codeword using the first decoder based on the second transform space in response to determining to decode the ECC noisy codeword using the first decoder.
7 . The nonvolatile memory device according to claim 6 , wherein the processing circuitry is configured to generate the second transform space by applying an equation
s
q
=
(
Q
q
)
-
1
·
f
Δ
δ
q
q
+
∑
i
=
0
q
-
1
Q
q
i
·
f
Δ
δ
i
i
to the first transform space,
wherein s q is a BCH syndrome for a stage q,
Δδ q is a dynamic frozen set for the stage q,
Δδ i is a dynamic frozen set for a stage i,
f
Δ
δ
q
q
is a coset value corresponding to the dynamic frozen set Δδ q ,
f
Δ
δ
i
i
is a coset value corresponding to the dynamic frozen set Δδ i
Q q is a matrix representing row operations used to generate the dynamic frozen set Δδ q , and
Q qi is a matrix representing row operations that define a relationship between the stage q and the stage i.
8 . The nonvolatile memory device according to claim 1 , wherein the processing circuitry is configured to encode a codeword using a polar sub-code coset systematic encoder on data transmitted from the host.
9 . The nonvolatile memory device according to claim 1 , wherein the processing circuitry is configured to decode a portion of the ECC noisy codeword using the second decoder in response to the first decoder failing to decode the portion of the ECC noisy codeword.
10 . The nonvolatile memory device according to claim 1 , wherein the processing circuitry is configured to decode the ECC noisy codeword using the first decoder and the second decoder iteratively.
11 . A method for performing error correction, the method comprising:
receiving a read request from a host;
reading an ECC noisy codeword from a memory based on the read request,
determining a first decoder or a second decoder for decoding the ECC noisy codeword; and
decoding the ECC noisy codeword using the determined decoder,
wherein the decoding the ECC noisy codeword includes:
generating a first transform space by applying a first transform to the ECC noisy codeword, wherein the first transform comprises a transform matrix,
generating a second transform space by applying a second transform to the first transform space, wherein the second transform comprises an equation,
decoding the ECC noisy codeword based on the first transform and the second transform in response to determining to decode the ECC noisy using the first decoder, and
decoding the ECC noisy codeword based on the first transform in response to determining to decode the ECC noisy using the second decoder.
12 . The method of claim 11 , wherein the first decoder is configured to handle a first decoding complexity and the second decoder is configured to handle a second decoding complexity that is greater than the first decoding complexity.
13 . The method of claim 11 , wherein the first decoder is a Bose-Chaudhuri-Hocquenghem generalized concatenated codes (BCH-GCC) and the second decoder is a Polar-GCC decoder.
14 . The method of claim 11 , wherein the decoding the ECC noisy codeword includes:
decoding the ECC noisy codeword using the second decoder in response to an attempt to decode the ECC noisy codeword by the first decoder being unsuccessful.
15 . The method of claim 11 , wherein the generating the second transform space includes generating the second transform space by applying an equation
s
q
=
(
Q
q
)
-
1
·
f
Δ
δ
q
q
+
∑
i
=
0
q
-
1
Q
q
i
·
f
Δ
δ
i
i
to the first transform space,
wherein s q is a BCH syndrome for a stage q,
Δδ q is a dynamic frozen set for the stage q,
Δδ i is a dynamic frozen set for a stage i,
f
Δ
δ
q
q
is a coset value corresponding to the dynamic frozen set Δδ q ,
f
Δ
δ
i
i
is a coset value corresponding w the dynamic frozen set Δδ i ,
Q q is a matrix representing row operations used to generate the dynamic frozen set 484 , and
Q qi is a matrix representing row operations that define a relationship between the stage q and the stage i.
16 . The method of claim 11 , further comprising encoding a codeword using a polar sub-code coset systematic encoder on data transmitted from the host.
17 . The method of claim 11 , wherein the decoding the ECC noisy codeword includes decoding a portion of the ECC noisy codeword using the second decoder in response to the first decoder failing to decode the portion of the ECC noisy codeword.
18 . The method of claim 11 , wherein the decoding the ECC noisy codeword includes decoding the noisy codeword using the first decoder and the second decoder iteratively.