Programmable CRC Instruction Architecture for Multi-Polynomial Computation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for Cyclic Redundancy Check (CRC) computations are limited by the need for dedicated circuits or lookup tables for each different n-bit polynomial, making them inflexible and inefficient for various applications such as storage protocols, compression, and graphics operations.

Innovation Solution

A flexible CRC instruction set architecture that supports n-bit polynomials up to a maximal degree of 32, allowing the polynomial to be provided as an operand, enabling computation using a programmable polynomial and reducing the need for multiple dedicated circuits or tables.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If dedicated CRC circuits or lookup tables are used for each different n-bit polynomial, then CRC computation accuracy is ensured, but device complexity and hardware requirements increase significantly

Engineering Contradiction:
ImproveCRC computation accuracyVSAvoidhardware requirements
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements a universal CRC computation unit that can handle multiple different n-bit polynomials through a programmable configuration mechanism. The system uses a single hardware unit with configurable parameters (polynomial degree n, data width, initial residue, final XOR mask) that can be programmed via instructions to support various CRC standards (CRC-8, CRC-16, CRC-32, etc.), eliminating the need for multiple dedicated circuits while maintaining computation accuracy for each polynomial type

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

Solution Approach 2:

The patent changes the operational parameters of the CRC computation unit dynamically through programmable inputs. By allowing the polynomial degree, generator polynomial coefficients, initial residue, and final XOR mask to be configured via instructions, the same hardware unit can adapt to different CRC requirements without physical reconfiguration, thus reducing hardware complexity while ensuring accurate computation for each specific polynomial

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If multiple dedicated CRC circuits are implemented to support various applications, then adaptability to different applications is improved, but device complexity and area increase

Engineering Contradiction:
Improvesupport for various applicationsVSAvoidnumber of dedicated circuits
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates a multi-functional CRC computation unit that can serve storage protocols, compression algorithms, graphics operations, and other applications through a single programmable hardware unit. The unit's ability to be configured with different polynomials and parameters via instructions enables it to adapt to various application requirements without requiring separate dedicated circuits for each application

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

Solution Approach 2:

The patent introduces dynamic configurability to the CRC unit through programmable parameters that can be changed via instructions during runtime. This allows the same hardware unit to dynamically adapt to different applications and polynomial requirements, providing high versatility without the need for multiple static dedicated circuits

Inventive Principle:
Principle #15Dynamics

3Speed

If separate lookup tables are used for each polynomial, then computation speed is maintained, but memory requirements and device area increase

Engineering Contradiction:
ImproveCRC computation speedVSAvoidmemory requirements
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent extracts the polynomial-specific configuration data from large dedicated lookup tables and represents it compactly through programmable parameters (polynomial degree n, generator coefficients, initial residue, final XOR mask). This allows the system to maintain fast computation by using pre-computed coefficients stored in compact form while eliminating the need for large separate lookup tables for each polynomial

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8464125B2Instruction-set architecture for programmable cyclic redundancy check (CRC) computations
Publication Date: 2013.06.11 TAHOE RES LTD
  • US8464125B2 patent drawing
  • US8464125B2 patent drawing
  • US8464125B2 patent drawing

AI summary

A method and apparatus to perform Cyclic Redundancy Check (CRC) operations on a data block using a plurality of different n-bit polynomials is provided. A flexible CRC instruction performs a CRC operation using a programmable n-bit polynomial. The n-bit polynomial is provided to the CRC instruction by storing the n-bit polynomial in one of two operands.