CN111224680B - 一种低延时高可靠的极化码快速译码方法和译码器 - Google Patents
一种低延时高可靠的极化码快速译码方法和译码器 Download PDFInfo
- Publication number
- CN111224680B CN111224680B CN201911196785.3A CN201911196785A CN111224680B CN 111224680 B CN111224680 B CN 111224680B CN 201911196785 A CN201911196785 A CN 201911196785A CN 111224680 B CN111224680 B CN 111224680B
- Authority
- CN
- China
- Prior art keywords
- information
- path
- network
- llr
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000010287 polarization Effects 0.000 title claims abstract description 25
- 238000004364 calculation method Methods 0.000 claims abstract description 79
- 238000012163 sequencing technique Methods 0.000 claims description 54
- 230000015654 memory Effects 0.000 claims description 50
- 239000010410 layer Substances 0.000 claims description 34
- 238000012545 processing Methods 0.000 claims description 29
- 239000000872 buffer Substances 0.000 claims description 16
- 238000013138 pruning Methods 0.000 claims description 16
- 239000011159 matrix material Substances 0.000 claims description 14
- 230000009977 dual effect Effects 0.000 claims description 5
- 239000002356 single layer Substances 0.000 claims description 4
- 230000008014 freezing Effects 0.000 claims description 3
- 238000007710 freezing Methods 0.000 claims description 3
- 238000003491 array Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 claims description 2
- 238000005259 measurement Methods 0.000 claims 1
- 238000012216 screening Methods 0.000 claims 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims 1
- 238000004422 calculation algorithm Methods 0.000 description 26
- 238000013461 design Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 241000169170 Boreogadus saida Species 0.000 description 5
- 238000005457 optimization Methods 0.000 description 4
- 238000011160 research Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- GVVPGTZRZFNKDS-JXMROGBWSA-N geranyl diphosphate Chemical compound CC(C)=CCC\C(C)=C\CO[P@](O)(=O)OP(O)(O)=O GVVPGTZRZFNKDS-JXMROGBWSA-N 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/25—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明公开一种低延时高可靠的极化码快速译码方法和译码器;步骤1、根据极化码信息位、冻结位分布,对满足条件节点视为Rate‑1节点;步骤2、按传统SC译码蝶形图f、g节点计算顺序,逐层更新对数似然比信息;步骤3、对于长度为的码组,f、g节点计算到mi层,判断该码组类型,若为Rate‑1节点,进行步骤4;否则进行步骤5;步骤4、选择节点内相对不可靠位置的比特进行路径扩展;步骤5、对码组内所有信息位进行路径扩展;步骤6、路径度量值从小到大排序,选择路径度量值最小的L个对应路径保留;步骤7、更新部分和计算;步骤8、返回步骤2,直到所有比特译码完成。本发明降低了译码时延,提出了低逻辑资源消耗的硬件平台。
Description
技术领域
本发明属于通信领域,具体涉及一种低时延高可靠的极化码快速译码方法和译码器。
背景技术
2009年E.Arikan提出了一种新型信道编码方式——polar码,即极化码。polar码是目前唯一一种被证明可以达到信道容量的信道编码,相较之传统的LDPC码,polar码具备更低的编译码复杂度,和更佳的编译码性能。因此,polar码具有极大的研究价值和实用价值,且在3GPP的会议中,已经确定了polar码作为5G中eMBB(增强移动宽带)场景的控制信道编码方案。可见,极化码的应用前景非常广泛,具备继续深入研究的潜力。
自2009年极化码被提出以来,有众多海内外学者,从编码算法、编码器硬件架构设计、译码算法、译码器硬件架构设计等方面展开对极化码的研究,编码算法和实现已经技术较为成熟,译码方面还有很大空间继续提升。连续列表消除(Successive CancellationList,SCL)译码算法,是目前主流的极化码译码方法,随着list数目增大,译码性能显著提升,但复杂度也更高。为了获得一个较好的性能,同时list数目在可实现的范围内,有学者提出了CA-SCL译码算法。CA-SCL算法采用了循环冗余校验(Cyclic Redundancy Check,CRC)与SCL级联的方式,在合适的list数目下性能即可优于turbo、LDPC码。
但SCL译码算法是一种逐比特串行输出的算法,所以译码延时较大,为了降低算法的时间复杂度,有学者进一步作了改进,提出了一种简化多比特连续列表删除(SimplifiedMulti- bit Successive Cancellation List(SMSCL))算法[Han J.,Liu R,WangR.Simplified multi-bit SC list decoding for polar codes[C].IEEE InternationalConference on Acoustics,Speech and Signal Processing.IEEE,2016,996–1000.],但该算法对于较高码率,存在更多连续的信息比特时,译码时延降低的程度会大打折扣。
发明内容
基于上述需求与极化码的特殊性,本发明提出一种低延时高可靠的极化码快速译码方法和两种译码器架构设计方案,在上述算法的基础上引入了Rate-1节点,从降低译码时延的角度进一步改进了算法,并保证性能几乎无损,便于硬件平台实现;其次,针对低延时场景的需求设计了该算法的硬件架构,重点提出了低逻辑资源消耗的路径信息存储单元和低时延的部分和网络架构;最后针对低资源消耗、高性能需求的场景,设计了高list数目的低资源消耗的SCL译码器架构。
本发明的一种低延时高可靠的极化码快速译码方法,首先,根据信息位和冻结位的分布,对码字进行重新分组,对于码率为1的码组[Sarkis G.,Giard P.and VardyA.Fast List Decoders for Polar Codes[J].IEEE Journal on Selected Areas inCommunications,2016,34(2):318–328.]采取特殊的路径扩展方式,只选择节点内相对不可靠的位置上的比特进行路径扩展,判断位置的可靠性依据是该位置的对数似然比(LLR)的绝对值的大小,对该节点内所有对数似然比的绝对值进行排序,绝对值越小则代表越不可靠。仿真结果表明,改进后的算法的译码性能与原译码性能吻合,并且有效降低了译码时延。其次,基于改进的算法,设计了译码器整体硬件架构,提出了信息存储单元提出了低逻辑资源消耗的路径信息存储单元和低时延的部分和网络架构。
一种低延时高可靠的极化码快速译码方法,步骤如下:
步骤1、根据极化码的信息位、冻结位分布,对于满足下述条件的节点视为Rate-1节点,条件为:节点内全部是信息位;1节点中第一个比特的位置数(index)可以被该节点长度(length)整除,即mod(index,length)=0;节点长度是2的整数次幂。对于Rate-1节点之外的比特,设定了一个参数M=2m,m为正整数,规定每个码组的长度Mi≥M,所含信息比特数目Ci≤M。
步骤2、按照传统SC译码蝶形图(图1)的f、g节点计算顺序,逐层更新对数似然比(LLR)信息,f和g节点的LLR计算公式如下:
λf(λa,λb)=2tanh-1(tanh(λa/2)tanh(λb/2)) (1)
步骤4、选择节点内相对不可靠的位置上的比特进行路径扩展。其中,判断位置的可靠性依据是该位置的对数似然比(LLR)的绝对值的大小,对该节点内所有对数似然比的绝对值进行排序,绝对值越小则代表越不可靠。选择进行路径扩展的不可靠比特数目应满足:min(L-1,length),L表示路径list数目;即选择list数目减1和节点长度之间的最小值作为扩展比特数目。扩展出来的第l条路径的路径度量计算如下所示:
步骤5、对码组内所有信息位都进行路径扩展,路径度量值计算如下所示:
步骤6、对路径度量值进行从小到大排序,选择路径度量值最小的L个所对应的路径保留下来。
步骤7、更新部分和计算。
步骤8、返回步骤2,直到所有比特译码完成。
传统简化多比特SCL没有充分利用连续的信息位信息,本发明提出的快速多节点SCL算法可以在性能无损的情况下进一步降低译码时延。
此外,本发明还针对低时延场景的需求,基于上述一种低延时高可靠的极化码快速译码方法设计了相应的硬件实现架构,即一种低延时高可靠的极化码快速译码器,如图2所示,主要由存储单元(包括信道缓存器、信道LLR存储器、内部LLR存储器、冻结集信息存储器、路径信息存储单元)、节点计算单元、路由单元、Rate-1节点处理单元、路径扩展与度量值计算单元、路径修剪单元以及部分和网络、指针存储单元构成。经过信道接收到的对数似然比信息(LLR)先存储到信道缓存器(Channel Buffer)中,然后按照设计的存储地址存到信道LLR存储器中,路由单元(Route Unit)用来选择从哪种LLR存储器中读取数据传给节点计算单元,完成节点计算后根据冻结集信息存储器中的码字分组信息判断节点类型,之后进入路径扩展与度量值计算单元,路径修剪单元根据度量值结果进行路径删减,然后更新部分和结果以及路径存储信息,再回到节点计算单元重复上述步骤,直到译码完成。本设计的主要贡献在提出了适用于快速多节点SCL算法的对数似然比信息(LLR)的存储架构、部分和网络,以及针对高码率、高list的情况设计了节约逻辑资源的路径存储单元。
其中,信道LLR和内部LLR存储器中对数似然比信息(LLR)的存储架构如图3所示,在译码的过程中,需要存储的LLR信息主要有两类,信道LLR信息和内部LLR信息,本发明设计采用双口RAM对这两种LLR信息进行分开存储,因为信道LLR信息在译码进行到一半时就不再需要,所以可以继续读入下一帧数据,从而可以提高译码速率。假设译码器的 f、g节点计算并行度为P=2p,即一个时钟周期内并行计算P个f/g节点,信道LLR和内部 LLR信息均采用Q比特量化。对于信道LLR信息,只需要在进行第n层节点计算的时候读取即可,设计采用双口RAM存储,宽度为2PQ,深度为N/2P。内部LLR信息采用两个双口RAM来存储内部LLR信息,每个RAM的宽度为PQ,深度为
其中,路径信息存储单元中路径存储架构如图4所示,因为L条路径需要在每个节点译码完成后根据路径索引进行更新,所以路径交换复制很频繁,传统结构多用寄存器来存储L 条路径信息,方便整条路径之间的交换,然而当极化码的码长较高、list数目较大时,硬件实现时会消耗大量的逻辑资源。对于硬件来说,逻辑资源一般很有限,而存储器资源较充足。所以本发明提出了一种路径存储架构,由L个P比特的寄存器和RAM存储器构成,用RAM 来存储路径信息,且考虑到RAM之间直接进行信息复制较为复杂,随着存储深度的增加消耗的时钟数也随之增大,我们采取指针索引的方式来避免上述问题。首先用L个P比特的寄存器存储L条路径的结果,在存储新译出的比特信息前,我们根据收到的路径索引信息来判断是否需要对这L个P长度寄存器之间做覆盖与交换。在P比特寄存器存满之后,我们用宽度为P、深度为N/P的RAM存储器来存储这些P长度的比特信息,用L个指针寄存器去记录每一组P比特属于哪条路径。最后,在所有L条译码结果均完成后,我们根据指向RAM 的指针索引来选择每条路径的结果输出依次从哪个RAM中读取。本发明提出的结构,需要的寄存器资源,即硬件中的逻辑资源,对于高码率、高list数目的极化码译码器,资源降低效果更显著。
部分和网络架构设计如图5所示,本发明提出的快速多节点SCL译码算法可以同时译出多个比特且比特数目不固定,那么相应的部分和更新网络较之逐比特译码的方式需要配合进行调整,所以本发明相应提出了一种适用于本算法的部分和架构,由寄存器、RAM存储器还有异或逻辑计算构成。图中展开的部分和网络(Unfolded PSN)完成的是长度为P的部分和的更新计算,同时根据路径指针索引完成L个P长度部分和之间的交换,保证L组部分和是对应于当下保留的L条路径。外部通过生成矩阵及部分和索引的复制更新来控制组与组之间部分和的更新计算,避免当路径出现交换时复杂的部分和信息之间的复制。
针对低资源消耗、高性能要求的场景,设计了另外一种基于SC网络串并结合的分批处理优化架构,为一种基于SC网络串并结合的极化码快速译码器,主要是针对路径数L较大时的SCL译码器,译码架构中并行的L路SC网络和较大的排序网络造成了不小的硬件资源开销,而且进行SC网络计算需要存储的中间LLR值占据的存储块数量非常大;故提出基于SC网络串并结合的分批处理优化架构,该架构包括SC计算网络,排序网络(完成路径的扩展和修剪),部分和计算单元;其中SC计算网络包括LLR信息存储模块、节点计算单元、路由单元;进一步的,LLR信息存储模块包括信道LLR存储器、内部LLR存储器。译码器接收到来自信道的对数似然比信息(LLR)先存储到信道LLR存储器中,节点计算单元完成内部节点的LLR计算,结果存储到内部LLR存储器中,路由单元用来选择从哪种LLR存储器中读取数据再传给节点计算单元,完成一批l路并行的SC网络计算后,进入排序网络,完成一批路径扩展和排序,当L路SC计算网络和排序均完成后,更新部分和结果以及存储路径信息,再回到SC计算网络中的节点计算单元重复上述步骤,直到译码完成。
所述的基于SC网络串并结合的极化码快速译码器,核心是将L路并行的L路SC计算网络和aL选L的排序网络降低了并行度,降低为l路并行,分批处理以节省存储器块数的消耗,且使得对各个批次数据,并行的l路SC计算网络和分批流水的缩减排序网络可以复用。此外,在新的SC网络分批处理的译码架构中,SC计算网络和排序网络是同时执行的,尽管由于不同节点的SC计算时延不同,两者不能在所有时间内同时执行,但也在相当的程度上提升了硬件利用效率(HUE)。
所述的排序网络,对各批次的SC计算结果是复用的,每批次并行的路数是l;同时在排序网络的两端设置深度为K的缓冲区域Buffer,来临时存储各个批次SC计算的输出结果,其中Buffer不需要另外开辟新的存储空间,与存储中间LLR信息的存储块复用。
所述的排序网络为流水架构的排序网络,该流水架构的排序网络至少设置有3个子排序网络,这3个子排序网络在各批次数据的处理中被不断复用;所述的3个子排序网络是同时工作的。
进一步的,所述的子排序网络中的1个子排序网络,为单层的并行比较,可将其合并到另外一个子排序网络之中;当所有批次的数据均通过流水架构的排序网络后,得到该次路径扩展及修剪的最终结果。
该分批处理优化架构带来适当的额外译码时延下,有效降低了SC网络和排序网络的硬件资源开销,并大幅降低中间LLR值占据的存储块数量,并且在一定程度上提升了硬件利用效率(HUE),是一种适用于较低资源消耗、高性能要求场景的快速多节点SCL译码架构。
综上所述,本发明的优点与积极效果在于:(1)通过引入Rate-1节点,提出了快速多节点SCL译码算法,有效降低了译码时延,利于硬件平台的实现;(2)提出了针对低延时场景的适用于硬件平台的快速多节点SCL译码器整体架构,重点给出了部分和网络,以及针对高码率、高list的情况设计了节约逻辑资源的路径存储单元;(3)提出了适用于低资源消耗、高性能要求场景的SCL译码器架构,大幅降低中间LLR值占据的存储块数量,并且在一定程度上提升了硬件利用效率。
附图说明
图1是基于polar码的SC译码因子图;
图2是本发明一种低延时高可靠的极化码快速译码器整体架构图;
图3是信道LLR和内部LLR存储器中对数似然比信息存储架构设计图,以码长N=8的极化码为例;
图4是路径信息存储单元中路径信息存储架构设计图;
图5是部分和网络架构设计图;
图6a是基于SC计算网络分批处理的快速多节点SCL译码架构;
图6b是基于SC计算网络分批处理的快速多节点SCL译码架构中SC网络结构框图;
图7是分批处理的SC计算网络;
图8是分批处理的排序网络;
图9a、9b是以(16,10)的极化码为例的码字分组示意图;
图10a、10b是快速多节点SCL算法性能对比曲线图。
具体实施方式
下面将结合附图和实施例对本发明作进一步的详细说明。
实施例1:首先,以码长N=16,信息位长度K=10的极化码为例,说明快速多节点SCL 算法的改进核心码字分组实现方法。M=2时,如图9a、9b所示,白色圆圈代表冻结位、黑色圆圈代表信息位。图9a表示原多节点SCL算法的码字分组结果,图9b表示本发明提出的一种低延时高可靠的极化码快速译码方法的码字分组结果,根据前面我们对Rate-1节点的阐述,图9b中的S6即为一个长度为4的Rate-1节点。
下图10a、10b分别给出了不同码率以及不同的list数目下的极化码误帧、误码性能对比,以1024码长为例,分别仿真了1/2(图10a)、2/3(图10b)两种码率,list数目为2和4,参数M=4,对于Rate-1节点选择节点内最不可靠的一个比特进行路径扩展。调制方式采用BPSK,信道为AWGN环境。不管是误码率(BER)还是误帧率(FER),快速多节点SCL算法较之简化多比特(SMSCL)算法几乎都没有性能损失。
实施例2:图2给出了译码器整体架构图,主要由存储单元(包括信道缓存器、信道LLR 存储器、内部LLR存储器、冻结集信息存储器、路径信息存储单元)、节点计算单元、路由单元、Rate-1节点处理单元、路径扩展与度量值计算单元、路径修剪单元以及部分和网络、指针存储单元构成。经过信道接收到的对数似然比信息(LLR)先存储到信道缓存器(Channel Buffer)中,然后按照设计的存储地址存到信道LLR存储器中,路由单元(RouteUnit)用来选择从哪种LLR存储器中读取数据传给计算模块,完成节点计算后根据冻结集信息判断节点类型,之后进入路径扩展和度量值计算模块,根据度量值结果进行路径删减,然后更新部分和结果以及路径存储信息,再回到节点计算模块重复上述步骤,直到译码完成最后一个比特,筛选出最可靠的一条路径输出译码结果。
信道LLR和内部LLR存储器中对数似然比信息(LLR)存储架构,如图3,具体实现过程如下:假设译码器的f、g节点计算并行度为P=2p,即一个时钟周期内并行计算P个f/g 节点,信道LLR和内部LLR信息均采用Q比特量化。图3给出的示例是码长N=8,并行度 P=2的译码器存储示意。对于一个码长为N=2n的极化码,根据前面的介绍,译码到第i层(1≤i≤n)时,可同时计算出2i-1个f/g节点,且计算第j(1≤j≤N)个节点时,需要第i+1 层的第j个节点的LLR(i+1,j)信息和LLR(i+1,j+2i-1)信息。此外,当i>p+1时,2i-1个节点数目大于并行度P,说明需要2i-1/P=2i-1-p个时钟周期数才能完成该层所有节点计算,而当 i≤p+1时,只需要一个时钟周期即可完成所有节点计算,且每次节点计算一个时钟周期内需要同时读出2P个前一层LLR信息,并计算出P个当前层的LLR信息。因此,我们设计采用两个双口RAM来存储内部LLR信息,每个RAM的宽度为PQ,深度为
对于信道LLR信息,只需要在进行第n层节点计算的时候读取即可,我们设计仍采用双口RAM存储,不过宽度为2PQ,深度为N/2P。
根据前面的分析,计算第i层的第j(1≤j≤N)个节点时,需要第i+1层的第j个节点的 LLR(i+1,j)信息和LLR(i+1,j+2i-1)信息,为了便于控制RAM读取数据的地址和存入数据的地址,我们设计了更适应这个节点计算顺序的存储方式。首先,对于经过信道接收到的LLR 信息,每P个LLR信息进行一次内部交织,此处交织指的是如果原始P个LLR的自然顺序序号用二进制(bpbp-1...b1)来表示,那么经过交织后,这P个LLR的新顺序序号变为(b1b2...bp)。对于内部计算出的LLR信息,我们采用两个双口RAM交替存储、同时读取的方式完成节点计算过程中信息的调度,因为双口RAM的读写地址可以不同,一个时钟同时读一个地址上的旧数据和写进另一个地址新的数据,所以当i≥p+1时,我们设计用于同一组P个LLR计算的2P个处于第i+1层LLR信息对应存储在两个RAM相同地址下,计算出的前组LLR值依次存在第一个RAM中,后2i-2-p组LLR值依次存在第二个RAM中;当i<p+1 时,计算出来的LLR信息均依次存在第一个RAM中。
路径信息存储单元中路径信息存储架构如图4,具体实现过程如下:首先,我们用L个 P比特的寄存器存储L条路径的结果,在存储新译出的比特信息前,我们根据收到的路径索引信息来判断是否需要对这L个P长度寄存器之间做覆盖与交换。其次,在P比特寄存器存满之后,我们用宽度为P、深度为N/P的RAM存储器来存储这些P长度的比特信息。根据我们前面的讨论,可知每组P比特长度的译码信息存进RAM时是属于当下路径的,但随着译码进程,同一个RAM中之前存进的各组P比特不一定仍属于当前路径。所以我们用L个指针寄存器去记录每一组P比特属于哪条路径。因为有L条路径需要标记,我们用log2 L比特存储每个指引,且有层地址,那么一共总的寄存器资源需要比特。此外,与复制更新内部P比特类似,我们同样需要根据路径指针索引去复制更新这L个指向RAM 的寄存器索引。最后,在所有L条译码结果均完成后,我们根据指向RAM的指针索引来选择每条路径的结果输出依次从哪个RAM中读取。本发明提出的结构,需要的寄存器资源可以进一步减少,即硬件中的逻辑资源,对于高码率、高list数目的极化码译码器,资源降低效果更显著。
部分和网络架构如图5,具体实现过程如下:部分和地址生成模块提供写地址和读地址给存储每组P个部分和的双口RAM,我们用L*log2L比特长度的寄存器存储记录指针信息,用于指示每一个RAM中各地址存储的数据属于哪条路径,根据每次路径修剪完成后的路径指针索引复制交换指向RAM的索引,特别注意的是当我们每次写P比特部分和信息进入RAM时,要初始化相应的指针从0到L-1。图5中的交换网络(SW)完成当路径发生覆盖时指针之间的复制交换,复制方式类似于路径信息索引的复制交换方式。根据这个指针信息,我们选择读取相应对应路径的RAM输出进行后续异或更新计算处理。
对于更新组与组之间的部分和异或计算,生成判断是否需要异或的信号由图4下半部分的结构生成。我们知道极化码的生成矩阵是极化码的部分和更新实际是一个编码过程。生成矩阵有如下性质:生成矩阵的第m行GN(m,:)可以由获得,其中S是2的整数次幂且m≥S,m可以被S整除;此外,生成矩阵连续的S行可以由获得。根据上述两个性质,可以通过与移位后的矩阵异或计算获得。G_ena是控制生成矩阵更新的信号。之后我们将RAM的写地址与进行与运算,如果结果为1,我们选择异或运算的结果作为最终部分和的输出并存在RAM的相应地址下,如果结果是0,我们选择展开的部分和网络的结果作为输出并存储在RAM中。本发明提出的部分和网络可以有效避免复杂的部分和复制与交换,且这种结构可以保证与节点计算流水完成,降低译码时延。
实施例3:
针对低资源消耗、高性能要求的场景,本发明设计了另外一种基于SC网络串并结合的分批处理优化架构,为一种基于SC网络串并结合的极化码快速译码器,如图6a,该架构包括SC计算网络,排序网络(完成路径的扩展和修剪),部分和计算单元;如图6b,其中的SC计算网络包括LLR信息存储模块、节点计算单元、路由单元;进一步的,LLR信息存储模块包括信道LLR存储器、内部LLR存储器。译码器接收到来自信道的对数似然比信息(LLR)先存储到信道LLR存储器中,节点计算单元完成内部节点的LLR计算,结果存储到内部LLR 存储器中,路由单元用来选择从哪种LLR存储器中读取数据再传给节点计算单元,完成一批 l路并行的SC网络计算后,进入排序网络,完成一批路径扩展和排序,当L路SC计算网络和排序均完成后,更新部分和结果以及存储路径信息,再回到SC计算网络中的节点计算单元重复上述步骤,直到译码完成。
将L路并行的L路SC计算网络和aL选L的排序网络降低了并行度,使得对各个批次数据,并行的l路SC计算网络和分批流水的缩减排序网络可以复用。此外,在新的SC网络分批处理的译码架构中,SC计算网络和排序网络是同时执行的,尽管由于不同节点的SC计算时延不同,两者不能在所有时间内同时执行,但也在相当的程度上提升了硬件利用效率(HUE)。
为降低L路SC网络的资源消耗,考虑降低并行处理的路数,设新的并行路数为l,并设 K=L/l,其硬件资源开销大致降低为原来的1/K;分批处理的SC网络结构如图7所示。图7中所示的路径扩展与修剪模块(即排序网络)对各批次的SC计算结果是复用的(每批次并行的路数是l);由于对不同的节点,其进行SC计算消耗的时钟数(对应计算经过的层数)不同,造成在某些情况下,排序网络需要等待SC计算送出的结果,而在另外的情况下,下一批 SC计算送出的结果先于排序网络处理完当前批次的SC计算结果,因此需要在排序网络的两端设置深度为K的缓冲区域Buffer,来临时存储各个批次SC计算的输出结果。Buffer不需要另外开辟新的存储空间,与存储中间LLR信息的存储块复用即可。
图8所示的流水排序网络结构适用于新的SC网络分批处理架构,新的分批处理排序网络需要实际例化的排序网络有3个,对应图中的S1、S2和S3,这三个小的排序网络在各批次数据的处理中被不断复用。设在SCL译码过程中,每译出M个比特时,每条路径都扩展出a条新的路径;当批次数量设定为K时,并行的l个SC计算网络将分批送出并扩展出共aL 个待筛选的路径度量值,对应每一批次,待筛选的路径度量值为对应排序网络S1的输入端。S1承担的功能是aL选L并将输出结果全排列。当第一批和第二批次的数据经过S1排序网络后,得到的两组L长有序排列经过S3排序网络得到较小的L个数值,再送到S2排序网络中得到这L个数值的全排列。S2排序网络的结构是2L选L全排序网络中S3对应层之后的上半部分子网络,其总层数为log2 L。之后批次数据进入该排序网络时,先通过S1排序网络得到输入数据的全排序,再和S2排序网络输出的结果,即之前批次筛选后输出的L个排列好的数据通过S3网络,再通过S2网络得到包括当前批次在内的所有数据筛选好的L个数据,并依次类推。图8所示的 S1、S2、S3三个排序网络是同时工作的,整个对应分批处理的排序网络是一个可以流水的架构。由于S3排序网络仅为单层的并行比较,可以考虑将其合并到S2排序网络之中。当所有批次的数据均通过排序网络后,得到该次路径扩展及修剪的最终结果。
Claims (3)
1.一种低延时高可靠的极化码快速译码方法,其特征在于:该方法步骤如下:
步骤1、根据极化码的信息位、冻结位分布,对于满足下述条件的节点视为Rate-1节点;条件为:节点内全部是信息位;1节点中第一个比特的位置数index被该节点长度length整除,即mod(index,length)=0;节点长度是2的整数次幂;对于Rate-1节点之外的比特,设定了一个参数M=2m,m为正整数,规定每个码组的长度Mi≥M,所含信息比特数目Ci≤M;
步骤2、按照传统SC译码蝶形图的f、g节点计算顺序,逐层更新对数似然比LLR信息,f和g节点的LLR计算公式如下:
步骤4、选择节点内相对不可靠的位置上的比特进行路径扩展;选择进行路径扩展的不可靠比特数目应满足:min(L-1,length),L表示路径list数目;即选择list数目减1和节点长度之间的最小值作为扩展比特数目;扩展出来的第l条路径的路径度量计算如下所示:
步骤5、对码组内所有信息位都进行路径扩展,路径度量值计算如下所示:
步骤6、对路径度量值进行从小到大排序,选择路径度量值最小的L个所对应的路径保留下来;
步骤7、更新部分和计算;
步骤8、返回步骤2,直到所有比特译码完成;
其中,信道LLR和内部LLR存储器中对数似然比信息LLR存储架构,具体实现过程如下:假设译码器的f、g节点计算并行度为P=2p,即一个时钟周期内并行计算P个f/g节点,信道LLR和内部LLR信息均采用Q比特量化;码长N=8,并行度P=2的译码器存储示意;对于一个码长为N=2n的极化码,译码到第i层(1≤i≤n)时,同时计算出2i-1个f/g节点,且计算第j(1≤j≤N)个节点时,需要第i+1层的第j个节点的LLR(i+1,j)信息和LLR(i+1,j+2i-1)信息;此外,当i>p+1时,2i-1个节点数目大于并行度P,需要2i-1/P=2i-1-p个时钟周期数才能完成该层所有节点计算,而当i≤p+1时,只需要一个时钟周期即完成所有节点计算,且每次节点计算一个时钟周期内需要同时读出2P个前一层LLR信息,并计算出P个当前层的LLR信息;采用两个双口RAM来存储内部LLR信息,每个RAM的宽度为PQ,深度为
对于信道LLR信息,只需要在进行第n层节点计算的时候读取即可,采用双口RAM存储,不过宽度为2PQ,深度为N/2P;
计算第i层的第j(1≤j≤N)个节点时,需要第i+1层的第j个节点的LLR(i+1,j)信息和LLR(i+1,j+2i-1)信息,为了便于控制RAM读取数据的地址和存入数据的地址,首先,对于经过信道接收到的LLR信息,每P个LLR信息进行一次内部交织,此处交织指的是如果原始P个LLR的自然顺序序号用二进制(bpbp-1...b1)来表示,那么经过交织后,这P个LLR的新顺序序号变为(b1b2...bp);对于内部计算出的LLR信息,采用两个双口RAM交替存储、同时读取的方式完成节点计算过程中信息的调度,因为双口RAM的读写地址不同,一个时钟同时读一个地址上的旧数据和写进另一个地址新的数据,所以当i≥p+1时,设计用于同一组P个LLR计算的2P个处于第i+1层LLR信息对应存储在两个RAM相同地址下,计算出的前组LLR值依次存在第一个RAM中,后2i-2-p组LLR值依次存在第二个RAM中;当i<p+1时,计算出来的LLR信息均依次存在第一个RAM中;
路径信息存储单元中路径信息存储架构具体实现过程如下:首先,用L个P比特的寄存器存储L条路径的结果,在存储新译出的比特信息前,根据收到的路径索引信息来判断是否需要对这L个P长度寄存器之间做覆盖与交换;其次,在P比特寄存器存满之后,用宽度为P、深度为N/P的RAM存储器来存储这些P长度的比特信息;根据前面的讨论,可知每组P比特长度的译码信息存进RAM时是属于当下路径的,但随着译码进程,同一个RAM中之前存进的各组P比特不一定仍属于当前路径;所以用L个指针寄存器去记录每一组P比特属于哪条路径;因为有L条路径需要标记,用log2 L比特存储每个指引,且有层地址,那么一共总的寄存器资源需要比特;此外,与复制更新内部P比特类似,同样需要根据路径指针索引去复制更新这L个指向RAM的寄存器索引;最后,在所有L条译码结果均完成后,根据指向RAM的指针索引来选择每条路径的结果输出依次从哪个RAM中读取;
部分和地址生成模块提供写地址和读地址给存储每组P个部分和的双口RAM,用L*log2L比特长度的寄存器存储记录指针信息,用于指示每一个RAM中各地址存储的数据属于哪条路径,根据每次路径修剪完成后的路径指针索引复制交换指向RAM的索引,特别注意的是当每次写P比特部分和信息进入RAM时,要初始化相应的指针从0到L-1;交换网络(SW)完成当路径发生覆盖时指针之间的复制交换,复制方式类似于路径信息索引的复制交换方式;根据这个指针信息,选择读取相应对应路径的RAM输出进行后续异或更新计算处理;
2.一种低延时高可靠的极化码快速译码器,其特征在于:该译码器由存储单元、节点计算单元、路由单元、Rate-1节点处理单元、路径扩展与度量值计算单元、路径修剪单元以及部分和网络、指针存储单元构成;其中存储单元包括信道缓存器、信道LLR存储器、内部LLR存储器、冻结集信息存储器、路径信息存储单元;
所述括信道缓存器用于存储经过信道接收到的对数似然比信息;所述信道LLR存储器用于存储设计的存储地址;所述路由单元用来选择从哪种LLR存储器中读取数据传给节点计算单元,完成节点计算后根据冻结集信息存储器中的码字分组信息判断节点类型,之后进入所述路径扩展与度量值计算单元;所述路径修剪单元用于根据度量值结果进行路径删减,然后更新部分和结果以及路径存储信息,再回到所述节点计算单元;
所述的信道LLR存储器和内部LLR存储器中对数似然比信息LLR的存储架构为:采用双口RAM对这两种LLR信息进行分开存储,信道LLR信息在译码进行到一半时就不再需要,继续读入下一帧数据;
设译码器的f、g节点计算并行度为P=2p,即一个时钟周期内并行计算P个f/g节点,信道LLR和内部LLR信息均采用Q比特量化;对于信道LLR信息,只需要在进行第n层节点计算的时候读取即可,设计采用双口RAM存储,宽度为2PQ,深度为N/2P;对于内部LLR信息采用两个双口RAM来存储内部LLR信息,每个RAM的宽度为PQ,深度为
所述的路径信息存储单元中路径存储架构为:由L个P比特的寄存器和RAM存储器构成,用RAM来存储路径信息;且采取指针索引的方式,以避免RAM之间直接进行信息复制较为复杂,随着存储深度增加消耗的时钟数也随之增大的问题;
所述的指针索引的方式,具体过程如下:首先用L个P比特的寄存器存储L条路径的结果,在存储新译出的比特信息前,根据收到的路径索引信息来判断是否需要对这L个P长度寄存器之间做覆盖与交换;在P比特寄存器存满之后,用宽度为P、深度为N/P的RAM存储器来存储这些P长度的比特信息,用L个指针寄存器去记录每一组P比特属于哪条路径;最后,在所有L条译码结果均完成后,根据指向RAM的指针索引来选择每条路径的结果输出依次从哪个RAM中读取;
所述的部分和网络架构为:由寄存器、RAM存储器还有异或逻辑计算构成;所述的部分和网络完成长度为P的部分和的更新计算,同时根据路径指针索引完成L个P长度部分和之间的交换,保证L组部分和是对应于当下保留的L条路径;外部通过生成矩阵及部分和索引的复制更新来控制组与组之间部分和的更新计算,避免当路径出现交换时复杂的部分和信息之间的复制。
3.一种低延时高可靠的极化码快速译码器,其特征在于:该译码器为一种基于SC网络串并结合的极化码快速译码器,包括SC计算网络,排序网络,部分和计算单元;其中SC计算网络包括LLR信息存储模块、节点计算单元、路由单元;进一步的,LLR信息存储模块包括信道LLR存储器、内部LLR存储器;来自信道的对数似然比信息先存储到信道LLR存储器中,节点计算单元完成内部节点的LLR计算,结果存储到内部LLR存储器中,路由单元选择从哪种LLR存储器中读取数据再传给节点计算单元,完成一批l路并行的SC网络计算后,进入排序网络,完成一批路径扩展和排序,当L路SC计算网络和排序均完成后,更新部分和结果以及存储路径信息,再回到SC计算网络中的节点计算单元重复,直到译码完成;所述的基于SC网络串并结合的极化码快速译码器,核心是将L路并行的L路SC计算网络和aL选L的排序网络降低了并行度,降低为l路并行,分批处理以节省存储器块数的消耗,且使得对各个批次数据,并行的l路SC计算网络和分批流水的缩减排序网络可以复用;此外,SC计算网络和排序网络是同时执行的;
所述的排序网络,对各批次的SC计算结果是复用的,每批次并行的路数是l;同时在排序网络的两端设置深度为K的缓冲区域Buffer,来临时存储各个批次SC计算的输出结果,其中Buffer不需要另外开辟新的存储空间,与存储中间LLR信息的存储块复用;所述的排序网络为流水架构的排序网络,该流水架构的排序网络至少设置有3个子排序网络,这3个子排序网络在各批次数据的处理中被不断复用;所述的3个子排序网络是同时工作的;
所述的子排序网络中的1个子排序网络,为单层的并行比较,将其合并到另外一个子排序网络之中;当所有批次的数据均通过流水架构的排序网络后,得到该次路径扩展及修剪的最终结果;
将L路并行的L路SC计算网络和aL选L的排序网络降低了并行度,使得对各个批次数据,并行的l路SC计算网络和分批流水的缩减排序网络可以复用;此外,在新的SC网络分批处理的译码架构中,SC计算网络和排序网络是同时执行的,尽管由于不同节点的SC计算时延不同,两者不能在所有时间内同时执行,但也在相当的程度上提升了硬件利用效率HUE;
为降低L路SC网络的资源消耗,考虑降低并行处理的路数,设新的并行路数为l,并设K=L/l,其硬件资源开销大致降低为原来的1/K;所示的路径扩展与修剪模块对各批次的SC计算结果是复用的;由于对不同的节点,其进行SC计算消耗的时钟数不同,造成在某些情况下,排序网络需要等待SC计算送出的结果,而在另外的情况下,下一批SC计算送出的结果先于排序网络处理完当前批次的SC计算结果,因此需要在排序网络的两端设置深度为K的缓冲区域Buffer,来临时存储各个批次SC计算的输出结果;Buffer不需要另外开辟新的存储空间,与存储中间LLR信息的存储块复用即可;
新的分批处理排序网络需要实际例化的排序网络有3个,这三个小的排序网络在各批次数据的处理中被不断复用;设在SCL译码过程中,每译出M个比特时,每条路径都扩展出a条新的路径;当批次数量设定为K时,并行的l个SC计算网络将分批送出并扩展出共aL个待筛选的路径度量值,对应每一批次,待筛选的路径度量值为对应排序网络S1的输入端;S1承担的功能是aL选L并将输出结果全排列;当第一批和第二批次的数据经过S1排序网络后,得到的两组L长有序排列经过S3排序网络得到较小的L个数值,再送到S2排序网络中得到这L个数值的全排列;S2排序网络的结构是2L选L全排序网络中S3对应层之后的上半部分子网络,其总层数为log2 L;之后批次数据进入该排序网络时,先通过S1排序网络得到输入数据的全排序,再和S2排序网络输出的结果,即之前批次筛选后输出的L个排列好的数据通过S3网络,再通过S2网络得到包括当前批次在内的所有数据筛选好的L个数据,并依次类推;S1、S2、S3三个排序网络是同时工作的,整个对应分批处理的排序网络是一个可以流水的架构;由于S3排序网络仅为单层的并行比较,考虑将其合并到S2排序网络之中;当所有批次的数据均通过排序网络后,得到该次路径扩展及修剪的最终结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911196785.3A CN111224680B (zh) | 2019-11-29 | 2019-11-29 | 一种低延时高可靠的极化码快速译码方法和译码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911196785.3A CN111224680B (zh) | 2019-11-29 | 2019-11-29 | 一种低延时高可靠的极化码快速译码方法和译码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111224680A CN111224680A (zh) | 2020-06-02 |
CN111224680B true CN111224680B (zh) | 2022-02-22 |
Family
ID=70832082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911196785.3A Active CN111224680B (zh) | 2019-11-29 | 2019-11-29 | 一种低延时高可靠的极化码快速译码方法和译码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111224680B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111614362A (zh) * | 2020-06-10 | 2020-09-01 | 重庆邮电大学 | 一种基于均匀量化的极化码快速简化串行抵消译码算法 |
CN111900999B (zh) * | 2020-07-16 | 2022-11-18 | 北京航空航天大学 | 一种面向卫星非连续通信的高性能极化编码方法及编码器 |
CN113193939A (zh) * | 2021-04-20 | 2021-07-30 | 上海微波技术研究所(中国电子科技集团公司第五十研究所) | 实现路径度量值排序网络的方法、系统及介质 |
CN113872613A (zh) * | 2021-09-30 | 2021-12-31 | 广州慧睿思通科技股份有限公司 | 极化码译码中g函数的计算方法、装置、电子设备及介质 |
CN115296676B (zh) * | 2022-08-04 | 2023-10-10 | 南京濠暻通讯科技有限公司 | 一种提升Polar译码LLR运算性能的方法 |
CN117135108B (zh) * | 2023-10-25 | 2024-02-13 | 苏州元脑智能科技有限公司 | 路由路径规划方法、路由请求处理方法、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107040262A (zh) * | 2017-03-28 | 2017-08-11 | 北京航空航天大学 | 一种计算polar码SCL+ CRC译码的List预测值的方法 |
CN108288970A (zh) * | 2017-01-09 | 2018-07-17 | 电信科学技术研究院 | 一种极化码编译码方法及装置 |
CN108768411A (zh) * | 2018-07-09 | 2018-11-06 | 中国计量大学 | 基于scl的极化码低复杂度分段译码器设计 |
CN110138390A (zh) * | 2019-06-12 | 2019-08-16 | 中国计量大学 | 一种基于深度学习的极化码sscl算法译码器 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3657684B1 (en) * | 2015-11-24 | 2022-08-31 | Coherent Logix Incorporated | Path sorting for list decoding for example for polar code decoding |
CN109075799B (zh) * | 2016-04-29 | 2024-03-15 | 华为技术有限公司 | 极化Polar码的编译码方法及装置 |
US10313056B2 (en) * | 2017-02-06 | 2019-06-04 | Mitsubishi Electric Research Laboratories, Inc. | Irregular polar code encoding |
CN108063649B (zh) * | 2017-12-14 | 2020-10-02 | 东南大学 | 一种低时延低复杂度的极化码译码方法 |
US10581465B2 (en) * | 2018-01-11 | 2020-03-03 | Samsung Electronics Co., Ltd | Special node (constituent code) processing for fast/simplified polar successive cancellation list (SCL) decoder |
CN109660264B (zh) * | 2018-12-03 | 2023-05-05 | 中国人民解放军陆军工程大学 | 高性能极化码译码算法 |
-
2019
- 2019-11-29 CN CN201911196785.3A patent/CN111224680B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108288970A (zh) * | 2017-01-09 | 2018-07-17 | 电信科学技术研究院 | 一种极化码编译码方法及装置 |
CN107040262A (zh) * | 2017-03-28 | 2017-08-11 | 北京航空航天大学 | 一种计算polar码SCL+ CRC译码的List预测值的方法 |
CN108768411A (zh) * | 2018-07-09 | 2018-11-06 | 中国计量大学 | 基于scl的极化码低复杂度分段译码器设计 |
CN110138390A (zh) * | 2019-06-12 | 2019-08-16 | 中国计量大学 | 一种基于深度学习的极化码sscl算法译码器 |
Non-Patent Citations (3)
Title |
---|
Fast Simplified Multi-Bit Successive-Cancellation List Decoding of Polar Codes and Implementation;xinjie dong等;《2019 IEEE International Symposium on Broadband Multimedia Systems and Broadcasting (BMSB)》;20190607;第1-5页 * |
Fast Successive-Cancellation-Based Decoders of Polar Codes;Maryam Haghighi Ardakani等;《IEEE TRANSACTIONS ON COMMUNICATIONS》;20190731;第67卷(第7期);第4562-4574页 * |
xinjie dong等.Fast Simplified Multi-Bit Successive-Cancellation List Decoding of Polar Codes and Implementation.《2019 IEEE International Symposium on Broadband Multimedia Systems and Broadcasting (BMSB)》.2019, * |
Also Published As
Publication number | Publication date |
---|---|
CN111224680A (zh) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111224680B (zh) | 一种低延时高可靠的极化码快速译码方法和译码器 | |
CN101106381B (zh) | 分层的低密度校验码译码器及译码处理方法 | |
CN110661533B (zh) | 优化译码器存储极化码译码性能的方法 | |
CN111786683B (zh) | 一种低复杂度的极化码多码块译码器 | |
CN101777921B (zh) | 用于显式存储片上系统的结构化ldpc码译码方法及装置 | |
CN101854177B (zh) | 一种高吞吐率的ldpc译码器 | |
CN106253911A (zh) | 一种软件极化码的连续消除列表译码方法 | |
CN108306652A (zh) | 一种低复杂度极化码ca-scl译码器 | |
CN102739261B (zh) | 多相加比选前向回溯Viterbi译码器 | |
CN109347486A (zh) | 低复杂度高吞吐率的5g ldpc编码器和编码方法 | |
CN101938330A (zh) | 一种多码率Turbo码译码器及其存储资源优化方法 | |
Mousavi et al. | Efficient partial-sum network architectures for list successive-cancellation decoding of polar codes | |
Zhang et al. | High‐Throughput Fast‐SSC Polar Decoder for Wireless Communications | |
CN112187286A (zh) | 应用于ccsds卫星深空通信的多模式ldpc译码器 | |
CN111431543A (zh) | 可变码长可变码率qc-ldpc译码方法及装置 | |
Liang et al. | Efficient stochastic successive cancellation list decoder for polar codes | |
CN1159933C (zh) | 通用的卷积编码器和维特比译码器 | |
CN110071726A (zh) | 多层单元闪存中联合ldpc码的构造方法及其译码装置 | |
CN110048805A (zh) | 低密度奇偶校验码的译码控制系统及方法、无线通信系统 | |
WO2018209541A1 (zh) | 基于t-设计的部分重复码的编码结构以及构造方法 | |
CN113965292A (zh) | 一种基于聚合构造的低复杂度极化码sc译码方法 | |
CN115296676B (zh) | 一种提升Polar译码LLR运算性能的方法 | |
Feng et al. | List-serial pipelined hardware architecture for SCL decoding of polar codes | |
Zhou et al. | An Efficient Parallel Successive Cancellation List Polar Decoder Based on GPUs | |
Wang et al. | Improved reduced latency soft-cancellation algorithm for polar decoding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |