IP Library Granted Patent US 9,043,378
Granted Patent B2
US 9,043,378 · App. 13/632,616 · Granted May 26, 2015

Multiply and accumulate feedback

Inventors: Robert Bahary (Alrington Heights, IL); Eric J. Jackowski (Chicago, IL); Leo G. Dehner (Austin, TX); Jayakrishnan C. Mundarath (Austin, TX)
Assignee: Freescale Semiconductor, Inc.
G06F7/5443G06F7/544
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 9,043,378
App. No.
13/632,616
Granted
May 26, 2015
Kind
B2
Abstract

A method and apparatus may be used to evaluate a polynomial by initializing a multiply and accumulate feedback apparatus ( 260 ) comprising a multiplier stage ( 264 ) having an output coupled to an input of an accumulator stage ( 267 ) having an accumulator feedback output ( 269 ) selectively coupled to an input of the multiplier stage over a plurality of clock cycles; iteratively calculating a final working loop variable z over an additional plurality of clock cycles; multiplying the final working loop variable z and a complex input vector x to compute a final multiplier value; and adding a least significant complex polynomial coefficient to the final multiplier value using the multiplier stage of the multiply and accumulate feedback apparatus to yield a result of the polynomial evaluation.

Claims (49)

1. A method for evaluating a polynomial in an electronic system, comprising:

initializing a multiply and accumulate feedback apparatus comprising a multiplier stage having an output coupled to an input of an accumulator stage, the accumulator stage having an accumulator feedback output selectively coupled to an input of the multiplier stage over a plurality of clock cycles to generate a plurality of initial working loop variables (z 0 0, z 0 1, . . . z 0 N) at the accumulator feedback output;

calculating a final working loop variable z from the plurality of initial working loop variables using a plurality of iterative passes of the multiply and accumulate feedback apparatus to generate a plurality of final working loop values (z0, z1, . . . zN) over an additional plurality of clock cycles;

multiplying the final working loop variable z and a complex input vector x to compute a final multiplier value using the multiplier stage of the multiply and accumulate feedback apparatus; and

adding a least significant complex polynomial coefficient to the final multiplier value using the multiplier stage of the multiply and accumulate feedback apparatus to yield a result of the polynomial evaluation.

2. The method of claim 1 , where the method for evaluating the polynomial is used to perform digital pre-distortion in the electronic system.

3. The method of claim 1 , where initializing the multiply and accumulate feedback apparatus comprises providing the multiply and accumulate feedback apparatus with first and second complex polynomial coefficients and a plurality of input values (|x 0 |, |x 1 |, . . . |x N |) from a real input vector |x| which are sequentially input over a plurality of clock cycles, thereby generating the plurality of initial working loop variables (z 0 0, z 0 1, . . . z 0 N) at the accumulator feedback output.

4. The method of claim 3 , where initializing the multiply and accumulate feedback apparatus comprises multiplexing the first complex polynomial coefficient and the accumulator feedback output at a multiplex selection circuit by applying a first control signal to output the first complex polynomial coefficient during the plurality of clock cycles.

5. The method of claim 3 , where calculating the final working loop variable z comprises providing the multiply and accumulate feedback apparatus, at each iterative pass, with a replacement complex polynomial coefficient, the feedback output, and the plurality of input values (|x 0 |, |x 1 |, . . . |x N |) which are sequentially input over an additional plurality of clock cycles, thereby generating a plurality of final working loop values (z0, z1, . . . zN) to form the final working loop variable z.

6. The method of claim 1 , where initializing the multiply and accumulate feedback apparatus comprises:

storing a first complex polynomial coefficient a p at a first storage device coupled to a first input of the multiplier stage for the plurality of clock cycles;

sequentially storing the plurality of input values (|x 0 |, |x 1 |, . . . |x N |) at a second storage device coupled to a second input of the multiplier stage during the plurality of clock cycles;

storing at each clock cycle the output of the multiplier stage at a third storage device coupled to a first input of the accumulator stage;

storing at each clock cycle of the plurality of clock cycles a second complex polynomial coefficient a p−1 at a fourth storage device coupled to a second input of the accumulator stage; and

storing at each clock cycle the accumulator feedback output at a fifth storage device coupled to an input of the first storage device.

7. The method of claim 6 , where calculating the final working loop variable z comprises:

storing the accumulator feedback output from the fifth storage device at the first storage device during the additional plurality of clock cycles;

sequentially storing the plurality of input values (|x 0 |, |x 1 |, . . . |x N |) at the second storage device during the additional plurality of clock cycles;

storing at each clock cycle the output of the multiplier stage at the third storage device;

storing at each clock cycle of the additional plurality of clock cycles a complex polynomial coefficient a n at the fourth storage device; and

storing at each clock cycle the accumulator feedback output at the fifth storage device.

8. The method of claim 7 , where multiplying the final working loop variable z and the complex input vector x comprises:

storing the final working loop variable z in the first storage device;

storing the complex input vector x at the second storage device; and

storing the output of the multiplier stage as the final multiplier value in the third storage device.

9. The method of claim 8 , where adding the least significant complex polynomial coefficient to the final multiplier value comprises:

storing the final multiplier value at the third storage device;

storing the least significant complex polynomial coefficient in the fourth storage device; and

storing the output of the accumulator stage as the result of the polynomial evaluation at the fifth storage device.

10. A device for evaluating a polynomial expression of order P, comprising:

a multiplier hardware stage coupled to receive first and second multiplier operands from first and second clocked latch circuits, where the multiplier hardware stage generates a product of the first and second multiplier operands at a multiplier hardware stage output over a plurality of clock cycles;

an accumulator stage coupled to receive first and second addition operands from third and fourth clocked latch circuits, where the accumulator stage generates a sum of the first and second addition operands at an accumulator stage output over the plurality of clock cycles, where the accumulator stage is coupled to receive the second addition operand from the multiplier hardware stage output, and where the accumulator stage output is selectively coupled in feedback to provide the second multiplier operand to the multiplier hardware stage.

11. The device of claim 10 , further comprising a multiplex selection circuit coupled to receive a first complex polynomial coefficient a p at a first input and to receive the accumulator stage output at a second input, where the multiplex selection circuit is controlled to output the first complex polynomial coefficient a p only during a plurality of initiation clock cycles.

12. The device of claim 10 , where the first clocked latch circuit comprises a flip-flop storage device for sequentially storing a plurality of input values (|x 0 |, |x 1 |, . . . |x N |) from a real input vector |x| which are sequentially input as the first multiplier operand over a plurality of clock cycles.

13. The device of claim 10 , where the second clocked latch circuit comprises a flip-flop storage device for storing a first complex polynomial coefficient a p during a plurality of initiation clock cycles, and for storing a plurality of final working loop values (z0, z1, . . . zN) generated and fed back by the accumulator stage over an additional plurality of clock cycles.

14. The device of claim 10 , where the third clocked latch circuit comprises a flip-flop storage device for sequentially storing a plurality of complex polynomial coefficients (a p−1 , a p−2 , . . . a 0 ), each of which is sequentially input as the first addition operand over N clock cycles.

15. The device of claim 10 , where the fourth clocked latch circuit comprises a flip-flop storage device for sequentially storing the product of the first and second multiplier operands generated at the multiplier hardware stage output over a plurality of clock cycles.

16. The device of claim 10 , further comprising a fifth clocked latch circuit comprising a flip-flop storage device for sequentially storing the sum of the first and second addition operands generated at the accumulator stage output over a plurality of clock cycles.

17. The device of claim 10 , where the clocked latch circuits are clocked so that the multiplier hardware stage and accumulator stage carry out Horner's rule on the polynomial expression of order P by performing complex multiply and addition operations in each clock cycle to process different values from a complex input vector x=(x 0 , x 1 , . . . x N ).

18. A multiply and accumulate feedback circuit for evaluating a polynomial of order P different values from a complex input vector x=(x 0 , x 1 , . . . x N ), comprising:

a multiplier circuit for computing a product of first and second multiplier operands input to the multiplier circuit, where the product is output at a multiplier stage output at each clock cycle;

an accumulator circuit coupled to the multiplier stage output for computing a sum of first and second addition operands input to the accumulator circuit, where the sum is output at an accumulator stage output at each clock cycle;

a feedback storage device coupled to the accumulator stage output for storing the sum for feedback as in input to the multiplier circuit;

an input multiplexer circuit coupled to the feedback storage device for multiplexing a first complex polynomial coefficient a p and the accumulator stage output by applying a first control signal to output the first complex polynomial coefficient a p during a plurality of initiation clock cycles and to output the accumulator stage output during a plurality of additional clock cycles;

first and second clocked storage devices for providing the first and second multiplier operands to the multiplier circuit; and

third and fourth clocked storage devices for providing the first and second addition operands to the accumulator circuit,

where the clocked storage devices are clocked so that the multiplier circuit and accumulator circuit carry out Horner's rule on the polynomial of order P by performing complex multiply and addition operations in each clock cycle to process different values from the complex input vector x=(x 0 , x 1 , . . . x N ).

19. The multiply and accumulate feedback circuit of claim 18 , where the first clocked storage device sequentially provides a plurality of input values (|x 0 |, |x 1 |, . . . |x N |) from the real input vector |x| as the first multiplier operand over the initiation clock cycles and the plurality of additional clock cycles, and where the second clocked storage device provides the output from the input multiplexer circuit over the initiation clock cycles and the plurality of additional clock cycles.

20. The multiply and accumulate feedback circuit of claim 18 , where the third clocked storage device provides a plurality of complex polynomial coefficients (a p−1 , a p−2 , . . . a 0 ), each of which is sequentially input as the first addition operand over N clock cycles, and where the fourth clocked storage device provides the multiplier stage output over the initiation clock cycles and the plurality of additional clock cycles.

Assignments (31)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040632 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Sep 21, 2017
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 044209/0047 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
CHANGE OF NAME Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 040632/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
PATENT RELEASE Recorded Jan 14, 2016
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037494/0312 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0685 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0671 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
SECURITY AGREEMENT Recorded Jun 18, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030633/0424 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Apr 22, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030258/0523 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Apr 22, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 030258/0540 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Apr 22, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030258/0558 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2012
From: BAHARY, ROBERT; JACKOWSKI, ERIC J.; DEHNER, LEO G.; MUNDARATH, JAYAKRISHNAN C.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 029179/0132 →
Continuity (1)
Related Publication 20140095572A1 · Apr 3, 2014