CN1762103A - 用于可变宽度并行循环冗余校验计算的迭代电路和方法 - Google Patents
用于可变宽度并行循环冗余校验计算的迭代电路和方法 Download PDFInfo
- Publication number
- CN1762103A CN1762103A CNA2004800074688A CN200480007468A CN1762103A CN 1762103 A CN1762103 A CN 1762103A CN A2004800074688 A CNA2004800074688 A CN A2004800074688A CN 200480007468 A CN200480007468 A CN 200480007468A CN 1762103 A CN1762103 A CN 1762103A
- Authority
- CN
- China
- Prior art keywords
- byte
- piece
- crc
- code
- generates
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/091—Parallel or block-wise CRC computation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本申请公开了一种级联的迭代CRC计算电路,借此CRC计算可被细分到具有可选择的总线宽度的块。其优势是为任意数量字节的总线宽度即为可变的总线宽度提供并行CRC计算。一个实施例是一种用于生成与宽度最大为w字节的数据相关联的CRC代码字的系统,其包括第一多个串行连接的代码生成块,每个块都被构造成接收字节宽度从2N+M到2N-L+M的数据输入,其中N=log2 (w),M是偏移值,且L是基于最大传播延时标准的整数;第二多个并行连接的代码生成块,每个块被构造成接收字节宽度从2N-L-1+M到20的数据输入;以及用于选择将被包含在CRC计算中的、第一和第二多个块中的特定CRC代码生成块的装置。
Description
技术领域
本发明一般涉及在通信系统中基于包的循环冗余校验的实现,并尤其涉及用于在通信系统中执行循环冗余校验计算以及对其进行时间优化的迭代电路。
背景技术
许多基于包的通信协议使用附加在包传输中的代码字来检查在通信信道中引入的错误的存在。一种常用的生成这种代码字的方法是循环冗余校验(CRC)。发射机在包的结尾附加CRC代码字,而接收机对于整个包包括代码字重新计算CRC。几种CRC方法是常用的;不同的方法为计算使用不同的多项式,并且得到的代码字长度也不同。
对于在串行数据流中传送的包,在发射机或接收机中计算CRC代码字所需的逻辑电路是公知、且非常有效的。带有实现目标多项式所需的异或门的线性反馈移位寄存器是一种足够的实现。移位寄存器的每个状态是基于当前的串行位以及移位寄存器的前一个状态计算的。因此,对于串行数据流,n个锁存器(n是多项式的阶数)以及一些异或门就是所需要的电路的范围。
但是,高速串行数据接口(例如10Gbps、40Gbps或更高的接口)经常需要更昂贵的技术(例如SiGe(锗硅))来实现串行波特率的数据信号。这种接口使用高速模拟电路来实现高速接口,并通常将去往/来自该串行接口的数据多路复用/解复用到较慢的并行数据路径中,以便在CMOS芯片内进行处理。因此,CRC计算电路更通常地在并行数据总线上操作。如果数据总线的宽度是“w”个字节,则CRC计算必须同时处理w个字节以确定CRC计算的下一个状态。此外,由于CRC计算的下一个状态依赖于该计算的前一个状态,因此该计算不适于流水线操作。
当包数据不能保证是整数个w字节,和/或不能保证在并行数据总线上的对准位置开始/结束时,会引入进一步的复杂性。例如,给定32字节宽的数据总线,则CRC计算电路必须能够处理任何一个可能产生的计算宽度:w=1,2,3,4,...,31,32字节。这使得用于CRC计算的下一个状态解码变得非常复杂。所产生的逻辑电路会需要非常大的芯片面积。此外,由于该芯片面积主要由具有大的扇出连接的组合逻辑占用,会导致可布线性和时间方面的问题。
为了满足系统要求,CRC计算逻辑必须通常包括多个不同宽度的CRC计算块,且数据引导装置将数据选入将在任何给定周期上使用的每个块内。一种现有技术的实现是实现w字节宽的数据总线,并因此使用大小为1字节、2字节、3字节等直到w字节的“w”个CRC计算块,以实现功能。在此结构中,数据被并行地馈入所有这些块。在任何给定的时钟周期上,仅使用一个CRC计算块的输出。即,在此并行方法中,在每个周期内选择一个且仅一个CRC计算块,从而组合传播延时将总是等于一个CRC计算块的延时。
非常希望为CRC计算电路提供一种结构化的迭代方法,借此该CRC计算可被细分到总线宽度可选择的块,该些块可级联以为任意字节数量的总线宽度提供计算。
非常希望为CRC计算电路提供一种结构化的迭代方法,以便对于给定的目标传播延时使电路面积的减小最大。
发明内容
本发明是一种基于以下认识而优化CRC计算的方法,该认识即CRC计算块的大小与计算的宽度成正比,并且与减少用于窄计算宽度的块的数量相比减少用于宽计算宽度的块的数量可提供更大的节约。
因此,本发明的一个目标是为CRC计算电路提供一种结构化的迭代方法,借此CRC计算可被细分到具有可选择的总线宽度的块,该些块可级联在一起以为任意字节数量的并行总线宽度提供计算。
本发明的另一个目标是为CRC计算电路提供一种结构化的迭代方法,借此CRC计算可被细分到具有可选择的总线宽度的块,该些总线宽度为二(2)的幂例如2N,例如N=0,1,...,X个字节,该些块可级联在一起以提供对任意字节数量的总线宽度的计算。
本发明的另一个目标是为CRC计算电路提供一种结构化的对数迭代方法,借此CRC计算可被细分到允许可选择的总线宽度的块,该些总线宽度的值不是2的幂。
该CRC计算的结构化方法由迭代电路执行,借此根据优选实施例,提供了一种用于生成与将在通信信道上传送的宽度最大为w个字节的数据相关联的CRC代码字的系统,该系统包括:
第一多个串行连接的代码生成块,每个该块用于根据每个块的数据输入生成一CRC值,该第一多个块的各个块构造成接收字节宽度分别在2N+M到2N-L+M的范围内的数据输入,其中2N+M=w,M是偏移值,L是基于最大传播延时标准的整数;
第二多个并行连接的代码生成块,每个该块用于根据数据输入生成一CRC值,该第二多个块的各个块构造成接收字节宽度分别在2N-L-1+M到20的范围内的数据输入;以及
用于根据数据输入来选择将包含在CRC计算中的第一和第二多个块中的特定CRC代码生成块;从而可处理任意宽度的数据输入字节。
根据本发明的原理,基于以下认识优化了该结构化的迭代方法中的CRC计算处理时间,该认识即CRC计算块的大小与计算的宽度成正比,并且与减少用于窄计算宽度的块的数量相比减少用于宽计算宽度的块的数量可提供更大的节约。有利地是,对于宽的数据总线宽度,该结构化的、对数迭代方法大大减少了执行计算所需的逻辑的数量。
附图说明
考虑到下文结合附图进行的详细说明,本发明的目标、特征和优点对于本技术领域内的技术人员将很明显,在该些附图中:
图1是根据本发明的第一实施例形成的整个系统体系结构的框图,本发明可在该系统体系结构内操作;
图2是根据本发明的第二实施例形成的整个系统体系结构的框图,本发明可在该系统体系结构内操作;
图3是根据本发明的第三实施例形成的整个系统体系结构的框图,本发明可在该系统体系结构内操作;
图4是根据本发明的第四实施例形成的整个系统体系结构的框图,本发明可在该系统体系结构内操作;
图5是根据本发明的一般实施例形成的整个系统体系结构的框图,本发明可在该系统体系结构内操作;
具体实施方式
参照图1可更全面地了解本发明,该附图示出根据本发明的第一实施例的整个系统体系结构。
该第一实施例是针对一种对于CRC计算电路的结构化的对数迭代方法,该方法提供了CRC计算块的级联,级联的块的数量依赖于计算所期望的计算宽度。
图1是根据本发明的第一变型的CRC计算电路100的框图。根据此第一变型,CRC计算电路100可细分为一些块,该些块具有被对数地选择的总线宽度1字节、2字节、4字节、8字节等(即2的幂字节)。这些块可级联在一起来为为任意字节数量的总线宽度提供计算。
如图1中所示,逻辑电路100包括一些CRC计算块(220、320、340),每个块根据来自种子(seed)多路复用器(130、230、330、430)的种子输入以及根据数据输入(120)来计算CRC值。应理解,w字节的传入数据输入路径宽度应等于2N。即对于w个字节的数据总线,N=log2(w),并且该电路包括N+1个针对字节宽度为2N,2N-1,...,21,20的CRC计算块。当进行计算时,CRC_seed_select信号控制种子多路复用器(230、330、430),以选择在该计算中是包括相应的CRC计算块,还是绕过该计算块。通过选择性地包括或绕过这些计算块,可处理任意数量的字节。例如,要处理w个字节,选择2N块,并绕过所有其他的块;要处理w-1个字节,则绕过2N块,而选择块2N-1,...,20;要处理w-2个字节,则绕过2N和20块,而选择块2N-1,...,21,等等。应理解,每个CRC块都是一组合XOR树,其精确设计依赖于实施的CRC多项式。
在开始时,电路以CRC_reset信号有效开始,从而多路复用器130选择为0的初始种子值。然后,由被种子多路复用器(230、330、430)选择或绕过的CRC计算块(220、320、420)执行选择的CRC计算。在多路复用器430处的CRC计算输出被保存在CRC结果寄存器110中。根据数据输入(120)在每个周期内更新CRC寄存器的值。数据引导多路复用器(210、310、410)根据选择了哪些块,来选择将用于每个CRC计算块的数据。在包的最后一个周期上,CRC输出510向下游逻辑提供该包的计算出的CRC值。
在本发明的一个示例性实施例中,提供了一个32字节宽的数据输入。因此,此N=5系统具有宽度分别为32字节、16字节、8字节、4字节、2字节和1字节的6个CRC计算块。名义上,包数据占用全部数据宽度,并选择32字节宽的CRC计算块。但是,在包传输开始和结束时包可能仅占用该宽度的一部分。在这些情况下,根据总线上的预期数据对准来生成CRC_select和Data_select控制信号。
对于宽的数据总线宽度,根据第一变型的方法大大减少了执行计算所需的逻辑的数量。(对于w=32字节,可实现88%的逻辑大小减小)。对于w字节宽的数据总线,其中级联的块的数量依赖于计算的期望宽度,最坏情况的传播延时在计算宽度为w-1时发生,在此时log2(w)个CRC计算块级联。
根据此实施例,将在几个时钟周期上计算长于w字节的传入数据包的CRC。假设R代表必须在给定的计算时钟周期内处理的字节数。尽管在任何时钟周期上R可采用任意值(R≤w),但是CRC计算需要一定数量的其间R=w的周期,以及一个其间将处理任何剩余的字节的周期。
因此,第一实施例的控制级可处理R字节的数据(R ≤w),并且其中计算电路包括大小为2N,2N-1,2N-2,...,4(=22),2(=21),1(=20)字节的CRC计算块。如果w=32,则存在32字节、16字节、8字节、4字节、2字节、1字节的块。该控制逻辑使控制信号An-1,An-2,...,A0有效,从而R≤32;R=(An-1)*2(N-1)+(An-2)*2(N-2)+...+(A0)*1。控制信号An-1’An-2,...,A0=1或0如下所述地选择块。
在R=32 时使用32_字节或16_字节+16_字节 CRC
在R=31 时使用16_字节+8_字节+4_字节+2_字节+1_字节
CRC
当R=30 时使用16_字节+8_字节+4_字节+2_字节 CRC
当R=29 时使用16_字节+8_字节+4_字节+1_字节 CRC
当R=28 时使用16_字节+8_字节+4_字节 CRC
当R=27 时使用16_字节+8_字节+2_字节+1_字节 CRC
当R=26 时使用16_字节+8_字节+2_字节 CRC
当R=25 时使用16_字节+8_字节+1_字节 CRC
当R=24 时使用16_字节+8_字节 CRC
当R=23 时使用16_字节+4_字节+2_字节+1_字节 CRC
当R=22 时使用16_字节+4_字节+2_字节 CRC
当R=21 时使用16_字节+4_字节+1_字节 CRC
当R=20 时使用16_字节+4_字节 CRC
当R=19 时使用16_字节+2_字节+1_字节 CRC
当R=18 时使用16_字节+2_字节 CRC
当R=17 时使用16_字节+1_字节 CRC
当R=16 时使用16_字节 CRC
当R=15 时使用8_字节+4_字节+2_字节+1_字节 CRC
当R=14 时使用8_字节+4_字节+2_字节 CRC
当R=13 时使用8_字节+4_字节+1_字节 CRC
当R=12 时使用8_字节+4_字节 CRC
当R=11 时使用8_字节+2_字节+1_字节 CRC
当R=10 时使用8_字节+2_字节 CRC
当R=9 时使用8_字节+1_字节 CRC
当R=8 时使用8_字节 CRC
当R=7 时使用4_字节+2_字节+1_字节 CRC
当R=6 时使用4_字节+2_字节 CRC
当R=5 时使用4_字节+1_字节 CRC
当R=4 时使用4_字节 CRC
当R=3 时使用2_字节+1_字节 CRC
当R=2 时使用2_字节 CRC
当R=1 时使用1_字节 CRC
对于每个32字节,...,1字节的CRC模块,将相应字节长度的数据发送给该模块。例如:当R=10时,则使用8字节+2字节模块,然后使控制信号‘Data_select’有效(图1中所示),以选择数据的前8个字节发送给8字节CRC计算块,并将数据的后两个2字节发送给2字节CRC计算块。
本发明的第二变型在现有技术方法和第一变型即对数迭代方法之间提供了优化。根据此实施例,对于给定的目标传播延时,使面积减小最大。这是通过注意到CRC计算块的大小与计算的宽度成正比来实现的。因此,与减少用于窄计算宽度的块的数量相比,减少用于宽的计算宽度的CRC计算块的数量可实现更大的节约。同时,对数迭代方法中的级联块中的传播延时主要是通过窄宽度的CRC计算块的延时。因此,通过对较宽的计算宽度使用对数迭代方法,而对较小的计算宽度使用并行方法,对于该电路提供了时间相对于面积的优化。
假设一系统具有宽度为w字节的数据总线。假设N=log2(w)和dmax=允许的最大延时(以CRC计算块延时为单位),则L=dmax-1。
于是,通过对于宽度为2N-L或更大的CRC计算块使用对数迭代方法,而对于宽度小于2N-L的CRC计算块使用并行方法,来构造根据第二变型的CRC计算系统。所得的系统包括用于2N,2N-1,...,2N-L+1,2N-L,2N-L-1,2N-L-2,...,21,20字节宽度的CRC计算块。所得的系统在该系统的对数迭代部分内包括L+1个CRC计算块,而在电路的并行部分内包括2N-L-1个CRC计算块。这种系统的最坏情况的延时发生在计算在2N-1到2N-1+1范围内的字节宽度时。在此范围内,存在L个级联的迭代CRC计算块,和一个并行的CRC计算块,这些块是传播必须通过的。
本发明的第二变型假设CRC计算的目标字节宽度(w)为2的幂。
图2是根据所公开的本发明的第二变型的CRC计算电路200的框图。如图2中所示,逻辑电路200包括一些CRC计算块(220、320、420、520、521),每个计算块根据来自种子多路复用器(130、230、330、430)的种子输入以及根据数据输入(120)来计算CRC值。对于具有w字节的数据总线和最大延时dmax的系统,N=log2(w),且L=dmax-1。该系统的对数迭代部分包括L+1个针对字节宽度2N,2N-1,...,2N-L的CRC计算块(220、320、420)。该系统的并行部分包括2N-L个针对字节宽度2N-L-1,...,20的CRC计算块(520、521)。当进行计算时,CRC_seed_select信号控制种子多路复用器(230、330、430),以选择每个迭代CRC计算块是被包括在该计算中还是被绕过。通过选择性地包括或绕过这些计算块,可处理可被2N-L除尽的任何数量的字节。另外,多路复用器530选择,如果有的话将选择哪个并行CRC计算块(520、521)来提供输出。这使处理能力扩展到任意数量的字节。
例如,要处理w个字节,则选择2N块,绕过所有其他的迭代块,并且多路复用器530选择旁路输入;要处理w-1个字节,则绕过2N块,选择所有其他迭代块(即2N-1,...,2N-L+1,2N-L),并且多路复用器530选择来自2N-L-1块的输入;等等。每个CRC块都是一组合XOR树,其精确设计依赖于实施的CRC多项式。
在开始时,电路以CRC_reset信号有效开始,从而多路复用器130选择为0的初始种子值。然后,由被种子多路复用器(230、330、430)选择或绕过的迭代CRC计算块(220、320、420),以及由被输出多路复用器530选择或绕过的并行CRC计算块(520、521)执行选择的CRC计算。在多路复用器530处的CRC计算输出被保存在CRC结果寄存器110中。根据数据输入(120)在每个周期内更新CRC寄存器的值。数据引导多路复用器(210、310、410)根据选择了哪些块,来选择将用于每个迭代CRC计算块的数据。数据引导多路复用器510选择将被所选择的并行CRC计算块使用的数据。在包的最后一个周期上,CRC输出610向下游逻辑提供该包的计算出的CRC值。
在实现本发明的第二变型的示例性实施例中,对于一个32字节宽的数据总线输入,dmax=3。这会得到一个N=5、L=2的系统,该系统具有宽度为32字节、16字节和8字节的三(3)个迭代CRC计算块,和宽度从7字节降至1字节的7个并行CRC计算块。名义上,包数据占用全部数据宽度,并选择该32字节宽的CRC计算块。但是,在包传输开始和结束时包可能仅占用该宽度的一部分。在这些情况下,根据总线上的预期数据对准来生成CRC_select和Data_select控制信号。
在根据图2的第二变型的时间优化方案中,与图1相比,关键路径中的级数较少以便实现更好的用时。与先前实施例的情况相同,在多个时钟周期上执行长度大于w字节的数据包的CRC计算。假设,R代表必须在给定的计算时钟周期内处理的字节数。
这样,第二实施例的控制级可处理R字节的数据(R≤w),且其中计算电路包括大小为2N,2(N-1),2(N-2),...,2(N-L),2(N-1)-1,2(N-1)-2,...,和1字节的CRC计算块。如果w=32,N=5和L=2,则存在32字节、16字节、8字节、7字节、6字节、5字节、4字节、3字节、2字节、1字节CRC级。控制逻辑使控制信号An-1,An-2,...,An-L,Bk-1,...,B0有效,以选择对R个字节的处理,以使R≤32,且R=(An-1)*2(N-1)+(An-2)*2(N-2)+...+(A0)*2(N-L)+(Bk-1)*(2(N-L)-1)+...+(B0)*1,其中k=2N-L。控制信号An-1,An-2,...,An-L,Bk-1,...,B0=1或0如下所述地选择块。
在R=32 时使用32_字节或16_字节+16_字节 CRC
在R=31 时使用16_字节+8_字节+7_字节 CRC
当R=30 时使用16_字节+8_字节+6_字节 CRC
当R=29 时使用16_字节+8_字节+5_字节 CRC
当R=28 时使用16_字节+8_字节+4_字节 CRC
当R=27 时使用16_字节+8_字节+3_字节 CRC
当R=26 时使用16_字节+8_字节+2_字节 CRC
当R=25 时使用16_字节+8_字节+1_字节 CRC
当R=24 时使用16_字节+8_字节 CRC
当R=23 时使用16_字节+7_字节 CRC
当R=22 时使用16_字节+6_字节 CRC
当R=21 时使用16_字节+5_字节 CRC
当R=20 时使用16_字节+4_字节 CRC
当R=19 时使用16_字节+3_字节 CRC
当R=18 时使用16_字节+2_字节 CRC
当R=17 时使用16_字节+1_字节 CRC
当R=16 时使用16_字节 CRC
当R=15 时使用8_字节+7_字节 CRC
当R=14 时使用8_字节+6_字节 CRC
当R=13 时使用8_字节+5_字节 CRC
当R=12 时使用8_字节+4_字节 CRC
当R=11 时使用8_字节+3_字节 CRC
当R=10 时使用8_字节+2_字节 CRC
当R=9 时使用8_字节+1_字节 CRC
当R=8 时使用8_字节 CRC
当R=7 时使用7_字节 CRC
当R=6 时使用6_字节 CRC
当R=5 时使用5_字节 CRC
当R=4 时使用4_字节 CRC
当R=3 时使用3_字节 CRC
当R=2 时使用2_字节 CRC
当R=1 时使用1_字节 CRC
用于执行循环冗余校验计算及对其进行时间优化的电路的第三实施例涉及一种结构化的对数迭代方法,该方法更为一般,允许不是2的幂的“w”值。
图3是根据本发明的第三变型的CRC计算电路300的框图。根据此第三变型,系统的逻辑迭代部分包括L+1个字节宽度已被更一般地指定为2N+M,2N-1+M,...,2N-L+M的CRC计算块(220、320、420),其中M是一包含任意常数的正的偏移值(即大于或等于0)。根据第三变型的这个更一般的表示使得该系统的目标字节宽度(w)可以是除2的幂之外的值。相应地,该系统的并行部分包括针对字节宽度2N-L-1+M,...,20的2N-L+M个CRC计算块(520、521)。与前文所述的此发明的变型相同,当执行计算时,CRC_seed_select信号控制种子多路复用器(230、330、430),以选择每个迭代CRC计算块是被包含在该计算中还是被绕过。通过选择性地包含或绕过这些计算块,可处理可被2N-L除尽的任意数量的字节。另外,多路复用器530选择,如果有的话将选择哪个并行CRC计算块(520、521)来提供输出。
图4是根据本发明的第四实施例的CRC计算电路400的框图,其中每个CRC计算块(220、320、420等)能够处理S个字节,其中S是任意的正整数。电路的迭代部分包括“k”个块,每个块能够处理S个字节,其中(k+1)*S>w,以及k*S≤w。系统的并行部分包括针对字节宽度S-1,S-2,...,1的B-1个计算块。当执行计算时,CRC_seed_select信号控制种子多路复用器(130、230、330、430),以选择将被处理的S个字节的倍数。另外,多路复用器530选择,如果有的话将选择哪个并行CRC计算块(520、521)来提供输出。这使该处理能力扩展到任意数量的字节。
与使用第二和第三实施例的实现相比第四实施例减小了逻辑,同时与使用第一实施例的实现相比第四实施例仍优化了时间。假设d代表电路的延时(以CRC计算块为单位)。于是,通过此电路的d的最坏情况的值发生在计算在k*S到w字节范围内的x个字节时,此时选择k个块来在前面k*S个字节上执行计算,并选择一个并行块来在剩余字节上执行计算,其中d=k+1。对于w=33字节、L=2、M=1、k=4的情况,使用第三实施例的实现的最坏情况的延时d=2个块,而此实施例的最坏情况的延时d=5个块。但是,由于与第二实施例相比宽度较大的CRC计算块的数量减少了,因此此实施例减小了逻辑。根据此实施例,通常并行构造的CRC计算块的数量等于S-1,但是对于更积极的时间方案,并行构造的CRC计算块的数量可超过S。
因此,第四实施例的控制级可处理R(R≤w)字节的数据,且其中计算电路包括k个S字节的块以及S-1个字节为S-1,S-2,...,1的并行块。例如,根据图4中所示的本发明的第四变型,其中w=34和S=5,控制逻辑使控制信号Ak-1,Ak-2,...,A0,Bs-1,...,B0有效,以选择对R个字节的处理,以使R≤34;且R=(Ak-1)*S+(Ak-2)*S+...+(A0)*S+(Bs-1)*(S-1)+...+(B0)*1。控制信号Ak-1,Ak-2,...,A0,Bs-1,...,B0=1或0如下所述(其中X代表在给定时钟周期期间选择的S字节的块的数量,其选择在其他方面是任意的)。
34字节CRC=S_字节*6+4_字节 其中X=6(整条路径)
33字节CRC=S_字节*6+3_字节 其中X=6
32字节CRC=S_字节*6+2_字节 其中X=6
31字节CRC=S_字节*6+1_字节 其中X=6
30字节CRC=S_字节*6 其中X=6
29字节CRC=S_字节*5+4_字节 其中X=5
25字节CRC=S_字节*5 其中X=5
24字节CRC=S_字节*4+4_字节 其中X=4
23字节CRC=S_字节*4+3_字节 其中X=4
22字节CRC=S_字节*4+2_字节 其中X=4
21字节CRC=S_字节*4+1_字节 其中X=4
20字节CRC=S_字节*4 其中X=4
19字节CRC=S_字节*3+4_字节 其中X=3
18字节CRC=S_字节*3+3_字节 其中X=3
17字节CRC=S_字节*3+2_字节 其中X=3
16字节CRC=S_字节*3+1_字节 其中X=3
15字节CRC=S_字节*3 其中X=3
14字节CRC=S_字节*2+4_字节 其中X=2
13字节CRC=S_字节*2+3_字节 其中X=2
12字节CRC=S_字节*2+2_字节 其中X=2
11字节CRC=S_字节*2+1_字节 其中X=2
10字节CRC=S_字节*2 其中X=2
9字节CRC=S_字节+4_字节 其中X=1
8字节CRC=S_字节+3_字节 其中X=1
7字节CRC=S_字节+2_字节 其中X=1
6字节CRC=S_字节+1_字节 其中X=1
5字节CRC=S_字节 其中X=1
4字节CRC=4_字节 其中X=0
3字节CRC=3_字节 其中X=0
2字节CRC=2_字节 其中X=0
1字节CRC=1字节 其中X=0
图5示出包含根据图1-4说明的本发明的全部四个变型的CRC计算电路450的一般形式,其中对于串行级联的块(220、320、420等)的迭代部分,CRC计算块的字节宽度的大小在字节Fx,Fx-1,...,F1的范围内,其中Fx≥Fx-1≥...≥F1≥0;而对于并联块(520,521等),CRC计算块的字节宽度的大小为Gy-i字节,其中对于i=0到y-1,Gy-i=Gy-i-1+1,而y≥F1-1。根据此一般形式,CRC计算中包含的字节的数量可由以下关系表示:R=Ax*Fx+Ax-1*Fx-1+...+A1*F1+By*Gy+...+B1*G1,其中x是Fx块的号码,y是Gx块的号码,且如四个实施例之一中所述的那样,Ax-1,Ax-1,...,A0,By,...,B1=0或1。
图5示出本发明的所有变型的一般形式。对于第一实施例,Fx=2N,Fx-1=2N-1,...,F1=20;y=F1-1=0,从而在电路的并行部分内没有CRC计算块。对于第二实施例,Fx=2N,Fx-1=2N-1,...,F1=2N-L,Gy=2N-L-1,...G1=1。对于第三实施例,Fx=2N+M,Fx-1=2N-1+M,...,F1=2N-L+M,Gy=2N-L+M-1,...G1=1。对于第四实施例,Fx=Fx-1=...=F1=S;而Gy=y-1,...,G1=1,其中y≥S-1。
尽管已参照本发明的示例性的和优选的实施例具体地示出和说明了本发明,但是本技术领域内的技术人员应理解,可在形式和细节上进行前述的以及其他改变而不会背离本发明的精神和范围,本发明的精神和范围仅由所附权利要求的范围限定。
Claims (17)
1.一种用于生成附加在这样的数据包上的错误控制代码的体系结构,该数据包具有给定的字节宽度并将在具有2n字节的并行数据宽度的通信链路上传输,该体系结构包括多个代码生成块,所述代码生成块的第一块生成针对2n字节的所述代码,且所述代码生成块的第二块生成针对2n-1字节的所述代码,其中来自所述第一个代码生成块的所述代码被选择性地连接到所述第二代码生成块,并且对于给定的数据包,根据所述给定数据包的所述给定字节宽度,选择性地使能所述第一和第二代码生成块。
2.一种用于生成附加在这样的数据包上的错误控制代码的体系结构,该数据包具有给定的字节宽度并将在具有2n字节的并行数据宽度的通信链路上传输,该体系结构包括:
第一多个串行连接的代码生成块,所述第一多个代码生成块的第一块生成针对2n字节的所述代码,且所述第一多个代码生成块的第二块生成针对2n-1字节的所述代码,其中来自所述第一代码生成块的所述代码被选择性地连接到所述第二代码生成块;以及
第二多个并行连接的代码生成块,所述第二多个代码生成块的第一块生成针对2x字节的所述代码,且所述第二多个代码生成块的第二块生成针对2y字节的所述代码,x和y与n和n-1不同;
其中,对于给定的数据包,根据所述给定数据包的所述给定字节宽度,选择性地使能所述第一多个代码生成块中的一个或多个,而不使能所述并行连接的代码生成块或使能其中之一。
3.一种用于生成与将在通信信道上传输的数据字节相关联的CRC代码字的电路,所述通信信道能够传输宽度最大为w个字节的数据,所述电路包括:
第一多个串行连接的代码生成块,每个该块用于根据所述块的数据输入生成CRC值,所述第一多个代码生成块的各个块被构造成接收相应字节宽度在2N+M,2N-1+M,...,2N-L+M的范围内的数据输入,其中w=2N+M,M是偏移值,且L是基于在所述第一多个块中处理CRC值的最大传播延时标准的整数;
第二多个并行连接的代码生成块,每个该块用于根据所述块的数据输入生成CRC值,所述第二多个代码生成块的各个块被构造成接收相应字节宽度在2N-L-1+M,2N-L-2+M,...,20的范围内的数据输入;以及
多路复用器装置,该装置可控制用于根据所述数据输入来选择将包含在CRC计算中的、所述第一和第二多个块中的特定CRC代码生成块;
其中,通过选择性地包含或绕过CRC代码生成块,可处理可被2N-L除尽的任意数量的数据输入字节,以用于相应的CRC代码生成。
4.根据权利要求3的CRC代码生成电路,其中,M≥0。
5.根据权利要求3的CRC代码生成电路,其中,N等于log2(w)。
6.一种用于生成与将在通信信道上传输的数据字节相关联的CRC代码字的电路,所述通信信道能够传输宽度最大为w个字节的数据,所述电路包括:
第一多个串行连接的代码生成块,每个该块用于根据所述块的数据输入生成CRC值,所述第一多个代码生成块的各个块被构造成接收相应字节宽度在2N到2N-L的范围内的为2的幂的数据输入,其中,N等于log2(w),且L是基于在所述第一多个块中处理CRC值的最大传播延时标准的整数;
第二多个并行连接的代码生成块,每个该块用于根据所述块的数据输入生成CRC值,所述第二多个代码生成块的各个块被构造成接收相应字节宽度在2N-L-1到20的范围内的数据输入;以及
多路复用器装置,该装置可控制用于根据所述数据输入来选择将包含在CRC计算中的、所述第一和第二多个块中的特定CRC代码生成块;
其中,通过选择性地包含或绕过CRC代码生成块,可处理可被2N-L除尽的任意数量的数据输入字节,以用于相应的CRC代码生成。
7.根据权利要求6的CRC代码生成电路,其中,所述第一多个串行连接的代码生成块包括的数量为L+1,所述第二多个并行连接的代码生成块包括的数量为2N-L-1。
8.根据权利要求6的CRC代码生成电路,其中,在所述第一多个串行连接的代码生成块内处理CRC值的所述第一最大传播延时标准包括时钟周期的最大延时dmax,其中所述整数L=dmax-1。
9.一种用于生成与将在通信信道上传输的数据字节相关联的CRC代码字的电路,所述通信信道能够传输宽度最大为w个字节的数据,所述电路包括:
第一多个串行连接的代码生成块,每个该块用于根据所述块的数据输入生成CRC值,所述第一多个代码生成块的各个块被构造成接收字节宽度为S个字节的数据输入;
第二多个并行连接的代码生成块,每个该块用于根据所述块的数据输入生成CRC值,所述第二多个代码生成块的各个块被构造成接收相应字节宽度在y字节到1字节的范围内的数据输入;以及
多路复用器装置,该装置可控制用于根据所述数据输入来选择将包含在CRC计算中的、所述第一和第二多个块中的特定CRC代码生成块;
其中,在所述第一多个串行连接的代码生成块内计算特定CRC代码值的时间与在所述第二多个并行连接的代码生成块内处理特定CRC代码值的时间之和小于或等于一个时钟周期。
10.根据权利要求9的CRC代码生成电路,其中,y=S-1,所述第二多个块的所述字节宽度为连续的S-1,S-2,...,1个字节。
11.根据权利要求9的CRC代码生成电路,其中,y>S。
12.根据权利要求9的CRC代码生成电路,其中,所述第一多个串行连接的代码生成块包括k个块,每个块能够处理S个字节,其中(k+1)*S>w,且k*S≤w。
13.一种用于生成与将在通信信道上传输的数据字节相关联的CRC代码字的电路,所述通信信道能够传输宽度最大为w个字节的数据,所述电路包括:
第一多个串行连接的代码生成块,每个该块用于根据所述块的数据输入生成CRC值,所述第一多个代码生成块的各个块被构造成接收字节宽度分别为Fx,Fx-1,...,F1的数据输入,其中Fx≥Fx-1≥...≥F1≥0字节;
第二多个并行连接的代码生成块,每个该块用于根据所述块的数据输入生成CRC值,该第二多个代码生成块的各个块被构造成接收相应字节宽度为Gy-i的数据输入,其中对于i=0到y-1,Gy-i=Gy-i-1+1,而y≥F1-1;以及
多路复用器装置,该装置可控制用于根据所述数据输入来选择将包含在CRC计算中的、所述第一和第二多个块中的特定CRC代码生成块;
其中,通过根据以下关系:Ax*Fx+Ax-1*Fx-1+...+A1*F1+By*Gy+...+B1*G1,其中Ax,Ax-1,...,A0,By,...,B1=0或1,选择性地包含或绕过CRC代码生成块,可处理任意数量的数据输入字节,以用于相应的CRC代码生成。
14.根据权利要求13的CRC代码生成电路,其中,所述Fx=2N,Fx-1=2N-1,...,F1=20;且y=F1-1=0。
15.根据权利要求13的CRC代码生成电路,其中,所述Fx=2N,Fx-1=2N-1,...,F1=2N-L,Gy≥2N-L-1,...G1=1,且L是基于在所述第一多个块中处CRC值的最大传播延时标准的整数。
16.根据权利要求13的CRC代码生成电路,其中,所述Fx=2N+M,Fx-1=2N-1+M,...,F1=2N-L+M,Gy≥2N-L+M-1,...G1=1。
17.根据权利要求13的CRC代码生成电路,其中,所述Fx=Fx-1=...=F1=S;且Gy=y-1,...,G1=1,其中y≥S-1。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/249,290 US7191383B2 (en) | 2003-03-28 | 2003-03-28 | System and method for optimizing iterative circuit for cyclic redundancy check (CRC) calculation |
US10/249,290 | 2003-03-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1762103A true CN1762103A (zh) | 2006-04-19 |
CN100461637C CN100461637C (zh) | 2009-02-11 |
Family
ID=32987044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800074688A Expired - Fee Related CN100461637C (zh) | 2003-03-28 | 2004-02-27 | 用于可变宽度并行循环冗余校验计算的迭代电路和方法 |
Country Status (9)
Country | Link |
---|---|
US (2) | US7191383B2 (zh) |
EP (1) | EP1609247B1 (zh) |
JP (1) | JP4378381B2 (zh) |
KR (1) | KR100745485B1 (zh) |
CN (1) | CN100461637C (zh) |
AT (1) | ATE328396T1 (zh) |
CA (1) | CA2520558C (zh) |
DE (1) | DE602004001048T2 (zh) |
WO (1) | WO2004086633A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102318250A (zh) * | 2011-08-02 | 2012-01-11 | 华为技术有限公司 | 通信系统中的循环冗余校验处理方法、装置和lte终端 |
CN102891685A (zh) * | 2012-09-18 | 2013-01-23 | 国核自仪系统工程有限公司 | 基于fpga的并行循环冗余校验运算电路 |
CN104508983A (zh) * | 2012-07-27 | 2015-04-08 | 上海贝尔股份有限公司 | 用于对带反馈的并行输入数据执行流水操作的方法和设备 |
CN109462458A (zh) * | 2019-01-11 | 2019-03-12 | 深圳市常茂信科技开发有限公司 | 一种多级流水电路实现并行crc的方法 |
CN110504975A (zh) * | 2019-09-29 | 2019-11-26 | 中国科学院微电子研究所 | 一种crc并行编解码方法及基于其的编解码器 |
CN111130562A (zh) * | 2018-11-01 | 2020-05-08 | 中国科学院微电子研究所 | Crc并行计算方法及系统 |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7600179B2 (en) | 2003-06-23 | 2009-10-06 | Texas Instruments Incorporated | Sparse maximum likelihood decoder for block codes |
EP1526701A1 (en) * | 2003-10-22 | 2005-04-27 | Mitsubishi Denki Kabushiki Kaisha | Methods and devices for transferring and for recovering data packets |
US7249306B2 (en) * | 2004-02-20 | 2007-07-24 | Nvidia Corporation | System and method for generating 128-bit cyclic redundancy check values with 32-bit granularity |
US8311127B2 (en) * | 2004-03-04 | 2012-11-13 | Nvidia Corporation | Method and apparatus to check for wrongly decoded macroblocks in streaming multimedia applications |
US7766797B2 (en) | 2004-08-11 | 2010-08-03 | Icon Ip, Inc. | Breakaway or folding elliptical exercise machine |
US7740563B2 (en) | 2004-08-11 | 2010-06-22 | Icon Ip, Inc. | Elliptical exercise machine with integrated anaerobic exercise system |
US7266760B1 (en) * | 2004-09-30 | 2007-09-04 | Altera Corporation | Method and apparatus for calculating cyclic redundancy checks for variable length packets |
US7260765B2 (en) * | 2004-12-17 | 2007-08-21 | International Business Machines Corporation | Methods and apparatus for dynamically reconfigurable parallel data error checking |
US7761776B1 (en) * | 2005-11-03 | 2010-07-20 | Xilinx, Inc. | Method and apparatus for a modular, programmable cyclic redundancy check design |
KR100645388B1 (ko) * | 2005-11-30 | 2006-11-14 | 한국전자통신연구원 | 임의의 크기의 병렬 처리가 가능한 병렬 crc 생성 장치및 방법 |
JP4764973B2 (ja) * | 2005-12-09 | 2011-09-07 | 独立行政法人産業技術総合研究所 | Crc値の算出装置 |
US7658698B2 (en) | 2006-08-02 | 2010-02-09 | Icon Ip, Inc. | Variable stride exercise device with ramp |
JP4976397B2 (ja) * | 2006-08-22 | 2012-07-18 | パナソニック株式会社 | 並列剰余演算器及び並列剰余演算方法 |
US7736279B2 (en) | 2007-02-20 | 2010-06-15 | Icon Ip, Inc. | One-step foldable elliptical exercise machine |
TWI341096B (en) * | 2007-04-03 | 2011-04-21 | Ind Tech Res Inst | Method and system for calculating crc |
US8127211B2 (en) | 2007-06-20 | 2012-02-28 | Texas Instruments Incorporated | Adding known data to CRC processing without increased processing time |
WO2008157591A1 (en) * | 2007-06-20 | 2008-12-24 | Texas Instruments Incorporated | Generating crc syndromes with data extracted from syndrome loop |
US20080320365A1 (en) * | 2007-06-20 | 2008-12-25 | Texas Instruments Incorporated | Providing an initial syndrome to a crc next-state decoder independently of its syndrome feedback loop |
US20090024900A1 (en) * | 2007-07-18 | 2009-01-22 | Cisco Technology, Inc. | Cyclic redundancy checking in lane-based communications |
JP4798164B2 (ja) * | 2008-04-02 | 2011-10-19 | ソニー株式会社 | 送信装置および方法、受信装置および方法、並びにプログラム |
JP4896931B2 (ja) * | 2008-06-24 | 2012-03-14 | 株式会社東芝 | 検査符号生成方法 |
US8904115B2 (en) * | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
US8443256B2 (en) | 2011-01-24 | 2013-05-14 | Xilinx, Inc. | Method and apparatus for determining a cyclic redundancy check (CRC) for a data message |
CN103427939A (zh) * | 2012-05-18 | 2013-12-04 | 中兴通讯股份有限公司 | 一种基于xgmii接口的通道死锁自动恢复方法及芯片 |
US8726124B2 (en) * | 2012-07-19 | 2014-05-13 | Nvidia Corporation | Cyclic redundancy check generation via distributed time multiplexed linear feedback shift registers |
US8738990B2 (en) | 2012-07-19 | 2014-05-27 | Nvidia Corporation | Cyclic redundancy check generation via distributed time multiplexed linear feedback shift registers |
GB2519140B (en) * | 2013-10-11 | 2021-03-10 | Advanced Risc Mach Ltd | Cumulative error detection in data transmission |
CN103701566B (zh) * | 2013-12-18 | 2017-09-12 | 华为技术有限公司 | 一种校验方法和装置 |
US9891985B1 (en) * | 2014-11-01 | 2018-02-13 | Netronome Systems, Inc. | 256-bit parallel parser and checksum circuit with 1-hot state information bus |
CN105049057B (zh) * | 2015-08-17 | 2018-04-20 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种面向128位并行输入的crc‑32校验电路 |
US10625137B2 (en) | 2016-03-18 | 2020-04-21 | Icon Health & Fitness, Inc. | Coordinated displays in an exercise device |
US10493349B2 (en) | 2016-03-18 | 2019-12-03 | Icon Health & Fitness, Inc. | Display on exercise device |
US10625114B2 (en) | 2016-11-01 | 2020-04-21 | Icon Health & Fitness, Inc. | Elliptical and stationary bicycle apparatus including row functionality |
US10541782B2 (en) | 2017-11-20 | 2020-01-21 | International Business Machines Corporation | Use of a cyclic redundancy code multiple-input shift register to provide early warning and fail detection |
US10530396B2 (en) | 2017-11-20 | 2020-01-07 | International Business Machines Corporation | Dynamically adjustable cyclic redundancy code types |
US10419035B2 (en) | 2017-11-20 | 2019-09-17 | International Business Machines Corporation | Use of multiple cyclic redundancy codes for optimized fail isolation |
US10530523B2 (en) | 2017-11-20 | 2020-01-07 | International Business Machines Corporation | Dynamically adjustable cyclic redundancy code rates |
KR102609758B1 (ko) * | 2018-03-27 | 2023-12-04 | 삼성전자주식회사 | 데이터 통신 오류를 검출하는 순환 중복 검사 유닛 데이터 통신 장치 및 검출 방법 |
JP2021039672A (ja) | 2019-09-05 | 2021-03-11 | キオクシア株式会社 | メモリシステム、パケット保護回路およびcrc計算方法 |
WO2022186853A1 (en) * | 2021-03-03 | 2022-09-09 | Zeku, Inc. | Dynamic cyclic redundancy check update for iterative decoding |
CN115408574A (zh) | 2021-05-28 | 2022-11-29 | 南宁富联富桂精密工业有限公司 | 数据分析方法、装置及计算机可读存储介质 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4703485A (en) * | 1986-02-10 | 1987-10-27 | International Business Machines Corporation | Method and apparatus for computing and implementing error detection check bytes |
KR900701112A (ko) * | 1988-02-29 | 1990-08-17 | 기따다 데쯔야 | 직렬제어장치 및 그 제어방법 |
JP3093820B2 (ja) * | 1991-04-26 | 2000-10-03 | オリンパス光学工業株式会社 | 厚肉品の射出成形金型および射出成形方法 |
JPH05170338A (ja) * | 1991-12-20 | 1993-07-09 | Kuinraito Denshi Seiko Kk | シート物積層装置 |
JPH06189124A (ja) * | 1992-12-21 | 1994-07-08 | Konica Corp | 画像の色修正装置 |
US5673291A (en) * | 1994-09-14 | 1997-09-30 | Ericsson Inc. | Simultaneous demodulation and decoding of a digitally modulated radio signal using known symbols |
US6023783A (en) * | 1996-05-15 | 2000-02-08 | California Institute Of Technology | Hybrid concatenated codes and iterative decoding |
US5844923A (en) * | 1996-10-24 | 1998-12-01 | At&T Corp | Fast framing of nude ATM by header error check |
DE69731932T2 (de) * | 1996-10-29 | 2006-02-16 | International Business Machines Corp. | Verfahren und Vorrichtung für zweistufige CRC-32-Berechnung |
DE19838865C2 (de) * | 1998-08-26 | 2001-03-01 | Ericsson Telefon Ab L M | Parallele CRC Erzeugungsschaltung zum Erzeugen eines CRC Codes und Verfahren zum Generieren einer derartigen Schaltung |
US6292918B1 (en) * | 1998-11-05 | 2001-09-18 | Qualcomm Incorporated | Efficient iterative decoding |
US6357032B1 (en) * | 1999-02-08 | 2002-03-12 | International Business Machines Corporation | Method and apparatus for implementing cyclic redundancy check calculation for data communications |
US6530057B1 (en) * | 1999-05-27 | 2003-03-04 | 3Com Corporation | High speed generation and checking of cyclic redundancy check values |
US6560742B1 (en) * | 1999-12-09 | 2003-05-06 | International Business Machines Corporation | Parallel system and method for cyclic redundancy checking (CRC) generation |
US6519737B1 (en) * | 2000-03-07 | 2003-02-11 | International Business Machines Corporation | Computing the CRC bits at a time for data whose length in bits is not a multiple of M |
JP2001285076A (ja) * | 2000-03-31 | 2001-10-12 | Ando Electric Co Ltd | Crc符号演算回路、及びcrc符号演算方法 |
JP2002141809A (ja) | 2000-10-31 | 2002-05-17 | Ando Electric Co Ltd | Crc符号演算回路、及びcrc符号演算方法 |
JP2002174399A (ja) * | 2000-12-06 | 2002-06-21 | Seibu Gas Co Ltd | 圧縮天然ガス自動車用ガススタンドシステム |
US6701478B1 (en) * | 2000-12-22 | 2004-03-02 | Nortel Networks Limited | System and method to generate a CRC (cyclic redundancy check) value using a plurality of CRC generators operating in parallel |
US6732318B2 (en) * | 2001-04-03 | 2004-05-04 | Sun Microsystems, Inc. | Variable width parallel cyclical redundancy check |
US6701479B2 (en) * | 2001-05-15 | 2004-03-02 | Network Elements, Inc. | Fast cyclic redundancy check (CRC) generation |
US6820228B1 (en) * | 2001-06-18 | 2004-11-16 | Network Elements, Inc. | Fast cyclic redundancy check (CRC) generation |
-
2003
- 2003-03-28 US US10/249,290 patent/US7191383B2/en not_active Expired - Fee Related
-
2004
- 2004-02-27 CA CA002520558A patent/CA2520558C/en not_active Expired - Fee Related
- 2004-02-27 WO PCT/EP2004/003036 patent/WO2004086633A1/en active IP Right Grant
- 2004-02-27 EP EP04715321A patent/EP1609247B1/en not_active Expired - Lifetime
- 2004-02-27 AT AT04715321T patent/ATE328396T1/de not_active IP Right Cessation
- 2004-02-27 DE DE602004001048T patent/DE602004001048T2/de not_active Expired - Lifetime
- 2004-02-27 CN CNB2004800074688A patent/CN100461637C/zh not_active Expired - Fee Related
- 2004-02-27 KR KR1020057016090A patent/KR100745485B1/ko not_active IP Right Cessation
- 2004-02-27 JP JP2006504809A patent/JP4378381B2/ja not_active Expired - Lifetime
-
2007
- 2007-02-20 US US11/676,653 patent/US8051359B2/en not_active Expired - Fee Related
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012109872A1 (zh) * | 2011-08-02 | 2012-08-23 | 华为技术有限公司 | 通信系统中的循环冗余校验处理方法、装置和lte终端 |
CN102318250A (zh) * | 2011-08-02 | 2012-01-11 | 华为技术有限公司 | 通信系统中的循环冗余校验处理方法、装置和lte终端 |
CN102318250B (zh) * | 2011-08-02 | 2014-03-05 | 华为技术有限公司 | 通信系统中的循环冗余校验处理方法、装置和lte终端 |
CN104508983B (zh) * | 2012-07-27 | 2017-08-01 | 上海贝尔股份有限公司 | 用于对带反馈的并行输入数据执行流水操作的方法和设备 |
CN104508983A (zh) * | 2012-07-27 | 2015-04-08 | 上海贝尔股份有限公司 | 用于对带反馈的并行输入数据执行流水操作的方法和设备 |
CN102891685B (zh) * | 2012-09-18 | 2018-06-22 | 国核自仪系统工程有限公司 | 基于fpga的并行循环冗余校验运算电路 |
CN102891685A (zh) * | 2012-09-18 | 2013-01-23 | 国核自仪系统工程有限公司 | 基于fpga的并行循环冗余校验运算电路 |
CN111130562A (zh) * | 2018-11-01 | 2020-05-08 | 中国科学院微电子研究所 | Crc并行计算方法及系统 |
CN111130562B (zh) * | 2018-11-01 | 2022-12-09 | 中国科学院微电子研究所 | Crc并行计算方法及系统 |
CN109462458A (zh) * | 2019-01-11 | 2019-03-12 | 深圳市常茂信科技开发有限公司 | 一种多级流水电路实现并行crc的方法 |
CN109462458B (zh) * | 2019-01-11 | 2021-04-16 | 深圳市常茂信科技开发有限公司 | 一种多级流水电路实现并行crc的方法 |
CN110504975A (zh) * | 2019-09-29 | 2019-11-26 | 中国科学院微电子研究所 | 一种crc并行编解码方法及基于其的编解码器 |
CN110504975B (zh) * | 2019-09-29 | 2022-12-27 | 中国科学院微电子研究所 | 一种crc并行编解码方法及基于其的编解码器 |
Also Published As
Publication number | Publication date |
---|---|
KR20050110646A (ko) | 2005-11-23 |
KR100745485B1 (ko) | 2007-08-02 |
EP1609247B1 (en) | 2006-05-31 |
US7191383B2 (en) | 2007-03-13 |
US20040194000A1 (en) | 2004-09-30 |
DE602004001048D1 (de) | 2006-07-06 |
CA2520558C (en) | 2008-12-09 |
ATE328396T1 (de) | 2006-06-15 |
JP2006521730A (ja) | 2006-09-21 |
EP1609247A1 (en) | 2005-12-28 |
WO2004086633A1 (en) | 2004-10-07 |
DE602004001048T2 (de) | 2007-01-11 |
US20070162823A1 (en) | 2007-07-12 |
JP4378381B2 (ja) | 2009-12-02 |
US8051359B2 (en) | 2011-11-01 |
CA2520558A1 (en) | 2004-10-07 |
CN100461637C (zh) | 2009-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1762103A (zh) | 用于可变宽度并行循环冗余校验计算的迭代电路和方法 | |
US10009198B2 (en) | Configurable multi-lane scrambler for flexible protocol support | |
CN1272928C (zh) | 用于总线结构的具有较小反应时间的纠错 | |
CN1589429A (zh) | 伽罗瓦域乘法器系统 | |
CN1317187A (zh) | 用于数据通信系统的速率匹配设备和方法 | |
CN1866739A (zh) | 延迟电路和包含延迟电路的半导体器件 | |
CN1528066A (zh) | 进行kasumi计算的装置和方法 | |
CN101079642A (zh) | 误差校正码的译码方法及其程序和设备 | |
CN1480814A (zh) | 多相时钟发生电路 | |
CN1140070C (zh) | 红外数据协议调制/解调集成电路器件 | |
CN1243425C (zh) | 速率匹配方法和数字通信系统 | |
CN1823474A (zh) | 解码装置及解码方法 | |
CN101053158A (zh) | 可重构半导体集成电路及其处理分配方法 | |
CN1309833A (zh) | 序列发生器 | |
EP1408610A1 (en) | Ring oscillator with a digitally programmable frequency | |
CN1698282A (zh) | 通信系统中用于解码纠错码的装置及其方法 | |
CN1581697A (zh) | 传输装置 | |
CN1361604A (zh) | 用于sonet的带内fec编码器 | |
CN1234220C (zh) | 一种用于Turbo码的译码方法 | |
CN1157013C (zh) | 发送和接收电路、采用该电路的移动通信终端及控制方法 | |
CN1383285A (zh) | 一种并行数据循环冗余校验方法 | |
CN101046797A (zh) | 半导体器件 | |
CN1941764A (zh) | 正交变量扩频因子码的产生方法与相关装置 | |
CN1968230A (zh) | 一种信号处理装置及同步方法 | |
CN1305223C (zh) | 单一石英振荡器射频发射机系统 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090211 Termination date: 20120227 |