Software Redundancy Segmentation for Resource Efficiency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Redundant execution of software in safety-critical systems leads to inefficiencies due to unnecessary consumption of computing resources and processing overhead, as non-critical code sections are also executed redundantly, hindering system performance.
Innovation Solution
Implementing a method where only safety-critical sections of code are executed redundantly, with non-critical sections executed by one processor while the second processor remains idle or executes different code, and switching to redundant execution of critical sections upon signal, allowing concurrent execution and comparison of results for error detection.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If redundant execution is implemented for all software sections, then system reliability is improved, but computing resource consumption and processing overhead increase
Solution Approach 1:
The software is segmented into critical and non-critical sections. Only the critical sections are executed redundantly on multiple processors, while non-critical sections are executed once. This segmentation allows the system to maintain reliability for essential functions while reducing overall computing resource consumption by avoiding redundant execution of non-essential code.
Solution Approach 2:
Different execution strategies are applied to different parts of the software. Critical sections receive redundant execution treatment to ensure reliability, while non-critical sections use standard single-execution mode. This local differentiation optimizes the balance between reliability and resource consumption by applying redundancy only where necessary.
2Reliability
If redundant execution is implemented for all software sections, then system reliability is improved, but processing overhead increases
Solution Approach 1:
The software is divided into critical and non-critical sections. Only critical sections undergo redundant execution with result comparison, while non-critical sections execute once without overhead. This segmentation significantly reduces processing overhead while maintaining reliability for essential system functions.
Solution Approach 2:
Redundant execution with result verification is applied locally only to critical sections where reliability is essential. Non-critical sections bypass the redundant execution overhead. This localized approach maintains system reliability where needed while minimizing processing overhead overall.
3Productivity
If all code sections are executed concurrently on multiple processors, then system performance is improved, but resource consumption increases
Solution Approach 1:
Concurrent execution on multiple processors is implemented only for critical sections to maximize performance where it matters most. Non-critical sections execute sequentially on a single processor. This segmentation allows the system to achieve high performance for essential functions while avoiding the resource consumption associated with concurrent execution of all code sections.
Data Source
AI summary
Executing critical and non-critical sections of program code include executing a non-critical section of a first program by a first processor and executing a non-critical section of a second program by a second processor. The first processor signals the second processor with context to commence redundant execution of the critical section. The second processor switches from executing the second program to executing the critical section of the first program. The first processor executes the critical section of the first program concurrent with the second processor.


