CN101507120A - 并行剩余运算器和并行剩余运算方法 - Google Patents

并行剩余运算器和并行剩余运算方法 Download PDF

Info

Publication number
CN101507120A
CN101507120A CNA2007800307836A CN200780030783A CN101507120A CN 101507120 A CN101507120 A CN 101507120A CN A2007800307836 A CNA2007800307836 A CN A2007800307836A CN 200780030783 A CN200780030783 A CN 200780030783A CN 101507120 A CN101507120 A CN 101507120A
Authority
CN
China
Prior art keywords
parallel
residue
value
modg
data
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.)
Pending
Application number
CNA2007800307836A
Other languages
English (en)
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN101507120A publication Critical patent/CN101507120A/zh
Pending legal-status Critical Current

Links

Images

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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/091Parallel or block-wise CRC computation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

公开了能够减小处理延迟,无需追加乘法电路和剩余电路而能够减小电路规模的并行剩余运算器。在该装置中,并行CRC计算电路(100)包括:输入端子(101)至(104),输入数据被分割成多个子块后并行输入多个子块;初始值生成单元(110),生成与各个子块的开始点对应的部分CRC作为初始值;部分CRC生成单元(111)至(114),接收与各个子块的开头对应的部分CRC作为初始值,并基于规定的递推公式依序生成剩余的部分CRC;AND单元(121)至(124),计算部分CRC的值的逻辑“与”;以及累积加法单元(130),将从AND单元(121)至(124)输出的值累积相加。

Description

并行剩余运算器和并行剩余运算方法
技术领域
本发明涉及并行剩余运算器和并行剩余运算方法,涉及例如并行输入特播解码器等的输出,检测数字信息的差错的并行剩余运算器和并行剩余运算方法。
背景技术
CRC(Cyclic Redundancy Check:循环冗余校验)代码用于无线的分组通信或光盘等的存储盘等各种领域。例如,在无线通信系统中,通过无线线路进行通信,所以有可能在无线传输路径上发生发送数据的差错,因此设置使用了CRC的纠错电路。在发送端,基于发送数据串生成CRC比特,并将其附加到发送数据串之后。利用卷积编码或特播编码等编码方式对附加了CRC比特的比特串进行编码,由此获得的编码比特串被发送。
在非专利文献1中详细地记载了CRC代码的原理。
图1是用于说明CRC代码的使用方法的图。
在图1中,通过CRC编码单元12对来自输入源(源)11的输入数据串A进行CRC编码,并将其作为发送数据串B通过通信路径13发送到接收端。通信路径13例如为无线传输路径,比特差错(噪声)E被附加到发送数据。在接收端,接收附加了比特差错E的发送数据串B’,通过CRC检查单元14进行CRC检查,并将基于CRC检查的接收数据A’传送到输出端(sink;库)15。在无线通信系统为组合了纠错能力高的特播编码和ARQ(Auto RepeatreQuest;自动重传请求)的HARQ(Hybrid Auto Repeat reQuest;混合自动重传请求)的情况下,通过CRC检查单元14进行CRC检查来检测差错的发生状况,在没有发生差错时,输出数据串A的接收数据A’,同时生成ACK信号作为发送给通信对方的ACK/NACK信号。相反地,在发生差错时,不输出接收数据而生成NACK信号作为发送给通信对方的ACK/NACK信号。
更一般性地进行说明。
假设n比特的输入数据串为A=[a0a1…an-2an-1]。a0为MSB(Most SignificantBit;最高有效位)即先被发送的比特。假设a0,...,an-1分别为GF(2)的元素(即,取值为0或1),如下式(1),以多项式表示比特串。
A ( D ) = Σ i = 0 n - 1 a i D n - 1 - i = a 0 D n - 1 + a 1 D n - 2 + · · · + a n - 3 D 2 + a n - 2 D + a n - 1    ...式(1)
输入数据串A被CRC编码后,变成下式(2)的B。作为一般使用的CRC编码,通过在n比特的输入数据串之后追加长度为c的比特串来进行。有时将所追加的c比特称为CRC。
B=[a0a1...ac-2ac-1r0r1...rc-2rc-1]  ...式(2)
若用下式(3)表示CRC的多项式表现,则可用下式(4)表示B的多项式表现。
R ( D ) = Σ i = 0 c - 1 r i D c - 1 - i = r 0 D c - 1 + r 1 D c - 2 + · · · + r c - 2 D + r c - 1      ...式(3)
B(D)=A(D)Dc+R(D)                     ...式(4)
作为CRC编码,对应于预定的c阶的多项式G(D)来规定R(D),以使B(D)能被G(D)整除。也就是说,A(D)Dc除以G(D)的剩余为R(D)。
上述G(D)称为生成多项式,用下式(5)表示。
G ( D ) = D c + Σ i = 0 c - 1 g i D c - 1 - i = D c + g 0 D c - 1 + g 1 D c - 2 + · · · + g c - 3 D 2 + g c - 2 D + g c - 1 ...式(5)
以下,有时将生成多项式的阶数c称为CRC的阶数。
若汇总以上内容,即变成下式(6)。Q(D)为A(D)Dc除以G(D)后所得的商。
B(D)=A(D)Dc+R(D)=G(D)Q(D)         ...式(6)
如上地进行了CRC编码的n+c比特通过通信路径13发送。在通信路径13上,被附加了比特差错(噪声)E(D)。
作为CRC检查,通过检查接收值B’(D)=B(D)+E(D)是否能被G(D)整除来进行。在接收值中不存在比特差错时(即在E(D)=0时),B’(D)能被G(D)整除。在接收值中存在比特差错时,在E(D)不能被G(D)整除的情况下,B’(D)不能被G(D)整除。因此,能够检测在通信路径上发生了比特差错。在E(D)能被G(D)整除时,无法通过CRC检测存在差错的事实。但是,若c具有足够的长度,则其发生率较低。作为c,常使用32至8的值。
图2是用于说明适用于更实际的系统中的CRC代码的使用方法的图。
在图2中,通过CRC编码单元22对来自信息源(source;源)21的输入数据A(D)进行了CRC编码,并通过纠错编码单元23将进行了CRC编码的数据B(D)作为发送数据C(D),经由通信路径24发送给接收端。在发送端,在CRC编码后进行纠错编码。作为纠错编码的方法,使用里德索罗门码、卷积码和特播码等。
有时在通信路径24上,被附加了比特差错(噪声)E。在接收端,接收附加了比特差错E的发送数据串C’(D),通过纠错解码单元25进行纠错解码而输出发送数据B’(D),通过CRC检查单元26进行CRC检查,并将基于CRC检查的接收数据A’传送到输出端(sink;库)27。在接收端,对纠错码进行解码。由此,去除在通信路径24上被附加的比特差错的大部分。通过CRC检查单元26的CRC检查,检查是否存在通过纠错解码无法去除的差错。
(以往的例子1:逐次CRC计算电路)
图3是表示众所周知的逐次CRC计算电路的结构的图。
在图3中,逐次CRC计算电路30由EXOR(逻辑“异或”)电路31、[0]至[c-1]的触发器(FF;flip-flop)32和AND电路33构成。
图3为使用了移位寄存器的一般结构,从输入数据串的开头每一时钟周期(clock cycle)地输入1比特。
在逐次CRC计算电路30的CRC编码中,对由a[t]表示的输入端子每次1比特地输入a0至an-1。在全部输入后,c比特的触发器(FF)所保持的值成为CRC运算结果。
在CRC检查中,在每次1比特地输入接收到的n+c比特的数据B’(D)后,判定在触发器中残留的值是否为0。或者,也可输入B’(D)的开头的n比特,判定在触发器中残留的值是否与B’(D)的残留的c比特一致。
但是,在该结构中,存在以下的问题,即在输入为n比特时,进行CRC编码至少需要n时钟,处理延迟时间大。
(以往的例子2:计算部分CRC的方法)
在专利文献1中,公开了通过计算部分CRC来缩短处理延迟时间的部分CRC计算方法。
在专利文献1中,将剩余R(D)的计算式变形为下式(7)。
R ( D ) = A ( D ) mod G ( D )
= ( Σ i = 0 n - 1 a i D n - 1 + c - i ) mod G ( D )          ...式(7)
= Σ i = 0 n - 1 ( a i D n - 1 + c - i mod G ( D ) )
这里,预先求Dn-1+c-imodG(D)(i=0至n-1)的值(部分CRC),通过将输入数据并行地一次输入,能够以1时钟周期求CRC。
图4是表示部分CRC电路的结构的图,表示在上式(7)中n=16和c=24的情况的部分CRC电路。
在图4中,部分CRC电路40由运算对象比特串A[0]A[15]输入端子41、取各个比特串A[0]A[15]与预先计算出的部分CRC之间的AND(“与”)的AND电路42、以及汇总部分CRC的加法电路43构成。
在AND电路42中,将预先计算出的部分CRC的各个运算对象比特串的有效值解码为部分CRC代码,而在加法电路43中,求对于运算对象比特串整体的CRC代码。
但是,在专利文献1所示的并行度n的结构中,若n变大,则电路规模变得很大。也考虑降低并行度而依序输入数据的一部分,但从电路规模或处理延迟方面考虑,难以立即计算对于i=0至n-1的任意的部分CRC。因此,需要预先求所有的部分CRC,但在n较大时,用于保持部分CRC的存储器的容量变大,造成成本的增加。
(以往的例子3:分割成子块的方法)
另外,在专利文献2和3中,公开了将数据分割成子块而进行并行处理的子块分割型并行CRC电路。在专利文献2和3中,将剩余R(D)的计算式变形为下式(8)。
R ( D ) = A ( D ) mod G ( D )
= ( Σ i = 0 n - 1 a i D n - 1 + c - i ) mod G ( D )
= ( Σ i = m n - 1 a i D n - 1 + c - i ) mod G ( D ) + ( Σ i = 0 m - 1 a i D n - 1 + c - i ) mod G ( D )
= ( ( ( Σ i = 0 n - m - 1 a m + i D n - m - 1 + c - i ) mod G ( D ) ) ( a ) D m mod G ( D ) ) mod G ( D ) + ( Σ i = 0 m - 1 a i D n - 1 + c - i ) mod G ( D ) ( b )
...式(8)
也就是说,将上式(8)的长度n的数据分割成长度m和n-m,分解为(a)长度n-m的CRC计算以及(b)长度m的CRC计算。
但是,在该子块分割方法中,需要在(a)的结果乘以DmmodG(D)后,计算其结果除以G(D)的剩余。为了这些处理,需要追加乘法器和剩余计算器,造成了电路规模和处理延迟的增加。
作为最一般的并行化方法,有串行并行变换型的并行CRC电路。
图5A和图5B是表示串行并行变换型的并行CRC电路的图。在图5A中,S/P变换型并行CRC电路50由S/P变换器51和并行CRC电路52构成。
如图5B所示,S/P变换型并行CRC电路50通过S/P变换器51对输入进行串行并行变换,并由并行CRC电路52进行并行处理的CRC计算。并行处理例如每次1byte(字节)地进行处理。该并行化方法无论在硬件或软件中都有较多的实际安装和应用例。
非专利文献1:今井秀树著、“符号理论”、电子信息通信学会、1990年3月
专利文献1:特开平第8-149017号公报
专利文献2:特表第2003-523682号公报
专利文献3:特开第2005-6188号公报
发明内容
发明需要解决的问题
然而,在这样以往的CRC计算电路中,存在如下的课题。
(1)如上所述,在逐次CRC计算电路中处理延迟时间非常大,在部分CRC电路中用于保持部分CRC的存储器的容量大,造成成本的增加。
(2)由于以下的原因,子块分割型并行CRC电路需求高。
因为并行特播解码器的输出为子块分割型,所以有以下的优点,即若能够适用子块分割型并行CRC电路,则能够不通过存储器而直接进行输入。也就是说,因为将并行特播解码器的输出直接输入到CRC计算电路,所以并行CRC计算电路需要为子块分割型(例如,将数据序列分割成长度M的小块)而不为串行并行变换型(例如,从开头每次1byte地进行处理)。因此,与使用S/P型并行CRC电路的情况相比,子块分割型并行CRC电路不需要作为接口的存储器,带来处理延迟的削减以及电路规模和电流的削减。然而,在该子块分割型并行CRC电路中,因为分割成子块后进行并行处理,所以需要在进行并行处理的多个CRC剩余发生器的后级追加乘法器和加法器等剩余计算器,造成电路规模和处理延迟的增加。
(3)在串行并行变换型并行CRC电路中,需要接口存储器,由此带来处理延迟的增加,造成起因于ACK发送的延迟和反复停止的延迟的消费电流的增加。
如上所述,在子块分割型并行CRC电路与进行子块分割的并行特播解码器组合时,优点较大,但以往的子块分割型并行CRC电路的处理延迟和电路规模较大,所以期望处理延迟和电路规模较小的CRC电路。
本发明的目的在于,提供能够减小处理延迟,无需追加乘法电路和剩余电路而能够减小电路规模的并行剩余运算器。
解决该问题的方案
本发明的并行剩余运算器,输入数据被分割成多个子块后并行输入到该并行剩余运算器中,该并行剩余运算器所采用的结构包括:初始值生成单元,生成与所述各个子块的开始点对应的部分剩余作为初始值;部分剩余生成单元,从所述初始值生成单元接收与各个子块的开头对应的部分剩余作为初始值,并基于规定的递推公式依序生成其余的部分剩余;逻辑单元,进行所述输入数据与从所述部分剩余生成单元输出的部分剩余的值的逻辑运算;以及累积加法单元,将从所述逻辑单元输出的值累积相加。
本发明的并行剩余运算器,输入数据被分割成多个子块后并行输入到该并行剩余运算器中,该并行剩余运算器所采用的结构包括:初始值生成单元,生成与所述各个子块的最终点对应的部分剩余作为初始值;逆序部分剩余生成单元,从所述初始值生成单元接收与各个子块的最终点对应的部分剩余作为初始值,并基于规定的递推公式依序生成其余的部分剩余;逻辑单元,进行所述输入数据与从所述逆序部分剩余生成单元输出的逆序部分剩余的值的逻辑运算;以及累积加法单元,将从所述逻辑单元输出的值累积相加。
本发明的并行剩余运算方法,包括以下的步骤:在将长度n的输入数据分割成长度n-m和长度m的数据串,并将分割后的各个数据串作为子块时,根据在最大阶数c所确定的多项式G(D)的值,预先求各个子块的i=0和m的开始点的部分剩余即Dn-1+cmodG(D)和Dn-1+c-mmodG(D)作为初始值;以及将所述Dn-1+cmodG(D)和Dn-1+c-mmodG(D)作为初始值,依序计算与i=1至m-1和i=m+1至n-1对应的部分剩余。
本发明的并行剩余运算方法,包括以下的步骤:在将长度n的输入数据分割成长度n-m和长度m的数据串,并将分割后的各个数据串作为子块时,根据在最大阶数c所确定的多项式G(D)的值,预先求各个子块的i=m-1和n-1的最终点的部分剩余即Dn-1+c-(m-1)modG(D)和Dn-1+c-(n-1)modG(D)作为初始值;以及将所述Dn-1+c-(m-1)modG(D)和Dn-1+c-(n-1)modG(D)作为初始值,依序计算与i=m-2至0和i=n-2至m对应的逆序部分剩余。
发明的效果
根据本发明,能够减小处理延迟,无需存储所有的部分CRC,并且无需追加乘法电路和剩余电路而能够减小电路规模。尤其,在与进行子块分割的并行特播解码器组合时,能够显著地减小处理延迟。
附图说明
图1是用于说明CRC代码的使用方法的图。
图2是用于说明适用于实际的系统的CRC代码的使用方法的图。
图3是表示以往的CRC计算电路的结构的图。
图4是表示以往的部分CRC电路的结构的图。
图5A是表示以往的串行并行变换型的并行CRC电路的图。
图5B是表示以往的串行并行变换型的并行CRC电路的图。
图6是表示本发明实施方式1的并行剩余运算器的整体结构的方框图。
图7是表示上述实施方式1的并行剩余运算器的数据的输入和输出的时序图。
图8是由将上述实施方式1的并行剩余运算器的部分CRC生成单元计算的部分CRC汇总成表的图。
图9是表示上述实施方式1的并行剩余运算器的部分CRC生成单元的电路结构的图。
图10是表示上述实施方式1的并行剩余运算器的部分CRC生成单元的动作的时序图。
图11是表示上述实施方式1的并行剩余运算器的AND单元的电路结构的图。
图12是表示上述实施方式1的并行剩余运算器的AND单元的动作的时序图。
图13是表示上述实施方式1的并行剩余运算器的累积加法单元的电路结构的图。
图14是表示上述实施方式1的并行剩余运算器的初始值生成单元的结构的方框图。
图15是表示上述实施方式1的并行剩余运算器的初始值候补生成单元的电路结构的图。
图16是表示上述实施方式1的并行剩余运算器的初始值生成单元的动作的时序图。
图17是表示本发明实施方式2的并行剩余运算器的整体结构的方框图。
图18是表示上述实施方式2的并行剩余运算器的逆序部分CRC生成单元的电路结构的图。
图19是将由上述实施方式2的并行剩余运算器的各个部分CRC生成单元计算的部分CRC汇总为表的图。
图20是表示上述实施方式2的并行剩余运算器的初始值生成单元的动作的时序图。
具体实施方式
以下,参照附图详细地说明本发明的实施方式。
(基本原理)
首先,说明本发明的基本原理。
本发明具有与整体结构相关的[重点1]、与部分CRC生成电路相关的[重点2]、以及与部分CRC生成电路(逆序)相关的[重点3]。
[重点1]:关于整体结构
在本发明中,将剩余R(D)的计算式变形为下式(9)。
R ( D ) = A ( D ) mod G ( D )
= Σ i = 0 n - 1 ( a i D n - 1 + c - i mod G ( D ) )          ...式(9)
= + Σ i = 0 m - 1 ( a i D n - 1 + c - i mod G ( D ) ) ( a ) + Σ i = m n - 1 ( a i D n - 1 + c - i mod G ( D ) ) ( b )
也就是说,与上述以往的例子2(计算部分CRC的方法)同样,将式子变形以计算CRC作为部分CRC(Dn-1+c-imodG(D))的和,还与上述以往的例子3(分割成子块的方法)同样,将长度n的数据分割成长度n-m和长度m。以下,将分割后的各个数据串称为子块。输入数据被分割成与上式(9)中(a)对应的a0至am-1和与(b)对应的am至an-1,并分别对其进行并行计算,从而实现快速计算。
此时,在本发明中,如下计算部分剩余(部分CRC)。这里,假设对输入数据而言,与上式(9)中的(a)对应的子块1从a0开始至am-1每1比特地依序给出(输入),与上式(9)中的(b)对应的子块2从am开始至an-1以每1比特依序给出(输入)。
[步骤1]预先求在i=0,m中的部分CRC的值(即,在子块的开始点上的部分CRC)Dn-1+cmodG(D)和Dn-1+c-mmodG(D)。
[步骤2]将上述两个值作为初始值,依序计算与i=1至m-1和i=m+1至n-1对应的部分CRC。
采用了如上述的计算方法,因此本发明的子块分割型并行CRC电路由于(1)无需存储所有的部分CRC、以及(2)无需追加乘法电路和剩余电路,所以具有小型和低延迟的特征。
[重点2]:关于部分CRC生成电路
对基于上述子块的开始点上的部分CRC依序求其他的部分CRC的方法,说明优选的计算方法。
在将生成多项式设为下式(10)时,通常使用的CRC的生成多项式具有最低阶数的项的系数gc-1的值为1的特征。
G ( D ) = D c + Σ i = 0 c - 1 g i D c - 1 - i = D c + g 0 D c - 1 + g 1 D c - 2 + · · · + g c - 3 D 2 + g c - 2 D + g c - 1    ...式(10)
若利用该特征,则根据下式(11)所示的递推公式,能够容易地从DTmodG(D)的值求出DT-1modG(D)的值。
假设DMT(D)=DT mod G(D)时,
Figure A200780030783D00132
...式(11)
其中,如下定义运算子》。
假设 A ( D ) = Σ j = 0 n - 1 a i D i 时,
( A ( D ) > > 1 ) = Σ i = 1 n - 1 a i D i - 1
另外,仅通过移位寄存器能够买现运算子》。
另外,DMT(D)的最低阶数的系数是指DMT(D)的D0的系数。
(假设 DM T ( D ) = Σ i = 0 n - 1 a T , i D i 时,D0的系数为aT,0)
如上所述,根据以下的步骤,能够高效地实现在上述[重点1]中所述的并行CRC计算。
[步骤1’]预先求DMn-1+c(D)=Dn-1+cmodG(D)以及DMn-1+c-m(D)=Dn-1+c-mmodG(D)。
[步骤2’]基于DMn-1+c(D),依序求与i=1至m-1对应的部分CRC(DMn-1+c-1(D)至DMn-1+c-(m-1)(D))以及与i=m+1至n-1对应的部分CRC(DMn-1+c-(m+1)(D)至DMn-1+c-n(D))。
如上所述,采用了使用移位寄存器依序计算部分CRC的方法,因此本发明的子块分割型并行CRC电路能够不进行在modG(D)上所定义的多项式的除法而以小型的电路计算部分CRC。
[重点3]:关于部分CRC生成电路(逆序)
在上述说明中,各个子块的数据根据原来的数据顺序依序输入(例如,a0至am-1),但也能够实现逆序(例如,am-1至a0)输入的并行CRC计算电路。
也就是说,在下述的计算式(12)中,在子块1中以am-1至a0的顺序输入数据,而在子块2中以an-1至am的顺序输入数据。其对将特播解码器的输出直接输入到并行CRC计算器那样的情况特别有效。
R ( D ) = A ( D ) mod G ( D )
= Σ i = 0 n - 1 ( a i D n - 1 + c - i mod G ( D ) )       ...式(12)
= Σ i = m n - m - 1 ( a i D n - 1 + c - i mod G ( D ) ) + Σ i = 0 m - 1 ( a i D n - 1 + c - i mod G ( D ) )
部分CRC的生成步骤如下。
[步骤1]预先求在i=m-1,n-1中的部分CRC的值(即,在子块的最终点中的部分CRC)Dn-1+c-(m-1)modG(D)和Dn-1+c-(n-1)modG(D)。
[步骤2]将上述两个值作为初始值,依序计算与i=m-2至0和i=n-2至m对应的部分CRC。
作为优选的方法,使用以下的递推公式(13)即可。
假设DMT(D)=DTmod G(D)时,
Figure A200780030783D00144
...式(13)
如上所述,采用了逆序地依序生成部分CRC的方法,因此本发明的子块分割型并行CRC电路即使在数据(部分性地)成为逆序时,也能够进行CRC计算而不需要进行重新排列的操作。其结果,能够解决用于重新排列操作的处理延迟。
(实施方式1)
图6是表示基于上述基本原理的本发明实施方式1的并行剩余运算器的整体结构的方框图。本实施方式为与上述[重点1]和[重点2]对应的例子。在“重点”的说明中,说明了将数据分割成两个(2并行序列(two parallel sequences))的例子,但在实施方式1中,以4并行序列(four parallel sequences)的情况为例进行说明。也就是说,将长度n的输入数据分割成i=0至m-1、i=m至2m-1、i=2m至3m-1以及i=3m至n-1的四个子块。另外,假设CRC的长度为24比特(c=24)。
在图6中,并行CRC计算电路(并行剩余运算器)100所采用的结构包括:输入端子101至104(输入端子<1>至<4>)、初始值生成单元110、部分CRC生成单元111至114(部分CRC生成单元<1>至<4>)、AND单元121至124(AND单元<1>至<4>)、以及累积加法单元130。
初始值生成单元110生成用于输入到部分CRC生成单元111至114的初始值I1至I4(初始值<1>至<4>)。具体而言,生成各个子块的i=0,m,2m,3m中的开始点的部分CRC(部分剩余)即Dn-1+cmodG(D)、Dn-1+c-mmodG(D)、Dn-1+c-2mmodG(D)、以及Dn-1+c-3mmodG(D)作为初始值。参照图14至图16在后面论述初始值生成单元110的实施方法。
部分CRC生成单元111至114(部分CRC生成单元<1>至<4>)从初始值生成单元110接收与各个子块的开头对应的部分CRC作为初始值,并基于递推公式依序生成剩余的部分CRC。参照图8至图10在后面论述部分CRC生成单元111至114的结构和动作。
AND单元121至124(AND单元<1>至<4>)计算从输入端子101至104输入的1比特与从部分CRC生成单元111至114输出的24比特的值之间的AND(逻辑“与”)。另外,其并不限定于AND(逻辑“与”),只要是计算部分CRC的值的逻辑的逻辑电路即可。参照图11和图12在后面论述AND单元121至124的结构和动作。
累积加法单元130将从AND单元121至124输出的值累积相加。这些加法为每个比特的逻辑“异或”(EXOR)。参照图13在后面论述累积加法单元130的结构和动作。
以下,说明如上构成的并行剩余运算器的动作。首先,论述并行CRC计算电路100的整体的动作定时。
在本实施方式中,例举将数据分割成四个后的4并行序列的情况。另外,假设CRC的长度为24比特(c=24)。
假设输入数据的长度为N[比特]分割数据,使子块1至3的长度为M[比特]、以及子块4的长度为其余的N-3M[比特]。该分割方法仅为一个例子,也可以任意的设定。
图7是表示数据的输入和输出的时序图,将输入数据表示为A[n-1:0]。另外,在图7中,t表示时刻。在图6中未记载信号t。
对输入端子101,以A[0]作为开头每个比特地输入a1所示的子块1的数据(A[0]至A[M-1])。对输入端子102,以A[M]作为开头每个比特地输入a2所示的子块2的数据(A[M]至A[2M-1])。输入端子103和104也同样。另外,在上述例子中,子块4的长度与其他的子块不同(因为数据是零数,所以与其他子块相比,子块4的数据少1比特)。因此,如图7的a4所示,假设在时刻M-1,对输入端子104输入0。
在输入所有的数据后,从CRC输出端子(r)输出期望的CRC的值。在本实施方式中,在完成所有的输入后,只要将输入端子的值保持为0,即可在输出端子(r)中保持期望的CRC的值。
接着,说明并行CRC计算电路100的各个模块。
〔部分CRC生成单元111至114〕
图8是将由部分CRC生成单元111至114计算(负责)的部分CRC汇总为表的图。这里,使用标记即DM{T}(D)。DM{T}(D)=DMT(D)=DTmodG(D)。
部分CRC生成单元111至114(部分CRC生成单元<1>至<4>)从初始值生成单元110接收与各个子块的开头(0,M,2M和3M)对应的部分CRC作为初始值,并基于递推公式(11)依序生成剩余的部分CRC。
例如,在图8的表中,在输入数据序号为0至M-1以及初始值为DM{N-1+c}(D)的情况下,电路序号1的部分CRC生成单元111所生成的部分CRC为DM{N-1+c-1}(D)至DM{N-1+c-(M-1)}(D)。同样地,部分CRC生成单元112至114将与各个子块的开头(M,2M和3M)对应的部分CRC作为初始值,并基于上式(11)依序生成剩余的部分CRC。
接着,以部分CRC生成单元111为例,更详细地说明。
图9是表示部分CRC生成单元111的电路结构的图。部分CRC生成单元111至114采用相同结构,所以以部分CRC生成单元111作为代表进行说明。
在图9中,部分CRC生成单元111由选择器201、D触发器(FF)202、EXOR电路203以及AND电路204构成。
部分CRC生成单元111采用以相当于24比特的D触发器202为中心的结构。另外,触发器连环相接的结构也往往称为移位寄存器。
I1[23:0]为初始值,g[23:0]为表示生成多项式的值。例如,在生成多项式由下式(14)定义时,
定义为g[0]=g[17]=g[18]=g[22]=g[23]=1,
g[1]=g[2]=...=g[15]=g[16]=g[19]=g[20]=g[21]=0
其中,g[i]为Dc-i-1的系数。Dc的系数总是1,所以无需定义g[-1]。
G(D)=D24+D23+D6+D5+D+1      ...式(14)
若以16进制数表示,
为g=C60001H。
p1[23:0]为所生成的部分CRC。
接着,说明部分CRC生成单元111的动作。
图10是表示部分CRC生成单元111的动作的时序图。在图10中,ld为控制信号,在ld=1时,初始值I1的值被载入到移位寄存器。这里,如图8的表所示,具体而言,I1的值为DM{N-1+c}(D)。在图10的时序图中,为了看清楚,假设N-1+c=98。
这样,在时刻t=0,输出所载入的值本身作为与A[0]对应的部分CRC。同时,在部分CRC生成单元111内部,基于递推公式计算下一个DM[97]的值。
根据电路图的信号名称,计算式如下式(15)所示。另外,p1’为更新后的(例如DM[97])移位寄存器的内容,而p1为更新前的(例如DM[98])移位寄存器的内容。
p1’[23:0]={p1[22:0],0}+p1[23]*{g[22:0],1}         ...式(15)
在上式(15)中的“+”为每个比特的逻辑“异或”(EXOR),“*”为逻辑“与”(AND)。另外,标记{p1[22:0],0}表示移位操作。也就是说,意味着将p1的值向高位方向移位相当于1比特,将0插入LSB(least significant bit:最低有效位)。同样地,{g[22:0],1}为移位操作,但意味着对LSB插入1。
如上所述,并行CRC计算电路100的部分CRC生成单元111至114仅采用移位寄存器、以及每个比特的AND和EXOR电路的简单的结构,可根据输入数据适时地计算所需的部分CRC。
〔AND单元121至124〕
AND单元121至124(AND单元<1>至<4>)计算从输入端子101至104输入的1比特与从上述部分CRC生成单元111至114输出的24比特的值之间的AND(逻辑“与”)。
图11是表示AND单元121的电路结构的图。AND单元121至124采用相同结构,所以以AND单元121作为代表进行说明。
在图11中,AND单元121由计算从输入端子101输入的1比特与从部分CRC生成单元111至114输出的24比特的值之间的AND(逻辑“与”)的AND电路211构成。
在图11所示的AND单元121中,计算从输入端子101输入的1比特与从部分CRC生成单元111至114输出的24比特的值之间的AND。也就是说,相当于在下式(15)中,求ai与Dn-1+c-imodG(D)的积的操作。
R ( D ) = A ( D ) mod G ( D )
= &Sigma; i = 0 n - 1 ( a i D n - 1 + c - i mod G ( D ) )               ...式(15)
= + &Sigma; i = 0 m - 1 ( a i D n - 1 + c - i mod G ( D ) ) ( a ) + &Sigma; i = m n - 1 ( a i D n - 1 + c - i mod G ( D ) ) ( b )
图12是表示AND单元121的动作的时序图。在图12中,表示时刻的t与所述图10的t相同。也就是说,在部分CRC生成单元111至114中,适时地生成应与输入数据对应的部分CRC。
〔累积加法单元130〕
图13是表示累积加法单元130的电路结构的图。
在图13中,累积加法单元130由EXOR电路211、触发器(FF)222和开关电路223构成。
在累积加法单元130中,将从AND单元<1>至<4>输出的值累积相加。这里,其加法为每个比特的逻辑“异或”(EXOR)。也就是说,对i=0至23进行下式(16)所示的运算。
s’[i]=s[i]EXOR q1[i]EXOR q2[i]EXOR q3[i]EXOR q4[i]      ...式(16)
在上式(16)中,s为更新前的触发器的值,s’为更新后的触发器的值。
〔初始值生成单元110〕
说明初始值生成单元110的实施方法。
在预先规定子块长度M和生成多项式时,预先求需要的Dn+ImodG(D)的值,并将其存储在存储器(RAM或ROM)中即可。能取的I的种类少,所以存储器容量可较小。
在本实施方式中,若子块长度M为固定值,则仅求DM{N-1+c}(D)、DM{N-1+c-M}(D)、DM{N-1+c-2M}(D)以及DM{N-1+c-3M}(D)的四个值即可,所以存储器容量只要为24比特×4种=96比特即可。
另外,即使在改变子块长度M或生成多项式时,在每次改变时,利用CPU或DSP通过软件求值,并将其存储在RAM中即可。
基于以下的递推公式(17)能够求Dn+ImodG(D)(I=0至N-1)。T=c+I,I=0至N-1。
D T + 1 mod G ( D ) = ( D T mod G ( D ) ) D mod G ( D )
...式(17)
其中,DcmodG(D)=G(D)-Dc
在需要快速地生成上述的初始值时,使用如下所示的硬件即可。
图14是表示初始值生成单元110的结构的方框图。
在图14中,初始值生成单元110所采用的结构包括:初始值候补生成单元230、数据获得定时生成单元231、数据获得单元241至244(数据获得单元<1>至<4>)以及初始值存储单元251至254(初始值存储单元<1>至<4>)。
图15是表示上述初始值候补生成单元230的电路结构的图。
在图15中,初始值候补生成单元230由选择器261、触发器(FF)262、
EXOR电路263以及AND电路264构成。
初始值候补生成单元230依序求Dn+ImodG(D)的从I=0至N-1的值。内部结构如图15所示。
图16是表示初始值生成单元110的动作的时序图。
数据获得单元241(数据获得单元<1>)获得部分CRC生成单元111(参照图6)所使用的初始值DM{N-1+c}(D),并将其存储在初始值存储单元251(初始值存储单元<1>)中。也就是说,如图16所示,数据获得定时生成单元231在初始值候补生成单元230输出DM{N-1+c}(D)时,对ld1发送触发信号。数据获得单元241根据ld1的触发信号获得初始值候补生成单元230的输出,从而能够获得应存储在初始值存储单元1中的值DM{N-1+c}。
同样地,在输出DM{N-1+c-M}(D)的定时向ld2输出触发信号,在输出DM{N-1+c-2M}(D)的定时(I=j=N-1-2M)向ld3输出触发信号,在输出DM{N-1+c-3M}(D)的定时(I=k=N-1-3M)向ld4输出触发信号。
如上所述,根据本实施方式,并行CRC计算电路100包括:输入端子101至104,输入数据被分割成多个子块后并行输入多个子块;初始值生成单元110,生成与各个子块的开始点对应的部分CRC作为初始值;部分CRC生成单元111至114,接收与各个子块的开头对应的部分CRC作为初始值,并基于规定的递推公式依序生成剩余的部分CRC;AND单元121至124,计算部分CRC的值的逻辑“与”;以及累积加法单元130,将从AND单元121至124输出的值累积相加。在部分CRC生成中,将对应于第m个输入的阶数(n-1-m)与生成多项式的阶数c相加后的阶数(i=n-1-m+c)而表示的剩余R(D)的计算式变形为部分CRC(Dn-1+c-imodG(D))的和所示的式子,生成与各个子块的开始点对应的部分CRC。由此,在本实施方式中,能够减小处理延迟,无需追加乘法电路和剩余电路而能够减小电路规模。具体的效果如下。
(1)在以往的结构中,求分割了的输入数据的CRC后进行合成,所以需要追加乘法电路和剩余电路,造成电路规模或处理延迟的增大。在本实施方式中,通过设置与并行度对应的个数的部分CRC生成单元111至114,能够以简单的结构进行子块分割型的并行CRC计算。另外,能够使用AND电路以取代以往的乘法电路,所以具有延迟小的优点,并且不需要在最后级追加剩余计算电路,从而具有延迟和电路规模小的优点。
(2)在如以往的例子2那样的以往的结构中,需要预先求部分CRC,所以造成存储容量与输入数据的长度成比例地增加。相对于此,在本实施方式中,使部分CRC生成单元111至114基于初始值依序生成新的值,所以能够以与输入数据的长度无关的电路规模和存储容量计算CRC。
(3)在本实施方式中,采用了使用移位寄存器依序计算部分CRC的方法,因此能够不进行在modG(D)上所定义的多项式的除法运算而以小型的电路计算部分CRC。
这样,能够实现子块分割型并行CRC电路的新结构。在与特播解码器组合使用时,能够减少处理延迟并缩短至ACK/NACK发送为止的延迟。在对特播代码重复进行解码时,每当重复时能够立即进行CRC判定,所以能够早期停止解码并降低消费功率。可以不访问特播解码器与CRC计算电路之间的接口存储器,所以能够降低消费功率。
如上所述,尤其在与进行子块分割的并行特播解码器组合时,能够显著地减小处理延迟。无论特播代码的类别如何,都能够适用,也容易实施。
(实施方式2)
图17是表示本发明实施方式2的并行剩余运算器的整体结构的方框图。对与图6相同结构的部分附加相同标号。
本实施方式是对应于基本原理中所述的[重点3]的例子。在[重点3]中,叙述了对每个子块使数据输入顺序逆序的例子。在将数据分割成四个后的4并行序列中,以使子块<2>和子块<4>逆序的情况为例进行说明。
在图17中,并行CRC计算电路(并行剩余运算器)300所采用的结构包括:输入端子101至104(输入端子<1>至<4>)、初始值生成单元310、部分CRC生成单元111和113(部分CRC生成单元<1>和<3>)、逆序部分CRC生成单元312和314(逆序部分CRC生成单元<2>和<4>)、AND单元121至124(AND单元<1>至<4>)、以及累积加法单元130。
图17的例子为,并行CRC计算电路300使子块长度为M,并且仅对输入端子102和104使数据的输入顺序逆序。
其结构上的特征如下。
与图6的并行CRC计算电路100相比,将部分CRC生成单元112和114分别变更为逆序部分CRC生成单元312和314。另外,变更了输入到逆序部分CRC生成单元312和314的初始值。因此,由初始值生成单元310生成的初始值与由图6的初始值生成单元110生成的初始值不同,但其结构相同(参照图14)。
图18是表示逆序部分CRC生成单元312的电路结构的图。逆序部分CRC生成单元312和314采用相同结构,所以以逆序部分CRC生成单元312作为代表进行说明。
在图18中,逆序部分CRC生成单元312由选择器401、D触发器(FF)402、EXOR电路403以及AND电路404构成。
逆序部分CRC生成单元312与部分CRC生成单元111(参照图9)同样,为以相当于24比特的个数的D触发器402为中心的结构,但数据的生成方向相反。
图19是将由各个部分CRC生成单元计算(负责)的部分CRC汇总成表的图,所述各个部分CRC生成单元为,部分CRC生成单元111、逆序部分CRC生成单元312、部分CRC生成单元113和逆序部分CRC生成单元314。这里,使用标记DM{T}(D)。DM{T}(D)=DMT(D)=DTmodG(D)。
如图19的表所示,电路序号2和4的输入数据顺序相反,与其对应地变更了初始值和部分CRC的生成顺序。
如在基本原理的[重点3]中所说明的,基于以下的递推公式(18),将DM{N-1+c-(2M-1)}(D)作为初始值,依序求DM{N-1+c-(2M-2)}(D)至DM{N-1+c-M}(D)的值。
Figure A200780030783D00221
...式(18)
可知在正序的部分CRC生成单元111和113中,使T逐渐减少而进行计算,相对于此,在逆序部分CRC生成单元312和314中,使T逐渐增加而进行计算。
如上所述,初始值生成单元310具有与实施方式1的部分CRC生成单元111相同的结构。但是,逆序部分CRC生成单元312所需的初始值为DM{N-1+c-(2M-1)}(D)而不是DM{N-1+c-M}(D),所以产生ld2的触发的定时不同。也就是说,在I=N-1-(2M-1)的定时,为ld2=1。对ld4的定时也同样,在I=0的定时,为14=0。
图20是表示初始值生成单元310的动作的时序图。与表示并行CRC计算电路100的初始值生成单元110的动作的时序图即图16相比,可知对信号ld2和ld4输出触发的定时不同。
这样,在本实施方式中,不仅具有实施方式1的效果,还能够以数据的输入顺序为逆序的方式输入每个子块。因此,在与进行子块分割的并行特播解码器组合时的适配性高。例如,在通过特播解码器进行Max-log-MAP解码时,能够将特播解码器的输出直接输入到本并行CRC计算电路(并行剩余运算器)300。尤其,在与进行子块分割的并行特播解码器组合时,能够显著地减小处理延迟。
以上的说明为本发明的优选的实施方式的例证,但本发明的范围并不限定于此。
例如,在上述各个实施方式中,以将数据分割成四个(4并行序列)的情况为例进行了说明,但分割数量或CRC的比特长度并不限于此。
另外,在上述实施方式1中,如图10所示,部分CRC生成单元111基于式(8)每1时钟周期地计算一个部分CRC,但也可以重复使用式(8),从而每1时钟周期地计算两个以上的部分CRC。例如,部分CRC生成单元111根据DM{N-1+c+i}(D)(i为整数)输出两个部分CRC即DM{N-1+c+i+1}(D)和DM{N-1+c+i+2}(D)。通过这样的结构,能够在每1时钟周期对各个输入端子101至104输入2比特的数据。也就是说,即使在对数据进行子块分割后,对各个子块的数据进行串行并行变换时,也能够使用在本说明书中表示为“重点1”和“重点2”的方法,以简单的结构进行并行计算。
另外,在上述实施方式2中,使子块2和4为逆序,但既可使任意的子块逆序,也可仅使一部分的子块逆序。
另外,在本实施方式中,使用了并行剩余运算器和并行CRC计算电路的名称,但这是为了便于说明,也可称为CRC计算电路、纠错电路和纠错方法等。
另外,本发明能够实现根据本算法的并行剩余运算器和并行剩余运算方法即可,当然可以由硬件构成,也可以由发挥并行剩余运算方法的功能的软件来实现。该软件存储在能够通过电脑读取的存储媒体中。
另外,用于上述各个实施方式的说明中的各功能块通常被作为集成电路的LSI来实现。这些块既可以单独地集成为一个芯片,也可以包含一部分或全部地集成为一个芯片。虽然此处称为LSI,但根据集成程度,也可以称为IC、系统LSI、超大LSI(Super LSI)、特大LSI(Ultra LSI)。另外,实现集成电路化的方法不仅限于LSI,也可使用专用电路或通用处理器来实现。也可以使用在LSI制造后可编程的FPGA(Field Programmable Gate Array:现场可编程门阵列),或者可重构LSI内部的电路单元的连接和设定的可重构处理器。再者,随着半导体的技术进步或随之派生的其它技术的出现,如果能够出现替代LSI的集成电路化的新技术,当然可利用该新技术进行功能块的集成化。例如,还存在着适用生物技术等的可能性。
在2006年8月22日提交的特愿第2006-225934号的日本专利申请所包含的说明书、附图以及摘要的公开内容,全部引用于本申请。
工业实用性
本发明的并行剩余运算器和并行剩余运算方法在并行输入特播解码器等的输出并检测数字信息的差错的通信系统中,作为取代以往的CRC计算电路而使用的新的并行剩余运算器和并行剩余运算方法极为有用。例如,适合于接收装置和移动电话等通信终端装置,其为了对用于纠错而通过卷积编码、特播编码等进行了编码的发送数据进行解码,在接收端,使用维特比解码器或特播解码器等软输出解码器和/或使用用于检测有无传输差错的循环代码。

Claims (13)

1.并行剩余运算器,输入数据被分割成多个子块后并行输入到该并行剩余运算器中,该并行剩余运算器包括:
初始值生成单元,生成与所述各个子块的开始点对应的部分剩余作为初始值;
部分剩余生成单元,从所述初始值生成单元接收与各个子块的开头对应的部分剩余作为初始值,并基于规定的递推公式依序生成其余的部分剩余;
逻辑单元,进行所述输入数据与从所述部分剩余生成单元输出的部分剩余的值的逻辑运算;以及
累积加法单元,将从所述逻辑单元输出的值累积相加。
2.并行剩余运算器,输入数据被分割成多个子块后并行输入到该并行剩余运算器中,该并行剩余运算器包括:
初始值生成单元,生成与所述各个子块的最终点对应的部分剩余作为初始值;
逆序部分剩余生成单元,从所述初始值生成单元接收与各个子块的最终点对应的部分剩余作为初始值,并基于规定的递推公式依序生成其余的部分剩余;
逻辑单元,进行所述输入数据与从所述逆序部分剩余生成单元输出的逆序部分剩余的值的逻辑运算;以及
累积加法单元,将从所述逻辑单元输出的值累积相加。
3.如权利要求1所述的并行剩余运算器,
所述初始值生成单元在将长度n的输入数据分割成长度n-m和长度m的数据串且将分割后的各个数据串作为子块时,根据在最大阶数c所确定的多项式G(D)的值,生成各个子块的i=0和m的开始点的部分剩余即Dn-1+cmodG(D)和Dn-1+c-mmodG(D)作为初始值。
4.如权利要求2所述的并行剩余运算器,
所述初始值生成单元在将长度n的输入数据分割成长度n-m和长度m的数据串且将分割后的各个数据串作为子块时,根据在最大阶数c所确定的多项式G(D)的值,生成各个子块的i=m-1和n-1的最终点的部分剩余即Dn-1+c-(m-1)modG(D)和Dn-1+c-(n-1)modG(D)作为初始值。
5.如权利要求1所述的并行剩余运算器,
所述部分剩余生成单元按照数据原来的顺序输入数据,并将所述Dn-1+cmodG(D)和Dn-1+c-mmodG(D)作为初始值,基于规定的递推公式计算与i=1至m-1和i=m+1至n-1对应的部分剩余。
6.如权利要求2所述的并行剩余运算器,
所述逆序部分剩余生成单元使数据原来的顺序为逆序而输入数据,并将所述Dn-1+c-(m-1)modG(D)和Dn-1+c-(n-1)modG(D)作为初始值,基于规定的递推公式计算与i=m-2至0和i=n-2至m对应的逆序部分剩余。
7.如权利要求1所述的并行剩余运算器,
所述累积加法单元通过每个比特的“异或”逻辑运算进行相加。
8.并行剩余运算方法,包括以下的步骤:
在将长度n的输入数据分割成长度n-m和长度m的数据串,并将分割后的各个数据串作为子块时,根据在最大阶数c所确定的多项式G(D)的值,预先求各个子块的i=0和m的开始点的部分剩余即Dn-1+cmodG(D)和Dn-1+c-mmodG(D)作为初始值;以及
将所述Dn-1+cmodG(D)和Dn-1+c-mmodG(D)作为初始值,依序计算与i=1至m-1和i=m+1至n-1对应的部分剩余。
9.并行剩余运算方法,包括以下的步骤:
在将长度n的输入数据分割成长度n-m和长度m的数据串,并将分割后的各个数据串作为子块时,根据在最大阶数c所确定的多项式G(D)的值,预先求各个子块的i=m-1和n-1的最终点的部分剩余即Dn-1+c-(m-1)modG(D)和Dn-1+c-(n-1)modG(D)作为初始值;以及
将所述Dn-1+c-(m-1)modG(D)和Dn-1+c-(n-1)modG(D)作为初始值,依序计算与i=m-2至0和i=n-2至m对应的逆序部分剩余。
10.如权利要求8所述的并行剩余运算方法,
在所述计算部分剩余的步骤中,按照数据原来的顺序输入数据,并将所述Dn-1+cmodG(D)和Dn-1+c-mmodG(D)作为初始值,基于规定的递推公式计算与i=1至m-1和i=m+1至n-1对应的部分剩余。
11.如权利要求9所述的并行剩余运算方法,
在所述计算逆序部分剩余的步骤中,使数据原来的顺序为逆序而输入数据,并将所述Dn-1+c-(m-1)modG(D)和Dn-1+c-(n-1)modG(D)作为初始值,基于规定的递推公式计算与i=m-2至0和i=n-2至m对应的部分剩余。
12.如权利要求8所述的并行剩余运算方法,还包括以下的步骤:
进行输入数据和所述部分剩余的值的逻辑运算;以及
将所述逻辑运算后的值累积相加。
13.如权利要求9所述的并行剩余运算方法,还包括以下的步骤:
进行输入数据和所述逆序部分剩余的值的逻辑运算;以及
将所述逻辑运算后的值累积相加。
CNA2007800307836A 2006-08-22 2007-08-21 并行剩余运算器和并行剩余运算方法 Pending CN101507120A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP225934/2006 2006-08-22
JP2006225934 2006-08-22

Publications (1)

Publication Number Publication Date
CN101507120A true CN101507120A (zh) 2009-08-12

Family

ID=39106769

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007800307836A Pending CN101507120A (zh) 2006-08-22 2007-08-21 并行剩余运算器和并行剩余运算方法

Country Status (4)

Country Link
US (1) US8700971B2 (zh)
JP (1) JP4976397B2 (zh)
CN (1) CN101507120A (zh)
WO (1) WO2008023684A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102318250A (zh) * 2011-08-02 2012-01-11 华为技术有限公司 通信系统中的循环冗余校验处理方法、装置和lte终端

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156413B2 (en) * 2007-11-28 2012-04-10 Qualcomm Incorporated Convolutional encoding with partitioned parallel encoding operations
US8930431B2 (en) * 2010-12-15 2015-01-06 International Business Machines Corporation Parallel computation of a remainder by division of a sequence of bytes
JP2012169926A (ja) * 2011-02-15 2012-09-06 Fujitsu Ltd Crc演算回路
JP2015019276A (ja) * 2013-07-11 2015-01-29 株式会社東芝 記憶装置、crc生成装置およびcrc生成方法
JP2016051924A (ja) 2014-08-28 2016-04-11 富士通株式会社 復号装置及び誤り検出方法
US20170250710A1 (en) * 2014-10-03 2017-08-31 Telefonaktiebolaget Lm Ericsson (Publ) Method and device for calculating a crc code in parallel
US9787434B2 (en) * 2014-12-11 2017-10-10 Mediatek Inc. Cyclic redundancy check device and method
KR20220083883A (ko) 2020-12-11 2022-06-21 삼성전자주식회사 메모리 장치, 그것의 데이터 출력 방법 및 그것을 갖는 메모리 시스템

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3257298B2 (ja) 1994-11-16 2002-02-18 松下電器産業株式会社 Crc符号生成方法
JP2001036414A (ja) 1999-07-21 2001-02-09 Nec Corp Crc符号生成回路及びcrcエラー検出回路
CN1333950A (zh) * 1999-11-15 2002-01-30 三菱电机株式会社 使用循环码的错误控制装置与方法
EP1260023A2 (en) 2000-02-17 2002-11-27 Analog Devices, Inc. Method, apparatus, and product for use in generating crc and other remainder based codes
US6677869B2 (en) 2001-02-22 2004-01-13 Panasonic Communications Co., Ltd. Arithmetic coding apparatus and image processing apparatus
JP3540287B2 (ja) 2001-04-19 2004-07-07 Necマイクロシステム株式会社 パラレル処理回路
WO2003090362A1 (fr) 2002-04-22 2003-10-30 Fujitsu Limited Codeur et decodeur de detection d'erreur, et diviseur
US7191383B2 (en) 2003-03-28 2007-03-13 International Business Machines Corporation System and method for optimizing iterative circuit for cyclic redundancy check (CRC) calculation
JP2005006188A (ja) 2003-06-13 2005-01-06 Mitsubishi Electric Corp Crc演算方法およびcrc演算装置
US7168024B2 (en) * 2003-10-03 2007-01-23 Jennic Limited Data processing system and method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102318250A (zh) * 2011-08-02 2012-01-11 华为技术有限公司 通信系统中的循环冗余校验处理方法、装置和lte终端
WO2012109872A1 (zh) * 2011-08-02 2012-08-23 华为技术有限公司 通信系统中的循环冗余校验处理方法、装置和lte终端
CN102318250B (zh) * 2011-08-02 2014-03-05 华为技术有限公司 通信系统中的循环冗余校验处理方法、装置和lte终端

Also Published As

Publication number Publication date
US8700971B2 (en) 2014-04-15
JPWO2008023684A1 (ja) 2010-01-14
US20100198892A1 (en) 2010-08-05
WO2008023684A1 (fr) 2008-02-28
JP4976397B2 (ja) 2012-07-18

Similar Documents

Publication Publication Date Title
CN101507120A (zh) 并行剩余运算器和并行剩余运算方法
CN101814922B (zh) 基于bch码的多位错纠错方法和装置以及存储系统
KR100210583B1 (ko) 에러정정 부호화 복호화 방법 및 이 방법을 사용하는 회로
US7219293B2 (en) High performance CRC calculation method and system with a matrix transformation strategy
US7502989B2 (en) Even-load software Reed-Solomon decoder
JP4978625B2 (ja) 誤り訂正符号化方法及び装置
CN110771047B (zh) 具有f功能和g功能的llr域计算的极性解码器
CN110999095A (zh) 用于极化码的按块并行冻结位生成
CN101795175B (zh) 数据的校验处理方法及装置
CN103731239A (zh) 一种适用于向量处理器的通用crc并行计算部件及方法
US20170250710A1 (en) Method and device for calculating a crc code in parallel
CN112306741B (zh) 一种crc校验方法及相关装置
CN112468161B (zh) 一种rs高速编码电路
CN110741558B (zh) 具有逻辑三维存储器的极化编码器、通信单元、集成电路及其方法
CN101296053A (zh) 计算循环冗余校验码之方法及系统
CN102160031A (zh) 用以执行线性反馈移位指令的系统及方法
US20080040650A1 (en) Symbol Reconstruction in Reed-Solomon Codes
CN1636324A (zh) 纠错解码器的钱搜索单元
Zhang et al. Fast factorization architecture in soft-decision Reed-Solomon decoding
JPH09505952A (ja) プログラム可能な冗長/シンドローム生成装置
JPS61277231A (ja) エラ−バ−スト訂正を行う情報伝送方法及びこの方法を使用する符号化・復号化装置
CN117014017A (zh) 一种基于高位宽数据计算多项式除法余数的crc计算方法
CN103401566A (zh) 参数化的bch纠错码的并行编码方法及装置
CN100459438C (zh) 里德所罗门解码器的关键方程与错误值求解优化电路
US7181671B2 (en) Parallelized CRC calculation method and system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20090812