Back to results
US 8,190,669 B1Granted
Multipurpose arithmetic functional unit
AssigneeNVIDIA Corporation
InventorsStuart F. Oberman, Ming Y. Siu
Life of this patent
Estimating the term…
Abstract
Multipurpose arithmetic functional units can perform planar attribute interpolation and unary function approximation operations. In one embodiment, planar interpolation operations for coordinates (x, y) are executed by computing A*x+B*y+C, and unary function approximation operations for operand x are executed by computing F2(xb)*xh2+F1(xb)*xh+F0(xb), where xh=x−xb. Shared multiplier and adder circuits are advantageously used to implement the product and sum operations for both classes of operations.
Claims18
A method for operating a functional unit of a microprocessor, the method comprising:
- receiving an opcode designating one of a plurality of supported operations to be performed and one or more operands on which the designated operation is to be performed;
- in response to the opcode and the one or more operands, selecting a plurality of inputs M2, μ2, M1, μ1 and M0, wherein selecting M2 includes selecting between a first operand A and a first coefficient F2(xb) provided by a first lookup table, selecting M1 includes selecting between a second operand B and a second coefficient F1(xb) provided by a second lookup table, selecting μ2 includes selecting between a third operand and the square of a fourth operand xh, and selecting μ1 includes selecting between the fourth operand xh and a fifth operand;
- and
- operating a plurality of configurable arithmetic circuits in the functional unit to compute an operation result of the form M2*μ2+M1*μ1+M0 from the selected inputs M2, μ2, M1, μ1 and M0,
- wherein the plurality of supported operations includes a unary function approximation (UFA) operation for approximating a unary function ƒ(x) of an argument operand x and a planar interpolation (PI) operation for performing planar interpolation on coordinate operands x and y,
- wherein selecting the plurality of inputs M2, μ2, M1, μ1 and M0 includes:
- in the event that the UFA operation is designated, selecting the plurality of inputs M2, μ2, M1, μ1 and M0 such that the configurable arithmetic circuits compute an operation result corresponding to F2(xb)*xh2+F1(xb)*xh+F0(xb),
- wherein xb is a baseline value, xh is the difference between the argument operand x and the baseline value xb, and F2, F1, and F0 are coefficients determined based on the baseline value xb and the unary function ƒ(x);
- and
- in the event that the PI operation is designated, selecting the plurality of inputs M2, μ2, M1, μ1 and M0 such that the configurable arithmetic circuits compute an operation result corresponding to A*x+B*y+Δ,
- wherein A, B, and C are interpolation parameters and Δ is an offset term that depends at least in part on the interpolation parameter C,
- wherein selecting the plurality of inputs M2, μ2, M1, μ1 and M0 in the event that the PI operation is designated further includes:
- obtaining the interpolation coefficients A, B, and C;
- selecting the interpolation coefficients A and B as inputs M2 and M1, respectively;
- and
- selecting the coordinate operands x and y as inputs μ2 and μ1, respectively,
- wherein the interpolation coefficients A, B, and C are obtained from the one or more operands on which the PI operation is to be performed,
- wherein selecting the plurality of inputs M2, μ2, M1, μ1 and M0 in the event that the PI operation is designated further includes:
- selecting the interpolation coefficient C as the input M0.
16 more elements
Dependencies are inferred from the claim text.