ARC Caching for DFA Regular Expression Accelerators
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
General-purpose processors in data centers are inefficient in handling high-capacity network and storage workloads, particularly in processing packet streams due to their design limitations.
Innovation Solution
A highly programmable data processing unit with specialized hardware-based accelerators, including a RegEx accelerator unit, is introduced to offload tasks such as regular expression evaluation and packet processing, utilizing deterministic finite automata (DFA) to efficiently process network and storage packets.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If general-purpose processors are used to process packet streams, then device versatility is maintained, but processing speed and productivity deteriorate
Solution Approach 1:
The system segments processing tasks by separating general-purpose packet processing from regular expression matching. The DFA engine handles pattern matching independently while the main processor handles other tasks, resolving the contradiction by dividing functionality into specialized components.
Solution Approach 2:
A cache mechanism serves as an intermediary between the DFA engine and main memory, buffering arc data to reduce memory access latency. This intermediary structure enables faster processing without requiring complex processor architecture changes.
2Speed
If DFA graph arc data is stored entirely in cache, then access speed improves, but cache memory requirements and device complexity increase
Solution Approach 1:
The system applies local quality by storing only frequently accessed arc data in the cache while keeping less frequently accessed data in main memory. The cache stores arc data for the current node and potentially useful adjacent nodes, optimizing the balance between access speed and memory usage.
Solution Approach 2:
The system performs preliminary action by pre-loading arc data into the cache before it is needed for processing. The DFA engine proactively loads arc data for current and future nodes, ensuring data is available when needed without waiting for memory access.
3Loss of time
If arc data is loaded into cache before use, then processing time is reduced, but memory bandwidth consumption increases
Solution Approach 1:
The system applies partial action by loading only the necessary portion of arc data into the cache - specifically, data for the current node and potentially useful adjacent nodes - rather than loading entire DFA graphs. This reduces memory bandwidth consumption while still achieving low-latency access for critical data.
Data Source
AI summary
A DFA engine is described that determines whether a current symbol of a payload matches a label of any effective arcs or negative arcs associated with a current node of a DFA graph that are stored in a cache. Responsive to determining that the current symbol does not match a label of any effective or negative arcs associated with the current node of the DFA graph, the DFA engine determines whether the current symbol matches a label of any arc associated with the current node of the DFA graph that is stored in a memory. Responsive to determining that the current symbol matches a label of a particular arc associated with the current node of the DFA graph that is stored in the memory, the DFA engine stores the particular arc in the cache as a new effective arc and uses the particular arc to evaluate the current symbol.


