Patent US4914579A successfully refreshed from Google Patents.
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
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 10:24
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 |