CN113612581A - 一种通用高吞吐率的ldpc译码方法及系统 - Google Patents
一种通用高吞吐率的ldpc译码方法及系统 Download PDFInfo
- Publication number
- CN113612581A CN113612581A CN202110894999.9A CN202110894999A CN113612581A CN 113612581 A CN113612581 A CN 113612581A CN 202110894999 A CN202110894999 A CN 202110894999A CN 113612581 A CN113612581 A CN 113612581A
- Authority
- CN
- China
- Prior art keywords
- current iteration
- decoding
- ldpc
- value
- node corresponding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
- H04L1/0063—Single parity check
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2948—Iterative decoding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种通用高吞吐率的LDPC译码方法及系统,涉及通信技术领域,该方法包括基于目标系统的需求,自适应配置LDPC译码器的矢量扩展指令集类型;基于自适应配置的LDPC译码器的矢量扩展指令集类型以及并行处理方式,对待译码数据进行译码操作;对初始译码结果进行硬判决操作,以得到最终译码结果;所述初始译码结果为对待译码数据进行译码操作后得到的数据。本发明能够在提升译码器吞吐率的同时能够最大限度地利用GPP的资源。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种通用高吞吐率的LDPC译码方法及系统。
背景技术
低密度奇偶校验码(Low-Density Parity-Check,LDPC),即LDPC码,是1963年由Robert博士首次提出的一种具有稀疏校验矩阵的线性分组码。目前LDPC码已经广泛的应用于WiFi(IEEE802.11n)、WiMax(IEEE802.16E)、数字广播(DVB)等领域。由于LDPC码固有的并行编译码结构和较强的纠错性能,LDPC码已被3GPP采纳作为第五代移动通信技术的长码编码方案,也被认为是5G超可靠和低时延通信(uRLLC)中最有前景的错误校验码(ECC)之一。
在过去的数十年里,随着通用处理器(GPP)处理频率不断地提高,其计算性能也不断提升,同时处理器的计算模型也不断得到改善。故随着GPP硬件层面的升级更新,使得基于通用处理器实现的软件无线电平台成为可能,例如基于GPP的软件无线电设计平台Openairinterface(OAI)、AmarisoftLTE等,但是由于LDPC译码器的吞吐率性能较低,限制了此类软件无线电平台的使用。
为了进一步提升LDPC译码器的吞吐率性能,GPP通过采用了并行处理架构,例如:单指令多数据流(Single InstructionhMultiple Data,SIMD)、单程序多数据流(SingleProgram Multiple Data,SPMD)、单指令多线程(Single Instructionh Multiple Thread,SIMT)等。近年来基于SIMD架构的矢量扩展指令集得到了飞速的发展,其支持位宽从早期的64bit位宽朝着更高并行度发展。这些并行处理技术已广泛的集成在了GPP设备中,但如何将这些并行处理技术与具体算法进行高效的结合,仍然存在着许多困难。
由于LDPC码的译码算法复杂度较大,但却具有良好的并行结构,因此对LDPC译码器进行并行化设计,能够得到更高的吞吐量。目前已经有许多论文做出了关于LDPC译码器在GPP设备上实现的相关工作,主要集中于:基于传统SIMD架构采用更高位宽的矢量扩展指令集集上,通过增加同一指令周期内所处理的数据宽度,即增加同一时间所处理的LDPC码块数量来实现。虽然采用高位宽矢量扩展指令集能够提升LDPC译码器的吞吐率,但在实际通信系统中采用此类LDPC译码器会存在以下问题:
(1)由于高位宽矢量扩展指令集优化难度和GPP处理功耗的限制,矢量扩展指令集位宽的提升对LDPC译码器吞吐率的提升存在明显衰减,单纯的提升矢量扩展指令集位宽,提升单位时间处理的LDPC码块数,在多数情况下反而会增加运算指令处理时间,增加译码处理延时。
(2)高位宽矢量扩展指令集对于GPP配置的要求更高,同时其功耗要求也更高。
(3)采用高位宽矢量扩展指令集只有在通信系统中处理单元的数据位宽能够整除指令位宽时才能充分发挥其处理能力,达到其译码吞吐率的理论值。即高位宽矢量扩展指令集只有在,系统所需的LDPC译码处理单元数,刚好可以整除矢量扩展指令位宽时效率才能体现出来。系统所需的LDPC译码处理单元数和指令位宽处于非整除区间内,采用高指令位宽带来的译码器吞吐率提升,会大幅衰减。同时,由于位宽不匹配带来的无效译码运算,还会徒增系统处理功耗。
(4)为了使高位宽矢量扩展指令集的处理效率最大化,限制了采用该设计方法译码器的应用场景,同时对于采用该译码器的系统设计带来了更高的要求。
因此需要设计出一种新的自适应SIMD架构的通用高吞吐率LDPC译码方法及系统,满足通信系统中不同应用场景对于LDPC译码器的要求,同时能充分发挥基于SIMD架构的高矢量扩展指令集所带来的LDPC译码吞吐率提升。
发明内容
本发明的目的是提供一种通用高吞吐率的LDPC译码方法及系统,在提升译码器吞吐率的同时能够最大限度地利用GPP的资源。
为实现上述目的,本发明提供了如下方案:
一种通用高吞吐率的LDPC译码方法,包括:
基于目标系统的需求,自适应配置LDPC译码器的矢量扩展指令集类型;所述目标系统为包括LDPC译码器的系统;
基于自适应配置的LDPC译码器的矢量扩展指令集类型以及并行处理方式,对待译码数据进行译码操作;
对初始译码结果进行硬判决操作,以得到最终译码结果;所述初始译码结果为对待译码数据进行译码操作后得到的数据。
可选的,所述基于目标系统的需求,自适应配置LDPC译码器的矢量扩展指令集类型,具体包括:
基于LDPC译码块数量以及定点化处理位宽,自适应配置LDPC译码器的译码单元采用的矢量扩展指令集类型;所述目标系统的需求包括LDPC译码块数量和定点化处理位宽。
可选的,所述基于LDPC译码块数量以及定点化处理位宽,自适应配置LDPC译码器的译码单元采用的矢量扩展指令集类型,具体包括:
根据以下公式,自适应配置LDPC译码器的译码单元采用的矢量扩展指令集类型;所述公式为:
remainder=Block_number%mod(512,δ) (1);
其中,SIMD512代表译码单元是否采用位宽为512位的矢量扩展指令集,1表示采用,0表示未采用;
SIMD256代表译码单元是否采用位宽为256位的矢量扩展指令集;
SIMD128代表译码单元是否采用位宽为125位的矢量扩展指令集;
SIMD64代表译码单元是否采用位宽为64位的矢量扩展指令集;
SIMD32代表译码单元是否采用位宽为32位的矢量扩展指令集;
remainder代表LDPC译码块在进行目标值分组后多余的LDPC译码块个数;目标值为512/δ;δ代表定点化处理位宽;
Block_number代表LDPC译码块数量;
mod(A,B)代表A整除B得到的结果。
可选的,所述基于自适应配置的LDPC译码器的矢量扩展指令集类型以及并行处理方式,对待译码数据进行译码操作,具体包括:
对待译码数据进行预处理操作;其中,预处理操作包括定点化操作和数据打包操作;
基于自适应配置的LDPC译码器的矢量扩展指令集类型以及并行处理方式,对预处理操作后的待译码数据进行译码操作。
可选的,所述基于自适应配置的LDPC译码器的矢量扩展指令集类型以及并行处理方式,对预处理操作后的待译码数据进行译码操作,具体包括:
判断当前迭代次数是否小于设定迭代次数,得到第一判断结果;
若所述第一判断结果表示所述当前迭代次数等于所述设定迭代次数,则将当前迭代次数对应的消息节点的值确定初始译码结果;
若所述第一判断结果表示所述当前迭代次数小于所述设定迭代次数,则令i=i+1,更新当前迭代次数对应的消息节点的值,并返回判断当前迭代次数是否小于设定迭代次数,得到第一判断结果的步骤;i表示当前迭代次数;
表示当前迭代次数对应的消息节点的值,表示当前迭代次数对应的校验节点传递到消息节点的值,表示当前迭代次数对应的消息节点传递到校验节点的值;n代表第n个信息节点;m代表第m个检验节点;所述预处理操作后的待译码数据为初始化消息节点的值。
可选的,所述更新当前迭代次数对应的消息节点的值,具体包括:
根据采用归一化最小和或者偏移量最小和的方式更新当前迭代次数对应的校验节点传递到消息节点的值;
基于更新后的当前迭代次数对应的消息节点传递到校验节点的值和更新后的当前迭代次数对应的校验节点传递到消息节点的值,更新当前迭代次数对应的消息节点的值。
可选的,所述基于更新后的当前迭代次数对应的消息节点传递到校验节点的值和更新后的当前迭代次数对应的校验节点传递到消息节点的值,更新当前迭代次数对应的消息节点的值,具体包括:
对更新后的当前迭代次数对应的消息节点传递到校验节点的值和更新后的当前迭代次数对应的校验节点传递到消息节点的值分别进行预处理操作;所述预处理操作包括取绝对值操作和限幅操作;
基于预处理操作后的当前迭代次数对应的消息节点传递到校验节点的值和预处理操作后的当前迭代次数对应的校验节点传递到消息节点的值,更新当前迭代次数对应的消息节点的值。
可选的,所述基于预处理操作后的当前迭代次数对应的消息节点传递到校验节点的值和预处理操作后的当前迭代次数对应的校验节点传递到消息节点的值,更新当前迭代次数对应的消息节点的值,具体包括:
将列迭代次数加1,并判断更新后的列迭代次数是否超过LDPC校验矩阵的列重,得到第二判断结果;
若所述第二判断结果表示更新后的列迭代次数超过LDPC校验矩阵的列重,则将行迭代次数加1,并判断更新后的行迭代次数是否超过LDPC校验矩阵的行数量,得到第三判断结果;
若所述第二判断结果表示更新后的列迭代次数未超过LDPC校验矩阵的列重,则返回对更新后的当前迭代次数对应的消息节点传递到校验节点的值和更新后的当前迭代次数对应的校验节点传递到消息节点的值分别进行预处理操作步骤;
若所述第三判断结果表示更新后的行迭代次数超过LDPC校验矩阵的行数量,则输出基于预处理操作后的当前迭代次数对应的消息节点传递到校验节点的值和预处理操作后的当前迭代次数对应的校验节点传递到消息节点的值确定的消息节点的值;
若所述第三判断结果表示更新后的行迭代次数未超过LDPC校验矩阵的行数量,则返回基于更新后的当前迭代次数对应的消息节点传递到校验节点的值和更新后的当前迭代次数对应的校验节点传递到消息节点的值,更新当前迭代次数对应的消息节点的值的步骤。
一种通用高吞吐率的LDPC译码系统,包括
自适应配置模块,用于基于目标系统的需求,自适应配置LDPC译码器的矢量扩展指令集类型;所述目标系统为包括LDPC译码器的系统;
译码操作模块,用于基于自适应配置的LDPC译码器的矢量扩展指令集类型以及并行处理方式,对待译码数据进行译码操作;
硬判决操作模块,用于对初始译码结果进行硬判决操作,以得到最终译码结果;所述初始译码结果为对待译码数据进行译码操作后得到的数据。
可选的,所述自适应配置模块,具体包括:
自适应配置单元,用于基于LDPC译码块数量以及定点化处理位宽,自适应配置LDPC译码器的译码单元采用的矢量扩展指令集类型;所述目标系统的需求包括LDPC译码块数量和定点化处理位宽。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明采用不同的位宽矢量扩展指令集设计LDPC译码器,避免了高位宽的矢量扩展指令集在实际通信系统中会导致更多的CPU资源消耗引发各种问题,达到了在提升译码器吞吐率的同时能够最大限度地利用GPP的资源的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明通用高吞吐率的LDPC译码方法的流程示意图;
图2为本发明通用高吞吐率的LDPC译码方法的整体流程图;
图3为本发明自适应配置过程示意图;
图4为本发明译码操作过程示意图;
图5为现有技术与本发明不同位宽矢量扩展指令集设计的LDPC译码器吞吐率对比一图;
图6为现有技术与本发明不同位宽矢量扩展指令集设计的LDPC译码器吞吐率对比二图;
图7为本发明通用高吞吐率的LDPC译码系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种通用高吞吐率的LDPC译码方法及系统,在提升译码器吞吐率的同时能够最大限度地利用GPP的资源。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
英文缩写以及中文名称说明:
LDPC:Low-DensityParity-Check,低密度奇偶校验码。
WiFi(IEEE802.11n):无线网络。
WiMax(IEEE802.16E):World Interoperability forMicrowaveAccess,全球微波接入互操作性,即无线城域网。
DVB:DigitalVideo Broadcasting,数字广播电视。
uRLLC:UltraReliable Low Latency Communications,超可靠低时延通信。
ECC:Error Correcting Code,错误校验码。
GPP:通用处理器。
SIMD:Single InstructionhMultiple Data,单指令多数据流。
SPMD:Single ProgramMultiple Data,单程序多数据流。
SIMT:Single InstructionhMultiple Thread,单指令多线程。
MMX:Intel的一种基于X86处理器的64位位宽大小的矢量扩展指令集。
SSE:Intel的一种基于X86处理器的128位位宽大小的矢量扩展指令集。
AVX2:Intel的一种基于X86处理器的256位位宽大小的矢量扩展指令集。
AVX512:Intel的一种基于X86处理器的512位位宽大小的矢量扩展指令集。
NEON:基于ARM处理器的128位位宽大小的矢量扩展指令集。
CPU:中央处理器单元。
VEI32:不同GPP中处理数据位宽为32位的矢量扩展指令集的总称。
VEI64:不同GPP中处理数据位宽为64位的矢量扩展指令集的总称。
VEI128:不同GPP中处理数据位宽为128位的矢量扩展指令集的总称。
VEI256:不同GPP中处理数据位宽为256位的矢量扩展指令集的总称。
VEI512:不同GPP中处理数据位宽为512位的矢量扩展指令集的总称。
NMS:归一化最小和LDPC译码算法。
OMS:偏移量最小和LDPC译码算法。
LLR:对数-似然比。
VN:变量节点(消息节点)。
CN:校验节点。
CN_to_VN:校验节点传递到消息节点的数据。
VN_to_CN:消息节点传递到校验节点的数据。
ColumnDegs:列重,LDPC译码器校验矩阵中每行非零元素的个数。
NumberofDegs:不同列重在校验矩阵中出现的次数。
Max_iter_number:最大迭代次数。
如背景技术所述,目前提升基于传统SIMD架构的LDPC译码器吞吐率的主要方式是通过选择更高位宽的矢量扩展指令集,但单纯采用高位宽矢量扩展指令集,会带来上文所述的各种问题。如:随着矢量扩展指令集的位宽的提升,译码器的吞吐率达不到翻倍的效果,反而处理延时会增加,并且会消耗更多的功率,同时采用传统SIMD架构的高位宽矢量扩展指令集只有在通信系统特定的设计下才能发挥最大的吞吐率性能。
鉴于此,本发明提供的一种通用高吞吐率的LDPC译码方法及系统,能够减少现有基于高位宽矢量扩展指令集LDPC译码器中对于通信系统中不同LDPC译码需求下的无效计算,减少GPP译码处理功耗;同时通过自适应的方法最大限度的利用SIMD架构来提升译码器吞吐率。
实施例一
本实施例提供了一种基于自适应SIMD架构的通用高吞吐率的LDPC译码方法,既能提高LDPC译码器吞吐率又能够有效减少GPP在处理LDPC译码算法时的计算功耗。
本实施例提供了一种基于自适应SIMD架构的通用高吞吐率的LDPC译码方法,相较于目前普遍使用的基于SIMD架构设计的LDPC译码器,能够根据不同的场景需求切换选择使用不同的矢量扩展指令集,在提升译码器吞吐率的同时能够最大限度地利用GPP的资源。目前常用的矢量扩展指令集主要有五种类型:VEI32、VEI64、VEI128、VEI256和VEI512。其中VEI64、VEI128、VEI256和VEI512,在X86 CPU下分别通过MMX、SSE、AVX2和AVX512指令集的方式实现,分别能够对64bit、128bit、256bit和512bit的数据进行并行处理,即能够同时处理8、16、32和64个8bit大小的数据。在ARM架构的CPU上也存在基于SIMD架构的矢量扩展指令集的设计,即NEON指令集,最高能够支持128bits数据的并行计算。VEI32的设计方法则是通过将4个8bit数据整合为一个32bit的整型数据,从而实现对4个8bit数据的并行化处理,即Bit_packed。
表1在不同类型GPP上SIMD架构的常用指令集
32bit | 64bit | 128bit | 256bit | 512bit | |
X86 | Bit_packed | MMX | SSE | AVX2 | AVX512 |
ARM | Bit_packed | \ | Neon | \ | \ |
本实施例提供的基于自适应SIMD架构的通用高吞吐率的LDPC译码方法的具体实现步骤如图1所示,具体包括:
步骤101:基于目标系统的需求,自适应配置LDPC译码器的矢量扩展指令集类型;所述目标系统为包括LDPC译码器的系统。
步骤102:基于自适应配置的LDPC译码器的矢量扩展指令集类型以及并行处理方式,对待译码数据进行译码操作。
步骤103:对初始译码结果进行硬判决操作,以得到最终译码结果;所述初始译码结果为对待译码数据进行译码操作后得到的数据。其具体操作详细参见实施例二。
下面对本实施例提供的译码方法进行更为详细的介绍。
步骤101具体包括:
基于LDPC译码块数量Block_number以及定点化处理位宽δ(取值范围4、8、16、32),自适应配置LDPC译码器的译码单元采用的矢量扩展指令集类型;所述目标系统的需求包括LDPC译码块数量和定点化处理位宽。
其中,译码单元的矢量扩展指令集类型的选择规则参照如下计算公式:
remainder=Block_number%mod(512,δ) (1);
其中,SIMD512代表译码单元是否采用位宽为512位的矢量扩展指令集,1表示采用,0表示未采用;SIMD256代表译码单元是否采用位宽为256位的矢量扩展指令集;SIMD128代表译码单元是否采用位宽为125位的矢量扩展指令集;SIMD64代表译码单元是否采用位宽为64位的矢量扩展指令集;SIMD32代表译码单元是否采用位宽为32位的矢量扩展指令集;remainder代表LDPC译码块在进行目标值分组后多余的LDPC译码块个数;目标值为512/δ;δ代表定点化处理位宽;Block_number代表LDPC译码块数量;mod(A,B)代表A整除B得到的结果。
步骤102具体包括:
对待译码数据进行预处理操作;所述预处理操作包括定点化操作和数据打包操作;基于自适应配置的LDPC译码器的矢量扩展指令集类型以及并行处理方式,对预处理操作后的待译码数据进行译码操作。
其中,预处理操作过程在实施例二已经详细说明,再次不过多赘述。
所述基于自适应配置的LDPC译码器的矢量扩展指令集类型以及并行处理方式,对预处理操作后的待译码数据进行译码操作,具体包括:
判断当前迭代次数是否小于设定迭代次数,得到第一判断结果。
若所述第一判断结果表示所述当前迭代次数等于所述设定迭代次数,则将当前迭代次数对应的消息节点的值确定初始译码结果。
若所述第一判断结果表示所述当前迭代次数小于所述设定迭代次数,则令i=i+1,更新当前迭代次数对应的消息节点的值,并返回判断当前迭代次数是否小于设定迭代次数,得到第一判断结果的步骤;i表示当前迭代次数。
表示当前迭代次数对应的消息节点的值,表示当前迭代次数对应的校验节点传递到消息节点的值,表示当前迭代次数对应的消息节点传递到校验节点的值;n代表第n个信息节点;m代表第m个检验节点;所述预处理操作后的待译码数据为初始化消息节点的值。
进一步地,所述更新当前迭代次数对应的消息节点的值,具体包括:
根据采用归一化最小和或者偏移量最小和的方式更新当前迭代次数对应的校验节点传递到消息节点的值。
基于更新后的当前迭代次数对应的消息节点传递到校验节点的值和更新后的当前迭代次数对应的校验节点传递到消息节点的值,更新当前迭代次数对应的消息节点的值。
进一步地,所述基于更新后的当前迭代次数对应的消息节点传递到校验节点的值和更新后的当前迭代次数对应的校验节点传递到消息节点的值,更新当前迭代次数对应的消息节点的值,具体包括:
对更新后的当前迭代次数对应的消息节点传递到校验节点的值和更新后的当前迭代次数对应的校验节点传递到消息节点的值分别进行预处理操作;所述预处理操作包括取绝对值操作和限幅操作。
基于预处理操作后的当前迭代次数对应的消息节点传递到校验节点的值和预处理操作后的当前迭代次数对应的校验节点传递到消息节点的值,更新当前迭代次数对应的消息节点的值。
进一步地,所述基于预处理操作后的当前迭代次数对应的消息节点传递到校验节点的值和预处理操作后的当前迭代次数对应的校验节点传递到消息节点的值,更新当前迭代次数对应的消息节点的值,具体包括:
将列迭代次数加1,并判断更新后的列迭代次数是否超过LDPC校验矩阵的列重,得到第二判断结果。
若所述第二判断结果表示更新后的列迭代次数超过LDPC校验矩阵的列重,则将行迭代次数加1,并判断更新后的行迭代次数是否超过LDPC校验矩阵的行数量,得到第三判断结果。
若所述第二判断结果表示更新后的列迭代次数未超过LDPC校验矩阵的列重,则返回对更新后的当前迭代次数对应的消息节点传递到校验节点的值和更新后的当前迭代次数对应的校验节点传递到消息节点的值分别进行预处理操作步骤。
若所述第三判断结果表示更新后的行迭代次数超过LDPC校验矩阵的行数量,则输出基于预处理操作后的当前迭代次数对应的消息节点传递到校验节点的值和预处理操作后的当前迭代次数对应的校验节点传递到消息节点的值确定的消息节点的值。
若所述第三判断结果表示更新后的行迭代次数未超过LDPC校验矩阵的行数量,则返回基于更新后的当前迭代次数对应的消息节点传递到校验节点的值和更新后的当前迭代次数对应的校验节点传递到消息节点的值,更新当前迭代次数对应的消息节点的值的步骤。
实施例二
本实施例提供的基于自适应SIMD架构的通用高吞吐率LDPC译码方法的具体实现步骤如图2所示,主要通过四步完成:步骤一根据采用LDPC译码器的系统的需求,自适应配置译码器参数,即根据系统每次处理的LDPC译码块数量,自动选择合适的矢量扩展指令集类型,设计译码单元;步骤二在进行译码处理前,需要对待译码数据进行预处理,即对待译码数据进行定点化操作以及数据打包操作;步骤三是译码操作,即采用译码迭代算法对预处理后的待译码数据进行译码处理;步骤四是硬判决,对译码后的数据执行硬判决操作,并输出最终的数据。
对译码方法步骤的具体介绍如下:
在执行步骤一前,先配置LDPC译码器的基本参数(即用户选择配置译码器参数),例如码长以及码率。
步骤一:根据用户每次需要处理的LDPC译码块数量Block_number及用户设定的定点化处理位宽δ(取值范围4、8、16、32),自适应配置LDPC译码器的译码单元采用的矢量扩展指令集类型。
其中,译码单元的矢量扩展指令集类型的选择规则参照如下计算公式:
remainder=Block_number%mod(512,δ) (1);
上式中SIMD512、SIMD256、SIMD128、SIMD64和SIMD32分别代表在自适应配置后译码器的译码单元是否采用对应位宽的矢量扩展指令集,remainder代表码块分组后多余的码块个数,mod(A,B)代表A整除B得到的结果。
下面以定点化处理的位宽参数δ为8bit为例,具体介绍基于矢量扩展指令集的译码单元的确定过程,详细参见图3。
1.首先判断Block_number是否能够被64整除,并将每64个码块(LDPC译码块的简称)为一组的分组码块采用VEI512进行并行运算,之后对多余码块的数量remainder继续进行分析。
2.如果remainder大于32,则将多余码块打包采用VEI512进行并行运算,否则进行下一步计算。
3.如果remainder大于16,则将多余码块打包采用VEI256进行并行运算,否则进行下一步计算。
4.如果remainder大于8,则将多余码块打包采用VEI128进行并行运算,否则进行下一步计算。
5.如果remainder大于4,则将多余码块打包采用VEI64进行并行运算。否则进行下一步计算。
6.将多余部分码块采用VEI32进行并行运算。
步骤二:需要对接收到的待译码数据进行预处理,即进行定点化以及数据打包操作,将待译码数据预处理为适合矢量扩展指令集使用的数据类型。具体如下:
1.首先根据译码器参数中LDPC译码块的码长计算每次并行处理前,信息节点VN与传递信息节点CN_to_VN(从检验节点CN到消息节点VN)在各自缓冲区中的地址和所需的掩码类型,生成对应的起始地址表。
2.得到对应的起始地址表后,通过矢量扩展指令集中的max与min指令对输入的浮点型LLR先验数据(即待译码数据)进行定点化处理。
3.将定点化处理后的浮点型LLR先验数据存入到对应的信息节点VN缓存区,同时将传递信息节点CN_to_VN的缓存区和迭代计数器全部置零。
4.根据信息节点VN在VN缓存区中的地址,将预处理后的待译码数据传输到基于矢量扩展指令集的译码单元中,之后进入译码计算部分。
步骤三:在完成了LDPC译码器的参数配置以及对待译码数据进行预处理后开始执行译码操作。
在开始译码操作之前,先对译码操作所需的变量参数执行初始化操作,即赋予译码处理所需的变量初值,根据LDPC校验矩阵列重ColumnDegs的类型和不同类型列重的数量NumberofDegs,设计出相应的校验节点计算单元的迭代次数。
初始化操作后,从对应的缓存区中读取预处理后的待译码数据作为信息节点VN的VN值,并将迭代次数设为1,开始迭代译码操作。
计算完传递消息节点VN_to_CN的值后,需要对传递消息节点CN_to_VN(校验节点传递到消息节点)的值进行计算。本实施例采用归一化最小和或者偏移量最小和的方式对传递消息节点CN_to_VN(校验节点传递到消息节点)的值进行更新。
集合N的取值范围为(0,ColumnDegs),n'为集合N中n=m以外的所有值,参数α为NMS算法的归一化参数,参数β为OMS算法的偏移量参数。
在每行的校验节点CN计算完成后,便需要对消息节点VN的值进行更新,消息节点VN的信息的下标为n。先读取每次需要的VN_to_CN的值和CN_to_VN的值消息节点VN的值为两者之和,计算完成后对n值进行判断,如果n小于ColumnDegs,那么n加1继续进行消息节点VN的计算,否则便退出循环进行下一环节。消息节点VN的值的计算公式如下:
计算完消息节点的值后,对译码迭代次数加1并进行判断,如果没有超过最大译码迭代次数便重新执行译码操作,否则中止译码进入下一步。译码流程如图4所示。同时图4标注了每个译码步骤所需采用的矢量扩展指令,其中矢量扩展指令的类型由本实施例步骤一得出。
本实施例针对译码部分的操作进行了并行化处理。基于矢量扩展指令集的并行化处理具体步骤如下:
1.初始化译码迭代次数i,将其设置为0。
2.初始化LDPC译码器的参数。初始化行迭代次数m和列迭代次数n,将其设置为0。
9.针对于这部分操作本发明的译码器也进行了并行化处理,首先将VN_to_CN的值和CN_to_VN的值通过abs指令将数据取得绝对值,之后使用max指令和min指令对数据进行限幅。最后使用and指令将传递信息数据求和得出新的En值,并采用max和min指令执行限幅操作。
10.将列迭代次数加1,进行判断,如果不超过列重ColumnDegs的大小,重复第9步,否则进行下一步。
11.将行迭代次数加1,进行判断,如果不超过行数量NumberofDegs大小重新进行第3步,否则进行下一步。
12.将译码迭代次数加1,进行判断,如果不超过最大迭代次数Max_iter_number,重新进行第2步,否则进行下一步开始硬判决操作。
步骤四:当达到最大迭代次数后,需要将对应消息节点VN的En值进行硬判决。
硬判决操作是通过调用min指令来完成,当译码得到的数据大于0时判决结果为1,小于0时判决结果为0。
由于在译码过程中采用了并行处理的方式,所以在进行硬判决的同时需要对数据进列重排序,重排序操作是通过mov和blend指令完成,之后通过store指令将数据存储到数据缓存区,输出LDPC译码后的最终结果。
目前提升基于GPP设计的LDPC译码器吞吐率的方式主要是通过选择高带宽的矢量扩展指令集,但高位宽的矢量扩展指令集在实际通信系统中会导致更多的CPU资源消耗引发各种问题,例如:随着矢量扩展指令集位宽的翻倍,译码器的吞吐率达不到翻倍的效果,反而会导致处理延时会增加并消耗更多的功率,采用高位宽的矢量扩展指令集只有在特定应用场景下才能发挥最大的吞吐率性能。因此采用高位宽的矢量扩展指令集设计LDPC译码器的方式虽然带来了吞吐率的提升,但是对于GPP的计算资源造成了极大的浪费。采用不同位宽矢量扩展指令集设计的LDPC译码器吞吐率如图5和图6所示,从图中可以看出采用位宽高的矢量扩展指令集并非一直能够取得最佳的吞吐率。基于上述理由本实施例提供的一种基于自适应SIMD架构的通用高吞吐率LDPC译码方法,用来适应不同场景的需求,从图5和图6中可以看出采用自适应的方式吞吐率能够一直达到最佳的效果。
本实施例采用了自适应的设计思路,针对不同的应用场景能够自动选择最佳的矢量扩展指令集。一方面保证能在不同应用场景下都达到最佳的吞吐率性能,另一方面在保证高吞吐率的同时有效的利用了GPP的指令集资源,减少了资源的浪费。
实施例三。
请参见图7,本实施例提供的一种通用高吞吐率的LDPC译码系统,包括:
自适应配置模块701,用于基于目标系统的需求,自适应配置LDPC译码器的矢量扩展指令集类型;所述目标系统为包括LDPC译码器的系统。
译码操作模块702,用于基于自适应配置的LDPC译码器的矢量扩展指令集类型以及并行处理方式,对待译码数据进行译码操作。
硬判决操作模块703,用于对初始译码结果进行硬判决操作,以得到最终译码结果;所述初始译码结果为对待译码数据进行译码操作后得到的数据。
所述自适应配置模块701,具体包括:
自适应配置单元,用于基于LDPC译码块数量以及定点化处理位宽,自适应配置LDPC译码器的译码单元采用的矢量扩展指令集类型;所述目标系统的需求包括LDPC译码块数量和定点化处理位宽。
基于自适应SIMD指令集架构的通用高吞吐率LDPC译码方法及系统,解决的技术问题主要体现在:
一是,本发明解决了采用传统SIMD架构的高位宽矢量扩展指令集只有在通信系统特定的设计下才能发挥最大的吞吐率性能的问题。
二是,本发明在不同通信系统中不同应用场景下,均可以最大程度上发挥出基于SIMD架构下通过采用高位宽的矢量扩展指令集所带来的译码吞吐率提升,同时在提升LDPC译码器吞吐率的,可以有效减少GPP在处理LDPC译码算法计算时的无效运算,降低了系统功耗。
三是,本发明所提出的一种基于自适应SIMD架构的通用高吞吐率LDPC译码方法及系统,不限于特定的LDPC译码算法,具有良好的适用性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种通用高吞吐率的LDPC译码方法,其特征在于,包括:
基于目标系统的需求,自适应配置LDPC译码器的矢量扩展指令集类型;所述目标系统为包括LDPC译码器的系统;
基于自适应配置的LDPC译码器的矢量扩展指令集类型以及并行处理方式,对待译码数据进行译码操作;
对初始译码结果进行硬判决操作,以得到最终译码结果;所述初始译码结果为对待译码数据进行译码操作后得到的数据。
2.根据权利要求1所述的一种通用高吞吐率的LDPC译码方法,其特征在于,所述基于目标系统的需求,自适应配置LDPC译码器的矢量扩展指令集类型,具体包括:
基于LDPC译码块数量以及定点化处理位宽,自适应配置LDPC译码器的译码单元采用的矢量扩展指令集类型;所述目标系统的需求包括LDPC译码块数量和定点化处理位宽。
3.根据权利要求2所述的一种通用高吞吐率的LDPC译码方法,其特征在于,所述基于LDPC译码块数量以及定点化处理位宽,自适应配置LDPC译码器的译码单元采用的矢量扩展指令集类型,具体包括:
根据以下公式,自适应配置LDPC译码器的译码单元采用的矢量扩展指令集类型;所述公式为:
remainder=Block_number%mod(512,δ) (1);
其中,SIMD512代表译码单元是否采用位宽为512位的矢量扩展指令集,1表示采用,0表示未采用;
SIMD256代表译码单元是否采用位宽为256位的矢量扩展指令集;
SIMD128代表译码单元是否采用位宽为125位的矢量扩展指令集;
SIMD64代表译码单元是否采用位宽为64位的矢量扩展指令集;
SIMD32代表译码单元是否采用位宽为32位的矢量扩展指令集;
remainder代表LDPC译码块在进行目标值分组后多余的LDPC译码块个数;目标值为512/δ;δ代表定点化处理位宽;
Block_number代表LDPC译码块数量;
mod(A,B)代表A整除B得到的结果。
4.根据权利要求1所述的一种通用高吞吐率的LDPC译码方法,其特征在于,所述基于自适应配置的LDPC译码器的矢量扩展指令集类型以及并行处理方式,对待译码数据进行译码操作,具体包括:
对待译码数据进行预处理操作;其中,预处理操作包括定点化操作和数据打包操作;
基于自适应配置的LDPC译码器的矢量扩展指令集类型以及并行处理方式,对预处理操作后的待译码数据进行译码操作。
5.根据权利要求4所述的一种通用高吞吐率的LDPC译码方法,其特征在于,所述基于自适应配置的LDPC译码器的矢量扩展指令集类型以及并行处理方式,对预处理操作后的待译码数据进行译码操作,具体包括:
判断当前迭代次数是否小于设定迭代次数,得到第一判断结果;
若所述第一判断结果表示所述当前迭代次数等于所述设定迭代次数,则将当前迭代次数对应的消息节点的值确定初始译码结果;
若所述第一判断结果表示所述当前迭代次数小于所述设定迭代次数,则令i=i+1,更新当前迭代次数对应的消息节点的值,并返回判断当前迭代次数是否小于设定迭代次数,得到第一判断结果的步骤;i表示当前迭代次数;
7.根据权利要求6所述的一种通用高吞吐率的LDPC译码方法,其特征在于,所述基于更新后的当前迭代次数对应的消息节点传递到校验节点的值和更新后的当前迭代次数对应的校验节点传递到消息节点的值,更新当前迭代次数对应的消息节点的值,具体包括:
对更新后的当前迭代次数对应的消息节点传递到校验节点的值和更新后的当前迭代次数对应的校验节点传递到消息节点的值分别进行预处理操作;所述预处理操作包括取绝对值操作和限幅操作;
基于预处理操作后的当前迭代次数对应的消息节点传递到校验节点的值和预处理操作后的当前迭代次数对应的校验节点传递到消息节点的值,更新当前迭代次数对应的消息节点的值。
8.根据权利要求7所述的一种通用高吞吐率的LDPC译码方法,其特征在于,所述基于预处理操作后的当前迭代次数对应的消息节点传递到校验节点的值和预处理操作后的当前迭代次数对应的校验节点传递到消息节点的值,更新当前迭代次数对应的消息节点的值,具体包括:
将列迭代次数加1,并判断更新后的列迭代次数是否超过LDPC校验矩阵的列重,得到第二判断结果;
若所述第二判断结果表示更新后的列迭代次数超过LDPC校验矩阵的列重,则将行迭代次数加1,并判断更新后的行迭代次数是否超过LDPC校验矩阵的行数量,得到第三判断结果;
若所述第二判断结果表示更新后的列迭代次数未超过LDPC校验矩阵的列重,则返回对更新后的当前迭代次数对应的消息节点传递到校验节点的值和更新后的当前迭代次数对应的校验节点传递到消息节点的值分别进行预处理操作步骤;
若所述第三判断结果表示更新后的行迭代次数超过LDPC校验矩阵的行数量,则输出基于预处理操作后的当前迭代次数对应的消息节点传递到校验节点的值和预处理操作后的当前迭代次数对应的校验节点传递到消息节点的值确定的消息节点的值;
若所述第三判断结果表示更新后的行迭代次数未超过LDPC校验矩阵的行数量,则返回基于更新后的当前迭代次数对应的消息节点传递到校验节点的值和更新后的当前迭代次数对应的校验节点传递到消息节点的值,更新当前迭代次数对应的消息节点的值的步骤。
9.一种通用高吞吐率的LDPC译码系统,其特征在于,包括:
自适应配置模块,用于基于目标系统的需求,自适应配置LDPC译码器的矢量扩展指令集类型;所述目标系统为包括LDPC译码器的系统;
译码操作模块,用于基于自适应配置的LDPC译码器的矢量扩展指令集类型以及并行处理方式,对待译码数据进行译码操作;
硬判决操作模块,用于对初始译码结果进行硬判决操作,以得到最终译码结果;所述初始译码结果为对待译码数据进行译码操作后得到的数据。
10.根据权利要求9所述的一种通用高吞吐率的LDPC译码系统,其特征在于,所述自适应配置模块,具体包括:
自适应配置单元,用于基于LDPC译码块数量以及定点化处理位宽,自适应配置LDPC译码器的译码单元采用的矢量扩展指令集类型;所述目标系统的需求包括LDPC译码块数量和定点化处理位宽。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110894999.9A CN113612581B (zh) | 2021-08-03 | 2021-08-03 | 一种通用高吞吐率的ldpc译码方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110894999.9A CN113612581B (zh) | 2021-08-03 | 2021-08-03 | 一种通用高吞吐率的ldpc译码方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113612581A true CN113612581A (zh) | 2021-11-05 |
CN113612581B CN113612581B (zh) | 2022-03-11 |
Family
ID=78307011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110894999.9A Active CN113612581B (zh) | 2021-08-03 | 2021-08-03 | 一种通用高吞吐率的ldpc译码方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113612581B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116610362A (zh) * | 2023-04-27 | 2023-08-18 | 合芯科技(苏州)有限公司 | 一种处理器指令集译码方法、系统、设备和存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040153934A1 (en) * | 2002-08-20 | 2004-08-05 | Hui Jin | Methods and apparatus for encoding LDPC codes |
CN101488760A (zh) * | 2009-02-13 | 2009-07-22 | 华中科技大学 | 一种低码率ldpc码的编码方法 |
EP2211469A1 (en) * | 2009-01-23 | 2010-07-28 | Nokia Siemens Networks Oy | Method of encoding or decoding for LDPC codes |
CN101854177A (zh) * | 2009-04-01 | 2010-10-06 | 中国科学院微电子研究所 | 一种高吞吐率的ldpc译码器 |
CN102164023A (zh) * | 2011-03-31 | 2011-08-24 | 复旦大学 | 自适应动态量化ldpc码译码方法 |
CN102340317A (zh) * | 2010-07-21 | 2012-02-01 | 中国科学院微电子研究所 | 结构化ldpc码的高吞吐率译码器结构及方法 |
CN202475439U (zh) * | 2011-11-28 | 2012-10-03 | 中国电子科技集团公司第五十四研究所 | 一种基于可配置qc-ldpc编译码算法的硬件仿真验证平台 |
CN103684474A (zh) * | 2012-08-31 | 2014-03-26 | 中国科学院上海高等研究院 | 一种高速ldpc译码器的实现方法 |
US20150188568A1 (en) * | 2013-12-27 | 2015-07-02 | Samsung Electronics Co., Ltd. | Method and apparatus for decoding non-binary parity check code |
CN106341136A (zh) * | 2015-07-08 | 2017-01-18 | 北京忆芯科技有限公司 | Ldpc解码方法及其装置 |
CN110730005A (zh) * | 2019-10-12 | 2020-01-24 | 湖南智领通信科技有限公司 | 一种基于矢量指令集的ldpc码快速译码方法 |
CN111211790A (zh) * | 2020-02-25 | 2020-05-29 | 重庆邮电大学 | 一种面向5g终端的高吞吐率ldpc译码算法及架构 |
-
2021
- 2021-08-03 CN CN202110894999.9A patent/CN113612581B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040153934A1 (en) * | 2002-08-20 | 2004-08-05 | Hui Jin | Methods and apparatus for encoding LDPC codes |
EP2211469A1 (en) * | 2009-01-23 | 2010-07-28 | Nokia Siemens Networks Oy | Method of encoding or decoding for LDPC codes |
CN101488760A (zh) * | 2009-02-13 | 2009-07-22 | 华中科技大学 | 一种低码率ldpc码的编码方法 |
CN101854177A (zh) * | 2009-04-01 | 2010-10-06 | 中国科学院微电子研究所 | 一种高吞吐率的ldpc译码器 |
CN102340317A (zh) * | 2010-07-21 | 2012-02-01 | 中国科学院微电子研究所 | 结构化ldpc码的高吞吐率译码器结构及方法 |
CN102164023A (zh) * | 2011-03-31 | 2011-08-24 | 复旦大学 | 自适应动态量化ldpc码译码方法 |
CN202475439U (zh) * | 2011-11-28 | 2012-10-03 | 中国电子科技集团公司第五十四研究所 | 一种基于可配置qc-ldpc编译码算法的硬件仿真验证平台 |
CN103684474A (zh) * | 2012-08-31 | 2014-03-26 | 中国科学院上海高等研究院 | 一种高速ldpc译码器的实现方法 |
US20150188568A1 (en) * | 2013-12-27 | 2015-07-02 | Samsung Electronics Co., Ltd. | Method and apparatus for decoding non-binary parity check code |
CN106341136A (zh) * | 2015-07-08 | 2017-01-18 | 北京忆芯科技有限公司 | Ldpc解码方法及其装置 |
CN110730005A (zh) * | 2019-10-12 | 2020-01-24 | 湖南智领通信科技有限公司 | 一种基于矢量指令集的ldpc码快速译码方法 |
CN111211790A (zh) * | 2020-02-25 | 2020-05-29 | 重庆邮电大学 | 一种面向5g终端的高吞吐率ldpc译码算法及架构 |
Non-Patent Citations (3)
Title |
---|
孟嘉慧; 赵旦峰; 田海: "面向5G的多元LDPC改进译码算法的仿真研究", 《计算机科学》 * |
朱孝银: "模拟器指令集扩展的设计与实现", 《计算机应用与软件》 * |
辛培哲; 林灯生: "LDPC码原理及其在无线通信中的应用前景", 《中国新通信》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116610362A (zh) * | 2023-04-27 | 2023-08-18 | 合芯科技(苏州)有限公司 | 一种处理器指令集译码方法、系统、设备和存储介质 |
CN116610362B (zh) * | 2023-04-27 | 2024-02-23 | 合芯科技(苏州)有限公司 | 一种处理器指令集译码方法、系统、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113612581B (zh) | 2022-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7373581B2 (en) | Device, program, and method for decoding LDPC codes | |
CN101478314B (zh) | 一种里德-所罗门编码译码器及其译码的方法 | |
Murugappa et al. | A flexible high throughput multi-ASIP architecture for LDPC and turbo decoding | |
CN110784232B (zh) | 一种空间耦合ldpc码滑窗译码方法 | |
US10484009B2 (en) | Decoding method and decoder for low-density parity-check code | |
US20090113174A1 (en) | Sign Operation Instructions and Circuitry | |
GB2563419A (en) | Polar decoder, communication unit, integrated circuit and method therefor | |
CN113612581B (zh) | 一种通用高吞吐率的ldpc译码方法及系统 | |
CN105262493A (zh) | 低密度奇偶校验码的译码方法 | |
JP6446459B2 (ja) | 値集合の中から第1の極値および第2の極値を識別するための方法および装置 | |
Xu et al. | AVX-512 based software decoding for 5G LDPC codes | |
CN107395326B (zh) | Lt码中的度分布优化算法及设备 | |
US10742355B2 (en) | Apparatus that receives non-binary polar code and decoding method thereof | |
CN108365918B (zh) | 一种基于有效集中准则的多元ldpc码译码方法 | |
Zhao et al. | High performance LDPC decoder on CELL BE for WiMAX system | |
Tiwari et al. | Flexible LDPC decoder using stream data processing for 802.11 n and 802.16 e | |
CN100417031C (zh) | 宽带无线接入系统中里德索洛门卷积级联码的实现方法 | |
CN109245775B (zh) | 一种译码器及其实现译码的方法 | |
CN110380735A (zh) | 一种基于单指令多数据流的软件实现qc-ldpc译码方法 | |
CN113595564B (zh) | 基于信息截断的低复杂度多进制ldpc码译码器装置 | |
Pan et al. | A high throughput LDPC decoder in CMMB based on virtual radio | |
KR102170785B1 (ko) | 병렬 sc 복호기의 멀티비트 부분합 네트워크 장치 | |
Debbabi et al. | Real time LP decoding of LDPC codes for high correction performance applications | |
US11483011B2 (en) | Decoding method, decoding device, and decoder | |
Yin et al. | High throughput parallel encoding and decoding architecture for polar codes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |