A platform-based SoC design and implementation of scalable automaton matching for deep packet inspection

  • Authors:
  • Ying-Dar Lin;Kuo-Kun Tseng;Tsern-Huei Lee;Yi-Neng Lin;Chen-Chou Hung;Yuan-Cheng Lai

  • Affiliations:
  • Department of Computer and Information Science, National Chiao Tung University, Hsinchu, Taiwan;Department of Computer and Information Science, National Chiao Tung University, Hsinchu, Taiwan;Department of Communication Engineering, National Chiao Tung University, Hsinchu, Taiwan;Department of Computer and Information Science, National Chiao Tung University, Hsinchu, Taiwan;Department of Computer and Information Science, National Chiao Tung University, Hsinchu, Taiwan;Department of Information Management, National Taiwan University of Science and Technology, Taipei, Taiwan

  • Venue:
  • Journal of Systems Architecture: the EUROMICRO Journal
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

String matching plays a central role in packet inspection applications such as intrusion detection, anti-virus, anti-spam and Web filtering. Since they are computation and memory intensive, software matching algorithms are insufficient to meet the high-speed performance. Thus, offloading packet inspection to a dedicated hardware seems inevitable. This paper presents a scalable automaton matching (SAM) coprocessor that uses Aho-Corasick (AC) algorithm with two parallel acceleration techniques, root-indexing and pre-hashing. The root-indexing can match multiple bytes in one single matching, and the pre-hashing can be used to avoid bitmap AC matching which is a cycle-consuming operation. In the platform-based SoC implementation of the Xilinx ML310 FPGA, the proposed hardware architecture can achieve almost 10.7Gbps and support over 10,000 patterns for virus, which is the largest pattern set from among the existing works. On the average, the performance of SAM is 7.65 times faster than the original bitmap AC. Furthermore, SAM is feasible for either internal or external memory architecture. The internal memory architecture provides high performance, while the external memory architecture provides high scalability in term of the number of patterns.