Patent ID: 6286024
Filing Date: 2001-09-04
Classification: G06F

Abstract:
A multiplier comprising:two multipliers for executing m (m is a natural number and an even number)/2 bit.times.n (n is a natural number and an even number)/2 bit multiplication;two multiplicand selectors, respectively connected to multiplicand input sides of the two multipliers, for selecting one multiplicand from a plurality of multiplicands;two multiplicator selectors, respectively connected to multiplicator input sides of the two multipliers, for selecting one multiplicator from a plurality of multiplicators;a connector for connecting two output data from the two multipliers;first and second output holding circuits for respectively holding two output data from the two multipliers;a first adder for adding two output data from the first and second output holding circuits; anda second adder for adding output data from the first adder and the connected data from the connector;wherein, in order to execute four sets of m/2 bit.times.n/2 bit multiplication, the two multiplicand selectors select two sets of m/2-bit multiplicands respectively and the two multiplicator selectors select two sets of n/2-bit multiplicators corresponding to the two sets of m/2-bit multiplicands respectively, then the selected two sets of m/2-bit multiplicands and the selected two sets of n/2-bit multiplicators are input into the two multipliers, then two sets of m/2 bit.times.n/2 bit multiplication are executed in parallel, and then two output data of the two multipliers are held by the first and second output holding circuits respectively, and thenthe two multiplicand selectors select remaining two sets of m/2-bit multiplicands respectively and the two multiplicator selectors select remaining two sets of n/2-bit multiplicators corresponding to the remaining two sets of m/2-bit multiplicands respectively, then the selected remaining two sets of m/2-bit multiplicands and the selected remaining two sets of n/2-bit multiplicators are input into the two multipliers, and then remaining two sets of m/2 bit.times.n/2 bit multiplication are executed in parallel, andwherein, in order to execute mbit.times.n bit multiplication, a multiplicand selector connected to one multiplier selects an upper m/2-bit multiplicand and a corresponding multiplicator selector selects a lower n/2-bit multiplicator, then a multiplicand selector connected to other multiplier selects a lower m/2-bit multiplicand and a corresponding multiplicator selector selects an upper n/2-bit multiplicator, then the selected m/2-bit multiplicands and the selected n/2-bit multiplicators are input into the two multipliers respectively, then two sets of multiplication of (upper m/2 bits of m bits).times.(lower n/2 bits of n bits) and (lower m/2 bits of m bits).times.(upper n/2 bits of n bits) are executed in parallel, and then two output data of the two multipliers are held by the first and second output holding circuits respectively, and thenthe multiplicand selector connected to the one multiplier selects the lower m/2-bit multiplicand and the corresponding multiplicator selector selects the lower n/2-bit multiplicator, then the multiplicand selector connected to the other multiplier selects the upper m/2-bit multiplicand and the corresponding multiplicator selector selects the upper n/2-bit multiplicator, then the selected m/2-bit multiplicands and the selected n/2-bit multiplicators are input into the two multipliers respectively, then two sets of multiplication of (lower m/2 bits of m bits).times.(lower n/2 bits of n bits) and (upper m/2 bits of m bits).times.(upper n/2 bits of n bits) are executed in parallel, and then two multiplication results of the two sets of multiplication are connected by the connector and two sets of output data held by the first and second output holding circuits are added by the first adder, andan added result of the first adder and data connected by the connector are added by the second adder with arranging in a predetermined bit location each other.