IP Library Granted Patent US 9,128,790
Granted Patent B2
US 9,128,790 · App. 12/362,879 · Granted Sep 8, 2015

Digital signal processor having instruction set with an exponential function using reduced look-up table

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,128,790
App. No.
12/362,879
Granted
Sep 8, 2015
Kind
B2
Abstract

A digital signal processor is provided having an instruction set with an exponential function that uses a reduced look-up table. The disclosed digital signal processor evaluates an exponential function for an input value, x, by decomposing the input value, x, to an integer part, N, a first fractional part, q 1 , larger than a specified value, x 0 , and a second fractional part, q 2 , smaller than the specified value, x 0 ; computing 2 q 2 using a polynomial approximation, such as a cubic approximation; obtaining 2 q 1 from a look-up table; and evaluating the exponential function for the input value, x, by multiplying 2 q 2 , 2 q 1 and 2 N together. Look-up table entries have a fewer number of bits than a number of bits in the input value, x.

Claims (54)

1. A method performed by a vector-based digital signal processor for evaluating a non-linear exponential function for an input vector, x, said method comprising:

obtaining one or more software instructions;

in response to a predefined software instruction keyword for said non-linear exponential function, invoking at least one hardware functional unit that implements said non-linear exponential function to perform the following steps for each component of said input vector, x, to produce a corresponding component of an output vector in hardware, wherein said input vector, x, comprises a plurality of numbers and wherein said vector-based digital signal processor processes said plurality of numbers substantially simultaneously:

decomposing each component of said input vector, x, to an integer part, N, a first fractional part, q 1 , larger than a specified value, x 0 , and a second fractional part, q 2 , smaller than said specified value, x 0 ;

computing 2 q 2 using a polynomial approximation;

obtaining 2 q 1 from a look-up table in a random access memory (RAM) of said vector-based digital signal processor; and

evaluating said exponential function for said input vector, x, by multiplying 2 q 2 , and 2 q 1 together and performing a shift by N, wherein said predefined software instruction keyword for said non-linear exponential function is part of an instruction set of said vector-based digital signal processor.

2. The method of claim 1 , wherein said multiplying step comprises the step of first multiplying said values 2 q 2 and 2 q 1 together and said multiplication by 2 N is performed by shifting a result of said first multiplication by N bits.

3. The method of claim 1 , wherein said polynomial approximation is a cubic approximation.

4. The method of claim 1 , wherein 2 N is computed using a barrel shifter.

5. The method of claim 1 , wherein said vector-based digital signal processor executes software instructions from program code.

6. The method of claim 1 , wherein entries in said look-up table have a fewer number of bits than a number of bits in said input vector, x.

7. The method of claim 1 , wherein said polynomial approximation is a Taylor Series.

8. A vector-based digital signal processor that evaluates a non-linear exponential function for an input vector, x, comprising:

a memory storing at least one look-up table; and

at least one processor, coupled to the memory, operative to:

obtain one or more software instructions;

in response to a predefined software instruction keyword for said non-linear exponential function, invoke at least one hardware functional unit that implements said non-linear exponential function to perform the following steps for each component of said input vector, x, to produce a corresponding component of an output vector in hardware, wherein said input vector, x, comprises a plurality of numbers and wherein said vector-based digital signal processor processes said plurality of numbers substantially simultaneously:

decompose each component of said input vector, x, to an integer part, N, a first fractional part, q 1 , larger than a specified value, x 0 , and a second fractional part, q 2 , smaller than said specified value, x 0 ;

compute 2 q 2 using a polynomial approximation;

obtain 2 q 1 from at least one of said look-up tables in a random access memory (RAM) of said vector-based digital signal processor; and

evaluate said exponential function for said input vector, x, by multiplying 2 q 2 , and 2 q 1 together and performing a shift by N, wherein said predefined software instruction keyword for said non-linear exponential function is part of an instruction set of said vector-based digital signal processor.

9. The vector-based digital signal processor of claim 8 , wherein said multiplying step comprises the step of first multiplying said values 2 q 2 and 2 q 1 together and said multiplication by 2 N is performed by shifting a result of said first multiplication by N bits.

10. The vector-based digital signal processor of claim 8 , wherein said polynomial approximation is a cubic approximation.

11. The vector-based digital signal processor of claim 8 , wherein 2 N is computed using a barrel shifter.

12. The vector-based digital signal processor of claim 8 , wherein said digital signal processor executes software instructions from program code.

13. The vector-based digital signal processor of claim 8 , wherein entries in said first and second look-up tables have a fewer number of bits than a number of bits in said input vector, x.

14. The vector-based digital signal processor of claim 8 , wherein said polynomial approximation is a Taylor Series.

15. An integrated circuit, comprising:

a vector-based digital signal processor that evaluates a non-linear exponential function for an input vector, x, comprising:

a memory storing at least one look-up table; and

at least one processor, coupled to the memory, operative to:

obtain one or more software instructions;

in response to a predefined software instruction keyword for said non-linear exponential function, invoke at least one hardware functional unit that implements said non-linear exponential function to perform the following steps for each component of said input vector, x, to produce a corresponding component of an output vector in hardware, wherein said input vector, x, comprises a plurality of numbers and wherein said vector-based digital signal processor processes said plurality of numbers substantially simultaneously:

decompose each component of said input vector, x, to an integer part, N, a first fractional part, q 1 , larger than a specified value, x 0 , and a second fractional part, q 2 , smaller than said specified value, x 0 ;

compute 2 q 2 using a polynomial approximation;

obtain 2 q 1 from at least one of said look-up tables in a random access memory (RAM) of said vector-based digital signal processor; and

evaluate said exponential function for said input vector, x, by multiplying 2 q 2 , and 2 q 1 together and performing a shift by N, wherein said predefined software instruction keyword for said non-linear exponential function is part of an instruction set of said vector-based digital signal processor.

16. The integrated circuit of claim 15 , wherein said multiplying step comprises the step of first multiplying said values 2 q 2 and 2 q 1 together and said multiplication by 2 N is performed by shifting a result of said first multiplication by N bits.

17. The integrated circuit of claim 15 , wherein said polynomial approximation is a cubic approximation.

18. The integrated circuit of claim 15 , wherein 2 N is computed using a barrel shifter.

19. The integrated circuit of claim 15 , wherein said vector-based digital signal processor executes software instructions from program code.

20. The integrated circuit of claim 15 , wherein entries in said first and second look-up tables have a fewer number of bits than a number of bits in said input vector, x.

21. The integrated circuit of claim 15 , wherein said polynomial approximation is a Taylor Series.

22. A method performed by a vector-based digital signal processor for evaluating a non-linear exponential function for an input vector, x, having an initial basis, Z, said method comprising:

obtaining one or more software instructions;

in response to a predefined software instruction keyword for said non-linear exponential function, invoking at least one hardware functional unit that implements said non-linear exponential function to perform the following steps for each component of said input vector, x, to produce a corresponding component of an output vector in hardware, wherein said input vector, x, comprises a plurality of numbers and wherein said vector-based digital signal processor processes said plurality of numbers substantially simultaneously:

multiplying each component of said input vector, x, having said initial basis, Z, by logz(Y) to generate a modified input vector, x 1 , where log Z (Y), is obtained from a first look-up table in a random access memory (RAM) of said vector-based digital signal processor;

decomposing each component of said modified input vector, x 1 , to an integer part, N, a first fractional part, q 1 , larger than a specified value, x 0 , and a second fractional part, q 2 , smaller than said specified value, x 0 ;

computing Z q 2 using a polynomial approximation;

obtaining Z q 1 from a second look-up table in said random access memory (RAM) of said vector-based digital signal processor; and

evaluating said exponential function for said input vector, x, by multiplying Z q 2 , and Z q 1 together and performing a shift by N, wherein said predefined software instruction keyword for said non-linear exponential function is part of an instruction set of said vector-based digital signal processor.

23. The method of claim 22 , wherein said polynomial approximation is a cubic approximation.

24. The method of claim 22 , wherein said polynomial approximation is a Taylor Series.

Assignments (5)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 32856/0031 Recorded May 29, 2015
From: DEUTSCHE BANK AG NEW YORK BRANCH
To: LSI CORPORATION
Reel/Frame 035797/0943 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2015
From: LSI CORPORATION
To: INTEL CORPORATION
Reel/Frame 035090/0477 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2009
From: AZADET, KAMERAN; CHEN, JIAN-GUO; HIJAZI, SAMER; WILLIAMS, JOSEPH
To: LSI CORPORATION
Reel/Frame 022810/0844 →