一种利用图形处理器GPU实现的并行RS译码方法技术

技术编号:8348602 阅读:373 留言:0更新日期:2013-02-21 03:08
一种利用图形处理器GPU实现的RS并行译码方法,以连接有一个或多个GPU的通用计算机作为硬件平台,将RS译码分为数据读写与初始化、并行译码两部分,利用GPU内具有大量计算核心的特点,同时对多个RS码字进行译码,实现并行译码。并行译码被分解为4个步骤,对每个步骤均设计并行处理方法,使整个译码过程实现并行化,提高RS译码的速率。当译码速率上限不足时可以通过增加GPU计算核心数量实现经济的升级。本发明专利技术根据卫星地面接收系统的要求,采用连接有GPU的通用计算机作为硬件平台,通过GPU内部计算核心的两层并行结构实现高速并行RS译码,在实现高速并行RS译码的前提下经济的实现译码速率上限的升级,成本低,易于实现。

【技术实现步骤摘要】

本专利技术涉及一种利用图形处理器GPU实现的并行RS译码方法,适用于卫星地面接收系统高速数据通信中海量信息的实时处理。
技术介绍
卫星地面接收系统需要接收通过星地通信链路下传的大量数据信息进行采集、传输、综合分析、计算等处理。星地通信链路是一种不稳定的链路,在该链路上传输信息时存在大量的误码。为了抵抗星地通信链路的误码对数据的影响,卫星地面接收系统必须采用纠错码技术。纠错码技术是卫星地面接收系统抵抗信道误码的关键手段,是数据能够被正确、及时处理的前提,在接收系统中具有较高的处理复杂度。RS码作为常用的纠错码,其译码 速度直接影响卫星地面接收系统的数据处理速度,进而决定了地面接收系统的最大接收能力。RS码是一类具有很强纠错能力的多进制BCH码,也是一类典型的代数几何码。它首先由Reed和Solomon应用MS多项式于1960年构造出来。用MS多项式构造的RS码是非系统码,而用BCH码构造方法能产生系统码。由于线性码的最大可能的最小距离是校验元的个数加1,而RS码恰好做到这一点,因此,称RS码为极大最小距离可分码(MDS码)。RS码采用了 q进制,所以它是多进制调制时的自然和方便的编码手段;RS码特别适合于在衰落信道中使用,以克服突发性差错。正由于其优越的性能,RS码在深空通信、数字音视频通信、磁记录介质等领域取得广泛应用,它是目前应用最为广泛的纠错编码之一。根据对纠错能力的要求不同,可以采用具有不同参数的RS码。无论具有何种参数,RS码所采用的译码方法均相同。例如空间通信常用的RS码为空间数据系统咨询委员会(CCSDS)推荐的RS(255, 223)或RS(255,239)码,这两种码的译码方法相同,只是纠错能力参数不同。RS译码器的译码过程通常包括三个计算步骤错误检测、关键方程计算、错误纠正。三个计算步骤均需要进行大量的有限域运算,其中乘法、加法运算的数量庞大,对译码速度的影响也最大。通用计算机只能顺序的执行乘法或加法,因此采用通用计算机及配套软件进行RS译码的处理速度较低,无法满足海量卫星数据处理的实时性要求。为了达到实时处理的要求,常用方案是设计专用RS译码板卡,通过FPGA芯片实现解码过程的高速处理。专用板卡的硬件设计、制造、维护成本高昂,软件不具有通用性。随着卫星下传数据速率的飞速增加,对RS译码的速率要求也在不断提高。采用专用处理板卡可以满足现有数据处理速度,但在处理速度需求超出当前板卡性能上限或者所使用的RS编码参数变更时只能重新进行板卡硬件及其专用软件的设计,造成设备升级难度大、成本高。
技术实现思路
本专利技术解决的技术问题是克服现有技术的不足,提供一种利用图形处理器GPU实现的并行RS译码方法,根据卫星地面接收系统的要求,采用连接有GPU的通用计算机作为硬件平台,通过GPU内部计算核心的两层并行结构实现高速并行RS译码,在实现高速并行RS译码的前提下经济的实现译码速率上限的升级,成本低,易于实现。本专利技术的技术方案是一种利用图形处理器GPU实现的并行RS译码方法,实现步骤如下(I)通用计算机首先根据编码参数生成有限域与二进制数据转换查找表、有限域加法查找表、有限域乘法查找表、有限域对偶基和自然基查找表,然后将上述各查找表写入GPU纹理内存;(2)通用计算机检测已连接的GPU个数及各个GPU的最大并行规模,根据已连接的所有GPU的最大并行规模读入多个待解码的RS码字;(3)通用计算机将读入的码字写入GPU内部的全局存储器,启动GPU解码程序进行译码,GPU中设计多个线程,线程数量远大于读入码字的数量,利用线程实现多个码字的并 行译码;(4)通用计算机边读取后续码字,边等待GPU译码结果;(5)GPU译码和后续数据读取都结束后,通用计算机从GPU内部的全局存储器中读出译码后的数据,将后续码字写入GPU内部的全局存储器,继续进行后续码字的译码,直到所有数据译码完成。所述步骤(2)中通用计算机读入多个待解码的RS码字的步骤为(2. I)通过GPU编程语言的指令查询所连接的GPU数量η ;(2. 2)通过GPU编程语言的指令逐个查询η个GPU所支持的最大块数量Β1;Β2,...,Bn以及每个块支持的最大线程数量T1, T2, , Tn,根据所处理的RS码字的码长N,确定一次性读入的RS码字数量上限为(B1TJB2TJBnTnV(Wl);(2. 3)通过通用编程语言读入不超过(B1I^B2TfBnTnV(Wl)个RS码字。所述步骤(3)中启动GPU解码程序进行译码的步骤为(3. I)各GPU从全局存储器中读取待译码的码字段,用每个线程处理一个RS码字,各线程首先利用查找表将码字从其所使用的有限域基低变换至自然基,然后再次利用查找表将数据变换至有限域;在有限域中将各码字分别乘以相应的系数后,利用归约求和方法将各个块内的线程计算结果相加,得到多个码字的伴随式,若伴随式全为O则结束译码,否则继续进行以下步骤;(3. 2)GPU使用多个块对多个码字进行关键方程的计算,计算方法为无需求逆的BM迭代算法,即RiBM算法;GPU利用多个线程进行计算,每个线程均计算一个迭代参数,计算后得到的关键方程系数存入全局存储器;(3. 3)GPU中使用多个块对误码进行纠正,纠正误码的方法为钱搜索和福尼算法;每个块通过多个线程读入关键方程系数,然后各线程分别对所读入的关键方程系数进行乘积运算,随后各线程的运算结果通过归约求和的方法进行求和,根据和值判断当前块所对应的符号是否为错误符号;若当前块所对应符号存在错误,则根据福尼算法计算错误值,并利用块中某一线程执行纠正错误值的程序,得到译码结果;译码结果存储在全局存储器中。本专利技术与现有技术相比具有如下优点(I)传统的地面接收系统采用专用处理板卡实现实时译码,然而专用处理板卡本身不具备最大译码速率可升级的能力以及自适应RS码参数变化的能力,若需要提升最大译码速率或更改RS码参数,则必须重新设计专用处理板卡的软、硬件,设计维护成本高昂。本专利技术对多个RS码字进行并行译码处理,可以在插有少量GPU的通用计算机上达到卫星地面接收系统所要求的译码速率。用GPU实现错误检测、关键方程计算、错误位置计算和错误值计算,使通用计算机可以将数据的读入与RS译码处理并行进行,可以提高卫星地面接收系统的译码速率。(2)与使用专用译码板卡的传统方法相比,本专利技术的可扩展性更好。当系统性能需要扩展时简单的增加GPU个数即可,而专用硬件板卡不具有此性质。(3)与使用专用译码板卡的传统方法相比,本专利技术的软件设计更简便。专用译码板 卡的软件需要烧入芯片,代码修改和调试过程复杂所用软件无需烧入处理,修改、调试方法与通用计算机软件一样简便。附图说明图I为利用GPU实现的并行RS译码示意图。具体实施例方式下面结合附图I对本专利技术作进一步说明。GPU是一种可以连接在通用计算机上的并行处理设备,具有大量的并行计算核心,通常具有独立的物理存储器和高速存储器读取机制,可以在通用计算机上使大量数据的加法、乘法运算速度得到数十甚至数百倍的提升。在GPU中,软件以程序核为单位顺序执行,每个程序核均对数据进行并行处理。每个程序核的并行规模可以独立设置。程序核内的并行结构分为两个层次块和线程。每个程序核软件可以分为多个块并行执行,每个块独本文档来自技高网
...

【技术保护点】
一种利用图形处理器GPU实现的并行RS译码方法,其特征在于实现步骤如下:(1)通用计算机首先根据编码参数生成有限域与二进制数据转换查找表、有限域加法查找表、有限域乘法查找表、有限域对偶基和自然基查找表,然后将上述各查找表写入GPU纹理内存;(2)通用计算机检测已连接的GPU个数及各个GPU的最大并行规模,根据已连接的所有GPU的最大并行规模读入多个待解码的RS码字;(3)通用计算机将读入的码字写入GPU内部的全局存储器,启动GPU解码程序进行译码,GPU中设计多个线程,线程数量远大于读入码字的数量,利用线程实现多个码字的并行译码;(4)通用计算机边读取后续码字,边等待GPU译码结果;(5)GPU译码和后续数据读取都结束后,通用计算机从GPU内部的全局存储器中读出译码后的数据,将后续码字写入GPU内部的全局存储器,继续进行后续码字的译码,直到所有数据译码完成。

【技术特征摘要】

【专利技术属性】
技术研发人员:魏耀都张拯宁朱翔宇战勇杰
申请(专利权)人:航天恒星科技有限公司
类型:发明
国别省市:

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

1