Claims
- 1. A method of performing multiplication with integrated polynomial multiplication capability comprising the steps of: receiving the multiplier operand, the multiplicand operand, and the polynomial specification signal; calculating a product, the product being one of an integer product or a polynomial product, depending on the polynomial specification signal; and transmitting the result.
- 2. The method of claim 1, wherein the step of calculating the product includes producing partial products and calculating one of an integer product or polynomial product based on the partial products, and wherein the step of producing the partial product modifies a calculation of ×1, ×2 and negate selection signals using an enhanced Booth encoder, depending on the polynomial specification signal.
- 3. The method of claim 2 further comprising the steps of calculating ×1, ×2 and negate selection signals and recoding the ×1, ×2 and negate selection signals into ×1pass, ×1force, ×2pass, and ×2force signals.
- 4. The method of claim 3 further comprising the step of combining ×1pass, ×1force, ×2pass, and ×2force signals with multiplicand ×1 and multiplicand ×2 signals producing a partial product.
- 5. The method of claim 4 further comprising the step of inhibiting the value of the ×1force, ×2pass and ×2force signals at certain multiplexor locations to produce an alternate partial product.
- 6. The method of claim 1, wherein the step of calculating the product includes producing partial products, and further including the step of adding partial products in a partial products summation tree, in which the carry output of each full adder is inhibited to perform polynomial multiplication, depending on the polynomial specification signal.
- 7. The method of claim 6 further comprising the step of using a full adder that inhibits the carry output only sensitive to known non-zero inputs to the full adder, depending on the polynomial specification signal.
- 8. A method of performing matrix multiplication with partitioning capability comprising the steps of: receiving a multiplier operand, a multiplicand operand, and a partitioning specification signal; calculating partitioned product, depending on a partitioning specification signal; and transmitting the calculated partitioned product.
- 9. The method of claim 8, wherein the step of calculating a partitioned product further comprises the step of producing a carry-save result with no additions for the least significant four bits of an 8b partial product.
- 10. The method of claim 8, wherein the step of calculating a partitioned product further comprises the step of obtaining a partial product computation in which separate head and tail bits are produced at a partition boundary between operands, or fused together into a single 8b partial product.
- 11. The method of claim 8, wherein the step of calculating a partitioned product further comprises the step of performing integrated floating-point matrix multiplication.
- 12. The method of claim 11, wherein the step of calculating a partitioned product comprises the step of aligning 16b partial products to 8b alignment without extending the size of the partial product.
- 13. The method of claim 11, wherein the step of calculating a partitioned product comprises the step of further aligning partial products to 32b alignment before adding 32b partial products.
- 14. The method of claim 13, wherein the step of calculating a partitioned product comprises the step of further aligning partial products to 64b alignment before adding 64b partial products.
- 15. The method of claim 14, wherein the step of calculating a partitioned product comprises the step of further aligning partial products to 128b alignment before adding 128b partial products.
- 16. A system of performing multiplication with integrated polynomial multiplication capability comprising: a receiver which receive a multiplier operand, a multiplicand operand, and a polynomial specification signal; a multiplier that calculates an integer product or polynomial product, depending on a polynomial specification signal state; and a transmitter that transmits one of the integer product or the polynomial product calculated by the calculator.
- 17. The system of claim 16, wherein the multiplier includes a portion which produces partial products and a portion which calculates one of an integer product or polynomial product based on the partial products, and wherein the portion that produces partial products includes an enhanced Booth encoder that modifies a calculation of ×1, ×2 and negate selection signals, depending on the polynomial specification signal.
- 18. The system of claim 17 further comprising a recoder that recodes the ×1, ×2 and negate selection signals into ×1pass, ×1force, ×2pass, and ×2force signals.
- 19. The system of claim 18 further comprising an enhanced Booth multiplexor that combines the ×1pass, ×1force, ×2pass, and ×2force signals with multiplicand ×1 and multiplicand ×2 signals producing a partial product.
- 20. The system of claim 19 further comprising a fusing circuit that inhibits the value of the ×1force, ×2pass and ×2force signals at certain multiplexor locations to produce an alternate partial product.
- 21. The system of claim 17 wherein the portion of the multiplier which calculates one of an integer product or polynomial product based on the partial products includes full adders in a partial product summation tree that inhibit the carry output to perform polynomial multiplication, depending on the polynomial specification signal.
- 22. The system of claim 21 further comprising full adders that inhibit the carry output only sensitive to known non-zero inputs to the full adder.
- 23. A system of performing matrix multiplication with partitioning capability comprising: a receiver which receives a multiplier operand, a multiplicand operand, and a partitioning specification signal; a multiplier that computes partitioned product results, depending on a partitioning specification signal; and a transmitter which transmits the partitioned product results computed by the multiplier.
- 24. The system of claim 23, wherein the multiplier performs a partial product computation that produces a carry save result with no additions for the least significant four bits of an 8b slice result.
- 25. The system of claim 23, wherein the multiplier performs a partial product computation in which separate head and tail bits are produced at a boundary between operands, or fused together into a single strip result, depending on the partitioning specification signal.
- 26. The system of claim 23, wherein the multiplier further comprises integrated floating-point matrix multiplication capability.
- 27. The system of claim 26, wherein the multiplier contains a portion that aligns 16b partial products to 8b alignment without extending the size of the partial product.
- 28. The system of claim 26, wherein the multiplier contains a portion that further aligns partial products to 32b alignment before adding 32b partial products.
- 29. The system of claim 28, wherein the multiplier contains a portion that further aligns partial products to 64b alignment before adding 64b partial products.
- 30. The system of claim 29, wherein the multiplier contains a portion that further aligns partial products to 128b alignment before adding 128b partial products.
RELATED APPLICATIONS
[0001] This application is related to Provisional Application No. 60/317,427, filed Sep. 4, 2001, and is a continuation in part of U.S. patent application Ser. No. 09/922,319, filed Aug. 2, 2001, which is a continuation of U.S. patent application Ser. No. 09/382,402, filed Aug. 24, 1999, now U.S. Pat. No. 6,295,599, which is a continuation in part of U.S. patent application Ser. No. 09/169,963, filed Oct. 13, 1998, now U.S. Pat. No. 6,006,318, which in turn related to U.S. patent application Ser. No. 08/516,036, filed Aug. 16, 1995, now U.S. Pat. No. 5,742,840.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60317427 |
Sep 2001 |
US |
Continuations (1)
|
Number |
Date |
Country |
Parent |
09382402 |
Aug 1999 |
US |
Child |
10233779 |
Sep 2002 |
US |
Continuation in Parts (2)
|
Number |
Date |
Country |
Parent |
09922319 |
Aug 2001 |
US |
Child |
10233779 |
Sep 2002 |
US |
Parent |
09169963 |
Oct 1998 |
US |
Child |
10233779 |
Sep 2002 |
US |