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

Apparatus for branch prediction for computer instructions

Assignee: International Business Machines Corp
•
Filing: 1988-02-17
•
Granted: 1990-04-03
•
Expires: 2008-02-17
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An apparatus for branch prediction for computer instructions predicts the outcome of an executing branch instruction in response to instruction operands Q, R, and B. The apparatus includes combinatorial logic for predicting a first branch condition, ((Q+R)-B)>0, or a second branch condition ((Q+R)-B)≦0.

Inventors

  • 👤 Michael Putrino
  • 👤 Stamatis Vassiliadis
  • 👤 Ann E. Huffman
  • 👤 Agnes Y. Ngai

Bibliographic Details

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

Claims Analysis

Total Claims: 8
Claim 1
Independent Claim 442 words
In a computing system which executes a multipath sequence of instructions including a branching instruction by producing and manipulating signed, N-bit operands, and includes an arithmetic/logic unit for executing said branching instruction by subtraction of a compare operand, B, having a sign bit B(0), from the sum of a current value operand, Q, having a sign bit Q(0) and an operand, R, having a sign bit R(0), wherein the improvement to said computing system is for predicting the outcome of the execution of said branching instruction concurrently with said execution, the improvement comprising: first logic circuit means receiving said operands Q and R for determining a sign bit, A(0), of the SUM of said operand Q and said operand, R; means for providing said operand B in complement format; a carry-save-adder receiving said operands Q and R and the one's complement of said operand B, said carry-save-adder for providing two N-bit output signals, Px and Py, said carry-save-adder including logic gates for producing Px and Py by executing the formula Px(i)=Q(i) V R(i) V B(i)' and the formula, Py(i)=(Q(i).R(i))|(Q(i).B(i)')|(R(i).B(i)') where Q(i) is the ith bit of operand Q, R(i) is the ith bit of operand R, B(i)' is the ith bit of the one's complement of operand B, Px(i) is the ith bit of said output signal Px, Py(i) is the ith bit of said output signal Py and i is an integer, and 0≦i≦N-1; second logic circuit means connected to said carry-save-adder and responsive to Px and Py for determining the sign bit SUM 0 , resulting from the subtraction of said operand B from the SUM of said operands Q and R; third logic circuit means connected to said carry-save-adder for determining when the SUM of operands Q and R is equal to operand B, said third logic circuit means including logic gates for executing the equation ##EQU12## where E is a logical one when said SUM is equal to operand B, N is an integer equal to the numb of bits in Px and Py, and 0 is the most significant bit of Px and Py; and branch block circuit means connected to said first, second, and third logic circuit means for determining if said third binary word subtracted from the SUM of said first and second binary words is less than or equal to zero, said means including logic gates for executing the formula: ##EQU13## where (A≦B) is a logical one when said third binary word being subtracted from the SUM of said first and second binary words is less than or equal to zero. A(0)' is the inverse of A(0), and B(0)' is the inverse of B(0).
Claim 2
Dependent Claim 442 words
In a computing system which executes a multipath sequence of instructions including a branching instruction by producing and manipulating signed, N-bit operands, and includes an arithmetic/logic unit for executing said branching instruction by subtraction of a compare operand, B, having a sign bit B(0), from the sum of a current value operand, Q, having a sign bit Q(0) and an operand, R, having a sign bit R(0), wherein the improvement to said computing system is for predicting the outcome of the execution of said branching instruction concurrently with said execution, the improvement comprising: first logic circuit means receiving said operands Q and R for determining a sign bit, A(0), of the SUM of said operand Q and said operand, R; means for providing said operand B in complement format; a carry-save-adder receiving said operands Q and R and the one's complement of said operand B, said carry-save-adder for providing two N-bit output signals, Px and Py, said carry-save-adder including logic gates for producing Px and Py by executing the formula Px(i)=Q(i) V R(i) V B(i)' and the formula, Py(i)=(Q(i).R(i))|(Q(i).B(i)')|(R(i).B(i)') where Q(i) is the ith bit of operand Q, R(i) is the ith bit of operand R, B(i)' is the ith bit of the one's complement of operand B, Px(i) is the ith bit of said output signal Px, Py(i) is the ith bit of said output signal Py and i is an integer, and 0≦i≦N-1; second logic circuit means connected to said carry-save-adder and responsive to Px and Py for determining the sign bit SUM 0 , resulting from the subtraction of said operand B from the SUM of said operands Q and R; third logic circuit means connected to said carry-save-adder for determining when the SUM of operands Q and R is equal to operand B, said third logic circuit means including logic gates for executing the equation ##EQU12## where E is a logical one when said SUM is equal to operand B, N is an integer equal to the numb of bits in Px and Py, and 0 is the most significant bit of Px and Py; and branch block circuit means connected to said first, second, and third logic circuit means for determining if said third binary word subtracted from the SUM of said first and second binary words is less than or equal to zero, said means including logic gates for executing the formula: ##EQU13## where (A≦B) is a logical one when said third binary word being subtracted from the SUM of said first and second binary words is less than or equal to zero. A(0)' is the inverse of A(0), and B(0)' is the inverse of B(0).
Claim 3
Dependent Claim 21 words
The improvement of claim 1, wherein said data processing systems alters said series of instructions in response to said variable (A≦B).
Claim 4
Dependent Claim 39 words
The improvement of claim 1, wherein said first logic circuit means includes logic gates for executing the equation: A(0)=(Ma(0).Sa(1))|(Ha(0).Sa(1)') where Ma(0)=Ha(0) V Ta(1) Ha(0)=Q(0) V R(0) Sa(1)=G*a(1,m)|(Ta(2,m+1) Sa(m+1,z)) Z being some natural number such that m<z. ##EQU14## and Ta(1)=Q(1)|R(1)
Claim 5
Dependent Claim 51 words
The improvement of claim 1, where said second logic circuit means includes logic gates executing the equation: SUM 0 =(M(0).S(1))|(H(0).S(1)') where M(0)=H(0) V T(1) H(0)=Px(0) V Py(1) S(1)=G*(1,m)|(T(2,m+1).S(m+1,z)) z being some natural number such that m<z. G*(1,m)=G(1)|G(2)|(T(2).G(3))|(T(2).T(3).G(4)) |. . . | (T(2,m-1).G(m)) T(2,m+1)=T(2).T(3).T(4).T(5). . . . . T(m)T(m+1) G(1)=Px(1).Py(2), and T(1)=Px(1)|Py(2)
Claim 6
Dependent Claim 26 words
The improvement of claim 1, where said third logic circuit means includes logic gates executing the equation: E=[Px(N-1).H(0).H(1). . . . .H(N-2)] where H(i)=Px(i) V Py(i+1)
Claim 7
Independent Claim 260 words
An apparatus for predicting the outcome of an executing branching instruction process in which N-bit operands Q, R, and B, having sign bits Q(0), R(0), and B(0), respectively, are combined according to the relationship: A-B, where A=(Q+R); and, wherein a first program branch condition signal, BCI, occurs when (A-B)>0, and a second program branch condition signal, BC2, occurs when (A-B)≦0, said apparatus comprising: carry-save circuit means for generating signals Px(i) and Py(i) by logically combining respective bits of operands Q, R, and B, according to: Px(i)=Q(i) V R(i) V B(i),'and Py(i)=(Q(i).R(i))|(Q(i).B(i)')|(R(i).B(i)'); second circuit means connected to said carry-save circuit means for logically combining said signals Px(i) and Py(i) to produce a signal, SUM 0 , indicating the sign of A-B; third circuit means responsive to operands Q and R for logically combining respective bits of operands Q and R to produce a signal, AO, indicating the sign of A; fourth circuit means connected to said carry-save circuit means for logically combining said signals Px(i) and Py(i) to produce a signal, E, indicating A=B; means in said third circuit means for providing the complement of A0, said complement signified by A0'; a first gate means connected to said second, third, and fourth circuit means for generating a first condition signal, BC1, indicating said first program branch condition, said first gate means generating BC1 according to: ##EQU15## a second gate means connected to said second, third, and fourth circuit means for generating a second condition signal, BC2, indicating said second program branch condition, said second gate means generating BC2 according to: BC2=[*AO'.BO'.SUM.sub.0)|(AO.BO.SUM.sub.0)|(AO.BO').vertline.E].
Claim 8
Independent Claim 260 words
An apparatus for predicting the outcome of an executing branching instruction process in which N-bit operands Q, R, and B, having sign bits Q(0), R(0), and B(0), respectively, are combined according to the relationship: A-B, where A=(Q+R); and, wherein a first program branch condition signal, BCI, occurs when (A-B)>0, and a second program branch condition signal, BC2, occurs when (A-B)≦0, said apparatus comprising: carry-save circuit means for generating signals Px(i) and Py(i) by logically combining respective bits of operands Q, R, and B, according to: Px(i)=Q(i) V R(i) V B(i),'and Py(i)=(Q(i).R(i))|(Q(i).B(i)')|(R(i).B(i)'); second circuit means connected to said carry-save circuit means for logically combining said signals Px(i) and Py(i) to produce a signal, SUM 0 , indicating the sign of A-B; third circuit means responsive to operands Q and R for logically combining respective bits of operands Q and R to produce a signal, AO, indicating the sign of A; fourth circuit means connected to said carry-save circuit means for logically combining said signals Px(i) and Py(i) to produce a signal, E, indicating A=B; means in said third circuit means for providing the complement of A0, said complement signified by A0'; a first gate means connected to said second, third, and fourth circuit means for generating a first condition signal, BC1, indicating said first program branch condition, said first gate means generating BC1 according to: ##EQU15## a second gate means connected to said second, third, and fourth circuit means for generating a second condition signal, BC2, indicating said second program branch condition, said second gate means generating BC2 according to: BC2=[*AO'.BO'.SUM.sub.0)|(AO.BO.SUM.sub.0)|(AO.BO').vertline.E].

References Cited (Backward Citations)

US3418638A Cited
US3551895A Cited
US3649817A Cited
US4062058A Cited
US4200927A Cited
US4224680A Cited
US4430706A Cited
US4439827A Cited
US4725947A Cited
US4837681A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1993-04-02 1993-10-02 1994-04-03 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1997-04-02 1997-10-02 1998-04-03 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2001-04-02 2001-10-02 2002-04-03 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag