Multiplier with selectable booth encoders for performing 3D graphics interpolations with two multiplies in a single pass through the multiplier
First Claim
1. A multiplier-interpolator comprising:
- a first operand input comprising a plurality of electrical signals representing a first operand;
a second operand input comprising a plurality of electrical signals representing a second operand;
a third operand input comprising a plurality of electrical signals representing a third operand;
a plurality of product-term generators for generating intermediate products, each product-term generator receiving a bit of the first operand and a bit of the second operand and a bit of the third operand, each product term generator outputting as an intermediate product either the bit of the second operand or the bit of the third operand in response to the bit of the first operand; and
a summer, receiving the intermediate products from the plurality of product-term generators and receiving each bit of the third operand weighted in accordance with the least-significant bit of the first operand, for generating a sum being a result of interpolating the second operand and the third operand by the first operand,whereby interpolation of three operands is performed.
5 Assignments
0 Petitions
Accused Products
Abstract
A multiplier array is modified to perform interpolations. The interpolations use a normalized first operand A between 0 and 1. The interpolation is the function B * A+C * (1-A). Standard multipliers accept two operands as inputs, but interpolations require 3 operands (A, B, C). The AND gates in Booth encoders in a standard multiplier array are replaced by multiplexers. Each multiplexer selects a bit from one of the two operands (B or C) based on a bit of the first operand A. The interpolate operation multiplies the first operand A by the second operand B while simultaneously multiplying the bit-wise inverse of the first operand A'"'"' by the third operand C. Since one multiply is with the first operand A while the second multiply is with the inverse A'"'"' of the first operand, one of the multiplies always generates zero while the other multiply generates either a one or a zero for each bit of the first operand. The multiply producing zero is deleted by not being selected by the multiplexer; instead the multiplexer selects the other multiply as an intermediate product term. Thus the intermediate product terms for the half of the inputs which generate a zero product term are never generated. A correction term is generated and added in to account for the difference between the bit-wise inverse of A and the two'"'"'s complement of A. The multiplexers can be enlarged to allow either standard 2-operand multiplies or 3-operand interpolations in the same multiplier array. The interpolator-multiplier is especially useful for 3D graphics applications.
46 Citations
17 Claims
-
1. A multiplier-interpolator comprising:
-
a first operand input comprising a plurality of electrical signals representing a first operand; a second operand input comprising a plurality of electrical signals representing a second operand; a third operand input comprising a plurality of electrical signals representing a third operand; a plurality of product-term generators for generating intermediate products, each product-term generator receiving a bit of the first operand and a bit of the second operand and a bit of the third operand, each product term generator outputting as an intermediate product either the bit of the second operand or the bit of the third operand in response to the bit of the first operand; and a summer, receiving the intermediate products from the plurality of product-term generators and receiving each bit of the third operand weighted in accordance with the least-significant bit of the first operand, for generating a sum being a result of interpolating the second operand and the third operand by the first operand, whereby interpolation of three operands is performed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. In a computer system having a processing unit, a memory graphics processing circuitry and a display device, a computer-implemented method for interpolating a second and a third operand by a first operand, the computer-implemented method comprising the steps of:
-
loading a first register with the first operand, loading a second register with the second operand, and loading a third register with the third operand; multiplexing the outputs of the second and third registers by performing the substeps of; selecting as a term i all bits of the second operand when the first operand has a value of one at bit-position i, but selecting as a term i all bits of the third operand when the first operand has a value of zero at bit-position i; and shifting term i to the significance of bit-position i to generate a shifted term i, for each bit-position i in the first operand; generating an adjustment term from the third operand, the adjustment term being the third operand having the significance of the least-significant bit of the first operand;
forming a sum of all shifted terms i generated and the adjustment term; andoutputting a color signal corresponding to the sum to the display device, wherein the sum formed is the second operand multiplied by the first operand, added to the third operand multiplied by the two'"'"'s complement of a fractional part of the first operand, whereby interpolation is performed on three operands. - View Dependent Claims (10, 11, 12)
-
-
13. A graphics processor for interpolating between a first pixel and a second pixel using a blending variable, the graphics processor comprising:
-
a plurality of multiplexers, each multiplexer in the plurality of multiplexers receiving as data inputs a first bit from the first pixel and a second bit from the second pixel and receiving as a select control input a bit of the blending variable, each multiplexer outputting the first bit as an intermediate product when the bit of the blending variable is in a first state but outputting the second bit as the intermediate product term when the bit of the blending variable is not in the first state; and a carry-save-adder tree, receiving each bit of the second pixel weighted in accordance with the least-significant bit of the blending variable, and the intermediate product terms from the multiplexers, for reducing the intermediate product terms to a result of the interpolation, whereby the multiplexers select bits from either the first pixel or from the second pixel in response to each bit of the blending variable. - View Dependent Claims (14, 15, 16, 17)
-
Specification