XOR-Based CRC Verification for RAID Data Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current CRC verification techniques significantly slow down data transfer rates due to the inefficiency of computing cyclic redundancy checks (CRCs) for each data block, especially in CPU local transfer mode, where CRC computation can consume up to 60% of total CPU cycles.

Innovation Solution

The method involves performing XOR operations on data blocks and their associated CRCs to generate XOR results, which are then compared to determine errors, reducing the computational overhead by using XOR operations that are faster than traditional CRC computations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional CRC computation is used for each data block, then error detection accuracy is maintained, but data transfer speed significantly decreases

Engineering Contradiction:
Improveerror detection accuracyVSAvoiddata transfer speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the error detection process into two parts: (1) XOR operation on data blocks during transfer, and (2) CRC computation only on the XOR result. This segmentation allows the majority of data transfer to proceed without full CRC computation, while still maintaining error detection capability through the final CRC check on the segmented result.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary XOR operations on data blocks before the final CRC computation. By pre-processing data with XOR operations during transfer, the system reduces the amount of data requiring full CRC computation, thereby speeding up the overall process while maintaining reliability.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If CRC verification is performed on each data block, then data integrity is ensured, but CPU cycle consumption increases to 60% or more

Engineering Contradiction:
Improvedata integrityVSAvoidCPU cycle consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent segments the CRC verification workload by applying XOR operations to combine multiple data blocks first, then performing CRC computation only on the combined result rather than on each individual block. This segmentation dramatically reduces the total CPU cycles required for verification.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses XOR operations as a preliminary copying/combining mechanism that preserves error detection capability while reducing computational overhead. The XOR combination creates a representative copy of the data set that can be verified with a single CRC computation.

Inventive Principle:
Principle #26Copying

3Measurement precision

If full CRC computation is performed for each data block, then verification accuracy is maintained, but verification time increases by a factor of 10 compared to simple data copy

Engineering Contradiction:
Improveverification accuracyVSAvoidverification time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary XOR operations to combine data blocks before the final CRC verification. This pre-processing step maintains verification accuracy by preserving error information while reducing the computational time required for the actual CRC computation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent merges multiple data blocks through XOR operations into a single combined result that can be verified with one CRC computation. This merging approach maintains the ability to detect errors in the original blocks while reducing verification time from 350ns per block to a single computation for all blocks.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8307271B1Fast verification of data block cycle redundancy checks
Publication Date: 2012.11.06 EMC IP HLDG CO LLC
  • US8307271B1 patent drawing
  • US8307271B1 patent drawing
  • US8307271B1 patent drawing

AI summary

Detecting data errors in connection with a data transfer process includes performing an XOR operation on a plurality of data blocks to obtain a data block XOR result. An XOR operation may be performed on a plurality of cyclic redundancy check (CRC) codes associated with the plurality of data blocks to obtain a CRC XOR result. The data block XOR result and the CRC XOR result may be used to determine whether an error exists in the plurality of data blocks. The system may be used in connection with local IO transfers and in connection with local CPU XOR operations for a RAID system in which data may be mirrored, striped or otherwise distributed across multiple storage devices.