IP Library Granted Patent US 10,678,510
Granted Patent B2
US 10,678,510 · App. 16/333,970 · Granted Jun 9, 2020

Denormalization in multi-precision floating-point arithmetic circuitry

Inventor: Martin Langhammer (Salisbury, GB)
Assignee: Altera Corporation
G06F7/57G06F7/483G06F7/4876G06F7/49915G06F7/49936G06F7/5443
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,678,510
App. No.
16/333,970
Granted
Jun 9, 2020
Kind
B2
Abstract

The present embodiments relate to integrated circuits with floating-point arithmetic circuitry that handles normalized and denormalized floating-point numbers. The floating-point arithmetic circuitry may include a normalization circuit and a rounding circuit, and the floating-point arithmetic circuitry may generate a first result in form of a normalized, unrounded floating-point number and a second result in form of a normalized, rounded floating-point number. If desired, the floating-point arithmetic circuitry may be implemented in specialized processing blocks.

Claims (72)

1. An integrated circuit that performs an arithmetic operation of first and second floating-point numbers, comprising:

a partial product generator that generates a partial product of the first and second floating-point numbers;

a rounding circuit coupled to the partial product generator that generates a normalized, rounded product with a first exponent range based on the partial product;

a normalization circuit coupled to the partial product generator that generates a normalized, unrounded product with a second exponent range that is greater than the first exponent range based on the partial product and the first and second floating-point numbers; and

a multiplexer coupled to the rounding circuit and the normalization circuit that selects a product of first and second floating-point numbers among the normalized, unrounded product and the normalized, rounded product based on a control signal.

2. The integrated circuit of claim 1 , wherein the normalization circuit further comprises:

a left shift circuit that receives a processed partial product and shifts the processed partial product to the left based on an additional control signal.

3. The integrated circuit of claim 2 , further comprising:

a control circuit that receives the first and second floating-point numbers and generates the control signal and the additional control signal.

4. The integrated circuit of claim 3 , wherein the first and second floating-point numbers have respective first and second exponents, and wherein the control circuit further comprises:

logic circuitry that receives the first and second exponents and generates the additional control signal by determining if at least one of the first and second floating-point numbers is a denormalized floating-point number based on the first and second exponents.

5. The integrated circuit of any one of claim 3 or 4 , wherein the first and second floating-point numbers have respective first and second mantissas, and wherein the control circuit further comprises:

a first count-leading-zeros circuit that determines first leading zeros of the first mantissa;

a second count-leading-zeros circuit that determines second leading zeros of the second mantissa; and

an adder circuit that adds the first and second leading zeros.

6. The integrated circuit of claim 1 , further comprising:

adder circuitry that receives the product from the multiplexer and a third floating-point number and generates a normalized sum and a rounded sum based on the product and the third floating-point number, and comprises:

an additional multiplexer that outputs a sum of the product and the third floating-point number by selecting between the normalized sum and the rounded sum based on an additional control signal.

7. The integrated circuit of claim 6 , wherein the product and the third floating-point number have respective first and second mantissas and wherein the adder circuitry further comprises:

a fixed-point adder circuit that generates a sum of the first and second mantissas.

8. The integrated circuit of claim 7 , wherein the adder circuitry further comprises:

an additional fixed-point adder circuit coupled to the fixed-point adder circuit that adds a round bit to the sum of the first and second mantissas.

9. The integrated circuit of any one of claim 7 or 8 , wherein the adder circuitry further comprises:

a left shift circuit that generates the normalized sum by shifting the sum of the first and second mantissas a predetermined number of bits to the left.

10. The integrated circuit of claim 6 , wherein the sum of the product and the third floating-point number have a first floating-point precision, further comprising:

a cast function circuit that receives the sum of the product and the third floating-point number from the adder circuitry and generates an upconverted sum by converting the sum from the first floating-point precision into a second floating-point precision that is higher than the first floating-point precision.

11. The integrated circuit of claim 10 , wherein the cast function circuit increases the exponent size of the sum from the first to the second floating-point precision.

12. The integrated circuit of claim 10 , wherein the cast function circuit adjusts the bias of the exponent of the sum from the bias of the first floating-point precision to the bias of the second floating-point precision.

13. A method for performing an arithmetic operation of first and second floating-point numbers with an integrated circuit, comprising:

generating a partial product of the first and second floating-point numbers with a partial product generator;

using a rounding circuit to generate a first product that is normalized and rounded and has a first exponent range based on the partial product;

using a normalization circuit to generate a second product that is normalized and unrounded and has a second exponent range that is greater than the first exponent range based on the partial product and the first and second floating-point numbers; and

generating a product of first and second floating-point numbers by selecting between the first and second products based on a control signal.

14. The method of claim 13 , further comprising:

generating the control signal by determining whether at least one of the first and second floating-point numbers is a denormalized floating-point number.

15. The method of any one of claim 13 or 14 , wherein using the normalization circuit to generate the second product further comprises:

left shifting a processed partial product based on an additional control signal.

16. The method of claim 15 , wherein the first and second floating-point numbers have respective first and second mantissas, further comprising:

determining first leading zeros of the first mantissa;

determining second leading zeros of the second mantissa;

generating a sum signal by adding the first and second leading zeros; and

generating the additional control signal by subtracting one from the sum signal.

17. The method of any one of claims 13 - 14 , wherein the product and a third floating-point number have respective first and second mantissas, further comprising:

using a fixed-point adder circuit to generate a sum of the first and second mantissas;

using an additional fixed-point adder circuit coupled to the fixed-point adder circuit to generate a rounded sum by adding a round bit to the sum of the first and second mantissas; and

using a left shift circuit to generate a normalized sum by shifting the sum of the first and second mantissas a predetermined number of bits to the left.

18. The method of claim 17 , further comprising:

using a multiplexer to select between the rounded sum and the normalized sum.

19. A non-transitory machine readable storage medium encoded with instructions for configuring an integrated circuit that comprises a partial product generator, a normalization circuit coupled to the partial product generator, a rounding circuit coupled to the partial product generator, and a multiplexer coupled to the normalization circuit and the rounding circuit to perform an arithmetic operation of a first floating-point number having a first mantissa and a first exponent that has a first exponent range and a second floating-point number having a second mantissa and a second exponent that has the first exponent range, the instructions comprising:

instructions to configure the partial product generator to generate a partial product of the first and second floating-point numbers;

instructions to configure the normalization circuit to generate a normalized, unrounded product that has a second exponent range that is greater than the first exponent range based on the partial product and the first and second floating-point numbers;

instructions to configure the rounding circuit to generate a normalized, rounded product of the first and second floating-point numbers based on the partial product; and

instructions to configure the multiplexer to output a product of first and second floating-point numbers by selecting between the normalized, unrounded product and the normalized, rounded product based on a control signal.

20. The non-transitory machine readable storage medium of claim 19 , wherein the instructions to configure the normalization circuit to generate the normalized, unrounded product further comprise:

instructions to configure logic circuitry in the normalization circuit to generate the control signal by determining if at least one of the first and second floating-point numbers is a denormalized floating-point number based on the first and second exponents;

instructions to configure count-leading-zeros circuitry in the normalization circuit to determine first leading zeros of the first mantissa and second leading zeros of the second mantissa;

instructions to configure an adder circuit in the normalization circuit to determine a sum of leading zeros by adding the first and second leading zeros;

instructions to configure a subtractor circuit in the normalization circuit to determine a predetermined number of bits by subtracting one from the sum of leading zeros; and

instructions to configure a left shift circuit in the normalization circuit to shift the partial product by the predetermined number of bits to the left.

21. The non-transitory machine readable storage medium of claim 19 , wherein the integrated circuit further comprises adder circuitry and an additional multiplexer, further comprising:

instructions to configure the adder circuitry to generate a normalized sum and a rounded sum based on the product and a third floating-point number; and

instructions to configure the additional multiplexer coupled to the adder circuitry to output a sum of the product and the third floating-point number by selecting between the normalized sum and the rounded sum based on an additional control signal.

22. The non-transitory machine readable storage medium of claim 21 , wherein the instructions to configure the adder circuitry further comprise:

instructions to configure a fixed-point adder circuit in the adder circuitry to generate a sum of the first and second mantissas; and

instructions to configure an additional fixed-point adder circuit in the adder circuitry coupled to the fixed-point adder circuit to add a round bit to the sum of the first and second mantissas.

23. A second stage of a multiplier circuit that receives first and second floating-point numbers and a partial product of the first and second floating-point numbers from a first stage of the multiplier circuit, comprising:

a first arithmetic operator circuit for generating a normalized, rounded product with a first exponent range based on the partial product;

a second circuit for generating a normalized, unrounded product with a second exponent range that is greater than the first exponent range based on the partial product and the first and second floating-point numbers; and

a selector circuit for selecting a product of first and second floating-point numbers among the normalized, unrounded product and the normalized, rounded product based on a control signal.

24. The second stage of claim 23 , further comprising:

a left shift circuit in the second circuit for shifting a processed partial product to the left based on an additional control signal; and

a control circuit for generating the control signal and the additional control signal based on the first and second floating-point numbers.

Assignments (3)
SECURITY INTEREST Recorded Sep 12, 2025
From: ALTERA CORPORATION
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 073431/0309 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S NAME PREVIOUSLY RECORDED AT REEL: 051793 FRAME: 0697. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Dec 26, 2023
From: LANGHAMMER, MARTIN
To: ALTERA CORPORATION
Reel/Frame 066130/0242 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2020
From: LANGHAMMER, MARTIN
To: INTEL CORPORATION
Reel/Frame 051793/0697 →