Internals of Dynamic-Filter

Internal Structure

The following figure illustrates the internal of the dynamic filter. On the left a group of range-checker compares each column data with upper and lower bounds specified by two constants, and two operators while on the right each pair of columns is assigned to a comparator. The final condition is yield by looking into a true-table using address consists of bits from these two parts.

Dynamic Filter Structure

Limitations

Currently, up to four condition columns of integral types are supported. Wrappers for less input columns are provided, the configuration structure remains the same as the four-input version.

Caution

Filter operator has signed or unsigned version, check enum FilterOp in enums.h for details.

Generating Config Bits

Currently, there is no expression-string to config bits compiler yet. For generating the raw config bits, see the demo project in L1/demos/q6_mod/host/filter_test.cpp.

The layout of the configuration bits is illustrated in the figure below. As the figures shows, the intermediates are always aligned to 32bit boundaries, and comes in little-endian. (In the figure, the intermediates are 48bit wide, and thus occupies one and a half row.)

Dynamic Filter Configuration Bits Layout