US 12,231,148 B2
Acceleration of S-polar ECC throughput by scheduler
Amit Berman, Tel-Aviv (IL); Sarit Buzaglo, Tel-Aviv (IL); and Ariel Doubchak, Tel-Aviv (IL)
Assigned to SAMSUNG ELECTRONICS CO., LTD., Suwon-si (KR)
Filed by SAMSUNG ELECTRONICS CO., LTD., Suwon-si (KR)
Filed on Nov. 16, 2023, as Appl. No. 18/511,690.
Application 18/511,690 is a continuation of application No. 17/807,217, filed on Jun. 16, 2022, granted, now 11,848,687.
Prior Publication US 2024/0157933 A1, May 16, 2024
Int. Cl. H03M 13/37 (2006.01); G05D 1/00 (2006.01); B60W 30/06 (2006.01); B60W 40/06 (2012.01); G08G 1/14 (2006.01); H03M 13/25 (2006.01); H03M 13/29 (2006.01)
CPC H03M 13/373 (2013.01) [G05D 1/0217 (2013.01); H03M 13/3738 (2013.01); B60W 30/06 (2013.01); B60W 40/06 (2013.01); B60W 2555/20 (2020.02); G08G 1/144 (2013.01); G08G 1/146 (2013.01); G08G 1/148 (2013.01); H03M 13/253 (2013.01); H03M 13/29 (2013.01); H03M 13/2936 (2013.01)] 9 Claims
OG exemplary drawing
 
1. A digital electronic circuit, tangibly embodying a program of instructions executed by the digital electronic circuit to perform method steps for simplified successive cancellation list (SSCL) error decoding of S-polar codes, the method steps comprising:
receiving a signal that comprises a plurality of frames through a digital electronic communication channel;
performing error correction on the plurality of frames to generate a corrected plurality of frames; and
outputting data included in the corrected plurality of frames to the digital electronic communication channel,
wherein performing the error correction comprises
generating, from the plurality of frames, a perfect binary tree with 2N−1 nodes based on an S-polar code of length N=2n, wherein n is a non-negative integer,
wherein the S-Polar code is a generalized concatenated code (GCC) including Reed-Solomon (RS) codes as outer codes and polar codes as inner codes,
wherein information is encoded into an N×J array using S−1 outer codes and S inner codes in S stages, and at each stage s of the S stages, information bits and parities from a previous outer code of a previous stage (s−1) are encoded into n=Kouts+1−Kouts codewords C(s) and stored as n rows of the array, C(s) being a codeword at stage s, Kouts representing an amount of data in an outer codeword at stage s, and the n rows of the array being mapped into a coset array in which an s+1th outer code for systematically encoding t=kouts−kouts+1 columns of the coset array, and parities of the encoded codewords being transmitted to a next inner code for encoding, and wherein S and J are non-negative integers;
providing a node v in a decoding path l at a depth d in the perfect binary tree with a vector αv(l) of length 2d of soft information from a parent node vp, the decoding path l being a lth path in a list of L paths through the binary tree, 1≤l≤L;
computing, for every path in a list of paths in the binary tree, a vector αvl(l) length 2d-1 of soft information for a left child, vl of node v;
providing the node v with a vector of length βvl(l) of length 2d-1 of hard decisions from the left child and using vector βvl(l), together with αv(l), to create a soft information vector αvl(l) of length 2d-1 and passing the soft information vector αvl(l) to a right child of the node v;
providing the node v with a vector βvr(l) of length 2d-1 of hard decisions from its right child and using the vector βvr(l) together with βvl(l), to create a hard decision vector βv of length 2d of hard decisions, and passing the hard decision vector βv to its parent node;
based on the node v being an ith leaf of the perfect tree, 0≤ i<2n, for each path in the list of paths, updating two path metrics according to
PMi(2l)=PMi-1(l)+ln(1+exp(−αv,i(l)))
and
PMi(2l+1)=PMi-1(l)+ln(1+exp(−αv,i(l))), wherein PMi(l) is a loglikelihood ratio of path l through leaf i, the leaf i representing a codeword of the GCC;
selecting L path of 2L paths as a lowest path metric, 2L paths obtained by expanding a current L paths with a 0 bit or with a 1 bit;
setting βr(l) to 0 based on an lth path being expanded by a 0 bit; and
setting βv(l) to 1 based on the lth path not being expanded by a 0 bit.