Predicate Logic Unit Clock Domain Synchronization

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

VSEngineering 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

Engineering Contradiction:
Improveability to control instruction execution from external sourcesVSAvoidcomputing cost and processing efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

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

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improveprocessing speedVSAvoidcomputing cost of clearing pipeline
Core Design Contradiction:
SpeedVSLoss of energy

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

Inventive Principle:
Principle #22Blessing in disguise (Convert harm into benefit)

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

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10133300B2Control of predication across clock domains
Publication Date: 2018.11.20 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10133300B2 patent drawing
  • US10133300B2 patent drawing
  • US10133300B2 patent drawing

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.