Claims
- 1. A device comprising:
a shared operand generator, the shared operand generator receiving a first operand and outputting a result that is a fixed function of the first operand; and an arithmetic circuit comprising:
a plurality of multiply circuits, each of the plurality of multiply circuits having circuitry to calculate partial products of the first operand and a second operand using at least one of a set including the first operand and the result of the shared operand generator, and circuitry to selectively calculate a sum of the partial products and a third operand and produce an arithmetic result.
- 2. The device of claim 1 wherein the result of the shared operand generator is stored in a register.
- 3. The device of claim 2 wherein the first operand is stored in a register.
- 4. The device of claim 1 wherein the third operand is stored in a register.
- 5. The device of claim 1 wherein the fixed function is an arithmetic function.
- 6. The device of claim 1 wherein the fixed function is a multiplication by three.
- 7. The device of claim 1 wherein the second input of each of the plurality of multiply circuits is coupled to a different operand.
- 8. The device of claim 1 wherein the second inputs of each of the plurality of multiply circuits are not coupled to the same operand.
- 9. The device of claim 1 further comprising a plurality of bit multipliers in the arithmetic circuit, wherein each of the plurality of bit multipliers multiplies a different bit of the second operand with the first operand to produce the partial products.
- 10. The device of claim 9 wherein the second operand comprises a collection of subsets of digits which taken as a whole represent the value of the second operand.
- 11. The device of claim 10 wherein the second operand comprises subsets comprising 3 distinct digits and one shared digit in each subset.
- 12. The device of claim 9 further comprising an adder tree for adding the partial products and the third input.
- 13. The device of claim 1 further comprising a most significant zero detector for determining the bit position in the arithmetic circuit result of the most significant zero.
- 14. The device of claim 13 wherein the most significant zero detector further comprises a first stage with a plurality of zero bit detectors each operating on a subset of the sum, a second stage with a plurality of zero bit detectors operating on the results of the first stage, and a third stage with a zero bit detector operating on the results of the second stage.
- 15. The device of claim 1 further comprising an output formatter for formatting the arithmetic circuit result.
- 16. The device of claim 1 wherein the first and second operands are floating point operands.
- 17. A device for performing multiply/accumulate operations based upon a multiplication algorithm utilizing successive small bit multiply operations, comprising:
a plurality of small bit multipliers, wherein each of the plurality of small bit multipliers operates to perform the multiplication algorithm on a first input and a bit of a second input to calculate a plurality of partial products; and an adder tree for adding the partial products to calculate a multiply/accumulate result.
- 18. The device of claim 17 wherein the adder tree selectively adds a third input to the partial products in calculating the multiply/accumulate result.
- 19. The device of claim 17 wherein the adder tree comprises a first local carry adder for adding a first subset of the plurality of partial products, a second local carry adder for adding a second subset of the plurality of partial products, and a third local carry adder for adding the results of the first and second local carry adders.
- 20. The device of claim 19 further comprising a fourth local carry adder for adding a third subset of the plurality of partial products, wherein the third local carry adder adds the results of the first, second, and fourth local carry adders.
- 21. The device of claim 19 wherein the second carry adder adds the third input with the second subset of the plurality of partial products.
- 22. The device of claim 19 further comprising alignment circuitry for aligning the results of the third local carry adder.
- 23. The device of claim 20 further comprising alignment circuitry for aligning the results of the fourth local carry adder.
- 24. An arithmetic circuit for calculating floating point operations comprising:
first and second strips of consecutive logic cells, each logic block having a first cell and a last cell, the first cell through the next to last cell having an output that is coupled to the next adjacent cell; and a control signal, wherein if the control signal is a first value, the output of the last cell of the first strip is logically coupled to the first cell of the second strip, and if the control signal is a second value, the output of the last cell of the second strip is logically coupled to the first cell of the first logic block.
- 25. The arithmetic circuit of claim 24 further comprising a multiplexer for logically coupling the last cell of the first strip to the first cell of the second strip, and for logically coupling the last cell of the second strip to the first cell of the first strip in response to the control signal.
- 26. The arithmetic circuit of claim 24 further comprising:
a first operand having a mantissa coupled to the first strip and an exponent; a second operand having a mantissa coupled to the first and second strips and an exponent; and a comparator for generating the control signal, wherein if the exponent of the first operand is greater than the exponent of the second operand, the comparator outputs the first value as the control signal, and if the exponent of the first operand is less than the exponent of the second operand, the comparator outputs the second value as the control signal.
- 27. The arithmetic circuit of claim 24 wherein the first and second strips are local carry adders.
- 28. The arithmetic circuit of claim 24 wherein the logic cells are adders and the outputs from the logic cells are carry results from the adders.
- 29. The arithmetic circuit of claim 24 wherein the second operand is the output of an accumulator register.
- 30. An arithmetic circuit for calculating floating point operations comprising:
first and second strips of consecutive logic cells, each strip having a least significant cell and a most significant cell, each of the logic cells from the least significant cell through the logic cell before the most significant cell having an output that is coupled to the next adjacent cell, the first strip having a first number of logic cells, and the second strip having a second number of logic cell; a first operand having a number of digits equal to the first number of logic cells, the first operand being coupled to the first strip; a second operand having a number of digits equal to the second number of logic cells; and comparator logic for determining a shift amount and a shift direction for the second operand, wherein if the shift direction is a first direction, a number of the consecutive logic cells equal to the shift amount in the first strip and beginning at the least significant logic cell are coupled to a first logic value, the remaining logic cells in the first strip are coupled consecutively to least significant digits of the second operand, the remaining digits in the second operand are coupled consecutively to the least significant logic cells of the second strip, the remaining logic cells of the second strip being coupled to the first logic value.
- 31. The arithmetic circuit of claim 30 wherein if the shift direction is a second direction a number of the consecutive logic cells equal to the shift amount in the second strip and beginning at the least significant logic cell are coupled to a first logic value, the remaining logic cells of the second strip are coupled consecutively to least significant digits of the second operand, the remaining digits in the first operand are coupled consecutively to the least significant logic cells of the first strip, the remaining logic cells of the first strip being coupled to the first logic value.
- 32. The arithmetic circuit of claim 31 wherein if the shift direction is the first direction, then the output of the most significant logic cell of the first strip is coupled to the least significant logic cell of the second strip, and if the shift direction is the second direction, then the output of the most significant logic cell of the second strip is coupled to the least significant logic cell of the first strip.
STATEMENT OF RELATED APPLICATIONS
[0001] This application is a division of U.S. application Ser. No. 09/100,448, filed Jun. 19, 1998; which claims priority from U.S. Provisional Application No. 60/050,396, filed Jun. 20, 1997, the contents of which are hereby incorporated by reference in their entirety for all purposes.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60050396 |
Jun 1997 |
US |
Divisions (1)
|
Number |
Date |
Country |
Parent |
09100448 |
Jun 1998 |
US |
Child |
10167004 |
Jun 2002 |
US |