Generic CRC Coding Architecture for Multi-Length Data Blocks
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
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.
Data Source
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.


