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
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.
References Cited (Backward Citations)
US4442484A
Cited
US4725947A
Cited
US4876639A
Cited
US4777587A
Cited
US4864493A
Cited
US4881170A
Cited
US4847753A
Cited
US4974154A
Cited
US5526498A
Cited
US4926323A
Cited
US5214770A
Cited
US5127091A
Cited
US5226130A
Cited
US5265213A
Cited
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 |