一种基四算法下的加比选计算方法和装置
技术领域
本发明涉及通信领域,尤其涉及一种基四算法下的加比选计算方法和装置。
背景技术
为了满足当今社会对数字通信量的需求和提高系统的纠错能力,信道编码技术变得越来越重要。自从1955年Elias首次提出用于离散无记忆信道的卷积编码,关于卷积码的各种改进和优化算法层出不穷。1967年,Andrew J.Viterbi提出了关于卷积码的动态规划译码算法-viterbi算法,这是一种最大似然译码算法,通过对输入信息进行逐比特译码,在网格图中找到与接收序列距离最近的序列作为译码输出。在码约束长度比较小的情况下,Viterbi算法实现比较简单,运算速度快,性能好,在移动通信和卫星通信中得到了广泛应用。1993年,C.Berrou,A.Glavieux和P.Thitimajshiwa提出了turbo码,turbo码具有很强的抗衰落和抗干扰能力,其纠错性能接近香农限,在第三代、第四代通信系统中作为数据传输的信道编码标准。
迄今为止,卷积码和turbo码在信道编码方面仍然占据主导地位。卷积码主要用于语音信息、控制信息和广播信息等编码,turbo码主要用于数据编码。无论是卷积码还是turbo码,其译码算法中都有一个关键部件-加比选单元。加比选单元主要用于前向递归计算状态度量值,基二算法下的加比选单元架构如图1所示。
随着人们对数据传输速率的要求越来越高,基二算法已逐渐不能满足高吞吐率的要求,更高基的算法被逐渐采纳。然而,高基算法带来高吞吐量的同时,硬件复杂度也随之上升。以基四算法为例,译码单元通常是以蝶形单元作为基本处理单元,加比选单元通常是蝶形单元的子单元,基四算法的蝶形单元如图2所示,进入下一时刻的每个状态有四条分支,从四条分支中选择最大/最小的状态度量值,作为该状态的新的状态度量值,这个过程就是加比选过程。其加比选单元架构如图3所示。面积上基四算法下的加比选单元比基二算法下的加比选单元多了两个加法器和两个比较器,时间上基四算法下的加比选单元比基二算法下的加比选单元多了一级比较运算。在数据吞吐量提高的同时,不可避免会增加一些硬件资源,如果能优化基四算法下的加比选单元的运算延迟,即减少一级比较运算,那么整个译码器的关键路径延迟就会减少,对译码性能的提升将是非常有益的。
状态度量值的前向递归计算还有一个特点,当前时刻的状态度量值是前一时刻的状态度量值与分支度量值之和,随着前向递归计算,状态度量值会越来越大,大到一定程度会发生溢出。所以,状态度量值计算的加比选单元通常伴随规约运算。最直接的规约运算是选取状态度量值中最大的一个,每个状态度量值分别减去这个数,以四状态规约为例,如图4所示。这种方法延迟比较大,在加比选完成状态度量值计算后,需要增加若干级比较和减法运算,时间消耗与加比选运算相当,这种方法是不划算的。还有一种模规约运算,需要增加两级异或门操作,其结构图如图5所示。如果规约运算能与加比选运算同时进行,会大大降低时间延迟,提高译码速率。
总体来说,基四算法下的加比选运算有两个方面可以优化,即缩短四选一运算逻辑以及采用新的规约运算来计算状态度量值,从而提高数据吞吐率。
发明内容
(一)要解决的技术问题
基四算法下的加比选ACS(Add-Compare-Select)单元,存在路径延迟大的问题,具体体现在四选一逻辑方面,如图3所示,需要两级比较,才能从四个数据中选出最大/最小的一个。还体现在规约运算方面,如图4、图5所示,不管是减规约还是模规约运算,都在ACS运算的基础上增加了两级运算。关键路径延迟会影响整个译码器的性能,成为译码器设计的瓶颈问题。
(二)技术方案
为解决上述技术问题,本发明一方面提出了一种基四算法下的加比选计算方法,该方法包括:
步骤1,分支度量值与相应的状态度量值相加,得到四个临时状态度量值;
步骤2,四个临时状态度量值两两进行比较,比较的结果以0或1标识;同时,四个临时状态度量值分别减去前一时刻的某一状态度量值,得到规约运算后的状态度量值;
步骤3,根据比较的结果,从规约运算后的四个状态度量值中选出最大/最小的一个,作为新的状态度量值。
本发明另一方面提出了一种基四算法下的加比选计算装置,包括:
加法器:用于将分支度量值与相应的状态度量值相加,计算临时状态度量值;
比较器:用于将两个临时状态度量值进行比较,比较的结果以0或1标识;
减法器:用于将临时状态度量值减去前一时刻的某一状态度量值,得到规约运算后的状态度量值;
选择器:根据比较的结果,从规约运算后的状态度量值中选出最大/最小的一个,作为新的状态度量值。
(三)有益效果
采用本发明的加比选计算方法和装置,使得四选一逻辑在一级比较中实现,规约运算和比较运算同时进行,有效降低了关键路径延迟,提高了译码速率,进而提升了整个系统的性能。
附图说明
图1是基二算法下的加比选单元结构图;
图2是基四算法下的蝶形单元结构图;
图3是基四算法下传统的加比选单元结构图;
图4是四状态的减规约运算单元结构图;
图5是加比选单元的模规约运算结构图;
图6是本发明的加比选流程图;
图7是本发明的加比选单元结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明提出的基四算法下的加比选计算方法流程如图6所示,具体包括:
步骤502,四个分支的分支度量值BM0、BM1、BM2和BM3分别与对应的状态度量值SM0、SM1、SM2和SM3相加,得到四个临时状态度量值SUM0、SUM1、SUM2和SUM3;
步骤503,四个临时状态度量值SUM0、SUM1、SUM2和SUM3两两进行比较,即SUM0&SUM1、SUM0&SUM2、SUM0&SUM3、SUM1&SUM2、SUM1&SUM3、SUM2&SUM3,比较的结果以0或1标识;同时,SUM0、SUM1、SUM2、SUM3分别减去前一时刻的某一状态度量值,例如减去SM0,得到SUM0′、SUM1′、SUM2′、SUM3′,即得到规约运算后的状态度量值;
步骤504,根据比较的结果,从SUM0′、SUM1′、SUM2′和SUM3′中选出最大/最小的一个,作为新的状态度量值。
根据不同的实施案例,四选一逻辑可以有不同的表达式,这里以四个数据中选择最小和最大的数分别举例。
实施例一:四个数据中选择最小的数
四个临时状态度量值SUM0、SUM1、SUM2和SUM3两两进行比较,比较的结果以0或1标识。若SUM0大于SUM1,则记为0,否则记为1;若SUM0大于SUM2,则记为0,否则记为1;依此类推,得到六组比较结果。根据比较结果,判断四个临时状态度量值中哪个数最小。四个数据中选择最小数的逻辑如表一所示:
表一
实施例二:四个数据中选择最大的数
四个临时状态度量值SUM0、SUM1、SUM2和SUM3两两进行比较,比较的结果以0或1标识。若SUM0大于SUM1,则记为0,否则记为1;若SUM0大于SUM2,则记为0,否则记为1;依此类推,得到六组比较结果。根据比较结果,判断四个数中哪个数最大。四个临时状态度量值中选择最大数的逻辑如表二所示:
表二
本发明还提出的一种基四算法下的加比选计算装置,如图7所示,该装置包括:
加法器(601、602、603、604):包括四个加法器,每个加法器的输入是分支度量值和相应的前一时刻的状态度量值,用于计算当前时刻的临时状态度量值;
比较器(605、606、607、608、609、610):包括六个比较器,每个比较器的输入是两个加法器的输出,比较的结果送入选择器(615);
减法器(611、612、613、614):包括四个减法器,对应于四个加法器,减法器用于将相应加法器的输出与前一时刻某一状态度量值做减法运算,即对状态度量值做规约运算,防止溢出;
选择器(615):比较器的输出作为选通信号,依据比较器的结果,从规约运算后的四个状态度量值中选出最大/最小的一个,作为新的状态度量值。
实施例:四个状态度量值中选择最小的一个状态度量值
首先将四个分支的分支度量值和前一时刻的状态度量值分别送入四个加法器,得到四个分支的临时状态度量值;将四个分支的临时状态度量值分别与前一时刻的0状态的状态度量值做减法规约运算,得到四个分支的规约运算后的状态度量值;同时,四个分支的临时状态度量值,两两为一组,被分别送入六个比较器,比较器的输出作为选择器的选通信号,从四个分支的规约运算后的状态度量值中选出最小的一个,即完成状态度量值的更新工作。
本发明的加比选计算装置可用于turbo译码、viterbi译码,以及其他相关的装置中。本发明实施例中的加比选计算装置可以以专用集成电路的形式实现,也可以以可编程逻辑门阵列的形式实现,还可以以可编程通用微处理器电路的形式实现。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。