Microcontroller Error Detection via Sequential Diverse Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current methods for detecting hardware faults in CPUs and memories, such as lockstep and dual modular redundancy systems, fail to protect against software-caused failures and incur high hardware and software complexity, reduced performance, and increased costs.
Innovation Solution
A method where software programs are executed twice sequentially with different compilers or data representations in a single processor, allowing for comparison of results to detect hardware or software errors, reducing the need for dual hardware structures and complex programming.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If lockstep or dual modular redundancy systems are used for hardware fault detection, then detection capability is improved, but hardware complexity and cost increase
Solution Approach 1:
The patent combines multiple fault detection capabilities (lockstep execution, diversity execution, and result comparison) into a single processor system. Instead of using separate redundant processors, the invention merges these functions into one processor that can execute different code instances and compare results, thereby reducing hardware complexity while maintaining or improving fault detection capability.
Solution Approach 2:
The single processor is designed to perform multiple functions: it can execute primary code, execute diverse code instances with different data representations, perform self-testing, and compare results. This multi-functionality eliminates the need for dedicated redundant hardware while maintaining comprehensive fault detection coverage.
2Reliability
If redundant hardware configurations are used for fault detection, then reliability is improved, but power consumption increases
Solution Approach 1:
The patent merges fault detection functions into a single processor, eliminating the need for multiple redundant processors that would consume additional power. By combining diversity execution, lockstep execution, and result comparison in one processor, the system achieves comprehensive fault detection with lower power consumption compared to redundant hardware configurations.
3Measurement precision
If dual hardware structures are used for fault detection, then detection precision is improved, but software complexity increases
Solution Approach 1:
The patent changes data representation parameters (e.g., using different numeric formats, encodings, or precision levels) when executing diverse code instances. This parameter variation enables the system to detect errors that might be missed with identical data representations, improving detection precision while the single-processor architecture keeps software complexity manageable.
4Reliability
If lockstep memory layout is used for error correction, then memory reliability is improved, but effectively usable RAM is reduced
Solution Approach 1:
Instead of using lockstep memory layout that duplicates data across memory channels, the patent uses a single processor that executes multiple code instances and compares results. This approach achieves error detection and correction without duplicating memory storage, thereby maintaining full usable RAM capacity while providing comprehensive error protection.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A method of hardware (HW) error detection in a microcontroller unit (MCU) that comprises a memory unit, an interface member, and a central processing unit (CPU) comprising at least one processor core; the microcontroller unit is configured to execute software programs. The method comprises: - providing a software program instance A comprising executable machine instructions, - providing a modified version of program instance A, - storing input data for use by the software program instance A and the modified version of program instance A, - executing the program instance A and said modified version of the program instance A sequentially by said CPU, - storing output data of the executed program instances being the results of the execution of the respective program instance, - comparing the output data of the sequentially executed program instance A and the modified version of program instance A. If the results of the comparison are equal the stored output data is unlocked and the method comprises cyclically repeating the steps of storing input data, executing the program instance and said modified program instance, storing the results, and comparing the results, and if the results differ the method comprises - indicating a hardware error.