IP Library Granted Patent US 7,546,331
Granted Patent B2
US 7,546,331 · App. 11/083,698 · Granted Jun 9, 2009

Low power array multiplier

Assignee: QUALCOMM Incorporated
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,546,331
App. No.
11/083,698
Granted
Jun 9, 2009
Kind
B2
Abstract

An array multiplier comprises a partial product array including a plurality of array elements and a final carry propagate adder. Operands smaller than a corresponding dimension of the partial product array are shifted toward the most significant row or column of the array to reduce the number of array elements used to compute the product of the operands. Switching activity in the unused array elements may be reduced by turning off power to the array elements or by padding the shifted operands with zeros in the least significant bits. Additional power saving may be achieved by having bypass lines in the partial product array that bypasses non-essential array elements and by feeding partial sum and carry directly to the final carry propagate adder. Elements of the carry propagate adder may also be bypassed to achieve further power reduction.

Claims (25)

1. A method of multiplying two operands comprising:

inputting two operands to an array multiplier comprising an array containing N×M array elements and a final carry propagate adder such that at least one operand is displaced towards the most significant row or column of the array to reduce the number of array elements used to compute the product of the operands; and

multiplying the operands in the array multiplier.

2. The method of claim 1 wherein inputting two operands to an array multiplier comprises inputting the operands to the array multiplier such that the most significant bit of each displaced operand is aligned with the most significant bit of the array.

3. The method of claim 1 wherein inputting two operands to an array multiplier comprises inputting the operands to the array multiplier such that the least significant bit of at least one operand is aligned with a predetermined row or column of the array.

4. The method of claim 1 further comprising padding each displaced operand with one or more zeros in the least significant bit positions to prevent switching of unused array elements.

5. The method of claim 1 further comprising turning off power to unused array elements.

6. The method of claim 1 further comprising reducing latency by fetching the product of the operands from the array multiplier at a time dependent on the bit width of the operands.

7. The method of claim 1 further comprising connecting selected array elements to the final carry propagate adder to bypass unused array elements between the selected array elements and the final carry propagate adder.

8. The method of claim 7 wherein connecting selected array elements to the final carry propagate adder comprises generating a control signal and selectively connecting an output of said selected array element to said final carry propagate adder responsive to said control signal.

9. The method of claim 1 further comprising connecting selected array elements to the output of the array multiplier to bypass the carry propagate adder.

10. The method of claim 9 wherein connecting selected array elements to the output of the array multiplier comprises generating a control signal and selectively connecting an output of said selected array element to respective outputs of the array multiplier responsive to said control signal.

11. An array multiplier comprising:

an array including a plurality of array elements arranged in rows and columns;

a final carry propagate adder operatively connected to said array; and

control logic for inputting two operands to said array such that at least one operand is displaced towards a most significant row or column of said array to reduce the number of array elements used to compute the product of the operands.

12. The array multiplier of claim 11 wherein said control logic inputs the operands to the array multiplier such that the most significant bit of each displaced operand is aligned with a most significant row or column of the array.

13. The array multiplier of claim 11 wherein said control logic inputs the operands to the array multiplier such that the least significant bit of each displaced operand is aligned with a predetermined column of the array.

14. The array multiplier of claim 11 wherein said control logic pads each displaced operand with one or more zeros in the least significant bit positions to prevent switching of unused array elements.

15. The array multiplier of claim 11 wherein said control logic turns off power to unused array elements.

16. The array multiplier of claim 11 further wherein said control logic fetches the product of the operands from the array multiplier at a time dependent on the bit width of said operands.

17. The array multiplier of claim 11 wherein said control logic couples selected array elements to the final carry propagate adder to bypass unused array elements between the selected array elements and the final carry propagate adder.

18. The array multiplier of claim 17 wherein said control logic couples selected array elements to the final carry propagate adder by generating a control signal for the selected array elements, and wherein the selected array elements output a sum to said final carry propagate adder responsive to said control signal.

19. The array multiplier of claim 11 wherein said control logic couples selected array elements to the respective outputs of the array multiplier to bypass the carry propagate adder.

20. The array multiplier of claim 19 wherein said control logic couples selected array elements to the respective outputs of the array multiplier by generating a control signal for the selected array elements, and wherein the selected array elements output a sum directly to the respective outputs of the array multiplier.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Sep 3, 2026
From: NOVAQUEST CO-INVESTMENT FUND IX, L.P.
To: NEVAKAR INJECTABLES INC.
Reel/Frame 075902/0289 →
RELEASE OF SECURITY INTEREST Recorded Sep 3, 2026
From: H.I.G. BIO - NEVAKAR, L.P.
To: NEVAKAR INJECTABLES INC.
Reel/Frame 075902/0359 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2005
From: ISLAM, FARHAD FUAD
To: QUALCOMM INCORPORATED
Reel/Frame 016997/0926 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2005
From: ISLAM, FARHAD FUAD
To: QUALCOMM INCORPORATED A DELWARE CORPORATION
Reel/Frame 016828/0714 →
Continuity (1)
Related Publication 20060212505A1 · Sep 21, 2006