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

Decode history table for conditional branch instructions

Assignee: International Business Machines Corp
•
Filing: 1982-01-15
•
Granted: 1984-10-16
•
Expires: 2002-01-15
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus predicting the outcome of a conditional branch instruction based on the previous performance of the branch, rather than on the instruction fields. The prediction of the outcome of a conditional branch instruction is performed utilizing a table that records the history of the outcome of the branch at a given memory location. A decode-time history table (DHT) is utilized. The DHT attempts to guess only the outcome of a conditional branch instruction, but not its target address. Thus, it can only be used to guess the branch outcomes at decode time when the target address is available. During the decoding of a conditional branch instruction, a table is accessed using the memory address of the branch instruction itself or some portions thereof. The table records the history of the outcomes of the branch at this memory location up to the congruence of the table size. A combinational circuit determines the guess (taken or not taken) from the branch history as provided by the table.

Inventors

  • 👤 Jacques J. Losq
  • 👤 Gururaj S. Rao
  • 👤 Howard E. Sachar

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-24 08:00
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3836; G06F9/3842; G06F9/3844

Claims Analysis

Total Claims: 5
Claim 1
Independent Claim 384 words
In a computing machine, apparatus for predicting the outcome of conditional branch instructions, the combination comprising: an address queue in which the addresses of conditional branch instructions that have been successfully decoded, but have not finished being executed are stored; an address and history table in which at least a portion of the addresses of conditional branch instructions are stored, including at least one stored history bit associated with each of said conditional branch instructions which is indicative of whether or not the previous executions of the associated conditional branch instruction resulted in a branch being taken; an instruction address register in which the address of a given conditional branch instruction is stored during the instruction decode cycle, wherein said address contains a match portion and a read portion, including means for transferring said address of said given conditional branch instruction to said address queue, and applying said read portion to said address and history table for reading out said at least a portion of the address of said given conditional branch instruction and its associated said at least one history bit; a compare network which has the match portion of the address of said given conditional branch instruction applied to a first input thereof from said instruction address register, and which has said at least a portion of the address of said given conditional branch instruction read out from said address and history table applied to a second input thereof, with said compare network having a MATCH output and a NO MATCH output, which provide a gating signal at the respective outputs when the address information applied to said first and second inputs does and does not match, respectively; a combinational circuit to which said at least one history bit read out of said address and history table is applied, with said combinational circuit providing a one bit binary output signal which indicates that execution of said conditional branch instruction will result in a branch being taken or not taken when in a first binary state or a second binary state, respectively; and first means for indicating the probable outcome of said given conditional branch instruction based on the one binary output signal from said combinational circuit whenever there is a gating output signal provided at the MATCH output of said compare network.
Claim 2
Dependent Claim 384 words
In a computing machine, apparatus for predicting the outcome of conditional branch instructions, the combination comprising: an address queue in which the addresses of conditional branch instructions that have been successfully decoded, but have not finished being executed are stored; an address and history table in which at least a portion of the addresses of conditional branch instructions are stored, including at least one stored history bit associated with each of said conditional branch instructions which is indicative of whether or not the previous executions of the associated conditional branch instruction resulted in a branch being taken; an instruction address register in which the address of a given conditional branch instruction is stored during the instruction decode cycle, wherein said address contains a match portion and a read portion, including means for transferring said address of said given conditional branch instruction to said address queue, and applying said read portion to said address and history table for reading out said at least a portion of the address of said given conditional branch instruction and its associated said at least one history bit; a compare network which has the match portion of the address of said given conditional branch instruction applied to a first input thereof from said instruction address register, and which has said at least a portion of the address of said given conditional branch instruction read out from said address and history table applied to a second input thereof, with said compare network having a MATCH output and a NO MATCH output, which provide a gating signal at the respective outputs when the address information applied to said first and second inputs does and does not match, respectively; a combinational circuit to which said at least one history bit read out of said address and history table is applied, with said combinational circuit providing a one bit binary output signal which indicates that execution of said conditional branch instruction will result in a branch being taken or not taken when in a first binary state or a second binary state, respectively; and first means for indicating the probable outcome of said given conditional branch instruction based on the one binary output signal from said combinational circuit whenever there is a gating output signal provided at the MATCH output of said compare network.
Claim 3
Dependent Claim 186 words
The combination claimed in claim 1, including: a history queue in which the said at least one history bit associated with the addresses of conditional branch instructions which have been successfully decoded but have not finished being executed are stored, with said at least one history bit read out of said address and history table being applied to the top of said history queue, and the bottom of said history queue containing said at least one history bit associated with the conditional branch instruction presently being executed; and a correction network to which said at least one history bit contained in the bottom of said history queue is applied, with the state of said at least one history bit remaining the same or changing state based on whether the previous branch probable outcome indication for the associated conditional branch instruction was correct or incorrect, respectively, with a corrected history bit being applied to said address and history table, concurrent with the match portion of the conditional branch instruction presently being executed being applied to said address and history table from the bottom of said address queue.
Claim 4
Dependent Claim 117 words
The combination claimed in claim 2, wherein said at least one bit history portion of said address and history table is n bits wide, where n is an integer ≧3, and said combinational circuit comprises: a majority logic network having said n bits applied to the inputs thereof, and providing a one bit binary output signal which is indicative of said given conditional branch instruction being taken or not taken when in one of first and second binary states, respectively, with said one bit binary output signal being in the first binary state when the majority of said n bits are in the first binary state and being in the second binary state at all other times.
Claim 5
Dependent Claim 49 words
The combination claimed in claim 1, including: second means for indicating the probable outcome of said given conditional branch instruction based on the status of an externally supplied default branch guess signal whenever there is a gating output signal provided at the NO MATCH output of said compare network.

References Cited (Backward Citations)

US3940741A Cited
US3881173A Cited
US4110822A Cited
US4200927A Cited
US4179738A Cited
US4370711A Cited
US4402042A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1987-10-16 1988-04-16 1988-10-16 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1991-10-16 1992-04-16 1992-10-16 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1995-10-16 1996-04-16 1996-10-16 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag