Multi-operand floating point operations in a programmable integrated circuit device
AssigneeAltera Corporation
InventorMartin Langhammer
Life of this patent
Estimating the term…
Abstract
A programmable logic device is programmed to add a plurality N of unnormalized numbers at once. Because the inputs are not normalized, they could all have different exponents. The largest exponent of the N exponents is found, and for each of the inputs, its mantissa is right-shifted at by the difference between the largest exponent and the exponent of that particular input. The N shifted mantissas are combined, optionally with sign data, in an (N+1):2 compressor to provide carry and save vectors which may be combined in a carry-propagate adder. Numbers may converted back to normalized form at the end of the operation. If necessary to avoid data loss, a number may be normalized after an intermediate step.
Claims29
A method of configuring a programmable integrated circuit device to perform floating point addition operations on more than two numbers, each of said numbers being represented by a respective mantissa and a respective exponent, said method comprising:
- configuring logic of said programmable integrated circuit device to determine a largest exponent of said respective exponent of said more than two numbers, and to subtract each respective said exponent from said largest exponent to determine a respective shifting amount, and to select said largest exponent as a resultant exponent;
- configuring logic of said programmable integrated circuit device to shift each respective mantissa of said more than two numbers by said respective shifting amount;
- configuring a compressor in said programmable integrated circuit device to simultaneously combine said more than two shifted mantissas into a carry vector and a save vector;
- and
- configuring a carry-propagate adder in said programmable integrated circuit device to combine said carry vector and said save vector.
A programmable integrated circuit device configurable to perform floating point addition operations on more than two numbers, each of said numbers being represented by a respective mantissa and a respective exponent, said programmable integrated circuit device comprising:
- programmable logic configurable to determine a largest exponent of said respective exponent of said more than two numbers, and to subtract each respective said exponent from said largest exponent to determine a respective shifting amount, and to select said largest exponent as a resultant exponent;
- programmable logic configurable to shift each respective mantissa of said plurality of numbers by said respective shifting amount;
- programmable logic configurable as a compressor to simultaneously combine said plurality of shifted mantissas into a carry vector and a save vector;
- and
- programmable logic configurable to combine said carry vector and said save vector.
A non-transitory machine-readable data storage medium encoded with machine-executable instructions for configuring a programmable integrated circuit device to perform floating point addition operations on a more than two numbers, each of said numbers being represented by a respective mantissa and a respective exponent, said instructions comprising:
- instructions to configure logic of said programmable integrated circuit device to determine a largest exponent of said respective exponent of said more than two numbers, and to subtract each respective said exponent from said largest exponent to determine a respective shifting amount, and to select said largest exponent as a resultant exponent;
- instructions to configure logic of said programmable integrated circuit device to shift each respective mantissa of said more than two numbers by said respective shifting amount;
- instructions to configure a compressor in said programmable integrated circuit device to simultaneously combine said more than two shifted mantissas into a carry vector and a save vector;
- and
- instructions to configure a carry-propagate adder in said programmable integrated circuit device to combine said carry vector and said save vector.
Circuitry for performing floating point addition operations on more than two numbers, each of said numbers being represented by a respective mantissa and a respective exponent, said circuitry comprising:
- logic to determine a largest exponent of said respective exponent of said more than two numbers, and to subtract each respective said exponent from said largest exponent to determine a respective shifting amount, and to select said largest exponent as a resultant exponent;
- logic to shift each respective mantissa of said more than two numbers by said respective shifting amount;
- a compressor to simultaneously combine said more than two shifted mantissas into a carry vector and a save vector;
- and
- logic to combine said carry vector and said save vector.
Dependencies are inferred from the claim text.