XOR-Based CRC Verification for RAID Data Integrity
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If CRC verification is performed on each data block, then data integrity is ensured, but CPU cycle consumption increases to 60% or more
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.
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.
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
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.
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.
Data Source
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.


