Unrolled Polar Decoders, Part II: Fast List Decoders

Polar codes asymptotically achieve the symmetric capacity of memoryless channels, yet their error-correcting performance under successive-cancellation (SC) decoding for short and moderate length codes is worse than that of other modern codes such as low-density parity-check (LDPC) codes. Of the many methods to improve the error-correction performance of polar codes, list decoding yields the best results, especially when the polar code is concatenated with a cyclic redundancy check (CRC). List decoding involves exploring several decoding paths with SC decoding, and therefore tends to be slower than SC decoding itself, by an order of magnitude in practical implementations. This is the second in a two-part series of papers on unrolled polar decoders. Part I focuses on hardware SC polar decoders. In this paper (Part II), we present a new algorithm based on unrolling the decoding tree of the code that improves the speed of list decoding by an order of magnitude when implemented in software. Furthermore, we show that for software-defined radio applications, our proposed algorithm is faster than the fastest software implementations of LDPC decoders in the literature while offering comparable error-correction performance at similar or shorter code lengths.

[1]  Erdal Arikan,et al.  Channel Polarization: A Method for Constructing Capacity-Achieving Codes for Symmetric Binary-Input Memoryless Channels , 2008, IEEE Transactions on Information Theory.

[2]  Alexios Balatsoukas-Stimming,et al.  Hardware Architecture for List Successive Cancellation Decoding of Polar Codes , 2014, IEEE Transactions on Circuits and Systems II: Express Briefs.

[3]  Zhiyuan Yan,et al.  Efficient list decoder architecture for polar codes , 2014, 2014 IEEE International Symposium on Circuits and Systems (ISCAS).

[4]  Alexios Balatsoukas-Stimming,et al.  LLR-Based Successive Cancellation List Decoding of Polar Codes , 2013, IEEE Transactions on Signal Processing.

[5]  José Nelson Amaral,et al.  Using SIMD registers and instructions to enable instruction-level parallelism in sorting algorithms , 2007, SPAA '07.

[6]  Warren J. Gross,et al.  Increasing the Throughput of Polar Decoders , 2013, IEEE Communications Letters.

[7]  Frank R. Kschischang,et al.  A Simplified Successive-Cancellation Decoder for Polar Codes , 2011, IEEE Communications Letters.

[8]  Bin Li,et al.  An Adaptive Successive Cancellation List Decoder for Polar Codes with Cyclic Redundancy Check , 2012, IEEE Communications Letters.

[9]  Zhengya Zhang,et al.  A 4.68Gb/s belief propagation polar decoder with bit-splitting register file , 2014, 2014 Symposium on VLSI Circuits Digest of Technical Papers.

[10]  Xiao Han,et al.  Implementation of IEEE 802.11n LDPC codes based on general purpose processors , 2013, 2013 15th IEEE International Conference on Communication Technology.

[11]  Bertrand Le Gal,et al.  Multi-Gb/s Software Decoding of Polar Codes , 2015, IEEE Transactions on Signal Processing.

[12]  Alexander Vardy,et al.  Increasing the speed of polar list decoders , 2014, 2014 IEEE Workshop on Signal Processing Systems (SiPS).

[13]  Alexander Vardy,et al.  Fast Polar Decoders: Algorithm and Implementation , 2013, IEEE Journal on Selected Areas in Communications.

[14]  Alexander Vardy,et al.  List decoding of polar codes , 2011, 2011 IEEE International Symposium on Information Theory Proceedings.

[15]  Friedrich Jondral,et al.  A LTE Receiver Framework Using GNU Radio , 2015, J. Signal Process. Syst..

[16]  Warren J. Gross,et al.  Autogenerating software polar decoders , 2014, 2014 IEEE Global Conference on Signal and Information Processing (GlobalSIP).

[17]  David Chase,et al.  Class of algorithms for decoding block codes with channel measurement information , 1972, IEEE Trans. Inf. Theory.