Compressed DFA Graph Arc Configuration for Memory Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing DFA graph search systems face a trade-off between memory usage and processing time, with compressed graphs requiring multiple memory accesses and larger graphs requiring significant memory, limiting efficient content searching in network security applications.

Innovation Solution

A compressed DFA graph is implemented, reducing memory accesses and processing time by pruning arcs that point back to the root node and using bit maps for efficient node traversal, allowing for reduced memory usage and single memory access per input character.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If a compressed DFA graph is used, then memory requirement is reduced, but multiple memory accesses are required per input character

Engineering Contradiction:
Improvememory requirementVSAvoidprocessing time
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The DFA graph is segmented into multiple levels or tiers, with frequently accessed nodes stored in faster memory (e.g., L1 cache) and less frequently accessed nodes in slower memory (e.g., L2 cache or main memory). This hierarchical segmentation allows the system to reduce overall memory usage while maintaining single-access performance for the most critical path nodes.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a nested memory structure where smaller DFA sub-graphs are embedded within larger graph structures. Each nested level contains only the arcs and nodes necessary for that portion of the search, allowing the system to access complete sub-graphs as single units and reduce the number of memory accesses required.

Inventive Principle:
Principle #7Nested doll (Nesting)

2Productivity

If a larger DFA graph is used, then single memory access per character is achieved, but memory requirement increases significantly

Engineering Contradiction:
Improveprocessing timeVSAvoidmemory requirement
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

Different portions of the DFA graph are stored with different quality levels in terms of memory speed and accessibility. Hot paths (frequently executed arcs) are stored in high-speed memory with full accessibility, while cold paths are stored in lower-speed memory. This local quality differentiation allows single-access performance for critical paths without the memory cost of storing the entire graph in high-speed memory.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system pre-computes and stores arc configuration information (such as bit maps indicating valid arcs) in the DFA graph structure itself. This preliminary action allows the traversal algorithm to determine the next state with a single memory access by reading pre-computed configuration data, eliminating the need for multiple sequential accesses that would otherwise be required.

Inventive Principle:
Principle #10Preliminary action

3Quantity of substance

If arc configuration information is stored in the DFA graph, then graph size is reduced, but complexity of traversal increases

Engineering Contradiction:
Improvegraph sizeVSAvoidtraversal complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

Instead of storing complete arc configuration data structures, the patent stores compact bit-map representations where each bit indicates the presence or absence of a valid arc from a given state. This copying of essential information in a compressed format reduces graph size while the bit-map structure itself provides an efficient, constant-time interface for determining valid transitions, avoiding the need for complex traversal logic.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9495479B2Traversal with arc configuration information
Publication Date: 2016.11.15 MARVELL ASIA PTE LTD
  • US9495479B2 patent drawing
  • US9495479B2 patent drawing
  • US9495479B2 patent drawing

AI summary

An apparatus, and corresponding method, for generating a graph used in performing a search for a match of at least one expression in an input stream is presented. The graph includes a number of interconnected nodes connected solely by valid arcs. A valid arc may also include a nodal bit map including structural information of a node to which the valid arc points to. A walker process may utilize the nodal bit map to determine if a memory access is necessary. The nodal bit map reduces the number of external memory access and therefore reduces system run time.