Parallel CRC Logic Using Masking and Parity for Small Footprint
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Software-based cyclic redundancy check (CRC) calculations in embedded microcontroller systems can consume significant processing time and memory, exceeding the limited resources available, making them inefficient for error detection in communication systems.
Innovation Solution
A parallel CRC generation method that replaces multiple exclusive-OR operations with bit-mask and parity operations, processed in parallel pipelines, allowing for faster processing and higher throughput by performing masking and parity operations on multiple bits simultaneously.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If software-based CRC calculation is used, then error detection capability is provided, but processing time and memory consumption increase significantly
Solution Approach 1:
The patent divides the CRC calculation into multiple parallel segments or pipelines. Each pipeline processes a portion of the input data concurrently using simplified logic, replacing sequential exclusive-OR operations with parallel bit-mask and parity operations. This segmentation enables simultaneous processing of multiple data bits, significantly reducing overall processing time while maintaining error detection reliability.
Solution Approach 2:
The patent substitutes traditional mechanical sequential logic operations (exclusive-OR gates processing bits one by one) with optimized bitwise operations (bit-mask and parity operations) that can execute in parallel. This substitution transforms the computational mechanism from sequential to parallel execution, reducing processing time without sacrificing the mathematical correctness of CRC error detection.
2Reliability
If software-based CRC calculation is used, then error detection capability is provided, but memory consumption increases
Solution Approach 1:
By segmenting the CRC calculation into parallel pipelines with simplified logic stages, the patent reduces the memory required for storing intermediate calculation states. Each pipeline segment uses minimal local memory for its specific operation, and results are combined at the end, rather than requiring large memory buffers for sequential processing of all data bits.
Solution Approach 2:
The patent uses bit-mask operations that create and manipulate compact binary representations of data segments. Instead of storing large amounts of intermediate computational data in memory, the bit-mask approach creates compact bitwise copies and transformations that can be processed in-place, significantly reducing memory consumption while preserving error detection capability.
3Measurement precision
If traditional sequential CRC operations are used, then calculation accuracy is maintained, but processing speed decreases
Solution Approach 1:
The patent replaces sequential mechanical logic operations with parallel bitwise operations. The bit-mask and parity operations maintain the mathematical equivalence of traditional CRC calculations, ensuring calculation accuracy, while their parallel execution capability dramatically increases processing speed. The substitution preserves the polynomial division mathematics of CRC while optimizing the implementation mechanism.
Solution Approach 2:
The patent transitions from one-dimensional sequential bit processing to multi-dimensional parallel processing by operating on multiple data bits simultaneously using bitwise operations. This dimensional change allows the system to process entire words or blocks of data in parallel while maintaining the mathematical integrity of the CRC calculation, achieving both accuracy and speed.
Data Source
AI summary
A cyclic redundancy check (CRC) can be determined with fewer resources within a communication system. A CRC interface component is configured to receive an array of bits as an input via an N-bit data pathway, and receive a CRC previous output from a feedback component coupled to a CRC output, in which N can comprise an integer greater than one. A parallel CRC component can be configured to generate a CRC current output from a plurality of parallel processing pipelines that are configured to concurrently process at least a part of the array of bits and the CRC previous output with a set of parallel CRC logic operations. The set of CRC logic operations can include a masking operation and a parity operation.


