Global History Branch Prediction Updating Responsive to Taken Branches
First Claim
1. In a microprocessor system using pipelined instruction processing, a method for updating a global history prediction record, the method comprising:
- accepting a first microprocessor instruction of consecutive operations, including a first conditional branch operation with an associated first branch address, at a first stage in a pipelined microprocessor execution process;
accessing a current value from a global history record (GHR) of conditional branch resolutions and predictions;
hashing the current global history record value with the first branch address, creating a first hash result;
using the first hash result to access an indexed branch history table (BHT) of branch direction counts;
using the BHT, making a first branch prediction;
in response to the first branch prediction being “
taken”
, left-shifting the current GHR value;
hashing the left-shifted GHR with the first branch address, creating a second hash result; and
,using the second hash result, creating an updated GHR.
3 Assignments
0 Petitions
Accused Products
Abstract
A system and method are provided for updating a global history prediction record in a microprocessor system using pipelined instruction processing. The method accepts a microprocessor instruction of consecutive operations, including a conditional branch operation with an associated branch address, at a first stage in a pipelined microprocessor execution process. A global history record (GHR) of conditional branch resolutions and predictions is accessed and hashed with the branch address, creating a first hash result. The first hash result is used to access an indexed branch history table (BHT) of branch direction counts and the BHT is used to make a branch prediction. If the branch prediction being “taken”, the current GHR value is left-shifted and hashed with the branch address, creating a second hash result which is used in creating an updated GHR.
-
Citations
22 Claims
-
1. In a microprocessor system using pipelined instruction processing, a method for updating a global history prediction record, the method comprising:
-
accepting a first microprocessor instruction of consecutive operations, including a first conditional branch operation with an associated first branch address, at a first stage in a pipelined microprocessor execution process; accessing a current value from a global history record (GHR) of conditional branch resolutions and predictions; hashing the current global history record value with the first branch address, creating a first hash result; using the first hash result to access an indexed branch history table (BHT) of branch direction counts; using the BHT, making a first branch prediction; in response to the first branch prediction being “
taken”
, left-shifting the current GHR value;hashing the left-shifted GHR with the first branch address, creating a second hash result; and
,using the second hash result, creating an updated GHR. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A pipelined instruction microprocessor system with a global history prediction record, the system comprising:
-
a pipeline including a plurality of sequential stages for parallel processing microprocessor instructions, each microprocessor instruction including a plurality of consecutive operations, the pipeline including a first stage for processing a first conditional branch operation from a first microprocessor instruction; a sequencer with an interface for accessing the pipelined stages and processing the operations; a first address register containing a first branch address associated with the first conditional branch operation; a global history record (GHR) having an output to supply a current GHR value associated with a history of conditional branch resolutions and predictions; a first hashing circuit having an input to accept the current GHR value, an input to accept the first branch address, and an output to provide a first hash result; a branch history table (BHT) having an input to accept the first hash result, the BHT indexing a first branch direction counter associated with the first hash result and providing a first branch prediction; a second hashing circuit having a register to accept the current GHR value in response to a first branch prediction of “
taken”
, left-shifting the current GHR value, hashing the left-shifted GHR with the first branch address to create a second hash result, and supplying the second hash to the GHR as an updated GHR value. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
Specification