Shared Checksum Circuit for Multi-Block CRC Calculation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data handling systems require large electronic circuits or code to calculate multiple checksums for various data blocks, especially when multiple layers of error checking are involved, leading to increased complexity and size as the number of checksums grows.

Innovation Solution

A method and apparatus that calculates checksums by computing the difference between two blocks of data, where one block has a prepended sequence, allowing the common portion to be calculated once and used to derive both checksums, thereby reducing the overall circuit size and complexity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple checksums are calculated for multiple layers using separate circuits, then error detection capability is improved, but device complexity increases

Engineering Contradiction:
Improveerror detection capabilityVSAvoidcircuit complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent combines multiple checksum calculation circuits into a single shared circuit. The same CRC calculation circuit is used to compute checksums for different data blocks (data block 1 with end-to-end checksum, data block 2 with link checksum) by resetting the circuit between calculations. This merging approach maintains the ability to detect errors in multiple layers while significantly reducing the overall circuit complexity compared to having separate dedicated circuits for each checksum.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The CRC calculation circuit is designed as a universal multi-functional unit that can calculate different types of checksums (end-to-end checksum, link checksum) for multiple data blocks. The circuit achieves multi-functionality through reset mechanisms and configurable input data, allowing one circuit to perform the work of what would traditionally require multiple separate circuits, thereby reducing device complexity while maintaining comprehensive error detection capability.

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

2Measurement precision

If separate circuits calculate each checksum independently, then calculation accuracy is maintained, but processing speed decreases

Engineering Contradiction:
Improvechecksum calculation accuracyVSAvoidprocessing speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent merges multiple checksum calculation operations into a single shared circuit that processes data blocks sequentially. Instead of having multiple independent circuits operating in parallel (which would maintain accuracy but increase complexity), the shared circuit processes each data block in sequence with reset operations, achieving a balance between accuracy maintenance and improved processing efficiency through resource sharing.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The circuit performs preliminary reset operations between checksum calculations to ensure accuracy is maintained. By clearing the accumulator and shift register before each new checksum calculation, the circuit guarantees calculation accuracy while using the same hardware resources for multiple calculations, thereby improving overall processing speed compared to having multiple dedicated circuits.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If the circuit supports multiple data block lengths, then adaptability is improved, but device complexity increases

Engineering Contradiction:
Improvedata block length supportVSAvoidcircuit size
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The CRC calculation circuit is designed as a universal unit that can handle multiple data block lengths (e.g., 512 bytes, 1024 bytes, 2048 bytes) without requiring separate dedicated circuits for each length. The circuit achieves this versatility through configurable input data loading and reset mechanisms, allowing the same hardware to adapt to different block sizes by simply reloading the appropriate data and resetting the accumulation registers, thereby avoiding the complexity increase that would result from having separate circuits for each block length.

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

Solution Approach 2:

The circuit supports multiple data block lengths by changing operational parameters (data input size, reset timing, accumulation count) rather than changing the physical circuit structure. The same CRC polynomial and calculation logic are used, but the circuit adapts to different block lengths by adjusting how data is loaded and processed, maintaining circuit simplicity while achieving high adaptability to various data block sizes.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7631251B2Method and apparatus for calculating checksums
Publication Date: 2009.12.08 VALTRUS INNOVATIONS LTD
  • US7631251B2 patent drawing
  • US7631251B2 patent drawing
  • US7631251B2 patent drawing

AI summary

A method for calculating checksums includes calculating a first checksum based at least in part on a first block of data, and calculating a partial checksum based at least in part on a second block of data. The second block of data comprises a data portion followed by a fill portion, the fill portion having a length equal to a length of the first block of data. The first checksum and partial checksum are combined to form a second checksum for a total block of data, the total block of data comprising the first block of data and the data portion of the second block of data.