Branch Prediction Suppression for Sequential Instruction Blocks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Sophisticated branch prediction mechanisms in data processing systems consume significant energy and resources, despite efforts to increase accuracy, as they often lead to unnecessary instruction fetching and misprediction penalties.

Innovation Solution

Implementing prediction suppression circuitry that uses history data from previous branch behavior to selectively disable branch prediction operations for regions of program instructions predicted to not contain branches, reducing energy consumption by suppressing the operation of branch prediction circuits beyond the immediate following block.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If branch prediction mechanisms are made increasingly sophisticated to increase accuracy, then branch prediction accuracy is improved, but energy consumption and circuit overhead increase significantly

Engineering Contradiction:
Improvebranch prediction accuracyVSAvoidenergy consumption
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The patent implements dynamic suppression of branch prediction circuits based on runtime conditions. The system selectively activates or deactivates branch prediction for subsequent blocks based on whether the current block contains a branch instruction and the target address validity, adapting the prediction mechanism's operation to actual execution flow patterns rather than continuously operating sophisticated prediction circuits.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent applies partial branch prediction by suppressing prediction for following blocks under specific conditions. Instead of continuously applying sophisticated prediction mechanisms to all blocks, the system applies prediction only where necessary (when the current block does not contain a branch or when target address is invalid), reducing overall energy consumption while maintaining accuracy where needed.

Inventive Principle:
Principle #16Partial or excessive action

2Measurement precision

If branch prediction mechanisms are made increasingly sophisticated to increase accuracy, then branch prediction accuracy is improved, but circuit overhead increases significantly

Engineering Contradiction:
Improvebranch prediction accuracyVSAvoidcircuit overhead
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent implements dynamic suppression of branch prediction circuits based on runtime conditions. The system selectively activates or deactivates branch prediction for subsequent blocks based on whether the current block contains a branch instruction and the target address validity, adapting the prediction mechanism's operation to actual execution flow patterns rather than continuously operating sophisticated prediction circuits.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent applies partial branch prediction by suppressing prediction for following blocks under specific conditions. Instead of continuously applying sophisticated prediction mechanisms to all blocks, the system applies prediction only where necessary (when the current block does not contain a branch or when target address is invalid), reducing overall energy consumption while maintaining accuracy where needed.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If branch prediction is continuously applied to all blocks, then potential branch instructions are caught, but unnecessary prediction operations consume energy for blocks that will not contain branches

Engineering Contradiction:
Improvebranch instruction detectionVSAvoidenergy waste
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent performs preliminary suppression of branch prediction for following blocks when the current block is determined to not contain a branch instruction or when the target address is invalid. By proactively identifying blocks that will not contain branches based on current block analysis, the system prevents unnecessary prediction operations from being performed on subsequent blocks, reducing energy waste while maintaining reliable branch detection where applicable.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10289417B2Branch prediction suppression for blocks of instructions predicted to not include a branch instruction
Publication Date: 2019.05.14 ARM LTD
  • US10289417B2 patent drawing
  • US10289417B2 patent drawing
  • US10289417B2 patent drawing

AI summary

A data processing apparatus contains branch prediction circuitry including a micro branch target buffer, a full branch target buffer and a global history buffer. The branch target buffer entries contain history data which indicates whether or not a number of the following blocks of program instructions, subsequent to and sequential to a block of program instruction identified by that branch target buffer entry containing a branch instruction, do themselves contain any branch instructions. If the history data indicates that the following blocks of program instructions do not contain branches, then the operation of the branch prediction circuitry is suppressed for these following blocks of program instructions so as to save energy.