Lane-striped computation of packet CRC to maintain burst error properties

US10097203B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10097203-B2
Application numberUS-201514939813-A
CountryUS
Kind codeB2
Filing dateNov 12, 2015
Priority dateNov 12, 2015
Publication dateOct 9, 2018
Grant dateOct 9, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A CRC generator, a method for computing a CRC of a data packet, and an electronic system, such as a circuit board, are disclosed herein. In one embodiment the method is for computing the CRC of a data packet to be transmitted on a serial communications link having multiple lanes. In one embodiment, the CRC generator includes: (1) a CRC calculator configured to define a CRC calculation of a data packet in sequential order and perform parallelized computations, according to the sequential order and the multiple lanes, to generate sub-CRC values and (2) combination circuitry configured to combine the sub-CRC values to provide the CRC value for the packet.

First claim

Opening claim text (preview).

What is claimed is: 1. A cyclic redundancy check (CRC) generator of a serial communications link having multiple lanes, comprising: a CRC calculator configured to define a CRC calculation of a data packet, for transmission on said multiple lanes, in sequential order and to perform parallelized computations on each lane of said multiple lanes based on said sequential order to generate sub-CRC values; and combination circuitry configured to combine said sub-CRC values to provide a final packet CRC value for said packet that maintains sequential error detection for said packet over said transmission on said multiple lanes. 2. The CRC generator as recited in claim 1 wherein said CRC calculator is configured to define said CRC calculation in sequential order according to a symbol number and a flit number. 3. The CRC generator as recited in claim 1 wherein said CRC calculator is configured to perform said parallelized computations in real time. 4. The CRC generator as recited in claim 1 wherein said parallelized computations includes initializing all but one of said sub-CRC values calculations with leading zeros. 5. The CRC generator as recited in claim 1 wherein said parallelized computations employs a fixed value for leading zero initialization. 6. The CRC generator as recited in claim 4 wherein said CRC calculator is further configured to adjust each of said sub-CRC values for trailing zeros. 7. The CRC generator as recited in claim 1 wherein said combination circuitry is XOR logic circuitry. 8. A method for transmitting a data packet on a serial communications link having multiple lanes, comprising: defining a calculation for a cyclic redundancy check (CRC) value of a data packet in sequential order; calculating, in parallel, a sub-CRC value of said CRC value for each lane of said multiple lanes; and generating said CRC value for said data packet based on a combination of each said sub-CRC value, wherein said CRC value maintains sequential error detection for transmitting said data packet on said multiple lanes. 9. The method as recited in claim 8 wherein said calculating and said combining are performed in real time. 10. The method as recited in claim 8 further comprising employing leading zeros for calculating some of said sub-CRC values. 11. The method as recited in claim 8 wherein said calculating includes using a fixed value for leading zeros that is predetermined based on a maximum size of said data packet and a lane number. 12. The method as recited in claim 8 further comprising adjusting each said sub-CRC value for trailing zeros. 13. The method as recited in claim 12 wherein said adjusting includes employing a precomputed value for said trailing zeros. 14. The method as recited in claim 8 wherein at least part of said calculating is performed by linear feedback shift registers. 15. A circuit board, comprising: a first device; a second device; and a serial communications link having multiple lanes communicatively coupling said first device to said second device, said serial communications link including a transmitter having a cyclic redundancy check (CRC) generator comprising: a CRC calculator configured to define, in sequential order, a CRC of a data packet to transmit over said multiple lanes and to perform parallelized computations on each of said multiple lanes based on said sequential order to generate sub-CRC values; and combination circuitry configured to combine said sub-CRC values to provide a final packet CRC value for said data packet that maintains sequential error detection for said data packet in transmissions over said serial communications link. 16. The circuit board as recited in claim 15 wherein said CRC calculator is configured to define said CRC in sequential order according to a symbol number and a flit number. 17. The circuit board as recited in claim 15 wherein said CRC calculator is configured to perform said parallelized computations in real time. 18. The circuit board as recited in claim 15 wherein said parallelized computations include initializing some of said sub-CRC value calculations with leading zeros. 19. The circuit board as recited in claim 18 wherein a fixed value is used for said leading zero initializations. 20. The circuit board as recited in claim 15 wherein said CRC calculator is further configured to adjust each of said sub-CRCs for trailing zeros.

Assignees

Inventors

Classifications

  • Error detection codes · CPC title

  • to protect a block of data words, e.g. CRC or checksum (G06F11/1076 takes precedence; security arrangements for protecting computers or computer systems against unauthorized activity G06F21/00) · CPC title

  • Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit · CPC title

  • Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's · CPC title

  • H03M13/091Primary

    Parallel or block-wise CRC computation · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10097203B2 cover?
A CRC generator, a method for computing a CRC of a data packet, and an electronic system, such as a circuit board, are disclosed herein. In one embodiment the method is for computing the CRC of a data packet to be transmitted on a serial communications link having multiple lanes. In one embodiment, the CRC generator includes: (1) a CRC calculator configured to define a CRC calculation of a data…
Who is the assignee on this patent?
Nvidia Corp
What technology area does this patent fall under?
Primary CPC classification H03M13/091. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Oct 09 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).