Packet CRC Offload Using Shifted Lookup Table Recalculation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing error detection and correction techniques, such as cyclic redundancy check (CRC) calculations, face challenges in efficiently recalculating CRC sums when data is altered or removed, leading to overhead and performance issues in both hardware and software solutions, especially in high-speed networks.

Innovation Solution

A CRC hardware mechanism and methodology that offloads computations by transforming and projecting computed CRC values using distance lookup tables to simulate the effective CRC contribution of altered data stream packet portions, allowing for efficient recalculations without recalculating the entire data stream packet.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If CRC calculation is performed in hardware using a dedicated hardware engine, then calculation speed is improved, but system complexity and overhead increase

Engineering Contradiction:
ImproveCRC calculation speedVSAvoidsystem complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent extracts the CRC calculation function from the main processing system and implements it as a separate, dedicated hardware engine. This allows the CRC calculation to be performed independently with optimized hardware logic, improving speed while isolating the complexity to a modular component that can be managed separately from the main system.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a dedicated hardware engine as an intermediary component between the data transmission system and the main processor. This intermediary handles the computationally intensive CRC calculations, freeing the main system from complexity while maintaining accurate error detection capabilities.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If CRC calculation is performed in software using lookup table schemes, then implementation flexibility is improved, but processing speed and resource consumption deteriorate

Engineering Contradiction:
Improveimplementation flexibilityVSAvoidnetwork performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent replaces the software-based lookup table mechanism with a dedicated hardware engine that performs CRC calculations using hardware logic circuits. This substitution eliminates the computational overhead and memory access requirements of software implementations, dramatically improving processing speed and network performance while maintaining the flexibility of configurable CRC algorithms.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Reliability

If complete CRC recalculation is performed over the entire data block when data is modified, then accuracy is improved, but computational overhead and time consumption increase

Engineering Contradiction:
Improveerror detection accuracyVSAvoidrecalculation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the data block into multiple portions and calculates CRC values for each segment independently using the dedicated hardware engine. When data modification occurs, only the affected segment's CRC needs to be recalculated rather than the entire data block, significantly reducing recalculation time while maintaining overall error detection accuracy through combination of segment CRCs.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9680605B2Method of offloading cyclic redundancy check on portions of a packet
Publication Date: 2017.06.13 NXP USA INC
  • US9680605B2 patent drawing
  • US9680605B2 patent drawing
  • US9680605B2 patent drawing

AI summary

A method and apparatus are provided for computing a CRC value for a data stream packet with a modified portion and an unmodified portion extending a distance to the end of the data stream packet by computing a first CRC value from the unmodified portion, computing a second CRC value from the modified portion, adjusting the second CRC value based on a shift length equal to the distance of the unmodified portion to compute a perspective shifted second CRC value by using a fixed number of distance lookup table operations, and generating an updated CRC value from the first CRC value and perspective shifted second CRC value, thereby avoiding recalculating a complete CRC value based on an entirety of the data stream packet.