Single instruction multiple data implementation of finite impulse response filters including adjustment of result
First Claim
1. A method for achieving an averaged result on packed binary values for use in finite impulse response filter computations, the method using an averaging instruction that computes an average on first and second sets of packed values to produce a resulting set of packed averages, the method comprising successively applying the averaging instruction to packed values to produce a result, D, that is an approximate desired result;
- adjusting D to be in a predetermined relation to a desired exact result; and
using D in a finite impulse response operation.
1 Assignment
0 Petitions
Accused Products
Abstract
A system for adjusting the result of a derivation of finite impulse response (FIR) values. A single-instruction multiple data (SIMD) type of operation is used. In a preferred embodiment, the operation is achieved by an instruction called PAVG. The results of PAVG are a rounded-up average of two sets of packed values. Adjustments are made on the rounded-up average to obtain an exact desired result for various filter calculations. The invention also provides approaches to achieving approximate desired results that differ from the exact desired results yet remain within acceptable error ranges. The approximate approaches require less computation and can be advantageous in different applications, or embodiments, of the invention. An adjusted approximate approach improves the accuracy of the approximate approach. Various techniques for minimizing processor resources (e.g., processing cycles, memory) are presented.
21 Citations
32 Claims
-
1. A method for achieving an averaged result on packed binary values for use in finite impulse response filter computations, the method using an averaging instruction that computes an average on first and second sets of packed values to produce a resulting set of packed averages, the method comprising
successively applying the averaging instruction to packed values to produce a result, D, that is an approximate desired result; -
adjusting D to be in a predetermined relation to a desired exact result; and
using D in a finite impulse response operation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A method for using a single-instruction multiple-data (SIMD) instruction to perform a function, wherein the SIMD instruction uses M arguments, wherein the function uses N variables, wherein M and N are not the same, the method comprising
using the SIMD instruction on a plurality of packed values to obtain an approximate packed value result; -
adjusting the approximate packed value result to obtain an adjusted packed value result, wherein the adjusted packed value result is in a predetermined relation to a desired exact result; and
using the adjusted packed value result in an FIR calculation. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A computer-readable medium including instructions for using a single-instruction multiple-data (SIMD) instruction to perform a function, wherein the SIMD instruction uses M arguments, wherein the function uses N variables, wherein M and N are not the same, the computer-readable medium comprising
one or more instructions for using the SIMD instruction on a plurality of packed values to obtain an approximate packed value result; -
one or more instructions for adjusting the approximate packed value result to obtain an adjusted packed value result, wherein the adjusted packed value result is in a predetermined relation to a desired exact result; and
one or more instructions for using the adjusted packed value result in an FIR calculation.
-
-
32. An apparatus for using a single-instruction multiple-data (SIMD) instruction to perform a function, wherein the SIMD instruction uses M arguments, wherein the function uses N variables, wherein M and N are not the same, the apparatus comprising
a processor coupled to a storage device; -
one or more instructions stored in the storage device for using the SIMD instruction on a plurality of packed values to obtain an approximate packed value result;
one or more instructions stored in the storage device for adjusting the approximate packed value result to obtain an adjusted packed value result, wherein the adjusted packed value result is in a predetermined relation to a desired exact result; and
one or more instructions stored in the storage device for using the adjusted packed value result in an FIR calculation.
-
Specification