Software Lock Step for Asymmetrical SoC Safety
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
There is a need for a software-based lock step solution for end user application software on System on Chip (SoC) with dual asymmetrical CPUs that were not designed with hardware-built lock step schemes, as existing hardware solutions are not applicable and standard software solutions are not available.
Innovation Solution
A software architecture that partitions the application software into startup and runtime components, with a second runtime software executing on a less capable processing unit, allowing for comparison of outputs to detect failures and implement a software-based lock step scheme with minimal modification to the original software, leveraging the asymmetrical characteristics of the CPUs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a hardware-based lock step scheme is implemented, then reliability is improved, but device complexity increases and adaptability decreases for SoCs not designed with hardware lock step
Solution Approach 1:
The patent replaces hardware-based lock step mechanisms with a software-based implementation. The software lock step scheme uses virtual machine monitors and software-based comparison logic to achieve failure detection without requiring hardware modifications, thus maintaining compatibility with existing SoC architectures while providing reliability benefits.
Solution Approach 2:
The software-based lock step solution provides universal applicability across different SoC architectures. By implementing the lock step functionality through software rather than hardware, the solution can be deployed on various existing SoC platforms without requiring specific hardware features, making it adaptable to both asymmetrical and symmetrical processor configurations.
2Adaptability or versatility
If a software-based lock step solution is implemented on asymmetrical CPUs, then adaptability is improved, but device complexity increases due to multiple runtime software versions
Solution Approach 1:
The patent segments the software architecture into distinct components: a first runtime software executing on the first processing unit, a second runtime software executing on the second processing unit, and a virtual machine monitor that coordinates between them. This segmentation allows each component to be optimized independently for its specific processor while maintaining overall system coherence through the virtual machine monitor.
Solution Approach 2:
The virtual machine monitor serves as an intermediary layer between the two runtime software versions and the hardware processors. It manages the execution context switching, handles communication between the different runtime environments, and coordinates the lock step comparison operations, thereby simplifying the overall system architecture despite the presence of multiple software versions.
3Reliability
If two runtime software versions are executed for lock step comparison, then reliability is improved through failure detection, but productivity decreases due to additional execution overhead
Solution Approach 1:
The patent implements periodic lock step comparison at defined checkpoints during execution rather than continuous comparison. The virtual machine monitor periodically suspends execution, compares the state of both runtime software instances, and resumes execution. This periodic approach maintains reliability through regular verification while minimizing the performance overhead by limiting comparison frequency to critical checkpoints.
Solution Approach 2:
The system performs partial lock step comparison by selectively comparing only critical state variables and registers at each checkpoint rather than the entire system state. This partial comparison approach provides sufficient reliability for safety-critical functions while reducing the computational overhead and execution time penalty compared to full state comparison.
Data Source
AI summary
Method for monitoring the execution of an application software implementing a safety function, comprising implementing a software-based lock step on a dual asymmetrical processing units structure, the processing units structure including a first processing unit and a second processing unit having, due to the asymmetry, a different hardware structure and/or lower computations capability with respect to the first processing unit. A first runtime software is executed on the first processor while a second runtime software being a potentially modified version of the first runtime software and having the same behavior as that of the first runtime software, is executed on the second processor.


