法律状态公告日
法律状态信息
法律状态
2019-11-26
授权
授权
2017-08-08
实质审查的生效 IPC(主分类):G06F7/57 申请日:20170310
实质审查的生效
2017-07-14
公开
公开
技术领域
本发明涉及通信及电子信息技术领域,特别涉及极化码解码器核心计算模块中f、g运算单元的硬件架构。
背景技术
极化码是一种新型的信道编码方式,是第一种被严格证明了的可以实现对称二进制输入离散无记忆信道(例如二进制对称信道和二进制擦除信道)的容量的现代纠错码构造方法。极化码于2008年由土耳其毕尔肯大学Erdal Arikan教授首次提出,并受到学界广泛关注,成为编码界的新星。极化码作为目前唯一可以理论证明达到香农极限的信道编码技术,已经成为下一代移动通信系统5G中控制信道的编码方案。
目前广泛采用的极化码解码算法主要有串行抵消解码算法、串行抵消列表解码算法、循环冗余校验辅助的串行抵消列表解码算法等。在以上解码算法中,最核心、所占比重最大的运算为基于对数似然比的f运算与g运算。传统的f运算与g运算单元具有较长的关键路径,对极化码解码器的吞吐率形成极大的制约。因此,设计快速、低功耗和省面积的f、g运算单元能够提高极化码解码器的吞吐率,对极化码应用于高速场景具有重大的意义。
发明内容
发明目的:本发明旨在解决极化码解码器中f运算和g运算单元关键路径长、能量消耗高、面积开销大的问题。
为了解决上述技术问题,本发明公开了一种有别于传统的快速、低功耗和省面积的极化码解码器中f运算和g运算单元的硬件架构。
为了便于阐述,定义两个实数A和B,一个整数C。在目前广泛使用的基于对数似然比的极化码解码算法中,f运算的运算法则定义如下:
f(A,B)=sign(A)sign(B)min(|A|,|B|),
其中sign为取符号函数。可见f运算主要就是找出两个实数中绝对值较小的一个。
g运算的运算法则定义如下:
g(A,B,C)=A+(-1)cB,
其中C只能取0或1两个值。可见,g运算就是在C的控制下进行A+B或A-B的运算。
由f运算的运算法则可知,解码算法经常要对两个数的绝对值进行比较,所以为了便于存储数据和降低算法硬件实现的复杂度,数据往往采用二进制原码的形式来表示。这里仍然用A和B表示两个原码形式的二进制有符号数。定义As、Bs分别表示A、B的符号,当A、B大于等于0时,As、Bs为0;当A、B小于0时,As,Bs为1。用Am、Bm分别表示A、B的绝对值大小。C为g运算的加/减控制信号,用于控制g运算具体执行加法或减法。T为f/g运算控制信号,用于指示电路执行f运算或g运算。定义S为A与B经过f/g运算后的结果,S亦为原码形式的二进制有符号数。用Ss和Sm分别表示S的符号与绝对值大小。下文所涉及的所有符号均与此处的定义保持一致。
该架构从整体上来看,包含了:
1.一个加法器,其作用是计算Am+Bm。
2.一个减法器,其作用是计算Am-Bm。
3.一个比较器,其作用是比较Am和Bm的相对大小。
4.一个求补单元,其作用是将减法器的输出Am-Bm转换为对应的补码形式,即-(Am-Bm)。
5.三个逻辑单元,分别编号为1、2、3。其中逻辑单元1以Bs和g运算的加/减控制信号C为输入,其输出作为下文中编号为4的数据选择器的输入之一。当C指示执行加法运算时,逻辑单元1输出Bs,当C指示执行减法运算时,逻辑单元1将Bs求反后输出;逻辑单元2以As和Bs为输入,其输出为f运算的结果的符号位。逻辑单元2的输出有两种状态,当As和Bs相同时输出一种状态,当As和Bs不相同时输出另一种状态;逻辑单元3以逻辑单元2的输出和g运算的加/减控制信号C为输入,输出有两种状态。当C指示执行加法运算且逻辑单元2的输出表明As与Bs相同时,或当C指示执行减法运算且逻辑单元2的输出表明As与Bs不相同时,逻辑单元3输出一种状态;当C指示执行加法运算且逻辑单元2的输出表明As与Bs不相同时,或当C指示执行减法运算且逻辑单元2的输出表明As与Bs相同时,逻辑单元3输出另一种状态。
6.六个数据选择器,分别编号为1、2、3、4、5、6,其中数据选择器1用于在恰当的输入地址下从减法器的输出和求补单元的输出中选择一个作为|Am-Bm|;数据选择器2用于在恰当的输入地址下从加法器的输出和数据选择器1的输出中选择一个作为g运算结果的绝对值;数据选择器3用于在恰当的输入地址下从Am和Bm中选择出较小者作为f运算结果的绝对值;数据选择器4用于在恰当的输入地址下从逻辑单元1的输出和As中选择一个作为g运算结果的符号位;数据选择器5以f/g控制信号T为输入地址,从数据选择器3的输出(即f运算的结果的绝对值部分)和数据选择器2(即g运算的结果的绝对值部分)中选择出一个作为最后结果的绝对值,即Sm;数据选择器6从逻辑单元2的输出(即f运算的结果的符号位)和数据选择器4的输出(即g运算的结果的符号位)中选择出一个作为最后结果的符号位即Ss。
本发明所公开的快速、低功耗和省面积的极化码解码器中f、g运算单元的硬件架构,同时利用加法器、减法器、比较器和求补单元,接近并行化地计算出Am+Bm、Am-Bm、-(Am-Bm)。对于g运算,因为A与B之和/差的绝对值必为这三者之一,通过A、B两数的相对大小,符号As、Bs以及g运算的加/减控制信号C的不同组合,产生恰当的地址信号输入到数据选择器中,则能快速地选择出g运算的结果的绝对值和符号位。对于f运算,通过比较器、数据选择器和简单的逻辑单元即可快速完成。
有益效果:本发明通过并行化地计算两数之和、差、差的相反数以及两数绝对值的相对大小,最后通过数据选择器在简单的控制逻辑指示下筛选出正确的结果。与传统的极化码f、g运算单元的硬件架构相比,具有更快的运算速度,更低的能量消耗,更少的面积开销。本发明在极化码解码器中有着极为广泛的应用前景。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1是本发明的整体架构图。
具体实施方式
下面详细地描述本发明的实施例,所述实施例的示例在附图1中示出。原码表示的二进制有符号数A由两部分组成,分别为1比特的符号位As和一定比特位宽的绝对值部分Am。原码表示的二进制有符号数B由两部分组成,分别为1比特的符号位Bs和一定比特位宽的绝对值部分Bm。图1中C为1比特的g运算的加/减控制信号,T为1比特的f/g运算控制信号。原码表示的数S为最终输出的结果,Ss为1比特的最终结果的符号位,Sm为最终结果的绝对值部分,其比特位宽可由具体应用需求确定。
二进制有符号数在原码形式下相加的运算法则见表一;二进制有符号数在原码形式下相减的运算法则见表二。
表一:二进制原码相加的运算法则
表二:二进制原码相减的运算法则
g运算的加/减控制信号C有两种状态,分别为0和1,可以用0表示执行加法运算,1表示执行减法运算;也可以用1表示执行加法运算,0表示执行减法运算。无论何种选择并不影响本发明的有效性。
图1中加法器计算出Am+Bm,减法器计算出Am-Bm,如果Am大于等于Bm,则Am-Bm为正,减法器输出的结果恰好为差的绝对值;如果Am小于Bm,则Am-Bm为负,减法器输出的结果为差的补码去除符号位剩余的部分,它再经过一个求补单元则可恢复成原码的形式,即求补单元计算出-(Am-Bm),为差的绝对值。可以看出,减法器的输出和求补单元的输出中必有一个为差的绝对值。
本发明中需要一个比较器来比较Am与Bm的相对大小。对于数据选择器1,如果Am大于等于Bm,则数据选择器1选择减法器的输出Am-Bm,否则选择求补单元的输出-(Am-Bm)。数据选择器1最终输出的数一定为|Am-Bm|。
对于数据选择器2,结合表一和表二可以总结出如下的规律:当信号C指示执行加法运算时,若As与Bs相同,则数据选择器2总是选择加法器的输出Am+Bm;若As与Bs不相同,则数据选择器2总是选择数据选择器1的输出|Am-Bm|。当信号C指示执行减法运算时,如果As与Bs不同,则数据选择器2总是选择加法器的输出Am+Bm,如果As与Bs相同,则数据选择器2总是选择数据选择器1的输出|Am-Bm|。根据As、Bs和C的不同组合,由逻辑单元3产生恰当的地址信号输入到数据选择器2中以进行筛选。对数据选择器3,它在比较器的指示下选择Am与Bm中的较小者作为f运算的结果的绝对值部分;对于数据选择器4,它在比较器的指示下从逻辑单元1的输出和As中选择一个作为g运算的结果的符号位;对于数据选择器5,它在f/g控制信号T的作用下从数据选择器2的输出和数据选择器3的输出中选择一个作为最终结果的绝对值。对于数据选择器6,它同样在f/g控制信号T的作用下从数据选择器4的输出和逻辑单元2的输出中选择一个作为最终结果的符号位。
对于g运算的结果的符号位,结合表一和表二可以总结出如下规律:如果Am大于等于Bm,不论g运算的加/减控制信号指示执行加法还是减法运算,g运算结果的符号为必为As;如果Am小于Bm,若g运算的加/减控制信号指示执行加法运算,则g运算的结果的符号位为Bs,若g运算的加/减控制信号指示执行减法运算,则g运算的结果的符号位为Bs的互补信号。因此,利用逻辑单元1,在g运算的加/减控制信号C指示执行加法运算时,Bs原样输出,指示执行减法运算时,将Bs取反后输出。利用比较器,从逻辑单元1的输出和As中选择一个作为g运算的结果的符号位,如果Am大于等于Bm,g运算的结果的符号位为As,否则为逻辑单元1的输出。
f/g运算控制信号T有两种状态,分别为0和1,可以用0表示执行f运算,1表示执行g运算;也可以用1表示执行f运算,0表示执行g运算。无论何种选择并不影响本发明的有效性。
机译: 低功耗分层多级LDPC解码器的硬件架构和实现
机译: 低功耗分层多级LDPC解码器的硬件架构和实现
机译: 电流转向单元,具有与代码有关的非线性消除和快速建立功能,适用于低功耗,低面积,高速数模转换器