Software Redundancy Segmentation for Resource Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvesystem reliabilityVSAvoidcomputing resource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #3Local quality

2Reliability

If redundant execution is implemented for all software sections, then system reliability is improved, but processing overhead increases

Engineering Contradiction:
Improvesystem reliabilityVSAvoidprocessing overhead
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #3Local quality

3Productivity

If all code sections are executed concurrently on multiple processors, then system performance is improved, but resource consumption increases

Engineering Contradiction:
Improvesystem performanceVSAvoidresource consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

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.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20240118901A1Switching between redundant and non-redundant modes of software execution
Publication Date: 2024.04.11 XILINX INC
  • US20240118901A1 patent drawing
  • US20240118901A1 patent drawing
  • US20240118901A1 patent drawing

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.