Browse Prior Art Database

Floating Point Adder Leading Zero Anticipate

IP.com Disclosure Number: IPCOM000106342D
Original Publication Date: 1993-Oct-01
Included in the Prior Art Database: 2005-Mar-21
Document File: 4 page(s) / 135K

Publishing Venue

IBM

Related People

Atkins, MG: AUTHOR [+2]

Abstract

The following algorithm is used to anticipate a leading zeroes count for the sum of two operands in a floating point Adder (either IBM or IEEE Standard-754 number formats). The leading zeroes count will yield the amount of shift required to normalize the fraction of the sum. This algorithm will allow the final result to be found more quickly than waiting to count the number of leading zeroes until after the two operands have been summed. However, more logic is required to do this.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 36% of the total text.

Floating Point Adder Leading Zero Anticipate

      The following algorithm is used to anticipate a leading zeroes
count for the sum of two operands in a floating point Adder (either
IBM or IEEE Standard-754 number formats).  The leading zeroes count
will yield the amount of shift required to normalize the fraction of
the sum.  This algorithm will allow the final result to be found more
quickly than waiting to count the number of leading zeroes until
after the two operands have been summed.  However, more logic is
required to do this.

      The anticipation of the number of leading zeroes is difficult
for difference operations.  A summing operation will yield a leading
zero count of equal to or one less than the number of leading zeroes
in the largest operand; a carry out will cause the number of leading
zeroes to be one less than the number of leading zeroes in the
largest operand.  A difference operation can cause a radical swing in
the number of leading zeroes in the resulting fraction, anywhere from
the same number as in the largest operand to all bits being 0.

      The design uses the following steps in order to generate the
number of leading zeros in the result:

1.  The two fractions are XORed in a bit by bit fashion (i.e.  bit 0
    of fraction A is XORed with bit 0 of fraction B)

    Equations -
                            Y(n) = A(n) && B(n)

    * n = represents a specific bit in the fraction (0 = Most
Significant)

2.  Leading Zeroes Mask (MLZA) Generation

          The Leading Zeroes Mask is used to determine the effects of
    carry propagation on the result, particularly the effects of a
    carry out.  The choice of mask is affected by whether the
    operation is a sum, a difference of two operands with different
    exponents, or a difference of two operands with different
    exponents.  There is also a slight difference depending on the
    use of the IEEE or the IBM format.

    a.  In the IEEE format, the mask is dependent on the operands
        only when the operation is a difference with equal exponents.
        The IBM format requires a mask based on the operands for any
        difference operation.

        o   Equation for Difference Operations with Equal Exponents
                            MD(0) = 0

                                    n-1
                            MD(n) = &sum.  Y(i)        (where Y is
the XOR of the fractions)
                                    i=0

        o   Equation for Difference Operations with Unequal Exponents
(IBM format only)

                The following masks are only 4 bits long.  They are
required to
                account for the first bit set in the first digit of
the larger
        ...