Patent US5757686A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5757686A Expired / Lapsed US ⏱️ 0.0 years remaining

Method of decoupling the high order portion of the addend from the multiply result in an FMAC

Assignee: Hewlett Packard Enterprise Development LP
•
Filing: 1995-11-30
•
Granted: 1998-05-26
•
Expires: 2015-11-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus for decoupling the high order portion of the addend from the multiply result in an FMAC (floating-point multiply accumulate unit) such that the FMAC's datapath width is bounded to "2m+1"-bits, and the maximum width of required adders, shifters and leading bit anticipators is also bounded to "2m+1"-bits. The method and apparatus 1) reduce the necessary chip area for implementing an FMAC, and 2) reduce the length of routing paths through adders and shifters.

Inventors

  • 👤 Samuel D. Naffziger
  • 👤 David R. Smentek

Bibliographic Details

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

Claims Analysis

Total Claims: 13
Claim 1
Independent Claim 198 words
A floating-point multiply accumulate unit (FMAC) for performing the accumulate operation (A*B)+C, wherein each of inputs A, B and C comprise a mantissa and an exponent, and wherein a multiply unit places an (A*B) mantissa in an (A*B) register, the unit comprising: a) a CHI register, coupled to means for transferring bits of the C mantissa which exceed a range of the (A*B) mantissa to the CHI register; b) a CBUS register, coupled to a first shifter for placing bits of the C mantissa which overlap the range of the (A*B) mantissa into the CBUS register, the overlapping bits of the mantissas contained within the (A*B) and CBUS registers being aligned for adding; c) an adder, coupled to the (A*B) and CBUS registers, and providing an (A*B)+CBUS output; d) a leading bit anticipator connected to the (A*B)+CBUS output of the adder; e) a second shifter, coupled to the leading bit anticipator, and providing a temporary output; and f) means for merging those bits of the CHI register comprising bits of the C mantissa which exceed the range of the (A*B) mantissa with one or more most significant bits of the temporary output to produce an (A*B)+C accumulate output.
Claim 2
Dependent Claim 198 words
A floating-point multiply accumulate unit (FMAC) for performing the accumulate operation (A*B)+C, wherein each of inputs A, B and C comprise a mantissa and an exponent, and wherein a multiply unit places an (A*B) mantissa in an (A*B) register, the unit comprising: a) a CHI register, coupled to means for transferring bits of the C mantissa which exceed a range of the (A*B) mantissa to the CHI register; b) a CBUS register, coupled to a first shifter for placing bits of the C mantissa which overlap the range of the (A*B) mantissa into the CBUS register, the overlapping bits of the mantissas contained within the (A*B) and CBUS registers being aligned for adding; c) an adder, coupled to the (A*B) and CBUS registers, and providing an (A*B)+CBUS output; d) a leading bit anticipator connected to the (A*B)+CBUS output of the adder; e) a second shifter, coupled to the leading bit anticipator, and providing a temporary output; and f) means for merging those bits of the CHI register comprising bits of the C mantissa which exceed the range of the (A*B) mantissa with one or more most significant bits of the temporary output to produce an (A*B)+C accumulate output.
Claim 3
Dependent Claim 29 words
An FMAC as in claim 1, wherein: a) the A×B mantissa comprises "2m+1"-bits; b) the (A*B)+CBUS output comprises "2m+1"-bits; and c) the adder has a maximum width of "2m+1"-bits.
Claim 4
Dependent Claim 17 words
An FMAC as in claim 2, wherein the first and second shifters have maximum widths of "2m+1"-bits.
Claim 5
Dependent Claim 17 words
An FMAC as in claim 3, wherein the leading bit anticipator has a maximum width of "2m+1"-bits.
Claim 6
Dependent Claim 16 words
An FMAC as in claim 4, wherein the FMAC has a mantissa datapath width of "2m+1"-bits.
Claim 7
Dependent Claim 212 words
In a floating-point multiply accumulate unit for performing the accumulate operation (A*B)+C, wherein A, B, and C each comprise an m-bit mantissa and an exponent, and an (A*B) result comprises a "2m+1"-bit mantissa and an exponent, a method of adding C to the (A*B) result, comprising the steps of: a) comparing the exponents of (A*B) and C to determine whether there is an overlapping range of the (A*B) and C mantissas; b) transferring any part of the C mantissa which exceeds a range of the (A*B) mantissa to a CHI register; c) shifting any part of the C mantissa which overlaps the range of the (A*B) mantissa, so as to align the bits of the (A*B) and C mantissas according to their respective magnitudes; d) adding the shifted part of the C mantissa to the (A*B) mantissa to generate a temporary result; e) if a portion of the C mantissa was transferred to the CHI register, shifting one or more least significant bits corresponding to a number of bits transferred to the CHI register out of the temporary result; and f) merging the bits of the C mantissa which were transferred to the CHI register with one or more most significant bit positions of the temporary result to generate an accumulate result.
Claim 8
Dependent Claim 212 words
In a floating-point multiply accumulate unit for performing the accumulate operation (A*B)+C, wherein A, B, and C each comprise an m-bit mantissa and an exponent, and an (A*B) result comprises a "2m+1"-bit mantissa and an exponent, a method of adding C to the (A*B) result, comprising the steps of: a) comparing the exponents of (A*B) and C to determine whether there is an overlapping range of the (A*B) and C mantissas; b) transferring any part of the C mantissa which exceeds a range of the (A*B) mantissa to a CHI register; c) shifting any part of the C mantissa which overlaps the range of the (A*B) mantissa, so as to align the bits of the (A*B) and C mantissas according to their respective magnitudes; d) adding the shifted part of the C mantissa to the (A*B) mantissa to generate a temporary result; e) if a portion of the C mantissa was transferred to the CHI register, shifting one or more least significant bits corresponding to a number of bits transferred to the CHI register out of the temporary result; and f) merging the bits of the C mantissa which were transferred to the CHI register with one or more most significant bit positions of the temporary result to generate an accumulate result.
Claim 9
Dependent Claim 14 words
A method as in claim 6, wherein the temporary result comprises a "2m+1"-bit mantissa.
Claim 10
Dependent Claim 23 words
A method as in claim 7, further comprising the step of truncating the accumulate result so as to create an "m-1"-bit accumulate result.
Claim 11
Dependent Claim 52 words
A method as in claim 8, wherein the step of truncating the accumulate result is performed simultaneously with the step of merging the bits of the C mantissa which were transferred to the CHI register with one or more most significant bit positions of the temporary result to generate the accumulate result.
Claim 12
Dependent Claim 44 words
A method as in claim 6, further comprising the steps of: a) filling less significant bits of the CHI register with ones; and b) if adding the shifted part of the C mantissa to the (A*B) mantissa generates a carry, incrementing the CHI register.
Claim 13
Dependent Claim 39 words
A method as in claim 10, further comprising the step of using any bits of C shifted out of the range of the (A*B) mantissa, and any bits shifted out of the temporary result, to round the merged result.

References Cited (Backward Citations)

US4926369A Cited
US4969118A Cited
US5375078A Cited
US5530663A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-05-25 2001-11-24 2002-05-26 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-05-25 2005-11-24 2006-05-26 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-05-25 2009-11-24 2010-05-26 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag