具体实施方式
分析现有Turbo译码器和CTC译码器,可以看出,两种的译码方式的相同处是两者的分量码都采用了递归系统码:两种编码方式的分量码编码器都采用了递归系统码,分量码编码器的结构比较类似,编码器由两个子编码器C1和C2并行级联组成的,因此都可以采用MAX_LOG_MAP(最大后验概率)算法实现译码功能。但CTC译码方式只能采用基4或者基8的方式,基8的方式通常较复杂,而且采用基4的方式就可以满足系统的吞吐量和延时。为了共享译码硬件资源,Turbo译码和CTC译码都可以采用基4的译码方式,图4和图5是两种译码方式的状态转移图。
图4中,S、P1、P2分别为系统比特、校验比特1和校验比特2;图5中,A和B代表两路并行的系统位,Y1和Y2代表两路并行的校验1;W1和W2代表两路并行的校验2。
可以看出两者的状态转移有差异,但流程相同。
两种译码方式不同之处还包括以下几点:
①Turbo码采用了尾比特归零法使编码状态归零:尾比特被加到信息比特后面,然后进行编码,这样保证格栅回到特定的状态。CTC码采用了tailbiting的方法,即在编码过程结束时,编码器重新回到了初始状态,所以它不需要额外的尾比特,所以是面向分组的turbo码。
②不同协议间交织方式不同。由于不同协议对码块长度的定义不同,包长不同,所以交织表参数表也不同。同时交织地址的产生公式不同;
通过以上分析,可以看出四种制式可以共同采用基4MAX_LOG_MAP算法实现译码功能,只是在跳转状态机、尾比特的处理以及交织解交织的处理加上制式的判断分别处理即可。
下面结合附图和具体实施例对本发明所述技术方案作进一步的详细描述,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
显然,本文所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明译码方法实施例,如图6所示,所述译码方法包括:
步骤601:接收参数和译码数据,并按奇偶比特分别缓存所述译码数据的各组信息;
所述译码数据包括三组信息,LTE/UMTS/TD三种制式下,所述三组信息分别为系统比特、校验比特1和校验比特2,WiMAX制式下,所述三组信息分别为A/B(相当于系统位)、Y(相当于校验1,包括Y1和Y2)、W(相当于校验2,包括W1和W2)。
可理解地,以上各组信息还包括其各自的尾比特。
根据制式和参数信息,把接收到的码块分成若干个子块,按照一定的方式(如奇偶分开)分别存储在不同的RAM里。LTE/UMTS/TD-SCDMA时,系统比特/校验比特按奇偶存储,如图7所示;WiMAX时,A/B/Y/W奇偶分开存储,如图8所示。
步骤602:读取缓存的数据,并根据输入译码数据所属制式对应的状态转移图进行译码,得到LLR(Log Likelihood Ratio,最大似然比)译码结果;
具体可采用基4或基8算法的状态转移图进行译码,若采用基4算法,则译码数据的各组信息(包括先验信息)存储在2个RMA组中。
不同制式下,采取不同的并行策略。比如,LTE和WiMAX制式下,由于并行多路之间的交织的不冲突特性,可以同时进行多个(基4的时候,一般分成4个PU(Processing Unit,处理单元),这时可以满足系统要求)Max-Log-MAP计算。同时得到4个先验信息和硬判结果;UMTS/TD-SCDMA制式时,交织无规律,只能采取串行一个窗处理完,再处理下一个窗的处理方式,即采用一个处理单元进行处理。
如图9所示,译码过程包括如下步骤:
步骤901:从缓存的原始地址读取系统比特、校验比特1或读取系统比特、校验比特1和第一先验信息进行MAP1计算得到第二先验信息及MAP1的LLR信息;
步骤902:对系统比特及第二先验信息的原始地址进行交织处理,分别得到各自的交织地址;
步骤903:从缓存的原始地址读取校验比特2以及根据所述交织地址读取交织后的系统比特及第二先验信息进行MAP2计算得到第三先验信息、LLR译码结果及MAP2的LLR信息;
步骤904:对所述第三先验信息的原始地址及所述LLR译码结果进行解交织得到解交织地址,根据所述第三先验信息的解交织地址缓存所述第三先验信息,根据所述LLR译码结果的解交织地址读取本次迭代的LLR译码结果,该LLR译码结果用于硬判决;
所述第一先验信息是上次迭代的第三先验信息。
具体地,LTE和WiMAX制式下,与多路并行架构对应,也采取奇偶分开同时地址交织计算的方式;UMTS制式下不支持并行交织,则不分奇偶,采取单路串行计算的方式。
具体地,根据从输入的译码相关的参数把码块分成2或4路等多路并行的方式进行MAP1和MAP2计算。具体地分几路并行需要根据译码数据所属的制式以资源利用率最高为原则进行灵活设置,本发明对此不作限定。
对一个滑窗内的缓存数据进行MAP1计算和MAP2计算的过程,在不同制式下,计算每个窗内的gamma,alpha,beta,LLR时,只需要根据3GPP和WiMAX制式的状态转移图的特点,仅对输入的系统比特、校验比特以及先验信息的端口例化次序进行变化,内部复用1套计算单元,节省面积资源。所谓端口例化次序:对于硬件设计来讲,可以复用一套硬件计算单元,而由于图4和图5中的状态转移图不同,因此例化时需要调整端口例化的顺序。在并行处理的每1个PU(处理单元)内,等所有窗处理完毕后,再进行MAP2的计算。MAP2的计算与MAP1相似,只是输入的数据按照交织地址读取。
在1个滑窗内的数据流如图10所示,图中两个虚线框分别显示了滑窗后半部分的正向计算和滑窗前半部分的逆向计算的数据流向。数据流单方向进行。
具体地,包括:
步骤801:按正序读取滑窗内的缓存数据,计算gamma、alpha,并缓存alpha;按逆序读取滑窗内的缓存数据计算gamma、beta,并缓存bet a;
拿系统比特举例来说,所谓正序就是从输入的系统比特的第一个数据开始依次向后计算;所谓的逆序就是从系统比特的最后一个数据开始向前计算。通过正向和逆向的gama值来判断最终图4和图5的跳转结果。
步骤802:从对撞点开始根据按正序计算得到的gamma、alpha以及按逆序计算计算缓存的beta,计算滑窗后半部分的LLR信息;从对撞点开始根据按逆序计算得到的gamma、beta以及按正序计算缓存的alpha,计算滑窗前半部分LLR信息;
步骤803:根据按正序读取滑窗内的缓存数据和滑窗后半部分的LLR信息得到滑窗前半部分的LLR译码结果、先验信息及LLR信息;根据按逆序读取滑窗内的缓存数据和滑窗前半部分的LLR信息滑窗后半部分的LLR信息得到的LLR信息得到滑窗后半部分的LLR译码结果、先验信息及LLR信息;
公知的,MAP1的LLR译码结果不用于最后的硬判决,因此可以丢弃;MAP1计算得到的LLR信息包括软信息系统比特(LLR-sys)和软信息校验比特1(LLR-p0);MAP2计算得到的LLR信息包括软信息校验比特2(LLR-p1)。
步骤804:对滑窗前半部分的LLR信息以及滑窗后半部分的LLR信息进行排序,得到该滑窗的LLR信息。
步骤603:对每次迭代的LLR译码结果进行硬判决,输出硬判决结果。
具体地,输出硬判决结果前,完成1次迭代(包括MAP1和MAP2)后,判断所述LLR译码结果是否符合终止迭代的条件,符合条件时,输出所述硬判决结果,否则进行下一次迭代译码,直至最大的迭代次数。
如,LTE时,可以判断CRC是否正确,或者相邻两次译码硬判是否相等;UMTS和WiMAX时,判断相邻两次的译码硬判是否相等。
本发明方法将四种制式译码方法有效的整合,并进行译码资源共享,最大程度节省了资源,使系统更加紧凑。
为了实现上述方法,本发明提供了一种译码装置,如图11所示,所述译码装置包括:
输入控制单元,用于接收参数和译码数据,并按奇偶比特分别缓存所述译码数据的各组信息;
具体地,输入控制单元,负责译码器与外部模块(HDI、BD调度和数据调度模块)的握手交互、译码参数和数据的乒乓控制以及参数接收和解析,输出解析后的参数和译码数据(也称为译码比特信息),所述译码数据包括正常信息比特(系统、校验1和校验2)和尾比特。
译码比特信息分离后得到正常信息比特和尾比特。
所述译码数据包括三组信息,LTE/UMTS/TD-SCDMA三种制式下,所述三组信息分别为系统比特级、校验比特级1和校验比特2,WiMAX制式下,所述三组信息分别为A/B(相当于系统位)、Y(相当于校验1,包括Y1和Y2)、W(相当于校验2,包括W1和W2)。
缓存单元,用于存储各组信息及先验信息;先验信息是MAP1、MAP2计算后得到的,其初始状态是0。
译码单元,优选地,采用基4算法,用于读取缓存的数据,并根据输入译码数据所属制式对应的状态转移图进行译码,得到LLR译码结果;
具体地,译码单元根据从输入控制模块解析后的译码相关的参数把码块分成2、4路并行处理单元。
输出控制单元,主要功能是将内部的比特位宽的硬判决结果转化成接口的比特位宽的硬判决结果输出,包括用于对每次迭代的LLR译码结果进行硬判决,输出硬判决结果。
优选地,所述输出控制模块,还用于判断LLR译码结果是否符合终止迭代的条件,符合条件时,输出所述硬判决结果,否则通知所述译码单元进行下一次迭代译码,直至最大的迭代次数。
可选地,所述译码单元包括交织模块、MAP计算模块,其中:
交织模块,用于对MAP计算模块的输入信息的读地址或输出信息的写地址进行交织、解交织处理,得到交织地址或解交织地址;
MAP计算模块,用于根据原始地址、交织地址或解交织地址读取数据进行MAP1计算以及MAP2计算。
在LTE和WiMAX制式下,所述MAP计算模块采用多路并行的方式进行MAP1计算和MAP2计算。
具体地,如图12所示,所述MAP计算模块包括:
正序计算子模块用于按正序读取滑窗内的缓存单元缓存的数据,计算gamma、alpha,并缓存alpha;
逆序计算子模块,用于按逆序读取滑窗内的缓存单元缓存的数据计算gamma、beta,并缓存bet a;
正序LLR计算子模块,用于从对撞点开始根据按正序计算得到的gamma、alpha以及按逆序计算计算缓存的beta,计算滑窗后半部分的LLR信息;
逆序LLR计算子模块,用于从对撞点开始根据按逆序计算得到的gamma、beta以及按正序计算缓存的alpha,计算滑窗前半部分LLR信息;
正序输出数据计算子模块,用于根据按正序读取滑窗内的缓存单元缓存的数据和滑窗后半部分的LLR信息得到滑窗前半部分的LLR译码结果、先验信息及LLR信息;
逆序输出数据计算子模块,用于根据按逆序读取滑窗内的缓存单元缓存的数据和滑窗前半部分的LLR信息滑窗后半部分的LLR信息得到的LLR信息得到滑窗后半部分的LLR译码结果、先验信息及LLR信息;
译码结果排序模块,用于对滑窗前半部分的LLR信息以及滑窗后半部分的LLR信息进行排序,得到该滑窗的LLR信息。
译码装置的整体架构框图如图13所示。该框架图中缓存单元包括先验信息处理模块、系统比特处理模块、校验比特处理模块,分别用于缓存先验信息、系统比特、校验1和校验2,具体的是各组信息奇偶比特分别存储在2个RMA组中。
该架构最大程度的共享四种制式译码的硬件资源,减小为支持四种制式造成的资源提升。同时在该架构上可以支持Turbo-sic和超级小区的功能,只是加上部分逻辑便可实现。相对于简单的模块堆叠实现的Turbo译码器,上述方法的优势显而易见。
解决目前多制式共模块的场景下,不同制式的Turbo译码器资源共享的问题,并能够有效的降低系统成本和功耗。
下面结合译码装置,并以LTE制式下CB(Code Block,码块)码块大小为6144,进行一次重传数据为例对本发明译码方法的处理步骤进行详细的描述。
第一步,读入数据并按照奇偶方式存储。
整体上采取基4Max-Log-MAP的算法架构,便于3GPP制式和WiMAX制式下的译码器复用一套MAP计算模块,尽可能的节省逻辑资源。
译码器的输入是按照数据传输块处理,因此对于LTE/UMTS/TD三种制式的输入是按照CB(Code Block,码块)传输,由3组长度都为K+4的系统比特、校验比特1和校验比特2组成;WiMAX制式的输入是按照FEC(前向纠错,Forward Error Correction)块传输,由3组长度K的A/B、Y、W组成。为了便于译码器按照基4方式读取数据,因此输入的三组数据按照奇偶进行存储在2块RAM里。四种制式按照奇偶缓存的格式如图7和图8所示。
以LTE制式下,码块大小为6144的CB为例,由于输入数据是软比特,将数据读入后,数据是按照系统位、校验1和校验2三路并行输入,同时每路带4比特的尾比特。并行的三路数据按照奇偶进行缓存,每个缓存的逻辑大小为3074×8。实现时,为了提高RAM的读带宽,3074个软信息分4个物理RMA组存储,每个RMA组的深度为768。
第二步,MAP1处理。
当全部输入数据全部缓存到相应的缓存模块后,便启动MAP计算模块。这里为了提高系统并行度,采用4路并行的基4处理,因此MAP1处理模块4个并行的max_log处理电路。对系统、校验以及先验信息(可理解地,第一次MAP1计算没有先验信息)传送的三路数据进行max-scale(一种MAP计算的算法)的计算。采用前向反向同时对撞计算的方式,旨在减小译码时延。max_log处理包括gamma、alpha、beta、LLR、LLR译码结果和先验信息计算功能,最终输出LLR译码结果和下次迭代用的先验信息。
LTE制式时,在支持Turbo-SIC方案下,还需要输出对应于系统、校验1和校验2的三路编码LLR信息。译码采用基4的MAP(Max-Log-MAP,最大后验概率)算法,在MAP1计算过程中,MAP计算模块根据滑窗和译码器的并行路数对应的原始地址,直接读取数据进行Max-Log-MAP计算,并将计算出的先验信息按原始地址依次存入对应的缓存空间。
UMTS制式下交织没有规律,在1个窗内的交织地址也比较随机,这就需要在MAP1计算时备份必要的信息比特,为了设计上的方便,并且更好的兼容基4的LTE和WIMAX制式。
MAP计算模块在一个滑窗内采用alpha和beta同时计算的对撞方式(也即正向和逆向同时对撞计算),主要包括gamma、beta、alpha、LLR信息、先验信息(le)及LLR译码结果等变量的计算。其中先验信息(le)经过交织/解交织作为下一次MAP计算所需的先验信息la,公知的,MAP2计算得到的LLR译码结果经过解交织后进行硬判决,终止迭代时,最后一次迭代的MAP1和MAP2计算得到的LLR信息作为软信息输出。
对于四种制式,这块的处理基本相似,前文已指出UMTS的不同点。由于max_log处理电路的数据位宽大,同时数据缓存部分也可以共享,只是需要通过不同制式控制不同的缓存格式,这样大大的降低了多模Turbo译码的资源。
在现有的共模译码架构下,各制式的内交织器不同,划分为三种:UMTS/TD-SCDMA相同,LTE单独使用、WiMAX亦单独使用。
根据MAP算法的特点,现有技术在MAP1计算完毕后,需要先对输入数据进行交织,待处理完时,再对输出数据进行解交织。为避免此处的交织与解交织处理,本发明交织模块根据对系统位、校验1和校验2的比特位置索引,进行交织地址的计算,并进行缓存。MAP计算模块根据交织地址,从缓存中读取数据,进行MAP算法处理,处理完毕后,根据缓存的地址,将处理结果写回缓存地址所对应的先验信息缓存模块中。
第三步,MAP2处理。
MAP2计算过程中,MAP计算模块从缓存的原始地址读取校验比特2以及根据所述交织地址读取交织后的系统比特及第二先验信息进行MAP2计算,并将计算出的结果按照解交织地址存入对应的先验信息处理模块。
由于MAP2和MAP1的过程类似,因此将MAP2共用MAP1的max_log处理电路。只是输入的数据不同而已。把按照原始地址读取的校验比特2、交织地址读取的系统比特级和先验信息送入并行max_log处理电路进行MAP2计算,并将计算得到的先验信息和LLR译码结果分别写入先验信息处理模块和输出控制模块中。这部分内容与第二步类似,因此不再详述。
一般情况下,LLR译码结果就是最终的硬判决结果。当需要输出软信息的时候,输出结果不但包括硬判决结果,还包括需要输出的软信息。
第四步,进行译码迭代。
根据相应的终止迭代类型,判断是否满足终止迭代的条件。若满足对应的条件时,立即停止译码,否则返回至第二步直至最大的迭代次数,然后将硬判决结果输出。
这里的终止迭代类型相对比较灵活,可采用根据CRC校验结果判断,也可采用前后两次译码的结果是否相等来判断,这个可以相对实际应用来实现。
本文中所描述的装置是以上行LTE的大小为6144的码块处理为例,但具体描述的方法同样适用于其他制式以及其他码块大小的处理,以此可显著的提高各部分资源的共享,减少系统资源以及功耗。
相较于现有技术书,以上装置的具体特点如下:
1)为了将Turbo译码器和CTC译码器充分的共享资源,两者均采用基4的架构,复用1套Max-Log-MAP单元。
2)由于采用基4的架构,为了能够同时读取1个比特对的数据,采用奇偶分开存储的方式存储译码数据。
3)由于四种制式的解交织方式不同,因此交织模块对应不同制式的的电路独立设计,而MAP单元充分共享,输入和输出缓存buffer也对四种制式进行共享,这样有效的降低了系统资源和功耗。
4)为了在不同信噪比下,有效的提高译码器的效率,采取了乒乓输入,以及CRC提前终止和硬判比较两种提前终止方式,最大限度的减小译码时间。
5)以制式信息作为控制信号,以此来对不同制式的数据进行译码。
采用本发明所述方法或装置,与现有技术相比,充分利用了MAX_LOG_MAP算法下不同制式下译码的相似点,对译码数据采用分奇偶缓存的方式,实现了资源充分共享,并通过不同制式的状态转移图实现对不同制式的译码。采用本发明技术方案相对于简单的两个核的并行设计,资源能节省38%以上,降低了功耗。同时采用基4的算法,相对基2吞吐率也提升一半的性能。
本发明实施例中所描述的装置备中的单元/模块/子模块仅是根据其功能进行划分的一种示例,可理解地,在译码装置实现相同功能的情况下,本领域技术人员可给出一种或多种其他功能划分方式,在具体应用时可将其中任意一个或多个功能模块采用一个功能实体装置或单元实现,不可否认地,以上变换方式均在本申请保护范围之内。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来控制相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。