Compiler Safety Mechanism for Multi-Core Data Integrity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In safety-critical systems like automotive and industrial applications, existing technologies face challenges in ensuring data integrity across multiple processor cores, which can lead to malfunctions and accidents due to improper deployment of safety systems caused by data corruption, especially when cores operate out of phase or with different clock sources.
Innovation Solution
A method utilizing multiple independent processor cores to compare critical variables through a queued comparator, allowing cores to operate out of phase and reducing overhead, where critical sections of code are marked and checked for equality, triggering corrective actions if discrepancies are detected, and implementing compiler-generated checking code to ensure safety compliance and system health.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If multiple processor cores operate out of phase with independent clock sources, then system flexibility and redundancy are improved, but timing synchronization and data integrity become more difficult to maintain
Solution Approach 1:
The system divides the safety-critical code execution into separate segments handled by multiple independent processor cores, each operating with its own clock source. The segmentation allows cores to execute independently while a comparator mechanism ensures data integrity by comparing results from each core segment.
Solution Approach 2:
A comparator mechanism acts as an intermediary between the independent processor cores, receiving results from each core and verifying their equality. This intermediary component enables cores to operate independently with different clock sources while maintaining data integrity through comparison.
2Reliability
If traditional safety checking mechanisms are implemented, then data integrity is improved, but system overhead and complexity increase
Solution Approach 1:
The system creates copies of the safety-critical code to execute on multiple independent processor cores simultaneously. This copying approach enables safety checking through comparison of results from different copies, reducing the need for complex inter-core communication and synchronization mechanisms.
Solution Approach 2:
The same safety-critical code is executed on multiple processor cores, ensuring homogeneous processing of critical functions. This homogeneity allows for straightforward comparison of results to verify data integrity, simplifying the safety checking mechanism while maintaining reliability.
3Loss of time
If lockstep execution is used, then timing synchronization is improved, but system flexibility and independence of cores are reduced
Solution Approach 1:
The system performs preliminary actions by executing safety-critical code on multiple independent cores before comparison is needed. Each core independently processes the code with its own timing, and results are compared afterward, eliminating the need for continuous lockstep synchronization while maintaining safety.
Solution Approach 2:
Instead of continuous lockstep execution, the system uses periodic comparison of results from independent cores. The cores operate independently with their own clock sources, and the comparator periodically checks for equality of results, providing timing flexibility while maintaining data integrity through periodic verification.
Data Source
AI summary
An approach is provided in which a set of common instructions are each executed by at least two processor cores. Each of the processor cores queues values resulting from at least one of the common instructions (a critical section). The queued values are compared by a queued comparator. An exception is issued in response to the comparison revealing unequal values having been queued by the processor cores.


