Deterministic Branch Execution for Interrupt-Free Instruction Pipelines

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computing devices for fault intolerant and safety-critical applications face a trade-off between computing performance and deterministic execution due to interruptions caused by conditional branches, leading to performance reductions.

Innovation Solution

A method is introduced to execute a predefined number of pre-branch instructions before a conditional branch, predict the subsequent instruction, and insert these instructions after the branch, ensuring they are always executed, thereby eliminating execution breaks and improving performance while maintaining deterministic timing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conditional branches are used in instruction sets, then program flexibility and decision-making capability are improved, but execution continuity is interrupted leading to performance reduction

Engineering Contradiction:
Improveprogram flexibilityVSAvoidexecution performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent executes a predefined number of pre-branch instructions before the conditional branch is resolved. This preliminary execution prepares the instruction pipeline in advance, so that when the branch outcome is determined, the processor can continue execution without interruption, thus maintaining both program flexibility and execution performance

Inventive Principle:
Principle #10Preliminary action

2Productivity

If branch prediction techniques are applied to improve execution performance, then computing performance is enhanced, but deterministic timing is compromised

Engineering Contradiction:
Improvecomputing performanceVSAvoiddeterministic timing
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent creates copies of pre-branch instructions and places them in the instruction pipeline at predetermined positions. These copied instructions are executed in parallel with the branch resolution process, ensuring that performance is improved through pipeline utilization while deterministic timing is maintained because the copied instructions execute at predictable intervals without speculative behavior

Inventive Principle:
Principle #26Copying

3Reliability

If static branch predictors with continuous flow are used, then deterministic timing is maintained, but execution performance is limited compared to dynamic predictors

Engineering Contradiction:
Improvedeterministic timingVSAvoidexecution performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the instruction execution into pre-branch instructions executed before the conditional branch and post-branch instructions executed after. By preparing and executing pre-branch instructions in advance in a deterministic manner, the system maintains predictable timing while improving performance through better pipeline utilization, avoiding the need for dynamic prediction mechanisms

Inventive Principle:
Principle #1Segmentation

Data Source

PatentEP4675426A1Method, computer program, computer-readable data carrier and computing device for deterministic execution of an instruction set as well as apparatus comprising same
Publication Date: 2026.01.07 AIRBUS (SAS)
  • EP4675426A1 patent drawingFigure 1
  • EP4675426A1 patent drawingFigure 2
  • EP4675426A1 patent drawingFigure 3~4

AI summary

A method, computer program (3), computer-readable data-carrier (4), computing device (2), and apparatus (1), such as a vehicle, in particular an aircraft, for deterministic execution of an instruction set (I) containing instructions (M) to be carried out by a processing unit (11) of the computing device (2), are provided, the method comprising the steps of executing a predefined number of pre-branch instructions (A) up to a conditional branch (C) of the instruction set (I) containing at least one branch condition determining a subsequent instruction which is to be executed after the conditional branch (C); predicting at least one of the pre-branch instructions (A) and/or a target instruction (T) to be executed as the subsequent instruction if the at least one condition is met; and inserting the at least one predicted pre-branch instruction (A) and/or the target instruction (T) into the instruction set (I) after the conditional branch (C).