Patent ID: 8271571
Filing Date: 2012-09-18
Classification: G06F

Abstract:
1. A microprocessor, comprising: an execution control section configured to fetch instructions containing a complex-MAC instruction to instruct an MAC (multiply-accumulate) operation on complex numbers and to control execution of the instruction; a first register having a register length of at least 2 a second register having a register length of at least 2 a third register having a register length of at least 2 a complex-MAC unit configured to receive the first to fourth complex data from the first register and the second register so as to perform a complex operation based on control of the execution control section having fetched the complex-MAC instruction, and to overwrite the third register with a value obtained by adding a value obtained through the complex operation to a stored value of the third register, wherein the value obtained through the complex operation is one of a sum of a real part of a product of the first and third complex data and a real part of a product of the second and fourth complex data, and a sum of an imaginary part of the product of the first and third complex data and an imaginary part of the product of the second and fourth complex data wherein the complex-MAC unit includes: a first multiplier configured to multiply one of the real part and the imaginary part of the first complex data by the real part of the third complex data to output a multiplication result with a maximum length of 2 a second multiplier configured to multiply one of the imaginary part and the real part of the first complex data by the imaginary part of the third complex data to output a multiplication result with a maximum length of 2 a third multiplier configured to multiply one of the real part and the imaginary part of the second complex data by the real part of the fourth complex data to output a multiplication result with a maximum length of 2 a fourth multiplier configured to multiply one of the imaginary part and the real part of the second complex data by the imaginary part of the fourth complex data to output a multiplication result with a maximum length of 2 a first addition/subtraction section configured to alternately perform one of addition and subtraction on four output values of the first to fourth multipliers, and to output a single addition/subtraction result; and a first cumulative addition section configured to add an output value of the first addition/subtraction section to the stored value of the third resister to output an obtained addition result to the third register, wherein the first addition/subtraction section includes: a first adder/subtractor configured to perform one of addition and subtraction on the output values of the first and second multipliers to output one of a real part and a imaginary part of a result of multiplication of the first complex number and the third complex number; a second adder/subtractor configured to perform one of addition and subtraction on the output values of the third and fourth multipliers to output one of a real part and an imaginary part of a result of multiplication of the second complex number and the fourth complex number; and a first adder configured to add output values of the first adder/subtractor and the second adder/subtractor, wherein the complex-MAC instruction comprises one of a real part MAC operation instruction to instruct cumulative addition of real parts of multiplication results of two complex data items, and an imaginary part MAC operation instruction to instruct cumulative addition of imaginary parts of multiplication results of two complex data items; the complex-MAC unit further includes: the execution control section executes the real part MAC operation instruction by causing: the first selector circuit to supply the real part of the first complex number; the second selector circuit to supply the imaginary part of the first complex number; the third selector circuit to supply the real part of the third complex number; the fourth selector circuit to supply the imaginary part of the third complex number: and the first adder/subtractor and the second adder/subtractor to perform subtraction processing; and the execution control section executes the imaginary part MAC operation instruction by causing: the first selector circuit to supply the imaginary part of the first complex number: the second selector circuit to supply the real part of the first complex number; the third selector circuit to supply the imaginary part of the third complex number; the fourth selector circuit to supply the real part of the third complex number; and the first adder/subtractor and the second adder/subtractor to perform addition processing.