Branch History Update Mechanism for GPU Predictors
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Device complexity
If traditional global branch history updating method is used, then the implementation is straightforward, but the tracking of longer sequences is limited
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.
Data Source
Figure 1
Figure 2
Figure 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.