《 A Scalable 3-Phase Polar Decoder》可扩展的三相极性解码器

可扩展的三相极性解码器
概述:本文提出了一个三相的极化码连续消除解码器。受益于解码树的本地属性,3个区域被定义和关联到三个不同的子解码器。这个方法减少了内存占用,同时与经典的SC解码器相比保证比较好的可扩展性。几个三相SC解码器在FPGA电路上实现,就分布式硬件方面的资源(LUT,D-FF)和吞吐量而言,比经典的实现更好。此外,对于N = 2^21个极化码,解码器的内存减少了37%。
  1. 介绍
从极化码给创造以来[1],几个SC解码器的硬件结构已经给提出。极化码的连续消除(SC)解码的解码性能仅仅是强制在大码长N.在这种情况下,主要的架构挑战之一是设计能够解码几百万比特极化码字的SC解码器。为了实现这种可扩展性,SC解码器的可扩展性必须随着N增加缓慢。
第一个SC解码器架构能够减少处理和存储器资源[2]-[4].其他一些工作集中在SC解码器的延迟和吞吐量[5[-[7].在[8]中,SC解码器通过在使用足够数量的PE的同时扩展在[9]中引入的树修剪的原理而达到几个Gb / s。然而,这种非常有效的架构对于诸如WiMAX和WRAN标准的低复杂度/中等吞吐量应用来说是过大的。一些替代研究集中在SC解码器的可扩展性[10],[11]。 在这些研究中,信道存储器和内部存储器被分离,以便对信道LLR和内部LLR应用不同的量化。 此外,以半并行方式更新部分和。所得到的架构能够在FPGA器件上解码长达N = 2^21的码长的极性码。
实际上,在SC解码器中,限制可扩展性的块是LLR存储器(信道和内部)。 降低存储器复杂性的一个解决方案是将解码过程分为两个阶段,如[12]中所提出的。 因子图被分成两个相等大小的单独区域。 它们中的每一个由子解码器处理。 两个解码器都使用流水线树结构。在该方法中,所产生的数据被缓冲到寄存器中并且立即被重新使用,这显着地减少了存储器需求。尽管存储器占用减少,但该2相SC解码器不可扩展。处理资源随着graphic的增加而增加,这显着影响N增长时的总硬件复杂度。
在本文中,我们提出了一种多相解码架构,可以减少内存占用,同时保证比[10],[11]更高的可扩展性。为此,解码过程被分成与解码树的不同区域相关联的3个阶段(等效于因子图)。每个区域由不同的子解码器处理。主要思想是使子解码器架构适应于解码算法的局部属性。该架构包含解码器:一个流水线树解码器[2],一个半并行解码器[3]和一个展开解码器[13],[14]。与[12]相反,我们的3相SC解码器是可扩展的。它达到等于[10],[11]的吞吐量,具有较少的计算资源量和减少的存储器占用。
在本文的其余部分,解码过程原理在第二部分中给出。 3相SC解码器在第三节中描述。第四部分总结了一些FPGA实现结果。最后给出结论和未来的工作。
  1. 解码过程原理
SC解码算法可以被视为从根节点开始的二叉树的遍历,如图1所示。对于N = 2^n系统极性码,每个节点包含2^(n- l )LLR和2^(n- l )个部分和。信道LLR存储在根节点中。当解码终止时,解码结果以部分和的形式存储在根节点中。对于N长度码,树包含log N + 1个层。 层从l= 0(上层)索引到l = log N(下层)。层l包含2^l个节点。当以降序方向访问节点时,更新节点的LLR。当以上行方向访问节点时,更新节点的部分和。 图2总结了LLR和部分和更新规则。
3、3相SC解码器
在该部分中,详细描述了实现每个解码阶段的解码过程和相关联的架构的3阶段调度。 所提出的方法识别解码树中的3个不同区域。 每个区域由几个节点层组成,并且对应于在SC解码器架构的特定部分上处理的解码阶段。颜色集用于突出树中区域(图1)和解码器的特定部分(图3)之间的链接。 在解码树中,节点表示解码器中的LLR或部分和的存储。 树的边缘与架构中的处理块相关。例如LLR和层的部分和分别存储在通道存储器和RAM S3中(黑色)。在解码器中,以蓝色着色的处理单元计算属于解码树中的层1的LLR。所得到的LLR存储在蓝色寄存器(LLR)中,并且解码的部分和被存储在RAM S4中。
graphic
  1. 三相解码架构
阶段1- LLR重新计算和流水线架构:
在经典SC解码方法中,属于一个节点的LLR在另一个节点的更新之前都被更新。换句话说,在降序方向上,节点的所有LLR都存储在存储器中,因此它们可以重用于低层节点中的未来计算。在3相SC解码器中,对于两个上层(区域1),应用不同的方法。在降序方向上,层2中的LLR的计算在层1的所有LLR被处理之前开始。在架构方面,层1中的LLR存储在寄存器中,因此它们可以被立即重用以用于以流水线方式计算层2中的LLR。 稍后在解码过程中,层1的LLR不再在寄存器中并且需要重新计算。 此重新计算允许在存储器中保存N / 2个LLR值。需要大小为P << N的简单寄存器来存储中间LLR。 在图3中描绘了该流水线结构。信道LLR被分配在四个存储器中,使得同时访问的LLR被存储在单独的存储体中。4P信道LLR在PE的第一级(蓝色)中进行处理。每个蓝色寄存器存储P个LLR并将它们推送到包含P个PE的下一个处理阶段(红色)。在图4中,对于N = 128和P = 8,部分地描述了该架构的调度。在图4中,除了用于流水线初始化的额外时钟周期外,阶段1的第一次出现需要N / 4P个时钟周期。 在阶段1的第二次出现(图4的右侧)期间,层1的LLR被重新计算,使得它们可用于层2中的计算。这种重新计算的将N / 2个元素保存在存储器中的等待时间开销是N / 4P加上几个额外的时钟周期来加载管道。
存储器去除方法仅应用于层1和2,因为树的这部分的存储器要求高。 可以在树的较低层中进一步推动这种技术。 然而,存储器增益将被不可忽略的延迟惩罚迅速地平衡。 此外,部分和存储器也应该被扩展以提供每个流水线级的部分和。
graphic
阶段2- 经典树遍历和半并行解码:树的第二部分(区域2)对应于l层(3<l<n-3)的计算。
    在树的这个区域中,由于半并行解码而执行经典遍历。 在开始另一节点的计算之前,节点的LLR都被更新。 P = 8需要PE来更新LLR。 此外,由于阶段1和2在时间上不同,所以在阶段1中分配的PE的一部分被重用(PE为红色)。
graphic
阶段3-底层树和展开的解码器:通常在层l中,可以并行计算总共2^n-l个LLR值。因此,在树的较底层中,可并行计算的量较低。这些较低层级l>n-3属于区域3。为了提高该区域中的硬件效率,可以完全展开解码过程,同时包括用于拆分关键路径的寄存器。如图3所示,在这样的解码器中,在单个时钟周期期间执行若干操作。此外,部分和在运行中被计算以避免额外的时钟周期。它使得能够仅在6个时钟周期中解码N = 8极性码。类似的方法应用于更大的代码[13]。 在这项工作中,解码过程仅在树的最低部分展开。 与[13]不同,我们显示的解码器不是流水线。只分配寄存器来分割关键路径。
graphic
B.部分和计算
在早期SC解码器中,以完全并行的方式计算[3]部分和。这种并行实现限制了SC解码器的可扩展性。为了保证可扩展性,与[10],[11]类似,设计了半并行部分和计算单元。尽管如此,在阶段1期间使用流水线树会引起架构的轻微修改。如前所示,部分和必须同时提供给流水线的两个级。为了这样做,将部分和计算单元分成两部分。层0和1的部分和分别存储在RAM S3和S4中。应该注意,层0的部分和是解码的码字。区域2的部分和存储在RAM S1和S2中。最后,区域3的部分和被存储在展开的解码器中的触发器中。然后,由展开的解码器提供的部分和被发送到RAM S1和S2,以便更新区域2的最低层的部分和。
C.内存占用
经典SC解码器的存储器占用由四部分组成。信道存储器包含N个Qc个比特LLR。内部LLR存储器包括(N-1)个Qi比特LLR。部分和需要N位。最后,需要N位ROM来存储冻结比特。因此,SC解码器的存储器占用可以表示为:Qc*N +Qi*N +2N
在[10],[11]中,提供了更准确的方程。然而,假设P << N,上述等式是有效的。在2相解码器[12]中,触发器用于存储2*根号N的内部LLR。 一些RAM用于存储通道LLR(Qc*N)、部分和(N比特)和冻结比特(N比特)。这种存储器架构是有趣的,因为内部存储器有限的增长与N(O根号N)。然而,2相解码器基于两个流水线树解码器,每个包括N-1个PE。 对于大的N值,所得到的复杂性迅速变得难以处理。
如前所述,层1中的LLR的重新计算使得能够避免N / 2个LLR的存储。此外,阶段3的内部LLR以触发器的形式存储在展开的解码器中。 这代表几百个FlipFlops(取决于Qi值)。 部分和存储器被复制(2N比特),以便同时访问层1和2个部分和。 我们的3相解码器的总体内存占用是Qc*N +Qi*N/2 +3N,除了几百位的展开的解码器。
当N增加时,需要增加Qi以避免FER性能降级。例如,为了保证近浮点性能,N = 2^21极化码需要Qc = 4和Qi = 9。 因此,与[10],[11]相比,在3相解码器中,较高的Qi(对于大的码长),存储器减少得越好。这由第四部分中给出的实验结果证实。[12]的存储器占用比3相解码器低,但是解码器由于其高计算复杂性而不可缩放。3相解码器是可扩展的低存储器尺寸解码器。
  1. 实验
graphic
3相SC解码器在P = 8的FPGA器件上实现。此外,架构被扩展以管理P = 16以达到更高的性能。为了比较其性能与最先进的解码器,我们使用与[3],[10],[11]和[12](Altera Stratix IV EP4SGX530KH40C2)相同的FPGA。硬件实现结果总结在表1中。实现结果是Quartus工具在布局布线后提供的结果。定时信息报告为慢900mv 85C模型,如相关作品。
在所有P = 8和P = 16测试配置中,3相位解码器比[10]和[12]需要更少的LUT和更少的FF。对于P = 8,除了吞吐量略低的4个配置之外,3相解码器总是至少与先前的解码器一样快。在P = 16配置中,3相解码器总是更快。
与[10],[11]相比,P = 8三相SC解码器需要少两倍的LUT和更少的FF 20-30%。它还需要少30-40%的存储器位。较高的Qi,实现的存储器减少得越高。关于P = 16体系结构,LUT和FF节省更低,存储器节省仍然相同,并且吞吐量乘以因子2。
与[12]相比,三相解码器存储器大小高出50%。然而,尽管这种较高的存储器占用,3相位解码器具有恒定的计算复杂度。这种复杂性仅取决于P,Qc和Qi。这解释了为什么2相位解码器需要5倍的LUT和3倍更多的FF的所考虑的配置。N = 2^21码的硬件复杂度将难以用2相解码器架构。 我们的3相SC解码器在Stratix V上实现了这么大的码长(N = 2^21),以便将其可扩展性与[11]进行比较。对于(9,5,1)量化方案,当P = 8时,在LUT和FF两者方面观察到减少42%。当P = 16时,资源减少稍低,但是解码吞吐量乘以约2已及SC解码器可扩展性的限制因素是存储器,与[10],[11]相比,3相位解码器减少了37%的存储器占用,同时获得了类似的吞吐量。
  1. 总结与展望
到目前为止,SC解码器的可扩展性受到内存占用的限制。在本文中,提出了三相解码方法以限制SC解码器的存储器需求。3个阶段与解码树的不同区域相关联。每个区域由优化的子解码器处理。这种方法减少了内存占用,并保证了更高的可扩展性,类似于以前在FPGA器件上的工作。一个 N = 2^21三相SC解码器实现在FPGA上,减少了37%的存储容量。 尽管它的良好的可扩展性,这个解码器没有达到吞吐量高达[8]他们修改的FastSC解码算法。在未来的工作中,快速SC译码方法和其他内存量化技术(非均匀量化,ROM存储器压缩等。)此外,将研究架构更新以支持诸如List和/或SCAN的其他极化码解码算法。
参考文献
[1] E. Arikan, “Channel polarization: A method for constructing capacityachieving codes for symmetric binary-input memoryless channels,”IEEE
Transactions on Information Theory, vol. 55, no. 7, 2009.
[2] C. Leroux, I. Tal, A. Vardy, and W. Gross, “Hardware architectures for
successive cancellation decoding of polar codes,” inProceedings of the ICASSP Conference, 2011, pp. 1665–1668.
[3] C. Leroux, A. Raymond, G. Sarkis, and W. Gross, “A semi-parallel
successive-cancellation decoder for polar codes,”IEEE Trans. on Signal Processing, vol. 61, no. 2, pp. 289–299, 2012.
[4] A. Mishra, A. J. Raymond, L. G. Amaru, G. Sarkis, C. Leroux,
P. Meinerzhagen, A. Burg, and W. Gross, “A successive cancellationdecoder ASIC for a 1024-bit polar code in 180nm CMOS,” inAsian
Solid-State Circuits Conference
, Nov. 2012.
[5] C. Zhang and K. Parhi, “Low-latency sequential and overlapped architectures for successive cancellation polar decoder,”IEEE Transactions
on Signal Processing, 2013.
[6] B. Yuan and K. Parhi, “Low-latency successive-cancellation polar decoder architectures using 2-bit decoding,”IEEE Trans. on Circuits and
Systems I, vol. 61, no. 4, pp. 1241–1254, 2014.
[7] B. Le Gal, C. Leroux, and C. Jego, “Memory reduction techniques for
successive cancellation decoding of polar codes,” inProceedings of the ICASSP Conference, 2016.
[8] G. Sarkis, P. Giard, A. Vardy, C. Thibeault, and W. J. Gross, “Fast polar
decoders: Algorithm and implementation,”IEEE Journal on Selected Areas in Communications, 2014.
[9] A. Alamdar-Yazdi and F. R. Kschischang, “A simplified successivecancellation decoder for polar codes,”IEEE Communications Letters,vol. 15, no. 12, pp. 1378–1380, Dec. 2011.
[10] A. Raymond and W. Gross, “Scalable successive-cancellation hardware
decoder for polar codes,” inProceedings of the GlobalSIP Conference,December 2013, pp. 1282–1285.
[11] ——, “A scalable successive-cancellation decoder for polar codes,” IEEE
Transactions on Signal Processing (TSP), vol. 62, no. 20, pp. 5339–5347, October 2014.
[12] A. Pamuk and E. Arikan, “A two phase successive cancellation decoder
architecture for polar codes,” inProceedings of the ISIT Conference,July 2013, pp. 957–961.
[13] O. Dizdar and E. Arikan, “A high-throughput energy-efficient implementation of successive-cancellation decoder for polar codes using
combinational logic,” inarXiv:1412.3829v3, 2014.
[14] P. Giard, G. Sarkis, C. Thibeault, and W. J. Gross, “A 237 gbps unrolledhardware polar decoder,”Electronics Letter, vol. 51, no. 10, pp. 762–763, May 2015.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值