Parallel Regex Circuit for High-Throughput Data Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Central Processing Units (CPUs) lack the processing power and bandwidth to perform regular expression processing in real time, making existing solutions insufficient for responsive data throughput.

Innovation Solution

A regular expression processing circuit utilizing a non-deterministic finite automata (NFA) machine with a multi-ported memory and a parallel processing architecture, allowing for concurrent processing of input strings and runtime configuration to handle different regular expressions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a CPU executes a regex engine application to perform regular expression processing, then the system can handle general-purpose computing tasks, but the processing power and bandwidth are insufficient to achieve real-time data throughput

Engineering Contradiction:
Improvedata throughputVSAvoidprocessing speed
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The patent replaces the mechanical system of a general-purpose CPU executing software instructions with a dedicated hardware regular expression processing circuit. This circuit uses specialized logic elements, state machines, and parallel processing architectures to evaluate regular expressions directly in hardware, eliminating the overhead of instruction fetching, decoding, and sequential execution that limits CPU performance. The hardware implementation provides deterministic, high-speed matching capable of achieving multi-gigabit throughput.

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

Solution Approach 2:

The patent segments the regular expression processing function from the general-purpose CPU and implements it as a separate, dedicated hardware circuit. This segmentation allows the regex processing to occur in parallel with other CPU tasks, removes contention for CPU resources, and enables the regex engine to operate at line rate without being bottlenecked by CPU clock cycles and instruction pipeline limitations.

Inventive Principle:
Principle #1Segmentation

2Productivity

If multiple regular expression processing circuits are used to increase processing capacity, then throughput is improved, but device complexity increases

Engineering Contradiction:
ImprovethroughputVSAvoidcircuit complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent designs a universal regular expression processing circuit that can be configured to evaluate different regular expressions through programmable parameters and lookup tables. This single versatile circuit can handle multiple regex patterns by loading different configuration data, eliminating the need for dedicated hardware for each regex pattern and reducing overall system complexity while maintaining high throughput capability.

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

Solution Approach 2:

The patent transitions from sequential single-threaded regex evaluation to parallel multi-threaded evaluation within a unified hardware architecture. By organizing the processing circuit to handle multiple input streams and regex patterns simultaneously through spatial parallelism, the system achieves high throughput without proportionally increasing device complexity, as the parallelism is integrated into a cohesive control structure.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS11449344B1Regular expression processor and parallel processing architecture
Publication Date: 2022.09.20 XILINX INC
  • US11449344B1 patent drawing
  • US11449344B1 patent drawing
  • US11449344B1 patent drawing

AI summary

A processing circuit includes a random access memory (RAM) configured to look up a first next state based on a first address simultaneously with looking up a second next state based on a second address. The first address is formed of a first current state and an input data and the second address is formed of a second current state and the input data. The processing circuit includes a state control circuit that receives the first and second next states, the first current state, and the second current state, and a first-in-first-out (FIFO) memory that stores selected ones of the first and second next states, the first current state, and the second current state. The processing circuit includes a multiplexer configured to selectively pass two states from the FIFO memory or two states from the state control circuit as a third current state and a fourth current state.