Low power multiplier for CPU and DSP

Abstract: The NEG output of the Booth encoding circuit and the multiplicand input are gated (by 211,213,215) so as to minimize switching activity in the multiplier without adding any delay to the critical path thereof (103,105,107). Advantageously, power consumption in the multiplier is significantly reduced, e.g., on the order of 90%, when multiplication is in fact not being performed. Additionally, by changing the structure of the last XOR gate of the partial product generation circuit, the need to gate the multiplicand input can be eliminated. Advantageously, this eliminates the extra circuitry which would otherwise be required to gate the multiplicand input, thus reducing cost. Furthermore, additional power savings may be achieved by efficiently resynchronizing the multiplicand input with the Booth encoded input to the partial product circuit.

Description: This invention relates to a multiplies circuit and to a method for computing the product. Hardware-based multipliers are often added to digital signal processors (DSP) and central processing units (CPU) to speed up the multiplication function, and thus speed up application execution. Typically, in DSPs and CPUs, the operands are loaded into respective registers, and are then supplied to the execution unit to have the appropriate operation performed. The execution unit is often made up of one or more function units, each of which has access to the operands stored in the registers, and which performed a particular dedicated function, e.g., add, Boolean arithmetic, or multiplication. The longest time taken by any of the function units represents the critical path of the execution unit, and determines the maximum speed of the execution unit. Since all the function units have access to the operands in parallel, all the function units perform their respective function each cycle of the execution unit. However, only the result from the function unit specified by the instruction currently being executed is supplied as the output of the execution unit. As a result, much work is performed, and power is consumed so doing, although only a small fraction of that consumed power contributes to the production of a beneficial result. In particular, the multiplier function unit, consumes the lion's share of the power, while it is often used only a small percentage of ten time. Known approaches to reducing the power used by the multiplier is to logically gate one or more of its inputs with a control signal that is responsive to the instruction type, where inputs are supplied to the multiplier only when multiplication is actually being performed. The most commonly used type of multiplier makes use of Booth encoding of one of the operands. It is known that gating the Booth encoded input yields the lowest power consumption in the multiplier. In addition, it is also well known that the critical path of the multiplier is along the path through the Booth encoder. As a result, disadvantageously, gating this input would add delay to the multiplier, and hence slow down the speed of the entire execution unit. JP 09 101877 discloses a multiplication method using Booth's Algorithm that has reduced power consumption when the multiplicand is zero (0). According to one aspect of this invention there is provided a partial product circuit as claimed in claim 1. According to another aspect of this invention there is provided a method as claimed in claim 5. We have recognized that by gating the NEG output of the Booth encoding circuit and the multiplicand input that switching activity in the multiplier is minimized yet no delay is added to the multiplier's critical path. Advantageously, power consumption in the multiplier is significantly reduced, e.g., on the order of 90%, when multiplication is in fact not being performed. Additionally, by changing the structure of the last XOR gate of the partial product generation circuit, the need to gate the multiplicand input can be eliminated. Advantageously, this eliminates the extra circuitry which would otherwise be required to gate the multiplicand input, thus reducing cost. Furthermore, additional power savings may be achieved by efficiently resynchronizing the multiplicand input with the Booth encoded input to the partial product circuit. Brief Description of the Drawing In the drawing: FIG. 1 shows an exemplary prior art basic partial product circuit; FIGS. 2 shows an exemplary partial product circuit embodying the invention; and FIG. 3 shows an implementation of the invention using transmission gates. Detailed Description Before describing the gating of the NEG output of the Booth encoding circuit and the multiplicand input to minimize switching activity in the multiplier without adding any delay to the critical path thereof, it is useful to understand the prior art partial product circuit to which the gating of the invention is applied. Therefore, FIG. 1 shows an exemplary prior art basic partial product circuit 101 which takes a) the outputs X1, X2 and NEG of a Booth encoder (not shown) which is encoding three bits of the multiplier and b) two adjacent bits of multiplicand, A i and A i-1 , and computes one bit of a partial product, output PP. Note that a Booth encoder is special encoder which is used to speed up the multiplication process. Booth encoders, their structure and use in multipliers are described by N. Weste and K. Eshraghian on pages 547-554 of Principles of CMOS VLSI Design, 2 nd Ed. , Addison Wesley, 1992. Note that Booth encoders are referred to therein as Booth recoders. The partial products generated by each partial product circuit in the multiplier are then further combined to form the overall output of the multiplier, as is well known. The operation of the partial product circuit, in brief, is as follows. Via AND gate 103 signal X1 selects signal A i and via AND gate 105 signal X2 selects signal A i-1 . The outputs of AND gates 103 and 105 are logically ORed by OR gate 107 to generate internal signal X The NEG output of the Booth encoder is supplied as an input to XOR gate 109, which supplies as its output signal PP. Signal PP takes the value of X when NEG has a value of logic 0 or the compliment of the value of X when NEG has a value of logic 1. We have recognized that because the critical path of this partial product circuit passes through AND gates 103 and 105, as well as OR gate 107, prior to arriving at XOR gate 109, the value of signal NEG may be supplied somewhat later than the values of X1 and X2 without impacting on the promptness of the determination of PP at XOR gate 109. Therefore, in the exemplary partial product circuit of FIG. 2, the NEG signal is gated with signal ENABLE using AND gate 211 prior to supplying the gated result, which is the value of the NEG signal when signal ENABLE is a logic 1 and a logic 0 otherwise, to XOR gate 109. Thus, when signal ENABLE is a logic 0, the value of signal NEG is ignored, and in fact is always a logic 0. However, the value signal of signal X may still change, resulting in transitions at output PP. We have also recognized that, to avoid delay in the operation of the partial product circuit, inputs A i and A i-1 must be available at least by the time that values X1 and X2 are available. Since A i and A i-1 are typically not encoded and are available at the same time that the multiplier input is supplied to the Booth encoder, they may be gated by logic circuits that operate at least as fast as the portion of the Booth encoder that generates X1 and X2 prior to being supplied to AND gates 103 and 105, without causing a delay in the determination of PP. Such a gating is shown being performed in FIG. 2 by AND gates 213 and 215. Note that AND gates 213 and 215 operate faster than the portion of the Booth encoder that generates X1 and X2. When signal ENABLE is a logic 1, signals A i and A i-1 arrive unchanged at gates 103 and 105, with a delay that does not reduce the operation speed of partial product circuit 201. However, when signal ENABLE is a logic 0, the values of A i and A i-1 are masked, and instead of their values logic 0s are supplied to AND gates 103 and 105. As a result, the value of X is a logic 0, regardless of the values of X1 and X2. Thus, as both inputs to XOR gate 109 are logic 0s, the output PP is also a logic 0. Note that if only A i and A i-1 were masked, the value of NEG could result in power consuming transitions at output PP. Likewise, if only the value of NEG were masked, changes in the values of A i , A i-1 , X1, and X2 could result in power consuming transitions at output PP. Note that the principles of the invention may be applied with different numerical representations of the numbers being multiplied or when different gate families are used to implement the partial product circuit. The foregoing merely illustrates the invention. It will thus be appreciated that those skilled in the art will be able to devise various arrangements which, although not explicitly described or shown herein, embody the invention and are included within its scope, as claimed.

Claims: A multiplier circuit for computing the product of a first operand with a second operand [A i , A i-1 ,...] comprising: a Booth encoder for encoding the first operand, the Booth encoder producing output signals (NEG, X1, X2), wherein one signal forms a sign signal (NEG) indicating if the multiples of the second operand should be added or subtracted and wherein the other signals are magnitude signals (X1, X2) determining the absolute magnitude of said multiple; a partial product circuit, receiving said Booth encoder output signals (NEG, X1, X2) and said second operand [A i , A i-1 ,...] for generating a partial product output (pp); the critical path of said partial product circuit is determined by said magnitude signals (X1, X2) propagating through the partial product circuit to the partial product output (pp); said multiplier circuit being characterised by : a first gate [211] to control the passing of said sign signal (NEG) to a last stage of said partial product circuit whereby said critical path delay is not impacted; a second gate [213] [215] to control passing of said second operand [A i , A i-1 ,...] to said partial product circuit whereby said critical path delay is not impacted. The multiplier as circuit as claimed in claim 1 wherein said first gate and said second gate are controlled by a common control signal. The multiplier as claimed in claim 1 wherein said first gate and said second gate are controlled by a common control signal, said common control signal assuming a first value to prevent passing of said sign signal (NEG) and said second operand during a first operating condition and to permit passing of said sign signal (NEG) and said second operand during a second operating condition. The multiplier circuit as claimed in claim 3, wherein said first operating condition is when multiplication is not being performed and said second operating condition is when multiplication is being performed. A method for computing the product of a first operand with a second operand [A i , A i-1 ,...] comprising the steps of: encoding, by means of a Booth encoder, the first operand and producing output signals [NEG, X1, X2], wherein one signal forms a sign signal (NEG) indicating if the multiples of the second operand should be added or subtracted and wherein the other signals are magnitude signals (X1, X2) determining the absolute magnitude of said multiple; supplying the output signals [NEG,X1,X2] and the second operand [A i , A i-1 ,...] to a partial product circuit for generating a partial product output (pp); the critical path of said partial product circuit being determined by the magnitude signals [X1, X2] propagating through the partial product circuit to the partial product output (pp); said method being characterized by the steps of: controlling, by way of a first gate [211], the passing of said sign signal [NEG] to a last stage of said partial product circuit whereby the critical path delay is not impacted; and controlling the passing of said second operand [Ai, Ai-1,...], by way of a second gate [213] [215] to said partial product circuit, whereby the critical path'delay is not impacted.

Inventors: NICOL CHRISTOPHER JOHN, NICOL, CHRISTOPHER JOHN
Applicants: LUCENT TECHNOLOGIES INC, LUCENT TECHNOLOGIES INC.
Application year: 1999
Main classification: G06F7
IPC codes: G06F7, H03K19