Indirect Branch Synchronization via Auxiliary Unit Mediation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current control flow checking methods, particularly using disjoint signatures, struggle to manage indirect branches in program codes due to limitations in encoding multiple targets and synchronization challenges, especially with non-predictable branches, leading to inefficiencies and increased memory costs.
Innovation Solution
A method and tool for generating program codes that include main and auxiliary indirect branch instructions, along with synchronization information, allowing the auxiliary processing unit to synchronize with the main processing unit during indirect branch executions, even for multiple and non-predictable targets, by inserting synchronization points directly into the main program code, thereby avoiding the need for additional memory and enhancing synchronization capabilities.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If indirect branch instructions with multiple targets are used in the main program code, then the program code size and cycle penalties are reduced, but the synchronization between main and auxiliary processing units becomes difficult to manage
Solution Approach 1:
The patent introduces an intermediary data structure (branch target information structure) that mediates between the main processing unit's indirect branch execution and the auxiliary processing unit's synchronization requirements. This structure stores multiple branch targets and their corresponding auxiliary branch targets, allowing the auxiliary unit to correctly synchronize without requiring complex prediction logic
Solution Approach 2:
The patent pre-calculates and stores all possible branch targets and their corresponding auxiliary branch targets in the branch target information structure before execution. This preliminary action eliminates the need for complex runtime prediction and synchronization management during actual indirect branch execution
2Device complexity
If traditional control flow checking methods are used with indirect branches, then memory access is simplified, but additional memory resources and content addressable memories are required
Solution Approach 1:
The patent makes the branch target information structure multi-functional by using it for both storing branch target addresses and enabling synchronization. This universal structure eliminates the need for separate content addressable memories and additional memory resources, as it serves dual purposes in the control flow checking system
3Adaptability or versatility
If coprocessor branch instructions encode multiple target addresses, then indirect branches with multiple targets can be managed, but the encoding capacity and instruction format become insufficient
Solution Approach 1:
The patent segments the branch target information into multiple components: the main branch instruction, the branch target information structure (containing multiple targets), and the synchronization information. This segmentation allows each component to have a simple, standard format while collectively providing multiple target management capability without increasing individual instruction encoding complexity
Data Source
AI summary
Synchronization points are inserted into a program code to be monitored, and are associated with different branches resulting from execution of an indirect branch instruction. The synchronization points can be accessed by the monitored program code for the purpose of identifying which branch to use during execution of the indirect branch instruction of the monitored program code.


