Partitioned Error Code Circuit for High-Bandwidth CRC Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High-bandwidth cyclic redundancy check (CRC) calculations in digital networks are inefficient due to serial computation methods, requiring unfeasibly high clock rates, and existing parallel computation methods struggle with odd numbers of words or separate error calculations for distinct data messages.

Innovation Solution

A circuit with interconnected XOR gates, or an XOR tree, performs parallel error code calculations for multiple words, selectively accumulating error codes based on control signals to handle varying data message sizes and word associations, allowing for efficient error code generation and output.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If serial computation methods are used for CRC calculations, then device complexity is reduced, but processing speed becomes unfeasibly slow for high-bandwidth applications

Engineering Contradiction:
Improveprocessing speedVSAvoiddevice complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The error code computation is divided into multiple parallel computation units, each handling a portion of the data words. This segmentation enables simultaneous processing of multiple words, dramatically increasing throughput while keeping individual computation units relatively simple in structure

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from serial (one-dimensional) processing to parallel (multi-dimensional) processing by introducing multiple computation units operating simultaneously. This dimensional change in processing architecture enables high-bandwidth handling without requiring excessively complex individual units

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Adaptability or versatility

If parallel computation methods are used for error codes, then processing speed increases, but handling odd numbers of words or separate data messages becomes difficult

Engineering Contradiction:
Improveadaptability to different data sizesVSAvoidcontrol circuit complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The control circuit dynamically configures the operation of computation units based on the number of words and message boundaries. This dynamic adaptability allows the same parallel architecture to efficiently handle both odd and even numbers of words, as well as multiple separate data messages, without requiring duplicate hardware

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The control circuit is designed to universally handle various data configurations (odd/even word counts, single/multiple messages) using the same parallel computation units. This multi-functionality eliminates the need for separate error calculation paths while maintaining processing efficiency

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

3Reliability

If separate error calculations are performed for each data message, then accuracy is maintained, but hardware duplication increases

Engineering Contradiction:
Improveerror detection accuracyVSAvoidhardware duplication
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Multiple computation units are merged into a single parallel processing system under unified control. This merging maintains separate error calculations for each data message (preserving accuracy) while sharing common control logic and accumulation resources (reducing hardware duplication)

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9471416B2Partitioned error code computation
Publication Date: 2016.10.18 MARVELL ASIA PTE LTD
  • US9471416B2 patent drawing
  • US9471416B2 patent drawing
  • US9471416B2 patent drawing

AI summary

A circuit provides parallel computation of error codes for simultaneously received words. The words received simultaneously may be portions of a common data message, or may be portions of distinct data messages. Accordingly, the circuit selectively accumulates the error codes based on their association with successive data words, outputting an accumulated error code when the last word of a data message has been received and the respective error code is calculated. Based on such information, the error codes calculated in parallel can be output independently, accumulated with one another, or accumulated with the error codes of a previous or subsequent calculation cycle. Thus, the circuit dynamically provides a single parallel error code generation of a given width or multiple parallel error code generations, each of a width divisible by the given width.