System and method for speculative global history prediction updating
First Claim
1. In a microprocessor system using pipelined instruction processing, a method for updating a speculative 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 speculative global history record (SGHR) of conditional branch resolutions and predictions;
hashing the speculative global history record with the first branch address, creating a first hash result;
using the first hash result to index a branch history table (BHT) of previous first branch resolutions;
in response to indexing the BHT, making a first branch prediction;
updating the speculative global history record with the first branch prediction;
resolving the first branch operation;
updating a non-speculative global history record (NSGHR) of branch resolutions with the resolution of the first branch operation; and
,in response to the first branch prediction being incorrect, correcting the speculative global history record using the non-speculative global history record.
3 Assignments
0 Petitions
Accused Products
Abstract
A system and method are provided for updating a speculative global history prediction record in a microprocessor system using pipelined instruction processing. The method accepts microprocessor instructions with consecutive operations, including a conditional branch operation with an associated first branch address. A speculative global history record (SGHR) of conditional branch resolutions and predictions is accessed and hashed with the first branch address, creating a first hash result. The first hash result is used to index a branch history table (BHT) of previous first branch resolutions. As a result, a first branch prediction is made, and the SGHR is updated with the first branch prediction. A non-speculative global history record (NSGHR) of branch resolutions is updated with the resolution of the first branch operation, and if the first branch prediction is incorrect, the SGHR is corrected using the NSGHR.
46 Citations
23 Claims
-
1. In a microprocessor system using pipelined instruction processing, a method for updating a speculative 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 speculative global history record (SGHR) of conditional branch resolutions and predictions; hashing the speculative global history record with the first branch address, creating a first hash result; using the first hash result to index a branch history table (BHT) of previous first branch resolutions; in response to indexing the BHT, making a first branch prediction; updating the speculative global history record with the first branch prediction; resolving the first branch operation; updating a non-speculative global history record (NSGHR) of branch resolutions with the resolution of the first branch operation; and
,in response to the first branch prediction being incorrect, correcting the speculative global history record using the non-speculative global history record. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A pipelined instruction microprocessor system with a speculative 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 speculative global history record (SGHR) having an output to supply a history of conditional branch resolutions and predictions; a hashing circuit having an input to accept the SGHR output, 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 previous first branch resolutions associated with the first hash result and providing a first branch prediction; wherein the SGHR is updated with the first branch prediction; The system further comprising; a non-speculative global history record (NSGHR) of branch resolutions having an input to accept first branch resolutions and an output for over-writing the SGHR in response to the first branch prediction being incorrect. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
Specification