Patent US3521771A successfully refreshed from Google Patents.
Patent US5210831A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5210831A Expired / Lapsed US ⏱️ 0.0 years remaining

Methods and apparatus for insulating a branch prediction mechanism from data dependent branch table updates that result from variable test operand locations

Assignee: International Business Machines Corp
•
Filing: 1989-10-30
•
Granted: 1993-05-11
•
Expires: 2009-10-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Methods and apparatus are described for processing branch instructions using a history based branch prediction mechanism (such as a branch history table) in combination with a data dependent branch table (DDBT), where the branch instructions can vary in both outcome and test operand location. The novel methods and apparatus are sensitive to branch mispredictions and to operand addresses used by the DDBT, to identify irrelevant DDBT entries. Irrelevant DDBT entries are identified within the prediction mechanism using state bits which, when set, indicate that: (1) a given entry in the prediction mechanism was updated by the DDBT and (2) subsequent to such update a misprediction occurred making further DDBT updates irrelevant. Once a DDBT entry is determined to be irrelevant, it is prevented from updating the prediction mechanism. The invention also provides methods and apparatus for locating and removing irrelevant entries from the DDBT. The update packet, sent by the DDBT to the history based prediction mechanism, is expanded to include the test operand address actually used by the DDBT. If the state bits indicate the update is irrelevant, then the operand address can be used to locate and delete the offending DDBT entry since the DDBT is organized based on operand addresses. Additionally, the invention provides for inhibiting creation of further DDBT entries when a Branch Wrong Guess event occurs subsequent to a DDBT update to a given prediction mechanism entry.

Inventors

  • 👤 Philip G. Emma
  • 👤 Joshua W. Knight
  • 👤 James H. Pomerene
  • 👤 Rudolph N. Rechtschaffen
  • 👤 Frank J. Sparacio

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 17:01
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3836; G06F9/3842; G06F9/3844; G06F9/3802; G06F9/3804; G06F9/3806; G06F9/3824; G06F9/383; G06F9/3832

Claims Analysis

Total Claims: 10
Claim 1
Independent Claim 167 words
In a computing machine, apparatus for predicting the outcome of branch instructions, comprising: a processor; memory for storing information for said processor, said information including instructions and operands; first means for performing history based branch prediction, including means for recording prior branch actions of branch instructions processed by said processor; second means for detecting occurrences of modifications to operands upon which at least some of said recorded prior branch instruction actions depended and correcting at least some of said recorded prior branch instruction actions which would have been recorded differently if said modifications to operands had occurred before said recorded prior branch instruction actions were recorded; third means for detecting occurrences of said recorded prior branch instruction actions which have been corrected by said second means and which still fail to correctly predict future outcome of said branch instructions corresponding thereto; and fourth means for preventing further corrections to be made by said second means to said recorded prior branch instruction actions detected by said third means.
Claim 2
Dependent Claim 167 words
In a computing machine, apparatus for predicting the outcome of branch instructions, comprising: a processor; memory for storing information for said processor, said information including instructions and operands; first means for performing history based branch prediction, including means for recording prior branch actions of branch instructions processed by said processor; second means for detecting occurrences of modifications to operands upon which at least some of said recorded prior branch instruction actions depended and correcting at least some of said recorded prior branch instruction actions which would have been recorded differently if said modifications to operands had occurred before said recorded prior branch instruction actions were recorded; third means for detecting occurrences of said recorded prior branch instruction actions which have been corrected by said second means and which still fail to correctly predict future outcome of said branch instructions corresponding thereto; and fourth means for preventing further corrections to be made by said second means to said recorded prior branch instruction actions detected by said third means.
Claim 3
Dependent Claim 47 words
Apparatus for predicting the outcome of branch instructions, as defined in claim 1, and wherein said fourth means comprises: fifth means for preventing said second means from detecting occurrences of modifications to operands upon which said recorded prior branch instruction actions detected by said third means depended.
Claim 4
Dependent Claim 24 words
Apparatus for predicting the outcome of branch instructions, as defined in claim 2, and wherein said first means is a Branch History Table (BHT).
Claim 5
Dependent Claim 25 words
Apparatus for predicting the outcome of branch instructions, as defined in claim 3, and wherein said second means is a Data Dependent Branch Table (DDBT).
Claim 6
Dependent Claim 24 words
Apparatus for predicting the outcome of branch instructions, as defined in claim 2, and wherein said first means is a Decode History Table (DHT).
Claim 7
Dependent Claim 42 words
Apparatus for predicting the outcome of branch instructions, as defined in claim 2, and wherein said third means detects occurrences of a recorded prior branch instruction action where an address changes of an operand upon which said branch instruction corresponding thereto depends.
Claim 8
Dependent Claim 46 words
Apparatus for predicting the outcome of branch instructions, as defined in claim 1, and wherein said first means is a Branch History Table (BHT) and said third means includes first tag means for tagging entries in said BHT which have been corrected by said second means.
Claim 9
Dependent Claim 62 words
Apparatus for predicting the outcome of branch instructions, as defined in claim 7, and wherein said fourth means includes second tag means for further tagging said entries in said BHT which already have been tagged by said first tag means, said further tagged entries being entries which have resulted in a Branch Wrong Guess after having been corrected by said second means.
Claim 10
Dependent Claim 26 words
Apparatus for predicting the outcome of branch instructions, as defined in claim 8, and wherein said further tagged entries are not corrected by said second means.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1996-05-10 1996-11-09 1997-05-11 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2000-05-10 2000-11-09 2001-05-11 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2004-05-10 2004-11-09 2005-05-11 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag