Dynamic Branch Prediction Control for Power Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current branch prediction techniques in processors often lead to incorrect predictions, resulting in unnecessary power consumption as processors fetch and discard instructions that are not needed, especially when misprediction rates are high.

Innovation Solution

A method and apparatus that dynamically enable or disable branch prediction based on branch rates and misprediction rates, using counters to determine when to switch between prediction modes, particularly in multi-threaded and single-threaded operations, to optimize power usage and performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If branch prediction is enabled continuously, then instruction fetch efficiency is improved, but power consumption increases due to mispredictions

Engineering Contradiction:
Improveinstruction fetch efficiencyVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent implements dynamic branch prediction by continuously monitoring branch misprediction rates and adapting the prediction mechanism accordingly. When misprediction rates exceed a threshold, the system disables branch prediction to save power; when rates are acceptable, prediction is enabled to improve fetch efficiency. This dynamic adjustment resolves the contradiction between maintaining high productivity and reducing energy consumption.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the operational parameters of branch prediction based on observed performance metrics. By monitoring misprediction rates and adjusting the enabled/disabled state of branch prediction accordingly, the system optimizes the balance between instruction fetch efficiency and power consumption. The parameter being changed is the operational state of branch prediction (enabled/disabled) based on misprediction rate thresholds.

Inventive Principle:
Principle #35Parameter changes

2Use of energy by moving object

If branch prediction is disabled, then power consumption is reduced, but processing efficiency decreases due to instruction discarding

Engineering Contradiction:
Improvepower consumptionVSAvoidprocessing efficiency
Core Design Contradiction:
Use of energy by moving objectVSProductivity

Solution Approach 1:

Rather than statically disabling branch prediction, the system dynamically adjusts its state based on real-time monitoring of misprediction rates. This allows the system to maintain high processing efficiency when prediction is accurate while reducing power consumption when misprediction rates are high, thus resolving the contradiction between power savings and processing efficiency.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements a feedback mechanism that monitors branch misprediction rates and uses this information to control the branch prediction mechanism. When misprediction rates exceed a threshold, feedback signals disable prediction to save power; when rates are low, prediction is re-enabled to maintain efficiency. This closed-loop control resolves the contradiction by using performance feedback to optimize both power consumption and processing efficiency.

Inventive Principle:
Principle #23Feedback

3Speed

If branch prediction is used with high misprediction rates, then instruction fetch speed is improved, but unnecessary instructions are fetched and discarded

Engineering Contradiction:
Improveinstruction fetch speedVSAvoidenergy wasted on discarded instructions
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The system changes the operational parameter of branch prediction (enabled/disabled state) based on the misprediction rate parameter. When misprediction rates exceed a threshold, the system disables prediction to prevent wasting energy on fetching incorrect instructions. When rates are acceptable, prediction remains enabled to maintain fast instruction fetch speed, thus resolving the contradiction between fetch speed and energy waste.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent converts the harmful effect of mispredictions into a beneficial control signal. By monitoring misprediction rates, the system uses the 'harm' of incorrect predictions to trigger disabling of the prediction mechanism, thereby preventing further energy waste. This transforms the negative feedback from mispredictions into a protective mechanism that saves energy.

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

Data Source

PatentUS10001998B2Dynamically enabled branch prediction
Publication Date: 2018.06.19 ORACLE INT CORP
  • US10001998B2 patent drawing
  • US10001998B2 patent drawing
  • US10001998B2 patent drawing

AI summary

Embodiments for a processor that selectively enables and disables branch prediction are disclosed. The processor may include counters to track a number of fetched instructions, a number of branches, and a number of mispredicted branches. A misprediction threshold may be calculated dependent upon the tracked number of branches and a predefined misprediction ratio. Branch prediction may then be disabled when the number of mispredictions exceed the determined threshold value and dependent upon the branch rate.