Predicate Logic Unit Clock Domain Synchronization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Microprocessor performance is hampered by high computing costs due to incorrect branch prediction, particularly when external sources attempt to alter the predicate register, often requiring resource-intensive methods like shared memory, atomic operations, and spin-locks.
Innovation Solution
Implementing a predicate logic unit that synchronizes external inputs from a different clock domain with the microprocessor's clock domain, allowing for the selective execution of instructions based on predicate conditions without relying on spin-locks or interrupts, thereby reducing branch mis-prediction penalties.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If resource-intensive methods like shared memory, atomic operations, and spin-locks are used to allow external sources to alter the predicate register, then the ability to control instruction execution from external sources is improved, but the computing cost and processing efficiency deteriorate
Solution Approach 1:
The patent introduces a predicate register as an intermediary component that sits between external control sources and the instruction execution pipeline. This predicate register receives control signals from external sources (via the predicate control interface) and uses these signals to gate instruction execution at multiple pipeline stages. By using this intermediary register rather than direct access to internal processor state, the system enables external control without requiring resource-intensive synchronization mechanisms like spin-locks or atomic operations, thus resolving the contradiction between adaptability and productivity
Solution Approach 2:
The patent segments the instruction execution pipeline into multiple stages (fetch, decode, execute, write-back) and applies predication control at each stage independently through the predicate register. This segmentation allows the external control signal to be propagated efficiently through dedicated control paths at each pipeline stage rather than requiring centralized coordination mechanisms. Each pipeline stage can be gated independently based on the predicate register state, enabling fine-grained control without the overhead of shared memory or atomic operations
2Speed
If branch prediction is used to predict which branch may be utilized, then the processing speed is improved, but when a branch instruction is predicted incorrectly, the computing cost increases due to having to clear the processing pipeline
Solution Approach 1:
The patent converts the potential harm of branch misprediction (pipeline clearing and performance loss) into a benefit by using predication to eliminate the need for pipeline clearing entirely. Instead of predicting branches and risking misprediction penalties, the system uses predicate registers to conditionally enable or disable instruction execution based on runtime conditions. When external sources need to alter control flow, they write to the predicate register, which immediately gates execution without requiring pipeline flushes. This transforms the harmful effect of branch misprediction into a beneficial mechanism where control changes are handled efficiently through predicate-based gating
Solution Approach 2:
The patent changes the control parameter from branch prediction (which operates on probabilistic assumptions about future execution paths) to predicate register values (which provide deterministic control over instruction execution). By using external control signals written to the predicate register, the system replaces the uncertain parameter of branch prediction accuracy with the certain parameter of explicit predicate setting. This parameter change eliminates the trade-off between speed and misprediction cost, as execution is controlled by current predicate states rather than predicted future states
Data Source
AI summary
Embodiments are disclosed for a method of executing instructions in a processing core of a microprocessor. In one embodiment, the method comprises, in a first clock domain, receiving an input from a second clock domain external to the first clock domain, the input comprising an indication from the second clock domain regarding whether to execute an instruction in the first clock domain. The method further comprises synchronizing the input from the second clock domain with the first clock domain, if the instruction is a predicatable instruction and the indication matches a predicate condition that indicates not to perform the instruction, then not performing the instruction, and otherwise performing the instruction.


