Branch Prediction Using Segmented Global History Vectors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computer processors face inefficiencies in branch prediction, which affects their speed and power consumption, as they rely on simplistic methods that do not fully utilize historical branch prediction statistics for accurate and efficient decision-making.

Innovation Solution

The method involves fetching an instruction with a global history vector address and pointer, performing a first branch prediction using the initial portion of the vector, retrieving a second portion from a rolling global history vector buffer, and making a more accurate second prediction by combining both portions, thereby leveraging historical data for improved prediction accuracy.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If comprehensive global history vector data is used for branch prediction, then prediction accuracy is improved, but processor complexity and power consumption increase

Engineering Contradiction:
Improvebranch prediction accuracyVSAvoidprocessor complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The global history vector is segmented into two portions: a first portion stored in the instruction address and a second portion retrieved from a rolling global history vector buffer. This segmentation allows the system to use comprehensive historical data for accurate prediction while managing complexity by dividing the data retrieval into manageable parts.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The rolling global history vector buffer pre-stores the second portion of the global history vector data, so that when branch prediction is needed, the data is already available in the buffer rather than requiring computation or retrieval from main memory. This preliminary action reduces prediction latency and complexity.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If comprehensive global history vector data is used for branch prediction, then prediction accuracy is improved, but power consumption increases

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

Solution Approach 1:

By segmenting the global history vector access into two portions, the system can efficiently retrieve only the necessary data from the rolling buffer rather than accessing the entire history vector from main memory, reducing the energy required for data retrieval while maintaining comprehensive prediction accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A rolling global history vector buffer (a copy of the history data) is maintained in the processor, allowing frequent access to historical branch data without expensive main memory accesses. This copying approach reduces power consumption by keeping prediction data in faster, lower-power memory.

Inventive Principle:
Principle #26Copying

3Speed

If only partial history data is used for branch prediction, then processing speed is improved, but prediction accuracy deteriorates

Engineering Contradiction:
Improveprocessor speedVSAvoidbranch prediction accuracy
Core Design Contradiction:
SpeedVSMeasurement precision

Solution Approach 1:

The first portion of the global history vector is included in the instruction address for immediate access, while the second portion is retrieved from the rolling buffer using a pointer. This segmentation enables parallel retrieval of both portions, maintaining high speed while providing access to the complete history vector for accurate prediction.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system merges the first portion of the global history vector (from the address) with the second portion (from the rolling buffer) to form the complete global history vector. This combination allows the processor to use comprehensive historical data for accurate branch prediction without sacrificing processing speed.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10275256B2Branch prediction in a computer processor
Publication Date: 2019.04.30 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10275256B2 patent drawing
  • US10275256B2 patent drawing
  • US10275256B2 patent drawing

AI summary

Branch prediction in a computer processor, includes: fetching an instruction, the instruction comprising an address, the address comprising a first portion of a global history vector and a global history vector pointer; performing a first branch prediction in dependence upon the first portion of the global history vector; retrieving, in dependence upon the global history vector pointer, from a rolling global history vector buffer, a second portion of the global history vector; and performing a second branch prediction in dependence upon a combination of the first portion and second portion of the global history vector.