Software digital front end (SoftDFE) signal processing
First Claim
1. A method for performing a vector convolution function on a signal in software, comprising:
- receiving, by a processor, the signal, wherein the signal comprises a plurality of data samples, andperforming, by the processor, the vector convolution function on the signal and a plurality of coefficients by executing, in response to a single software instruction, a single instruction of a hardware instruction set of the processor, wherein the single instruction comprises a vector convolution instruction,wherein performing the vector convolution function comprises producing, for each of a plurality of time shifts, a finite impulse response output value based on the plurality of data samples and the plurality of coefficients,wherein producing, for each of the plurality of time shifts, the finite impulse response output value comprises to produce, for each of the plurality of time shifts, only a portion of the finite impulse response output value based on the plurality of data samples and only a portion of each coefficient of the plurality of coefficients in one clock cycle of the processor.
5 Assignments
0 Petitions
Accused Products
Abstract
Software Digital Front End (SoftDFE) signal processing techniques are provided. One or more digital front end (DFE) functions are performed on a signal in software by executing one or more specialized instructions on a processor to perform the one or more digital front end (DFE) functions on the signal, wherein the processor has an instruction set comprised of one or more of linear and non-linear instructions. A block of samples comprised of a plurality of data samples is optionally formed and the digital front end (DFE) functions are performed on the block of samples. The specialized instructions can include a vector convolution function, a complex exponential function, an xk function, a vector compare instruction, a vector max( ) instruction, a vector multiplication instruction, a vector addition instruction, a vector sqrt( ) instruction, a vector 1/x instruction, and a user-defined non-linear instruction.
-
Citations
34 Claims
-
1. A method for performing a vector convolution function on a signal in software, comprising:
-
receiving, by a processor, the signal, wherein the signal comprises a plurality of data samples, and performing, by the processor, the vector convolution function on the signal and a plurality of coefficients by executing, in response to a single software instruction, a single instruction of a hardware instruction set of the processor, wherein the single instruction comprises a vector convolution instruction, wherein performing the vector convolution function comprises producing, for each of a plurality of time shifts, a finite impulse response output value based on the plurality of data samples and the plurality of coefficients, wherein producing, for each of the plurality of time shifts, the finite impulse response output value comprises to produce, for each of the plurality of time shifts, only a portion of the finite impulse response output value based on the plurality of data samples and only a portion of each coefficient of the plurality of coefficients in one clock cycle of the processor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A processor for performing a vector convolution function on a signal in software, comprising:
-
a memory; and at least one hardware device, coupled to the memory, operative to; receive, by the at least one hardware device, the signal, wherein the signal comprises a plurality of data samples, and perform, by the at least one hardware device, the vector convolution function on the signal and a plurality of coefficients by executing, in response to a single software instruction, a single instruction of a hardware instruction set of the processor, wherein the single instruction comprises a vector convolution instruction, wherein to perform the vector convolution function comprises to produce, for each of a plurality of time shifts, a finite impulse response output value based on the plurality of data samples and the plurality of coefficients, wherein to produce, for each of the plurality of time shifts, the finite impulse response output value comprises to produce, for each of the plurality of time shifts, only a portion of the finite impulse response output value based on the plurality of data samples and only a portion of each coefficient of the plurality of coefficients in one clock cycle of the at least one hardware device. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. One or more non-transitory computer readable media comprising a plurality of instructions stored thereon that, when executed by at least one hardware device, causes the at least one hardware device to:
-
receive a signal, wherein the signal comprises a plurality of data samples; perform a vector convolution function on the signal and a plurality of coefficients by executing, in response to a single software instruction, a single instruction of a hardware instruction set of the at least one hardware device, wherein the single instruction comprises a vector convolution instruction, wherein to perform the vector convolution function comprises to produce, for each of a plurality of time shifts, a finite impulse response output value based on the plurality of data samples and the plurality of coefficients, wherein to produce, for each of the plurality of time shifts, the finite impulse response output value comprises to produce, for each of the plurality of time shifts, only a portion of the finite impulse response output value based on the plurality of data samples and only a portion of each coefficient of the plurality of coefficients in one clock cycle of the at least one hardware device. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34)
-
Specification