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.
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.)