CN104247274A - 非二进制线性块码的并行编码 - Google Patents

非二进制线性块码的并行编码 Download PDF

Info

Publication number
CN104247274A
CN104247274A CN201280071938.1A CN201280071938A CN104247274A CN 104247274 A CN104247274 A CN 104247274A CN 201280071938 A CN201280071938 A CN 201280071938A CN 104247274 A CN104247274 A CN 104247274A
Authority
CN
China
Prior art keywords
parity check
shift register
bit
input
parity
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
Application number
CN201280071938.1A
Other languages
English (en)
Other versions
CN104247274B (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.)
Xilinx Inc
Original Assignee
Xilinx Inc
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 Xilinx Inc filed Critical Xilinx Inc
Publication of CN104247274A publication Critical patent/CN104247274A/zh
Application granted granted Critical
Publication of CN104247274B publication Critical patent/CN104247274B/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
    • 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
    • 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1134Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
    • 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
    • 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1171Parity-check or generator matrices with non-binary elements, e.g. for non-binary LDPC 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/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/134Non-binary linear block codes not provided for otherwise
    • 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/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/21Non-linear codes, e.g. m-bit data word to n-bit code word [mBnB] conversion with error detection or error correction
    • 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • 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/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations

Abstract

一种编码器模块(400)包含依次耦合的P/L个奇偶校验移位寄存器(403、403'、403″),其中所述奇偶校验移位寄存器(403、403'、403″)的第一奇偶校验移位寄存器(403')的输入端耦合到所述编码器模块(400)的输入端(Din),所述奇偶校验移位寄存器(403、403'、403″)的最后一个奇偶校验移位寄存器(403″)的输出端耦合到所述编码器模块(400)的输出端(Dout),所述奇偶校验移位寄存器(403、403'、403″)中的每一个经配置以储存L个奇偶校验位。所述编码器模块(403)还包含反馈电路(405),所述反馈电路包括P/L个奇偶校验生成模块(407),其中所述奇偶校验生成模块(407)中的每一个通过开关(S1、S2、S3、S4)耦合到奇偶校验移位寄存器(403、403'、403″)中的对应一者的输出端并且还耦合到所述第一奇偶校验移位寄存器(403')的输入端,其中所述奇偶校验生成模块(407)中的每一个经配置以生成L个奇偶校验位,用于在其对应的开关(S1、S2、S3、S4)是闭合时传输到所述第一奇偶校验移位寄存器(403')的输入端。

Description

非二进制线性块码的并行编码
受版权保护的材料的保留权利
此专利文献的本发明的一部分包含受版权保护的材料。版权所有者不反对任何人传真复制所述专利文献或专利公开内容在专利与商标局的专利文件或记录中出现的内容,但其它方面保留全部版权,无论什么权利。
技术领域
本申请案大体上涉及非二进制线性块码的编码,并且具体来说涉及用于实施用于非二进制线性块码的并行编码的系统和方法。
背景技术
线性转发误差校正(FEC)代码在必须保护数据完整性和正确性的通信和大容量存储系统中具有广泛应用。线性块FEC采用数据位的块并且通过添加多个冗余位来保护所述数据块。通常,编码器计算这些冗余位,而解码器使用所述冗余位来确定接收到的数据块的正确性,并且其中可能的是使用冗余位来校正数据的错误块。
线性块代码由标号(n,k)指示,其中k消息位通过编码器模块编码到n个编码位中。因此,n-k个冗余位通过编码器添加到k个消息位(例如,数据块)中。n-k个冗余位也称为奇偶校验位。其中实施系统代码,n个编码位简单地是k个消息位(例如,数据块),随后是n-k个奇偶校验位。
奇偶校验位是基于在伽罗瓦域(Galois Field,GF)上定义的生成多项式g(x)计算的。对于二进制线性块码,所述生成多项式g(x)是定义在二阶(GF(2))伽罗瓦域上的。对于非二进制线性块码,生成多顶式g(x)定义在q^m阶(GF(q^m))伽罗瓦域上,其中q是质数。里德·所罗门(Reed Solomon,RS)编码器属于非二进制线性块码的类别中。
对于10Gbps的编码器,可以实现的最大线速率是11.09千兆位、秒。使用串行输入,其中单个输入被处理一次,实现此类线速率将需要定时以在(11.09、m)=1.109GHz下运算。由于计算奇偶校验位中所涉及的复杂逻辑,保持此类高线速率同时使用串行输入是非常难以实现的。
发明内容
根据一些实施例,用于将K位消息的L位部分并行编码到具有P个奇偶校验位的N位编码消息中的编码器模块包含:输入端,其经配置以接收K位消息的L位部分;以及输出端,其经配置以输出所述N位编码消息,其中所述编码器模块的输入端耦合到所述输出端上。所述编码器模块还包含依次耦合的P/L个奇偶校验移位寄存器,其中奇偶校验移位寄存器的第一奇偶校验移位寄存器的输入端耦合到编码器模块的输入端,奇偶校验移位寄存器的最后一个奇偶校验移位寄存器的输出端耦合到编码器模块的输出端,并且奇偶校验移位寄存器中的每一个经配置以储存L个奇偶校验位。所述编码器模块还包含反馈电路,所述反馈电路包括P/L个奇偶校验生成模块,其中奇偶校验生成模块中的每一个通过开关耦合到奇偶校验移位寄存器中的对应一者的输出端并且还耦合到第一奇偶校验移位寄存器的输入端,其中奇偶校验生成模块中的每一个经配置以生成L个奇偶校验位,用于在其对应的开关是闭合时传输到第一奇偶校验移位寄存器的输入端。
根据其他实施例,用于将K位消息的L位部分并行编码到具有P个奇偶校验位的N位编码消息中的编码器模块包含:输入端,其经配置以接收K位消息的L位部分;以及输出端,其经配置以输出所述N位编码消息,其中所述编码器模块的输入端耦合到所述输出端上。所述编码器模块还包含耦合到输入端和输出端的P/L个级延迟,以及依次耦合的P/L个奇偶校验移位寄存器,其中奇偶校验移位寄存器的第一奇偶校验移位寄存器的输入端耦合到编码器模块的输入端,奇偶校验移位寄存器的最后一个奇偶校验移位寄存器的输出端耦合到编码器模块的输出端,并且所述奇偶校验移位寄存器中的每一个经配置以储存L个奇偶校验位。所述编码器模块还包含反馈电路,所述反馈电路包括P/L个奇偶校验生成模块,其中奇偶校验生成模块中的每一个通过开关耦合到奇偶校验移位寄存器中的对应一者的输出端并且还耦合到第一奇偶校验移位寄存器的输入端,其中奇偶校验生成模块中的每一个经配置以生成L个奇偶校验位,用于在其对应的开关是闭合时传输到第一奇偶校验移位寄存器的输入端。
通过阅读以下对于各实施例的详细描述,其他以及另外的方面以及特征将是显而易见的。
附图说明
附图说明了各实施例的设计以及效用,其中相同的组件用共同的参考标号来指代。这些附图未必按比例绘制。为了更好地了解获得上文所述的优点和其他优点以及目标的过程,将提供对各实施例的更加确切的描述,所述各实施例在附图中示出。这些附图仅描绘了典型实施例且因此不应被视为所述权利要求书的范围的限制。
图1说明了用于非二进制线性块码的串行编码的串行编码器模块。
图2说明了实施非二进制线性块码的并行编码的编码器模块。
图3说明了根据一些实施例实施非二进制线性块码的并行编码的编码器模块。
图4说明了根据一些实施例用于实施具有减少的扇出的非线性块码的并行编码的编码器模块。
具体实施方式
下文将参考附图描述各实施例。应注意,各图并非按比例绘制,且具有类似结构或功能的组件贯穿各图由相同的参考数字来表示。应当注意,各图仅意图便于各实施例的描述。它们并不意图作为本发明的详尽的描述或作为对所主张的发明的范围的限制。此外,所说明的实施例不需要具有所示的所有方面或优点。和特定实施例一起描述的方面或优点不必限于该实施例并且可以在任何其它实施例(即使未这样说明)中实行。此外,遍及本说明书所提及的“一些实施例”或“其他实施例”意味着与各实施例一起所描述的特定特性、结构、材料,或特征包括在至少一个实施例中。因此,短语“在一些实施例中”或“在其他实施例中”在遍及本说明书的各个位置的出现不必指代同一个实施例或多个实施例。
线性块代码由标号(n,k)指示,其中k消息位通过编码器模块编码到n个编码位中。因此,n-k个冗余位通过编码器添加到k个消息位(例如,数据块)中。n-k个冗余位可以称为奇偶校验位。其中实施系统代码,n个编码位简单地是k个消息位(例如,数据块),随后是n-k个奇偶校验位。奇偶校验位是基于在伽罗瓦域(Galois Field,GF)上定义的生成多项式g(x)计算的。对于非二进制线性块码,生成多顶式g(x)定义在q^m阶(GF(q^m))伽罗瓦域上,其中q是质数。
出于实例的目的,说明书的剩余部分将相对于定义在2^10阶(GF(2^10))伽罗瓦域上的生成多顶式描述。然而,重要的是应注意用于非线性块码的并行编码的方法和系统可以经扩展以涵盖定义在任何阶伽罗瓦域上的生成多顶式。
待编码的k位消息由以下消息多顶式表示,其中mN-K对应于2^m阶伽罗瓦域中的位:
m ( x ) = Σ i = 1 K m i - 1 x K - i - - - ( 1 )
N表示编码消息长度并且P表示奇偶校验位长度(P=N-K)。生成多顶式由g(x)表示,其定义在2^m阶伽罗瓦域上。
n位编码消息由以下多项式表示,其中p(x)的系数是奇偶校验位并且c(x)的系数是最终编码位:
p(x)=(xPm(x))g(x)  (2)
c(x)=xPm(x)+p(x)  (3)
()g(x)指示相对于多顶式g(x)的模运算。
p(x)的计算可以按以下方式扩展:
p ( x ) = ( x P Σ i = 1 K m i - 1 x k - i ) g ( x ) = ( Σ i = 1 K x P m i - 1 x K - i ) g ( x ) - - - ( 4 ) = ( x K - 1 x P m 0 ) g ( x ) + ( x K - 2 x P m 1 ) g ( x ) + ( x K - 3 x P m 2 ) g ( x ) + ( x K - 4 x P m 3 ) g ( x ) + . . .
使用[a(x)b(x)]g(x)=([a(x)]g(x)[b(x)]g(x))g(x)的事实,等式(4)可以递归方式进一步重新写为:
p ( x ) = ( x K - 2 ( x [ x P m 0 ] g ( x ) + x P m 1 ) g ( x ) ) g ( x ) + ( x K - 3 x P m 2 ) g ( x ) + ( x K - 4 x P m 3 ) g ( x ) + . . . - - - ( 5 )
= ( x K - 3 [ x ( x [ x P m 0 ] g ( x ) + x P m 1 ) g ( x ) + x P m 2 ] g ( x ) ) g ( x ) + ( x K - 4 x P m 3 ) g ( x ) + . . .
上述递归等式可以实施为如在以下伪码中所示出:
所描述的算法可以使用如图1中所示的串行编码器模块来实施。图1说明了用于非二进制线性块码的串行编码的串行编码器模块100。串行编码器模块100可经配置以生成用于K位消息的奇偶校验位的任何P数目。然而,出于实例的目的,图1的串行编码器模块100经配置以生成用于一个K位消息的4个奇偶校验位。
串行编码器模块100包含输入Din、输出Dout、4个单个位奇偶校验移位寄存器103/103'和包括4个奇偶校验生成模块107的反馈电路105。虽然图1的串行编码器模块100仅包含4个奇偶校验生成模块107(例如,伽罗瓦域乘法器)和4个奇偶校验移位寄存器103/103',但是串行编码器模块可以包含对应于待生成的P数目的奇偶校验位的任何P数目的奇偶校验移位寄存器和任何P数目的奇偶校验生成模块。
编码器模块100的输入Din经配置以接收K位消息作为串行输入,并且串行编码器模块100的输出Dout经配置以输出具有P个奇偶校验位的N位编码消息。反馈电路105的奇偶校验生成模块107经配置以生成储存在奇偶校验移位寄存器103/103'中的奇偶校验位,如将在下文中详细讨论的。
所述4个奇偶校验移位寄存器103、103'是依次耦合的,使得奇偶校验移位寄存器103、103'的输出端耦合到随后的奇偶校验移位寄存器103、103'的输入端(其中存在随后的奇偶校验移位寄存器)。每个奇偶校验移位寄存器103/103'对应于奇偶校验生成模块107,并且每个奇偶校验生成模块107耦合到其对应的奇偶校验移位寄存器103/103'的输入端。加法器模块A可以与耦合到多个源(例如,奇偶校验生成模块和前述奇偶校验移位寄存器)的每个奇偶校验移位寄存器103/103'的输入端相关联。加法器模块A促进在奇偶校验移位寄存器103、103'的输入端处接收到的数据的组合用于储存。4个奇偶校验移位寄存器103/103'的最后一个奇偶校验移位寄存器103'的输出端耦合到编码器模块100的输入端Din并且还耦合到反馈电路105的每个奇偶校验生成模块107。最后一个奇偶校验移位寄存器103'的输出端通过多路复用器额外地耦合到编码器模块100的输出端Dout。额外的加法器模块A可以与最后一个奇偶校验移位寄存器103'的输出端相关联。额外的加法器模块A促进在最后一个奇偶校验移位寄存器103'的输出端处接收到的数据的组合,用于传输到反馈电路105的奇偶校验生成模块107。编码器模块100的输入端Din类似地通过多路复用器耦合到编码器模块100的输出端Dout
反馈电路105进一步包括开关S。当开关S闭合时,反馈电路105是激活的,并且奇偶校验生成模块107主动地生成奇偶校验位。当开关S打开时,反馈电路105是去激活的,并且奇偶校验生成模块107不再生成奇偶校验位。
在第一K(例如,消息位的数目)时钟循环期间,反馈电路105的开关S是闭合的。在第一K时钟循环的每个时钟循环期间,K位消息的位是在编码器模块100的输入端Din处作为串行输入接收到的,转发到最后一个奇偶校验移位寄存器103'的输出端,并且随后转发到反馈电路105的每个奇偶校验生成模块107。反馈电路105的每个奇偶校验生成模块107经配置以生成单个奇偶校验位,所述奇偶校验位储存在对应的奇偶校验移位寄存器103、103'中。每个奇偶校验生成模块107经配置以根据递归等式(5)和上述伪码生成用于K位消息的每个位的奇偶校验位。在每个时钟循环期间,通过每个奇偶校验生成模块107生成的奇偶校验位与目前储存在每个对应的奇偶校验移位寄存器103、103'中的数据组合以形成更新的一套奇偶校验位。
额外地,在第一K时钟循环的每个时钟循环期间,每个奇偶校验移位寄存器103、103'将它的储存的数据传输到随后的奇偶校验移位寄存器中(其中存在随后的奇偶校验移位寄存器)。最后一个奇偶校验移位寄存器103'将其储存的数据传输到反馈电路105的每个奇偶校验生成模块107。储存在奇偶校验移位寄存器103、103'中的奇偶校验位是每个时钟循环更新的,因为K位消息的新的位是接收到的并且新的奇偶校验位是通过奇偶校验生成模块107生成的以用于储存在奇偶校验移位寄存器103、103'中。如上所述,在每个时钟循环期间,新生成的奇偶校验位是与目前储存在对应的奇偶校验移位寄存器103、103'中的数据组合的以形成更新的一组奇偶校验位。
同时,在第一K时钟循环期间,在编码器模块100的输入端Din处接收到的K位消息的每个位通过多路复用器被转发到编码器模块100的输出端Dout,使得通过编码器模块100的第一K位输出是K位消息。
在K+1到N个时钟循环期间,反馈电路105的开关S是打开的并且储存在奇偶校验移位寄存器103/103'中的最终奇偶校验位值被传输到编码器模块100的输出端Dout。储存在奇偶校验移位寄存器103/103'中的最终奇偶校验位值响应于耦合到每个奇偶校验移位寄存器103/103'的控制信号CE输出。举例来说,在K+1时钟循环期间,储存在最后一个奇偶校验移位寄存器103'中的奇偶校验位可以通过多路复用器被传输到编码器模块100的输出端Dout,并且储存在每个剩余的奇偶校验移位寄存器103中的奇偶校验位可以通过对应的加法器模块被传输到随后的奇偶校验移位寄存器103。这持续通过第N个时钟循环,当所有奇偶校验位已经通过编码器模块100输出时。以此方式,编码器模块100输出N位编码消息,其中第一K位是K消息位并且最后一个P位是奇偶校验位。
虽然图1的编码器模块操作以将K位消息编码到具有P个奇偶校验位的N位编码消息中,但是它遭受若干缺点。因为编码器模块以串行方式操作,以便实现较高线速率,所以编码器模块必须在非常高的频率下操作。然而,因为在配置奇偶校验生成模块中所涉及的逻辑的复杂性,此类高频率无法在不将各种错误引入到编码过程和额外成本下实现。
在图2中说明了用于实施非二进制线性块码的并行编码的编码器模块的一个方法。在图1的串行编码器模块100中,每个时钟循环仅处理K位消息的单个位。然而,图2的编码器模块200允许每个时钟循环处理多个位(L)。编码器模块200可经配置以生成用于K位消息的任何P个数目的奇偶校验位以形成N位编码消息,其中K位消息是作为L位并行输入接收到的并且N位编码消息是被输出而作为L位并行输出。然而,出于实例的目的,图2的编码器模块200经配置以生成用于K位消息的16个奇偶校验位(例如,P=16)以形成N位编码消息,其中K位消息是作为4位并行输入(例如,L=4)接收到的并且N位编码消息是被输出而作为4位并行输出。其中K不是L的整倍数,零插入在消息的开始以实现L的整倍数的总体消息长度。
编码器模块200包含输入端Din、输出端Dout、4个4位奇偶校验移位寄存器203、203'和包括4个奇偶校验生成模块207的反馈电路205。虽然图2的编码器模块200仅包含4个奇偶校验生成模块207和4个4位奇偶校验移位寄存器203/203',但是编码器模块200可以包含对应于待生成的P数目的奇偶校验位和接收到的L位平行输入的任何P、L数目的L位奇偶校验移位寄存器和任何P/L数目的奇偶校验生成模块。
编码器模块200的输入端Din经配置以接收K位消息作为4位并行输入,并且编码模块200的输出端Dout经配置以输出具有16个奇偶校验位的N位编码消息作为4位并行输出。反馈电路205的奇偶校验生成模块207是各自经配置以生成储存在4位奇偶校验移位寄存器203/203'中的4个奇偶校验位的,如下文中将要详细讨论的。
所述4个4位奇偶校验移位寄存器203、203'是依次耦合的,使得奇偶校验移位寄存器203、203'的输出端耦合到随后的奇偶校验移位寄存器203、203'的输入端(其中存在随后的奇偶校验移位寄存器)。每个4位奇偶校验移位寄存器203、203'对应于一个奇偶校验生成模块207,并且每个奇偶校验生成模块207耦合到其对应的奇偶校验移位寄存器203、203'的输入端。加法器模块A可以与耦合到多个源(例如,奇偶校验生成模块和前述奇偶校验移位寄存器)的每个奇偶校验移位寄存器203/203'的输入端相关联。加法器模块A促进在奇偶校验移位寄存器203、203'的输入端处接收到的数据的组合用于储存。4个4位奇偶校验移位寄存器203、203'的最后一个奇偶校验移位寄存器203'的输出端耦合到编码器模块Din的输入端并且还耦合到反馈电路209的每个奇偶校验生成模块207。最后一个奇偶校验移位寄存器203'的输出端额外地通过多路复用器耦合到编码器模块200的输出端Dout。额外的加法器模块A可以与最后一个奇偶校验移位寄存器203'的输出端相关联。额外的加法器模块A促进在最后一个奇偶校验移位寄存器203'的输出端处接收到的数据的组合,用于传输到反馈电路205的奇偶校验生成模块207。编码器模块200的输入端Din还通过多路复用器耦合到编码器模块200的输出端Dout
反馈电路205进一步包括开关S。当开关S闭合时,反馈电路205是激活的,并且奇偶校验生成模块207主动地生成奇偶校验位。当开关S打开时,反馈电路205是去激活的,并且奇偶校验生成模块207不再生成奇偶校验位。
虽然图1的串行编码器模块100包含每个储存单个位的奇偶校验移位寄存器103、103',但是图2的编码器模块200包含一次储存4个位的4位奇偶校验移位寄存器203、203'。类似地,虽然图1的反馈电路205的奇偶校验生成模块207一次处理单个消息位,但是图2的反馈电路的奇偶校验生成模块一次处理4个消息位。
为了支持非线性块码的并行编码,用于生成奇偶校验位的递归公式(5)可以扩展到同时支持L位的处理。修改过的递归等式提供在下方:
p ( x ) = ( x P Σ i = 1 K m i - 1 x K - i ) g ( x ) - - - ( 6 ) = ( x P Σ i = 0 K L - 1 Σ r = 1 L m i * L + r - 1 x K - i * L - r ) g ( x ) = ( Σ i = 0 K L - 1 x K - ( i + 1 ) * L [ x P Σ r = 1 L m i * L + r - 1 x L - r ] g ( x ) ) g ( x ) = ( x K - L [ x P Σ r = 1 L m r - 1 x L - r ] g ( x ) ) g ( x ) + ( x K - 2 L [ x P Σ r = 1 L m L + r - 1 x L - r ] g ( x ) ) g ( x ) +
( x K - 3 L [ x P Σ r = 1 L m 2 L + r - 1 x L - r ] g ( x ) ) g ( x ) + ( x K - 4 L [ x P Σ r = 1 L m 3 L + r - 1 x L - r ] g ( x ) ) g ( x ) + . . . = ( x K - 2 L [ x L [ x P Σ r = 1 L m r - 1 x L - r ] g ( x ) + xPr = 1 LmL + r - 1 xL - rg ( x ) g ( x ) + ( x K - 3 L [ x P Σ r = 1 L m 2 L + r - 1 x L - r ] g ( x ) ) g ( x ) + ( x K - 4 L [ x P Σ r = 1 L m 3 L + r - 1 x L - r ] g ( x ) ) g ( x ) + . . . = [ x K - 3 L ( x L [ x L [ x P Σ r = 1 L m r - 1 x L - r ] g ( x ) + x P Σ r = 1 L m L + r - 1 x L - r ] g ( x ) + xP 1 = 1 Lm 2 L + r - 1 xL - rg ( x ) g ( x ) + xK - 4 LxPr = 1 Lm 3 L + r - 1 xL - rg ( x ) g ( x ) + . . . - - - ( 7 )
这导致反馈电路的每个奇偶校验生成模块使用通过以下伪码定义的P xL奇偶校验矩阵(PMAT)一次生成L个奇偶校验位。PMAT的每一个L行形成一个奇偶校验生成模块。
上述递归等式(7)随后可以实施为如在以下伪码中所示出:
在第一K/L时钟循环期间,反馈电路205的开关S是闭合的。K位消息的每个4位部分在作为并行输入端的编码器模块200的输入端Din处接收,转发到最后一个奇偶校验移位寄存器203'的输出端,并且随后转发到反馈电路205的每个奇偶校验生成模块207。反馈电路205的每个奇偶校验生成模块207经配置以生成4个奇偶校验位(例如,L个奇偶校验位),所述奇偶校验位储存在对应的4位奇偶校验移位寄存器203、203'中。每个奇偶校验生成模块207经配置以根据递归等式(7)、PMAT矩阵和上述伪码生成用于K位消息的每个L位部分的奇偶校验位。在每个时钟循环期间,通过每个奇偶校验生成模块207生成的奇偶校验位与目前储存在每个对应的奇偶校验移位寄存器203、203'中的数据组合以形成更新的一套奇偶校验位。
额外地,在第一K/L时钟循环的每个时钟循环期间,每个奇偶校验移位寄存器203、203'将它的储存的数据传输到随后的奇偶校验移位寄存器203/203'中(其中存在随后的奇偶校验移位寄存器)。最后一个奇偶校验移位寄存器203'将其储存的数据传输到反馈电路205的每个奇偶校验生成模块207。储存在奇偶校验移位寄存器203、203'中的奇偶校验位是每个时钟循环更新的,因为K位消息的新的L位部分是接收到的并且新的奇偶校验位是通过奇偶校验生成模块207生成的以用于储存在对应的奇偶校验移位寄存器203、203'中。如上所述,在每个时钟循环期间,新生成的奇偶校验位是与目前储存在对应的奇偶校验移位寄存器203、203'中的数据组合的以形成更新的一组奇偶校验位。
同时,在第一K/L时钟循环期间,在编码器模块200的输入端Din处接收到的K位消息的每个4位部分通过多路复用器被转发到编码器模块200的输出端Dout,使得通过编码器模块200的第一K位输出是K位消息的4位并行输出。
在(K/L)+1到N/L时钟循环期间,反馈电路205的开关S是打开的并且储存在奇偶校验移位寄存器203/203'中的最终奇偶校验位值被传输到编码器模块200的输出端Dout。储存在奇偶校验移位寄存器203、203'中的最终奇偶校验位值是响应于耦合到每个奇偶校验移位寄存器203、203'的控制信号CE输出的。举例来说,在(K/L)+1时钟循环期间,储存在最后一个奇偶校验移位寄存器203'中的4个奇偶校验位可以通过多路复用器被传输到编码器模块200的输出端Dout,并且储存在每个剩余的奇偶校验移位寄存器203中的4个奇偶校验位可以通过对应的加法器模块被传输到随后的奇偶校验移位寄存器203。这持续通过第(N/L)个时钟循环,当所有奇偶校验位已经通过编码器模块200输出时。以此方式,编码器模块200输出一个N位编码消息作为4位并行输出,其中第一个K位是K消息位并且最后一个P位是奇偶校验位。
使用PMAT矩阵生成奇偶校验位可以有效地计算为XOR的总和。当单个消息位由奇偶校验生成模块处理(例如,串行编码)并且定义在GF(q^m)伽罗瓦域上的生成多顶式g(x)用于生成奇偶校验位时,此类矩阵倍增可能需要多达m-1XOR。当L消息位同时由奇偶校验生成模块处理并且定义在GF(q^m)伽罗瓦域上的生成多顶式g(x)用于生成奇偶校验位时,此类矩阵倍增可能需要多达mL-1XOR。
然而,对于图2的编码器模块200,反馈电路205的每个奇偶校验生成模块207不仅在接收到的K位消息的4位部分上执行矩阵倍增,而且额外地在最后一个奇偶校验移位寄存器203'的输出端上执行矩阵倍增,因为每个奇偶校验生成模块207耦合到编码器模块200的输入端Din,并且最后一个奇偶校验移位寄存器203'的输出端通过加法器模块耦合到最后一个奇偶校验移位寄存器203'的输出端。因此,并非需要mL-1XOR来实施每个奇偶校验生成模块207,而是需要2mL-1XOR来实施每个奇偶校验生成模块207。还重要的是应注意反馈电路涉及P*m此类路径,其通过P和m快速生长。因此,通过每个奇偶校验生成模块的奇偶校验位的生成可以形成关键路径,所述关键路径限制K位消息可以编码到N位编码消息中的速度。此外,在图2中实施每个奇偶校验生成模块207所需的额外的计算逻辑还可以引起硬件资源需求的增大。
图2的编码器模块200可以经修改以减少实施奇偶校验生成模块所需的计算逻辑。图3说明了根据一些实施例实施非二进制线性块码的并行编码的编码器模块300。图3的编码器模块300减少了实施每个奇偶校验生成模块所需的计算逻辑,使得与在图2的编码器模块200中所需的2mL-1XOR相反,仅需要mL-1XOR来实施奇偶校验生成模块。
图3的编码器模块300允许用于每个时钟循环的待处理的K位消息的多个位(L),非常类似于图2的编码器模块。编码器模块300可经配置以生成用于K位消息的任何P个数目的奇偶校验位以形成N位编码消息,其中K位消息是作为L位并行输入接收到的并且N位编码消息是被输出而作为L位并行输出。然而,出于实例的目的,图3的编码器模块300经配置以生成用于K位消息的16个奇偶校验位(例如,P=16)以形成N位编码消息,其中K位消息是作为4位并行输入(例如,L=4)接收到的并且N位编码消息是被输出而作为4位并行输出。其中K不是L的整倍数,零插入在消息的开始以实现L的整倍数的总体消息长度。
编码器模块300包含输入端Din、输出端Dout、4位输入端移位寄存器301、4个4位奇偶校验移位寄存器303、303'和包括4个奇偶校验生成模块307的反馈电路305。虽然图3的编码器模块300仅包含4个奇偶校验生成模块307和4个4位奇偶校验移位寄存器203、203',但是编码器模块300可以包含对应于待生成的P数目的奇偶校验位和接收到的L位并行输入的任何P、L数目的L位奇偶校验移位寄存器和任何P、L数目的奇偶校验生成模块。
编码器模块300的输入端Din经配置以接收K位消息作为4位并行输入,并且编码模块300的输出端Dout经配置以输出具有16个奇偶校验位的N位编码消息作为4位并行输出。反馈电路305的奇偶校验生成模块307各自经配置以一次生成4个奇偶校验位,所述奇偶校验位储存在对应的4位奇偶校验移位寄存器303/303'中,如下文中将要详细讨论的。
输入端移位寄存器301的输入端耦合到编码器模块300的输入端Din,并且输入端移位寄存器301的输出端通过多路复用器耦合到编码器模块300的输出端Dout
所述4个4位奇偶校验移位寄存器303/303'是依次耦合的,使得奇偶校验移位寄存器303、303'的输出端耦合到随后的奇偶校验移位寄存器303/303'的输入端(其中存在随后的奇偶校验移位寄存器)。每个4位奇偶校验移位寄存器303/303'对应于一个奇偶校验生成模块307,并且每个奇偶校验生成模块307耦合到其对应的奇偶校验移位寄存器303/303'的输入端。4个4位奇偶校验移位寄存器303/303'的最后一个奇偶校验移位寄存器303'的输入端耦合到编码器模块300的输入端Din,并且最后一个奇偶校验移位寄存器303'的输出端耦合到反馈电路305的每个奇偶校验生成模块307。加法器模块A可以与耦合到多个源(例如,奇偶校验生成模块307、前述奇偶校验移位寄存器303、编码器模块300的输入端Din)的每个奇偶校验移位寄存器303、303'的输入端相关联。加法器模块A促进在奇偶校验移位寄存器303、303'的输入端处接收到的数据的组合用于储存。额外的加法器模块A可以与最后一个奇偶校验移位寄存器303'的输出端相关联。额外的加法器模块A促进在最后一个奇偶校验移位寄存器303'的输出端处接收到的数据的组合,用于传输到反馈电路305的奇偶校验生成模块307。最后一个奇偶校验移位寄存器303'的输出端通过多路复用器额外地耦合到编码器模块300的输出端Dout
反馈电路305进一步包括开关S。当开关S闭合时,反馈电路305是激活的,并且奇偶校验生成模块307主动地生成奇偶校验位。当开关S打开时,反馈电路305是去激活的,并且奇偶校验生成模块307不再生成奇偶校验位。
在第一K/L时钟循环期间,反馈电路305的开关S是闭合的。K位消息的每个4位部分是在编码器模块300的输入端Din处作为并行输入接收到的并且在第一时钟循环期间转发到最后一个奇偶校验移位寄存器303'的输入端和输入端移位寄存器301的输入端。在第二时钟循环期间,来自最后一个奇偶校验移位寄存器303'的K位消息的4位部分输出到反馈电路305的每个奇偶校验生成模块307中,每个奇偶校验生成模块307由此生成被传输到并且储存在其对应的奇偶校验移位寄存器303/303'中的4个奇偶校验位。每个奇偶校验生成模块307经配置以根据以下伪码生成用于K位消息的每个位的奇偶校验位。
用于上述伪码的等式可以通过如下文所示重排上面的等式(4)来生成以生成等式(8)。
p ( x ) = 0 + ( m 0 x k - 1 x p ) g ( x ) + ( m 1 x k - 2 x p ) g ( x ) + ( m 2 x k - 3 x p ) g ( x ) + . . . + ( m k - 1 x p ) g ( x ) + 0 = x k - 1 x ( 0 + m 0 x p - 1 ) g ( x ) + ( m 1 x k - 2 x p ) g ( x ) + ( m 2 x k - 3 x p ) g ( x ) + . . . + ( m k - 1 x p ) g ( x ) + 0 = x k - 2 x [ x ( 0 + m 0 x p - 1 ) g ( x ) + m 1 x p - 1 ] g ( x ) + ( m 2 x p - 3 x p ) g ( x ) + . . . + ( m k - 1 x p ) g ( x ) + 0 = x k - 3 x { x [ x ( 0 + m 0 x p - 1 ) g ( x ) + m 1 x p - 1 ] g ( x ) + m 2 x p - 1 } + . . . + ( m k - 1 x p ) g ( x ) p ( x ) = [ x { x [ . . . . ] g ( x ) + m k - 1 x p - 1 } g ( x ) + 0 ] g ( x ) - - - ( 8 )
虽然在(4)中示出的等式适用于串行编码器模块,但是相同的操作对于编码器模块的并行实施也同样成立。这意味着在编码器模块的输入端处接收到的K位消息的L位部分应该被输入到最后一个奇偶校验移位寄存器的输入端并且所述K位消息应该具有附加到它的零。
并且,在第二时钟循环期间,K位消息的4位部分是从输入端移位寄存器301通过多路复用器输出到编码器模块300的输出端Dout的。这持续直至已经接收到K位消息的所有的4位部分。
额外地,在第一K/L时钟循环的每个时钟循环期间,每个奇偶校验移位寄存器303、303'将它的储存的数据传输到随后的奇偶校验移位寄存器303/303'中(其中存在随后的奇偶校验移位寄存器)。最后一个奇偶校验移位寄存器303'将其储存的数据传输到反馈电路的每个奇偶校验生成模块307。储存在奇偶校验移位寄存器303、303'中的奇偶校验位是每个时钟循环更新的,因为K位消息的新的L位部分是接收到的并且新的奇偶校验位是通过奇偶校验生成模块307生成的以用于储存在对应的奇偶校验移位寄存器303、303'中。在每个时钟循环期间,新生成的奇偶校验位是与目前储存在对应的奇偶校验移位寄存器303、303'中的数据组合的以形成更新的一组奇偶校验位。
在第(K/L)+1个时钟循环期间,零输入通过编码器模块300的输入端Din接收到。零输入引起编码器模块300打开反馈电路305的开关S。在此时钟循环期间,输入端移位寄存器301中的K位消息的最后一个4位部分输出到编码器模块的输出端Dout,并且最后一个奇偶校验移位寄存器303'中的K位消息的最后一个4位部分输出到反馈电路305的每个奇偶校验生成模块307中以在反馈电路305的开关S打开之前生成对应的奇偶校验位。
在((K/L)+2)时钟循环到((N/L)+1)时钟循环期间,反馈电路305的开关S保持打开并且储存在奇偶校验移位寄存器303/303'中的最终奇偶校验位值输出到编码器模块300的输出端Dout。奇偶校验位是响应于耦合到每个奇偶校验移位寄存器303/303'的控制信号CE输出的。举例来说,在(K/L)+2时钟循环期间,储存在最后一个奇偶校验移位寄存器303'中的4个奇偶校验位可以通过多路复用器被传输到编码器模块300的输出端Dout,并且储存在每个剩余的奇偶校验移位寄存器303中的4个奇偶校验位可以被传输到随后的奇偶校验移位寄存器303/303'。
通过将最后一个奇偶校验移位寄存器303'的输入端耦合到编码器模块300的输入端Din而非将最后一个奇偶校验移位寄存器303'的输出端耦合到编码器模块300的输入端Din,通过每个奇偶校验生成模块307执行的矩阵倍增的复杂度是减小的。并非必须在给定时钟循环下在接收到的K位消息的4位部分上以及在最后一个奇偶校验移位寄存器303'的输出端上执行矩阵倍增,矩阵倍增仅在给定时钟循环内在最后一个奇偶校验移位寄存器303'的输出端上执行。因此,并非需要2mL-1XOR来实施每个奇偶校验生成模块307,仅需要mL-1XOR来实施每个奇偶校验生成模块307。这增大了K位消息可以编码到N位编码消息中的速度并且还可以引起减少的硬件资源需求。
图3的编码器模块300可以进一步经修改以改进扇出。扇出是指逻辑门输出端连接到的门输入端的数目。扇出是减少的,其中逻辑门输出端连接的门输入端的数目是减少的。图4说明了根据一些实施例用于实施具有减少的扇出的非线性块码的并行编码的编码器模块400。
图4的编码器模块400允许用于每个时钟循环的待处理的K位消息的多个位(L),非常类似于图3的编码器模块。编码器模块400可经配置以生成用于K位消息的任何P个数目的奇偶校验位以形成N位编码消息,其中K位消息是作为L位并行输入接收到的并且N位编码消息是被输出而作为L位并行输出。然而,出于实例的目的,图4的编码器模块400经配置以生成用于K位消息的16个奇偶校验位(例如,P=16)以形成N位编码消息,其中K位消息是作为4位并行输入(例如,L=4)接收到的并且N位编码消息是被输出而作为4位并行输出。其中K不是L的整倍数,零插入在消息的开始以实现L的整倍数的总体消息长度。
编码器模块400包含输入端Din、输出端Dout、4级延迟409、4个4位奇偶校验移位寄存器403、403'、403″和包括4个奇偶校验生成模块407的反馈电路405。虽然图4的编码器模块400仅包含4个奇偶校验生成模块407和4个4位奇偶校验移位寄存器403、403'、403″,但是编码器模块400可以包含对应于待生成的P数目的奇偶校验位和接收到的L位并行输入的任何P、L数目的L位奇偶校验移位寄存器和任何P/L数目的奇偶校验生成模块。类似地,虽然图4的编码器模块400仅包含4个级延迟409,但是编码器模块400可以包含对应于待生成的P数目的奇偶校验位和接收到的L位并行输入的任何(P/L)级延迟。
编码器模块400的输入端Din经配置以接收K位消息作为4位并行输入,并且编码模块400的输出端Dout经配置以输出具有16个奇偶校验位的N位编码消息作为4位并行输出。反馈电路405的奇偶校验生成模块407经配置以生成储存在4位奇偶校验移位寄存器中的奇偶校验位,如将在下文中详细讨论的。
所述4个4位奇偶校验移位寄存器403、403'、403″是依次耦合的,使得奇偶校验移位寄存器403、403'、403″的输出端耦合到随后的奇偶校验移位寄存器403、403'、403″的输入端(其中存在随后的奇偶校验移位寄存器)。每个4位奇偶校验移位寄存器403、403'、403″对应于奇偶校验生成模块407,并且每个奇偶校验生成模块407耦合到其对应的奇偶校验移位寄存器403、403'、403″的输出端。第一奇偶校验移位寄存器403'的输入端耦合到编码器模块400的输入端Din以及反馈电路的每个奇偶校验生成模块407的输出端。加法器模块A可以与耦合到多个源(例如,每个奇偶校验生成模块407的输出端和编码器模块400的输入端Din)的第一奇偶校验移位寄存器的输入端相关联。加法器模块A促进在第一奇偶校验移位寄存器403'的输入端处接收到的数据的组合用于储存。4个4位奇偶校验移位寄存器403、403'、403″的最后一个奇偶校验移位寄存器403″的输出端通过多路复用器额外地耦合到编码器模块400的输出端Dout
4级延迟409耦合到编码器模块400的输入端Din并且还通过多路复用器耦合到编码器模块400的输出端Dout
反馈电路405进一步包括4个开关S1、S2、S3、S4,其中每个开关S1、S2、S3、S4对应于一个奇偶校验生成模块407。当开关S1、S2、S3、S4是闭合时,反馈电路405的其对应的奇偶校验生成模块407是激活的并且生成奇偶校验位。当开关S1、S2、S3、S4是打开的时,反馈电路405的其对应的奇偶校验生成模块407是去激活的并且不再生成奇偶校验位。
在第一K/L时钟循环期间,反馈电路405的每个开关S1、S2、S3、S4是闭合的。在第一(K/L)时钟循环的每个时钟循环期间,所述K位消息的4位部分是在编码器模块400的输入端Din处接收到的并且转发到第一奇偶校验移位寄存器403'。同时,每个奇偶校验移位寄存器403、403'、403″将它的储存的数据传输到对应的奇偶校验生成模块407并且还传输到随后的奇偶校验移位寄存器403、403'、403″(其中存在随后的奇偶校验移位寄存器)。每个奇偶校验生成模块407生成奇偶校验位,所述奇偶校验位输出回到第一奇偶校验移位寄存器403'。储存在每个奇偶校验移位寄存器403、403'、403″中的数据是每个时钟循环更新的,因为通过反馈电路405的奇偶校验生成模块407生成的新奇偶校验位是反馈到第一奇偶校验移位寄存器403'中的。每个奇偶校验生成模块307经配置以根据以下伪码(针对L=4,P=16示出)生成用于K位消息的每个位的奇偶校验位。
%零插入以计算奇偶校验位。在%随后运算的末端处的移位寄存器将含有奇偶校验位。
奇偶校验移位寄存器403、403'、403″中的数据形成奇偶校验位。所述伪码可以类似于上述(8)的导出的方式导出。在任何给定循环,仅L个奇偶校验位是待生成的而并非全部的P个奇偶校验位。总的P个奇偶校验位将随后在P/L时钟循环上生成。
同时在第一K/L时钟循环的每个时钟循环期间,在编码器模块400的输入端Din处接收到的K位消息的4位部分是在通过多路复用器被传输到编码器模块400的输出端Dout之前通过4级延迟409的,使得通过编码器模块400的第一K位输出是K位消息的4位并行输出。
在((K/L)+1)到((K/L)+(P/L))时钟循环的每个时钟循环期间,零输入是通过编码器模块400的输入端Din接收到的。每个零输入引起编码器模块400渐进地打开反馈电路405的开关S1、S2、S3、S4。同样在每个时钟循环期间,每个奇偶校验移位寄存器403/403'将其储存的数据传输到对应的奇偶校验生成模块407(其中所述对应的开关是闭合的)。对应的奇偶校验生成模块407生成被转发到第一输入端移位寄存器403'的奇偶校验位。这是持续的直至反馈电路405的所有开关S1、S2、S3、S4是打开的。
在((K/L)+(P/L))到((N/L)+(P/L)时钟循环的每个时钟循环期间,所有的开关S1、S2、S3、S4仍然是打开的,并且储存在奇偶校验移位寄存器403、403'、403″中的奇偶校验位响应于耦合到奇偶校验移位寄存器403、403'、403″中的每一个的控制信号CE输出。举例来说,在(K/L)+(P/L)时钟循环期间,储存在最后一个奇偶校验移位寄存器403″中的4个奇偶校验位可以通过多路复用器被传输到编码器模块400的输出端Dout,并且储存在每个剩余的奇偶校验移位寄存器403/403'中的4个奇偶校验位可以被传输到随后的奇偶校验移位寄存器403/403″。
通过将K位消息的每个L位部分传递到第一奇偶校验移位寄存器403',而非将K位消息的每个L位部分传递到每个奇偶校验生成模块407,可以避免编码器模块400的输入端Din上的高扇出。此外,因为奇偶校验生成模块407是从(P/L)不同的移位寄存器403、403'、403″中馈送的,所以相比于图2的编码器模块200和图3的编码器模块300任何移位寄存器403、403'、403″上的扇出是以(P/L)的因数减小的。减小扇出将降低路由算法上的过量压力而同时允许实现较高的最大频率。
虽然已经示出并且描述了具体实施例,但是将理解它们并非意图限制所主张的发明,并且对于所属领域的技术人员而言将会显而易见的是可以在不脱离所主张的发明的精神和范围的前提下做出各种变化和修改。因此,本说明书和附图应在说明性意义上而非限制性意义上看待。所主张的发明意图涵盖替代方案、修改以及等效物。

Claims (15)

1.一种用于将K位消息的L位部分并行编码到具有P个奇偶校验位的N位编码消息中的编码器模块,其包括:
输入端,其经配置以接收所述K位消息的所述L位部分;
输出端,其经配置以输出所述N位编码消息;
移位寄存器电路,其耦合到所述输入端和所述输出端;
依次耦合的P/L个奇偶校验移位寄存器,其中所述奇偶校验移位寄存器的最后一个奇偶校验移位寄存器的输入端耦合到所述编码器模块的所述输入端,并且所述最后一个奇偶校验移位寄存器的输出端耦合到所述编码器模块的所述输出端;以及
反馈电路,所述反馈电路包括P/L个奇偶校验生成模块,其中所述奇偶校验生成模块中的每一个通过开关耦合到所述最后一个奇偶校验移位寄存器的所述输出端,并且还耦合到所述奇偶校验移位寄存器中的对应一者的输入端,其中所述奇偶校验生成模块中的每一个经配置以生成L个奇偶校验位,所述奇偶校验位将在所述开关是闭合时储存在所述奇偶校验移位寄存器中的对应一者中。
2.根据权利要求1所述的编码器模块,
其中所述移位寄存器电路是耦合到所述输入端和所述输出端的L位输入端移位寄存器。
3.根据权利要求2所述的编码器模块,
其中在(K/L)个时钟循环中的每一个期间:
所述反馈电路的所述开关是闭合的;
所述编码器模块将在其输入端处接收到的所述K位消息的所述L位部分中的一者转发到所述输入端移位寄存器和所述最后一个奇偶校验移位寄存器的所述输入端;
所述最后一个奇偶校验移位寄存器将其储存的奇偶校验位转发到所述反馈电路的所述奇偶校验生成模块中的每一个,所述奇偶校验生成模块生成将储存在所对应的奇偶校验移位寄存器中的L个奇偶校验位;
所述奇偶校验移位寄存器中的每一个,而不是所述最后一个奇偶校验移位寄存器,将其储存的奇偶校验位转发到所述奇偶校验移位寄存器中的随后一者;以及
所述输入端移位寄存器将其储存的数据转发到所述编码器模块的所述输出端;
其中在第(K/L)+1个时钟循环期间:
所述输入端移位寄存器将其储存的数据转发到所述编码器模块的所述输出端;以及
所述编码器模块将在其输入端处接收到的零输入转发到所述输入端移位寄存器和所述最后一个奇偶校验移位寄存器的所述输入端,由此打开所述反馈电路的所述开关;
其中在(K/L)+2到(N/L)+1个时钟循环中的每一个期间:
所述最后一个奇偶校验移位寄存器将其储存的奇偶校验位转发到所述编码器模块的所述输出端;以及
所述奇偶校验移位寄存器中的每一个,而不是所述最后一个奇偶校验移位寄存器,将其储存的奇偶校验位转发到所述奇偶校验移位寄存器中的随后一者。
4.根据权利要求1到3中任一权利要求所述的编码器模块,其中所述最后一个奇偶校验移位寄存器的所述输出端和所述输入端移位寄存器的输出端通过多路复用器耦合到所述编码器模块的所述输出端。
5.根据权利要求1到3中任一权利要求所述的编码器模块,其中在所述(K/L)个时钟循环中的每一个期间转发到所述最后一个奇偶校验移位寄存器的所述输入端的所述L位部分是与在该时钟循环时储存在所述最后一个奇偶校验移位寄存器中的所述奇偶校验位组合。
6.根据权利要求1到3中任一权利要求所述的编码器模块,其中在所述(K/L)个时钟循环中的每一个期间通过每个奇偶校验生成模块生成的所述奇偶校验位是与在该时钟循环时储存在对应的奇偶校验移位寄存器中的所述奇偶校验位组合。
7.根据权利要求1到3中任一权利要求所述的编码器模块,其中在所述第(K/L)+1个时钟循环时储存在所述奇偶校验移位寄存器中的每一个中的所述奇偶校验位是最终的奇偶校验位值。
8.根据权利要求1和2中任一权利要求所述的编码器模块,其中所述P个奇偶校验位是通过所述编码器模块在(K/L)+2到(N/L)+1个时钟循环期间输出的。
9.根据权利要求8所述的编码器模块,其中所述P个奇偶校验位是被输出而作为L位并行输出。
10.根据权利要求1和2中任一权利要求所述的编码器模块,其中所述奇偶校验移位寄存器是通过耦合到所述奇偶校验移位寄存器中的每一个的控制信号控制的。
11.根据权利要求1和2中任一权利要求所述的编码器模块,其中通过所述编码器模块接收到的所述K位消息的所述L位部分是通过所述编码器模块在第(K/L)+1个时钟循环期间输出的。
12.根据权利要求1所述的编码器模块,
其中所述编码器模块的所述输入端耦合到所述输出端;
其中所述移位寄存器电路是耦合到所述输入端和所述输出端的P/L级延迟;以及
其中所述奇偶校验移位寄存器中的每一个经配置以储存L个奇偶校验位。
13.根据权利要求12所述的编码器模块,
其中在(K/L)个时钟循环中的每一个期间:
所述反馈电路的所述开关中的每一个是闭合的;
所述编码器模块将在其输入端处接收到的所述K位消息的所述L位部分中的一者转发到所述第一奇偶校验移位寄存器和所述编码器模块的所述输出端;
所述奇偶校验移位寄存器中的每一个将其储存的奇偶校验位转发到所述奇偶校验生成模块中的对应一者,所述奇偶校验生成模块生成将被传输到所述第一奇偶校验移位寄存器的L个奇偶校验位;以及
所述奇偶校验移位寄存器中的每一个,而不是所述最后一个奇偶校验移位寄存器,将其储存的奇偶校验位转发到所述奇偶校验移位寄存器中的随后一者;
其中在(K/L)+1到(P/L)个时钟循环中的每一个期间:
所述编码器模块将在其输入端接收到的零输入转发到所述第一奇偶校验移位寄存器;
所述反馈电路的所述开关中的一个或多个是逐个打开的;以及
所述奇偶校验移位寄存器中的每一个将其储存的奇偶校验位传输到所述奇偶校验生成模块中的对应一者;
其中在((K/L)+(P/L))到((N/L)+(P/L))个时钟循环的每一个期间:
所述最后一个奇偶校验移位寄存器将其储存的奇偶校验位转发到所述编码器模块的所述输出端;以及
所述奇偶校验移位寄存器中的每一个,而不是所述最后一个奇偶校验移位寄存器,将其储存的奇偶校验位转发到所述奇偶校验移位寄存器中的随后一者。
14.根据权利要求12所述的编码器模块,其中所述P个奇偶校验位是在(K/L)+1到(P/L)个时钟循环期间通过所述编码器模块输出的。
15.根据权利要求14所述的编码器模块,其中所述P个奇偶校验位是被输出而作为L位并行输出。
CN201280071938.1A 2012-03-26 2012-11-26 非二进制线性块码的并行编码 Active CN104247274B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/430,222 US8949703B2 (en) 2012-03-26 2012-03-26 Parallel encoding for non-binary linear block code
US13/430,222 2012-03-26
PCT/US2012/066554 WO2013147935A1 (en) 2012-03-26 2012-11-26 Parallel encoding for non-binary linear block code

Publications (2)

Publication Number Publication Date
CN104247274A true CN104247274A (zh) 2014-12-24
CN104247274B CN104247274B (zh) 2019-04-16

Family

ID=47470125

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280071938.1A Active CN104247274B (zh) 2012-03-26 2012-11-26 非二进制线性块码的并行编码

Country Status (6)

Country Link
US (1) US8949703B2 (zh)
EP (1) EP2831999B1 (zh)
JP (1) JP5978382B2 (zh)
KR (1) KR101930583B1 (zh)
CN (1) CN104247274B (zh)
WO (1) WO2013147935A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102820892B (zh) * 2012-06-20 2016-06-01 记忆科技(深圳)有限公司 一种用于并行bch编码的电路、编码器及方法
US20150363263A1 (en) * 2014-06-12 2015-12-17 HGST Netherlands B.V. ECC Encoder Using Partial-Parity Feedback
US11515897B2 (en) 2015-05-29 2022-11-29 SK Hynix Inc. Data storage device
US11611359B2 (en) 2015-05-29 2023-03-21 SK Hynix Inc. Data storage device
US10396827B2 (en) 2015-09-25 2019-08-27 SK Hynix Inc. Data storage device
KR20180059150A (ko) * 2016-11-25 2018-06-04 에스케이하이닉스 주식회사 1 클럭 인코딩이 가능한 에러 정정 코드 인코더 및 에러 정정 코드 인코딩 방법과, 그리고 그 에러 정정 코드 인코더를 포함하는 메모리 컨트롤러
US11177835B2 (en) 2015-09-25 2021-11-16 SK Hynix Inc. Data storage device
KR102285940B1 (ko) 2015-05-29 2021-08-05 에스케이하이닉스 주식회사 데이터 처리 회로, 데이터 처리 회로를 포함하는 데이터 저장 장치 및 그것의 동작 방법
KR20220151742A (ko) * 2021-05-07 2022-11-15 한국전자통신연구원 병렬 리드솔로몬 부호화 장치 및 방법

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4293951A (en) * 1979-03-16 1981-10-06 Communications Satellite Corporation Method and apparatus for encoding/decoding a convolutional code to a periodic convolutional code block
US4777635A (en) * 1986-08-08 1988-10-11 Data Systems Technology Corp. Reed-Solomon code encoder and syndrome generator circuit
US6493845B1 (en) * 1999-06-21 2002-12-10 Maxtor Corporation Parallel input output combined system for producing error correction code redundancy symbols and error syndromes
CN1849750A (zh) * 2004-01-15 2006-10-18 桑德布里奇技术公司 里得-所罗门编码和解码方法
US20100011277A1 (en) * 2008-07-10 2010-01-14 Poeppelman Alan D Adjustable error-correction for a reed solomon encoder/decoder
US20100017688A1 (en) * 2006-03-07 2010-01-21 Broadcom Corporation Performing multiple Reed-Solomon (RS) software error correction coding (ECC) Galois field computations simultaneously
CN101834615A (zh) * 2009-03-12 2010-09-15 普然通讯技术(上海)有限公司 里德-索罗蒙编码器实现方法
CN102231631A (zh) * 2011-06-20 2011-11-02 中兴通讯股份有限公司 Rs编码器的编码方法及rs编码器

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4410989A (en) * 1980-12-11 1983-10-18 Cyclotomics, Inc. Bit serial encoder
DE69315018T2 (de) * 1992-08-21 1998-04-30 Koninkl Philips Electronics Nv Hardware-effizientes Verfahren und Anordnung zur Kodierung von BCH-Kodes und insbesondere Reed-Solomon-Kodes
US5383204A (en) * 1993-06-29 1995-01-17 Mitsubishi Semiconductor America, Inc. Parallel encoding apparatus and method implementing cyclic redundancy check and Reed-Solomon codes
US6487693B1 (en) * 1998-08-06 2002-11-26 Samsung Electronics, Co., Ltd. Channel encoding/decoding in communication system
JP4295871B2 (ja) * 1999-09-24 2009-07-15 株式会社東芝 誤り訂正復号器
US6851086B2 (en) * 2000-03-31 2005-02-01 Ted Szymanski Transmitter, receiver, and coding scheme to increase data rate and decrease bit error rate of an optical data link
US6895545B2 (en) * 2002-01-28 2005-05-17 Broadcom Corporation System and method for generating cyclic codes for error control in digital communications
JP2004208282A (ja) * 2002-12-09 2004-07-22 Sony Corp データ処理装置
US7565594B2 (en) * 2004-08-26 2009-07-21 Alcatel-Lucent Usa Inc. Method and apparatus for detecting a packet error in a wireless communications system with minimum overhead using embedded error detection capability of turbo code
US7395492B2 (en) * 2004-09-13 2008-07-01 Lucent Technologies Inc. Method and apparatus for detecting a packet error in a wireless communications system with minimum overhead using tail bits in turbo code
US7831895B2 (en) * 2006-07-25 2010-11-09 Communications Coding Corporation Universal error control coding system for digital communication and data storage systems
KR20080052039A (ko) * 2006-12-07 2008-06-11 삼성전자주식회사 순환 중복 검사에 의한 정정 에러를 검사하는 방법 및 그장치
US8286059B1 (en) * 2007-01-08 2012-10-09 Marvell International Ltd. Word-serial cyclic code encoder
JP5500357B2 (ja) * 2010-03-31 2014-05-21 ソニー株式会社 符号化装置、および符号化方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4293951A (en) * 1979-03-16 1981-10-06 Communications Satellite Corporation Method and apparatus for encoding/decoding a convolutional code to a periodic convolutional code block
US4777635A (en) * 1986-08-08 1988-10-11 Data Systems Technology Corp. Reed-Solomon code encoder and syndrome generator circuit
US6493845B1 (en) * 1999-06-21 2002-12-10 Maxtor Corporation Parallel input output combined system for producing error correction code redundancy symbols and error syndromes
CN1849750A (zh) * 2004-01-15 2006-10-18 桑德布里奇技术公司 里得-所罗门编码和解码方法
US20100017688A1 (en) * 2006-03-07 2010-01-21 Broadcom Corporation Performing multiple Reed-Solomon (RS) software error correction coding (ECC) Galois field computations simultaneously
US20100011277A1 (en) * 2008-07-10 2010-01-14 Poeppelman Alan D Adjustable error-correction for a reed solomon encoder/decoder
CN101834615A (zh) * 2009-03-12 2010-09-15 普然通讯技术(上海)有限公司 里德-索罗蒙编码器实现方法
CN102231631A (zh) * 2011-06-20 2011-11-02 中兴通讯股份有限公司 Rs编码器的编码方法及rs编码器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TOMOLO K. MATSUSHIMA 等: "Parallel Architecture For High-speed Reed-Solomon Codec", 《TELECOMMUNICATIONS SYMPOSIUM,1998.ITS"98 PROCEEDINGS》 *

Also Published As

Publication number Publication date
EP2831999B1 (en) 2019-01-09
KR101930583B1 (ko) 2018-12-18
JP5978382B2 (ja) 2016-08-24
CN104247274B (zh) 2019-04-16
EP2831999A1 (en) 2015-02-04
KR20140142320A (ko) 2014-12-11
JP2015512585A (ja) 2015-04-27
US8949703B2 (en) 2015-02-03
US20130254639A1 (en) 2013-09-26
WO2013147935A1 (en) 2013-10-03

Similar Documents

Publication Publication Date Title
CN104247274A (zh) 非二进制线性块码的并行编码
US8954828B2 (en) Memory controller
Ramabadran et al. A tutorial on CRC computations
US4402045A (en) Multi-processor computer system
CN101814922B (zh) 基于bch码的多位错纠错方法和装置以及存储系统
CN101227194B (zh) 用于并行bch编码的电路、编码器及方法
CN101946230B (zh) 用于检测和校正所接收的符号串中的定相突发差错、删除、符号差错和位差错的方法和系统
US9203437B2 (en) Circuitry and method for correcting 3-bit errors containing adjacent 2-bit error
CN100592639C (zh) 低密度奇偶校验编码方法、装置及奇偶校验矩阵生成方法
CN106936444B (zh) 一种集合译码方法和集合译码器
CN103534952A (zh) 使用低密度奇偶校验码的编码及解码技术
US7039854B1 (en) Method and apparatus for performing syndrome computation in a decoder of a forward error correction (FEC) system
US10903859B2 (en) Error detection by means of group errors
CN112118014B (zh) 用于进行重组解码的低密度奇偶校验解码装置及相关方法
US10193574B1 (en) Efficient syndrome calculation in processing a GLDPC code
US6760880B1 (en) Scalar product and parity check
CN101436864B (zh) 一种低密度奇偶校验码的译码方法及装置
CN103944589A (zh) 一种bch编码、解码方法及装置
JP6336547B2 (ja) 訂正信号を決定する回路構成及びその方法
Puchinger et al. Decoding high-order interleaved rank-metric codes
US20230370092A1 (en) Error Correction With Fast Syndrome Calculation
CN117254823B (zh) 一种并行rs编码方法、装置、系统及计算机存储介质
US20230370091A1 (en) Error Correction With Fast Syndrome Calculation
GB971206A (en) Improvements in data transmission systems
Reed SAda ptie Sensors, Incorporated

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant