Multicore Safety Controller Using Diverse Programs for Fault Diagnosis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The increasing complexity of processor architectures in industrial controllers makes it difficult to diagnose errors in real-time, and the cost of implementing full redundancy and diverse software is high, particularly due to the need for multiple microprocessors and separate development teams.
Innovation Solution
A safety industrial controller utilizing a multicore processor with two cores to provide diagnostic functions, where one core executes a first version of the control program and the other executes a second version in parallel to detect failures, and a method to automatically generate diverse software by modifying a control program to execute on inverted data, reducing the need for separate development teams.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If full redundancy with separate microprocessors is implemented to meet SIL-3 standards, then safety integrity and fault detection capability are improved, but system cost and hardware complexity increase significantly
Solution Approach 1:
The patent merges the redundancy function into a single multicore processor by executing diverse control programs on different cores simultaneously. Core 1 executes control program A while core 2 executes control program B, and their outputs are compared for fault detection. This combining of redundant functionality into one processor reduces hardware complexity while maintaining safety integrity.
Solution Approach 2:
The multicore processor performs multiple functions: it executes the primary control program, executes a diverse backup control program, and performs output comparison for fault detection - all within a single processor unit. This multi-functionality eliminates the need for separate dedicated redundant hardware while achieving SIL-3 safety requirements.
2Reliability
If diverse control programs are developed by separate development teams, then software diversity and fault detection capability are improved, but development cost and time increase
Solution Approach 1:
Instead of manually creating diverse programs through separate development teams, the patent inverts the approach by automatically generating diverse control programs from a single source program using code transformation techniques. This inversion of the development process achieves software diversity while dramatically reducing development cost and time.
Solution Approach 2:
The patent creates diverse control programs by copying and transforming a single control program rather than developing separate programs from scratch. Code transformation techniques generate variant versions with different control logic that produce different outputs under certain conditions, providing software diversity at minimal development cost.
3Speed
If sophisticated processor architectures with out-of-order execution and speculative execution are used to increase processing speed, then execution speed is improved, but diagnostic capability and error detection become extremely difficult
Solution Approach 1:
The patent introduces an intermediary comparison mechanism that mediates between the sophisticated processor's complex execution and the need for simple fault detection. By comparing outputs from diverse control programs executed on different cores, the system creates a straightforward diagnostic interface that works effectively despite the underlying processor complexity.
Data Source
AI summary
Different cores of a multicore processor are used to provide diagnostics of sophisticated hardware without full redundancy by static assignment of the cores during individual cycles of the control program and comparison of the outputs. A method of automatically generating diverse programs for execution by these cores may modify one program to compile two different instructions without functionally changing that program through the use of DeMorgan equivalents and diverse compiler optimizations.


