Multi-Schema Branch Predictor Using Segmented Modules

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current branch prediction methods in superscalar processors often suffer from inaccuracies due to reliance on single prediction schemas, leading to unnecessary pipeline flushes and computational waste when predicting branch execution, as they fail to uniquely identify prediction values for different branches.

Innovation Solution

A computing module and method that utilize multiple branch prediction modules, each generating prediction values based on different schemas (program-counter, branch history, and subroutine counter values), with a computation module combining these values to determine branch execution and update prediction tables, enhancing prediction accuracy by using a combination of prediction hash and branch-history tables.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a single branch prediction schema is used, then the device complexity is reduced, but the prediction accuracy deteriorates leading to pipeline flushes

Engineering Contradiction:
Improvebranch prediction accuracyVSAvoidprediction module complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The branch prediction system is segmented into multiple independent prediction modules (first branch prediction module, second branch prediction module, third branch prediction module), each handling different aspects of branch prediction using different schemas. This segmentation allows each module to specialize in specific prediction patterns while collectively achieving higher overall accuracy than a single monolithic predictor.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Multiple branch prediction modules are merged into a unified system where their predictions are combined through a computation module. The computation module integrates predictions from different schemas (program-counter based, branch history based, subroutine counter based) to produce a final prediction decision, leveraging the strengths of each individual schema.

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If multiple branch prediction modules are used, then the prediction accuracy is improved, but the computational resources and device complexity increase

Engineering Contradiction:
Improvebranch prediction accuracyVSAvoidnumber of prediction modules
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system divides the prediction task into three specialized modules, each using a different prediction schema. This segmentation allows parallel operation of independent modules without requiring complex inter-module coordination, reducing overhead while maintaining high accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The computation module serves as a universal integrator that handles predictions from multiple different schemas (program-counter, branch history, subroutine counter). This multi-functional module consolidates the output from various specialized predictors into a unified decision, reducing the need for separate handling logic for each prediction type.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If multiple prediction schemas are combined, then the prediction accuracy is improved, but the loss of time for computation increases

Engineering Contradiction:
Improveprediction accuracyVSAvoidcomputation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Each branch prediction module operates independently and simultaneously generates predictions based on its respective schema. The computation module combines these pre-computed predictions in a single step, avoiding sequential processing delays. This preliminary parallel action of multiple modules eliminates the need for time-consuming sequential evaluation of different prediction schemas.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP2202635B1System and method for a multi-schema branch predictor
Publication Date: 2018.11.07 STMICROELECTRONICS BEIJING R& D
  • EP2202635B1 patent drawingFigure 1
  • EP2202635B1 patent drawingFigure 2
  • EP2202635B1 patent drawingFigure 3

AI summary

A system and method for predicting the execution of a branch of computer-executable Instructions. In an embodiment, a branch predictor may include a program-counter register operable to store a program-counter value and a branch-history register operable to store a branch-history value. Additionally, the branch predictor may include a prediction hash table having a plurality of prediction values each uniquely corresponding to a plurality of memory locations. With these components, the branch predictor may generate a first prediction value that corresponds to the program-counter value and may generate a second prediction value that corresponds to a logical combination of the program-counter value and the branch-history value. With these two prediction values obtained from two different prediction schemas, the branch predictor is better suited to generate an overall prediction value based on the first and second prediction values that is more accurate than a single prediction value based upon a single prediction schema.