FPGA Protocol Recognition System Using Pattern Matching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional protocol recognition systems are inefficient in determining application layer protocols of IP packets, requiring lengthy pattern matching processes and large hardware configurations, making them costly and time-consuming to update with new protocols or changes.

Innovation Solution

A recognition system that uses a data memory to store characteristic patterns of protocols and a pattern-matching processor to compare data packets with these patterns, allowing for rapid identification of protocols through a series of logical comparisons and address pointers, enabling quick adaptation to new protocols without reconfiguring the hardware.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If a conventional protocol recognition system uses a universal computer with pattern matching software, then the system can determine protocols of IP packets, but the recognition speed is too slow

Engineering Contradiction:
Improveprotocol recognition speedVSAvoidpattern matching efficiency
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent replaces the mechanical software-based pattern matching system with a hardware circuit implementation in FPGA. The HDL program is compiled to hardware logic that performs pattern matching in parallel, substituting sequential software processing with concurrent hardware processing, thereby dramatically increasing recognition speed.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The patent implements dynamic pattern matching capabilities where the hardware circuit can be reconfigured through HDL programming to adapt to new protocols. The system uses configurable logic elements and memory structures that can be dynamically programmed to recognize different protocol patterns without physical hardware changes.

Inventive Principle:
Principle #15Dynamics

2Speed

If a large FPGA is configured to load the hardware circuit, then the protocol recognition can be performed in hardware, but the size and cost of the recognition system increase

Engineering Contradiction:
Improvehardware processing speedVSAvoidFPGA size
Core Design Contradiction:
SpeedVSWeight of stationary object

Solution Approach 1:

The patent segments the pattern matching function into modular hardware components within the FPGA. The HDL program is structured to create reusable logic blocks and state machines that can be efficiently packed into the FPGA fabric, reducing the overall resource requirements while maintaining high-speed hardware processing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent optimizes the hardware circuit parameters through careful HDL programming, including adjusting logic depth, pipeline stages, and resource utilization to achieve the desired processing speed with minimal FPGA footprint. The design parameters are tuned to balance performance and resource consumption.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If an HDL program is written for the hardware circuit, then the system can process IP packets to determine protocols, but it takes a relatively long time to write the HDL program due to the complicated design

Engineering Contradiction:
Improvehardware circuit functionalityVSAvoidHDL program development time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent employs preliminary action by establishing a systematic HDL programming framework and reusable code templates for protocol recognition. Common protocol patterns are pre-implemented as parameterized modules that can be quickly instantiated and configured, significantly reducing the time required to develop HDL programs for new protocols.

Inventive Principle:
Principle #10Preliminary action

4Adaptability or versatility

If the HDL program is re-written to accommodate new protocols or pattern changes, then the system can recognize new protocols, but it takes a relatively long time to re-write the program

Engineering Contradiction:
Improveprotocol update capabilityVSAvoidprogram rewriting time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements universal protocol recognition capabilities through parameterized HDL modules that can recognize multiple protocols by configuring input patterns and matching criteria. The hardware circuit is designed with generic state machines and pattern matching engines that can be programmed to handle different protocol families, eliminating the need for complete rewrites when adding new protocols.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent creates a dynamic and reconfigurable hardware architecture where protocol recognition patterns can be updated by loading new HDL configurations. The system uses configurable logic elements and memory structures that can be dynamically programmed to recognize different protocol patterns without physical hardware changes, enabling rapid adaptation to new protocols.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8018942B2Recognition systems based on pattern matching
Publication Date: 2011.09.13 IYUKO SERVICES
  • US8018942B2 patent drawing
  • US8018942B2 patent drawing
  • US8018942B2 patent drawing

AI summary

A recognition system for recognizing a data packet includes a data memory for storing data units in a predetermined order. A first data unit includes an instruction for determining a characteristic of the data packet. The first data unit also includes the total number of the data units, and a corresponding sequence number for the first data unit. The recognition system further includes a matching processor coupled to the data memory. The matching processor can execute the instruction in the first data unit to generate a result. The matching processor can also provide an address pointer according to the execution result, the total number of the data units, and the corresponding sequence number of the first data unit.