CN105264778B - 一种crc计算方法及装置 - Google Patents
一种crc计算方法及装置 Download PDFInfo
- Publication number
- CN105264778B CN105264778B CN201380003207.8A CN201380003207A CN105264778B CN 105264778 B CN105264778 B CN 105264778B CN 201380003207 A CN201380003207 A CN 201380003207A CN 105264778 B CN105264778 B CN 105264778B
- Authority
- CN
- China
- Prior art keywords
- crc
- binary sequence
- bits
- packet
- calculation circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 352
- 238000000034 method Methods 0.000 claims description 41
- 239000011159 matrix material Substances 0.000 claims description 24
- 230000009466 transformation Effects 0.000 claims description 15
- 125000004122 cyclic group Chemical group 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 8
- 206010009944 Colon cancer Diseases 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 101100258315 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) crc-1 gene Proteins 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 101100258328 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) crc-2 gene Proteins 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- -1 ... Proteins 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
- H03M13/616—Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
-
- 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
- H03M13/6516—Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Error Detection And Correction (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种CRC计算方法及装置,比较容易应用到灵活带宽以太网的场景。根据本发明实施例提供的技术方案,所述第一脉冲的二进制序列包括所述第一报文和所述第二报文。所述第一报文中的比特的数量不等于所述第二报文中的比特的数量。将所述第一报文分发到第一CRC计算电路。将所述第二报文分发到第二CRC计算电路。通过第一CRC计算电路计算得到所述第一报文的CRC。通过所述第二CRC计算电路得到所述第二报文的CRC。如果将上述技术方案应用到灵活以太网的上述应用场景中,则可以分别计算来自不同的发送器的不同长度报文的CRC。因此,上述技术方案可以较好的应用在灵活以太网的场景中。
Description
技术领域
本发明涉及通信领域,尤其涉及一种循环冗余码(英文:cyclic redundancycode,简称:CRC)计算方法及装置。
背景技术
循环冗余校验(英文:cyclic redundancy check)是一种校验方法。在通信系统中,循环冗余校验是一种常用的错误校验方法。具体来说,源端可以根据生成多项式计算原始数据的CRC。CRC也可以称为循环冗余校验码(英文:cyclic redundancy check code)。源端在原始数据后添加CRC并向宿端发送添加了CRC的原始数据。宿端收到添加了CRC的原始数据后,可以根据CRC以及生成多项式校验原始数据在传送过程中是否发生错误。
现有技术中,接收器中设置有对应特定长度的报文的CRC计算电路。接收器收到特定长度的报文后,可以根据CRC计算电路对特定长度的报文是否发生错误进行校验。上述技术方案不能较好地适用于灵活以太网(英文:flexible ethernet)。
发明内容
本发明实施例提供了一种CRC计算方法及装置,可以较好地适用于灵活以太网。
第一方面,提供一种循环冗余校验码CRC计算方法,该方法包括:
接收第一脉冲的二进制序列,所述第一脉冲的二进制序列包括第一报文和第二报文,所述第一报文的比特的数量为M,所述第二报文的比特的数量是N,M和N为正整数,M不等于N;
将所述第一报文分发到第一CRC计算电路,所述第一CRC计算电路计算所述第一报文的CRC;
将所述第二报文分发到第二CRC计算电路,所述第二CRC计算电路计算所述第二报文的CRC。
结合第一方面,在第一种可能的实现方式中,所述第一脉冲的二进制序列还包括第三报文,所述第三报文的比特的数量为X,所述方法还包括:
根据所述第三报文生成第一二进制序列,所述第一二进制序列的比特的数量为Y,所述第一二进制序列的高X比特的值等于所述第三报文的比特的值,所述第一二进制序列的低C比特的值等于0,Y=X+C,Y、X和C为正整数;
将所述第一二进制序列分发到第三CRC计算电路,所述第三CRC计算电路计算所述第一二进制序列的CRC。
结合第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一脉冲的二进制序列还包括第四报文的高A比特,所述第四报文的比特的数量是A+B,所述方法还包括:
根据所述第四报文的高A比特生成第二二进制序列,所述第二二进制序列的比特的数量为G,所述第二二进制序列的高A比特的值等于所述第四报文的高A比特的值,所述第二二进制序列的低H比特的值等于0,G=A+H,A、B、和G为正整数,H为大于或者等于0的整数,B小于或者等于G;
将所述第二二进制序列分发到第四CRC计算电路,所述第四CRC计算电路计算所述第二二进制序列的CRC以对所述第四CRC计算电路的CRC寄存器的值进行初始化;
接收第二脉冲的二进制序列,所述第二脉冲是所述第一脉冲的下一个脉冲,所述第二脉冲的二进制序列包括所述第四报文的低B比特;
将所述第四报文的低B比特分发到所述第四CRC计算电路;
所述第四CRC计算电路以所述第二二进制序列的CRC为所述第四CRC计算电路的CRC寄存器的初始值计算所述第四报文的低B比特的CRC。
结合第一方面或者第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述第一脉冲的二进制序列还包括第四报文的高A比特,所述第四报文的比特的数量是A+B,所述方法还包括:
根据所述第四报文的高A比特生成第二二进制序列,所述第二二进制序列的比特的数量为G,所述第二二进制序列的高A比特的值等于所述第四报文的高A比特的值,所述第二二进制序列的低H比特的值等于0,G=A+H,A、B和G为正整数,H为大于或者等于0的整数;
将所述第二二进制序列分发到第四CRC计算电路,所述第四CRC计算电路计算所述第二二进制序列的CRC;
接收第二脉冲的二进制序列,所述第二脉冲是所述第一脉冲的下一个脉冲,所述第二脉冲的二进制序列包括所述第四报文的低B比特;
将所述第四报文的低B比特分发到第五CRC计算电路,所述第五CRC计算电路以所述第二二进制序列的CRC为所述第五CRC计算电路的CRC寄存器的初始值计算所述第四报文的低B比特的CRC。
结合第一方面或者第一方面的第一种至第三种可能的实现方式中的任意一种可能的实现方式,在第四种可能的实现方式中,所述第一CRC计算电路包括第一数据异或计算电路,所述第一数据异或计算电路表示为:
其中,中的d0至dn-1分别是所述M比特的二进制序列的最低比特至最高比特,n取值为M;为生成多项式矩阵,pm-1至p0是所述第一CRC计算电路的CRC多项式的系数,m为生成多项式的阶数,
为变换矩阵;
所述第二CRC计算电路包括第二数据异或计算电路,所述第二数据异或计算电路表示为:
其中,中的d0至dn-1分别是所述M比特的二进制序列的最低比特至最高比特,n取值为N;为生成多项式表项矩阵,pm-1至p0是所述第一CRC计算电路的CRC多项式的系数,m为生成多项式的阶数,
为变换矩阵。
第二方面,提供一种循环冗余校验码CRC计算装置,该装置包括:
接收单元,用于接收第一脉冲的二进制序列,所述第一脉冲的二进制序列包括第一报文和第二报文,所述第一报文的比特的数量为M,所述第二报文的比特的数量是N,M和N为正整数,M不等于N;
调度单元,用于将所述接收单元接收的所述第一报文分发到第一CRC计算电路,将所述接收单元接收的所述第二报文分发到第二CRC计算电路;
所述第一CRC计算电路,用于计算所述调度单元分发的所述第一报文的CRC;
所述第二CRC计算电路,用于计算所述调度单元分发的所述第二报文的CRC。
结合第二方面,在第一种可能的实现方式中,所述装置还包括第三CRC计算电路,所述第一脉冲的二进制序列还包括第三报文,所述第三报文的比特的数量为X;
所述调度单元还用于:
根据所述接收单元接收的所述第三报文生成第一二进制序列,所述第一二进制序列的比特的数量为Y,所述第一二进制序列的高X比特的值等于所述第三报文的比特的值,所述第一二进制序列的低C比特的值等于0,Y=X+C,Y、X和C为正整数;
将所述第一二进制序列分发到所述第三CRC计算电路;
所述第三CRC计算电路,用于计算所述调度单元分发的所述第一二进制序列的CRC。
结合第二方面或者第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述装置还包括第四CRC计算电路,所述第一脉冲的二进制序列还包括第四报文的高A比特,所述第四报文的比特的数量是A+B;
所述调度单元还用于:
根据所述第四报文的高A比特生成第二二进制序列,所述第二二进制序列的比特的数量为G,所述第二二进制序列的高A比特的值等于所述第四报文的高A比特的值,所述第二二进制序列的低H比特的值等于0,G=A+H,A、B、和G为正整数,H为大于或者等于0的整数,B小于或者等于G;
将所述第二二进制序列分发到所述第四CRC计算电路;
所述第四CRC计算电路,用于计算所述第二二进制序列的CRC以对所述第四CRC计算电路的CRC寄存器的值进行初始化;
所述接收单元还用于,接收第二脉冲的二进制序列,所述第二脉冲是所述第一脉冲的下一个脉冲,所述第二脉冲的二进制序列包括所述第四报文的低B比特;
所述调度单元还用于,将所述第四报文的低B比特分发到所述第四CRC计算电路;
所述第四CRC计算电路,还用于以所述第二二进制序列的CRC为所述第四CRC计算电路的CRC寄存器的初始值计算所述第四报文的低B比特的CRC。
结合第二方面或者第二方面的第一种可能的实现方式,在第三种可能的实现方式中,所述装置还包括第四CRC计算电路以及第五CRC计算电路,所述第一脉冲的二进制序列还包括第四报文的高A比特,所述第四报文的比特的数量是A+B;
所述调度单元还用于:
根据所述第四报文的高A比特生成第二二进制序列,所述第二二进制序列的比特的数量为G,所述第二二进制序列的高A比特的值等于所述第四报文的高A比特的值,所述第二二进制序列的低H比特的值等于0,G=A+H,A、B和G为正整数,H为大于或者等于0的整数;
将所述第二二进制序列分发到所述第四CRC计算电路;
所述第四CRC计算电路,用于根据所述调度单元分发的所述第二二进制序列计算所述第二二进制序列的CRC;
所述接收单元还用于,接收第二脉冲的二进制序列,所述第二脉冲是所述第一脉冲的下一个脉冲,所述第二脉冲的二进制序列包括所述第四报文的低B比特;
所述调度单元还用于,将所述第四报文的低B比特分发到第五CRC计算电路;
所述第五CRC计算电路,用于以所述第二二进制序列的CRC为所述第五CRC计算电路的CRC寄存器的初始值计算所述第四报文的低B比特的CRC。
结合第二方面或者第二方面的第一种至第三种可能的实现方式中的任意一种可能的实现方式,在第四种可能的实现方式中,所述第一CRC计算电路包括第一数据异或计算电路,所述第一数据异或计算电路表示为:
其中,中的d0至dn-1分别是所述M比特的二进制序列的最低比特至最高比特,n取值为M;为生成多项式矩阵,pm-1至p0是所述第一CRC计算电路的CRC多项式的系数,m为生成多项式的阶数,
为变换矩阵;
所述第二CRC计算电路包括第二数据异或计算电路,所述第二数据异或计算电路表示为:
其中,中的d0至dn-1分别是所述M比特的二进制序列的最低比特至最高比特,n取值为N;为生成多项式表项矩阵,pm-1至p0是所述第一CRC计算电路的CRC多项式的系数,m为生成多项式的阶数,
为变换矩阵。
第三方面,提供一种系统芯片500。所述系统芯片500可以用于执行上述第一方面或者第一方面的第一种至第四种可能的实现方式中的任意一种可能的实现方式。所述系统芯片500包括PHY510和MAC520。MAC520包括RS521、分发器522以及CRC计算电路523至CRC计算电路527。PHY510通过MII与MAC520连接。RS521与分发器522耦合。分发器522与CRC计算电路523至CRC计算电路527耦合。MAC520可以在时钟装置的驱动下进行工作。具体来说,RS521、分发器522和CRC计算电路523至CRC计算电路527在所述时钟装置的驱动下进行工作。
RS521在所述时钟装置的驱动下,在第一时钟周期内向分发器522发送了所述第一时钟周期的二进制序列。所述第一时钟周期的二进制序列包括第一报文和第二报文。所述第一报文的比特的数量为M。所述第二报文的比特的数量是N。M和N为正整数。M不等于N。所述第一报文是以太网帧。所述第二报文是以太网帧。
分发器522在所述时钟装置的驱动下,接收到所述第一时钟周期的二进制序列。
分发器522将所述第一报文分发到第一CRC计算电路,所述第一CRC计算电路计算所述第一报文的CRC。CRC计算电路523是所述第一CRC计算电路。
分发器522将所述第二报文分发到第二CRC计算电路,所述第二CRC计算电路计算所述第二报文的CRC。CRC计算电路524是所述第二CRC计算电路。
结合第三方面,在第一种可能的实现方式中,所述第一时钟周期的二进制序列还包括第三报文,所述第三报文的比特的数量为X。
分发器522根据所述第三报文生成第一二进制序列,所述第一二进制序列的比特的数量为Y,所述第一二进制序列的高X比特的值等于所述第三报文的比特的值,所述第一二进制序列的低C比特的值等于0,Y=X+C,Y、X和C为正整数。
分发器522将所述第一二进制序列分发到第三CRC计算电路,所述第三CRC计算电路计算所述第一二进制序列的CRC。CRC计算电路525是所述第三CRC计算电路。
结合第三方面或者第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一时钟周期的二进制序列还包括第四报文的高A比特,所述第四报文的比特的数量是A+B。所述第四报文是以太网帧。
分发器522根据所述第四报文的高A比特生成第二二进制序列,所述第二二进制序列的比特的数量为G,所述第二二进制序列的高A比特的值等于所述第四报文的高A比特的值,所述第二二进制序列的低H比特的值等于0,G=A+H,A、B和G为正整数。H为大于或者等于0的整数。B小于或者等于G。
分发器522将所述第二二进制序列分发到第四CRC计算电路,所述第四CRC计算电路计算所述第二二进制序列的CRC以对所述第四CRC计算电路的CRC寄存器的值进行初始化。
分发器522接收RS521在所述时钟装置的驱动下在第二时钟周期发送的二进制序列。所述第二时钟周期是所述第一时钟周期的下一个时钟周期。所述第二时钟周期的二进制序列包括所述第四报文的低B比特。
分发器522将所述第四报文的低B比特分发到所述第四CRC计算电路。CRC计算电路526是所述第四CRC计算电路。
所述第四CRC计算电路以所述第二二进制序列的CRC为所述第四CRC计算电路的CRC寄存器的初始值计算所述第四报文的低B比特的CRC。
结合第三方面或者第三方面的第一种可能的实现方式,在第三种可能的实现方式中,所述第一时钟周期的二进制序列还包括第四报文的高A比特,所述第四报文的比特的数量是A+B。
分发器522根据所述第四报文的高A比特生成第二二进制序列,所述第二二进制序列的比特的数量为G,所述第二二进制序列的高A比特的值等于所述第四报文的高A比特的值,所述第二二进制序列的低H比特的值等于0,G=A+H,A、B和G为正整数。H为大于或者等于0的整数。
分发器522将所述第二二进制序列分发到第四CRC计算电路,所述第四CRC计算电路计算所述第二二进制序列的CRC。CRC计算电路526是所述第四CRC计算电路。
分发器522接收RS521在所述时钟装置的驱动下在第二时钟周期发送的二进制序列。所述第二时钟周期是所述第一时钟周期的下一个时钟周期。所述第二时钟周期的二进制序列包括所述第四报文的低B比特。
分发器522将所述第四报文的低B比特分发到第五CRC计算电路。所述第五CRC计算电路以所述第二二进制序列的CRC为所述第五CRC计算电路的CRC寄存器的初始值计算所述第四报文的低B比特的CRC。CRC计算电路527是所述第五CRC计算电路。
结合第三方面或者第三方面的第一种至第三种可能的实现方式中的任意一种可能的实现方式,在第四种可能的实现方式中,所述第一CRC计算电路包括第一数据异或计算电路。所述第一数据异或计算电路表示为:
其中,中的d0至dn-1分别是所述M比特的二进制序列的最低比特至最高比特,n取值为M;为生成多项式矩阵,pm-1至p0是所述第一CRC计算电路的CRC多项式的系数,m为生成多项式的阶数,
为变换矩阵。
可选地,所述第二CRC计算电路包括第二数据异或计算电路,所述第二数据异或计算电路表示为:
其中,中的d0至dn-1分别是所述M比特的二进制序列的最低比特至最高比特,n取值为N;为生成多项式表项矩阵,pm-1至p0是所述第一CRC计算电路的CRC多项式的系数,m为生成多项式的阶数,为变换矩阵。
本发明实施例提供的CRC计算方案,比较容易应用到灵活带宽以太网的场景。灵活以太网中可能存在如下应用场景:一个接收器需要通过接收器的以太网接口接收多个发送器分别通过多个以太网接口发送的报文。每个发送器包括一个以太网接口。所述多个发送器与所述多个以太网接口一一对应。所述多个发送器中,不同的发送器发送的报文的长度可以不同。
根据上述技术方案,所述第一脉冲的二进制序列包括所述第一报文和所述第二报文。所述第一报文中的比特的数量不等于所述第二报文中的比特的数量。将所述第一报文分发到第一CRC计算电路。将所述第二报文分发到第二CRC计算电路。通过第一CRC计算电路计算得到所述第一报文的CRC。通过所述第二CRC计算电路得到所述第二报文的CRC。如果将上述技术方案应用到灵活以太网的上述应用场景中,则可以分别计算来自不同的发送器的不同长度报文的CRC。因此,上述技术方案可以较好的应用在灵活以太网的场景中。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的CRC计算方案的示意图;
图2为本发明实施例提供的CRC计算结构在400GE以太网中的应用示意图;
图3为本发明实施例提供的CRC计算方法的流程示意图;
图4为本发明实施例提供的CRC计算装置的结构示意图;
图5为本发明实施例提供的MAC的结构示意图;
图6为本发明实施例提供的一种CRC计算方法的流程示意图;
图7为本发明实施例提供的一种CRC计算方法的流程示意图;
图8为本发明实施例提供的一种CRC计算方法的流程示意图;
图9为本发明实施例提供的一种CRC计算方法的流程示意图;
图10为本发明实施例提供的一种CRC计算方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下文对本发明实施例涉及到的部分术语进行说明:
物理层电路(英文:physical layer,简称:PHY):所述PHY可以通过现场可编程门阵列(英文:field programmable gate array,简称:FPGA)或者专用集成电路(英文:application specific integrated circuit,简称:ASIC)实现。所述PHY可以是网络接口卡(英文:network interface card,简称:NIC)中的部件,所述NIC可以是线卡(英文:linecard,简称:LC)或者物理接口卡(英文:physical interface card,简称:PIC)。所述PHY可以通过媒体无关接口(英文:Media Independence Interface,简称:MII)连接到媒体访问控制器(英文:media access controller,简称:MAC)。
PHY芯片(英文:MAC chip):所述PHY芯片可以包括1个PHY或者多个PHY。所述PHY芯片可以通过FPGA或者ASIC实现。
MAC:所述MAC可以通过FPGA或者ASIC实现。所述MAC可以包括协调子层电路(英文:reconciliation sublayer,简称:RS)、分发器(英文:dispatcher)以及至少一个CRC计算电路。所述RS与所述分发器耦合。所述分发器与所述至少一个CRC计算电路耦合。所述分发器可以用于接收所述RS输出的二进制序列,所述二进制序列中包括至少一个以太网帧(英文:ethernet frame)。所述分发器可以用于向所述至少一个CRC计算电路分发所述至少一个以太网帧。所述MAC可以在时钟装置的驱动下进行工作。所述MAC中的部件(例如RS、分发器和至少一个CRC计算电路)也在所述时钟装置的驱动下进行工作。
MAC芯片(英文:MAC chip):所述MAC芯片可以包括1个MAC或者多个MAC。所述MAC芯片可以通过FPGA或者ASIC实现。
系统芯片:所述系统芯片可以包括1个MAC和1个PHY。所述系统芯片也可以包括多个MAC和多个PHY。所述系统芯片中的PHY可以与所述系统芯片中的MAC耦合。所述系统芯片可以通过FPGA或者ASIC实现。
CRC计算电路(英文:cyclic redundancy code calculating circuit):用于计算数据的CRC的电路。具体来说,所述CRC计算电路可以根据生成多项式(英文:generatorpolynomial)计算所述数据的CRC。所述数据可以是二进制序列(英文:binary sequence)。所述二进制序列可以是报文。所述CRC计算电路可以包括CRC寄存器。本发明实施例提供的技术方案中,CRC计算电路计算数据的CRC时,CRC计算电路可以串行地计算所述数据的CRC,也可以并行地计算所述数据的CRC。本发明实施例提供的技术方案中,每个CRC计算电路可以对应同一个生成多项式。
接收器:所述接收器可以包括以太网接口。所述以太网接口可以包括串行器/解串器(英文:serializer/deserializer,简称:serdes)、PHY以及MAC。所述serdes与所述PHY耦合。所述PHY与所述MAC耦合。
多端口以太网设备:所述多端口以太网设备可以是以太网集线器、以太网路由器或者以太网交换机。所述多端口以太网设备包括多个端口,每个端口可以包括接收器。所述接收器中可以包括系统芯片。所述系统芯片可以包括MAC和PHY。
二进制序列的比特的值:所述二进制序列对应的二进制数(英文:binary number)的值。所述二进制数的值可以用十进制数表示。举例来说,二进制序列1010对应的二进制数是1010。二进制数1010的值等于10(十进制数)。二进制序列1010的高2比特对应的二进制数是10。二进制序列1010的高2比特的值等于2(十进制数)。二进制序列1010的低2比特对应的二进制数也是10。二进制序列1010的低2比特的值等于2(十进制数)。
本发明实施例提供的CRC计算方案,比较容易应用到灵活带宽以太网的场景。具体来说,在灵活以太网的场景中,不同报文的长度可以是不相同的。针对这种对可变长报文的应用场景,本发明实施例提供了CRC计算方法。
图3为本发明实施例提供的CRC计算方法的流程示意图。所述方法的执行主体可以是MAC、MAC芯片、系统芯片、接收器或者多端口以太网设备。参见图3,所述方法包括:
S101、接收第一脉冲的二进制序列,所述第一脉冲的二进制序列包括第一报文和第二报文,所述第一报文的比特的数量为M,所述第二报文的比特的数量是N,M和N为正整数,M不等于N。
举例来说,S101的执行主体可以是MAC中的分发器。所述第一脉冲的二进制序列可以是所述MAC中的RS输出的。
举例来说,所述第一报文是以太网帧。所述第二报文是以太网帧。所述第一脉冲对应时钟装置的一个时钟周期。所述时钟装置用于驱动图3所示的方法的执行主体接收所述第一脉冲的二进制序列。
举例来说,所述第一报文可以是第一发送器发送的报文。所述第二报文可以是第二发送器发送的报文。具体来说,所述第一发送器通第一以太网接口发送所述第一报文。所述第二发送器通过第二以太网接口发送所述第二报文。所述第一以太网接口的类型可以不同于所述第二以太网接口的类型。例如,所述第一以太网接口可以是40吉比特以太网(英文:40gigabit ethernet,简称:40GE)接口。所述第二以太网接口可以是100吉比特以太网(英文:100gigabit ethernet,简称:100GE)接口。所述第一发送器可以是第一网络装置中的发送器。所述第二发送器可以是第二网络装置中的发送器。所述第一网络装置和所述第二网络装置可以是不同的网络装置。
这里的“第一脉冲”可以是任意一个脉冲。接收器在每个脉冲接收到的二进制序列的比特数量可以是相同的。比如,每个脉冲接收到的二进制序列的比特数量为1280。
在灵活以太网场景下,不同报文的长度可以是不等长的,即不同报文的二进制的比特的数量可以是不同的。通信系统可以规定报文的最小长度。比如,通信系统可以规定一个报文最少包含512个比特。
一个脉冲的二进制序列可以包括一个或多个报文,且每个报文的二进制的比特的数量可以相同也可以不同。在本流程的场景中,第一脉冲的二进制序列包括第一报文和第二报文,第一报文和第二报文的二进制序列的比特的数量不同。
S102、将所述第一报文分发到第一CRC计算电路,所述第一CRC计算电路计算所述第一报文的CRC;将所述第二报文分发到第二CRC计算电路,所述第二CRC计算电路计算所述第二报文的CRC。
举例来说,S102的执行主体可以是所述分发器。
根据一个脉冲接收到的二进制序列的比特的数量,以及通信系统规定的报文的最小长度(即报文的二进制序列的比特的数量的最小值),可以确定出一个脉冲最多可接收到的报文的数量。CRC计算电路的数量可根据一个脉冲最多可接收到的报文的数量来确定。比如,一个脉冲接收到的报文的最大数量记为:
其中,Plen为一个脉冲接收到的二进制序列的比特的数量,l为一个报文的二进制序列的比特的数量的最小值;表示向上取整,即取大于或等于的最小整数。
这种情况下,CRC计算电路的数量可以是上述表达式所计算出的N。
每个CRC计算电路被配置以并行地计算一定比特数量的二进制序列的CRC。比如,每个CRC计算电路均可以被配置以并行地计算N个比特的二进制序列的CRC,其中N的取值可以与一个脉冲接收到的二进制序列的比特数量相同。
再比如,如本发明实施例,第一CRC计算电路被配置以并行地计算M个比特的二进制序列的CRC,第二CRC计算电路被配置以并行地计算N个比特的二进制序列的CRC。
灵活以太网中可能存在如下应用场景:一个接收器需要通过接收器的以太网接口接收多个发送器分别通过多个以太网接口发送的报文。每个发送器包括一个以太网接口。所述多个发送器与所述多个以太网接口一一对应。所述多个发送器中,不同的发送器发送的报文的长度可以不同。
根据上述技术方案,所述第一脉冲的二进制序列包括所述第一报文和所述第二报文。所述第一报文中的比特的数量不等于所述第二报文中的比特的数量。将所述第一报文分发到第一CRC计算电路。将所述第二报文分发到第二CRC计算电路。通过第一CRC计算电路计算得到所述第一报文的CRC。通过所述第二CRC计算电路得到所述第二报文的CRC。如果将上述技术方案应用到灵活以太网的上述应用场景中,则可以分别计算来自不同的发送器的不同长度报文的CRC。因此,上述技术方案可以较好的应用在灵活以太网的场景中。
可选地,图3所示的技术方案中,所述第一脉冲的二进制序列还可以包括第三报文,所述第三报文的比特的数量为X。
具体来说,图3所示的技术方案中还可以涉及到第三CRC计算电路。所述第三CRC计算电路被配置以并行地计算Y(Y>X)个比特的二进制序列的CRC。在这种场景下,可以对所述第三报文执行以下处理:
根据所述第三报文生成第一二进制序列,所述第一二进制序列的比特的数量为Y。所述第一二进制序列的高X比特的值等于所述第三报文的比特的值。所述第一二进制序列的低C比特的值等于0。Y=X+C。Y、X和C为正整数。
可选的,可通过对所述第三报文执行移位操作以得到所述第一二进制序列。
将所述第一二进制序列分发到所述第三CRC计算电路,所述第三CRC计算电路计算所述第一二进制序列的CRC。
举例来说,Y可以不等于M。Y可以不等于N。
可选地,图3所示的技术方案中,所述第一脉冲的二进制序列还包括第四报文的高A比特,所述第四报文的比特的数量是A+B。
举例来说,A与B的和不等于M。A与B的和不等于N。
具体来说,图3所示的技术方案中还可以涉及到第四CRC计算电路。所述第四CRC计算电路被配置以计算G个比特的二进制序列的CRC。这种场景中,可以针对所述第四报文采用以下两种方式进行处理:
方式一
根据所述第四报文的高A比特生成第二二进制序列,所述第二二进制序列的比特的数量为G,所述第二二进制序列的高A比特的值等于所述第四报文的高A比特的值,所述第二二进制序列的低H比特的值等于0,G=A+H,A、B和G为正整数,H为大于或者等于0的整数,B小于或者等于G。
可选的,当H为正整数时,可通过对所述第四报文的高A比特执行移位操作以得到所述第二二进制序列。当H为0时,所述第二二进制序列等于所述第四报文的高A比特。
将所述第二二进制序列分发到所述第四CRC计算电路,所述第四CRC计算电路计算所述第二二进制序列的CRC以对所述第四CRC计算电路的CRC寄存器的值进行初始化。
接收第二脉冲的二进制序列(所述第二脉冲是所述第一脉冲的下一个脉冲,所述第二脉冲的二进制序列包括所述第四报文的低B比特)。
将所述第四报文的低B比特分发到所述第四CRC计算电路。所述第四CRC计算电路以所述第二二进制序列的CRC为所述第四CRC计算电路的CRC寄存器的初始值计算所述第四报文的低B比特的CRC。
方式二
根据所述第四报文的高A比特生成第二二进制序列,所述第二二进制序列的比特的数量为G,所述第二二进制序列的高A比特的值等于所述第四报文的高A比特的值,所述第二二进制序列的低H比特的值等于0,G=A+H,A、B和G为正整数,H为大于或者等于0的整数。
可选的,当H为正整数时,可通过对所述第四报文的高A比特执行移位操作以得到所述第二二进制序列。当H为0时,所述第二二进制序列等于所述第四报文的高A比特。
将所述第二二进制序列分发到第四CRC计算电路,所述第四CRC计算电路计算所述第二二进制序列的CRC。
接收第二脉冲的二进制序列,所述第二脉冲是所述第一脉冲的下一个脉冲,所述第二脉冲的二进制序列包括所述第四报文的低B比特。
将所述第四报文的低B比特分发到第五CRC计算电路。
具体是所述第四CRC计算电路中的CRC寄存器向所述第五CRC计算电路中的CRC寄存器传递信息。
所述第五CRC计算电路以所述第二二进制序列的CRC为所述第五CRC计算电路的CRC寄存器的初始值计算所述第四报文的低B比特的CRC。
其中,所述第五CRC计算电路与所述第四CRC计算电路是不同的CRC计算电路。
举例来说,所述第五CRC计算电路被配置以计算J比特的二进制序列的CRC。J是正整数。J大于或者等于B。
举例来说,所述第五CRC计算电路与所述第一CRC计算电路可以是同一个CRC计算电路。
可选地,上述实施例中的CRC计算电路包括第一数据异或计算电路。以所述第一CRC计算电路为例,所述第一数据异或计算电路表示为:
其中,中的d0至dn-1分别是所述M比特的二进制序列的最低比特至最高比特,n取值为M;为生成多项式矩阵,pm-1至p0是所述第一CRC计算电路的CRC多项式的系数,m为生成多项式的阶数,为变换矩阵;
可选地,所述第二CRC计算电路包括第二数据异或计算电路,所述第二数据异或计算电路表示为:
其中,中的d0至dn-1分别是所述M比特的二进制序列的最低比特至最高比特,n取值为N;为生成多项式表项矩阵,pm-1至p0是所述第一CRC计算电路的CRC多项式的系数,m为生成多项式的阶数,为变换矩阵。
以上实施例仅以几种典型的应用场景为例,对本发明进行了描述。上述实施例提供的CRC计算方法,也可应用在其他应用场景中。
为了更清楚的理解本发明的上述实施例,下面以一种典型的应用场景为例进行描述。
参见图1,为本发明实施例提供的可应用于灵活以太网的CRC计算方案的示意图。如图所示,对于给定以太网系统,以太网报文的最小长度记为l(即报文的最小长度为l比特),每个脉冲接收器接收的二进制序列的比特的数量记为Plen,则每个脉冲的二进制序列中最多可包含的报文的数量为:
其中,表示向上取整,即取大于或等于的最小整数。
这样,该CRC计算架构中,CRC计算电路的数量可设置为N个(如图中的Calc_CRC_1,Calc_CRC_2,…,Calc_CRC_N)。每个CRC计算电路被配置以并行地计算一定比特数量的二进制序列的CRC。
调度单元用于将一个脉冲的二进制序列中包含的报文分发到对应的CRC计算电路。一个报文的二进制序列被分发到一个CRC计算电路。调度单元可由逻辑电路实现。
如前所述,每个CRC计算电路被配置以并行地计算一定比特数量的二进制序列的CRC。优选的,调度单元在进行报文分发时,可以按照“Calc_CRC_1,Calc_CRC_2,…,Calc_CRC_N”的顺序进行分发,即总是从编号最小的CRC计算电路开始,并按照编号递增的顺序进行分发。这样,按照CRC计算电路编号从小到大的顺序,CRC计算电路能够处理的二进制序列的比特数量可递减。
以400G流量的MAC(Media Access Control,媒体访问控制)帧的应用场景为例,按照以太网的标准,最小报文长度为512比特,采用64b/66b编解码,则对齐块大小为64比特(即数据处理的最小颗粒度为64比特,也就是说最少以64个比特为单位进行数据处理),以每个脉冲的二进制序列的比特数量为1280为例,那么一个脉冲的二进制序列最多可包含4个报文,即,最多需要计算4个报文的CRC,因此,CRC计算架构中可最多设置4个CRC计算电路。
每个脉冲的二进制序列中包含的报文按序排序,比如,一个脉冲的二进制序列中包含了一个完整报文(记为报文a)和一个报文(记为报文b)的高比特位部分,则在下一个脉冲的二进制序列中的第一个报文是报文b的其余比特。每个脉冲的二进制序列包含的报文被顺序调度到对应的Calc_CRC_K(K=1,2,3,4)进行CRC的计算。比如,第一个报文被调度到Calc_CRC_1,第二个报文被调度到Calc_CRC_2,第三个报文被调度到Calc_CRC_3,第四个报文被调度到Calc_CRC_4。
如果一个脉冲的二进制序列仅包含一个报文,且该报文的比特数量为1280,则调度到Calc_CRC_1进行CRC计算;如果一个脉冲的二进制序列仅包含两个报文,则第一个报文的比特数量最少为64,第二个报文的最大比特数量为1216(1280bit-64bit=1216bit);如果一个脉冲的二进制序列包含三个报文,则第一个报文的比特数量最少为64,第二个报文的比特数量最少为512,则第三个报文的最大比特数量为704(1280bit-64bit-512bit=704bit);如果一个脉冲的二进制序列包含了四个报文,则第一个报文的比特数量最少为64,第二个报文的比特数量最少为512,第三个报文的比特数量至少为512,则对于第四个报文来说仅包含该报文的高192比特(1280bit-64bit-512bi-512bit=192bit)。
根据以上情况,只要相应Calc_CRC满足相应报文的最长处理要求即可,因此每个CRC计算电路的配置如下:
Calc_CRC_1被配置以并行地计算1280个比特的二进制序列的CRC;
Calc_CRC_2被配置以并行地计算1216个比特的二进制序列的CRC;
Calc_CRC_3被配置以并行地计算704个比特的二进制序列的CRC;
Calc_CRC_4被配置以并行地计算192个比特的二进制序列的CRC。
相应的,Calc_CRC_1的数据异或网络运算部分可表示为:
Calc_CRC_2的数据异或网络运算部分可表示为:
Calc_CRC_3的数据异或网络运算部分可表示为:
Calc_CRC_4的数据异或网络运算部分可表示为:
上述400G流量的MAC帧的CRC计算结构可如图2所示。
根据以上原则,推而广之,CRC计算电路的配置原则可以是:
第x(x=1)个CRC计算电路被配置以并行地计算Plen个比特(Plen为每个脉冲的二进制序列的比特数量)的二进制序列的CRC,第x+1个CRC计算电路比第x个CRC计算电路所处理的比特数量少M比特(M为对齐块的大小);
第y+1(2≤y≤N-1,N为CRC计算电路的数量)个CRC计算电路比第y个CRC计算电路所处理的比特数量K(K为最小帧长度)个比特。
按照以上原则对CRC计算电路进行配置的方案,仅为一种优选实现方案,并发明实施例中对CRC计算电路的配置,即一个CRC计算电路所能够处理的比特数量,不构成对本发明的限制。
本发明实施例还提供了一种能够实现图3所示的方法的装置。
参见图4,为本发明实施例提供的CRC计算装置的结构示意图。所述装置可以用于执行图3所示的方法。所述装置可以是MAC、MAC芯片、系统芯片、接收器或者多端口以太网设备。参见图4,所述装置400包括:
接收单元401,用于接收第一脉冲的二进制序列,所述第一脉冲的二进制序列包括第一报文和第二报文,所述第一报文的比特的数量为M,所述第二报文的比特的数量是N,M和N为正整数,M不等于N。
举例来说,接收单元401可以是MAC中的分发器。所述二进制序列可以是所述MAC中的RS输出的。
举例来说,所述第一报文是以太网帧。所述第二报文是以太网帧。所述第一脉冲对应时钟装置的一个时钟周期。所述时钟装置用于驱动接收单元401接收所述第一脉冲的二进制序列。
举例来说,所述第一报文可以是第一发送器发送的报文。所述第二报文可以是第二发送器发送的报文。具体来说,所述第一发送器通第一以太网接口发送所述第一报文。所述第二发送器通过第二以太网接口发送所述第二报文。所述第一以太网接口的类型可以不同于所述第二以太网接口的类型。例如,所述第一以太网接口可以是40GE接口。所述第二以太网接口可以是100GE接口。所述第一发送器可以是第一网络装置中的发送器。所述第二发送器可以是第二网络装置中的发送器。所述第一网络装置和所述第二网络装置可以是不同的网络装置。
调度单元402,用于将所述接收单元401接收的所述第一报文分发到第一CRC计算电路403,将所述接收单元401接收的所述第二报文分发到第二CRC计算电路404。
举例来说,调度单元402可以是所述分发器。
所述第一CRC计算电路403,用于计算所述调度单元402分发的所述第一报文的CRC。
具体来说,所述第一CRC计算电路403被配置以计算M个比特的二进制序列的CRC。
所述第二CRC计算电路404,用于计算所述调度单元402分发的所述第二报文的CRC。
具体来说,所述第二CRC计算电路404被配置以计算N个比特的二进制序列的CRC。
可选地,图4所示的装置中,所述装置400还包括第三CRC计算电路(图4中未示出)。所述第一脉冲的二进制序列还包括第三报文,所述第三报文的比特的数量为X。
所述调度单元402还用于:
根据所述接收单元401接收的所述第三报文生成第一二进制序列,所述第一二进制序列的比特的数量为Y,所述第一二进制序列的高X比特的值等于所述第三报文的比特的值,所述第一二进制序列的低C比特的值等于0,Y=X+C,Y、X和C为正整数。
将所述第一二进制序列分发到所述第三CRC计算电路。
举例来说,所述调度单元402可以包括移位寄存器。所述移位寄存器可以对所述第三报文执行移位操作以生成所述第一二进制序列。
所述第三CRC计算电路,用于计算所述调度单元402分发的所述第一二进制序列的CRC。
可选地,图4所示的装置中,所述装置400还包括第四CRC计算电路(图4中未示出),所述第一脉冲的二进制序列还包括第四报文的高A比特,所述第四报文的比特的数量是A+B。
举例来说,所述第四CRC计算电路被配置以计算G个比特的二进制序列的CRC。
所述调度单元402还用于:
根据所述接收单元401接收的所述第四报文的高A比特生成第二二进制序列,所述第二二进制序列的比特的数量为G,所述第二二进制序列的高A比特的值等于所述第四报文的高A比特的值,所述第二二进制序列的低H比特的值等于0,G=A+H,A、B和G为正整数,H为大于或者等于0的整数,B小于或者等于G。
举例来说,当H为正整数时,可通过对所述第四报文的高A比特执行移位操作以得到所述第二二进制序列。当H为0时,所述第二二进制序列等于所述第四报文的高A比特。
将所述第二二进制序列分发到第四CRC计算电路。
所述第四CRC计算电路,用于计算所述第二二进制序列的CRC以对所述第四CRC计算电路的CRC寄存器的值进行初始化。
所述接收单元401还用于,接收第二脉冲的二进制序列,所述第二脉冲是所述第一脉冲的下一个脉冲,所述第二脉冲的二进制序列包括所述第四报文的低B比特。
将所述第四报文的低B比特分发到所述第四CRC计算电路。
所述第四CRC计算电路,还用于以所述调度单元402分发的所述第二二进制序列的CRC为所述第四CRC计算电路的CRC寄存器的初始值计算所述第四报文的低B比特的CRC。
可替换地,图4所示的装置中,所述装置400还包括第四CRC计算电路(图4中未示出)以及第五CRC计算电路(图4中未示出)。所述第一脉冲的二进制序列还包括第四报文的高A比特,所述第四报文的比特的数量是A+B。
举例来说,所述第四CRC计算电路被配置以计算G个比特的二进制序列的CRC。
所述调度单元402还用于:
根据所述接收单元401接收的所述第四报文的高A比特生成第二二进制序列。所述第二二进制序列的比特的数量为G。所述第二二进制序列的高A比特的值等于所述第四报文的高A比特的值。所述第二二进制序列的低H比特的值等于0。G=A+H。A、B和G为正整数。H为大于或者等于0的整数。
举例来说,当H为正整数时,可通过对所述第四报文的高A比特执行移位操作以得到所述第二二进制序列。当H为0时,所述第二二进制序列等于所述第四报文的高A比特。
将所述第二二进制序列分发到所述第四CRC计算电路。
所述第四CRC计算电路,用于根据所述调度单元402分发的所述第二二进制序列计算所述第二二进制序列的CRC。
所述接收单元401还用于,接收第二脉冲的二进制序列。所述第二脉冲是所述第一脉冲的下一个脉冲。所述第二脉冲的二进制序列包括所述第四报文的低B比特。
将所述第四报文的低B比特分发到所述第五CRC计算电路。
所述第五CRC计算电路,用于以所述调度单元402分发的所述第二二进制序列的CRC为所述第五CRC计算电路的CRC寄存器的初始值计算所述第四报文的低B比特的CRC。
举例来说,所述第五CRC计算电路被配置以计算J比特的二进制序列的CRC。J是正整数。J大于或者等于B。
举例来说,所述第五CRC计算电路与所述第一CRC计算电路可以是同一个CRC计算电路。
可选地,图4所示的装置中,所述第一CRC计算电路403包括第一数据异或计算电路。所述第一数据异或计算电路表示为:
其中,中的d0至dn-1分别是所述M比特的二进制序列的最低比特至最高比特,n取值为M。为生成多项式矩阵。pm-1至p0是所述第一CRC计算电路的CRC多项式的系数。m为生成多项式的阶数。为变换矩阵。
所述第二CRC计算电路包括第二数据异或计算电路。所述第二数据异或计算电路表示为:
其中,中的d0至dn-1分别是所述M比特的二进制序列的最低比特至最高比特,n取值为N;为生成多项式表项矩阵,pm-1至p0是所述第一CRC计算电路的CRC多项式的系数,m为生成多项式的阶数,为变换矩
图5为本发明实施例提供的一种系统芯片的结构示意图。系统芯片500可以用于执行图3所示的方法。参见图5,所述系统芯片500包括PHY510(图中示为物理层电路510)和MAC520。MAC520包括RS521(图中示为协调子层电路521)、分发器522以及CRC计算电路523至CRC计算电路527。PHY510通过MII与MAC520连接。RS521与分发器522耦合。分发器522与CRC计算电路523至CRC计算电路527耦合。MAC520可以在时钟装置的驱动下进行工作。具体来说,RS521、分发器522和CRC计算电路523至CRC计算电路527在所述时钟装置的驱动下进行工作。
RS521在所述时钟装置的驱动下,在第一时钟周期内向分发器522发送了所述第一时钟周期的二进制序列。所述第一时钟周期的二进制序列包括第一报文和第二报文。所述第一报文的比特的数量为M。所述第二报文的比特的数量是N。M和N为正整数。M不等于N。所述第一报文是以太网帧。所述第二报文是以太网帧。
分发器522在所述时钟装置的驱动下,接收到所述第一时钟周期的二进制序列。
分发器522将所述第一报文分发到第一CRC计算电路,所述第一CRC计算电路计算所述第一报文的CRC。CRC计算电路523是所述第一CRC计算电路。
分发器522将所述第二报文分发到第二CRC计算电路,所述第二CRC计算电路计算所述第二报文的CRC。CRC计算电路524是所述第二CRC计算电路。
可选地,上述技术方案中,所述第一时钟周期的二进制序列还包括第三报文,所述第三报文的比特的数量为X。
分发器522根据所述第三报文生成第一二进制序列,所述第一二进制序列的比特的数量为Y,所述第一二进制序列的高X比特的值等于所述第三报文的比特的值,所述第一二进制序列的低C比特的值等于0,Y=X+C,Y、X和C为正整数。
举例来说,所述第三报文是以太网帧。分发器522中包括移位寄存器。所述移位寄存器对所述第三报文进行移位操作以得到所述第一二进制序列。
分发器522将所述第一二进制序列分发到第三CRC计算电路,所述第三CRC计算电路计算所述第一二进制序列的CRC。CRC计算电路525是所述第三CRC计算电路。
可选地,上述技术方案中,所述第一时钟周期的二进制序列还包括第四报文的高A比特,所述第四报文的比特的数量是A+B。所述第四报文是以太网帧。
举例来说,所述第四CRC计算电路被配置以计算G个比特的二进制序列的CRC。
分发器522根据所述第四报文的高A比特生成第二二进制序列,所述第二二进制序列的比特的数量为G,所述第二二进制序列的高A比特的值等于所述第四报文的高A比特的值,所述第二二进制序列的低H比特的值等于0,G=A+H,A、B和G为正整数。H为大于或者等于0的整数。B小于或者等于G。
举例来说,当H为正整数时,可通过对所述第四报文的高A比特执行移位操作以得到所述第二二进制序列。当H为0时,所述第二二进制序列等于所述第四报文的高A比特。
分发器522将所述第二二进制序列分发到第四CRC计算电路,所述第四CRC计算电路计算所述第二二进制序列的CRC以对所述第四CRC计算电路的CRC寄存器的值进行初始化。
分发器522接收RS521在所述时钟装置的驱动下在第二时钟周期发送的二进制序列。所述第二时钟周期是所述第一时钟周期的下一个时钟周期。所述第二时钟周期的二进制序列包括所述第四报文的低B比特。
分发器522将所述第四报文的低B比特分发到所述第四CRC计算电路。CRC计算电路526是所述第四CRC计算电路。
所述第四CRC计算电路以所述第二二进制序列的CRC为所述第四CRC计算电路的CRC寄存器的初始值计算所述第四报文的低B比特的CRC。
可替换地,上述技术方案中,所述第一时钟周期的二进制序列还包括第四报文的高A比特,所述第四报文的比特的数量是A+B。
举例来说,所述第四CRC计算电路被配置以计算G个比特的二进制序列的CRC。
分发器522根据所述第四报文的高A比特生成第二二进制序列,所述第二二进制序列的比特的数量为G,所述第二二进制序列的高A比特的值等于所述第四报文的高A比特的值,所述第二二进制序列的低H比特的值等于0,G=A+H,A、B和G为正整数。H为大于或者等于0的整数。
举例来说,当H为正整数时,可通过对所述第四报文的高A比特执行移位操作以得到所述第二二进制序列。当H为0时,所述第二二进制序列等于所述第四报文的高A比特。
分发器522将所述第二二进制序列分发到第四CRC计算电路,所述第四CRC计算电路计算所述第二二进制序列的CRC。CRC计算电路526是所述第四CRC计算电路。
分发器522接收RS521在所述时钟装置的驱动下在第二时钟周期发送的二进制序列。所述第二时钟周期是所述第一时钟周期的下一个时钟周期。所述第二时钟周期的二进制序列包括所述第四报文的低B比特。
分发器522将所述第四报文的低B比特分发到第五CRC计算电路。所述第五CRC计算电路以所述第二二进制序列的CRC为所述第五CRC计算电路的CRC寄存器的初始值计算所述第四报文的低B比特的CRC。CRC计算电路527是所述第五CRC计算电路。
举例来说,所述第五CRC计算电路被配置以计算J比特的二进制序列的CRC。J是正整数。J大于或者等于B。
举例来说,所述第五CRC计算电路与所述第一CRC计算电路可以是同一个CRC计算电路。
可选地,所述第一CRC计算电路包括第一数据异或计算电路。所述第一数据异或计算电路表示为:
其中,中的d0至dn-1分别是所述M比特的二进制序列的最低比特至最高比特,n取值为M;为生成多项式矩阵,pm-1至p0是所述第一CRC计算电路的CRC多项式的系数,m为生成多项式的阶数,为变换矩阵。
可选地,所述第二CRC计算电路包括第二数据异或计算电路,所述第二数据异或计算电路表示为:
其中,中的d0至dn-1分别是所述M比特的二进制序列的最低比特至最高比特,n取值为N;为生成多项式表项矩阵,pm-1至p0是所述第一CRC计算电路的CRC多项式的系数,m为生成多项式的阶数,为变换矩阵。
图6为本发明实施例提供的一种CRC计算方法的流程示意图。所述方法的执行主体可以是MAC、MAC芯片、系统芯片、接收器或者多端口以太网设备。参见图6,所述方法包括:
S601、接收第一脉冲的二进制序列。
具体来说,所述第一脉冲的二进制序列包括第一报文。所述第一报文的比特的数量为X。
举例来说,S601的执行主体可以是MAC中的分发器。所述二进制序列可以是所述MAC中的RS输出的。
举例来说,所述第一报文是以太网帧。所述第一脉冲对应时钟装置的一个时钟周期。所述时钟装置用于驱动图6所示的方法的执行主体接收所述第一脉冲的二进制序列。
S602、根据所述第一报文生成第一二进制序列。
举例来说,S601的执行主体可以是所述分发器。所述分发器可以包括移位寄存器。所述移位寄存器可以对所述第一报文执行移位操作以得到所述第一二进制序列。
具体来说,所述第一二进制序列的比特的数量为Y,所述第一二进制序列的高X比特的值等于所述第一报文的比特的值,所述第一二进制序列的低C比特的值等于0,Y=X+C,Y、X和C为正整数。
S603、将所述第一二进制序列分发到第一CRC计算电路。
举例来说,所述第一CRC计算电路被配置以并行地计算Y比特的二进制序列的CRC。
S604、所述第一CRC计算电路计算所述第一二进制序列的CRC。
举例来说,所述第一CRC计算电路对应加扰多项式。所述第一CRC计算电路根据所述加扰多项式计算所述第一二进制序列的CRC。
在灵活以太网的应用场景中,以太网接口接收到的报文的比特的数量可能小于二进制序列的比特的数量。所述二进制序列是指CRC计算电路计算CRC时所述CRC对应的二进制序列。通过上述技术方案,可以计算出比特数量较少的报文的CRC。因此,上述技术方案可以较好的应用在灵活以太网的场景中。
图7为本发明实施例提供的一种CRC计算方法的流程示意图。所述方法的执行主体可以是MAC、MAC芯片、系统芯片、接收器或者多端口以太网设备。具体来说,所述方法的执行主体可以是所述MAC中的分发器以及所述MAC中的CRC计算电路。参见图7,所述方法包括:
S701、接收第一脉冲的二进制序列。
具体来说,所述第一脉冲的二进制序列包括第一报文的低X比特,所述第一报文的低X比特的最高有效位(英文:most significant bit,简称:MSB)是所述第一脉冲的二进制序列的MSB。
本领域的技术人员可以理解:所述低X比特位于所述第一脉冲的二进制序列的头部。
举例来说,S701的执行主体可以是MAC中的分发器。所述第一脉冲的二进制序列可以是所述MAC中的RS输出的。
举例来说,所述第一报文是以太网帧。所述第二报文是以太网帧。所述第一脉冲对应时钟装置的一个时钟周期。所述时钟装置用于驱动图7所示的方法的执行主体接收所述第一脉冲的二进制序列。
S702、向第一CRC计算电路分发所述第一报文的低X比特。
举例来说,S702的执行主体可以是所述分发器。
具体来说,所述第一脉冲的二进制序列的比特的数量为N,N为正整数。
举例来说,所述第一CRC计算电路被配置以计算M比特的二进制序列的CRC。M大于或者等于N,M为正整数。
S703、所述第一CRC计算电路计算所述第一报文的CRC。
S703可以通过两种方法实现。图8是S703的第一种实现方法的流程示意图。图9是S703的第二种实现方法的流程示意图。
参见图8,S703的第一种实现方法包括:
S801、接收第二脉冲的二进制序列。
具体来说,第二脉冲的二进制序列包括所述第一报文的高Y比特。X与Y的和等于M。所述第一报文的比特的数量是X与Y的和。
S802、生成第一二进制序列。
具体来说,所述第一二进制序列的比特的数量是M。所述第一二进制序列的高Y比特等于所述第一报文的高Y比特。所述第一二进制序列的低X比特等于0。举例来说,可以通过移位寄存器对所述第一报文的高Y比特执行移位操作以得到所述第一二进制序列。
S803、将所述第一二进制序列分发至所述第一CRC计算电路。
S804、所述第一CRC计算电路计算所述第一二进制序列的CRC以对所述第一CRC计算电路的CRC寄存器的值进行初始化。
S805、生成第二二进制序列。
具体来说,所述第二二进制序列的比特的数量是M。所述第二二进制序列的高X比特等于所述第一报文的低X比特。所述第二二进制序列的低Y比特等于0。举例来说,可以通过移位寄存器对所述第一报文的低X比特执行移位操作以得到所述第二二进制序列。
S806、将所述第二二进制序列分发至所述第一CRC计算电路。
S807、所述第一CRC计算电路以所述第一二进制序列的CRC为所述第一CRC计算电路的CRC寄存器的初始值计算所述第二二进制序列的CRC。
所述第二二进制序列的CRC等于所述第一报文的CRC。
参见图9,S703的第二种实现方法包括:
S901、接收第二脉冲的二进制序列。
具体来说,第二脉冲的二进制序列包括所述第一报文的高Y比特。X与Y的和等于S。S小于M。所述第一报文的比特的数量是X与Y的和。
S902、生成第一二进制序列。
具体来说,所述第一二进制序列的比特的数量是M。所述第一二进制序列的高Y比特等于所述第一报文的高Y比特。所述第一二进制序列的低(M-Y)比特等于0。举例来说,可以通过移位寄存器对所述第一报文的高Y比特执行移位操作以得到所述第一二进制序列。
S903、将所述第一二进制序列分发至所述第一CRC计算电路。
S904、所述第一CRC计算电路计算所述第一二进制序列的CRC以对所述第一CRC计算电路的CRC寄存器的值进行初始化。
S905、生成第二二进制序列。
具体来说,所述第二二进制序列的比特的数量是M。所述第二二进制序列的高X比特等于所述第一报文的低X比特。所述第二二进制序列的低(M-X)比特等于0。举例来说,可以通过移位寄存器对所述第一报文的低X比特执行移位操作以得到所述第二二进制序列。
S906、将所述第二二进制序列分发至所述第一CRC计算电路。
S907、所述第一CRC计算电路以所述第一二进制序列的CRC为所述第一CRC计算电路的CRC寄存器的初始值计算所述第二二进制序列的CRC。
所述第二二进制序列的CRC等于所述第一报文的CRC。
可选地,图7所示的技术方案中,所述第一脉冲的二进制序列包括第二报文,所述第二报文与第一报文的低X比特相邻。所述方法还包括:
向第二CRC计算电路分发所述第二报文。
所述第二CRC计算电路计算所述第二报文的CRC。
举例来说,所述第二CRC计算电路被配置以计算A比特的二进制序列的CRC。具体来说,A大于或者等于B。B等于N减去对齐块包含的比特的数量,所述对齐块对应报文的对齐粒度,A为正整数,B为正整数。
下文对对齐块机制进行举例:
网络处理器(英文:network processor,简称:NP)向MAC发送以太网帧前,需要对以太网帧进行分块操作,从而实现以太网帧的对齐。具体来说,以太网帧被分为多个数据块,每个数据块中包含的比特的数量为E。需要说明的是,一个数据块只能包含一个以太网帧的片段,不能包含两个或者两个以上的以太网帧的片段。举例来说,E可以是64,也可以是250。如果以太网帧被执行分块操作后,以太网帧中的最后一个块中的比特的数量小于E,则需要在最后一个块后面增加填充数据从而得到一个比特的数量为E的数据块。可以将添加了填充数据的数据块称为对齐块。对齐块中包含的比特的数量也是E。E可以用于表示报文的对齐粒度。
举例来说,所述第二报文中的比特的数量等于P。P小于或者等于A。在P等于A的场景中,所述第二CRC计算电路可以计算所述第二报文的CRC。在P小于A的场景中,可以对所述第二报文执行移位操作以生成新的二进制序列。所述新的二进制序列的比特的数量等于A。所述新的二进制序列的高P比特等于所述第二报文。所述新的二进制序列的低(A-P)比特等于0。所述第二CRC计算电路可以计算所述新的二进制序列的CRC。所述新的二进制序列的CRC等于所述第二报文的CRC。在P小于A的场景中如何计算所述第二报文的CRC,可以参考图6所示的方法。
可选地,上述技术方案中,所述第一脉冲的二进制序列包括第三报文,所述第三报文与所述第二报文相邻。所述方法还包括:
向第三CRC计算电路分发所述第三报文。
所述第三CRC计算电路计算所述第三报文的CRC。
举例来说,所述第三CRC计算电路被配置以计算C比特的二进制序列的CRC。
具体来说,C大于或者等于D。D等于N减去所述对齐块包含的比特的数量,并且减去最小长度的报文包含的比特的数量。C为正整数,D为正整数。
最小长度是指通信系统规定的报文的最小长度。举例来说,所述第一报文、所述第二报文和所述第三报文都属于以太网帧。根据电气和电子工程师学会(英文:Institute ofElectrical and Electronics Engineers,简称:IEEE)发布的802.3ba,40GE的标准中以太网帧的最小长度是512比特。100GE的标准中以太网帧的最小长度是512比特。
举例来说,所述第三报文的比特的数量等于Q。Q小于等于C。在Q等于C的场景中,所述第三CRC计算电路可以计算所述第三报文的CRC。在Q小于C的场景中,可以对所述第三报文执行移位操作以生成新的二进制序列。所述新的二进制序列的比特的数量等于C。所述新的二进制序列的高Q比特等于所述第三报文。所述新的二进制序列的低(C-Q)比特等于0。所述第三CRC计算电路可以计算所述新的二进制序列的CRC。所述新的二进制序列的CRC等于所述第三报文的CRC。在Q小于C的场景中如何计算所述第三报文的CRC,可以参考图6所示的方法。
图10为本发明实施例提供的一种计算CRC的方法的示意图。图10示出了上述技术方案中的所述第一脉冲的二进制序列的格式。其他信息可以是其他报文。例如第四报文。当然,第一脉冲的二进制序列也可以不包括其他信息。另外,图10示出了所述第一脉冲的二进制序列与CRC计算电路的关系。具体来说,所述第一报文的低X比特被分发到所述第一CRC计算电路。所述第二报文被分发到所述第二CRC计算电路。所述第三报文被分发到所述第三CRC计算电路。
上述技术方案中,所述第一CRC计算电路被配置以计算M比特的二进制序列的CRC。M大于或者等于N。所述第一脉冲的二进制序列的比特的数量为N。所述第二CRC计算电路被配置以计算A比特的二进制序列的CRC。具体来说,A大于或者等于B。B等于N减去对齐块包含的比特的数量。所述第三CRC计算电路被配置以计算C比特的二进制序列的CRC。C大于或者等于D。D等于N减去所述对齐块包含的比特的数量,并且减去最小长度的报文包含的比特的数量。因此,所述第一CRC计算电路、所述第二CRC计算电路以及所述第三CRC计算电路需要占用的硬件电路的资源可以呈现递减的趋势。因此,上述技术方案有助于节省硬件电路的资源。
本发明实施例提供了一种CRC计算电路,所述CRC计算电路包括图7所示的方法中的所述第一CRC计算电路、所述第二CRC计算电路以及所述第三CRC计算电路。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器,使得通过该计算机或其他可编程数据处理设备的处理器执行的指令可实现流程图中的一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图的一个流程或多个流程和/或方框图的一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种循环冗余校验码CRC计算方法,其特征在于,包括:
接收第一脉冲的二进制序列,所述第一脉冲的二进制序列包括第一报文和第二报文,所述第一报文的比特的数量为M,所述第二报文的比特的数量是N,M和N为正整数,M不等于N;
将所述第一报文分发到第一CRC计算电路,所述第一CRC计算电路计算所述第一报文的CRC;
将所述第二报文分发到第二CRC计算电路,所述第二CRC计算电路计算所述第二报文的CRC;
所述第一CRC计算电路包括第一数据异或计算电路,所述第一数据异或计算电路表示为:
其中,中的d0至dn-1分别是所述M比特的二进制序列的最低比特至最高比特,n取值为M;为生成多项式矩阵,pm-1至p0是所述第一CRC计算电路的CRC多项式的系数,m为生成多项式的阶数,为变换矩阵;
所述第二CRC计算电路包括第二数据异或计算电路,所述第二数据异或计算电路表示为:
其中,中的d0至dn-1分别是所述M比特的二进制序列的最低比特至最高比特,n取值为N;为生成多项式表项矩阵,pm-1至p0是所述第一CRC计算电路的CRC多项式的系数,m为生成多项式的阶数,
为变换矩阵。
2.如权利要求1所述的方法,其特征在于,所述第一脉冲的二进制序列还包括第三报文,所述第三报文的比特的数量为X,所述方法还包括:
根据所述第三报文生成第一二进制序列,所述第一二进制序列的比特的数量为Y,所述第一二进制序列的高X比特的值等于所述第三报文的比特的值,所述第一二进制序列的低C比特的值等于0,Y=X+C,Y、X和C为正整数;
将所述第一二进制序列分发到第三CRC计算电路,所述第三CRC计算电路计算所述第一二进制序列的CRC。
3.如权利要求1或2所述的方法,其特征在于,所述第一脉冲的二进制序列还包括第四报文的高A比特,所述第四报文的比特的数量是A+B,所述方法还包括:
根据所述第四报文的高A比特生成第二二进制序列,所述第二二进制序列的比特的数量为G,所述第二二进制序列的高A比特的值等于所述第四报文的高A比特的值,所述第二二进制序列的低H比特的值等于0,G=A+H,A、B、和G为正整数,H为大于或者等于0的整数,B小于或者等于G;
将所述第二二进制序列分发到第四CRC计算电路,所述第四CRC计算电路计算所述第二二进制序列的CRC以对所述第四CRC计算电路的CRC寄存器的值进行初始化;
接收第二脉冲的二进制序列,所述第二脉冲是所述第一脉冲的下一个脉冲,所述第二脉冲的二进制序列包括所述第四报文的低B比特;
将所述第四报文的低B比特分发到所述第四CRC计算电路;
所述第四CRC计算电路以所述第二二进制序列的CRC为所述第四CRC计算电路的CRC寄存器的初始值计算所述第四报文的低B比特的CRC。
4.如权利要求1或2所述的方法,其特征在于,所述第一脉冲的二进制序列还包括第四报文的高A比特,所述第四报文的比特的数量是A+B,所述方法还包括:
根据所述第四报文的高A比特生成第二二进制序列,所述第二二进制序列的比特的数量为G,所述第二二进制序列的高A比特的值等于所述第四报文的高A比特的值,所述第二二进制序列的低H比特的值等于0,G=A+H,A、B和G为正整数,H为大于或者等于0的整数;
将所述第二二进制序列分发到第四CRC计算电路,所述第四CRC计算电路计算所述第二二进制序列的CRC;
接收第二脉冲的二进制序列,所述第二脉冲是所述第一脉冲的下一个脉冲,所述第二脉冲的二进制序列包括所述第四报文的低B比特;
将所述第四报文的低B比特分发到第五CRC计算电路,所述第五CRC计算电路以所述第二二进制序列的CRC为所述第五CRC计算电路的CRC寄存器的初始值计算所述第四报文的低B比特的CRC。
5.一种循环冗余校验码CRC计算装置,其特征在于,包括:
接收单元,用于接收第一脉冲的二进制序列,所述第一脉冲的二进制序列包括第一报文和第二报文,所述第一报文的比特的数量为M,所述第二报文的比特的数量是N,M和N为正整数,M不等于N;
调度单元,用于将所述接收单元接收的所述第一报文分发到第一CRC计算电路,将所述接收单元接收的所述第二报文分发到第二CRC计算电路;
所述第一CRC计算电路,用于计算所述调度单元分发的所述第一报文的CRC;
所述第二CRC计算电路,用于计算所述调度单元分发的所述第二报文的CRC;
所述第一CRC计算电路包括第一数据异或计算电路,所述第一数据异或计算电路表示为:
其中,中的d0至dn-1分别是所述M比特的二进制序列的最低比特至最高比特,n取值为M;为生成多项式矩阵,pm-1至p0是所述第一CRC计算电路的CRC多项式的系数,m为生成多项式的阶数,
为变换矩阵;
所述第二CRC计算电路包括第二数据异或计算电路,所述第二数据异或计算电路表示为:
其中,中的d0至dn-1分别是所述M比特的二进制序列的最低比特至最高比特,n取值为N;为生成多项式表项矩阵,pm-1至p0是所述第一CRC计算电路的CRC多项式的系数,m为生成多项式的阶数,
为变换矩阵。
6.如权利要求5所述的装置,其特征在于,所述装置还包括第三CRC计算电路,所述第一脉冲的二进制序列还包括第三报文,所述第三报文的比特的数量为X;
所述调度单元还用于:
根据所述接收单元接收的所述第三报文生成第一二进制序列,所述第一二进制序列的比特的数量为Y,所述第一二进制序列的高X比特的值等于所述第三报文的比特的值,所述第一二进制序列的低C比特的值等于0,Y=X+C,Y、X和C为正整数;
将所述第一二进制序列分发到所述第三CRC计算电路;
所述第三CRC计算电路,用于计算所述调度单元分发的所述第一二进制序列的CRC。
7.如权利要求5或6所述的装置,其特征在于,所述装置还包括第四CRC计算电路,所述第一脉冲的二进制序列还包括第四报文的高A比特,所述第四报文的比特的数量是A+B;
所述调度单元还用于:
根据所述第四报文的高A比特生成第二二进制序列,所述第二二进制序列的比特的数量为G,所述第二二进制序列的高A比特的值等于所述第四报文的高A比特的值,所述第二二进制序列的低H比特的值等于0,G=A+H,A、B、和G为正整数,H为大于或者等于0的整数,B小于或者等于G;
将所述第二二进制序列分发到所述第四CRC计算电路;
所述第四CRC计算电路,用于计算所述第二二进制序列的CRC以对所述第四CRC计算电路的CRC寄存器的值进行初始化;
所述接收单元还用于,接收第二脉冲的二进制序列,所述第二脉冲是所述第一脉冲的下一个脉冲,所述第二脉冲的二进制序列包括所述第四报文的低B比特;
所述调度单元还用于,将所述第四报文的低B比特分发到所述第四CRC计算电路;
所述第四CRC计算电路,还用于以所述第二二进制序列的CRC为所述第四CRC计算电路的CRC寄存器的初始值计算所述第四报文的低B比特的CRC。
8.如权利要求5或6所述的装置,其特征在于,所述装置还包括第四CRC计算电路以及第五CRC计算电路,所述第一脉冲的二进制序列还包括第四报文的高A比特,所述第四报文的比特的数量是A+B;
所述调度单元还用于:
根据所述第四报文的高A比特生成第二二进制序列,所述第二二进制序列的比特的数量为G,所述第二二进制序列的高A比特的值等于所述第四报文的高A比特的值,所述第二二进制序列的低H比特的值等于0,G=A+H,A、B和G为正整数,H为大于或者等于0的整数;
将所述第二二进制序列分发到所述第四CRC计算电路;
所述第四CRC计算电路,用于根据所述调度单元分发的所述第二二进制序列计算所述第二二进制序列的CRC;
所述接收单元还用于,接收第二脉冲的二进制序列,所述第二脉冲是所述第一脉冲的下一个脉冲,所述第二脉冲的二进制序列包括所述第四报文的低B比特;
所述调度单元还用于,将所述第四报文的低B比特分发到第五CRC计算电路;
所述第五CRC计算电路,用于以所述第二二进制序列的CRC为所述第五CRC计算电路的CRC寄存器的初始值计算所述第四报文的低B比特的CRC。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/091138 WO2015100624A1 (zh) | 2013-12-31 | 2013-12-31 | 一种crc计算方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105264778A CN105264778A (zh) | 2016-01-20 |
CN105264778B true CN105264778B (zh) | 2019-04-19 |
Family
ID=53492974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380003207.8A Active CN105264778B (zh) | 2013-12-31 | 2013-12-31 | 一种crc计算方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10211852B2 (zh) |
EP (1) | EP3076555A4 (zh) |
CN (1) | CN105264778B (zh) |
WO (1) | WO2015100624A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11805053B2 (en) | 2016-07-06 | 2023-10-31 | Huawei Technologies Co., Ltd. | Data sending method and forwarding device |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112073283B (zh) | 2016-07-06 | 2023-07-21 | 华为技术有限公司 | 生成转发表的方法和转发设备 |
CN107888345B (zh) * | 2016-09-29 | 2022-02-18 | 中兴通讯股份有限公司 | 一种信息传输的方法和设备 |
CN113300876B (zh) | 2016-12-26 | 2022-09-02 | 华为技术有限公司 | Dcn报文处理方法、网络设备和网络系统 |
JP6977621B2 (ja) * | 2018-03-02 | 2021-12-08 | 日本電信電話株式会社 | 制御装置、及び制御方法 |
US10871992B2 (en) * | 2018-05-30 | 2020-12-22 | Texas Instruments Incorporated | Level two first-in-first-out transmission |
US11128742B2 (en) | 2019-03-08 | 2021-09-21 | Microsemi Storage Solutions, Inc. | Method for adapting a constant bit rate client signal into the path layer of a telecom signal |
US11108895B2 (en) * | 2019-08-23 | 2021-08-31 | Microchip Technology Inc. | Method for providing path signal overhead in the 64B/66B character stream of an itu-t metro transport network using micro-packets |
US11838111B2 (en) | 2021-06-30 | 2023-12-05 | Microchip Technology Inc. | System and method for performing rate adaptation of constant bit rate (CBR) client data with a variable number of idle blocks for transmission over a metro transport network (MTN) |
US11916662B2 (en) | 2021-06-30 | 2024-02-27 | Microchip Technology Inc. | System and method for performing rate adaptation of constant bit rate (CBR) client data with a fixed number of idle blocks for transmission over a metro transport network (MTN) |
US11736065B2 (en) | 2021-10-07 | 2023-08-22 | Microchip Technology Inc. | Method and apparatus for conveying clock-related information from a timing device |
US11799626B2 (en) | 2021-11-23 | 2023-10-24 | Microchip Technology Inc. | Method and apparatus for carrying constant bit rate (CBR) client signals |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6894993B2 (en) * | 2002-12-27 | 2005-05-17 | Arraycomm, Inc. | Detection and correction of channel swap in spatial division multiple access systems |
US20070016842A1 (en) | 2005-07-13 | 2007-01-18 | Microchip Technology Incorporated | Method and apparatus for configuring a cyclic redundancy check (CRC) generation circuit to perform CRC on a data stream |
US7761776B1 (en) * | 2005-11-03 | 2010-07-20 | Xilinx, Inc. | Method and apparatus for a modular, programmable cyclic redundancy check design |
US8340101B2 (en) * | 2006-09-25 | 2012-12-25 | Futurewei Technologies, Inc. | Multiplexed data stream payload format |
US8271859B2 (en) | 2007-07-18 | 2012-09-18 | Foundry Networks Llc | Segmented CRC design in high speed networks |
JP4831018B2 (ja) * | 2007-08-28 | 2011-12-07 | 日本電気株式会社 | 並列巡回符号生成装置および並列巡回符号検査装置 |
CN101702639B (zh) * | 2009-11-23 | 2012-12-19 | 成都市华为赛门铁克科技有限公司 | 循环冗余校验的校验值计算方法及装置 |
CN102487282A (zh) * | 2010-12-03 | 2012-06-06 | 上海华虹集成电路有限责任公司 | 一种实现可变长crc运算的电路 |
US8578240B1 (en) * | 2011-01-21 | 2013-11-05 | Juniper Networks, Inc. | CRC computation for packet length not multiple of data path width |
US8539326B1 (en) * | 2011-12-07 | 2013-09-17 | Xilinx, Inc. | Method and implementation of cyclic redundancy check for wide databus |
CN102831789B (zh) * | 2012-08-22 | 2014-09-17 | 宁波成电泰克电子信息技术发展有限公司 | 一种基于fpga的s模式ads_b系统的纠检错方法 |
CN103401565B (zh) * | 2013-07-09 | 2016-08-24 | 宁波成电泰克电子信息技术发展有限公司 | 一种s模式ads_b系统的纠检错方法 |
FR3016099B1 (fr) * | 2013-12-26 | 2017-05-05 | Grdf | Procede de reception utilisant un codage de controle d'integrite |
-
2013
- 2013-12-31 EP EP13900606.8A patent/EP3076555A4/en not_active Ceased
- 2013-12-31 WO PCT/CN2013/091138 patent/WO2015100624A1/zh active Application Filing
- 2013-12-31 CN CN201380003207.8A patent/CN105264778B/zh active Active
-
2016
- 2016-06-30 US US15/199,222 patent/US10211852B2/en active Active
Non-Patent Citations (1)
Title |
---|
万兆以太网MAC层控制器的FPGA设计与实现;张友亮,刘志军等;《计算机工程与应用》;20120630;第48卷(第6期);第78页第4.2节,图5 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11805053B2 (en) | 2016-07-06 | 2023-10-31 | Huawei Technologies Co., Ltd. | Data sending method and forwarding device |
Also Published As
Publication number | Publication date |
---|---|
US20160315634A1 (en) | 2016-10-27 |
EP3076555A1 (en) | 2016-10-05 |
US10211852B2 (en) | 2019-02-19 |
CN105264778A (zh) | 2016-01-20 |
WO2015100624A1 (zh) | 2015-07-09 |
EP3076555A4 (en) | 2017-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105264778B (zh) | 一种crc计算方法及装置 | |
EP3043497B1 (en) | Data processing method and device | |
US8468439B2 (en) | Speed-optimized computation of cyclic redundancy check codes | |
US8312362B1 (en) | Determining data transmission error and/or checking or confirming such error determinations | |
US9871677B2 (en) | Data processing method and apparatus | |
CN101366181B (zh) | 高速传输系统 | |
US9716605B2 (en) | Scrambling method and scrambling apparatus | |
US8271850B2 (en) | Fast low-density parity-check code encoder | |
CN101621353A (zh) | 一种随机线性网络编码的方法、装置和系统 | |
CN104639477A (zh) | 用于高速网络初始化的反向通道通信 | |
Lim et al. | A multi-lane MIPI CSI receiver for mobile camera applications | |
Anand | Design of high speed CRC algorithm for ethernet on FPGA using reduced lookup table algorithm | |
US10715360B2 (en) | Data scrambling method and scrambling apparatus | |
JP6665984B2 (ja) | 制御コードのためのポインタの生成を含む、受信されたシンボルを集約およびエンコーディングするための方法および装置 | |
CN102130744B (zh) | 计算循环冗余校验码的方法和装置 | |
Jena et al. | A novel bit stuffing technique for Controller Area Network (CAN) protocol | |
CN112313891A (zh) | 用于在以太网电缆上发送边信道比特的装置和方法 | |
Saleh et al. | Design and simulation of CRC encoder and decoder using VHDL | |
US20200381072A1 (en) | Cyclic redundancy check circuit, corresponding device and method | |
CN113821370A (zh) | 一种用于数据传输错误校验的高速crc产生方法和装置 | |
Juan et al. | Utilization of High-Speed DSP Algorithms of Cyclic Redundancy Checking (CRC-15) Encoder and Decoder for Controller Area Network | |
TW201725869A (zh) | 具時間序之隨機網路 | |
JP2018528640A (ja) | 高帯域幅レーンのシームレスな追加 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |