CRC Calculation for Non-Aligned Packet Lengths in Wide Data Paths

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing error detection techniques, such as cyclic redundancy check (CRC), face challenges when computing CRC values for packets with lengths that are not multiples of the data path width, leading to incorrect CRC values.

Innovation Solution

A method involving a communication device that determines a packet remainder, appends zeros to generate a packet segment of equal data path width, computes a first CRC value, reverses bits, performs modulo 2 multiplication with a reciprocal CRC polynomial, and further reverses bits to obtain the correct CRC value, utilizing a lookup table for pre-computed values.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If standard CRC computation is used for packets with length not multiple of data path width, then computation process is simple, but CRC value becomes incorrect

Engineering Contradiction:
ImproveCRC value accuracyVSAvoidcomputation process complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The packet is divided into segments of data path width size, with the last segment being the remainder that requires special handling. This segmentation allows the complex remainder processing to be isolated and managed separately from the standard processing of full-width segments.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Zero bits are appended to the remainder packet segment before CRC computation to make its length equal to the data path width. This preliminary action prepares the data in advance to match the required processing width, enabling correct CRC computation for variable-length packets.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 3:

The remainder packet's length parameter is changed by appending zero bits until it equals the data path width. This parameter transformation allows the remainder to be processed using the same CRC computation logic as full-width segments, ensuring accuracy.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If packet remainder is processed without zero appending, then processing is straightforward, but error detection reliability decreases

Engineering Contradiction:
Improveerror detection reliabilityVSAvoidprocessing simplicity
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

Zero bits are appended to the remainder in advance to prepare it for standard CRC processing. This preliminary padding ensures that the remainder segment meets the minimum width requirement for reliable CRC computation without complicating the overall processing flow.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

By appending zeros to make the remainder equal to data path width, the same CRC computation function can handle both full-width segments and remainder segments uniformly. This universal approach maintains reliability while simplifying the processing logic.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Measurement precision

If CRC computation handles variable packet lengths directly, then adaptability is good, but computation accuracy deteriorates

Engineering Contradiction:
ImproveCRC computation accuracyVSAvoidpacket length adaptability
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The system adapts to variable packet lengths by performing a preliminary check to identify the remainder segment, then appending appropriate zero bits to make it match the data path width. This preliminary adaptation ensures accurate CRC computation for any packet length.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The remainder packet's length parameter is dynamically adjusted by appending zero bits to match the data path width. This parameter transformation maintains computation accuracy while preserving adaptability to different packet lengths.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8578240B1CRC computation for packet length not multiple of data path width
Publication Date: 2013.11.05 JUNIPER NETWORKS INC
  • US8578240B1 patent drawing
  • US8578240B1 patent drawing
  • US8578240B1 patent drawing

AI summary

A communication device may include a cyclic redundancy check (CRC) calculator. The CRC calculator may determine a packet remainder of a packet based on a data path width associated with the communication device; append zeros to the packet remainder to generate an appended packet remainder equal in size to the data path width; compute a first CRC value for the appended packet; reverse bits of the computed first CRC value to obtain a reversed CRC value; multiply the bit reversed CRC value with a value based on a reciprocal CRC polynomial to generate a multiplication product; compute a second CRC value for the generated multiplication product based on the reciprocal CRC polynomial; and reverse bits of the second CRC value to generate a CRC for the packet.