Hardware Implementation for Scalable Lookahead Regular Expression Detection
Hardware Implementation for Scalable Lookahead Regular Expression Detection Author : Masanori Bando, N. Sertac Artan and H. Jonathan Chao Publisher : Parallel & Distributed Processing, Workshops and Phd Forum (IPDPSW), 2010 Presenter : Jo-Ning Yu Date : 2011/05/11
2 Outline Example La. FA Architecture Correlation Block Detection Block Evaluations
3 Example
4 La. FA Architecture simple strings and variable Detection Block : detect the strings in the input string. Correlation block : correlate detected Events(*) to determine whether the input matches any of the Reg. Exes in its Reg. Ex set. * The match signal is called an Event in this paper.
5 La. FA Architecture Correlation Block n=3
6 Timing History Reg. Ex 1 : abc[a-z]op S 1 V 1 S 2 Reg. Ex 4 : abc[^x]{3}xyz S 1 V 2 S 3
7 Node Infomation
8 Correlation Block
9 Detection Modules Buffered Lookup Modules The modules use previously detected character histories to verify a queried variable string. Time Lookup Module (TLM) Contents Lookup Module (CLM) Frequently appearing Repetition detection Module (FRM) Short simple string Detection Module (SDM) In-line Lookup Module The module processes incoming characters in real time. Repetition Detection Module(RDM)
Time Lookup Module (TLM) TLM detects character classes and negated character classes with no repetition, ex : [a-z], or [ˆ0 -9]. TLM incorporates an input buffer, which stores characters recently received from a packet in chronological order. Ex: 10
11 TLM Architecture
Contents Lookup Module (CLM) CLM detects negated single characters with repetitions, ex : [ˆa]{3}, [ˆa]{3, 5}, or [ˆa]{3, }. CLM stores timestamps of every ASCII character. Thus, 256 memory locations are reserved, each for one ASCII character. Ex: 12
13 CLM Architecture C=8
14 Repetition Detection Module (RDM) RDM detects character classes and negated character classes with repetitions, ex : [a-z]{3}, [a-z]{3, 5}, and [a-z]{3, } ( base{min, max} ). The RDM is the only in-line detection module. Once number of repetitions reaches to the minimum repetition value, a next simple string is activated. The next simple string inactivate when number of repetitions reaches to the maximum repetition value. Ex:
15 RDM Architecture R=2
16 Frequently Appearing Repetition Detection Module (FRM) The FRM can detect any type of repetition using a buffered lookup approach. FRM can be shared among multiple Reg. Exes that helps to improve resource efficiency. When the sequence breaks, the count and timestamp are stored in a history memory inside of the FRM.
17 FRM Architecture F=4
18 Short Simple String Detection Module (SDM) We classify strings with less than 5 characters as a short simple string. It naturally generate more Events. The SDM architecture is very similar to the TLM except that in the SDM, there are multiple memory blocks to support multiple character lookups at a clock cycle.
19 SDM Architecture
20 Evaluations * SSD : Simple String Detector[11]
21 Evaluations Memory Requirements for the System
22 Evaluations The design is running at a clock frequency of 250 MHz, which is equivalent to 2 Gbps detection throughput per engine. Xilinx Virtex-6 FPGA contains 32 Mbits of block RAM. Since 17 La. FA engine can fit in the FPGA, we expect the total throughput can reach to 34 Gbps.
- Slides: 22