Deterministic Branch Execution for Interrupt-Free Instruction Pipelines
Find Innovative SolutionsGenerate 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
Engineering 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
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
2Productivity
If branch prediction techniques are applied to improve execution performance, then computing performance is enhanced, but deterministic timing is compromised
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
3Reliability
If static branch predictors with continuous flow are used, then deterministic timing is maintained, but execution performance is limited compared to dynamic predictors
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
Data Source
Figure 1
Figure 2
Figure 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).