Configuring floating point operations in a programmable device
First Claim
1. A method of configuring a programmable device to perform floating point operations on input values formatted in accordance with an input standard requiring a first mantissa size and a first exponent size, said method comprising:
- configuring logic of said programmable device to reformat said input values to have an initial mantissa size different from said first mantissa size;
configuring logic of said programmable device to perform a tree of successive operations to compute a final result, wherein;
each respective operation in a first level of said tree of successive operations has a first number of said reformatted input values as inputs and provides a respective first intermediate result having a mantissa size increased by at least one bit left of its binal point as compared to said initial mantissa size;
each operation in a respective successive level of said tree of successive operations after said first level of said tree of successive operations, other than a final level, has said first number of inputs and provides a respective intermediate result and said final level provides said final result, andeach of said respective intermediate results and said final result is unnormalized and has a mantissa size increased by at least one bit left of its binal point as compared to an intermediate result on an immediately preceding level; and
configuring logic of said programmable device to reformat said final result in accordance with an output standard.
1 Assignment
0 Petitions
Accused Products
Abstract
A programmable device is programmed to perform arithmetic operations in an internal format that, unlike known standard formats that store numbers in normalized form and require normalization after each computational step, stores numbers in unnormalized form and does not require normalization after each step. Numbers are converted into unnormalized form at the beginning of an operation and 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. To conserve resources, rather than configuring the every intermediate operation to have the same mantissa size, in the internal format the mantissa size may start out smaller and grow after each operation.
-
Citations
23 Claims
-
1. A method of configuring a programmable device to perform floating point operations on input values formatted in accordance with an input standard requiring a first mantissa size and a first exponent size, said method comprising:
-
configuring logic of said programmable device to reformat said input values to have an initial mantissa size different from said first mantissa size; configuring logic of said programmable device to perform a tree of successive operations to compute a final result, wherein; each respective operation in a first level of said tree of successive operations has a first number of said reformatted input values as inputs and provides a respective first intermediate result having a mantissa size increased by at least one bit left of its binal point as compared to said initial mantissa size; each operation in a respective successive level of said tree of successive operations after said first level of said tree of successive operations, other than a final level, has said first number of inputs and provides a respective intermediate result and said final level provides said final result, and each of said respective intermediate results and said final result is unnormalized and has a mantissa size increased by at least one bit left of its binal point as compared to an intermediate result on an immediately preceding level; and configuring logic of said programmable device to reformat said final result in accordance with an output standard. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A programmable integrated circuit device configured to perform floating point operations on values formatted in accordance with an input standard requiring a first mantissa size and a first exponent size, said configured programmable integrated circuit device comprising:
-
logic circuitry configured to reformat said input values to have an initial mantissa size different from said first mantissa size; logic circuitry configured to perform a tree of successive operations to compute a final result, wherein; each respective operation in a first level of said tree of successive operations has a first number of said reformatted input values as inputs and provides a respective first intermediate result having a mantissa size increased by at least one bit left of its binal point as compared to said initial mantissa size; each operation in a respective successive level of said tree of successive operations after said first level of said tree of successive operations, other than a final level, has said first number of inputs and provides a respective intermediate result and said final level provides said final result, and each of said respective intermediate results and said final result is unnormalized and has a mantissa size increased by at least one bit left of its binal point as compared to an intermediate result on an immediately preceding level; and logic circuitry configured to reformat said final result in accordance with said standard to said first mantissa size configuring logic of said programmable device to reformat said final result in accordance with an output standard. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A non-transistory machine-readable data storage medium encoded with machine-executable instructions for configuring a programmable device to execute a method of performing floating point operations on values formatted in accordance with an input standard requiring a first mantissa size and a first exponent size, said instructions comprising:
-
instructions to configure logic of said programmable device to reformat said input values to have an initial mantissa size different from said first mantissa size; instructions to configure logic of said programmable device to perform a tree of successive operations to compute a final result, wherein; each respective operation in a first level of said tree of successive operations has a first number of said reformatted input values as inputs and provides a respective first intermediate result having a mantissa size increased by at least one bit left of its binal point as compared to said initial mantissa size; each operation in a respective successive level of said tree of successive operations after said first level of said tree of successive operations, other than a final level, has said number of inputs and provides a respective intermediate result and said final level provides said final result, and each of said respective intermediate results and said final result is unnormalized and has a mantissa size increased by at least one bit left of its binal point as compared to an intermediate result on an immediately preceding level; and instructions to configure logic of said programmable device to reformat said final result in accordance with an output standard. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
Specification