Efficient correction of normalizer shift amount errors in fused multiply add operations

US9317251B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9317251-B2
Application numberUS-201213732237-A
CountryUS
Kind codeB2
Filing dateDec 31, 2012
Priority dateDec 31, 2012
Publication dateApr 19, 2016
Grant dateApr 19, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method for correcting a shift error in a fused multiply add operation. The method comprises adjusting a normalized floating-point number before performing a shift error correction to produce an adjusted normalized floating-point number, and correcting a shift error in the adjusted normalized floating-point number. The correcting the shift error comprises shifting a mantissa of the adjusted normalized floating-point number in one direction. A fused multiply add module comprising a normalizer module, a compensation logic, and a round. The normalizer module is operable to normalize a floating-point number to produce a normalized floating-point number. The floating-point number is normalized based upon an estimated quantity of leading zeros. The compensation logic is operable to manage a correction of a shift error in the normalized floating-point number. The rounder is operable to correct the shift error with a mantissa shift in only one direction.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for correcting a shift error in a fused multiply add operation, the method comprising: adjusting a normalized floating-point number before performing a shift error correction to produce an adjusted normalized floating-point number; and correcting a shift error in the adjusted normalized floating-point number, wherein correcting the shift error comprises shifting a mantissa of the adjusted normalized floating-point number in one direction. 2. The method of claim 1 , wherein the adjusting a normalized floating-point number comprises one of a mantissa shift and an exponent decrement of the normalized floating-point number. 3. The method of claim 1 , wherein the shift error comprises one of a leading zero estimation error, an addend dominated addition error from a carry out operation, and an addend dominated subtraction error from a borrow operation. 4. The method of claim 3 , wherein the adjusting a normalized floating-point number comprises transforming one of an addend dominated addition error and an addend dominated subtraction error into a leading zero estimation error, and wherein an adjustment for transforming an addend dominated addition error is different from an adjustment for transforming an addend dominated subtraction error. 5. The method of claim 1 , wherein the shifting the mantissa of the adjusted normalized floating-point number in one direction comprises right shifting the mantissa of the adjusted normalized floating-point number, and wherein a rounder performs the mantissa right shift. 6. The method of claim 1 , wherein the shifting the mantissa of the adjusted normalized floating-point number in one direction comprises shifting the mantissa of the normalized floating-point number 1 bit. 7. The method of claim 1 further comprising: rounding the adjusted normalized floating-point number, wherein the rounding of the adjusted normalized floating-point number and the correcting of the shift error of the adjusted normalized floating-point number are performed concurrently in a single step, and wherein the rounding and the correcting are performed by a rounder. 8. The method of claim 1 , wherein a floating-point number comprises a floating-point number of any precision. 9. The method of claim 1 , wherein an actual number of leading zeroes is not determined. 10. A fused multiply add module comprising: a normalizer module operable to normalize a floating-point number to produce a normalized floating-point number, wherein the floating-point number is normalized based upon an estimated quantity of leading zeros; a compensation logic operable to adjust the normalized floating-point number to produce an adjusted normalized floating-point number; and a rounder operable to correct the shift error with a mantissa shift in one direction. 11. The module of claim 10 , wherein the rounder is operable to correct the shift error by performing a mantissa shift of the adjusted normalized floating-point number. 12. The module of claim 11 , wherein the compensation logic is further operable to adjust the normalized floating-point number by one of a mantissa shift and an exponent decrement of the normalized floating-point number. 13. The module of claim 10 , wherein the shift error comprises one of a leading zero estimation error, an addend dominated addition error from a carry out operation, and an addend dominated subtraction error from a borrow operation. 14. The module of claim 10 , wherein the rounder is further operable to correct the shift error by right shifting the mantissa of the normalized floating-point number. 15. The module of claim 11 , wherein the rounder is further operable to correct the shift error by right shifting the mantissa of the adjusted normalized floating-point number. 16. The module of claim 10 , wherein the rounder is further operable to round the normalized floating-point number, and wherein further the rounder is operable to round the normalized floating-point number and concurrently perform the mantissa shift to correct the shift error. 17. The module of claim 10 , wherein a floating-point number comprises a floating-point number of any precision. 18. The module of claim 10 further comprising: a leading zero anticipator operable to estimate a quantity of leading zeros in a floating-point number input to the normalizer, wherein a width of the leading zero anticipator is twice a width of an input mantissa. 19. The module of claim 10 , wherein an actual number of leading zeroes is not determined. 20. A non-transitory computer readable storage medium comprising computer-executable instructions stored therein, the computer-executable instructions comprising: instructions to adjust a normalized floating-point number before performing a shift error correction to produce an adjusted normalized floating-point number; and instructions to correct a shift error in the adjusted normalized floating-point number, wherein the instructions to correct the shift error comprise instructions to shift a mantissa of the adjusted normalized floating-point number in one direction. 21. The non-transitory computer readable storage medium of claim 20 , wherein the instructions to adjust a normalized floating-point number comprise instructions to perform one of a mantissa shift and an exponent decrement of the normalized floating-point number. 22. The non-transitory computer readable storage medium of claim 20 , wherein the shift error comprises one of a leading zero estimation error, an addend dominated addition error from a carry out operation, and an addend dominated subtraction error from a borrow operation. 23. The non-transitory computer readable storage medium of claim 22 , wherein the instructions to adjust a normalized floating-point number comprise instructions to transform one of an addend dominated addition error and an addend dominated subtraction error into a leading zero estimation error, and wherein an adjustment for transforming an addend dominated addition error is different from an adjustment for transforming an addend dominated subtraction error. 24. The non-transitory computer readable storage medium of claim 20 , wherein the instructions to shift a mantissa of the adjusted normalized floating-point number in only one direction comprise instructions to right shift the mantissa of the adjusted normalized floating-point number, and wherein a rounder performs the mantissa right shift. 25. The non-transitory computer readable storage medium of claim 20 , wherein the instructions to shift a mantissa of the adjusted normalized floating-point number in one direction comprise instructions to shift the mantissa of the normalized floating-point number 1 bit. 26. The non-transitory computer readable storage medium of claim 20 , the computer-executable instructions further comprising: instructions to round the adjusted normalized floating-point number, wherein rounding of the adjusted normalized floating-point number and correcting of the shift error of the adjusted normalized floating-point number are performed concurrently. 27. The non-transitory computer readable storage medium of claim 20 , wherein a floating-point number comprises a floating-point number of any precision. 28. The non-transitory computer readable storage medium of claim 20 , wherein an actual number of leading zeroes is not determined.

Assignees

Inventors

Classifications

  • G06F7/483Primary

    Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers {(G06F7/4806, G06F7/4824, G06F7/49, G06F7/491, G06F7/544 take precedence)} · CPC title

  • Normalisation mentioned as feature only · CPC title

  • Sum of products (for applications thereof, see the relevant places, e.g. G06F17/10, H03H17/00) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9317251B2 cover?
A method for correcting a shift error in a fused multiply add operation. The method comprises adjusting a normalized floating-point number before performing a shift error correction to produce an adjusted normalized floating-point number, and correcting a shift error in the adjusted normalized floating-point number. The correcting the shift error comprises shifting a mantissa of the adjusted no…
Who is the assignee on this patent?
Nvidia Corp
What technology area does this patent fall under?
Primary CPC classification G06F7/483. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 19 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).