DFA Graph Caching via Accessibility Ranking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current networking systems face performance limitations in processing high-level network protocols (L4-L7) at wire-speed, particularly in content-aware applications like Intrusion Detection Systems, due to insufficient processing capabilities of general-purpose processors.

Innovation Solution

A processor is designed to efficiently store and retrieve portions of a Deterministic Finite Automata (DFA) graph by caching cacheable portions based on accessibility rankings, reducing external memory accesses and optimizing node structures for faster content searches.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a general purpose processor is used to process L4-L7 network protocols, then intelligent processing capability is improved, but processing speed deteriorates and cannot achieve wire-speed forwarding

Engineering Contradiction:
Improveintelligent processing capabilityVSAvoidprocessing speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The DFA graph is segmented into cacheable portions (frequently accessed nodes) and non-cacheable portions. The processor separates hot nodes that benefit from caching and cold nodes that do not, allowing selective optimization without compromising overall processing capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different storage strategies are applied to different parts of the graph based on accessibility rankings. High-accessibility nodes are cached in fast memory while lower-accessibility nodes remain in main memory, creating local optimization tailored to access patterns.

Inventive Principle:
Principle #3Local quality

2Speed

If the entire DFA graph is cached in fast memory, then access speed is improved, but memory resource consumption increases

Engineering Contradiction:
Improveaccess speedVSAvoidmemory resource consumption
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The system changes the parameter of memory allocation by using accessibility rankings to determine which nodes deserve fast cache memory. This parameter-based selection optimizes the balance between access speed and memory resource consumption.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

Instead of caching the entire graph (excessive action), the system caches only the necessary portion (partial action) - specifically, nodes with high accessibility rankings. This partial caching achieves most of the performance benefit while consuming fewer resources.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If accessibility ranking is used to select cacheable portions, then cache efficiency is improved, but processing complexity increases

Engineering Contradiction:
Improvecache efficiencyVSAvoidprocessing complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Accessibility rankings are computed in advance during a compilation stage before the actual graph traversal begins. This preliminary computation eliminates the need for complex real-time analysis during packet processing, reducing runtime complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The DFA graph structure itself provides the information needed for caching decisions through its inherent node connectivity and accessibility properties. The system leverages the graph's own characteristics rather than requiring external complex analysis.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9787693B2Graph caching
Publication Date: 2017.10.10 MARVELL ASIA PTE LTD
  • US9787693B2 patent drawing
  • US9787693B2 patent drawing
  • US9787693B2 patent drawing

AI summary

In a method and apparatus for analyzing nodes of a Deterministic Finite Automata (DFA), an accessibility ranking, based on a DFA graph geometrical configuration, may be determined in order to determine cacheable portions of the DFA graph in order to reduce the number of external memory accesses. A walker process may be configured to walk the graph in a graph cache as well as main memory. The graph may be generated in a manner allowing each arc to include information if the node it is pointing to is stored in the graph cache or in main memory. The walker may use this information to determine whether or not to access the next arc in the graph cache or in main memory.