Fast operand formatting for a high performance multiply-add floating point-unit
First Claim
1. A floating point execution unit for performing multiply/add operations using a plurality of operands taken from an instruction having a plurality of operand positions, the floating point unit comprising:
- a multiplier for calculating a product of two of the operands;
an aligner coupled to the multiplier for combing said product and a third of the operands;
a first data path for supplying to the multiplier operands from a first and a second of the operand positions of the instruction;
a second data path for supplying the third operand to the aligner; and
a multiplexer on the second data path for selecting, for use by the aligner, either the operand from the second operand position of the instruction or the operand from the third operand position of the instruction.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed are a floating point execution unit, and a method of operating a floating point unit, to perform multiply/add operations using a plurality of operands from an instruction having a plurality of operand positions. The floating point unit comprises a multiplier for calculating a product of two of the operands, and an aligner for combining said product and a third of the operands. A first data path is used to supply to the multiplier operands from a first and a second of the operand positions of the instruction, and a second data path is used to supply the third operand to the aligner. The floating point unit further comprises a multiplexer on the second data path for selecting, for use by the aligner, either the operand from the second operand position or the operand from the third operand position of the instruction.
47 Citations
20 Claims
-
1. A floating point execution unit for performing multiply/add operations using a plurality of operands taken from an instruction having a plurality of operand positions, the floating point unit comprising:
-
a multiplier for calculating a product of two of the operands;
an aligner coupled to the multiplier for combing said product and a third of the operands;
a first data path for supplying to the multiplier operands from a first and a second of the operand positions of the instruction;
a second data path for supplying the third operand to the aligner; and
a multiplexer on the second data path for selecting, for use by the aligner, either the operand from the second operand position of the instruction or the operand from the third operand position of the instruction. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method of operating a floating point execution unit to perform multiply/add operations the floating point unit having a multiplier, an aligner coupled to the multiplier, and a multiplexer, the method comprising the steps:
-
sending an instruction to the floating point unit, the instruction having a plurality of operand positions holding operands;
using the multiplier to calculate a product of two of the operands;
using the aligner to combine said product and a third of the operands;
supplying over a first data path to the multiplier operands from a first and a second of the operand positions of the instruction;
supplying over a second data path the third operand to the aligner; and
positioning the multiplexer on the second data path;
using the multiplexer to select, for use by the aligner, either the operand from the second operand position of the instruction or the operand from the third operand position of the instruction. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification