← Back to Patent Explorer
US5606676A Expired / Lapsed US ⏱️ 0.0 years remaining

Branch prediction and resolution apparatus for a superscalar computer processor

Assignee: Intel Corp
•
Filing: 1995-02-09
•
Granted: 1997-02-25
•
Expires: 2015-02-09
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An apparatus and method for improving the performance of superscalar pipelined computers using branch prediction and verification that the predicted branch is correct. A predicted branch may be resolved in one of two distinct pipeline stages, and a method is provided for handling branches that are resolved in either of the pipeline stages. A branch verification method is provided that verifies that the architecturally correct instructions are in the decode and execution stages. Furthermore, two sets of prefetch buffers are provided to allow branch prediction when multiple clock decoding is required by a multi-clock instruction.

Inventors

  • 👤 Edward T. Grochowski
  • 👤 Donald B. Alpert
  • 👤 Jack D. Mills
  • 👤 Uri C. Weiser

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 19:55
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/30181; G06F9/30192; G06F9/38; G06F9/3802; G06F9/3804; G06F9/3806; G06F9/3812; G06F9/3836; G06F9/3842; G06F9/3844; G06F9/3854; G06F9/3858; G06F9/3861; G06F9/3867

Claims Analysis

Total Claims: 17
Claim 1
Independent Claim 101 words
In a microprocessor, a computer circuit for predicting the target location of a branch instruction supplied in a sequence of instructions, said computer circuit comprising: a) a first pipeline and a second pipeline for receiving and processing said sequence of instructions; b) a decoder including logic to associate said branch instruction with one of said first pipeline and said second pipeline; and c) a branch target buffer for storing a tag address of an instruction previous in said instruction sequence to said branch instruction wherein said previous instruction will be processed at least one pipeline stage ahead of said branch instruction.
Claim 2
Dependent Claim 101 words
In a microprocessor, a computer circuit for predicting the target location of a branch instruction supplied in a sequence of instructions, said computer circuit comprising: a) a first pipeline and a second pipeline for receiving and processing said sequence of instructions; b) a decoder including logic to associate said branch instruction with one of said first pipeline and said second pipeline; and c) a branch target buffer for storing a tag address of an instruction previous in said instruction sequence to said branch instruction wherein said previous instruction will be processed at least one pipeline stage ahead of said branch instruction.
Claim 3
Dependent Claim 51 words
The computer circuit of claim 1 further comprising a prediction circuit for providing a predicted address responsive to a current address from a preselected stage of the first pipeline, said prediction circuit including circuitry for comparing said current address with at least one tag address stored in said branch target buffer.
Claim 4
Dependent Claim 23 words
The computer circuit of claim 2 further comprising: a verification circuit coupled to said first and second pipelines for verifying said predicted address.
Claim 5
Dependent Claim 34 words
The computer circuit of claim 3 wherein said verification circuit includes a circuit for comparing an actual target address computed in the execution stage with an address of an instruction following said branch instruction.
Claim 6
Dependent Claim 52 words
The computer circuit of claim 2 further comprising: a verification circuit for verifying an address predicted by said prediction circuit buffer, including a circuit coupled to said first and second pipelines for comparing an actual target address computed in the execution stage with an address of an instruction following said branch instruction.
Claim 7
Dependent Claim 124 words
In a microprocessor, a computer circuit for predicting the target location of a branch instruction supplied in a sequence of variable length instructions having a non-predetermined length, said computer circuit comprising: a) a length decoder circuit for receiving an instruction and determining its length; b) a first and a second pipeline for processing said sequence of variable length instructions; c) a decoder circuit for associating said branch instruction with one of said first pipeline and said second pipelines; and d) a branch target buffer for storing a tag address of a variable length instruction previous in said instruction sequence to said branch instruction wherein said previous variable length instruction will be processed at least one pipeline stage ahead of said previously executed branch instruction.
Claim 8
Dependent Claim 124 words
In a microprocessor, a computer circuit for predicting the target location of a branch instruction supplied in a sequence of variable length instructions having a non-predetermined length, said computer circuit comprising: a) a length decoder circuit for receiving an instruction and determining its length; b) a first and a second pipeline for processing said sequence of variable length instructions; c) a decoder circuit for associating said branch instruction with one of said first pipeline and said second pipelines; and d) a branch target buffer for storing a tag address of a variable length instruction previous in said instruction sequence to said branch instruction wherein said previous variable length instruction will be processed at least one pipeline stage ahead of said previously executed branch instruction.
Claim 9
Dependent Claim 51 words
The computer circuit of claim 6 further comprising a prediction circuit for providing a predicted address responsive to a current address from a preselected stage of the first pipeline, said prediction circuit including circuitry for comparing said current address with at least one tag address stored in said branch target buffer.
Claim 10
Dependent Claim 23 words
The computer circuit of claim 7 further comprising: a verification circuit coupled to said first and second pipelines for verifying said predicted address.
Claim 11
Dependent Claim 34 words
The computer circuit of claim 8 wherein said verification circuit includes a circuit for comparing an actual target address computed in the execution stage with an address of an instruction following said branch instruction.
Claim 12
Dependent Claim 51 words
The computer circuit of claim 7 further comprising: a verification circuit for verifying an address predicted by said prediction circuit, including a circuit coupled to said first and second pipelines for comparing an actual target address computed in the execution stage with an address of an instruction following said branch instruction.
Claim 13
Dependent Claim 149 words
In a processor that has a first pipeline, a second pipeline, a decoder and a branch target buffer, a method for predicting a target location of a branch instruction supplied in a sequence of instructions, comprising the steps of: a) supplying said branch instruction to one of said first pipeline and said second pipeline; b) executing said branch instruction including determining an actual target address; c) storing said actual target address and a tag address of an instruction previous in said instruction sequence to said branch instruction wherein said previous instruction was processed one pipeline stage ahead of said branch instruction; d) in subsequent processing operations by said processor, comparing a subsequent instruction having a tag address with said tag address previously stored in said branch target buffer; and e) predicting a branch operation to a predicted address at said actual target address previously stored in said step c.
Claim 14
Dependent Claim 149 words
In a processor that has a first pipeline, a second pipeline, a decoder and a branch target buffer, a method for predicting a target location of a branch instruction supplied in a sequence of instructions, comprising the steps of: a) supplying said branch instruction to one of said first pipeline and said second pipeline; b) executing said branch instruction including determining an actual target address; c) storing said actual target address and a tag address of an instruction previous in said instruction sequence to said branch instruction wherein said previous instruction was processed one pipeline stage ahead of said branch instruction; d) in subsequent processing operations by said processor, comparing a subsequent instruction having a tag address with said tag address previously stored in said branch target buffer; and e) predicting a branch operation to a predicted address at said actual target address previously stored in said step c.
Claim 15
Dependent Claim 35 words
The method of claim 11 further comprising the step of: verifying said predicted address, including comparing an actual target address computed in the execution stage with an address of an instruction following said branch instruction.
Claim 16
Dependent Claim 112 words
In a microprocessor, a computer circuit for verifying a target location of a branch instruction supplied in a sequence of instructions, said computer circuit comprising: a pipeline for receiving said sequence of instructions; a branch prediction circuit coupled to said pipeline for predicting a branch target address responsive to said branch instruction wherein said branch prediction circuit further comprises a branch target buffer for storing a tag address of an instruction previous in said instruction sequence to said branch instruction; and a verification circuit coupled to said pipeline to compare an actual target address computed in the execution stage with an address of an instruction following said branch instruction in said pipeline.
Claim 17
Dependent Claim 112 words
In a microprocessor, a computer circuit for verifying a target location of a branch instruction supplied in a sequence of instructions, said computer circuit comprising: a pipeline for receiving said sequence of instructions; a branch prediction circuit coupled to said pipeline for predicting a branch target address responsive to said branch instruction wherein said branch prediction circuit further comprises a branch target buffer for storing a tag address of an instruction previous in said instruction sequence to said branch instruction; and a verification circuit coupled to said pipeline to compare an actual target address computed in the execution stage with an address of an instruction following said branch instruction in said pipeline.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-02-25 2000-08-26 2001-02-25 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-02-25 2004-08-26 2005-02-25 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-02-25 2008-08-26 2009-02-25 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag