CN117254823B - 一种并行rs编码方法、装置、系统及计算机存储介质 - Google Patents

一种并行rs编码方法、装置、系统及计算机存储介质 Download PDF

Info

Publication number
CN117254823B
CN117254823B CN202311546573.XA CN202311546573A CN117254823B CN 117254823 B CN117254823 B CN 117254823B CN 202311546573 A CN202311546573 A CN 202311546573A CN 117254823 B CN117254823 B CN 117254823B
Authority
CN
China
Prior art keywords
data
exclusive
parallel
sub
preset
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.)
Active
Application number
CN202311546573.XA
Other languages
English (en)
Other versions
CN117254823A (zh
Inventor
王茂庆
韩兵
廉哲
彭兴贵
邵毅男
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Lianxun Instrument Co ltd
Original Assignee
Suzhou Lianxun Instrument Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Lianxun Instrument Co ltd filed Critical Suzhou Lianxun Instrument Co ltd
Priority to CN202311546573.XA priority Critical patent/CN117254823B/zh
Publication of CN117254823A publication Critical patent/CN117254823A/zh
Application granted granted Critical
Publication of CN117254823B publication Critical patent/CN117254823B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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/2903Methods and arrangements specifically for encoding, e.g. parallel encoding of a plurality of constituent codes

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种并行RS编码方法、装置、系统及计算机存储介质,涉及RS编码领域,将接收到串行的待编码数据转换成多路并行的待编码数据,将待编码数据分割成多个子数据,利用预设异或关系式对子数据中的某几位数据进行异或运算得到第一异或值,将属于同一待编码数据的第一异或值再进行异或得到第二异或值,基于所有的第二异或值确定中间参数,然后将中间参数与预设经验参数之和作为新的待编码数据,重新执行整个流程以确定新的中间参数,在循环一定次数后,将最新的中间参数作为最终输出。通过分割子数据的方式,可以有效降低异或计算难度,解决了RS编码在高并行度时的编码复杂的问题,且有利于时序收敛,保证实际传输效率达到400G。

Description

一种并行RS编码方法、装置、系统及计算机存储介质
技术领域
本发明涉及RS编码领域,特别是涉及一种并行RS编码方法、装置、系统及计算机存储介质。
背景技术
RS编码(Reed-solomon code,里所码)被广泛应用于通信系统中以保证数据的准确性,RS编码的基本思路是在发送设备发送数据之前,先将该数据进行重编码,在其中加入一定的冗余码,与原信息内容共同组成多个codeword并发送给接收端,接收端通过解码检查可以对其中的错误数据进行纠错,从而实现保证数据准确性的目的。因此,在接收到来自发送设备的数据后,需要通过RS编码输出冗余码以组成codeword。
目前,RS编码通常应用在RS(255,239)等通讯环境中,虽然也有应用于RS(544,514),但是目前的RS编码在RS(544,514)通讯环境的传输效率通常保持在100G,而在400G及更高的传输环境中,由于RS编码的并行度高,导致编码复杂度高且时序难以收敛,从而难以保证发送设备的实际传输效率达到400G。
发明内容
本发明的目的是提供一种并行RS编码方法、装置、系统及计算机存储介质,可以有效地降低异或计算难度,解决了RS编码在高并行度时的编码复杂的问题,且有利于时序收敛,保证实际传输效率达到400G。
为解决上述技术问题,本发明提供了一种并行RS编码方法,包括:
将接收到串行的第一待编码数据转换成P路并行的第二待编码数据,各个所述第二待编码数据的位宽相同,P为不小于2的整数;
并行将P个所述第二待编码数据分割成多个第一子数据;
利用预设异或关系式,并行确定各个所述第一子数据中的指定多位数的数据进行异或运算得到的第一异或值;
将属于同一所述第二待编码数据的各个所述第一子数据的第一异或值进行异或,得到所述第二待编码数据的第二异或值;
基于P个所述第二待编码数据的第二异或值确定第一中间参数;
将所述第一中间参数与预设经验参数之和作为新的所述第一待编码数据,返回将接收到串行的第一待编码数据转换成P路并行的第二待编码数据的步骤,以便确定新的所述第一中间参数;
在确定了预设次数的所述第一中间参数后,将最新的所述第一中间参数作为所述并行RS编码最终输出的冗余码数据。
一方面,在将接收到串行的第一待编码数据转换成P路并行的第二待编码数据之前,还包括:
判断所述第一待编码数据的位宽是否为并行路数P的整数倍;
若是,则将所述第一待编码数据的位宽除以所述并行路数P的商值作为所述预设次数;
若否,则将所述第一待编码数据的位宽除以所述并行路数P的商值的整数部分数值加1,作为所述预设次数。
一方面,当所述第一待编码数据的位宽不为并行路数P的整数倍,在最后一次确定新的所述第一中间参数时,在将接收到串行的第一待编码数据转换成P路并行的第二待编码数据之前,还包括:
确定所述预设次数减1的差值乘以所述并行路数P的乘积;
确定所述第一待编码数据的位宽减去所述乘积的差值作为新的所述并行路数P。
一方面,并行将P个所述第二待编码数据分割成多个第一子数据,包括:
当所述第二待编码数据的位宽为预设位宽的整数倍时,对于每个所述第二待编码数据,将所述第二待编码数据分割成位宽等于预设位宽的F个所述第一子数据,F为不小于2的整数;
当所述第二待编码数据的位宽不为所述预设位宽的整数倍时,对于每个所述第二待编码数据,将所述第二待编码数据分割成位宽等于所述预设位宽的F-1个所述第一子数据以及1个位宽小于所述预设位宽的残余数据;在所述残余数据中补充多位数据直到所述残余数据的位宽等于所述预设位宽,将所述残余数据作为一个所述第一子数据。
一方面,在将所述第一中间参数与预设经验参数之和作为新的所述第一待编码数据之前,还包括:
将第一预设参数与第二预设参数的乘积作为所述预设经验参数;
在将所述第一中间参数与预设经验参数之和作为新的所述第一待编码数据之后,还包括:
将新的所述第一待编码数据作为新的所述第二预设参数;
其中,所述第一预设参数为固定值;在第一次确定所述第一中间参数时,所述第二预设参数为0。
一方面,利用预设异或关系式,并行确定各个所述第一子数据中的指定多位数的数据进行异或运算得到的第一异或值,包括:
根据各个所述第一子数据对应在所述第二待编码数据中的位宽范围,确定所述预设异或关系式指定的各个位数所在的位宽范围;
将所述预设异或关系式中的属于相同的所述位宽范围的指定位数的异或运算作为所述位宽范围的子关系式;
对于任一个所述第二待编码数据,并行将各个所述第一子数据分别代入到自身所在的所述位宽范围的所述子关系式中,得到各个所述第一子数据的第一异或值。
一方面,基于P个所述第二待编码数据的第二异或值确定第一中间参数,包括:
将P个所述第二待编码数据的第二异或值按位平均分成多个第二子数据;
将所有的所述第二子数据均输入到预设RS编码矩阵中;
以E个所述第二子数据为一组,将位于所述预设RS编码矩阵中同一行的所述第二子数据分成多组数据集,E为不小于2的整数;
在任一组所述数据集中,将每一个所述第二子数据的第j位数据进行异或,作为所述数据集的第j位输出数据,其中,j为不大于所述子数据的位宽的任意一个正整数;
判断所述数据集的数量是否为1;
若是,则确定所述数据集中的输出数据为所述第一中间参数;
若否,则将所有的所述数据集均作为新的所述子数据,返回以E个所述第二子数据为一组,将位于所述预设RS编码矩阵中同一行的所述第二子数据分成多组数据集的步骤。
本申请还提供一种并行RS编码装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述的并行RS编码方法的步骤。
本申请还提供一种并行RS编码系统,包括:
转换单元,用于将接收到串行的第一待编码数据转换成P路并行的第二待编码数据,各个所述第二待编码数据的位宽相同,P为不小于2的整数;
分割单元,用于并行将P个所述第二待编码数据分割成多个第一子数据;
第一计算单元,用于利用预设异或关系式,并行确定各个所述第一子数据中的指定多位数的数据进行异或运算得到的第一异或值;
确定单元,用于将属于同一所述第二待编码数据的各个所述第一子数据的第一异或值进行异或,得到所述第二待编码数据的第二异或值;
第二计算单元,用于基于P个所述第二待编码数据的第二异或值确定第一中间参数;
循环单元,用于将所述第一中间参数与预设经验参数之和作为新的所述第一待编码数据,返回将接收到串行的第一待编码数据转换成P路并行的第二待编码数据的步骤,以便确定新的所述第一中间参数;
输出单元,用于在确定了预设次数的所述第一中间参数后,将最新的所述第一中间参数作为所述并行RS编码最终输出的冗余码数据。
本申请还提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的并行RS编码方法的步骤。
本申请的有益效果在于,提供了一种并行RS编码方法、装置、系统及计算机存储介质,涉及RS编码领域,将接收到串行的第一待编码数据转换成P路并行的第二待编码数据,并行将P个第二待编码数据分割成多个第一子数据,利用预设异或关系式,且并行确定各个第一子数据中的指定多位数的数据进行异或运算得到的第一异或值,将属于同一第二待编码数据的各个第一子数据的第一异或值进行异或,得到第二待编码数据的第二异或值,基于P个第二待编码数据的第二异或值确定第一中间参数,然后将第一中间参数与预设经验参数之和作为新的第一待编码数据来重复执行整个流程,以便确定新的第一中间参数;最后,在确定了预设次数的第一中间参数后,将最新的第一中间参数作为并行RS编码最终输出的冗余码数据。通过分割子数据的方式,可以有效地降低异或计算难度,解决了RS编码在高并行度时的编码复杂的问题,且有利于时序收敛,保证实际传输效率达到400G。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种并行RS编码方法的流程图;
图2为现有技术提供的串行RS编码方法的流程图;
图3为本申请提供的一种并行RS编码流程的示意图;
图4为本申请提供的一种并行RS编码装置的结构示意图。
具体实施方式
本发明的核心是提供一种并行RS编码方法、装置、系统及计算机存储介质,可以有效地降低异或计算难度,解决了RS编码在高并行度时的编码复杂的问题,且有利于时序收敛,保证实际传输效率达到400G。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
RS并行编码已被广泛应用,目前大多应用于RS(255,239)等环境,虽然也有应用于RS(544,514),但是应用在RS(544,514)时的传输效率通常局限在100G;若想应用在RS(544,514)环境,并要求传输效率到达400G及更高,由于RS编码的并行度高,导致复杂度高且时序难以收敛,无法满足编码效率,系统传输效率难以达到400G。
请参照图1,图1为本申请提供的一种并行RS编码方法的流程图,包括:
S1:将接收到串行的第一待编码数据转换成P路并行的第二待编码数据,各个第二待编码数据的位宽相同,P为不小于2的整数;
为了实现并行编码,在接收到来自其他设备发送的一条数据时,将该串联的数据转换为P路的并行输入数据,P的具体值需要根据设备的实际通道数以及并行处理性能来决定,被转换成的P路数据的位宽均等于设备的一个通道中的一个symbol(symbol表示为符号,其具体指的是单条通道所包含的数据会根据RS编码中的预设交织分布规则分成多段字符串,该字符串即为symbol,一个symbol表示单条实际数据内容或者单条冗余码,例如symbol通常为一个10比特位宽的字符串)的位宽长度,方便按照各个symbol执行后续步骤。可以理解的是,当串行数据的总位宽大于设备中所有通道的symbol数量之和时,会先对数据的前一部分进行处理并得到最终冗余码的前一部分,再对剩余部分进行处理得到最终冗余码的后一部分,将多部分按照位置合并得到最终的冗余码。
在RS编码技术中,除了真实数据信息以外,还会加入一定量的冗余信息,将整个RS编码数据减去该真实数据信息,剩余的信息即为冗余信息。RS编码中的数据通常包含RS(n,k,t,m)元素,其中,n为frame size(帧长度,RS编码数据分布到虚拟通道中的symbol个数);k为message size(信息长度,表示包含真实数据信息的symbol个数);t为correctablesymbol error per frame(RS编码数据中的单个symbol最多含有的误码字符个数);m为symbol size(单个symbol的位宽)。
在RS(544,514)环境中,n表示为544个symbol,k表示为514个代表信息符号的symbol,n-k得到的30个symbol作为冗余码数据的symbol,也即作为第一待编码数据,对第一待编码数据(30个symbol)进行重编码并输出,是RS编码需要实现的目的。
S2:并行将P个第二待编码数据分割成多个第一子数据;
在现有的RS编码方式中,由于冗余码数据的位宽较大,在进行异或计算时需要占用大量的异或逻辑门,在400G这种并行度高的情况下将导致逻辑复杂的RS编码出现时序收敛困难的情况。
因此,本申请在进行异或计算之前,首先把每一路的冗余码分割成多个第一子数据(假设为F个),每个子数据都只有原来第二待编码数据的1/F的位宽,后续在对这些子数据进行异或计算时,可以显著地减少单次异或计算的异或逻辑门使用量。
S3:利用预设异或关系式,并行确定各个第一子数据中的指定多位数的数据进行异或运算得到的第一异或值;
S4:将属于同一第二待编码数据的各个第一子数据的第一异或值进行异或,得到第二待编码数据的第二异或值;
在进行异或计算时,不同情况下的异或计算式是固定的,现有技术直接将第二待编码数据带入到该异或计算式中进行计算来得到第二异或值;但是,由于总共有P个第二待编码数据,每个第二待编码数据都要参与计算,将会导致同时参与异或运算的异或逻辑门过多,从而产生上述的时序收敛困难的情况。
另外,现有技术还有一种采用LUT(Look-Up-Table,查找表)的方式来确定第二异或值,这种方式虽然可以实现时序收敛,但是这种方式不仅需要战用大量LUT逻辑,而且LUT功能只能在性能较好以及型号较新的设备中实现,可移植性较差,无法在较老的设备中采用,以常系数523为例,其对应的部分LUT如下表所示:
表1:常系数523的部分LUT查找表
对此,本申请在原有的异或运算上进行改进,假设第二待编码数据的位宽为10位,现有技术的异或计算步骤为,也即第二异或值等于第二待编码数据中的第2、3、4、5、6、9、10这7位数据进行异或的结果,每个第二待编码数据均需要使用到6个异或逻辑门,请参照图2,图2为现有技术提供的串行RS编码方法的流程图。在本申请中,假设将第二待编码数据分割为2个5位的第一子数据,在把这两个第一子数据代入到异或计算式中时,先分别得到第一异或值/>以及第一异或值/>,再将这两个第一异或值y1和y2进行异或得到第二异或值。本申请的结果与现有技术的计算结果一直,但单次计算只需要使用2个或者3个异或逻辑门,在P路并行计算的过程中,同时使用的异或逻辑门的数量从原来的6*P降低至最多的3*P,能够显著地降低使用的异或逻辑门的数量,避免时序收敛困难的情况发生;另外,即使是同时对计算P个第二待编码数据的两个子数据,同时使用的异或逻辑门的数量也只有5*P,仍比现有技术少。
S5:基于P个第二待编码数据的第二异或值确定第一中间参数;
在确定第一中间参数时,将P个第二待编码数据的第二异或值代入到预设的RS编码矩阵Y中,将该矩阵乘以大小为P的列向量u,得到的Yu即为第一中间参数。其中,列向量u是根据冗余码数据的symbol数量确定得到的。
具体的,在现有的RS编码原理中,有以下公式:
其中,为最终需要输出的冗余码数据,/>和/>都分别为第1个周期到倒数第二个周期计算得到的/>,为了区分/>x,下文将/>作为最终需要输出的冗余码数据,x为往次计算并输出的冗余码数据;/>为第1个周期到倒数第二个周期的预设多项式系数,该系数可以根据固定的公式和参数计算得到;A为上述公式中列数最大的矩阵,B为与列向量相乘的g矩阵;/>为上述的列向量。该种公式适用在并行度比较小的环境,如现有技术中的RS(255,239)或者RS(54,514)100G环境中,对于RS(544,514)400G及更高的环境中,并行度已经不能满足要求,因此需要采用以下公式作为新的RS编码原理:
相当于在现有的A矩阵以及b矩阵的基础上,在A矩阵增加了行列数均为p-n-k的0的元素,在b矩阵中也增加了p-n-k行的0元素。本方案需要基于p-n-k大于0的情况才能使用该新矩阵。将这两个矩阵代入上述的的计算公式中,得到以下关系式:
其中,为各个P路并行输入数据各自对应的矩阵,矩阵大小均为(n-k)*(n-k),/>为个P路并行输入各自对应的列向量;在上述等号左边的矩阵中,与个列向量u在同一列的X等于上述的/>矩阵。
矩阵Y等于矩阵,其列数为P,行数为n-k。
另外,对于上述的预设多项式系数g,可以根据以下关系式和查找表计算得到:
表2:预设多项式对应的系数表
在表2中,i表示为关系式中的t,i的具体数值与矩阵的行数以及列数为正相关,x为历史计算得到的冗余码,α为表示为关系式的中间参数。
S6:将第一中间参数与预设经验参数之和作为新的第一待编码数据,返回将接收到串行的第一待编码数据转换成P路并行的第二待编码数据的步骤,以便确定新的第一中间参数;
根据上述RS编码原理,第一中间参数等于关系式中的Yu,因为矩阵A和以往周期的x都可以通过预先计算得到,利用MATLAB计算出矩阵A中的每一个系数在伽罗华域对应的常系数乘法器,共得到(n-k)*(n-k)个常系数,所以可以将预设经验参数看作是。由此可得,RS编码电路输出的结果等于/>
将本次计算得到的作为新的第一待编码数据,再次执行上述流程,除了对/>进行异或计算以外,在上述关系式中,还需要将/>代入到X矩阵中来参与下个周期的/>计算,通过持续循环多个周期,进而得到第一个周期直到第n-k个周期的/>。另外需要说明的是,在第一个周期计算的过程中,可以将上述关系式中的/>设置为0。
S7:在确定了预设次数的第一中间参数后,将最新的第一中间参数作为并行RS编码最终输出的冗余码数据。
经过多个周期的迭代,将经过多个周期计算后最新输出的第一中间参数作为RS编码最终产生并输出的冗余码数据。具体经过的周期数量需要根据并行路数P来决定,可以将上述真实数据信息的symbol个数k除以P的商作为周期数。
综上,通过将接收到串行的第一待编码数据转换成P路并行的第二待编码数据,并行将P个第二待编码数据分割成多个第一子数据,利用预设异或关系式,且并行确定各个第一子数据中的指定多位数的数据进行异或运算得到的第一异或值,将属于同一第二待编码数据的各个第一子数据的第一异或值进行异或,得到第二待编码数据的第二异或值,基于P个第二待编码数据的第二异或值确定第一中间参数,然后将第一中间参数与预设经验参数之和作为新的第一待编码数据来重复执行整个流程,以便确定新的第一中间参数;最后,在确定了预设次数的第一中间参数后,将最新的第一中间参数作为并行RS编码最终输出的冗余码数据。通过分割子数据的方式,可以有效地降低异或计算难度,解决了RS编码在高并行度时的编码复杂的问题,且有利于时序收敛,保证实际传输效率达到400G。
在上述实施例的基础上:
在一些实施例中,在将接收到串行的第一待编码数据转换成P路并行的第二待编码数据之前,还包括:
判断第一待编码数据的位宽是否为并行路数P的整数倍;
若是,则将第一待编码数据的位宽除以并行路数P的商值作为预设次数;
若否,则将第一待编码数据的位宽除以并行路数P的商值的整数部分数值加1,作为预设次数。
为了确定合理的RS编码周期,可以将第一待编码数据的位宽或者将发送过来的整条数据的位宽除以P的商值作为周期数。以上述实施例中的k为例,假设预设周期的周期数为c,若k为P的整数倍,则预设周期的周期数c=k/P;若k不为P的整数倍,同样取c=k/P,并将商值的整数部分加1作为预设次数。可以理解的是,当k不为P的整数倍时,最后一个周期实际参与计算的第二待编码数据的数量少于并行路数P。
在一些实施例中,当第一待编码数据的位宽不为并行路数P的整数倍,在最后一次确定新的第一中间参数时,在将接收到串行的第一待编码数据转换成P路并行的第二待编码数据之前,还包括:
确定预设次数减1的差值乘以并行路数P的乘积;
确定第一待编码数据的位宽减去乘积的差值作为新的并行路数P。
为了降低RS编码的复杂度,可以根据最后一个周期实际参与计算的第二待编码数据的数量来确定最后一个周期新的并行路数。假设最后一个周期新的并行路数为P1,有P1=k-P*(c-1),即最后一个周期的有效数据位宽等于k-P*(c-1)。对于矩阵Y,由于最后一个周期的并行度不为P,因此矩阵Y中实际包含的元素数量并非P*(n-k),而是(k-P*(c-1))*(n-k)个。
在一些实施例中,并行将P个第二待编码数据分割成多个第一子数据,包括:
当第二待编码数据的位宽为预设位宽的整数倍时,对于每个第二待编码数据,将第二待编码数据分割成位宽等于预设位宽的F个第一子数据,F为不小于2的整数;
当第二待编码数据的位宽不为预设位宽的整数倍时,对于每个第二待编码数据,将第二待编码数据分割成位宽等于预设位宽的F-1个第一子数据以及1个位宽小于预设位宽的残余数据;在残余数据中补充多位数据直到残余数据的位宽等于预设位宽,将残余数据作为一个第一子数据。
为了简单地分割子第一子数据,本申请中,以z位数为一组,将第二待编码数据按位分割成多组位宽均为z的第一子数据。如果第二待编码数据的位数不是z的整数倍,也就是第二待编码数据无法分割成F个位宽都为z的第一子数据时,先将第二待编码数据的前z*(F-1)位数据平均分成F-1个位宽为z的第一子数据,然后在第二待编码数据的剩余数据的后面增加多个0,直到剩余数据的位数加上补充的0的位数等于z,将其作为最后一个第一子数据。
在一些实施例中,在将第一中间参数与预设经验参数之和作为新的第一待编码数据之前,还包括:
将第一预设参数与第二预设参数的乘积作为预设经验参数;
在将第一中间参数与预设经验参数之和作为新的第一待编码数据之后,还包括:
将新的第一待编码数据作为新的第二预设参数;
其中,第一预设参数为固定值;在第一次确定第一中间参数时,第二预设参数为0。
在进行周期迭代时,根据上述实施例,RS编码输出的。在第一个周期时,x=0,/>;在第二个周期时,将第一个周期的/>作为新的x,得/>;在第三个周期时,再将第二个周期的/>作为新的x,得到/>;依此类推,直到最后一个周期结束。在这一过程中,/>为第一预设参数,由于可以预先在MATLAB中计算出来,对于计算过程而言是可以已知得,因此作为第一预设参数;x作为第二预设参数,x是上个周期输出的结果,对于当前的周期而言也是已知的,因此作为第二预设参数。
经过不断迭代x,在经过c个周期迭代后,最后输出的/>即为最终输出的冗余码数据。
在一些实施例中,利用预设异或关系式,并行确定各个第一子数据中的指定多位数的数据进行异或运算得到的第一异或值,包括:
根据各个第一子数据对应在第二待编码数据中的位宽范围,确定预设异或关系式指定的各个位数所在的位宽范围;
将预设异或关系式中的属于相同的位宽范围的指定位数的异或运算作为位宽范围的子关系式;
对于任一个第二待编码数据,并行将各个第一子数据分别代入到自身所在的位宽范围的子关系式中,得到各个第一子数据的第一异或值。
为了有效收敛时序,本申请中,对于RS编码而言,矩阵中每个常系数的计算公式是都是已知的,通过计算矩阵中的常系数即可得出该系数的乘法器,将其用伽罗华域加法表示,即为多位数的异或关系式。
在现有技术中,以常系数523为例,其表达式有以下:
该表达式表示在常系数523的常系数乘法器中,矩阵元素为10位宽的数据y,该数据y的某一位数等于原数据x的某几位数进行异或的结果。以y[0]为例,,表示数据y的第1位数等于原数据x的第1位、第2位、第8位、第9位和第10位数据进行异或得到的异或结果(也即第二异或值);同理y[1]表示y的第2位数等于原数据x的第1、2、3、9、10位数据进行异或得到的第二异或值,其他位数同理;其中的原数据即为第二待编码数据。
由此可见,现有技术在进行运算时,需要占用大量的异或逻辑门,在RS(544,514)400G这种并行度高且逻辑复杂的情况下容易造成时序收敛困难的情况。
对此,本申请在进行异或计算时,除了将第二待编码数据分成多个子数据以外,还将异或关系式分成多个子关系式,每个子关系式都至少包含原来的异或关系式中的两个因数的异或运算,不同子关系式中包含的因数都不相同,而且属于同一个异或关系式分成的所有子关系式在合并后等于原来的异或关系式。以上述常系数523的y[0]为例,假设将10位宽的第二待编码数据(等于是原数据x)分成2个5位宽的第一子数据,并将y[0]也分成2个5位宽的子关系式,得到、/>。在计算时,将第二待编码数据的前5位对应的子数据输入到y1[0]的关系式中,将第二待编码数据的后5位对应的子数据输入到y2[0]的关系式中:y1[0]的关系式中进行第二待编码数据(原数据x)的第1位与第2位的异或运算得到第一异或值y1[0],并在y2[0]的关系式中进行第二待编码数据的第8位、第9位和第10位的异或运算得到另一个第一异或值y2[0];然后将y1[0]和y2[0]这两个第一异或值再进行异或得到最终的第二异或值y[0],相当于实现了这一关系式。
同理,在本申请中,仍以第二待编码数据为10位宽并分成2个5位宽的第一子数据为例,常系数523的关系式可以等效为下方的两个关系式的异或。
表示为第二待编码数据的前5位的第一子数据带入下述关系式:
表示为第二待编码数据的后5位的第一子数据带入下述关系式:
相比于现有技术所采用的把整个第二待编码数据带入到常系数关系式中的方式,本申请将原有的异或关系式分成了两段或多段,每一段子关系式仅有少量的异或逻辑门,在同样为P路并行的运算过程中,只需要同时使用到一半或更少的异或逻辑门,降低了占用逻辑和编码复杂度,更有利于时序收敛。
通过分割子数据以及分割子关系式,两者相结合不仅减少了占用逻辑和编码复杂度,而且在一些较老的设备中也能实现时序收敛,有益于整个算法的移植,比现有技术有更高的泛用性。
在实际应用时,对上述矩阵Y中的每一个元素都进行上述的常系数运算,可以用MATLAB确定每个系数对应的真值表和关系式等,从而完成对矩阵Y的运算。
在一些实施例中,基于P个第二待编码数据的第二异或值确定第一中间参数,包括:
将P个第二待编码数据的第二异或值按位平均分成多个第二子数据;
将所有的第二子数据均输入到预设RS编码矩阵中;
以E个第二子数据为一组,将位于预设RS编码矩阵中同一行的第二子数据分成多组数据集,E为不小于2的整数;
在任一组数据集中,将每一个第二子数据的第j位数据进行异或,作为数据集的第j位输出数据,其中,j为不大于子数据的位宽的任意一个正整数;
判断数据集的数量是否为1;
若是,则确定数据集中的输出数据为第一中间参数;
若否,则将所有的数据集均作为新的子数据,返回以E个第二子数据为一组,将位于预设RS编码矩阵中同一行的第二子数据分成多组数据集的步骤。
由于矩阵Y的列数不为1,需要继续异或直到矩阵Y的列数为1时才能确定第一中间参数Yu计算结束,现有技术直接将矩阵Y中的同一行的所有数据进行异或的方式将使用大量的异或逻辑门导致时序难以收敛。
为了简化逻辑运算,本申请中,矩阵Y中的每个元素(元素为通过上述常系数运算后得到的数据,也即Y[0]~Y[9])再平均分成M个位宽相同的子数据,如果无法平均分出子数据,则可以先分出M-1个位宽相同的子数据,再在最后一个子数据的最后几位补充多个0来使其位数与其他子数据相同。
原本的矩阵Y的行数为n-k且列数为p,在分割得到M个第二子数据后,矩阵Y行数仍为n-k,列数变为M*P,若分为2个子数据则矩阵Y中总共有2*P*(n-k)个数据。对于矩阵Y中的每一行数据,将M*P个第二子数据再按照E个为一组进行划分,得到L组数据集,如果M*P的乘积不为E的整数倍,同样可以在子数据不足E的数据集中加入几个数值全为0的子数据来补充数据集中的子数据数量。
得到L组数据集后,在每一组数据集相当于是E个子数据进行异或,由于每个子数据都包含多个位数,为了进一步简化逻辑运算,可以先把E个子数据的某一位数进行异或,得到数据集在这一位上的异或结果,通过按位异或的方式来进行多次异或计算得到数据集最终的输出数据。假设把矩阵Y中的6个元素作为一组,设定该组数据集中的数据为a1[9:0],a2[9:0],a3[9:0],a4[9:0],a5[9:0],a6[9:0](需要说明的是,为了简单和清晰地描述,在此并没有采用子数据来描述,实际应用中实际上是数据集中包含a1~a6的所有子数据)。在进行该组数据集的异或计算时,定义最重的输出数据为B[9:0],有以下:
;/>
……
由于矩阵Y的一行有L组数据集,因此矩阵Y总共可以得到L*(n-k)个数据,若L不为1则将此时的矩阵Y再重新进行上述的计算,也就是把矩阵Y中的每个数据集的输出数据B[9:0]视为新的子数据,然后以E个B[9:0]为一组再分成多个数据集,在每个数据集中把B[9:0]视为a[9:0]再计算出新的B[9:0]。
以此类推,通过不断地合并数据集并进行异或运算,直到矩阵Y的行数等于1,则完成了第一中间参数Yu的计算,请参照图3,图3为本申请提供的一种并行RS编码流程的示意图,图3中的异或树逻辑即为上述的计算过程。
请参照图4,图4为本申请提供的一种并行RS编码装置的结构示意图,包括:
存储器21,用于存储计算机程序;
处理器22,用于执行计算机程序时实现如上述的并行RS编码方法的步骤。
对于本申请提供的一种并行RS编码装置的详细介绍,请参照上述并行RS编码方法的实施例,本申请在此不再赘述。
本申请还通过一种并行RS编码系统,包括:
转换单元,用于将接收到串行的第一待编码数据转换成P路并行的第二待编码数据,各个第二待编码数据的位宽相同,P为不小于2的整数;
分割单元,用于并行将P个第二待编码数据分割成多个第一子数据;
第一计算单元,用于利用预设异或关系式,并行确定各个第一子数据中的指定多位数的数据进行异或运算得到的第一异或值;
确定单元,用于将属于同一第二待编码数据的各个第一子数据的第一异或值进行异或,得到第二待编码数据的第二异或值;
第二计算单元,用于基于P个第二待编码数据的第二异或值确定第一中间参数;
循环单元,用于将第一中间参数与预设经验参数之和作为新的第一待编码数据,返回将接收到串行的第一待编码数据转换成P路并行的第二待编码数据的步骤,以便确定新的第一中间参数;
输出单元,用于在确定了预设次数的第一中间参数后,将最新的第一中间参数作为并行RS编码最终输出的冗余码数据。
对于本申请提供的一种并行RS编码系统的详细介绍,请参照上述并行RS编码方法的实施例,本申请在此不再赘述。
本申请还提供一种计算机存储介质,计算机存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的并行RS编码方法的步骤。
对于本申请提供的一种计算机存储介质的详细介绍,请参照上述并行RS编码方法的实施例,本申请在此不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (9)

1.一种并行RS编码方法,其特征在于,包括:
将接收到串行的第一待编码数据转换成P路并行的第二待编码数据,各个所述第二待编码数据的位宽相同,P为不小于2的整数;
并行将P个所述第二待编码数据分割成多个第一子数据;
利用预设异或关系式,并行确定各个所述第一子数据中的指定多位数的数据进行异或运算得到的第一异或值;
将属于同一所述第二待编码数据的各个所述第一子数据的第一异或值进行异或,得到所述第二待编码数据的第二异或值;
基于P个所述第二待编码数据的第二异或值确定第一中间参数;
将所述第一中间参数与预设经验参数之和作为新的所述第一待编码数据,返回将接收到串行的第一待编码数据转换成P路并行的第二待编码数据的步骤,以便确定新的所述第一中间参数;
在确定了预设周期次数的所述第一中间参数后,将最终得到的所述第一中间参数作为所述并行RS编码最终输出的冗余码数据;
在将接收到串行的第一待编码数据转换成P路并行的第二待编码数据之前,还包括:
判断所述第一待编码数据的位宽是否为并行路数P的整数倍;
若是,则将所述第一待编码数据的位宽除以所述并行路数P的商值作为所述预设周期次数;
若否,则将所述第一待编码数据的位宽除以所述并行路数P的商值的整数部分数值加1,作为所述预设周期次数。
2.如权利要求1所述的并行RS编码方法,其特征在于,当所述第一待编码数据的位宽不为并行路数P的整数倍,在最后一次确定新的所述第一中间参数时,在将接收到串行的第一待编码数据转换成P路并行的第二待编码数据之前,还包括:
确定所述预设周期次数减1的差值乘以所述并行路数P的乘积;
确定所述第一待编码数据的位宽减去所述乘积的差值作为新的所述并行路数P。
3.如权利要求1所述的并行RS编码方法,其特征在于,并行将P个所述第二待编码数据分割成多个第一子数据,包括:
当所述第二待编码数据的位宽为预设位宽的整数倍时,对于每个所述第二待编码数据,将所述第二待编码数据分割成位宽等于预设位宽的F个所述第一子数据,F为不小于2的整数;
当所述第二待编码数据的位宽不为所述预设位宽的整数倍时,对于每个所述第二待编码数据,将所述第二待编码数据分割成位宽等于所述预设位宽的F-1个所述第一子数据以及1个位宽小于所述预设位宽的残余数据;在所述残余数据中补充多位数据直到所述残余数据的位宽等于所述预设位宽,将所述残余数据作为一个所述第一子数据。
4.如权利要求1所述的并行RS编码方法,其特征在于,在将所述第一中间参数与预设经验参数之和作为新的所述第一待编码数据之前,还包括:
将第一预设参数与第二预设参数的乘积作为所述预设经验参数;
在将所述第一中间参数与预设经验参数之和作为新的所述第一待编码数据之后,还包括:
将新的所述第一待编码数据作为新的所述第二预设参数;
其中,所述第一预设参数为固定值;在第一次确定所述第一中间参数时,所述第二预设参数为0。
5.如权利要求1所述的并行RS编码方法,其特征在于,利用预设异或关系式,并行确定各个所述第一子数据中的指定多位数的数据进行异或运算得到的第一异或值,包括:
根据各个所述第一子数据对应在所述第二待编码数据中的位宽范围,确定所述预设异或关系式指定的各个位数所在的位宽范围;
将所述预设异或关系式中的属于相同的所述位宽范围的指定位数的异或运算作为所述位宽范围的子关系式;
对于任一个所述第二待编码数据,并行将各个所述第一子数据分别代入到自身所在的所述位宽范围的所述子关系式中,得到各个所述第一子数据的第一异或值。
6.如权利要求1至5任一项所述的并行RS编码方法,其特征在于,基于P个所述第二待编码数据的第二异或值确定第一中间参数,包括:
将P个所述第二待编码数据的第二异或值按位平均分成多个第二子数据;
将所有的所述第二子数据均输入到预设RS编码矩阵中;
以E个所述第二子数据为一组,将位于所述预设RS编码矩阵中同一行的所述第二子数据分成多组数据集,E为不小于2的整数;
在任一组所述数据集中,将每一个所述第二子数据的第j位数据进行异或,作为所述数据集的第j位输出数据,其中,j为不大于所述子数据的位宽的任意一个正整数;
判断所述数据集的数量是否为1;
若是,则确定所述数据集中的输出数据为所述第一中间参数;
若否,则将所有的所述数据集均作为新的所述子数据,返回以E个所述第二子数据为一组,将位于所述预设RS编码矩阵中同一行的所述第二子数据分成多组数据集的步骤。
7.一种并行RS编码装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述的并行RS编码方法的步骤。
8.一种并行RS编码系统,其特征在于,包括:
转换单元,用于将接收到串行的第一待编码数据转换成P路并行的第二待编码数据,各个所述第二待编码数据的位宽相同,P为不小于2的整数;
分割单元,用于并行将P个所述第二待编码数据分割成多个第一子数据;
第一计算单元,用于利用预设异或关系式,并行确定各个所述第一子数据中的指定多位数的数据进行异或运算得到的第一异或值;
确定单元,用于将属于同一所述第二待编码数据的各个所述第一子数据的第一异或值进行异或,得到所述第二待编码数据的第二异或值;
第二计算单元,用于基于P个所述第二待编码数据的第二异或值确定第一中间参数;
循环单元,用于将所述第一中间参数与预设经验参数之和作为新的所述第一待编码数据,返回将接收到串行的第一待编码数据转换成P路并行的第二待编码数据的步骤,以便确定新的所述第一中间参数;
输出单元,用于在确定了预设周期次数的所述第一中间参数后,将最终得到的所述第一中间参数作为所述并行RS编码最终输出的冗余码数据;
所述并行RS编码系统还用于:
在将接收到串行的第一待编码数据转换成P路并行的第二待编码数据之前,判断所述第一待编码数据的位宽是否为并行路数P的整数倍;
若是,则将所述第一待编码数据的位宽除以所述并行路数P的商值作为所述预设周期次数;
若否,则将所述第一待编码数据的位宽除以所述并行路数P的商值的整数部分数值加1,作为所述预设周期次数。
9.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的并行RS编码方法的步骤。
CN202311546573.XA 2023-11-20 2023-11-20 一种并行rs编码方法、装置、系统及计算机存储介质 Active CN117254823B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311546573.XA CN117254823B (zh) 2023-11-20 2023-11-20 一种并行rs编码方法、装置、系统及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311546573.XA CN117254823B (zh) 2023-11-20 2023-11-20 一种并行rs编码方法、装置、系统及计算机存储介质

Publications (2)

Publication Number Publication Date
CN117254823A CN117254823A (zh) 2023-12-19
CN117254823B true CN117254823B (zh) 2024-03-15

Family

ID=89126920

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311546573.XA Active CN117254823B (zh) 2023-11-20 2023-11-20 一种并行rs编码方法、装置、系统及计算机存储介质

Country Status (1)

Country Link
CN (1) CN117254823B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180059150A (ko) * 2016-11-25 2018-06-04 에스케이하이닉스 주식회사 1 클럭 인코딩이 가능한 에러 정정 코드 인코더 및 에러 정정 코드 인코딩 방법과, 그리고 그 에러 정정 코드 인코더를 포함하는 메모리 컨트롤러
CN112468161A (zh) * 2020-12-01 2021-03-09 西安邮电大学 一种rs高速编码电路
CN113296999A (zh) * 2021-05-20 2021-08-24 山东云海国创云计算装备产业创新中心有限公司 一种raid6编码方法及编码电路
CN114499767A (zh) * 2022-04-14 2022-05-13 苏州联讯仪器有限公司 一种数据传输系统及其rs编码装置和方法
CN115632662A (zh) * 2022-12-20 2023-01-20 苏州联讯仪器股份有限公司 一种rs译码中的伴随式计算方法、装置、设备及介质
WO2023197506A1 (zh) * 2022-04-11 2023-10-19 苏州浪潮智能科技有限公司 一种数据存储方法、系统、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9673840B2 (en) * 2014-12-08 2017-06-06 SK Hynix Inc. Turbo product codes for NAND flash

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180059150A (ko) * 2016-11-25 2018-06-04 에스케이하이닉스 주식회사 1 클럭 인코딩이 가능한 에러 정정 코드 인코더 및 에러 정정 코드 인코딩 방법과, 그리고 그 에러 정정 코드 인코더를 포함하는 메모리 컨트롤러
CN112468161A (zh) * 2020-12-01 2021-03-09 西安邮电大学 一种rs高速编码电路
CN113296999A (zh) * 2021-05-20 2021-08-24 山东云海国创云计算装备产业创新中心有限公司 一种raid6编码方法及编码电路
WO2023197506A1 (zh) * 2022-04-11 2023-10-19 苏州浪潮智能科技有限公司 一种数据存储方法、系统、设备及存储介质
CN114499767A (zh) * 2022-04-14 2022-05-13 苏州联讯仪器有限公司 一种数据传输系统及其rs编码装置和方法
CN115632662A (zh) * 2022-12-20 2023-01-20 苏州联讯仪器股份有限公司 一种rs译码中的伴随式计算方法、装置、设备及介质

Also Published As

Publication number Publication date
CN117254823A (zh) 2023-12-19

Similar Documents

Publication Publication Date Title
US4649541A (en) Reed-Solomon decoder
CN101478314B (zh) 一种里德-所罗门编码译码器及其译码的方法
CN107239362B (zh) 一种并行crc校验码的计算方法及系统
CN101227194A (zh) 用于并行bch编码的电路、编码器及方法
CN112468161B (zh) 一种rs高速编码电路
Li et al. A 124-Gb/s decoder for generalized integrated interleaved codes
Xie et al. Reduced-complexity key equation solvers for generalized integrated interleaved BCH decoders
CN103986475A (zh) 里德-所罗门伞型代码的并行分解
US7458007B2 (en) Error correction structures and methods
CN117254823B (zh) 一种并行rs编码方法、装置、系统及计算机存储介质
CN115632662B (zh) 一种rs译码中的伴随式计算方法、装置、设备及介质
Li et al. Area-and power-efficient staircase encoder implementation for high-throughput fiber-optical communications
CN101834616A (zh) 里德-索罗蒙解码器实现方法
US20170288697A1 (en) Ldpc shuffle decoder with initialization circuit comprising ordered set memory
CN108347250B (zh) 适用于少量冗余里德-所罗门码的快速编码方法及设备
CN100417031C (zh) 宽带无线接入系统中里德索洛门卷积级联码的实现方法
CN109245775B (zh) 一种译码器及其实现译码的方法
Lin et al. A 2.56 Gb/s soft RS (255, 239) decoder chip for optical communication systems
Zhang VLSI architectures for Reed–Solomon codes: Classic, nested, coupled, and beyond
KR101908389B1 (ko) 에러 정정 코딩 및 디코딩
US20180006664A1 (en) Methods and apparatus for performing reed-solomon encoding by lagrangian polynomial fitting
RU2693190C1 (ru) Способ диагностики недвоичных блоковых кодов
JP3812983B2 (ja) エラー評価多項式係数計算装置
KR101267958B1 (ko) 비씨에이치 디코더, 이를 포함하는 메모리 시스템 및 디코딩 방법
CN103944589A (zh) 一种bch编码、解码方法及装置

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