一种基于GPU的卷积码高速并行译码方法及译码器技术

技术编号:13825622 阅读:144 留言:0更新日期:2016-10-12 22:59
本发明专利技术公开一种基于GPU的卷积码高速并行译码方法及译码器,属于通信领域。本译码方法先将码流信息进行分段,通过异步传输方式发送到GPU上,在GPU上按照维特比算法对每个分段并行进行前向路径量度计算和路径回溯,实现全并行译码,最后合并每个分段的译码结果,输出译码码流信息。本发明专利技术的译码器包括位于主机和GPU设备上的初始化模块、位于主机的串并转换器、位于GPU设备的前向计算内核和回溯内核。主机与GPU设备之间通过异步传输通道实现数据的传输。本发明专利技术在保证抗误码性能不变的情况下,提升了译码并行度,并挖掘卷积码网格图蝶形结构的特性,降低了运算复杂度,所适用的卷积码范围广泛,实现难度低,灵活性和兼容性强。

【技术实现步骤摘要】

本专利技术属于通信领域,具体涉及一种基于GPU(图形处理器)的卷积码译码方法及译码器装置。
技术介绍
卷积码于1955年由Elias提出,是一种不同于分组码的信道编码方式,其编码器具有一定的记忆性。一个码率为1/R,编码约束长度为K的卷积码称为(R,1,K)卷积码。卷积码具有良好的译码性能,被广泛应用于各种通信标准中。例如,IEEE 802.11和IEEE 802.16通信标准中均使用了(2,1,7)卷积码,CDMA2000标准中使用了(3,1,9)卷积码,4G LTE标准中使用了(3,1,7)卷积码等。卷积码最常用的译码算法是维特比算法。维特比算法等价于求在一个加权图里寻找最短路径问题的动态规划解。维特比算法实际上就是卷积码的最大似然(ML)译码算法。传统的维特比译码是一种串行译码方式,译码速率低,延时大。如何设计一种基于维特比算法的高速并行译码方式是非常有意义的。本领域内公知,基于FPGA(现场可编程门阵列)、ASIC(专用集成电路)等大规模集成电路设计的译码器,译码速率高,但研发周期长,成本高,灵活性差;而于DSP、x86-CPU和ARM等处理器设计的译码器,虽然兼容性和灵活性较好,但受限于硬件资源,通常只能达到兆级的译码速率,不能满足高速通信系统中的应用需求。近年来,随着GPU的发展,其作为通用处理器的能力得到了挖掘。基于GPU设计的译码器架构继承了CPU的灵活性和通用性,开发难度低,且译码速率能达到百兆级以上。
技术实现思路
基于上述需求,本专利技术提出一种基于GPU的卷积码分段并行维特比译码方法,并设计一种基于GPU平台的译码架构,以实现卷积码的高速并行译码。本专利技术提供了一种基于GPU的卷积码高速并行译码方法,包括初始化阶段和译码阶段。初始化阶段包括步骤1~步骤3,译码阶段包括步骤4~步骤7。步骤1,主机初始化;主机启动系统线程,分配内存空间;步骤2,GPU设备初始化;主机发送控制信号,激活GPU设备,在GPU设备上分配GPU全局内存空间,创建异步流;在GPU设备上设置有网格图存储器和蝶形分组器;网格图存储器对卷积码对应的网格图进行存储;蝶形分组器对卷积码的蝶形结构进行分组,对于码率为1/R,约束长度为K的卷积码(R,1,K),蝶形分组器对该卷积码网格图中的N/2个蝶形结构进行分组,同一组蝶形结构具有完全相同的分支路径,组数Nc=2R,N表示编码器状态总数,N=2K-1。GPU设备上还设置幸存路径存储区用于存储译码过程中的幸存路径,设置路径量度存储区用于对前向路径量度计算中得到的路径累积量度进行存储。步骤3,给定信道模型和卷积码接收码流信息,选择合适的分段长度D和交叠深度L,对接收的码流信息进行分段和交叠处理,得到若干分段;步骤4:GPU设备为本次译码分配异步流,主机将分段码流通过异步传输方式传送给GPU设备;步骤5:对每一个分段,按照维特比算法,进行长度为L+2D的前向路径量度计算;步骤6:对每一个分段,在前向路径量度计算结束后,进行状态估计;对每一个分段,按照估计得到的状态,选择一条幸存路径进行长度为L+D的路径回溯,并判决输出长度为D的译码结果;步骤7:合并每个分段的译码结果,得到译码输出码流信息。本专利技术的另一个目的是设计一种基于GPU的卷积码高速并行译码器,包括位于主机和GPU设备上的初始化模块、位于主机的串并转换器、位于GPU设备的前向计算内核和回溯内核。所述的主机与GPU设备之间通过异步传输通道实现数据的异步交换。初始化模块,用于对主机和GPU设备进行初始化操作;在主机上设置数据接收缓存区、数据发送缓存区、第一分段信息存储器和第一分段译码结果存储器。主机发送控制信号,激活GPU设备。在GPU设备上分配GPU全局内存空间,创建异步流,在GPU设备上设置第二分段信息存储器、第二分段译码结果存储器、路径量度存储器、幸存路径存储器、网格图存储器和蝶形分组器。数据接收缓存区对主机接收的码流信息进行存储;数据发送缓存区对主机发送的译码输出码流信息进行存储;分段信息存储器对串并转换后的各分段进行存储;分段译码结果存储器对分段译码结果进行存储。路径量度存储器对前向路径量度计算中得到的路径累积量度进行存储;幸存路径存储器对前向路径量度计算中筛选出的幸存路径进行存储。网格图存储器对卷积码对应的网格图进行存储。蝶形分组器对卷积码的蝶形结构进行分组,对于码率为1/R,约束长度为K的卷积码(R,1,K),蝶形分组器对该卷积码网格图中的N/2个蝶形结构进行分组,同一组蝶形结构具有完全相同的分支路径,组数Nc=2R,N表示编码器状态总数,N=2K-1。串并转换器,位于主机,对接收的码流信息进行分段和交叠处理,将各分段存入第一分段信息存储器。串并转换器还将第一分段译码结果存储器中存储的分段译码结果进行合并,输出给数据发送缓存区。所述的GPU设备译码时,首先分配一条异步流,主机通过异步传输方式将第一分段信息存储器内的各分段传入GPU设备的第二分段信息存储器。然后,启动前向计算内核,前向计算内核从第二分段信息存储器中获取各分段,对每个分段的每个状态进行前向路径量度的计算,得到各状态的路径累积量度和幸存路径。在前向计算内核执行结束后,启动回溯内核。回溯内核对每个分段以估计的状态为起点沿幸存路径进行回溯,同时完成译码判决,输出译码结果,存储在第二分段译码结果存储器中。在GPU设备译码完成后,GPU设备通过异步传输方式将第二分段译码结果存储器中的分段译码结果传入主机的第一分段译码结果存储器中。所述的前向计算内核中启动32·Nc·Nc·Nbl条线程,其中包括Nc·Nbl个线程块,每个线程块由Nc个线程束组成,每个线程束由32个线程组成。所述的回溯内核中启动32·Nc·Nbl条线程,其中包括Nbl个线程块。每个前向计算内核和回溯内核均映射Nt=32·Nc·Nbl个并行处理分段。Nc、Nbl和Nt均为正整数。本专利技术的优点与积极效果在于:(1)本专利技术在保证抗误码性能不变的情况下,提升了译码并行度,对维特比算法进行简化,并挖掘卷积码网格图蝶形结构的特性,对译码过程进行优化处理,降低了运算复杂度。本方法适用的卷积码范围广泛,实现难度低,灵活性和兼容性强,适用于所有基于CUDA架构开发的GPU硬件。(2)本专利技术提出的基于GPU的译码架构,有效地结合了分段并行维特比译码方法和GPU的硬件特点,对译码并行度、数据存储和数据传输等进行了优化设计,最大限度提升了GPU硬件资源利用率,提升了译码速率。通过大规模并行译码处理,在保证较低的译码延时条件下,提升了译码吞吐率,达到Gbps量级的译码信息速率。附图说明图1为本专利技术的卷积码码流分段方式示意图;图2为本专利技术的分段维特比译码方法示意图;图3为本专利技术的分段并行译码处理示意图;图4为本专利技术所涉及的卷积码网格图蝶形示意图;图5为本专利技术所提出的基于GPU的卷积码译码器架构的工作框图;图6为本专利技术所提出的基于GPU的卷积码译码器内核线程网格映射示意图;图7为本专利技术所提出的全局内存中数据合并存储方式设计图;图8为本专利技术所涉及的卷积码编码器的一个具体示例;图9为本专利技术所涉及的卷积码网格图蝶形的一个具体示例;图10为本专利技术所提出的译码器译码步骤的流程图;图11为本专利技术所提出的异步流译码示意图。本文档来自技高网...

【技术保护点】
一种基于GPU的卷积码高速并行译码方法,其特征在于,包括初始化阶段和译码阶段;初始化阶段包括步骤1~步骤3,译码阶段包括步骤4~步骤7,具体如下:步骤1,主机初始化;主机启动系统线程,分配内存空间;步骤2,GPU设备初始化;主机发送控制信号,激活GPU设备,在GPU设备上分配GPU全局内存空间,创建异步流;在GPU设备上设置有网格图存储器和蝶形分组器;网格图存储器对卷积码对应的网格图进行存储;蝶形分组器对卷积码的蝶形结构进行分组,对于码率为1/R,约束长度为K的卷积码(R,1,K),蝶形分组器对该卷积码网格图中的N/2个蝶形结构进行分组,同一组蝶形结构具有完全相同的分支路径,组数Nc=2R,N表示编码器状态总数,N=2K‑1;GPU设备上还设置幸存路径存储区用于存储译码过程中的幸存路径,设置路径量度存储区用于对前向路径量度计算中得到的路径累积量度进行存储;步骤3,给定信道模型和卷积码接收码流信息,选择分段长度D和交叠深度L,对接收的码流信息进行分段和交叠处理;步骤4:GPU设备为本次译码分配异步流,主机将分段码流通过异步传输方式传送给GPU设备;步骤5,对每一个分段,按照维特比算法,进行长度为L+2D的前向路径量度计算;步骤6,对每一个分段,在前向路径量度计算结束后,进行状态估计;对每一个分段,按照估计得到的状态,选择一条幸存路径进行长度为L+D的路径回溯,并判决输出长度为D的译码结果;所述的状态估计是指任选一个状态;步骤7:合并每个分段的译码结果,得到译码输出码流信息。...

【技术特征摘要】
1.一种基于GPU的卷积码高速并行译码方法,其特征在于,包括初始化阶段和译码阶段;初始化阶段包括步骤1~步骤3,译码阶段包括步骤4~步骤7,具体如下:步骤1,主机初始化;主机启动系统线程,分配内存空间;步骤2,GPU设备初始化;主机发送控制信号,激活GPU设备,在GPU设备上分配GPU全局内存空间,创建异步流;在GPU设备上设置有网格图存储器和蝶形分组器;网格图存储器对卷积码对应的网格图进行存储;蝶形分组器对卷积码的蝶形结构进行分组,对于码率为1/R,约束长度为K的卷积码(R,1,K),蝶形分组器对该卷积码网格图中的N/2个蝶形结构进行分组,同一组蝶形结构具有完全相同的分支路径,组数Nc=2R,N表示编码器状态总数,N=2K-1;GPU设备上还设置幸存路径存储区用于存储译码过程中的幸存路径,设置路径量度存储区用于对前向路径量度计算中得到的路径累积量度进行存储;步骤3,给定信道模型和卷积码接收码流信息,选择分段长度D和交叠深度L,对接收的码流信息进行分段和交叠处理;步骤4:GPU设备为本次译码分配异步流,主机将分段码流通过异步传输方式传送给GPU设备;步骤5,对每一个分段,按照维特比算法,进行长度为L+2D的前向路径量度计算;步骤6,对每一个分段,在前向路径量度计算结束后,进行状态估计;对每一个分段,按照估计得到的状态,选择一条幸存路径进行长度为L+D的路径回溯,并判决输出长度为D的译码结果;所述的状态估计是指任选一个状态;步骤7:合并每个分段的译码结果,得到译码输出码流信息。2.根据权利要求1所述的一种基于GPU的卷积码高速并行译码方法,其特征在于,所述的步骤2中,蝶形分组器对一个码率为1/R,约束长度为K的卷积码(R,1,K)的网格图进行分组的方法是:定义S0,S1,…,SN-1分别表示N个状态;定义Dv-1,Dv-2,…,D0分别为编码器的v个移位寄存器的状态,v=K-1;对于状态Sd,其编号d为移位寄存器对应的二进制数,表示为d=(Dv-1Dv-2…D0)2;定义g(1),g(2),…,g(R)分别表示卷积码的R个生成多项式,其中,r=1,2,…,R;定义x表示编码器当前输入比特信息;定义c(Sd,x)表示在状态Sd时,输入比特x对应的编码器输出符号;卷积码N个状态中的四个状态S2j、S2j+1、Sj和Sj+N/2构成一个状态转移图,称为蝶形结构,记作Bj,j=0,1,…,N/2-1;状态转移图的四条分支中,两条上分支表示输入比特0时的状态转移,两条下分支表示输入比特1时的状态转移,定义α、β、γ和θ分别 表示对应的输出符号,表示为:α=c(S2j,0),β=c(S2j,1),γ=c(S2j+1,0),θ=c(S2j+1,1);则有关系式:表示卷积码R个生成多项式的...

【专利技术属性】
技术研发人员:刘荣科彭皓赵岭侯毅
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1