一种提升polar
译码llr运算性能的方法
技术领域
1.本发明涉及polar码译码技术领域和无线通信领域,具体为一种提升polar译码llr运算性能的方法。
背景技术:
2.polar码的编码过程较为简单,而译码过程复杂度较高,常用的译码算法主要有:连续消除译码、置信传播译码、线性规划译码、连续消除列表译码、以及基于scl的ca-scl译码等。
3.而现有译码算法仍存在一些问题:对于置信传播译码算法来说,性能太低不可接受,实际应用中很少使用;连续消除译码算法当母码长度比较小时性能非常一般;ca-scl算法和scl算法都是树形结构的串行译码,树形结构的每一层都要llr计算,译码实现过程主要有llr计算、pm值计算,
路径排序、路径更新、输出译码比特等,通常一次译码一个bit,这样效率太低;因此有人提出了多bit group译码,从一个bit的llr扩展到多个bit的llr,一次译码多个bit,这样树形结构下的层号会相应的减少,蝶形迭代运算的轮数也会成比例的减少,虽然如此,但会成比例增加译码设计的复杂度和资源消耗,而译码所需的时间依然很长;其中llr由于需要多轮分层迭代运算,耗时最长,因此,减少llr计算的耗时可较大提升polar译码器的性能。
4.所以,人们需要一种提升polar译码llr运算性能的方法来解决上述问题,从llr运算并行度和运算中间数据的缓存控制方面来提升llr的运算效率,从而提升polar译码器的性能。
技术实现要素:
5.本发明的目的在于提供一种提升polar译码llr运算性能的方法,以解决上述背景技术中提出的问题。
6.为了解决上述技术问题,本发明提供如下技术方案:一种提升polar译码llr运算性能的方法,包括以下
步骤:
7.s101:将llr原始值存入
两个大小相同的ram中,层数s存入rom;
8.s102:同时从两个ram中读取llr值,同时读取s值,同时同步进行l条径的llr运算;
9.s103:llr运算,中间节点数据存取参照步骤s101;
10.s104:pm运算、路径排序、路径选择和路径更新;
11.s105:llr计算路径序号通过二维数组方式分层更新;
12.s106:llr计算路径序号更新后输出;
13.s107:llr中间缓存根据路径号和下一轮的层数分层更新数据;
14.s108:输出m bit译码结果,开始下一轮llr计算。
15.进一步的,在步骤s101中:将母码长度为n的序列的llr原始值串行存入两个大小相同的ram中,llr0到llr
n/2-1
存入第一个ram中,llr
n/2
到llr
n-1
存入第二个ram中;选择b并行
度进行存储,此时,存储的宽度为b个llr的位宽之和,深度为同时树形结构的层号s存入rom中不再变化。
16.进一步的,在步骤s102中:待最后一组llr存入ram中之后,同时读取两个ram中的数据,其中,两个读地址完全相同,并同时读取rom中的层号s;将两个ram的读数据同时赋给l个llr计算路径,此时,l个路径同时同步开始计算,并且计算的层号完全相同。
17.进一步的,在步骤s103中:每条路径都有两个ram缓存中间计算数据,那么l条路径共2*l个ram缓存中间计算数据,层号的最大值为s
max
=log2n,下面参照步骤s101的方式进行ram的读写:
18.假设每轮译码m个bit,从第s
max
层开始计算,一直计算到第log2m+1层,第s
max
层的计算结果中的前个llr值存入第一个ram,后个llr存入第二个ram中,按照b并行度,存储地址为0到同理,第s
max-1
层的计算结果存储地址为到第s
max-2
层的计算结果存储地址为到依次类推,到第log2m+4层和第log2m+3层的计算结果分别存入ram的最后两个地址,第log2m+2层和第log2m+1层计算结果存入到寄存器中,其中第log2m+1层的结果为本轮m个译码比特,一轮运算结束,待路径排序之后再进行下一轮计算;
19.本发明同时支持母码长度为和的情况,若母码长度为时计算从第s
max-1
层开始,为时计算从第s
max-2
层开始,其余均相同。
20.步骤s103具体包括以下步骤,下面具体实施同此操作:
21.步骤s201:设置共l条路径同时同步进行llr运算,每条路径使用2个ram缓存中间各层计算数据,每个ram的宽度为b个llr的位宽之和,深度为一直存到log2m+3层的计算结果;
22.步骤s202:层号的最大值为s
max
=log2n,计算从第s
max
层开始,一直计算到第log2m+1层,第s
max
层同时读取步骤s101中的两个ram,读地址相同,并将计算结果存储在两个ram的前个地址,第一个ram存储前个值,第二个ram存储后个值;
23.步骤s203:计算第s
max-1
层,同时读取第s
max
层两个计算结果ram,地址相同,并将计算结果存储在两个ram的到个地址中,第一个ram存储前个值,第二个ram存储后个值。后面依此类推;
24.步骤s204:第log2m+2层和第log2m+1层计算结果存入到寄存器中,一个时钟周期完成计算,第log2m+1层计算结果为本轮译码比特,送往后级进行后级运算处理。
25.进一步的,在步骤s104中:进行pm运算、路径排序、路径选择和路径更新。
26.进一步的,在步骤s105中:当下一轮的路径序号发生变化时,使用二维数组存储交换路径序号来进行ram数据交换的控制管理;二维数组的两个维度是层级:s
max
到log2m+1和路径值:0到l-1,每一层的路径初始值都相同,均为当前径的路径值。
27.进一步的,在步骤s106中:使用保留下来的l个路径号和当前层号读取二维数组中的旧值,并在下一个时钟周期,更新至新径的同一层,当前层号及以上的层使用旧值,以下的层使用新值,并将对应径和对应层的值读取出来用于llr计算中间缓存数据的交换更新。
28.进一步的,在步骤s107中:根据二维数组输出的路径值进行ram数据的交换更新,并将无需更新的旧值保存在原ram中,新值更新到更新后的路径缓存ram中。
29.进一步的,在步骤s108中:以此类推,完成轮llr计算和路径更新,最终输出n个译码结果,并进行后续的crc计算以校验译码结果是否正确。
30.进一步的,步骤s106、步骤s107、步骤s108具体内容包括:
31.步骤s301:将每一层的二维数组初始值均设为当前径的路径号;
32.步骤s302:接收本轮路径排序后保留下来的l条路径号和下一轮运算的层号;
33.步骤s303:根据路径号将二维数组中的旧值读出;
34.步骤s304:根据路径号和下一轮运算的层号将二维数组中的值读出,如路径0下一轮运算的层号是第s
max
或s
max-1
则读出的是路径0第s
max
层的值,若下一轮运算的层号是第s
max-2
则读出的是路径0第s
max-1
层的值,其余径和其余层依此类推,读出值用于llr中间缓存ram数据的交换;
35.步骤s305:在旧值读出后的下一周期,根据下一轮运算的层号和路径号将旧值更新至新路径对应的层,而其余层全部更新为新值:若下一轮待运算的是第s
max
层,则二维数组中每一层的路径值都是新值;若下一轮待运算的是第s
max-1
层,则二维数组第s
max
层的路径值为旧值,其余层的值为新值;若下一轮待运算的是第s
max-2
层,则二维数组第s
max
和s
max-1
层的路径值为旧值,其余层的值为新值;新值等于每条径的原始初值,旧值为二维数组读出的值;依此类推;
36.步骤s306:根据步骤s304输出的路径值更新llr中间缓存ram数据并做llr计算。
37.其中,polar码是指极化码,表示一类线性分组码;llr表示对数似然比;ram表示随机存储器;rom表示只读存储器;s表示树形结构的层号;bit表示比特,为信息量的最小单位;bit group译码表示比特组;crc表示循环冗余校验码,是数据通信领域中最常用的一种查错校验码。
38.与现有技术相比,本发明所达到的有益效果是:
39.本发明实施了一种提升polar译码llr运算性能的方法,通过
40.(1)设置合理的运算并行度,在可接受的复杂度下减少迭代运算的轮数以减少llr运算的时间;以母码长度为512(n=512)为例,采用4bit group(m=4)的方式译码运算,运算轮数为128轮,是单bit运算轮数的1/4;采用16并行度(b=16)位宽组合减少llr原始数据缓存的读写时间,读写时间为单个并行度的1/16;
41.(2)设置llr接收缓存为两个ram,顺序写入,同时读出,在不增加缓存的基础上节省读数据时间,读ram提升1倍效率,后续llr迭代运算各中间节点的结果缓存同样的方法写入读出,将读ram的效率提升1倍;
42.(3)选择合理的中间节点缓存ram的控制管理方式,分层交换和新旧值控制管理,使得未计算层级的数据交换不占用读写ram的时间;按优点(1)中示例,此部分理论上全部128轮的读写时间可节省3924个时钟周期;
43.(4)此方法可同时支持多种母码长度的llr运算,如连续3个candidate的母码长度分别为512、256和128,均可正常进行译码运算;对母码长度为512的场景来说,此方法128轮llr计算只需要476个时钟周期;
44.(5)在此方法基础上,还可以继续叠加其他方式;如l条路径早停,乒乓译码等,在增加少量复杂度和资源消耗的情况下,提升译码效率;
45.(6)此方法可用于但不限于polar译码器的llr运算,ldpc译码、mimo处理中llr计算,以及fft的迭代运算中都可使用本方法的全部或部分步骤处理。
46.其中,ldpc译码表示一种线性分组码,mimo表示用于无线通信的天线技术。
附图说明
47.附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
48.图1是本发明一种提升polar译码llr运算性能的方法的计算流程示意图;
49.图2为本发明一种提升polar译码llr运算性能的方法的llr运算路径更新实施例示意图;
50.图3为本发明一种提升polar译码llr运算性能的方法的实施例llr初始数据缓存示意图;
51.图4为本发明一种提升polar译码llr运算性能的方法的实施例llr中间数据缓存示意图;
52.图5为本发明一种提升polar译码llr运算性能的方法的实施例第9层llr计算示意图;
53.图6为本发明一种提升polar译码llr运算性能的方法的实施例第8层llr计算示意图。
具体实施方式
54.以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
55.请参阅图1-图6,本发明提供技术方案:一种提升polar译码llr运算性能的方法,包括以下步骤:
56.s101:将llr原始值存入两个大小相同的ram中,层数s存入rom;
57.s102:同时从两个ram中读取llr值,同时读取s值,同时同步进行l条径的llr运算;
58.s103:llr运算,中间节点数据存取参照步骤s101;
59.s104:pm运算、路径排序、路径选择和路径更新;
60.s105:llr计算路径序号通过二维数组方式分层更新;
61.s106:llr计算路径序号更新后输出;
62.s107:llr中间缓存根据路径号和下一轮的层数分层更新数据;
63.s108:输出m bit译码结果,开始下一轮llr计算。
64.进一步的,在步骤s101中:将母码长度为n的序列的llr原始值串行存入两个大小相同的ram中,llr0到llr
n/2-1
存入第一个ram中,llr
n/2
到llr
n-1
存入第二个ram中;选择b并行
度进行存储,此时,存储的宽度为b个llr的位宽之和,深度为同时树形结构的层号s存入rom中不再变化。
65.进一步的,在步骤s102中:待最后一组llr存入ram中之后,同时读取两个ram中的数据,其中,两个读地址完全相同,并同时读取rom中的层号s;将两个ram的读数据同时赋给l个llr计算路径,此时,l个路径同时同步开始计算,并且计算的层号完全相同。
66.进一步的,在步骤s103中:每条路径都有两个ram缓存中间计算数据,那么l条路径共2*l个ram缓存中间计算数据,层号的最大值为s
max
=log2n,下面参照步骤s101的方式进行ram的读写:
67.假设每轮译码m个bit,从第s
max
层开始计算,一直计算到第log2m+1层,第s
max
层的计算结果中的前个llr值存入第一个ram,后个llr存入第二个ram中,按照b并行度,存储地址为0到同理,第s
max-1
层的计算结果存储地址为到第s
max-2
层的计算结果存储地址为到依次类推,到第log2m+4层和第log2m+3层的计算结果分别存入ram的最后两个地址,第log2m+2层和第log2m+1层计算结果存入到寄存器中,其中第log2m+1层的结果为本轮m个译码比特,一轮运算结束,待路径排序之后再进行下一轮计算;
68.本发明同时支持母码长度为和的情况,若母码长度为时计算从第s
max-1
层开始,为时计算从第s
max-2
层开始,其余均相同。
69.步骤s103具体包括以下步骤,下面具体实施同此操作:
70.步骤s201:设置共l条路径同时同步进行llr运算,每条路径使用2个ram缓存中间各层计算数据,每个ram的宽度为b个llr的位宽之和,深度为一直存到log2m+3层的计算结果;
71.步骤s202:层号的最大值为s
max
=log2n,计算从第s
max
层开始,一直计算到第log2m+1层,第s
max
层同时读取步骤s101中的两个ram,读地址相同,并将计算结果存储在两个ram的前个地址,第一个ram存储前个值,第二个ram存储后个值;
72.步骤s203:计算第s
max-1
层,同时读取第s
max
层两个计算结果ram,地址相同,并将计算结果存储在两个ram的到个地址中,第一个ram存储前个值,第二个ram存储后个值。后面依此类推;
73.步骤s204:第log2m+2层和第log2m+1层计算结果存入到寄存器中,一个时钟周期完成计算,第log2m+1层计算结果为本轮译码比特,送往后级进行后级运算处理。
74.进一步的,在步骤s104中:进行pm计算、路径排序、路径选择和路径更新;
75.进一步的,在步骤s105中:当下一轮的路径序号发生变化时,使用二维数组存储交换路径序号来进行ram数据交换的控制管理;二维数组的两个维度是层级:s
max
到log2m+1和路径值:0到l-1,每一层的路径初始值都相同,均为当前径的路径值。
76.进一步的,在步骤s106中:使用保留下来的l个路径号和当前层号读取二维数组中的旧值,并在下一个时钟周期,更新至新径的同一层,当前层号及以上的层使用旧值,以下的层使用新值,并将对应径和对应层的值读取出来用于llr计算中间缓存数据的交换更新。
77.进一步的,在步骤s107中:根据二维数组输出的路径值进行ram数据的交换更新,并将无需更新的旧值保存在原ram中,新值更新到更新后的路径缓存ram中。
78.进一步的,在步骤s108中:以此类推,完成轮llr计算和路径更新,最终输出n个译码结果,并进行后续的crc计算以校验译码结果是否正确。
79.进一步的,步骤s106、步骤s107、步骤s108具体内容包括:
80.步骤s301:将每一层的二维数组初始值均设为当前径的路径号;
81.步骤s302:接收本轮路径排序后保留下来的l条路径号和下一轮运算的层号;
82.步骤s303:根据路径号将二维数组中的旧值读出;
83.步骤s304:根据路径号和下一轮运算的层号将二维数组中的值读出用于llr中间缓存ram数据的交换,如路径0下一轮运算的层号是第s
max
或s
max-1
则读出的是路径0第s
max
层的值,若下一轮运算的层号是第s
max-2
则读出的是路径0第s
max-1
层的值,其余径和其余层依此类推;
84.步骤s305:在旧值读出后的下一周期,根据下一轮运算的层号和路径号将旧值更新至新路径对应的层,而其余层全部更新为新值:若下一轮待运算的是第s
max
层,则二维数组中每一层的路径值都是新值;若下一轮待运算的是第s
max-1
层,则二维数组第s
max
层的路径值为旧值,其余层的值为新值;若下一轮待运算的是第s
max-2
层,则二维数组第s
max
和s
max-1
层的路径值为旧值,其余层的值为新值;新值等于每条径的原始初值,旧值为二维数组读出的值;依此类推;
85.步骤s306:根据步骤s304输出的路径值更新llr中间缓存ram数据并做llr计算。
86.其中,polar码是指极化码,表示一类线性分组码;llr表示对数似然比;ram表示随机存储器;rom表示只读存储器;s表示树形结构的层号;bit表示比特,为信息量的最小单位;bit group译码表示比特组;crc表示循环冗余校验码,是数据通信领域中最常用的一种查错校验码。
87.实施例一:
88.设定母码长度n=512,m=4(每轮译码4bit),b=16(并行度),l=8(保留8条径),则s
max
=9,需要从第9层计算到第3层,以上设定值均可按照前述规则改变。
89.在步骤s101中:设定两个llr原始值缓存ram,存储方式如图3所示,共512个llr,每个地址存16个,共需要32个地址,每个ram深度为16;
90.在步骤s102中:第9层运算时,同时读出s101步骤中两个ram中相同地址的数据,如同时读出地址0的数据,将llr0和llr
256
进行运算,llr1和llr
257
进行运算,依此类推;将计算后的256个llr中间值存储到两个ram中,存储方式如图4所示,第9层的计算结果前128个存入ram0,后128个存入ram1,每个地址存16个,共需要16个地址,每个ram为地址0到地址7,其中第9层计算如图5所示。
91.在步骤s103中:第8层运算时,同时读出两个中间缓存ram中第9层结果缓存的地址,如同时读出地址0的数据,将llr0和llr
128
进行运算,llr1和llr
129
进行运算,依此类推;将
计算后的128个llr中间值存储到两个ram中,存储方式如图4所示,第8层的计算结果前64个存入ram0,后64个存入ram1,每个地址存16个,共需要8个地址,每个ram为地址8到地址11,其中第8层计算如图6所示。后面层的计算依此类推,并将第3层的结果作为本轮译码的4个bit输出到后级模块做路径度量、路径排序、路径选择和路径更新等计算操作。
92.在步骤s105中:将llr中间结果缓存的交换单独处理,使用二维数组的方式,如图2所示;两个维度分别是层号(9-3)和路径号(0-7),原始值都为当前径的路径号,路径0各层的路径号都是0,路径1的路径号都是1,依此类推;当每次接收到路径选择后保留的8条路径号时,根据输入的下一轮开始计算的层号,将二维数组的历史值读出,并在下一个时钟周期更新到对应的路径和对应的层。如路径0和路径1需要交换,下一轮从第9层开始运算,则所有径的每一层的路径号都为当前径的原始值,即路径0的所有层的路径号都为0,路径1的路径号都是1,依此类推。若下一轮从第8层开始运算,则路径0第9层的路径号为上一周期路径1读出来的旧值,其他层均为新值,全为0,路径1第9层的路径号为上一周期路径0读出来的旧值,其它层均为新值,全为1;若下一轮从第7层开始运算,则路径0第9和第8层的路径号为上一周期路径1读出来的旧值,其他层均为新值,全为0,路径1第9和第8层的路径号为上一周期路径0读出来的旧值,其他层均为新值,全为1;依此类推。
93.在步骤s106中:在读取旧值的同一时钟周期,根据下一轮开始运算的层号,读取当前径二维数组中的路径号。如下一轮从第9或第8层计算,读取各路径的第9层的路径号,下一轮从第7层计算,读取各路径的第8层的路径号,下一轮从第6层计算,读取各路径的第7层的路径号,依此类推,读出的路径号用于llr计算中间结果缓存交换;
94.在步骤s107中:根据步骤s106中读出的路径号进行llr计算中间结果缓存交换,如路径0和路径1交换,下一轮从第9层开始运算,将同第一轮的第9层运算一样读取数据,缓存中间结果;若下一轮从第8层开始运算,则路径0读取路径1两个ram的0-7地址中的数据进行运算,同时路径1读取路径0两个ram的0-7地址中的数据进行运算,路径0的计算结果写入路径0的两个ram中8-11地址,路径1的计算结果写入路径1的两个ram中8-11地址;若下一轮从第7层开始运算,则路径0读取路径1两个ram的8-11地址中的数据进行运算,同时路径1读取路径0两个ram的8-11地址中的数据进行运算,路径0的计算结果写入路径0的两个ram中12-13地址,路径1的计算结果写入路径1的两个ram中12-13地址,且各自路径2个ram中0-7地址的数据不用读取和交换;其他层依此类推。
95.最后应说明的是:以上所述仅为本发明的优选实例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:
1.一种提升polar译码llr运算性能的方法,其特征在于:一种提升polar译码llr运算性能的方法包括以下步骤:s101:将llr原始值存入两个大小相同的ram中,层数s存入rom;s102:同时从两个ram中读取llr值,同时读取s值,同时同步进行l条径的llr运算;s103:llr运算,中间节点数据存取参照步骤s101;s104:pm运算、路径排序、路径选择和路径更新;s105:llr计算路径序号通过二维数组方式分层更新;s106:llr计算路径序号更新后输出;s107:llr中间缓存根据路径号和下一轮的层数分层更新数据;s108:输出m bit译码结果,开始下一轮llr计算。2.根据权利要求1所述的一种提升polar译码llr运算性能的方法,其特征在于:在步骤s101中:将母码长度为n的序列的llr原始值串行存入两个大小相同的ram中,llr0到llr
n/2-1
存入第一个ram中,llr
n/2
到llr
n-1
存入第二个ram中;选择b并行度进行存储,此时,存储的宽度为b个llr的位宽之和,深度为同时树形结构的层号s存入rom中不再变化。3.根据权利要求2所述的一种提升polar译码llr运算性能的方法,其特征在于:在步骤s102中:待最后一组llr存入ram中之后,同时读取两个ram中的数据,其中,两个读地址完全相同,并同时读取rom中的层号s;将两个ram的读数据同时赋给l个llr计算路径,此时,l个路径同时同步开始计算,并且计算的层号完全相同。4.根据权利要求3所述的一种提升polar译码llr运算性能的方法,其特征在于:在步骤s103中:每条路径都有两个ram缓存中间计算数据,那么l条路径共2*l个ram缓存中间计算数据,层号的最大值为s
max
=log2n,下面参照步骤s101的方式进行ram的读写:假设每轮译码m个bit,从第s
max
层开始计算,一直计算到第log2m+1层,第s
max
层的计算结果中的前个llr值存入第一个ram,后个llr存入第二个ram中,按照b并行度,存储地址为0到同理,第s
max-1
层的计算结果存储地址为到第s
max-2
层的计算结果存储地址为到依次类推,到第log2m+4层和第log2m+3层的计算结果分别存入ram的最后两个地址,第log2m+2层和第log2m+1层计算结果存入到寄存器中,其中第log2m+1层的结果为本轮m个译码比特,一轮运算结束,待路径排序之后再进行下一轮计算;本发明同时支持母码长度为和的情况,若母码长度为对计算从第s
max-1
层开始,为时计算从第s
max-2
层开始,其余均相同。5.根据权利要求4所述的一种提升polar译码llr运算性能的方法,其特征在于:在步骤s104中:进行pm计算、路径排序、路径选择和路径更新,具体包括以下步骤:步骤s201:设置共l条路径同时同步进行llr运算,每条路径使用2个ram缓存中间各层计算数据,每个ram的宽度为b个llr的位宽之和,深度为一直存到log2m+3层的计算结果;步骤s202:层号的最大值为s
max
=log2n,计算从第s
max
层开始,一直计算到第log2m+1层,
第s
max
层同时读取步骤s101中的两个ram,读地址相同,并将计算结果存储在两个ram的前个地址,第一个ram存储前个值,第二个ram存储后个值;步骤s203:计算第s
max-1
层,同时读取第s
max
层两个计算结果ram,地址相同,并将计算结果存储在两个ram的到个地址中,第一个ram存储前个值,第二个ram存储后个值;后面依此类推;步骤s204:第log2m+2层和第log2m+1层计算结果存入到寄存器中,一个时钟周期完成计算,第log2m+1层计算结果为本轮译码比特,送往后级进行后级运算处理。6.根据权利要求5所述的一种提升polar译码llr运算性能的方法,其特征在于:在步骤s105中:当下一轮的路径序号发生变化时,使用二维数组存储交换路径序号来进行ram数据交换的控制管理;二维数组的两个维度是层级:s
max
到log2m+1和路径值:0到l-1,每一层的路径初始值都相同,均为当前径的路径值。7.根据权利要求6所述的一种提升polar译码llr运算性能的方法,其特征在于:在步骤s106中:使用保留下来的l个路径号和当前层号读取二维数组中的旧值,并在下一个时钟周期,更新至新径的同一层,当前层号及以上的层使用旧值,以下的层使用新值,并将对应径和对应层的值读取出来用于llr计算中间缓存数据的交换更新。8.根据权利要求7所述的一种提升polar译码llr运算性能的方法,其特征在于:在步骤s107中:根据二维数组输出的路径值进行ram数据的交换更新,并将无需更新的旧值保存在原ram中,新值更新到更新后的路径缓存ram中。9.根据权利要求8所述的一种提升polar译码llr运算性能的方法,其特征在于:在步骤s108中:以此类推,完成轮llr计算和路径更新,最终输出n个译码结果,并进行后续的crc计算以校验译码结果是否正确。10.根据权利要求9所述的一种提升polar译码llr运算性能的方法,其特征在于:步骤s106、步骤s107、步骤s108具体内容包括:步骤s301:将每一层的二维数组初始值均设为当前径的路径号;步骤s302:接收本轮路径排序后保留下来的l条路径号和下一轮运算的层号;步骤s303:根据路径号将二维数组中的旧值读出;步骤s304:根据路径号和下一轮运算的层号将二维数组中的值读出用于llr中间缓存ram数据的交换,如路径0下一轮运算的层号是第s
max
或s
max-1
则读出的是路径0第s
max
层的值,若下一轮运算的层号是第s
max-2
则读出的是路径0第s
max-1
层的值,其余径和其余层依此类推;步骤s305:在旧值读出后的下一周期,根据下一轮运算的层号和路径号将旧值更新至新路径对应的层,而其余层全部更新为新值:若下一轮待运算的是第s
max
层,则二维数组中每一层的路径值都是新值;若下一轮待运算的是第s
max-1
层,则二维数组第s
max
层的路径值为旧值,其余层的值为新值;若下一轮待运算的是第s
max-2
层,则二维数组第s
max
和s
max-1
层的路径值为旧值,其余层的值为新值;新值等于每条径的原始初值,旧值为二维数组读出的值;依此类推;步骤s306:根据步骤s304输出的路径值更新llr中间缓存ram数据并做llr计算。
技术总结
本发明公开了一种提升Polar译码LLR运算性能的方法,包括以下步骤:S101:将LLR原始值存入两个大小相同的RAM中,层数S存入ROM;S102:同时从两个RAM中读取LLR值,同时读取S值,同时同步进行L条径的LLR运算;S103:LLR运算,中间节点数据存取参照步骤S101;S104:PM运算、路径排序、路径选择和路径更新;S105:LLR计算路径序号通过二维数组方式分层更新;S106:LLR计算路径序号更新后输出;S107:LLR中间缓存根据路径号和下一轮的层数分层更新数据;S108:输出Mbit译码结果,开始下一轮LLR计算;从LLR运算并行度和运算中间数据的缓存控制方面来提升LLR的运算效率,从而提升polar译码器的性能。的性能。的性能。
技术研发人员:
常云飞 陈平 张楠 杨坤 潘蓉 李淼
受保护的技术使用者:
南京濠暻通讯科技有限公司
技术研发日:
2022.08.04
技术公布日:
2022/11/3