Claims
- 1. An apparatus to efficiently fetch instructions including complex multiplication instructions and an accumulate form of multiplication instructions from a memory element and dispatch the fetched instruction to at least one of a plurality of multiply complex and multiply with accumulate execution units to carry out the instruction specified operation, the apparatus comprising:
a memory element; means for fetching said instructions from the memory element; a plurality of multiply complex and multiply with accumulate execution units; and means to dispatch the fetched instruction to at least one of said plurality of execution units to carry out the instruction specified operation.
- 2. The apparatus of claim 1 further comprising:
an instruction register to hold a dispatched multiply complex instruction (MPYCX); means to decode the MPYCX instruction and control the execution of the MPYCX instruction; two source registers each holding a complex number as operand inputs to the multiply complex execution hardware; four multiplication units to generate terms of the complex multiplication; four pipeline registers to hold the multiplication results; an add function which adds two of the multiplication results from the pipeline registers for the imaginary component of the result; a subtract function which subtracts two of the multiplication results from the pipeline registers for the real component of the result; a round and select unit to format the real and imaginary results; and a result storage location for saving the final multiply complex result, whereby the apparatus is operative for the efficient processing of multiply complex computations.
- 3. The apparatus of claim 1 wherein the means for fetching said instructions is a sequence processor (SP) controller.
- 4. The apparatus of claim 2 wherein the round and select unit provides a shift right as a divide by 2 operation for a multiply complex divide by 2 instruction (MPYCXD2).
- 5. The apparatus of claim 1 further comprising:
an instruction register to hold a dispatched multiply complex instruction (MPYCXJ); means to decode the MPYCXJ instruction and control the execution of the MPYCXJ instruction; two source registers each holding a complex number as operand inputs to the multiply complex execution hardware; four multiplication units to generate terms of the complex multiplication; four pipeline registers to hold the multiplication results; an add function which adds two of the multiplication results from the pipeline registers for the real component of the result; a subtract function which subtracts two of the multiplication results from the pipeline registers for the imaginary component of the result; a round and select unit to format the real and imaginary results; and a result storage location for saving the final multiply complex conjugate result, whereby the apparatus is operative for the efficient processing of multiply complex conjugate computations.
- 6. The apparatus of claim 5 wherein the round and select unit provides a shift right as a divide by 2 operation for a multiply complex conjugate divide by 2 instruction (MPYCXJD2).
- 7. The apparatus of claim 1 further comprising:
an instruction register to hold the dispatched multiply accumulate instruction (MPYA); means to decode the MPYA instruction and control the execution of the MPYA instruction; two source registers each holding a source operand as inputs to the multiply accumulate execution hardware; at least two multiplication units to generate two products of the multiplication; at least two pipeline registers to hold the multiplication results; at least two accumulate operand inputs to the second pipeline stage accumulate hardware; at least two add functions which each adds the results from the pipeline registers with the third accumulate operand creating two multiply accumulate results; a round and select unit to format the results if required by the MPYA instruction; and a result storage location for saving the final multiply accumulate result, whereby the apparatus is operative for the efficient processing of multiply accumulate computations.
- 8. The apparatus of claim 1 further comprising:
an instruction register to hold a dispatched multiply accumulate instruction (SUM2PA); means to decode the SUM2PA instruction and control the execution of the SUM2PA instruction; at least two source registers each holding a source operand as inputs to the SUM2PA execution hardware; at least two multiplication units to generate two products of the multiplication; at least two pipeline registers to hold the multiplication results; at least one accumulate operand input to the second pipeline stage accumulate hardware; at least one add function which adds the results from the pipeline registers with the third accumulate operand creating a SUM2PA result; a round and select unit to format the results if required by the SUM2PA instruction; and a result storage location for saving the final result, whereby the apparatus is operative for the efficient processing of sum of 2 products accumulate computations
- 9. The apparatus of claim 1 further comprising:
an instruction register to hold the dispatched multiply complex accumulate instruction (MPYCXA); means to decode the MPYCXA instruction and control the execution of the MPYCXA instruction; two source registers each holding a complex number as operand inputs to the multiply complex accumulate execution hardware; four multiplication units to generate terms of the complex multiplication; four pipeline registers to hold the multiplication results; at least two accumulate operand inputs to the second pipeline stage accumulate hardware; an add function which adds two of the multiplication results from the pipeline registers and also adds one of the accumulate operand input for the imaginary component of the result; a subtract function which subtracts two of the multiplication results from the pipeline registers and also adds the other accumulate operand input for the real component of the result; a round and select unit to format the real and imaginary results; and a result storage location for saving the final multiply complex accumulate result, whereby the apparatus is operative for the efficient processing of multiply complex accumulate computations.
- 10. The apparatus of claim 9 wherein the round and select unit provides a shift right as a divide by 2 operation for a multiply complex accumulate divide by 2 instruction (MPYCXAD2).
- 11. The apparatus of claim 1 further comprising:
an instruction register to hold the dispatched multiply complex conjugate accumulate instruction (MPYCXJA); means to decode the MPYCXJA instruction and control the execution of the MPYCXJA instruction; two source registers each holding a complex number as operand inputs to the multiply complex accumulate execution hardware; four multiplication units to generate terms of the complex multiplication; four pipeline registers to hold the multiplication results; at least two accumulate operand inputs to the second pipeline stage accumulate hardware; an add function which adds two of the multiplication results from the pipeline registers and also adds one of the accumulate operand input for the real component of the result; a subtract function which subtracts two of the multiplication results from the pipeline registers and also adds the other accumulate operand input for the imaginary component of the result; a round and select unit to format the real and imaginary results; and a result storage location for saving the final multiply complex conjugate accumulate result, whereby the apparatus is operative for the efficient processing of multiply complex conjugate accumulate computations.
- 12. The apparatus of claim 11 wherein the round and select unit provides a shift right as a divide by 2 operation for a multiply complex conjugate accumulate divide by 2 instruction (MPYCXJAD2).
- 13. The apparatus of claim 1 wherein the complex multiplication instructions and accumulate form of multiplication instructions include MPYCX, MPYCXD2, MPYCXJ, MPYCXJD2, MPYCXA, MPYCXAD2, MPYCXJA, MPYCXJAD2 instructions, and all of these instructions complete execution in 2 cylces.
- 14. The apparatus of claim 1 wherein the complex multiplication instructions and accumulate form of multiplication instructions include MPYCX, MPYCXD2, MPYCXJ, MPYCXJD2, MPYCXA, MPYCXAD2, MPYCXJA, MPYCXJAD2 instructions, and all of these instructions are tightly pipeline-able.
- 15. The apparatus of claim 2 wherein the add function and subtract function are selectively controlled functions allowing either addition or subtraction operations as specified by the instruction.
- 16. The apparatus of claim 5 wherein the add function and subtract function are selectively controlled functions allowing either addition or subtraction operations as specified by the instruction.
- 17. The apparatus of claim 9 wherein the add function and subtract function are selectively controlled functions allowing either addition or subtraction operations as specified by the instruction.
- 18. The apparatus of claim 11 wherein the add function and subtract function are selectively controlled functions allowing either addition or subtraction operations as specified by the instruction.
Parent Case Info
[0001] This application is a divisional of U.S. application Ser. No. 09/337,839 filed Jun. 22, 1999, which claims the benefit of U.S. Provisional Application Ser. No. 60/103,712 filed Oct. 9, 1998, which are incorporated by reference in their entirety herein.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60103712 |
Oct 1998 |
US |
Divisions (1)
|
Number |
Date |
Country |
Parent |
09337839 |
Jun 1999 |
US |
Child |
10859708 |
Jun 2004 |
US |