Branch History Update Mechanism for GPU Predictors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional global branch history updating methods in computer architecture suffer from loss of predictor training when a new branch is discovered and inability to differentiate between identical taken/not taken patterns at different code locations, limiting the tracking of longer sequences.

Innovation Solution

The method involves shifting specific bits of the branch signature into the current global branch history and performing a bitwise XOR function on distinct bits, while discarding oldest bits when a branch is taken, allowing for variable shifting and compression to update the global branch history, and incorporating the updated history into a two-level adaptive predictor.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional global branch history updating method is used, then the branch history is updated by shifting bits and replacing the rightmost bit, but the oldest history bit is lost causing predictor training loss

Engineering Contradiction:
Improvebranch prediction accuracyVSAvoidpredictor training loss
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent segments the branch history update process into two distinct operations: shifting bits to make room for new information, and selectively preserving important history bits through the XOR operation with branch signature bits. This segmentation allows the system to maintain both new and old information simultaneously, preventing the loss of predictor training data while still accommodating new branch information.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the update rule parameter from simple bit replacement to a conditional XOR operation. Instead of directly replacing the rightmost bit with a new value, the system XORs the shifted history bits with corresponding branch signature bits. This parameter change transforms the update mechanism to preserve information that would otherwise be lost, while maintaining the efficiency of the shift operation.

Inventive Principle:
Principle #35Parameter changes

2Ease of operation

If traditional global branch history updating method is used, then the update process is simple and fast, but identical taken/not taken patterns at different code locations cannot be differentiated

Engineering Contradiction:
Improveupdate simplicityVSAvoidpattern differentiation capability
Core Design Contradiction:
Ease of operationVSMeasurement precision

Solution Approach 1:

The patent introduces branch signature bits as an intermediary element that carries location-specific information. These signature bits are XORed with the shifted history bits, acting as a mediator that embeds location identification into the global branch history. This allows the system to maintain a compact update process while gaining the ability to differentiate between identical patterns at different code locations.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent merges two previously separate functions into a single XOR operation: the update of branch outcome information and the encoding of location identification. By combining the shifted history bits with branch signature bits through XOR, the system simultaneously updates the branch prediction state and embeds location-specific differentiation, achieving both goals in one operation.

Inventive Principle:
Principle #5Merging (Combining)

3Device complexity

If traditional global branch history updating method is used, then the implementation is straightforward, but the tracking of longer sequences is limited

Engineering Contradiction:
Improveimplementation complexityVSAvoidsequence tracking length
Core Design Contradiction:
Device complexityVSDuration of action of moving object

Solution Approach 1:

The patent changes the fundamental update parameter from overwriting old bits to XORing with preserved bits. This parameter change allows the branch history to accumulate and retain longer sequences of branch outcomes without requiring a proportional increase in hardware complexity. The XOR operation enables the system to layer new information onto existing history rather than replacing it, effectively extending the tracking duration.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP3291082B1Method and device for determining branch history for branch prediction
Publication Date: 2019.10.09 ADVANCED MICRO DEVICES INC
  • EP3291082B1 patent drawingFigure 1
  • EP3291082B1 patent drawingFigure 2
  • EP3291082B1 patent drawingFigure 3

AI summary

A system and method for efficiently processing access requests for a shared resource are described. Each of many requestors are assigned to a partition of a shared resource. When a controller determines no requestor generates an access request for an unassigned partition, the controller permits simultaneous access to the assigned partitions for active requestors. When the controller determines at least one active requestor generates an access request for an unassigned partition, the controller allows a single active requestor to gain exclusive access to the entire shared resource while stalling access for the other active requestors. The controller alternatives exclusive access among the active requestors. In various embodiments, the shared resource is a local data store in a graphics processing unit and each of the multiple requestors is a single instruction multiple data (SIMD) compute unit.