IP Library Granted Patent US 8,473,727
Granted Patent B2
US 8,473,727 · App. 12/851,906 · Granted Jun 25, 2013

History based pipelined branch prediction

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,473,727
App. No.
12/851,906
Granted
Jun 25, 2013
Kind
B2
Abstract

Systems and methods for history based pipelined branch prediction. In one example, access to prediction information to predict a plurality of branches within an instruction block is initiated in a same clock cycle of the computer processor as a fetch of the instruction block. The prediction information may be available to the predictor not later than a clock cycle of the computer processor in which the plurality of branches are decoded.

Claims (26)

1. An apparatus comprising:

a history based branch predictor circuit of a computer processor configured to initiate an access of prediction information to predict a plurality of branches within an instruction block prior to updating history information for all previous branches within the instruction block,

wherein said history based branch predictor circuit is further configured to provide said prediction information to said predictor circuit not later than a clock cycle of said computer processor in which said plurality of branches are decoded.

2. The apparatus of claim 1 wherein said instruction block comprises at least two branch instructions.

3. The apparatus of claim 1 wherein an address of said prediction information comprises branch history information.

4. The apparatus of claim 3 wherein said branch history information comprises uncertainty as to actual history of branches.

5. The apparatus of claim 4 wherein said branch history information is encoded so as to limit the effect of said uncertainty on the amount of said prediction information that must be accessed.

6. The apparatus of claim 5 wherein said branch history information comprises a not taken invariant portion and a not taken variant portion taken of said branch history information.

7. The apparatus of claim 4 wherein said access to prediction information accesses more prediction information that is necessary to predict said plurality of branches based on said actual history of branches.

8. The apparatus of claim 7 wherein said more prediction information is a minimum set of information necessary to predict said plurality of branches in consideration of said uncertainty.

9. The apparatus of claim 1 wherein said access to prediction information to predict a plurality of branches within an instruction block is initiated in a same clock cycle of said computer processor as a fetch of said instruction block.

10. A processor comprising:

a history based branch predictor circuit configured to predict at least two branches based on a single access to a single ported memory comprising prediction information.

11. The processor of claim 10 wherein the at least two branches are contained within a single instruction block.

12. The processor of claim 11 wherein the single access is initiated in a same clock cycle of the processor as a fetch of the instruction block.

13. The processor of claim 10 wherein the history based branch predictor circuit predicts the at least two branches not later than one clock cycle of the processor after the at least two branches are decoded.

14. The processor of claim 10 wherein the prediction information is indexed by a combination of branch history information and current branch address information.

15. The processor of claim 14 wherein the branch history information comprises uncertainty as to actual history of branches.

16. The processor of claim 15 wherein the branch history information is encoded so as to limit the effect of the uncertainty on the amount of the prediction information that must be accessed.

17. The processor of claim 16 wherein the branch history information comprises a not taken invariant portion and a not taken variant portion taken of the branch history information.

18. A method comprising:

accessing prediction information to predict a plurality of branches within an instruction block prior to updating history information for all previous branches within said instruction block; and

predicting at least one of said plurality of branches responsive to said accessing,

wherein said predicting occurs not later than a clock cycle of a computer processor in which said plurality of branches are decoded.

19. The method of claim 18 further comprising:

speculatively executing software based on said predicting at least one of said plurality of branches responsive to said accessing.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2021
From: INTELLECTUAL VENTURES ASSETS 5 LLC
To: NVIDIA CORPORATION
Reel/Frame 054919/0149 →
CORRECTIVE ASSIGNMENT TO CORRECT THE STATE OF INCORPORATION OF INTELLECTUAL VENTURES HOLDING 81 LLC. PREVIOUSLY RECORDED ON REEL 054175 FRAME 0032. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Oct 28, 2020
From: INTELLECTUAL VENTURES HOLDING 81 LLC
To: INTELLECTUAL VENTURES ASSETS 5 LLC
Reel/Frame 054248/0655 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 27, 2020
From: INTELLECTUAL VENTURES HOLDING 81 LLC
To: INTELLECTUAL VENTURES ASSETS 5 LLC
Reel/Frame 054175/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2020
From: TRANSMETA LLC
To: INTELLECTUAL VENTURE FUNDING LLC
Reel/Frame 054053/0256 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR'S NAME PREVIOUSLY RECORDED AT REEL: 036711 FRAME: 0160. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 6, 2015
From: INTELLECTUAL VENTURES FUNDING LLC
To: INTELLECTUAL VENTURES HOLDING 81 LLC
Reel/Frame 036797/0356 →
MERGER Recorded Sep 29, 2015
From: INTELLECTUAL VENTURE FUNDING LLC
To: INTELLECTUAL VENTURES HOLDING 81 LLC
Reel/Frame 036711/0160 →