US5515518A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Two-level branch prediction cache
Assignee: Nexgen Inc
•
Filing: 1994-07-05
•
Granted: 1996-05-07
•
Expires: 2014-07-05
Abstract
Abstract AN improved branch prediction cache (BPC) scheme that utilizes a hybrid cache structure. The BPC provides two levels of branch information caching. The fully associative first level BPC is a shallow but wide structure (36 32-byte entries), which caches full prediction information for a limited number of branch instructions. The second direct mapped level BPC is a deep but narrow structure (256 2-byte entries), which caches only partial prediction information, but does so for a much larger number of branch instructions. As each branch instruction is fetched and decoded, its address is used to perform parallel look-ups in the two branch prediction caches.
Inventors
- 👤 David R. Stiles
- 👤 John G. Favor
- 👤 Korbin S. Van Dyke
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-29 04:24
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3802; G06F9/3804; G06F9/3806; G06F9/3836; G06F9/3842; G06F9/3848
Claims Analysis
Total Claims: 35
Claim 1
Independent Claim
223 words
In a computer system that includes decode logic responsive to encountered instructions having addresses, a branch prediction device comprising: a first level branch prediction cache (BPC) having a first number N1 of lines for storing prediction information on up to N1 previously encountered branch instructions, each line in said first level BPC being configured to store an entry providing prediction information at a first level of detail, said first level BPC being responsive to a first set of address bits of an encountered instruction, and including first means for enabling a given first level BPC entry to be output in the event that said first set of address bits and the given first level BPC entry satisfy a predetermined condition; and a second level BPC having a second number N2 of lines, larger than said first number of lines, for storing prediction information on up to N2 previously encountered branch instructions, each line in said second level BPC being configured to store an entry providing prediction information at a second level of detail, lower than said first level of detail, said second level BPC being responsive to a second set of address bits of the encountered instruction and including second means for enabling a second level BPC entry to be output for use in the event that said predetermined condition is not met.
Claim 2
Dependent Claim
223 words
In a computer system that includes decode logic responsive to encountered instructions having addresses, a branch prediction device comprising: a first level branch prediction cache (BPC) having a first number N1 of lines for storing prediction information on up to N1 previously encountered branch instructions, each line in said first level BPC being configured to store an entry providing prediction information at a first level of detail, said first level BPC being responsive to a first set of address bits of an encountered instruction, and including first means for enabling a given first level BPC entry to be output in the event that said first set of address bits and the given first level BPC entry satisfy a predetermined condition; and a second level BPC having a second number N2 of lines, larger than said first number of lines, for storing prediction information on up to N2 previously encountered branch instructions, each line in said second level BPC being configured to store an entry providing prediction information at a second level of detail, lower than said first level of detail, said second level BPC being responsive to a second set of address bits of the encountered instruction and including second means for enabling a second level BPC entry to be output for use in the event that said predetermined condition is not met.
Claim 3
Dependent Claim
15 words
The branch prediction device of claim 1 wherein said first level BPC is fully associative.
Claim 4
Dependent Claim
15 words
The branch prediction device of claim 1 wherein said second level BPC is direct mapped.
Claim 5
Dependent Claim
52 words
The branch prediction device of claim 1, wherein said first set of address bits includes a first subset of address bits from an input program counter (PC) containing the address of the encountered instruction, and said second set of address bits includes a second subset of address bits from the input PC.
Claim 6
Dependent Claim
38 words
The branch prediction device of claim 1 wherein the said second means enables a second level BPC entry to be output in response to said second set of address bits regardless of whether said predetermined condition is met.
Claim 7
Dependent Claim
70 words
The branch prediction device of claim 1, wherein said prediction information stored in each line of said first level BPC comprises: an address of a previously encountered branch instruction; a full target address to which said previously encountered branch instruction last branched; and target instruction information starting at said target address; and wherein said first means for enabling includes means for communicating said target instruction information to the decode logic.
Claim 8
Dependent Claim
41 words
The branch prediction device of claim 6, wherein said prediction information stored in each line of said first level BPC further comprises branch history information representing the direction taken during at least one previous execution of said previously encountered branch instruction.
Claim 9
Dependent Claim
16 words
The branch prediction device of claim 6, wherein said target instruction information comprises 24 instruction bytes.
Claim 10
Dependent Claim
20 words
The branch prediction device of claim 6, wherein said target instruction information includes a plurality of groups of instruction bytes.
Claim 11
Dependent Claim
21 words
The branch prediction device of claim 9, wherein each of said plurality of groups of instruction bytes comprises eight instruction bytes.
Claim 12
Dependent Claim
15 words
The branch prediction device of claim 9, wherein said plurality of groups comprises three groups.
Claim 13
Dependent Claim
245 words
In a computer system that includes decode logic responsive to encountered instructions having addresses, a branch prediction device comprising: a first level branch prediction cache (BPC) having a first number N1 of lines for storing prediction information on up to N1 previously encountered branch instructions, each line in said first level BPC being configured to store an entry providing prediction information at a first level of detail, said first level BPC being responsive to a first set of address bits of an encountered instruction, and including a first associative memory, said first associative memory enabling a given first level BPC entry to be output in the event that said first set of address bits results in a match associated with said given first level BPC entry; and a second level BPC having a second number N2 of lines, larger than said first number of lines, for storing prediction information on up to N2 previously encountered branch instructions, each line in said second level BPC being configured to store an entry providing prediction information at a second level of detail, lower than said first level of detail, said second level BPC being responsive to a second set of address bits of the encountered instruction, and including a second memory, said second memory enabling a second level BPC entry to be output for use in the event that said first set of address bits does not result in a match associated with any first level BPC entry.
Claim 14
Dependent Claim
245 words
In a computer system that includes decode logic responsive to encountered instructions having addresses, a branch prediction device comprising: a first level branch prediction cache (BPC) having a first number N1 of lines for storing prediction information on up to N1 previously encountered branch instructions, each line in said first level BPC being configured to store an entry providing prediction information at a first level of detail, said first level BPC being responsive to a first set of address bits of an encountered instruction, and including a first associative memory, said first associative memory enabling a given first level BPC entry to be output in the event that said first set of address bits results in a match associated with said given first level BPC entry; and a second level BPC having a second number N2 of lines, larger than said first number of lines, for storing prediction information on up to N2 previously encountered branch instructions, each line in said second level BPC being configured to store an entry providing prediction information at a second level of detail, lower than said first level of detail, said second level BPC being responsive to a second set of address bits of the encountered instruction, and including a second memory, said second memory enabling a second level BPC entry to be output for use in the event that said first set of address bits does not result in a match associated with any first level BPC entry.
Claim 15
Dependent Claim
15 words
The branch prediction device of claim 12 wherein said second level BPC is direct mapped.
Claim 16
Dependent Claim
52 words
The branch prediction device of claim 12, wherein said first set of address bits includes a first subset of address bits from an input program counter (PC) containing the address of the encountered instruction, and said second set of address bits includes a second subset of address bits from the input PC.
Claim 17
Dependent Claim
49 words
The branch prediction device of claim 12 wherein said second memory enables a second level BPC entry to be output in response to said second set of address bits regardless of whether said first set of address bits results in a match associated with any first level BPC entry.
Claim 18
Dependent Claim
75 words
The branch prediction device of claim 12, wherein said prediction information stored in each line of said first level BPC comprises: an address of a previously encountered branch instruction; a full target address to which said previously encountered branch instruction last branched; and target instruction information starting at said target address; and wherein said target instruction information is coupled to said decode logic subsequent to said match associated with said given first level BPC entry.
Claim 19
Dependent Claim
41 words
The branch prediction device of claim 16, wherein said prediction information stored in each line of said first level BPC further comprises branch history information representing the direction taken during at least one previous execution of said previously encountered branch instruction.
Claim 20
Dependent Claim
16 words
The branch prediction device of claim 16 wherein said target instruction information comprises 24 instruction bytes.
Claim 21
Dependent Claim
20 words
The branch prediction device of claim 16, wherein said target instruction information includes a plurality of groups of instruction bytes.
Claim 22
Dependent Claim
21 words
The branch prediction device of claim 19, wherein each of said plurality of groups of instruction bytes comprises eight instruction bytes.
Claim 23
Dependent Claim
15 words
The branch prediction device of claim 20, wherein said plurality of groups comprises three groups.
Claim 24
Dependent Claim
114 words
A branch prediction method comprising: providing a first branch prediction cache (BPC); providing a second BPC; presenting a first set of address bits of an encountered instruction to said first BPC; presenting a second set of address bits of the encountered instruction to said second BPC; reading a first set of information from said first BPC, if there is a match on said first set of address bits in said first BPC; enabling the output of said second BPC, at least if said match in said first BPC does not occur; and reading a second set of information from said second BPC, at least if said match in said first BPC does not occur.
Claim 25
Dependent Claim
114 words
A branch prediction method comprising: providing a first branch prediction cache (BPC); providing a second BPC; presenting a first set of address bits of an encountered instruction to said first BPC; presenting a second set of address bits of the encountered instruction to said second BPC; reading a first set of information from said first BPC, if there is a match on said first set of address bits in said first BPC; enabling the output of said second BPC, at least if said match in said first BPC does not occur; and reading a second set of information from said second BPC, at least if said match in said first BPC does not occur.
Claim 26
Dependent Claim
52 words
The branch prediction method of claim 22, wherein said first set of address bits includes a first subset of address bits from an input program counter (PC) containing the address of the encountered instruction, and said second set of address bits includes a second subset of address bits from the input PC.
Claim 27
Dependent Claim
31 words
The branch prediction method of claim 22 wherein said step of enabling the output of said second level BPC is performed regardless of whether said match in said first BPC occurs.
Claim 28
Dependent Claim
44 words
The branch prediction method of claim 22, wherein said first set of information includes: an address of a previously encountered branch instruction; a full target address to which said previously encountered branch instruction last branched; and target instruction information starting at said target address.
Claim 29
Dependent Claim
34 words
The branch prediction method of claim 25, wherein said first set of information further includes branch history information representing the direction taken during at least one previous execution of said previously encountered branch instruction.
Claim 30
Dependent Claim
16 words
The branch prediction method of claim 25, wherein said target instruction information comprises 24 instruction bytes.
Claim 31
Dependent Claim
20 words
The branch prediction method of claim 25, wherein said target instruction information includes a plurality of groups of instruction bytes.
Claim 32
Dependent Claim
21 words
The branch prediction device of claim 28, wherein each of said plurality of groups of instruction bytes comprises eight instruction bytes.
Claim 33
Dependent Claim
15 words
The branch prediction device of claim 29, wherein said plurality of groups comprises three groups.
Claim 34
Dependent Claim
194 words
A branch prediction method comprising: providing a first branch prediction cache (BPC); providing a second BPC; presenting a first set of address bits to said first BPC, said first set of address bits including a first subset of address bits from an input program counter (PC) containing the address of an encountered instruction; presenting a second set of address bits to said second BPC, said second set of address bits including a second subset of address bits from the input PC; if there is a match on said first set of address bits presented to said first BPC, reading a first set of information from said first BPC, said first set of information including an address of a previously encountered branch instruction, a full target address to which said previously encountered branch instruction last branched, branch history information representing the direction taken during at least one previous execution of said previously encountered branch instruction, and three groups of eight target instruction bytes, said instruction bytes starting at said target address; enabling an output of said second BPC; and if said match does not occur, reading a second set of information from said second BPC.
Claim 35
Dependent Claim
194 words
A branch prediction method comprising: providing a first branch prediction cache (BPC); providing a second BPC; presenting a first set of address bits to said first BPC, said first set of address bits including a first subset of address bits from an input program counter (PC) containing the address of an encountered instruction; presenting a second set of address bits to said second BPC, said second set of address bits including a second subset of address bits from the input PC; if there is a match on said first set of address bits presented to said first BPC, reading a first set of information from said first BPC, said first set of information including an address of a previously encountered branch instruction, a full target address to which said previously encountered branch instruction last branched, branch history information representing the direction taken during at least one previous execution of said previously encountered branch instruction, and three groups of eight target instruction bytes, said instruction bytes starting at said target address; enabling an output of said second BPC; and if said match does not occur, reading a second set of information from said second BPC.
References Cited (Backward Citations)
US4295193A
Cited
US4442488A
Cited
US4594659A
Cited
US4777594A
Cited
US4802113A
Cited
US4827402A
Cited
US4679141A
Cited
US4777587A
Cited
US4775955A
Cited
US4853840A
Cited
US4722050A
Cited
US4796175A
Cited
US4847753A
Cited
US4933837A
Cited
US4860199A
Cited
US4894772A
Cited
US4942520A
Cited
US4991078A
Cited
US4882673A
Cited
US4943908A
Cited
US4926323A
Cited
US5142634A
Cited
US5136697A
Cited
US5163140A
Cited
US5327547A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1999-05-07 | 1999-11-06 | 2000-05-07 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2003-05-07 | 2003-11-06 | 2004-05-07 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2007-05-07 | 2007-11-06 | 2008-05-07 | $7700.00 | Window Closed / Lapsed |