CAM Compiler for Regular Expression Search
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional software solutions for regular expression search operations in applications like intrusion detection systems are inefficient due to increased complexity and number of regular expressions, leading to slower search speeds and throughput.
Innovation Solution
A hardware-based content addressable memory (CAM) system with a programmable interconnect structure and embedded counter circuits is used to efficiently translate and store regular expressions, allowing for simultaneous routing of match signals across CAM rows, reducing the number of rows required for storage and enhancing search speeds.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If software programs are used to perform regular expression searches, then implementation flexibility is maintained, but search speed and throughput decrease as complexity increases
Solution Approach 1:
The patent replaces software-based regular expression processing with a hardware CAM search engine. The compiler translates regular expressions into hardware-configurable patterns that can be simultaneously matched against data in parallel, eliminating the computational bottleneck of software interpretation while maintaining the ability to handle complex patterns through hardware parallelism.
Solution Approach 2:
The CAM search engine is designed to handle multiple regular expression patterns simultaneously in a single search operation. The programmable counter circuits and interconnect structures enable the system to process various regular expression types (with quantifiers, alternation, character classes) using the same hardware architecture, providing universal functionality across different search patterns.
2Quantity of substance
If more CAM rows are used to store regular expressions, then storage capacity increases, but device area and complexity increase
Solution Approach 1:
The patent merges multiple regular expression patterns into a single CAM row by utilizing programmable counter circuits that track quantifier requirements. Instead of storing each pattern separately requiring multiple rows, the system combines patterns with shared prefixes and suffixes into unified rows, reducing the total number of rows needed while maintaining the ability to store numerous different regular expressions.
Solution Approach 2:
The programmable counter circuits dynamically adjust the number of times a pattern must match based on quantifier specifications. This dynamic counting mechanism allows a single CAM row to represent multiple pattern variations, as the counter adapts to different quantifier requirements ({n}, {n,m}, *, +, ?) without requiring separate storage for each variation.
3Productivity
If traditional software solutions are used, then ease of programming is maintained, but processing time increases
Solution Approach 1:
The compiler performs preliminary translation of regular expressions into optimized hardware patterns before the actual search operation. This pre-processing step converts the human-readable regular expression syntax into a format that can be directly configured in the CAM hardware, eliminating the need for real-time software interpretation during the search and significantly reducing processing time.
Solution Approach 2:
The CAM search engine performs pattern matching continuously across all CAM rows in parallel during a single search operation. Unlike software that processes patterns sequentially, the hardware architecture enables simultaneous evaluation of multiple patterns against the data stream, maintaining continuous useful action throughout the search process and maximizing throughput.
Data Source
AI summary
A content search system includes CAM device, a compiler, and an image loader. The CAM device, which includes a plurality of rows of CAM cells and a number of counter circuits selectively interconnected by a programmable interconnect structure (PRS), performs regular expression search operations. The compiler selectively converts the regular expression into a number of various bit groups, and the image loader loads corresponding bit groups into the CAM cells, into a number of memory elements that control configuration of the PRS, and into the counter circuits.


