Generic CRC Coding Architecture for Multi-Length Data Blocks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional CRC coding techniques require multiple physical implementations for different data block lengths and types, leading to increased area usage and slowed timing due to the need for dedicated hardware for each supported length and type.

Innovation Solution

A method and apparatus that utilize a generic coder configured to perform CRC coding based on selected CRC coding modules, which include data and CRC matrices, allowing a single coder to handle various CRC types and lengths through exclusive-OR operations, reducing the need for multiple hardware implementations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple physical CRC implementations are used for different data block lengths and types, then support for various CRC types and lengths is achieved, but area usage increases and timing slows down

Engineering Contradiction:
Improvesupport for various CRC types and lengthsVSAvoidarea usage
Core Design Contradiction:
Adaptability or versatilityVSArea of stationary object

Solution Approach 1:

The patent implements a single universal CRC coder that can perform multiple CRC coding operations for different data block lengths and types by dynamically configuring the coding parameters. Instead of providing separate physical implementations for each CRC type (CRC-16, CRC-32, CRC-64, etc.), the system uses one reusable coder instance that adapts its behavior based on the selected coding module, thereby reducing area usage while maintaining support for various CRC standards.

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

Solution Approach 2:

The system employs dynamic configuration of the CRC coder through selectable coding modules that define different generator polynomials and parameters for various CRC types. The coder can be reconfigured at runtime to handle different data block lengths and CRC types by loading appropriate coding parameters, enabling adaptability without requiring multiple static hardware implementations.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If multiple physical CRC implementations are used for different data block lengths and types, then support for various CRC types and lengths is achieved, but timing performance deteriorates

Engineering Contradiction:
Improvesupport for various CRC types and lengthsVSAvoidtiming performance
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The single universal CRC coder eliminates timing delays associated with switching between multiple dedicated hardware implementations. By using one optimized coder that can be reconfigured through parameter loading rather than physical switching, the system maintains consistent timing performance across different CRC types and lengths.

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

Solution Approach 2:

The dynamic parameter configuration allows the coder to optimize its operation for each specific CRC type without requiring physical reconfiguration. The system loads appropriate generator polynomials and parameters into the same hardware structure, maintaining timing efficiency while adapting to different coding requirements.

Inventive Principle:
Principle #15Dynamics

3Area of stationary object

If a single generic coder is used for multiple CRC types and lengths, then area usage is reduced, but complexity of configuration increases

Engineering Contradiction:
Improvearea usageVSAvoidconfiguration complexity
Core Design Contradiction:
Area of stationary objectVSDevice complexity

Solution Approach 1:

The system segments the CRC coding functionality into separate selectable modules, each defining specific coding parameters for different CRC types and lengths. This modular approach allows the configuration complexity to be managed by organizing parameters into discrete, independently selectable units rather than requiring complex interlinked configurations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary layer in the form of pre-defined coding modules that act as mediators between the user and the generic coder. These modules encapsulate the configuration parameters and selection logic, simplifying the user interface while maintaining the flexibility of the universal coder. The intermediary handles the complexity of parameter management internally.

Inventive Principle:
Principle #24Intermediary (Mediator)

Applied Scientific Principles

This section explains which scientific principles are used to turn an abstract innovation direction into a practical engineering solution.

Function Achieved in This Case

This approach efficiently uses area and improves speed by allowing a single generic coder to handle multiple CRC types and lengths, reducing the physical area required and minimizing timing delays.

Implementation Method 1

A CRC code, also typically referred to as a CRC value or simply a CRC, is the remainder of the division of data by a polynomial, called a generator polynomial. CRC logic which generates a CRC may be implemented using hardware, such as exclusive-or (XOR) gates.

Methodology Applied
Scientific EffectExclusive-OR logic operation:

Data Source

PatentUS8510626B2Data coding apparatus and methods
Publication Date: 2013.08.13 REALTEK SINGAPORE PTE LTD
  • US8510626B2 patent drawing
  • US8510626B2 patent drawing
  • US8510626B2 patent drawing

AI summary

Data encoding apparatus and methods are disclosed. A Cyclic Redundancy Check (CRC) coding module is selected, from a plurality of different CRC coding modules, for coding a block of information. A generic coder, which is configurable to perform CRC coding based on any of the plurality of different CRC coding modules, is configured to perform CRC coding for the block of information based on the selected CRC coding module. A block of information for which a coding operation is to be performed may be segmented into a plurality of segments having respective lengths. Respective generic coders may be configured to perform the coding operation for the plurality of segments. In this case, a result of the coding operation for the block of information may be determined based on results of the coding operations for the plurality of data segments.