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

Arithmetic unit for performing XY+B operation

Assignee: International Business Machines Corp
•
Filing: 1992-12-15
•
Granted: 1994-12-20
•
Expires: 2012-12-15
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An arithmetic unit rapidly performs an XY+B floating point operation and yields a result equivalent to truncation of the product of X and Y before adding to B. Standard circuitry produces partial products from multiplier X and multiplicand Y, and a standard adder adds the partial products to yield a sum vector and a carry vector. Meanwhile, other circuitry predicts whether a most significant digit of a sum of the sum vector and the carry vector is zero or nonzero, based on less than all bits of the multiplier X and the multiplicand Y. If the most significant digit is certainly not equal to zero, a multiplexing circuit passes to a second adder a most significant N digits of the sum vector, a most significant N digits of the carry vector, a carry bit resulting from addition an (N-1)th most significant digit and lesser significant digits of the sum vector with an (N+1)th most significant digit and less significant digits of the carry vector, and an operand B. If the most significant digit is certainly equal to zero, then the multiplexing circuitry passes to the second adder a most significant N+1 digits of the sum vector, a most significant N+1 digits of the carry vector, a carry bit resulting from the addition of an (N+2)th most significant digit and less significant digits of the sum vector with an (N+2)th most significant digit and lesser significant digits of the carry vector, and the operand B.

Inventors

  • 👤 David A. Hrusecky
  • 👤 Michael Putrino

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 17:22
CPC Classifications
G; G06; G06F; G06F7/00; G06F7/38; G06F7/48; G06F7/544; G06F7/5443; G06F7/483; G06F7/499; G06F7/49936; G06F7/49942; G06F7/49947

Claims Analysis

Total Claims: 28
Claim 1
Independent Claim 305 words
An arithmetic unit for performing an XY +B floating point operation, comprising: means for producing partial products from a multiplier X and a multiplicand Y; first means for adding said partial products to yield a sum vector and a carry vector; means for determining a first carry bit resulting from addition of an (N+2)th most significant digit and lesser significant digits of said sum vector with an (N +2)th most significant digit and lesser significant digits of said carry vector, and a second carry bit resulting from addition of an (N+1)th most significant digit and lesser significant digits of said sum vector with an (N+1)th most significant digit and lesser significant digits of said carry vector; means, functioning while the partial product producing means produces said partial products or the partial product adding means adds said partial products, for predicting whether a most significant digit of a sum of said sum vector and said carry vector is zero and predicting whether said most significant digit of said sum of said sum vector and said carry vector is nonzero, based on most significant but not all bits of said multiplier X and said multiplicand Y; and second means, coupled and responsive to the predicting means, for adding a most significant N digits of said sum vector, a most significant N digits of said carry vector, said second carry bit and an operand B if said prediction means predicts that said most significant digit of said sum of said sum vector and said carry vector is nonzero, and a most significant N+1 digits of said sum vector, a most significant N+1 digits of said carry vector, said first carry bit and said operand B if said prediction means predicts that said most significant digit of said sum of said sum vector and said carry vector is zero.
Claim 2
Dependent Claim 305 words
An arithmetic unit for performing an XY +B floating point operation, comprising: means for producing partial products from a multiplier X and a multiplicand Y; first means for adding said partial products to yield a sum vector and a carry vector; means for determining a first carry bit resulting from addition of an (N+2)th most significant digit and lesser significant digits of said sum vector with an (N +2)th most significant digit and lesser significant digits of said carry vector, and a second carry bit resulting from addition of an (N+1)th most significant digit and lesser significant digits of said sum vector with an (N+1)th most significant digit and lesser significant digits of said carry vector; means, functioning while the partial product producing means produces said partial products or the partial product adding means adds said partial products, for predicting whether a most significant digit of a sum of said sum vector and said carry vector is zero and predicting whether said most significant digit of said sum of said sum vector and said carry vector is nonzero, based on most significant but not all bits of said multiplier X and said multiplicand Y; and second means, coupled and responsive to the predicting means, for adding a most significant N digits of said sum vector, a most significant N digits of said carry vector, said second carry bit and an operand B if said prediction means predicts that said most significant digit of said sum of said sum vector and said carry vector is nonzero, and a most significant N+1 digits of said sum vector, a most significant N+1 digits of said carry vector, said first carry bit and said operand B if said prediction means predicts that said most significant digit of said sum of said sum vector and said carry vector is zero.
Claim 3
Dependent Claim 430 words
An arithmetic unit for performing an XY +B floating point operation, comprising: means for producing partial products from a multiplier X and a multiplicand Y; first means for adding said partial products to yield a sum vector and a carry vector; means for determining a first carry bit resulting from addition of an (N+2)th most significant digit and lesser significant digits of said sum vector with an (N +2)th most significant digit and lesser significant digits of said carry vector, and a second carry bit resulting from addition of an (N+1)th most significant digit and lesser significant digits of said sum vector with an (N+1)th most significant digit and lesser significant digits of said carry vector; means, functioning while the partial product producing means produces said partial products or the partial product adding means adds said partial products, for predicting for some but not all combinations of multipliers X and multiplicands Y whether a most significant digit of a sum of said sum vector and said carry vector is certainly zero or certainly nonzero, based on most significant but not all bits of said multiplier X and said multiplicand Y; and second means, coupled and responsive to the predicting means, for adding a most significant N digits of said sum vector, a most significant N digits of said carry vector, said second carry bit, and an operand B if said prediction means predicts that said most significant digit of said sum of said sum vector and said carry vector is nonzero, and a most significant N+1 digits of said sum vector, a most significant N+1 digits of said carry vector, said first carry bit and said operand B if said prediction means predicts that said most significant digit of said sum of said sum vector and said carry vector is zero; third means for adding all digits of said sum vector and all digits of said carry vector; and wherein the predicting means cannot predict for some combinations of multipliers X and multiplicands Y for which the sum of the respective sum vector and carry vector is approximately equal to hexadecimal one whether the most significant digit of the sum of the sum vector and the carry vector is certainly zero or certainly nonzero, and further comprising means for normalizing and truncating a sum output of the third adding means and adding the normalized and truncated sum output with said operand B when the predicting means cannot predict whether the most significant digit of the sum of the sum vector and the carry vector is certainly zero or certainly nonzero.
Claim 4
Dependent Claim 430 words
An arithmetic unit for performing an XY +B floating point operation, comprising: means for producing partial products from a multiplier X and a multiplicand Y; first means for adding said partial products to yield a sum vector and a carry vector; means for determining a first carry bit resulting from addition of an (N+2)th most significant digit and lesser significant digits of said sum vector with an (N +2)th most significant digit and lesser significant digits of said carry vector, and a second carry bit resulting from addition of an (N+1)th most significant digit and lesser significant digits of said sum vector with an (N+1)th most significant digit and lesser significant digits of said carry vector; means, functioning while the partial product producing means produces said partial products or the partial product adding means adds said partial products, for predicting for some but not all combinations of multipliers X and multiplicands Y whether a most significant digit of a sum of said sum vector and said carry vector is certainly zero or certainly nonzero, based on most significant but not all bits of said multiplier X and said multiplicand Y; and second means, coupled and responsive to the predicting means, for adding a most significant N digits of said sum vector, a most significant N digits of said carry vector, said second carry bit, and an operand B if said prediction means predicts that said most significant digit of said sum of said sum vector and said carry vector is nonzero, and a most significant N+1 digits of said sum vector, a most significant N+1 digits of said carry vector, said first carry bit and said operand B if said prediction means predicts that said most significant digit of said sum of said sum vector and said carry vector is zero; third means for adding all digits of said sum vector and all digits of said carry vector; and wherein the predicting means cannot predict for some combinations of multipliers X and multiplicands Y for which the sum of the respective sum vector and carry vector is approximately equal to hexadecimal one whether the most significant digit of the sum of the sum vector and the carry vector is certainly zero or certainly nonzero, and further comprising means for normalizing and truncating a sum output of the third adding means and adding the normalized and truncated sum output with said operand B when the predicting means cannot predict whether the most significant digit of the sum of the sum vector and the carry vector is certainly zero or certainly nonzero.
Claim 5
Dependent Claim 29 words
An arithmetic unit as set forth in claim 2 wherein the means for adding the normalized and truncated sum output with said operand B is the second adding means.
Claim 6
Dependent Claim 79 words
An arithmetic unit as set forth in claim 1 wherein the predicting means comprises decode logic means for decoding predetermined combinations of multiplier X and multiplicand Y which indicate that the most significant digit of the sum of the sum vector and the carry vector is zero and predetermined combinations of multiplier X and multiplicand Y which indicate that the most significant digit of the sum of the sum vector and the carry vector is not equal to zero.
Claim 7
Dependent Claim 40 words
An arithmetic unit as set forth in claim 4 wherein the predicting means further comprises means for switching X and Y inputs to said decode logic means when either X is greater than Y or X is less than Y.
Claim 8
Dependent Claim 35 words
An arithmetic unit as set forth in claim 1 further comprising means for normalizing an output of the second adding means and means for truncating a plurality of least significant digits of the normalized output.
Claim 9
Dependent Claim 21 words
An arithmetic unit as set forth in claim 1 further comprising means for aligning all inputs to the second adding means.
Claim 10
Independent Claim 258 words
A method for performing an XY+B floating point operation, said method comprising the steps of: producing partial products from a multiplier X and a multiplicand Y; adding said partial products to yield a sum vector and a carry vector; determining a first carry bit resulting from addition of an (N+2)th most significant digit and lesser significant digits of said sum vector with an (N+2)th most significant digit and lesser significant digits of said carry vector, and a second carry bit resulting from addition of an (N+1)th most significant digit and lesser significant digits Of said sum vector with an (N+1)th most significant digit and lesser significant digits of said carry vector; while the partial products are being produced or added, predicting whether a most significant digit of a sum of said sum vector and said carry vector is certainly zero or certainly nonzero, based on most significant but not all bits of said multiplier X and said multiplicand Y; adding a most significant N digits of said sum vector, a most significant N digits of said carry vector, said second carry bit, and an operand B if said prediction is that said most significant digit of said sum of said sum vector and said carry vector is nonzero, and adding a most significant N+1 digits of said sum vector, a most significant N+1 digits of said carry vector, said first carry bit, and said operand B if said prediction is that said most significant digit of said sum of said sum vector and said carry vector is zero.
Claim 11
Independent Claim 258 words
A method for performing an XY+B floating point operation, said method comprising the steps of: producing partial products from a multiplier X and a multiplicand Y; adding said partial products to yield a sum vector and a carry vector; determining a first carry bit resulting from addition of an (N+2)th most significant digit and lesser significant digits of said sum vector with an (N+2)th most significant digit and lesser significant digits of said carry vector, and a second carry bit resulting from addition of an (N+1)th most significant digit and lesser significant digits Of said sum vector with an (N+1)th most significant digit and lesser significant digits of said carry vector; while the partial products are being produced or added, predicting whether a most significant digit of a sum of said sum vector and said carry vector is certainly zero or certainly nonzero, based on most significant but not all bits of said multiplier X and said multiplicand Y; adding a most significant N digits of said sum vector, a most significant N digits of said carry vector, said second carry bit, and an operand B if said prediction is that said most significant digit of said sum of said sum vector and said carry vector is nonzero, and adding a most significant N+1 digits of said sum vector, a most significant N+1 digits of said carry vector, said first carry bit, and said operand B if said prediction is that said most significant digit of said sum of said sum vector and said carry vector is zero.
Claim 12
Dependent Claim 137 words
A method as set forth in claim 8 wherein the predicting step cannot predict for some combinations of multipliers X and multiplicands Y for which the sum of the respective sum vector and carry vector is approximately equal to hexadecimal one whether the most significant digit of the sum of the sum vector and the carry vector is certainly zero or certainly nonzero; and further comprising the steps of completely adding said sum vector and said carry vector; and normalizing and truncating a sum output of said complete addition of said sum vector and said carry vector and adding the normalized and truncated sum output with said operand B when the predicting step cannot predict whether the most significant digit of the sum of the sum vector and the carry vector is certainly zero or certainly nonzero.
Claim 13
Dependent Claim 74 words
A method as set forth in claim 8 wherein the predicting step comprises the step of decoding predetermined combinations of multiplier X and multiplicand Y which indicate that the most significant digit of the sum of the sum vector and the carry vector is zero and predetermined combinations of multiplier X and multiplicand Y which indicate that the most significant digit of the sum of the sum vector and the carry vector is nonzero.
Claim 14
Dependent Claim 39 words
A method as set forth in claim 10 wherein the predicting step further comprises the step of switching X and Y inputs for the decoding step when either X is greater than Y or X is less than Y.
Claim 15
Dependent Claim 38 words
A method as set forth in claim 8 further comprising the steps of normalizing a result of the adding step which is based on the prediction and truncating a plurality of least significant digits of the normalized output.
Claim 16
Dependent Claim 30 words
A method as set forth in claim 8 further comprising the step of aligning the sum vector and carry vector for the adding step which is based on the prediction.
Claim 17
Dependent Claim 226 words
An arithmetic unit for performing an XY+B floating point operation, comprising: means for producing partial products from a multiplier X and a multiplicand Y and adding said partial products to yield a sum vector and a carry vector; means for determining a first carry bit resulting from addition of an (N+2)th most significant digit and lesser significant digits of said sum vector with an (N +2)th most significant digit and lesser significant digits of said carry vector, and a second carry bit resulting from addition of an (N+1)th most significant digit and lesser significant digits of said sum vector with an (N+1)th most significant lesser significant digits of said carry vector; means for determining, while the partial products are produced or added, whether a most significant digit of a sum of said sum vector and said carry vector is certainly zero or certainly nonzero, based on most significant but not all bits of said multiplier X and said multiplicand Y, and if determined to be nonzero, adding a most significant N digits of said sum vector, a most significant N digits of said carry vector, said second carry bit, and an operand B, and if determined to be zero, adding a most significant N+1 digits of said sum vector, a most significant N+1 digits of said carry vector, said first carry bit, and said operand B.
Claim 18
Dependent Claim 226 words
An arithmetic unit for performing an XY+B floating point operation, comprising: means for producing partial products from a multiplier X and a multiplicand Y and adding said partial products to yield a sum vector and a carry vector; means for determining a first carry bit resulting from addition of an (N+2)th most significant digit and lesser significant digits of said sum vector with an (N +2)th most significant digit and lesser significant digits of said carry vector, and a second carry bit resulting from addition of an (N+1)th most significant digit and lesser significant digits of said sum vector with an (N+1)th most significant lesser significant digits of said carry vector; means for determining, while the partial products are produced or added, whether a most significant digit of a sum of said sum vector and said carry vector is certainly zero or certainly nonzero, based on most significant but not all bits of said multiplier X and said multiplicand Y, and if determined to be nonzero, adding a most significant N digits of said sum vector, a most significant N digits of said carry vector, said second carry bit, and an operand B, and if determined to be zero, adding a most significant N+1 digits of said sum vector, a most significant N+1 digits of said carry vector, said first carry bit, and said operand B.
Claim 19
Dependent Claim 112 words
An arithmetic unit as set forth in claim 14 wherein the determining means cannot determine for some combinations of multipliers X and multiplicands Y for which the sum of the respective sum vector and carry vector is approximately equal to hexadecimal one whether the most significant digit of the sum of the sum vector and the carry vector is certainly zero or certainly nonzero; and further comprising means, responsive to the lack of certainty of the determining means, for adding all digits of said sum vector and all digits of said carry vector, normalizing and truncating a result of said adding, and adding the normalized and truncated result with said operand B.
Claim 20
Dependent Claim 215 words
An arithmetic unit for performing an XY+B floating point operation, comprising: means for multiplying a multiplier X and a multiplicand Y to yield a sum vector and a carry vector; means for determining a first carry bit resulting from addition of an (N+2)th most significant digit and lesser significant digits of said sum vector with an (N +2)th most significant digit and lesser significant digits of said carry vector, and a second carry bit resulting from addition of an (N+1)th most significant digit and lesser significant digits of said sum vector with an (N+1)th most significant digit and lesser significant digits of said carry vector; means for determining, during said multiplying, whether a most significant digit of a sum of said sum vector and said carry vector is certainly zero or certainly nonzero, based on most significant but not all bits of said multiplier X and said multiplicand Y, and if determined to be nonzero, adding a most significant N digits of said sum vector, a most significant N digits of said carry vector, said second carry bit, and an operand B, and if determined to be zero, adding a most significant N+1 digits of said sum vector, a most significant N+1 digits of said carry vector, said first carry bit, and said operand B.
Claim 21
Dependent Claim 215 words
An arithmetic unit for performing an XY+B floating point operation, comprising: means for multiplying a multiplier X and a multiplicand Y to yield a sum vector and a carry vector; means for determining a first carry bit resulting from addition of an (N+2)th most significant digit and lesser significant digits of said sum vector with an (N +2)th most significant digit and lesser significant digits of said carry vector, and a second carry bit resulting from addition of an (N+1)th most significant digit and lesser significant digits of said sum vector with an (N+1)th most significant digit and lesser significant digits of said carry vector; means for determining, during said multiplying, whether a most significant digit of a sum of said sum vector and said carry vector is certainly zero or certainly nonzero, based on most significant but not all bits of said multiplier X and said multiplicand Y, and if determined to be nonzero, adding a most significant N digits of said sum vector, a most significant N digits of said carry vector, said second carry bit, and an operand B, and if determined to be zero, adding a most significant N+1 digits of said sum vector, a most significant N+1 digits of said carry vector, said first carry bit, and said operand B.
Claim 22
Dependent Claim 76 words
An arithmetic unit as set forth in claim 16 wherein the determining means comprises decode logic means for decoding predetermined combinations of multiplier X and multiplicand Y which indicate that the most significant digit of the sum of the sum vector and the carry vector is zero and predetermined combinations of multiplier X and multiplicand Y which indicate that the most significant digit of the sum of the sum vector and the carry vector is nonzero.
Claim 23
Independent Claim 225 words
A method for performing an XY+B floating point operation, said method comprising the steps of: producing partial products from a multiplier X and a multiplicand Y, and adding said partial products to yield a sum vector and a carry vector; determining a first carry bit resulting from addition of an (N+2)th most significant digit and lesser significant digits of said sum vector with an (N+2)th most significant digit and lesser significant digits of said carry vector, and a second carry bit resulting from addition of an (N+1)th most significant and lesser significant digits of said sum vector with an (N+1)th most significant digit and lesser significant digits of said carry vector; predicting, while the partial products are being produced or added, whether a most significant digit of a sum of said sum vector and said carry vector is certainly zero or certainly nonzero, based on most significant but not all bits of said multiplier X and said multiplicand Y, and if predicted to be nonzero, adding a most significant N digits of said sum vector, a most significant N digits of said carry vector, said second carry bit, and an operand B, and if predicted to be zero, adding a most significant N+1 digits of said sum vector, a most significant N+1 digits of said carry vector, said first carry bit, and said operand B.
Claim 24
Independent Claim 225 words
A method for performing an XY+B floating point operation, said method comprising the steps of: producing partial products from a multiplier X and a multiplicand Y, and adding said partial products to yield a sum vector and a carry vector; determining a first carry bit resulting from addition of an (N+2)th most significant digit and lesser significant digits of said sum vector with an (N+2)th most significant digit and lesser significant digits of said carry vector, and a second carry bit resulting from addition of an (N+1)th most significant and lesser significant digits of said sum vector with an (N+1)th most significant digit and lesser significant digits of said carry vector; predicting, while the partial products are being produced or added, whether a most significant digit of a sum of said sum vector and said carry vector is certainly zero or certainly nonzero, based on most significant but not all bits of said multiplier X and said multiplicand Y, and if predicted to be nonzero, adding a most significant N digits of said sum vector, a most significant N digits of said carry vector, said second carry bit, and an operand B, and if predicted to be zero, adding a most significant N+1 digits of said sum vector, a most significant N+1 digits of said carry vector, said first carry bit, and said operand B.
Claim 25
Dependent Claim 49 words
A method as set forth in claim 18 wherein the predicting step comprises the step of decoding predetermined combinations of multiplier X and multiplicand Y which indicate that the most significant digit of the sum of the sum vector and the carry vector is certainly zero or certainly nonzero.
Claim 26
Dependent Claim 200 words
An arithmetic unit for performing an XY+B floating point operation, comprising: means for producing partial products from a multiplier X and a multiplicand Y and adding said partial products to yield a sum vector and a carry vector; and means for determining carry bits resulting from addition of least significant but not all digits of said sum vector and least significant but not all digits of said carry vector; means for determining, while the partial products are produced or added, for most but not all combinations of multiplier X and multiplicand Y whether a most significant digit of a sum of said sum vector and said carry vector is certainly zero or certainly nonzero, based on most significant but not all bits of said multiplier X and most significant but not all bits of said multiplicand Y, and if determined to be certainly zero or certainly nonzero, adding most significant but not all digits of said sum vector, most significant but not all digits of said carry vector, one of said carry bits corresponding to a least significant bit of said multiplier X and a least significant bit of said multiplicand Y which are being added, and an operand B.
Claim 27
Dependent Claim 200 words
An arithmetic unit for performing an XY+B floating point operation, comprising: means for producing partial products from a multiplier X and a multiplicand Y and adding said partial products to yield a sum vector and a carry vector; and means for determining carry bits resulting from addition of least significant but not all digits of said sum vector and least significant but not all digits of said carry vector; means for determining, while the partial products are produced or added, for most but not all combinations of multiplier X and multiplicand Y whether a most significant digit of a sum of said sum vector and said carry vector is certainly zero or certainly nonzero, based on most significant but not all bits of said multiplier X and most significant but not all bits of said multiplicand Y, and if determined to be certainly zero or certainly nonzero, adding most significant but not all digits of said sum vector, most significant but not all digits of said carry vector, one of said carry bits corresponding to a least significant bit of said multiplier X and a least significant bit of said multiplicand Y which are being added, and an operand B.
Claim 28
Dependent Claim 51 words
An arithmetic unit as set forth in claim 20 wherein the determining means comprises decode logic means for decoding predetermined combinations of multiplier X and multiplicand Y which indicate that the most significant digit of the sum of the sum vector and the carry vector is certainly zero or certainly nonzero.

References Cited (Backward Citations)

US3987291A Cited
US4511990A Cited
US4592006A Cited
US4594678A Cited
US4852037A Cited
US4831577A Cited
US4866652A Cited
US4969118A Cited
US5070471A Cited
US5113363A Cited
US5119324A Cited
US5241490A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-12-19 1998-06-20 1998-12-20 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-12-19 2002-06-20 2002-12-20 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-12-19 2006-06-20 2006-12-20 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag