Configurable Architectures
6.2 Configurable data-width architecture
6.2.1 Basic rule unit
Figure 6.5 illustrates the block diagram of a basic rule-unit, and the table in Fig-ure 6.6 briefly lists the symbol descriptions for the rule unit. The configurable set-tings of a basic rule-unit include ST SEL, NX SEL, F, L, CUR ST, C1, C2, NX ST, OP1, and OP2. Notably, some symbol names of the configurable settings are same as the signal names for simplicity.
The multiplexer MUX1 selects the corresponding state to the input CUR ST
6.2. Configurable data-width architecture Symbol Description
SEQ NO Sequence no.
ST SEL Current state selection NX SEL Next state selection
F First unit flag L Final unit flag M Matching result EN Output enable
CI Carry input CO Carry output
EI Enable input EO Enable output
Figure 6.6: Symbol descriptions of the configurable data-width rule-unit
according the setting ST SEL. The demultiplexer DEMUX1 sends the resulting next state NX ST to the corresponding output according to the setting NX SEL.
The settings ST SEL and NX SEL are determined by which stage that the unit belongs to. In this example, MUX is a 12-to-1 multiplexer and DEMUX is a 1-to-12 demultiplexer, the basic rule-unit can be configured to stage 1 to 12. However, since the twelfth stage is the final stage, the twelfth input of MUX1 is omitted.
The multiplexer MUX2 selects corresponding characters to the inputs XC1 and XC2 according the setting SEQ NO. The demultiplexer DEMUX2 sends OP1 and OP2 to corresponding matching outputs according to the setting SEQ NO.
Multiple rule units can be cascaded as a unit-group through control signals CI, CO, EI, and EO. The signals CI and CO are carry signals; and EI and EO are enable signals. The basic rule-unit in this example can inspect two characters in parallel.
Consequently, a unit-group consisting of n rule units can inspect 2n characters in parallel. In a unit group, the matching results of rule units are aggregated at the final unit through CI and CO. In which, the signal L is true for the final unit of a group. The final matching result obtained in the final unit are feed back to other units through signals EI and EO.
Signals F and L determine the carry and enable signals should be propagated to another unit or not. Signal F is a first-unit flag. When a unit is the first unit of a unit-group, the signal F of which should be true. Signal L is a final-unit flag. When a unit is the final unit of a unit-group, the signal L of which should be true.
The table in Figure 6.7 summarizes the decisions for determining the control sig-nals EN, CO, and EO. In the first three cases, a group consists of multiple cascaded
Chapter 6. Configurable Architectures Flag Control signal
Description
F L CO EO EN
0 0 CI∧M EI EI middle unit
0 1 0 CI∧M CI∧M final unit
1 0 M 0 EI first unit
1 1 0 0 M standalone
Figure 6.7: Decisions of control signals for the configurable data-width rule-unit
units; while in the last case, a group has only one unit.
The first case is that a unit is in the middle of multiple cascaded units, i.e. both F and L are configured as false. A middle unit must aggregates the value received from CI with its own matching result M and then forwards the aggregating result to the next unit, so that CO is obtained by CI∧M. Fur a middle unit, the enable signal EN is equal to the value received from EI, and the value of EI is passed to the previous unit through EO.
The second case is happened in the final unit of a group. Since there is no other unit after the final unit the signal CO should be false. The final unit is responsible for aggregating the matching result of a group that must consider the value of CI and its own matching result M, so that EN is obtained by CI∧M. The final unit also must feed the obtained EN backward to the previous unit through output EO.
The third case is considered for the first unit of a group. There is no other unit before the first unit and thus the signal EO is false. In addition, the output CO of the first unit is simply equal to its own matching result M. The enable signal EN of the first unit is equal to the value of EI directly. A unit as described in the last case is a standalone unit, i.e. a single unit processes a transition alone. The signals CO and EO are not used in a standalone unit and thus both CO and EO are always false. The signal EN of a standalone unit is simply equal to its own matching result M.
Since each unit-group needs to generate only one next-state, only one rule unit is required to generate the next state when this unit-group is matched. While every rule unit has to produce the matching outputs corresponding to the characters inspected by that unit when a unit-group is matched.
Considering that each basic rule-unit can process a 2-character transition and the requirement is to process 6-character transitions and wants to have total 12 stages. In this scenario, each unit-group should consist of three basic units. The re-sulting architecture has six stage-chains and each stage-chain consists of two stages.
6.2. Configurable data-width architecture
According to this configuration, the longest pattern that can be processed is varied from 7 to 12 characters corresponding to the first to sixth stage-chain respectively.
As a result, the configurable data-width allows a user to choose the required config-uration depend on the application. In addition, the characters inspected in parallel are more, the throughput gains more.
According to the proposed configurable approach, when the processing keyword set is changed, only the transitions need to be regenerated for the new keyword set, and then the rule units are reconfigured by using the new generating transi-tions. Because of the flexibility, the proposed configurable matching engine can be manufactured as a standalone device, for example, manufactured by using ASICs.
However, there is a trade off between the flexibility and performance. While the proposed configurable matching engine is flexible for a real application, the circuit becomes complicated and the performance is degraded. Nevertheless, this degrada-tion in performance can be resolved by advanced semiconductor technologies.
SEQ_NO
Figure 6.8: Example of three-unit group