Division with rectangular multiplier supporting multiple precisions and operand types
First Claim
1. A method implemented by a floating point unit of a processor, comprising:
- determining a first precision indicator;
estimating a reciprocal [X0] of a divisor to determine a reciprocal estimate;
determining a first product [D0] based on a rectangular multiplication of the divisor and the reciprocal estimate;
determining a first complement value [R0] based on a complement of the first product;
determining a second product [N0] based on a rectangular multiplication of the reciprocal estimate and a dividend; and
determining a quotient of the divisor and the dividend at a rectangular multiplier based on the second product, the precision indicator, and a portion of the first complement value.
1 Assignment
0 Petitions
Accused Products
Abstract
A division method includes determining a precision indicator for the division operation that indicates whether the quotient should be a single precision, double precision, or extended precision floating-point number. The division is performed at a rectangular multiplier using the Goldschmidt or Newton-Raphson algorithm. Each algorithm calculates one or more intermediate values in order to determine the quotient. For example, the Goldschmidt algorithm calculates a complement of a product of the dividend and an estimate of the reciprocal of the divisor. The quotient is determined based on a portion of one or more of these intermediate values. Because only a portion of the intermediate value is used, the division can be performed efficiently at the rectangular multiplier, and therefore the quotient can be determined more quickly and still achieve the desired level of precision.
-
Citations
20 Claims
-
1. A method implemented by a floating point unit of a processor, comprising:
-
determining a first precision indicator; estimating a reciprocal [X0] of a divisor to determine a reciprocal estimate; determining a first product [D0] based on a rectangular multiplication of the divisor and the reciprocal estimate; determining a first complement value [R0] based on a complement of the first product; determining a second product [N0] based on a rectangular multiplication of the reciprocal estimate and a dividend; and determining a quotient of the divisor and the dividend at a rectangular multiplier based on the second product, the precision indicator, and a portion of the first complement value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method implemented by a floating point unit of a processor, comprising:
-
determining a first precision indicator; estimating a reciprocal of a divisor to determine a reciprocal estimate; determining a first product based on a multiplication of the reciprocal estimate and the divisor; determining a first complement value based on a complement of the first product; determining a second product based on a rectangular multiplication of the first complement value and the reciprocal estimate; determining a quotient of the divisor and the dividend at a rectangular multiplier based on a portion of the second product, the precision indicator, and the dividend. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A floating point unit, comprising:
-
an input configured to receive a first precision indicator, a divisor, and a dividend; a lookup table configured to provide a reciprocal estimate based on a reciprocal of a divisor; a multiplier coupled to the lookup table and to the input, the multiplier configured to; determine a first product based on a multiplication of the divisor and the reciprocal estimate; determine a first complement value based on a complement of the first product; determine a second product based on a multiplication of the reciprocal estimate and a dividend; and determine a quotient of the divisor and the dividend based on the second product, the precision indicator, and a portion of the first complement value; and an output configured to provide the quotient. - View Dependent Claims (20)
-
Specification