CN101257312A - 一种解码伴随式的计算方法、电路及解码器 - Google Patents

一种解码伴随式的计算方法、电路及解码器 Download PDF

Info

Publication number
CN101257312A
CN101257312A CNA2008100654768A CN200810065476A CN101257312A CN 101257312 A CN101257312 A CN 101257312A CN A2008100654768 A CNA2008100654768 A CN A2008100654768A CN 200810065476 A CN200810065476 A CN 200810065476A CN 101257312 A CN101257312 A CN 101257312A
Authority
CN
China
Prior art keywords
vector
centerdot
alpha
output
sequence
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
CNA2008100654768A
Other languages
English (en)
Other versions
CN100571045C (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.)
JUCAI MICRO DEVICES (SHENZHEN) CO Ltd
Original Assignee
JUCAI MICRO DEVICES (SHENZHEN) 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 JUCAI MICRO DEVICES (SHENZHEN) CO Ltd filed Critical JUCAI MICRO DEVICES (SHENZHEN) CO Ltd
Priority to CNB2008100654768A priority Critical patent/CN100571045C/zh
Publication of CN101257312A publication Critical patent/CN101257312A/zh
Application granted granted Critical
Publication of CN100571045C publication Critical patent/CN100571045C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

本发明适用于解码技术领域,提供一种解码伴随式的计算方法、电路及解码器,所述方法为对输入的分组序列当前周期的M位数据运算输出第一向量;将当前周期输出的第一向量与上一周期输出的第二向量累加,输出向量累加值,所述上一周期输出的第二向量为上一周期的向量累加值与GF(2m)的元素组成的向量做乘法运算后的输出向量;重复执行上述步骤,当输入的分组序列的最后一组M位数据累加完成后,输出对应的向量累加值作为伴随式Si的值。本发明实现了二、三、四以及任意多路的方式并行工作,计算速度快。

Description

一种解码伴随式的计算方法、电路及解码器
技术领域
本发明属于解码技术领域,尤其涉及一种解码伴随式的计算方法、电路及解码器。
背景技术
BCH码取自Bose、Ray-Chaudhuri与Hocquenghem的缩写,是纠正多个随机错误的循环码,可以用生成多项式g(x)的根描述,在通信领域和消费类电子领域经常使用BCH码作为检错或纠错的依据。需要纠错或检错的数据通过编码器生成校验码,并将校验码和原码同时发送出去,然后在解码端解码并同时纠错或检错。
BCH码的解码流程如图1所示,详述如下:
在步骤S101中,计算伴随式;
在步骤S102中,根据伴随式计算错误位置多项式;
在步骤S103中,根据错误位置多项式对错误进行搜索,例如“钱”搜索,并纠错。
其中伴随式的计算是重要的一步,其基本原理是:
1、假设输入编码器的序列长度为K,输入序列多项式M(x)为:
M(x)=mK-1xK-1+mK-2xK-2+…+m1x1+m0   (1)
其中,mi为1或者0,xi表示mi在序列中的位置,i=0,1,2,3,...,k-1。
2、编码器有以下等式
xRM(x)=a(x)·g(x)+R(x)   (2)
其中,xRM(x)表示xR与M(x)的乘积,R为R(x)的阶数,g(x)为生成多项式,a(x)为xRM(x)除以g(x)得到的商多项式,R(x)为接收码元多项式,为(2)式中定义的余数多项式。
生成多项式g(x)表达式为 g ( x ) = Π i = 0 t - 1 m i ( x ) , 其中mi(x)为最小多项式。其物理意义为,g(x)是由t个最小多项式项相乘产生,t为BCH码能够纠正的最大错误个数。
3、编码器输出的序列为T(x),长度为N,T(x)表示为
T(x)=M(x)xN-K+R(x)(3)
4、假设信道产生的错误为E(x),错误位置多项式E(x)的表达式为
E(x)=EN-1xN-1+EN-2xN-2+…+E1x+E0     (4)
其中,Ei表示错误值,当Ei为1时表示有错误发生,Ei为0时表示无错误发生。
则接收码元多项式R(x)可表示为
R(x)=T(x)+E(x)        (5)
5、由式(2)、(3)知
T(x)=xRM(x)+R(x)=a(x)g(x)      (6)
即T(x)能被a(x)整除。
定义伴随式Si,即S0,…,S2t-1,t为BCH码能够纠正的最大错误个数。伴随式的表达式为
Si=E(αi)=R(αi)      (7)
其中αi是对应的伽罗华域(Galois Field,GF)乘法GF(2m)的元素,M为大于log2N的最小整数。
又接收码元多项式可以表示为
R(x)=rN-1xN-1+rN-2xN-2+…+r1x+r0       (8)
其中,rj表示输入序列{rN-1,rN-2,…,r1,r0}的一位,为1或者0,xj表示rj在序列中的位置,j=0,1,2,3...,N-1。
为减少计算量,根据(7)、(8)式,现有技术中提出如下伴随式的算法:
Si=R(αi)=rN-1i)N-1+rN-2i)N-2+…+r1i)+r0
=((rN-1i)+rN-2)(αi)+…+r1)(αi)+r0     (9)
图2示出了现有技术提供的计算伴随式的电路结构,图中每个时钟周期从加法器204处输入(input)1位数据,并且此时控制(control)位控制选择器203,使得寄存器202输出的值传递到加法器204中,从而使输入的1位数据与之相加,相加后的结果通过GF(2m)的常数乘法器201进行一次常数乘法运算,运算结果反馈回寄存器202,在下一个时钟周期与加法器204处的输入数据累加,不断累加后,当需要校验的数据输入完成以后通过control位关闭选择器203,此时寄存器202输出的结果就是输入序列的伴随式值。伴随式的计算采用串行输入,采用这种方式的计算只需要一个GF(2m)的常数乘法器201和一个GF(2m)的加法器204就能够计算出Si。但当BCH码的码字长度N很大时,例如BCH(8191,8048,23)的码字长度为8191个,要算出Si至少需要8191个时钟周期,周期太长,计算量很大,对于Flash控制器等需要较短读取周期延迟的存储或通信系统来说是难以接受的。
发明内容
本发明实施例的目的在于提供一种解码过程中伴随式并行计算的方法,旨在解决现有技术中在计算伴随式时采用串行计算,计算周期长、计算量大的问题。
本发明实施例是这样实现的,一种解码伴随式的计算方法,其特征在于,所述方法包括下述步骤:
对输入的分组序列当前周期的M位数据运算输出第一向量;
将当前周期输出的第一向量与上一周期输出的第二向量累加,输出向量累加值,所述上一周期输出的第二向量为上一周期的向量累加值与GF(2m)的元素做乘法运算后的输出向量;
重复执行上述步骤,当输入的分组序列的最后一组M位数据累加完成后,输出对应的向量累加值作为伴随式Si的值;
其中,伴随式Si满足
S i = ( ( ( B N M - 1 i ( α i ) M + B N M - 2 i ) ( α i ) M + B N M - 3 i ) + · · · + B 1 i ) ( α i ) M + B 0 i ;
B j i = r j * M ( α i ) 0 + r j * M + 1 ( α i ) 1 + · · · + r j * M + M - 1 ( α i ) M - 1 ;
其中,Bj i为分组序列第j组第i位数据运算输出的第一向量,0≤j≤A-1,0≤i≤2t-1,j为不大于A-1的非负整数,i为不大于2t-1的非负整数,rj*M+k为分组序列第j组第k位数据,为0或1,0≤k≤M-1,k为小于等于M-1非负整数,M为并行度,为大于1的自然数,N为分组序列的总长度,αi是计算第i个伴随式时对应的GF(2m)的元素,m为大于log2N的最小整数,所述累加运算采用GF域中的加法运算,所述乘法计算时采用GF域中的乘法运算。
本发明实施例的另一目的在于提供一种解码伴随式的电路,所述电路包括:
向量计算电路,用于对输入的分组序列当前周期的M位数据运算输出第一向量;
向量乘法器,用于将上一周期的向量累加值与GF(2m)的元素做乘法运算后输出第二向量;
寄存器,用于保存所述向量乘法器输出的第二向量;
向量累加器,用于将当前周期输出的第一向量与所述寄存器中保存的上一周期输出的第二向量累加,输出向量累加值;以及
选择器,用于将累加结果控制输入常数向量乘法器中进行并行的向量乘法计算,直到收到输入的分组序列的最后一组M位数据累加完成的控制信号后,输出对应的向量累加值作为伴随式的值。
其中,伴随式Si满足
S i = ( ( ( B N M - 1 i ( α i ) M + B N M - 2 i ) ( α i ) M + B N M - 3 i ) + · · · + B 1 i ) ( α i ) M + B 0 i ;
B j i = r j * M ( α i ) 0 + r j * M + 1 ( α i ) 1 + · · · + r j * M + M - 1 ( α i ) M - 1 ;
其中,Bj i为分组序列第j组第i位数据运算输出的第一向量,0≤j≤A-1,0≤i≤2t-1,j为不大于A-1的非负整数,i为不大于2t-1的非负整数,rj*M+k为分组序列第j组第k位数据,为0或1,0≤k≤M-1,k为小于等于M-1非负整数,M为并行度,为大于1的自然数,αi是计算第i个伴随式时对应的GF(2m)的元素,m为大于log2N的最小整数,N为分组序列的总长度,所述累加运算采用GF域中的加法运算,所述乘法运算采用GF域中的乘法运算。
本发明实施例的另一目的在于提供一种解码器,所述解码器包括上述伴随式的并行计算电路。
本发明的BCH伴随式并行计算实现了任意多路的方式并行工作,将序列分成多组,输入至伴随式计算电路中进行并行处理,最后输出伴随式的计算值,减少了计算的计算量,计算速度有显著提升。
附图说明
图1是现有技术提供的BCH码的解码流程图;
图2是现有技术提供的计算伴随式的电路结构图;
图3是本发明提供的解码伴随式的计算方法流程图;
图4是本发明提供的伴随式计算的原理图;
图5是本发明实施例提供的伴随式计算电路结构图;
图6是本发明实施例提供的伴随式计算电路中的向量计算电路图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,将序列分成多组,输入至伴随式计算电路中进行并行处理,可以实现任意多路的方式并行工作,减少了计算周期,加快了计算速度。在本发明实施例中,为了减少计算周期,对计算伴随式的公式做如下改进:
S i = R ( α i ) = r N - 1 ( α i ) N - 1 + r N - 2 ( α i ) N - 2 + · · · + r 1 ( α i ) + r 0
= Σ p = 0 N - 1 r p ( α i ) p - - - ( 10 )
其中,Si为伴随式的表达式,即S0,…,S2t-1,且Si=E(αi)=R(αi),t为BCH码能够纠正的最大错误个数;αi是计算第i个伴随式时对应的GF(2m)的元素,表示ri在序列中的位置,M为序列中码元的位宽度,M为大于log2 N的最小整数,N为序列长度;i为小于2t的非负整数,0≤i≤2t-1,rp为1或者0,p=0,1,2,...,N-1。
假设将序列分成A组,A=Ceil[N/M],则A为不小于N/M的最小整数,也就是A*M为大于等于N的一个最小整数,其中,N为序列长度,M为序列处理电路的并行度,M为大于1的整数,则:
(1)若序列长度N能够被M整除
伴随式Si可以表示为:
S i = R ( α i ) = Σ j = 0 N M - 1 [ r j * M ( α i ) j * M + r j * M + 1 ( α i ) j * M + 1 + · · · + r j * M + m - 1 ( α i ) j * M + m - 1 ]
= Σ j = 0 N M - 1 [ ( α i ) j * M [ r j * M ( α i ) 0 + r j * M + 1 ( α i ) 1 + · · · + r j * M + M - 1 ( α i ) M - 1 ] ] - - - ( 11 )
此时,将输入序列{rN-1,rN-2,…,r1,r0}分为N/M个组,即{rN-1,rN-2,…,rN-M+1,rN-M},{rN-1-M,rN-1-M-1,…,rN-1-M-(M-2),rN-1-M-(M-1)},…,{rM-1,rM-2,…,r1,r0},计算时按计算周期的顺序依次输入,即第一个周期输入{rN-1,rN-2,…,rN-M+1,rN-M},第二个周期输入{rN-1-M,rN-1-M-1,…,rN-1-M-(M-2),rN-1-M-(M-1)},... ...最后一个周期输入{rM-1,rM-2,…,r1,r0}。
(2)若序列长度N不能够被M整除
在本发明实施例中,可以定义变量remainder,令remainder=A*M-N,在输入序列{rN-1,rN-2,…,r1,r0}最高位前补remainder个0,得到{0,…,0,rN-1,rN-2,…,r1,r0}。则新的输入序列的多项式表达式为
R′(x)=rN+remainder-1xN+remainder-1+…+r1x+r0,    (12)
其中rN,rN+1,...,rN+remainder-1均为0。
于是
S i = R ′ ( α i ) = Σ j = 0 N + remainder M - 1 [ r j * M ( α i ) j * M + r j * M + 1 ( α i ) j * M + 1 + · · · + r j * M + M - 1 ( α i ) j * M + M - 1 ]
= Σ j = 0 N + remainder M [ ( α i ) j * M [ r j * M ( α i ) 0 + r j * M + 1 ( α i ) 1 + · · · + r j * M + M - 1 ( α i ) M - 1 ] ] - - - ( 13 )
可见,加入remainder个0后不会影响Si的值。
此时,将输入序列{rN-1,rN-2,…,r1,r0}高位补A*M-N个零,得到{0,…,0,rN-1,rN-2,…,r1,r0},并将补零后的序列分为A个组,即{0,…,0,rN-1,…,rN-M+(A×M-N)},{rN-1-M+(A×M-N),…rN-2M+(A×M-N)},…,{rM-1,…r1,r0},计算时按周期顺序依次输入,即第一个周期输入{0,…,0,rN-1,…,rN-M+(A×M-N)},第二个周期输入{rN-1-M+(A×M-N),…rN-2M+(A×M-N)},... ...最后一个周期输入{rM-1,rM-2,…,r1,r0}。
观察rj*M+ki)q项,其中k∈[0,M-1],q∈[0,M-1]。可以看出,虽然是GF(2m)的乘法,但是输入序列rj*M+k为0或1,因此伴随式计算电路中的乘法器可简化为选择器,即:
A、如果rj*M+k=1,(αi)q项加入Si
B、如果rj*M+k=0,(αi)q项不加入Si
又令
B j i = r j * M ( α i ) 0 + r j * M + 1 ( α i ) 1 + · · · + r j * M + M - 1 ( α i ) M - 1 - - - ( 14 )
则有
S i = R ′ ( α i ) = Σ j = 0 N M - 1 [ ( α i ) j * M B j i ]
= ( ( ( B N M - 1 i ( α i ) M + B N M - 2 i ) ( α i ) M + B N M - 3 i ) + · · · + B 1 i ) ( α i ) M + B 0 i - - - ( 15 )
这样,计算的周期就从N个减少到或者
Figure A20081006547600123
个。Bj i表示第j组数据输入后计算得到的第i个支路的值,下标j代表第j个时钟,取0≤j≤A-1,共M个,上标i代表运算Si所需的Bj i个数,取0≤i≤2t-1,共2t个。
由于(αi)q均为常数,因此可以使用只读存储器(Read Only memory,ROM)来保存(αi)q的值,ROM的存储空间需要M*M*2t位。其中,M为GF(2m)域中的M,m为大于log2N的最小整数,N为输入序列的长度,M为并行度。
解码器计算错误位置多项式时需要2t个伴随式的值,因此设计2t个Bj i并结合式(14)得到如下矩阵表达式:
B j 0 B j 1 · · · B j 2 t - 1 = ( α 0 ) 0 ( α 0 ) 1 · · · ( α 0 ) M - 1 ( α 1 ) 0 ( α 1 ) 1 · · · ( α 1 ) M - 1 · · · · · · ( α 2 t - 1 ) 0 ( α 2 t - 1 ) 1 · · · ( α 2 t - 1 ) M - 1 × r j * M r j * M + 1 · · · r j * M + M - 1 - - - ( 16 )
将(16)式简化表示,有:
B=A×R    (17)
其中 A = ( α 0 ) 0 ( α 0 ) 1 · · · ( α 0 ) M - 1 ( α 1 ) 0 ( α 1 ) 1 · · · ( α 1 ) M - 1 · · · · · · ( α 2 t - 1 ) 0 ( α 2 t - 1 ) 1 · · · ( α 2 t - 1 ) M - 1 , R = r j * M r j * M + 1 · · · r j * M + M - 1 .
可以看出A矩阵中有许多重复的(αi)q项,ROM的实际存储空间小于M*M*2t位,M为存储每个(αi)q所需的位数。
还可以看出rj*M+k的值决定{(a0)k1)k…(α2t-1)k}是否加入向量B,其中k∈[0,M-1]。因此计算量从原来每个周期需要完成2t次M*M位的乘法计算,变成现在需要做M次比较,并至多进行2t*M次M位的加法,可以大大减少计算量。
图3示出了本发明提供的解码伴随式的计算方法的流程,详述如下:
在步骤S301中,对输入的分组序列当前周期的M位数据运算输出第一向量;
在本发明实施例中,对计算伴随式的公式变化如下:
S i = R ( α i ) = r N - 1 ( α i ) N - 1 + r N - 2 ( α i ) N - 2 + · · · + r 1 ( α i ) + r 0
= Σ p = 0 N - 1 r p ( α i ) p - - - ( 10 )
其中,Si为伴随式的表达式,即S0,…,S2t-1,且Si=E(αi)=R(αi),t为BCH码能够纠正的最大错误个数;αi是计算第i个伴随式时对应的GF(2m)的元素,表示ri在序列中的位置,M为序列中码元的位宽度,m为大于log2N的最小整数,N为序列长度;rp为1或者0,p=0,1,2,...,N-1。
假设将序列分成A组,A=Ceil[N/M],则A为不小于N/M的最小整数,也就是A*M为大于等于N的一个最小整数,其中,N为序列长度,M为序列处理电路的并行度,M为大于1的整数,则:
(1)若序列长度N能够被M整除
伴随式Si可以表示为:
S i = R ( α i ) = Σ j = 0 N M - 1 [ r j * M ( α i ) j * M + r j * M + 1 ( α i ) j * M + 1 + · · · + r j * M + M - 1 ( α i ) j * M + M - 1 ]
= Σ j = 0 N M - 1 [ ( α i ) j * M [ r j * M ( α i ) 0 + r j * M + 1 ( α i ) 1 + · · · + r j * M + M - 1 ( α i ) M - 1 ] ] - - - ( 11 )
(2)若序列长度N不能够被M整除
在本发明实施例中,可以定义变量remainder,令remainder=A*M-N,在输入序列{rN-1,rN-2,…,r1,r0}最高位前补remainder个0,得到{0,…,0,rN-1,rN-2,…,r1,r0}。则新的输入序列的多项式表达式为
R′(x)=rN+remainder-1xN+remainder-1+…+r1x+r0,(12)
其中rN,rN+1,...,rN+remainder-1均为0。
于是
S i = R ′ ( α i ) = Σ j = 0 N + remainder M - 1 [ r j * M ( α i ) j * M + r j * M + 1 ( α i ) j * M + 1 + · · · + r j * M + M - 1 ( α i ) j * M + M - 1 ]
= Σ j = 0 N + remainder M - 1 [ ( α i ) j * M [ r j * M ( α i ) 0 + r j * M + 1 ( α i ) 1 + · · · + r j * M + M - 1 ( α i ) M - 1 ] ] - - - ( 13 )
可见,加入remainder个0后不会影响Si的值。
在步骤S302中,将当前周期输出的第一向量与上一周期输出的第二向量累加,输出向量累加值,所述上一周期输出的第二向量为上一周期的向量累加值与GF(2m)的元素做乘法运算后的输出向量;
在步骤S303中,重复执行上述步骤,当输入的分组序列的最后一组M位数据累加完成后,输出对应的向量累加值作为伴随式Si的值;
在本发明实施例中,向量B的计算方法为当rj*M+k=0时输出0,当rj*M+k=1时输出常数(αi)k,其中0≤i≤2t-1,0≤j≤A-1,0≤k≤M-1,再将所有输出值相加得到B向量的每一个元素Bj i
作为本发明的一个实施例,计算向量Bj i的方法为按照
B j 0 B j 1 · · · B j 2 t - 1 = ( α 0 ) 0 ( α 0 ) 1 · · · ( α 0 ) M - 1 ( α 1 ) 0 ( α 1 ) 1 · · · ( α 1 ) M - 1 · · · · · · ( α 2 t - 1 ) 0 ( α 2 t - 1 ) 1 · · · ( α 2 t - 1 ) M - 1 × r j * M r j * M + 1 · · · r j * M + M - 1 , 即B=A×R进行计算,其中
A = ( α 0 ) 0 ( α 0 ) 1 · · · ( α 0 ) M - 1 ( α 1 ) 0 ( α 1 ) 1 · · · ( α 1 ) M - 1 · · · · · · ( α 2 t - 1 ) 0 ( α 2 t - 1 ) 1 · · · ( α 2 t - 1 ) M - 1 , R = r j * M r j * M + 1 · · · r j * M + M - 1 .
作为本发明的一个实施例,矩阵R中的元素rj*M+k(0≤j≤A-1,0≤k≤M-1)为0或1。
在本发明实施例中,伴随式的计算公式为:
S i = R ′ ( α i ) = Σ j = 0 N M - 1 [ ( α i ) j * M B j i ] = ( ( ( B N M - 1 i ( α i ) M + B N M - 2 i ) ( α i ) M + B N M - 3 i ) + · · · + B 1 i ) ( α i ) M + B 0 i ,
其中R′(αi)为接收码元多项式,αi是对应的GF(2m)的元素,m为大于log2N的最小整数,N为序列长度,M为并行度。
作为本发明的一个实施例,(α0)k,(α1)k…(α2t-1)k均是GF(2m)的元素。
图4示出了本发明提供的伴随式并行计算的原理,计算时每个时钟周期向伴随式并行计算电路输入M个数据,即rN-1-j*M,rN-1-(j*M+1)…rN-1-(j*M+M-1),其中0≤j≤A-1,直到或者
Figure A20081006547600153
个时钟周期,输出伴随式的计算值S0,S1…S2t-1
图5示出了本发明实施例提供的伴随式并行计算的电路结构,为了便于描述,仅示出了与本发明实施例相关的部分。
首先对整个电路进行初始化,并将向量累加器502和寄存器504清零。然后根据电路处理数据的并行度M将序列长度为N的序列分成A组,其中A=Ceil[N/M],即A*M为大于等于N的最小的一个整数,N为序列长度,M为并行度,N、M为任意大于零的整数。在第j个时钟周期向向量计算电路501并行输入M个数据,即rN-1-j*M,rN-1-(j*M+1)…rN-1-(j*M+M-1),并并行计算输出一组向量B0 j,B1 j…B2t-1 j到向量累加器502,向量计算电路501在每个时钟周期计算出一组新的向量B0 j,B1 j…B2t-1 j,其中rN-1-(j×M+k)代表每次解码运算中的第j个时钟输入的第i个数据,0≤j≤A-1,0≤k≤M-1。向量累加器502同时将寄存器504中的值与向量计算电路501计算出的向量Bj 0,Bj 1…Bj 2t-1相加。累加的结果输送到选择器503中,此时控制(control)位控制选择器503,使得累加结果直接传递到常数向量乘法器505中与输入的对应(αi)M,即{(a1)M,(a2)M,......(a2t-1)M}进行并行的向量乘法计算。完成向量乘法后将向量乘法器505的计算结果保存到寄存器504中,等待输入向量累加器502用于下一次计算。当电路运行A个时钟周期,序列输入完成。此时控制(control)位关闭选择器503,向量累加器502中的值输出,输出的结果就是输入序列第i个伴随式的值Si
在本发明实施例中,每个时钟输入的第i个数据rN-1-(j×M+k)决定了常数项列(α0)i,(α1)i…(α2t-1)i的值是否加入到对应的向量B0 j,B1 j…B2t-1 j中。若rN-1-(j×M+k)=0,则向量B0 j,B1 j…B2t-1 j的值不做任何变化,若rN-1-(j×M+k)=1,则向量B0 j,B1 j…B2t-1 j加上向量(α0)i,(α1)i…(α2t-1)i。每个时钟周期输入一组数据rN-1-j*M,rN-1-(j*M+1)…rN-1-(j*M+M-1),判断一次,再做一次加法。其中,(α0)k,(α1)k…(α2t-1)k均是GF(2m)的元素,加法指的是GF(2m)域的加法。
从上述式(16)(17)可得,可以从常数矩阵A与向量R相乘计算向量B。图6示出了本发明实施例提供的向量计算电路501的结构,为了便于描述,仅示出了与本发明实施例相关的部分。向量计算电路501包括:将第j个周期输入的数据rN-1-(j×M+k)与每个(αi)k向量相乘,并输出结果的选择器5011,以及将每个对应i的选择器输出值累加后,输出第i个向量Bj i的值的加法器5012。
根据rN-1-j*M,rN-1-(j*M+1)…rN-1-(j*M+M-1)的值选择器5011判断输出(αi)k或0,每个加法器5012接收相应的选择器5011输出结果,并将所有结果相加得到对应的向量Bj i,即向量B的每一个元素Bj i由每一行的所述选择器5011输出值相加而成。
在本发明实施例中,由于输入的元素rN-1-(j×M+k)只有0或1,因此使用所述选择器5011对应常数向量R中的元素rN-1-(j×M+k)。当rN-1-(j×M+k)=0时所述选择器5011输出0,当rN-1-(j×M+k)=1时所述选择器5011输出常数(αi)k,其中0≤k≤M-1,0≤j≤A-1,αi是GF(2m)的元素,求和采用的是GF(2m)域的加法。
作为本发明的一个实施例,所述向量计算电路501包括至少一个选择器5011和至少一个加法器5012。
在本发明实施例中,BCH解码器可以采用上述并行计算BCH伴随式的电路。
在本发明实施例中,采用并行方式计算BCH伴随式,实现了二、三、四以及任意多路的方式并行工作,计算量从原来每个周期需要完成2t次M*M位的乘法,变成现在需要做M次比较,并至多进行2t*M次M位的GF(2m)加法,并且计算速度有M倍的提升,尤其适用于需要快速计算伴随式的情形。采用本发明实施例实现的BCH解码器可应用于大容量FLASH存储器,例如MP3、MP4、移动电话存储器,也可应用于光纤通信、卫星通信、4G通信等通信领域的信道编码中。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1、一种解码伴随式的计算方法,其特征在于,所述方法包括下述步骤:
对输入的分组序列当前周期的M位数据运算输出第一向量;
将当前周期输出的第一向量与上一周期输出的第二向量累加,输出向量累加值,所述上一周期输出的第二向量为上一周期的向量累加值与由GF(2m)元素组成的向量做乘法运算后的输出向量;
重复执行上述步骤,当输入的分组序列的最后一组M位数据累加完成后,输出对应的向量累加值作为伴随式Si的值;
其中,伴随式Si满足
S i = ( ( ( B N M - 1 i ( α i ) M + B N M - 2 i ) ( α i ) M + B N M - 3 i ) + · · · + B 1 i ) ( α i ) M + B 0 i ;
B j i = r j * M ( α i ) 0 + r j * M + 1 ( α i ) 1 + · · · + r j * M + M - 1 ( α i ) M - 1 ;
其中,Bj i为计算Si时第j数据运算后输出的第一向量,0≤j≤A-1,0≤i≤2t-1,j为不大于A-1的非负整数,i为不大于2t-1的非负整数,rj*M+k为分组序列第j组第k位数据,为0或1,0≤k≤M-1,k为小于等于M-1非负整数,M为并行度,为大于1的自然数,N为分组序列的总长度,αi是计算第i个伴随式时对应的GF(2m)的元素,m为大于log2 N的最小整数,所述累加运算采用GF域中的加法运算,所述乘法计算时采用GF域中的乘法运算。
2、如权利要求1所述的方法,其特征在于,所述对序列分组的方法为根据电路处理数据的并行度M将序列长度为N的序列分为A组,每组为M位,如果数据序列的长度不足M*A位,则将接收的数据的最高位补0,使得补零后序列长度变为M*A位,其中A=Ceil[N/M],即A为不小于N/M的最小整数,N为序列长度,M为并行度,M、A均为大于1的自然数。
3、如权利要求1所述的方法,其特征在于,第一向量的运算方法为当rj*M+k=0时输出0,当rj*M+k=1时输出常数(αi)k,再将所有输出值相加得到第一向量,其中0≤i≤2t-1,0≤j≤A-1,0≤k≤M-1。
4、一种解码伴随式的计算电路,其特征在于,所述电路包括:
向量计算电路,用于对输入的分组序列当前周期的M位数据运算输出第一向量B;
向量乘法器,用于将上一周期的向量累加值与由GF(2m)的元素组成的向量做乘法运算后输出第二向量;
寄存器,用于保存所述向量乘法器输出的第二向量;
向量累加器,用于将当前周期输出的第一向量B与所述寄存器中保存的上一周期输出的第二向量累加,输出向量累加值;以及
选择器,用于将累加结果控制输入常数向量乘法器中进行并行的向量乘法计算,直到收到输入的分组序列的最后一组M位数据累加完成的控制信号后,输出对应的向量累加值作为伴随式的值。
其中,伴随式Si满足
S i = ( ( ( B N M - 1 i ( α i ) M + B N M - 2 i ) ( α i ) M + B N M - 3 i ) + · · · + B 1 i ) ( α i ) M + B 0 i ;
B j i = r j * M ( α i ) 0 + r j * M + 1 ( α i ) 1 + · · · + r j * M + M - 1 ( α i ) M - 1 ;
其中,Bj i为计算Si时第j组数据运算后输出的第一向量B的元素,0≤j≤A-1,0≤i≤2t-1,j为不大于A-1的非负整数,i为不大于2t-1的非负整数,rj*M+k为分组序列第j组第k位数据,为0或1,0≤k≤M-1,k为小于等于M-1非负整数,M为并行度,为大于1的自然数,N为分组序列的总长度,αi是计算第i个伴随式时对应的GF(2m)的元素,m为大于log2N的最小整数,所述累加运算采用GF域中的加法运算,所述乘法计算时采用GF域中的乘法运算。
5、如权利要求4所述的计算电路,其特征在于,所述序列的分组为根据电路处理数据的并行度M将序列长度为N的序列分为A组,每组为M位,如果数据序列的长度不足M*A位,则将接收的数据的最高位补0,使得补零后序列长度变为M*A位,其中A=Ceil[N/M],即A*M为大于等于N的一个最小整数,N为序列长度,M为并行度,M、A均为大于1的自然数。
6、如权利要求4所述的计算电路,其特征在于,所述向量计算电路包括:
选择器,用于将第j个周期输入的数据rN-1-(j×M+k)与每个(αi)k向量相乘,并输出结果,其中0≤k≤M-1;以及
加法器,用于将每个计算Si时使用的选择器输出值累加后,输出向量Bj i的值。
7、如权利要求6所述的计算电路,其特征在于,所述选择器当rN-1-(j×M+k)=0时输出0,当rN-1-(j×M+k)=1输出常数(αi)k,其中0≤i≤2t-1,0≤k≤M-1,0≤j≤A-1。
8、一种解码器,其特征在于,包括权利要求4所述的电路。
CNB2008100654768A 2008-03-03 2008-03-03 一种解码伴随式的计算方法、电路及解码器 Active CN100571045C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2008100654768A CN100571045C (zh) 2008-03-03 2008-03-03 一种解码伴随式的计算方法、电路及解码器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2008100654768A CN100571045C (zh) 2008-03-03 2008-03-03 一种解码伴随式的计算方法、电路及解码器

Publications (2)

Publication Number Publication Date
CN101257312A true CN101257312A (zh) 2008-09-03
CN100571045C CN100571045C (zh) 2009-12-16

Family

ID=39891832

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2008100654768A Active CN100571045C (zh) 2008-03-03 2008-03-03 一种解码伴随式的计算方法、电路及解码器

Country Status (1)

Country Link
CN (1) CN100571045C (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102005250A (zh) * 2010-10-27 2011-04-06 记忆科技(深圳)有限公司 准循环低密度奇偶校验码译码器及译码方法
CN102855940A (zh) * 2012-06-19 2013-01-02 记忆科技(深圳)有限公司 伴随式的计算方法及其计算装置
CN102891726A (zh) * 2012-09-10 2013-01-23 华为技术有限公司 一种产生Gold序列的方法及芯片
CN103138770A (zh) * 2010-01-12 2013-06-05 北京忆恒创源科技有限公司 有限域平方计算电路
CN104393878A (zh) * 2010-11-10 2015-03-04 英飞凌科技股份有限公司 用于纠正在编码比特序列中的至少单比特错误的设备和方法
EP3107215A1 (en) * 2015-06-18 2016-12-21 Altera Corporation Reed-solomon or bch decoding configurable for high rate decoding or multi-output low rate decoding.
CN107040333A (zh) * 2016-02-03 2017-08-11 富士施乐株式会社 解码装置、信息传输系统和解码方法
CN107181563A (zh) * 2016-03-11 2017-09-19 富士施乐株式会社 解码装置、信息传输系统和解码方法
CN108574495A (zh) * 2017-03-13 2018-09-25 西部数据技术公司 错误定位多项式解码器及方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103138770A (zh) * 2010-01-12 2013-06-05 北京忆恒创源科技有限公司 有限域平方计算电路
CN102005250A (zh) * 2010-10-27 2011-04-06 记忆科技(深圳)有限公司 准循环低密度奇偶校验码译码器及译码方法
US10200065B2 (en) 2010-11-10 2019-02-05 Infineon Technologies Ag Apparatus and method for correcting at least one bit error within a coded bit sequence
CN104393878A (zh) * 2010-11-10 2015-03-04 英飞凌科技股份有限公司 用于纠正在编码比特序列中的至少单比特错误的设备和方法
CN102855940A (zh) * 2012-06-19 2013-01-02 记忆科技(深圳)有限公司 伴随式的计算方法及其计算装置
CN102891726A (zh) * 2012-09-10 2013-01-23 华为技术有限公司 一种产生Gold序列的方法及芯片
CN102891726B (zh) * 2012-09-10 2015-04-08 华为技术有限公司 一种产生Gold序列的方法及芯片
EP3107215A1 (en) * 2015-06-18 2016-12-21 Altera Corporation Reed-solomon or bch decoding configurable for high rate decoding or multi-output low rate decoding.
CN107040333A (zh) * 2016-02-03 2017-08-11 富士施乐株式会社 解码装置、信息传输系统和解码方法
CN107040333B (zh) * 2016-02-03 2021-04-13 富士施乐株式会社 解码装置、信息传输系统和解码方法
CN107181563A (zh) * 2016-03-11 2017-09-19 富士施乐株式会社 解码装置、信息传输系统和解码方法
CN107181563B (zh) * 2016-03-11 2021-03-30 富士施乐株式会社 解码装置、信息传输系统和解码方法
CN108574495A (zh) * 2017-03-13 2018-09-25 西部数据技术公司 错误定位多项式解码器及方法
CN108574495B (zh) * 2017-03-13 2021-07-16 西部数据技术公司 错误定位多项式解码器及方法

Also Published As

Publication number Publication date
CN100571045C (zh) 2009-12-16

Similar Documents

Publication Publication Date Title
CN100571045C (zh) 一种解码伴随式的计算方法、电路及解码器
CN1836394B (zh) 在移动通信系统中编码/解码分块低密度奇偶校验码的装置和方法
CN101227194B (zh) 用于并行bch编码的电路、编码器及方法
CN101277119B (zh) 里德所罗门码解码器硬件复用方法及其低硬件复杂度解码装置
CN103762991B (zh) 一种bch码译码方法及系统
CN112367087B (zh) 一种高速rs译码器
CN103248372A (zh) 基于循环左移的准循环ldpc串行编码器
CN107239362B (zh) 一种并行crc校验码的计算方法及系统
CN101478314A (zh) 一种里德-所罗门编码译码器及其译码的方法
CN112468161B (zh) 一种rs高速编码电路
CN101483442B (zh) 根据Nand Flash多余空间来配置纠错能力的BCH解码器
CN104218957B (zh) 一种低硬件复杂度的rs译码器
CN101296053A (zh) 计算循环冗余校验码之方法及系统
CN103986475A (zh) 里德-所罗门伞型代码的并行分解
CN101442313B (zh) 数字通信过程中的编解码方法以及编码器、解码器
CN102820892A (zh) 一种用于并行bch编码的电路、编码器及方法
US9417848B2 (en) Serial multiply accumulator for galois field
CN103268215A (zh) 基于循环左移的cmmb中准循环矩阵串行乘法器
CN103902509A (zh) Wpan中全并行输入的循环左移准循环矩阵乘法器
CN103235713A (zh) 基于循环左移的dtmb中准循环矩阵串行乘法器
EP0991196B1 (en) Method of correcting lost data and circuit thereof
CN101777922B (zh) 用于BCH译码器的高速低延时Berlekamp-Massey迭代译码电路
EP3297170B1 (en) Efficient reed-solomon encoding
CN103236856A (zh) 基于循环左移的dtmb中准循环ldpc串行编码器
CN103236858A (zh) 基于循环左移的cmmb中准循环ldpc串行编码器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant