Parallel Pattern Recognition Processor for High-Bandwidth Data Streams
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Pattern recognition tasks in computing are bottlenecked by the increasing volume of data and number of patterns to be identified, leading to delays and inefficiencies in data processing, especially when multiple patterns need to be searched within a data stream.
Innovation Solution
A pattern-recognition processor that uses parallel finite state machines to evaluate multiple search criteria simultaneously, allowing for high-bandwidth data processing without performance degradation, even with a large number of search criteria, and includes a results buffer to manage and filter search results efficiently.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If multiple patterns are searched one at a time in a data stream, then each pattern can be searched thoroughly, but the processing delay increases with the number of patterns
Solution Approach 1:
The patent divides the pattern recognition task into multiple parallel finite state machines, each handling a specific pattern. This segmentation allows simultaneous processing of multiple patterns without sequential delays, resolving the contradiction between thorough pattern matching and processing speed.
Solution Approach 2:
The patent transitions from sequential (one-dimensional) pattern processing to parallel processing by introducing multiple finite state machines operating simultaneously. This dimensional change from serial to parallel architecture enables multiple patterns to be evaluated concurrently, eliminating the time penalty associated with searching for each pattern individually.
2Productivity
If parallel finite state machines are used to evaluate multiple search criteria simultaneously, then processing speed increases, but device complexity increases
Solution Approach 1:
The patent employs multiple finite state machines that are structurally identical and can be configured to handle different patterns. This universality allows the system to process multiple patterns simultaneously using replicated, standardized components rather than complex, custom-designed processing units for each pattern, thereby increasing productivity while controlling complexity through modularity.
3Loss of information
If search results are cataloged for multiple patterns, then comprehensive match information is captured, but retrieval of matches slows overall system performance
Solution Approach 1:
The patent extracts match information from the finite state machines and stores it in a separate results buffer. This separation allows the pattern matching process to continue uninterrupted while match results are cataloged and retrieved, preventing the retrieval operation from slowing down the overall system performance while maintaining complete match information.
4Measurement precision
If the system waits for matches to occur before processing, then accurate pattern recognition is achieved, but capacity of other components remains unused during idle periods
Solution Approach 1:
The patent maintains continuous operation of all system components by having finite state machines continuously process incoming data streams while simultaneously generating and buffering match results. This continuous action ensures that no component remains idle, as the parallel architecture allows processing to proceed without waiting for matches to occur, thereby utilizing full component capacity while maintaining recognition accuracy.
Data Source
Figure 1~3
Figure 2
Figure 4~5
AI summary
Disclosed are methods and devices, among which is a system that includes a device that includes one or more pattern-recognition processors (14, 93) for searching a data stream (12). The cluster of pattern-recognition processors (14, 93) may include various search pattern matching matrices (40, 42, 44, 46, 48, 50) and mask modules (94, 96, 98, 100) which may be utilized to perform various searching functions. Additionally, a buffer (25) may be utilized to individually store the various results from pattern matching matrices (40, 42, 44, 46, 48, 50) and mask modules (94, 96, 98, 100) for subsequent retrieval.