Patent ID: 7415542

Claim:
A micro-programmable filter engine comprising: a first plurality of programmable filter elements interconnected in a chain configuration, each filter element having a first data input and a first data output, the first data input coupled to the first data output of a previous filter element in the chain, the first data output coupled to the first data input of a next filter element in the chain, each filter element also having a second data input and a second data output, at least one of said first plurality of programmable filter elements having a first microcode control program for internal control of the programmable filter element; first programmable interconnection logic coupled to the second data inputs and outputs of the first plurality of programmable filter elements for selectively combining, scaling, and accumulating output values received from the first plurality of programmable filter elements and selectively providing accumulated values as inputs to the first plurality of programmable filter elements; and a first filter controller coupled to the first plurality of programmable filter elements and the first programmable interconnection logic, the first filter controller having a second microcode control program for external control of the first plurality of programmable filter elements and the first programmable interconnection logic, whereby the micro-programmable filter engine supports implementation of multiple filters formed from one or more filter elements.