Index Terms- Field Programmable Gate Array, Content Addressable memory, Intrusion Detection system.

Similar documents
Implementation and Design of High Speed FPGA-based Content Addressable Memory Anupkumar Jamadarakhani 1 Shailesh Kumar Ranchi 2 1, 2

DESIGN OF PARAMETER EXTRACTOR IN LOW POWER PRECOMPUTATION BASED CONTENT ADDRESSABLE MEMORY

Resource Efficient Multi Ported Sram Based Ternary Content Addressable Memory

Design of AHB Arbiter with Effective Arbitration Logic for DMA Controller in AMBA Bus

Implementation of SCN Based Content Addressable Memory

Controller IP for a Low Cost FPGA Based USB Device Core

A Hybrid Approach to CAM-Based Longest Prefix Matching for IP Route Lookup

DESIGN AND IMPLEMENTATION OF SDR SDRAM CONTROLLER IN VHDL. Shruti Hathwalia* 1, Meenakshi Yadav 2

HIGH-PERFORMANCE RECONFIGURABLE FIR FILTER USING PIPELINE TECHNIQUE

Resource-Efficient SRAM-based Ternary Content Addressable Memory

CHAPTER 6 FPGA IMPLEMENTATION OF ARBITERS ALGORITHM FOR NETWORK-ON-CHIP

Low Power using Match-Line Sensing in Content Addressable Memory S. Nachimuthu, S. Ramesh 1 Department of Electrical and Electronics Engineering,

Overview. Implementing Gigabit Routers with NetFPGA. Basic Architectural Components of an IP Router. Per-packet processing in an IP Router

Design and Implementation of Buffer Loan Algorithm for BiNoC Router

: : (91-44) (Office) (91-44) (Residence)

Design of Reconfigurable Router for NOC Applications Using Buffer Resizing Techniques

FPGA based Design of Low Power Reconfigurable Router for Network on Chip (NoC)

Task 8: Extending the DLX Pipeline to Decrease Execution Time

ISSN Vol.03, Issue.02, March-2015, Pages:

Area Efficient Z-TCAM for Network Applications

A Dynamically Reconfigurable FPGA-based Content Addressable Memory for IP Characterization

Novel Design of Dual Core RISC Architecture Implementation

Ternary Content Addressable Memory Types And Matchline Schemes

FPGA BASED RANDOM NUMBER GENERATION ACCESSED THROUGH ARDUINO

Field Programmable Gate Array

August Issue Page 96 of 107 ISSN

PINE TRAINING ACADEMY

DESIGN OF EFFICIENT ROUTING ALGORITHM FOR CONGESTION CONTROL IN NOC

FPGA for Software Engineers

Large-scale Multi-flow Regular Expression Matching on FPGA*

FPGA BASED ADAPTIVE RESOURCE EFFICIENT ERROR CONTROL METHODOLOGY FOR NETWORK ON CHIP

NETWORK INTRUSION DETECTION SYSTEMS ON FPGAS WITH ON-CHIP NETWORK INTERFACES

FPGA: What? Why? Marco D. Santambrogio

Implementation of Efficient Modified Booth Recoder for Fused Sum-Product Operator

Design of Convolution Encoder and Reconfigurable Viterbi Decoder

A Low Power DDR SDRAM Controller Design P.Anup, R.Ramana Reddy

International Journal of Advance Engineering and Research Development

Efficient VLSI Huffman encoder implementation and its application in high rate serial data encoding

Keywords: Soft Core Processor, Arithmetic and Logical Unit, Back End Implementation and Front End Implementation.

Automatic compilation framework for Bloom filter based intrusion detection

FPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011

Dynamically Configurable Online Statistical Flow Feature Extractor on FPGA

Design and Simulation of Router Using WWF Arbiter and Crossbar

LUTs. Block RAMs. Instantiation. Additional Items. Xilinx Implementation Tools. Verification. Simulation

Power Gated Match Line Sensing Content Addressable Memory

CHAPTER 9 MULTIPLEXERS, DECODERS, AND PROGRAMMABLE LOGIC DEVICES

Computer Architecture: Part III. First Semester 2013 Department of Computer Science Faculty of Science Chiang Mai University

Data Side OCM Bus v1.0 (v2.00b)

EECS 150 Homework 7 Solutions Fall (a) 4.3 The functions for the 7 segment display decoder given in Section 4.3 are:

Pipelined Quadratic Equation based Novel Multiplication Method for Cryptographic Applications

Field Programmable Gate Array (FPGA)

VHDL CODE FOR SINGLE BIT ERROR DETECTION AND CORRECTION WITH EVEN PARITY CHECK METHOD USING XILINX 9.2i

ECEU530. Project Presentations. ECE U530 Digital Hardware Synthesis. Rest of Semester. Memory Structures

Don t expect to be able to write and debug your code during the lab session.

ELEC 204 Digital System Design LABORATORY MANUAL

Scalable Packet Classification on FPGA

Chapter 9: Integration of Full ASIP and its FPGA Implementation

Tree-Based Minimization of TCAM Entries for Packet Classification

Design and Implementation of Low Complexity Router for 2D Mesh Topology using FPGA

Verilog Module 1 Introduction and Combinational Logic

SIDDHARTH GROUP OF INSTITUTIONS :: PUTTUR Siddharth Nagar, Narayanavanam Road QUESTION BANK (DESCRIPTIVE) UNIT-I

Complex test pattern generation for high speed fault diagnosis in Embedded SRAM

Comparison of pipelined IEEE-754 standard floating point multiplier with unpipelined multiplier

High Speed Fault Injection Tool (FITO) Implemented With VHDL on FPGA For Testing Fault Tolerant Designs

Scalable and Dynamically Updatable Lookup Engine for Decision-trees on FPGA

FPGA Implementation and Validation of the Asynchronous Array of simple Processors

FSM Design Problem (10 points)

(ii) Simplify and implement the following SOP function using NOR gates:

Fast Reconfiguring Deep Packet Filter for 1+ Gigabit Network

POWER REDUCTION IN CONTENT ADDRESSABLE MEMORY

A Low Power Asynchronous FPGA with Autonomous Fine Grain Power Gating and LEDR Encoding

4DM4 Lab. #1 A: Introduction to VHDL and FPGAs B: An Unbuffered Crossbar Switch (posted Thursday, Sept 19, 2013)

Today. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses

Lecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language)

Hardware Description of Multi-Directional Fast Sobel Edge Detection Processor by VHDL for Implementing on FPGA

New Logic Module for secured FPGA based system

Verilog for High Performance

Altera FLEX 8000 Block Diagram

ISSN Vol.03, Issue.08, October-2015, Pages:

Optimized CAM Design

Written exam for IE1204/5 Digital Design Thursday 29/

ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL. Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS

Topics. Midterm Finish Chapter 7

Design of Synchronous NoC Router for System-on-Chip Communication and Implement in FPGA using VHDL

Design of a Pipelined 32 Bit MIPS Processor with Floating Point Unit

Matrix Manipulation Using High Computing Field Programmable Gate Arrays

VHDL for Synthesis. Course Description. Course Duration. Goals

ISSN: [Bilani* et al.,7(2): February, 2018] Impact Factor: 5.164

FPGA Provides Speedy Data Compression for Hyperspectral Imagery

Performance Evaluation & Design Methodologies for Automated CRC Checking for 32 bit address Using HDLC Block

DESIGN AND IMPLEMENTATION OF VLSI SYSTOLIC ARRAY MULTIPLIER FOR DSP APPLICATIONS

SHA3 Core Specification. Author: Homer Hsing

Design and Implementation of 3-D DWT for Video Processing Applications

VHDL IMPLEMENTATION OF FLOATING POINT MULTIPLIER USING VEDIC MATHEMATICS

Model EXAM Question Bank

Virtex-5 GTP Aurora v2.8

VLSI DESIGN OF REDUCED INSTRUCTION SET COMPUTER PROCESSOR CORE USING VHDL

FPGA Matrix Multiplier

A Framework for Rule Processing in Reconfigurable Network Systems

OPTIMIZING THE POWER USING FUSED ADD MULTIPLIER

Transcription:

Dynamic Based Reconfigurable Content Addressable Memory for FastString Matching N.Manonmani 1, K.Suman 2, C.Udhayakumar 3 Dept of ECE, Sri Eshwar College of Engineering, Kinathukadavu, Coimbatore, India1 Dept of ECE, PSG College of Technology, Peelamedu, Coimbatore, India2 Assit Prof Dept of ECE,Sri Eshwar College of Engineering,Kinathukadavu,Coimbatore,India 3 Abstract- A Content-Addressable Memory (CAM) stores data in a similar fashion to a conventional RAM. However, "reading" the CAM involves providing input data to be matched, then searching the CAM for a match so that the address of the match can be output. Networking has typical application in software application must typically be compared to high speed network traffic, and string matching it becomes a bottleneck.for that purpose a Variable Word-Width CAM for fast string matching has been designed and implemented in an FPGA.It is used to increase the speed of searching operation and string matching.it upsurges the speed 8 times faster. The CAM design has been simulated with Model Technology ModelSim 6.3f, and synthesized by Xilinx ISE 9.1. It was then loaded into a FPGA. Index Terms- Field Programmable Gate Array, Content Addressable memory, Intrusion Detection system. I. INTRODUCTION Content Addressable Memories or CAMs are a class of parallel pattern matching circuits. These circuits function like standard memory circuits and may be used to store binary data. Dissimilar to standard memory circuits, however, a powerful match mode is also available. This match mode authorities all of the data in the CAM device to be searched in parallel [1].The speed oftoday snetworks is of such a kind that a general purpose CPU must struggle to process the network data. The CPU must also have incomes left for other application processes. The amount of processing required on network data is increasing due to the need for intrusion detection, cryptographic processing and more [2]. Here the work deal with a part of an Intrusion Detection System (IDS), Snort, the string matcher will be implemented in hardware. The main involvement of this paper is to implement a Variable Word-length Content Addressable Memory (CAM) in FPGA for string matching. In order to design a system for an FPGA, actual CAM design in VHDL by taking advantage of allprogramming abilities that is common to any programming language. II.BACK ROUND A. Content Addressable Memory CAM and Random Access Memory (RAM) circuits are similar in structure, but it different to RAM, in which the stored data are identified by means of unique address assigned to each data word, CAM words are identified by their content. The device are written or read the data [3] shown in fig. 1. In addition to functioning as a standard memory device, parallel search or match done by CAM. The entire memory array can be searched in parallel using hardware. In this match mode, each memory cell in the array is accessed in parallel and compared to some value. Match is found in memory location, a match signal is generated. CAM is very useful in applications such the search operations are to be performed. CAM is two types binary CAM and ternary CAM. Binary CAM stores 0 and 1,ternary CAM stores 0, 1, and X 1. Return Value The entries in a CAM have two parts. It has more important field in searching operation, which is the part of the entry that is matched with the search pattern. The CAM entries also contain a return field;during the read operation the information is returned. This contains either related information or an index. In some cases, one is not only able to write to the search field, but also to the return field, so that the return value can be programmed per entry. 429

Fig. 1 RAM versus CAM functionality 2. Prioritizing Since the entries stored in the CAM may contain don t cares, there is a possibility that two or more entries give a match at the same time. Inherent priority exploits the CAMs predictable ordering when reading multiple matched data. In this case, in the order of priority system stores the entries. By using a priority encoder, the top address of the CAM has the highest priority (0) and the bottom address has the lowest priority (127). Explicit prioritythe inherent priority can be replaced with an explicit priority field added to each CAM word. In case of a multiple match, the entry with the highest explicit priority as stored in the priority field is Returned. The advantage of explicit priority is that updating the CAM becomes easier, since a new entry can always be added at the end. When using inherent prioritizing, new entries are not always added in the end of the CAM and an address has to be reserved by shifting down other entries and updating the memory that is addressed by the CAM. Fixed Length CAMhas same amount of area is reserved for all entries. This is referred as fixed length CAM. In Variable Length CAMArea that each entry occupies is variable and depends on the number of don t cares. This is referred as Variable length CAM. III. CAM DESIGN Fig. 2 CAM Design The designed CAM size is 128 words. It can store 128 words in the match lines and it can compare those words and returns the match and match address. The design is having a priority encoder which decides the priority of match when multiple matches are found in the design it is shown in fig. 2. 430

Fig. 3 Structure of the VHDL description of the variable length CAM The structure of the VHDL code of the variable length CAM is much like the fixed length CAM and is given in fig. 3. The main differences are that two multiplexers were added for each match line (entity Mux4) and flip flops were replaced by shift registers IV. DYNAMIC RECONFIGURATION Reconfigurable memories are widely used in the routers and firewalls. In order to increase the speed andflexibility we go for reconfigurable memories. Full custom Content Addressable Memories that are fast and can store a large amount of data. By implementing the CAM in FPGA, matching is done in hardware which is faster than doing it in software. Advantages The CAM functionality can therefore be integrated with other logic on the same chip. Implementing a CAM in FPGA technology gives the possibility to add extra features. V. INTRUSION DETECTION SYSTEM An intrusion detection system (IDS) monitors network traffic and monitors for suspicious activity and alerts the system or network administrator. In some cases the IDS may also react to anomalous or malicious traffic of network searching speed.ids on exact string (content) matching. String matching based on software has not been able to keep up with high network speeds, and hardware solutions are needed.content Addressable Memory (CAM) used for improve the performance of IDS systems. As the string matcher is often the main bottleneck of an IDS.A variable length CAM is used to avoid this problem. And it is used for increase the speed of searching and matching. This design clearly offers an improvement to IDS. It performs 8 times faster than before used of CAM in IDS it shown in table1. VI. MAKING A STRING MATCHER CAM has been applied for string matching in this work. Using of CAM the data to be matched as a Byte Stream. In parallel, the data is stored in the CAM; the string is compared to all. If a match is found, it is indicated by the Match bit. The Match Address reports the address of the string that matched in the CAM. When match is found, exact string matching is performed. 431

Fig. 4 CAM Applied in a String Matching System A. Shift Register In the fixed length CAM, primitive SRL16 was used to implement a LUT whose inputs are notswapped. In the variable length CAM this primitive is instantiated to be used as a shift registeras well. A description of SRL16 is given in Fig. 5. The data (D) is loaded into the first bit of the shift register and during subsequent Low-to-High clock transitions data is shifted to the next bit position as new data is loaded. The data appears on the Q outputs when the shift register length determined by the address inputs is reached. The length of the shift register can be changed dynamically and is equal to: (8*A3) + (4*A2) + (2*A1) + A0. In the VHDL code, the length is initialized at 1 by driving 0 on all address inputs. To change the length during operation, some address inputs need to drive 1 and this is done by disconnecting these inputs. This way, these inputs are not driven and a pull up causes them to become high. Fig. 5 structure of SRL16E B. CAM Read Mode Fig. 6 illustrates CAM in read mode. In shift register each location isconnected to all matching units in the corresponding row as indicated by horizontal lines. The CAM has a latency of two clock cycles.whenthe output registers of the encoder are updated match enable goes high, For each clock cycle we giving a new data to the shift register, for each clock cyclewe will get a new valid output. 432

Fig. 6 CAM Read Mode C. CAM Write Mode Fig. 7 gives an overview of a CAM in write mode. Each comparator is connected to all matching units (SRL16Es) in the corresponding row. At a time only one word can be written. Decoder selects the word. the decoder passes on the Write Enable signal for the chosen word output is given by the counter. Fig. 7 CAM Write Mode Overview 433

Fig. 8 Simulation Results for CAM Simulation is done using VHDL codes in Xilinx ISE Project Navigator 9.2. The design is implemented in Virtex2 pro FPGA board from Xilinx. The design includes the basic blocks of CAM. They are of Counter, Comparator, Encoder, Decoder, CAM core and the cam components library. The basic blocks were integrated and it is simulated using VHDL test benches shown in fig. 8. Table. I Speed for Searching and Matching VII. CONCLUSION AND FUTURE WORK A Variable length CAM has been designed. And this design is used for fast string matching and searching operation in network application.cam has high flexibility and parallel searching operation.it used to increase the speed of searching operation and string matching.it performs 8 times faster than before using of CAM in IDS. In future, the JBits can be used to modify the content of the CAM dynamically. Thus this application helps us to handle varying width data in CAMs in run time. Thus a Dynamically reconfigurable Content Addressable Memory can be developed and implemented using Xilinx Virtex 2 pro FPGA. REFERENCES [1] K. E. Grosspietsch, Associative processors and memories: a survey, IEEE Micro, vol. 12, no. 3, pp. 12 19, Jun. 1992. [2] Peter Bellows et al. GRIP: A Reconfigurable Architecture for Host-Based Gigabit-Rate Packet Processing. FCCM 2002. 434

[3] N. Weste and K. Eshraghian, Principles of CMOS VLSI Design, Addison-Wesley Publishing Company, 1985. [4] A Reconfigurable CAM Architecture for Network Search Engines, Nourani, M., Vijayasarathi, D.S., Balsara, P.T. 2006, IEEE. [5] Reconfigurable cache memory architecture for integral image and integral histogram applications Po HaoHsu ; Shao-Yi Chien 2011,IEEE. [6] Reconfigurable computing using content addressable memory for improved performance and resource usage Paul, S. Bhunia, S. 2008, IEEE. [7] A Flexible Design of Network Devices Using Reconfigurable Content Addressable Memory Qutaiba Ali 2011, IEEE. [8] Scalable Multi gigabit Pattern Matching for Packet Inspection., IoannisSourdis, Dionisios N. Pnevmatikatos, StamatisVassiliadis 2008,IEEE. [9] A Memory-Efficient and Modular Approach for Large-Scale String Pattern Matching. Hoang Le, Viktor K. Prasanna 2013, IEEE. [10] Content-Addressable Memory (CAM) Circuits and Architectures: A Tutorial and Survey. Kostas Pagiamtzis, Ali Sheikholeslami 2006, IEEE. 435