Claims Analysis
Total Claims: 4
Claim 1
Independent Claim
294 words
A floating point processor comprising: a multiply section having: a first input register and a second input register for intermediately storing first and second operands, a multiplier coupled to the first and second input registers for performing a multiplication of the first and second operands, adder output registers coupled to the multiplier for intermediately storing partial sums of the multiplication, a first adder coupled to the adder output registers for performing an addition of the partial sums, and a first normalizer connected to the first adder for normalizing a result of the addition of the partial sums; and an add section having: a third input register and a fourth input register for intermediately storing the first and second operands, a first aligner connected to said third input register for aligning the first operand, a first left shifter connected to the first aligner, a second aligner connected to said fourth input register for aligning the second operand, a second left shifter connected to the second aligner, a true/complement unit coupled to the first left shifter for operand true/complement building, a first zero setter connected to the true/complement unit, a first adder input register coupled to the first zero setter for intermediately storing an output of the first zero setter, a second zero setter connected to the second left shifter, a second adder input register coupled to the second zero setter for intermediately storing an output of the second zero setter, a second adder coupled to the first and second adder input registers for adding outputs of the first and second adder input registers, a second normalizer connected to said second adder for normalizing an output of said second adder; and a feedback path connecting said first normalizer to each of said first and second aligners.
Claim 2
Dependent Claim
294 words
A floating point processor comprising: a multiply section having: a first input register and a second input register for intermediately storing first and second operands, a multiplier coupled to the first and second input registers for performing a multiplication of the first and second operands, adder output registers coupled to the multiplier for intermediately storing partial sums of the multiplication, a first adder coupled to the adder output registers for performing an addition of the partial sums, and a first normalizer connected to the first adder for normalizing a result of the addition of the partial sums; and an add section having: a third input register and a fourth input register for intermediately storing the first and second operands, a first aligner connected to said third input register for aligning the first operand, a first left shifter connected to the first aligner, a second aligner connected to said fourth input register for aligning the second operand, a second left shifter connected to the second aligner, a true/complement unit coupled to the first left shifter for operand true/complement building, a first zero setter connected to the true/complement unit, a first adder input register coupled to the first zero setter for intermediately storing an output of the first zero setter, a second zero setter connected to the second left shifter, a second adder input register coupled to the second zero setter for intermediately storing an output of the second zero setter, a second adder coupled to the first and second adder input registers for adding outputs of the first and second adder input registers, a second normalizer connected to said second adder for normalizing an output of said second adder; and a feedback path connecting said first normalizer to each of said first and second aligners.
Claim 3
Dependent Claim
247 words
(Amended) A method of performing a fast multiply-add instruction without requiring a wait cycle in a floating point processor comprising the steps of: (a) reading first and second operands for multiplication into first and second input registers of a multiplier; (b) building partial sums of the first and second operands by the multiplier; (c) calculating a product exponent and reducing the exponent by 1 if a product has a leading zero, including simultaneously reading an operand (addend) of an addition; (d) adding the partial sums from the multiplier including feeding a resulting intermediate value (product) back to aligners via a feed-back path; (e) comparing exponents of said product and, if they do not compare, performing a proper alignment; (f) testing whether the following cases apply: i) if the product is true zero then said feeding back to aligners of step (d) is cancelled; ii) if the product exponent is smaller than or equal to the addend exponent, then the product is aligned; iii) if the product exponent is greater than the addend exponent, then the addend is aligned; (g) setting a potential guard digit of the product to zero if the product does not have a leading zero; (h) if the product has a leading zero, shifting both operands left by 1 digit and a least significant digit of an aligner becomes a guard digit of a result; (i) aligning both the product and the addend including adding them in the second Adder forming a final result.
Claim 4
Dependent Claim
247 words
(Amended) A method of performing a fast multiply-add instruction without requiring a wait cycle in a floating point processor comprising the steps of: (a) reading first and second operands for multiplication into first and second input registers of a multiplier; (b) building partial sums of the first and second operands by the multiplier; (c) calculating a product exponent and reducing the exponent by 1 if a product has a leading zero, including simultaneously reading an operand (addend) of an addition; (d) adding the partial sums from the multiplier including feeding a resulting intermediate value (product) back to aligners via a feed-back path; (e) comparing exponents of said product and, if they do not compare, performing a proper alignment; (f) testing whether the following cases apply: i) if the product is true zero then said feeding back to aligners of step (d) is cancelled; ii) if the product exponent is smaller than or equal to the addend exponent, then the product is aligned; iii) if the product exponent is greater than the addend exponent, then the addend is aligned; (g) setting a potential guard digit of the product to zero if the product does not have a leading zero; (h) if the product has a leading zero, shifting both operands left by 1 digit and a least significant digit of an aligner becomes a guard digit of a result; (i) aligning both the product and the addend including adding them in the second Adder forming a final result.