Patent application number | Description | Published |
20080228798 | Method and apparatus for deep packet processing - A method and apparatus for deep packet processing including a parsing and a searching method supported by a data structure storing the state-transition rules in the state-transition rule tables of a programmable state machine for parsing. The state-transition rule table is then compressed using the BaRT compression algorithm. Each transition rule comprises a test value, a test mask and a next state field. In a second embodiment the state-transition rule table is split into more than one state-transition rule table corresponding to disjoints state spaces, thus allowing more flexibility in the use of storage space. Finally a parsing and searching method can be implemented using the same hardware. The searching and parsing methods can be implemented alternatively or in any combination at wire-speed. | 09-18-2008 |
20080263039 | PATTERN-MATCHING SYSTEM - An XML parsing system includes a pattern-matching system | 10-23-2008 |
20090006782 | APPARATUS AND METHOD FOR ACCESSING A MEMORY DEVICE - An apparatus and a corresponding method for coupling a memory device being addressable by means of an address space to a processing unit, the apparatus consisting:
| 01-01-2009 |
20090055343 | Pattern detection - Apparatus for detecting a pattern in a data stream comprises a pattern matching device for receiving the data stream. The pattern matching device comprises one or more rule engines, each rule engine operating under a plurality of state transition rules encoding a plurality of patterns, a first state transition rule including a wildcard state component and a wildcard input component, a second state transition rule including a wildcard state component and a specified input component, and a third state transition rule including a specified state component and a specified input component, the first, second and third rules having differing priorities, and at least one state transition rule including an output component indicating a pattern match. The apparatus is arranged to pass the data stream to each rule engine, and is further arranged to output a signal indicating a pattern match when a state transition rule indicates a pattern match. | 02-26-2009 |
20090055728 | Decompressing electronic documents - This invention provides methods, apparatus, and systems for decompressing electronic documents. Utility of this invention includes use in validation and parsing of compressed XML documents. An example data processing method comprises receiving a compressed electronic document, decompressing the document and executing an analysis of the document during the decompression. The analysis determines whether the document conforms to defined syntax rules. In one example, a compressed XML document, while it is being decompressed, following receipt, will be parsed and/or validated at the same time. | 02-26-2009 |
20090171651 | SDRAM-BASED TCAM EMULATOR FOR IMPLEMENTING MULTIWAY BRANCH CAPABILITIES IN AN XML PROCESSOR - The system and method of the present invention “emulates” the TCAM function using a data structure which is stored in an SDRAM device in such way that the size of emulated TCAM is substantially larger than the original TCAM device, thereby allowing the increase of the number of PPE programs which can be resident in memory. The present invention provides a new “emulCAM” algorithm which builds partially on BaRT, but is extended by providing multiple results per hash table entry with flexible assignment to “match-condition-combinations”, by utilizing MUX control vectors for extracting hash index instead of “index-mask-based extraction”, by moving part of CAM function to invoking emulCAM instruction and by providing “Pathological case handling” using multiple emulCAM instructions. | 07-02-2009 |
20090307175 | PARALLEL PATTERN MATCHING ON MULTIPLE INPUT STREAMS IN A DATA PROCESSING SYSTEM - A method, system and computer program product for performing pattern matching in parallel for a plurality of input streams. The method includes calculating a memory address in a translation table responsive to a current input value, a current state and current state information. A transition rule is retrieved from the transition rule table at the memory address, the transition rule including a test input value, a test current state, and next state information. It is determined if the current input value and the current state match the test input value and the test current state. The current state information is updated with the next state information in response to determining that the current input value and the current state match the test input value and the test current state. The current state information is updated with contents of a default transition rule in response to determining that the current input value and the current state do not match the test input value and the test current state. | 12-10-2009 |
20100205411 | HANDLING COMPLEX REGEX PATTERNS STORAGE-EFFICIENTLY USING THE LOCAL RESULT PROCESSOR - A result processor access a result table for an entry associated with a predetermined sub-expression of a regular expression in response to a finite state machine finding the predetermined sub-expression in the input stream. The result processor executes an instruction associated with the entry, the instruction including one or more operations to be performed on one or more bits in a bit vector register, and determines as a function of the one or more bits in the bit vector register whether the complex regular expression has been found in the input stream. | 08-12-2010 |
20110029473 | MATCH ENGINE FOR DETECTION OF MULTI-PATTERN RULES - Methods, systems and computer program products are disclosed for detecting patterns in a data stream that match multi-pattern rules. One embodiment of the invention provides a method of recognizing a specified group of patterns in a data stream. The method comprises identifying a rule for said specified group of patterns in the data stream, and using a first array of finite state machines to scan the data stream for at least some of the patterns in the specified group. For patterns in the specified group that are found in the data stream by the first array of finite state machines, pattern identifiers are sent to a second array of finite state machines. The second array of finite state machines determines if the specified group of patterns is in the data stream in accordance with the identified rule by, at least in part, using said pattern identifiers. | 02-03-2011 |
20120078832 | EXPLOITATION OF TRANSITION RULE SHARING BASED ON SHORT STATE TAGS TO IMPROVE THE STORAGE EFFICIENCY - A mechanism is provided with an address generator that is operative to receive a current state vector and a current input value, and the address generator is operative to generate a memory address corresponding to a transition rule in response to the current state vector and the current input value. A transition rule memory includes a memory addresses, and the memory address is a location in the transition rule memory. The transition rule is a transition rule vector that includes a short state tag field. The short state tag field includes fewer bits than the current state vector. | 03-29-2012 |
20120155492 | Data Path for Data Extraction From Streaming Data - A data path for streaming data includes a plurality of sequential data registers, each of the plurality of sequential data registers comprising a plurality of data fields, wherein the streaming data moves sequentially through the sequential data registers; and a multiplexing unit, the multiplexing unit configured such that the multiplexing unit has access to each of the plurality of data fields of the plurality of sequential data registers, and wherein the multiplexing unit is configured to extract data from the streaming data as the streaming data moves through the sequential data registers in response to a data request. | 06-21-2012 |
20120158635 | STORAGE EFFICIENT PROGRAMMABLE STATE MACHINE - A state machine includes a rule selector. The rule selector receives input data, and one or more transition rules. The one or more transition rules including a next state. The state machine also includes a character classifier communicatively coupled to the rule selector. The character classifier includes a plurality of base classes. The character classifier receiving the input data, and sending one or more of the plurality of base classes to the rule selector in response to receiving the input data. The rule selector selects one of the one or more transition rules in response to determining that the input data and one of the plurality of base classes correspond to the transition rule. The current state of the state machine is then set to the next state of the selected one of the one or more transition rules. | 06-21-2012 |
20120203718 | ALGORITHM ENGINE FOR USE IN A PATTERN MATCHING ACCELERATOR - A pattern matching accelerator (PMA) for assisting software threads to find the presence and location of strings in an input data stream that match a given pattern. The patterns are defined using regular expressions that are compiled into a data structure comprised of rules subsequently processed by the PMA. The patterns to be searched in the input stream are defined by the user as a set of regular expressions. The patterns to be searched are grouped in pattern context sets. The sets of regular expressions which define the pattern context sets are compiled to generate a rules structure used by the PMA hardware. The rules are compiled before search run time and stored in main memory, in rule cache memory within the PMA or a combination thereof. For each input character, the PMA executes the search and returns the search results. | 08-09-2012 |
20120203730 | PATTERN MATCHING ENGINE FOR USE IN A PATTERN MATCHING ACCELERATOR - A pattern matching accelerator (PMA) for assisting software threads to find the presence and location of strings in an input data stream that match a given pattern. The patterns are defined using regular expressions that are compiled into a data structure comprised of rules subsequently processed by the PMA. The patterns to be searched in the input stream are defined by the user as a set of regular expressions. The patterns to be searched are grouped in pattern context sets. The sets of regular expressions which define the pattern context sets are compiled to generate a rules structure used by the PMA hardware. The rules are compiled before search run time and stored in main memory, in rule cache memory within the PMA or a combination thereof. For each input character, the PMA executes the search and returns the search results. | 08-09-2012 |
20120203753 | UPLOAD MANAGER FOR USE IN A PATTERN MATCHNG ACCELERATOR - A pattern matching accelerator (PMA) for assisting software threads to find the presence and location of strings in an input data stream that match a given pattern. The patterns are defined using regular expressions that are compiled into a data structure comprised of rules subsequently processed by the PMA. The patterns to be searched in the input stream are defined by the user as a set of regular expressions. The patterns to be searched are grouped in pattern context sets. The sets of regular expressions which define the pattern context sets are compiled to generate a rules structure used by the PMA hardware. The rules are compiled before search run time and stored in main memory, in rule cache memory within the PMA or a combination thereof. For each input character, the PMA executes the search and returns the search results. | 08-09-2012 |
20120203754 | PERFORMANCE MONITORING MECHANISM FOR USE IN A PATTERN MATCHING ACCELERATOR - A pattern matching accelerator (PMA) for assisting software threads to find the presence and location of strings in an input data stream that match a given pattern. The patterns are defined using regular expressions that are compiled into a data structure comprised of rules subsequently processed by the PMA. The patterns to be searched in the input stream are defined by the user as a set of regular expressions. The patterns to be searched are grouped in pattern context sets. The sets of regular expressions which define the pattern context sets are compiled to generate a rules structure used by the PMA hardware. The rules are compiled before search run time and stored in main memory, in rule cache memory within the PMA or a combination thereof. For each input character, the PMA executes the search and returns the search results. | 08-09-2012 |
20120203755 | MULTIPLE RULE BANK ACCESS SCHEME FOR USE IN A PATTERN MATCHING ACCELERATOR - A pattern matching accelerator (PMA) for assisting software threads to find the presence and location of strings in an input data stream that match a given pattern. The patterns are defined using regular expressions that are compiled into a data structure comprised of rules subsequently processed by the PMA. The patterns to be searched in the input stream are defined by the user as a set of regular expressions. The patterns to be searched are grouped in pattern context sets. The sets of regular expressions which define the pattern context sets are compiled to generate a rules structure used by the PMA hardware. The rules are compiled before search run time and stored in main memory, in rule cache memory within the PMA or a combination thereof. For each input character, the PMA executes the search and returns the search results. | 08-09-2012 |
20120203756 | LOCAL RESULTS PROCESSOR FOR USE IN A PATTERN MATCHING ACCELERATOR - A pattern matching accelerator (PMA) for assisting software threads to find the presence and location of strings in an input data stream that match a given pattern. The patterns are defined using regular expressions that are compiled into a data structure comprised of rules subsequently processed by the PMA. The patterns to be searched in the input stream are defined by the user as a set of regular expressions. The patterns to be searched are grouped in pattern context sets. The sets of regular expressions which define the pattern context sets are compiled to generate a rules structure used by the PMA hardware. The rules are compiled before search run time and stored in main memory, in rule cache memory within the PMA or a combination thereof. For each input character, the PMA executes the search and returns the search results. | 08-09-2012 |
20120203761 | PATTERN MATCHING ACCELERATOR - A pattern matching accelerator (PMA) for assisting software threads to find the presence and location of strings in an input data stream that match a given pattern. The patterns are defined using regular expressions that are compiled into a data structure comprised of rules subsequently processed by the PMA. The patterns to be searched in the input stream are defined by the user as a set of regular expressions. The patterns to be searched are grouped in pattern context sets. The sets of regular expressions which define the pattern context sets are compiled to generate a rules structure used by the PMA hardware. The rules are compiled before search run time and stored in main memory, in rule cache memory within the PMA or a combination thereof. For each input character, the PMA executes the search and returns the search results. | 08-09-2012 |
20120203970 | SOFTWARE AND HARDWARE MANAGED DUAL RULE BANK CACHE FOR USE IN A PATTERN MATCHING ACCELERATOR - A pattern matching accelerator (PMA) for assisting software threads to find the presence and location of strings in an input data stream that match a given pattern. The patterns are defined using regular expressions that are compiled into a data structure comprised of rules subsequently processed by the PMA. The patterns to be searched in the input stream are defined by the user as a set of regular expressions. The patterns to be searched are grouped in pattern context sets. The sets of regular expressions which define the pattern context sets are compiled to generate a rules structure used by the PMA hardware. The rules are compiled before search run time and stored in main memory, in rule cache memory within the PMA or a combination thereof. For each input character, the PMA executes the search and returns the search results. | 08-09-2012 |
20120242369 | Local Result Processor - A system includes a register, a first logical function portion, the first logical function portion operative to receive a first numerical value from the register, perform a first logical function with the first numerical value, and output a second numerical value, a second logical function portion, the second logical function portion operative to receive the first numerical value from the register, perform a second logical function with the first numerical value, and output a third numerical value, and a control logic portion, the control logic portion operative to receive the first numerical value from the register, determine whether the first numerical value includes a code associated with either the first logical function or the second logical function, and responsive to determining that the code is associated with the first logical function, and direct the output of the second numerical value to an input of the register. | 09-27-2012 |
20120284222 | COMPILING PATTERN CONTEXTS TO SCAN LANES UNDER INSTRUCTION EXECUTION CONSTRAINTS - A technique for determining scan lanes is provided. For a set of patterns, a number of scan lanes is estimated to be utilized on an accelerator. The number of the scan lanes estimated for the set of patterns is iteratively incremented to optimize a throughput of the accelerator. The set of patterns is distributed to the number of the scan lanes as a distribution, and each one of the scan lanes has a predetermined number of engines. A size of a memory space is evaluated that is needed for the distribution to distribute the set of patterns onto the number of scan lanes. | 11-08-2012 |
20130238792 | APPARATUS AND METHOD FOR ANALYZING A NETWORK - An apparatus and method for analyzing a network flow. The apparatus includes a parser for extracting flow identification information from the network flow, a flow metering unit, and a programmable controller and the parser, wherein the parser and flow metering unit are controlled in parallel by the programmable controller, wherein the programmable controller is implemented as state machine, and wherein the state machine includes a transition rule memory, a rule selector, and a state register, wherein the rule selector is configured for receiving an external input signal and an internal input signal from the state register and wherein the rule selector is configured for observing the internal and external input signal by means of the transition rule memory for transition rules and for changing the state of the state register and generation of an output signal having parsing or flow metering instructions when a transition rule applies. | 09-12-2013 |
20140052748 | MATCH ENGINE FOR DETECTION OF MULTI-PATTERN RULES - Methods, systems and computer program products are disclosed for detecting patterns in a data stream that match multi-pattern rules. One embodiment of the invention provides a method of recognizing a specified group of patterns in a data stream. The method comprises identifying a rule for said specified group of patterns in the data stream, and using a first array of finite state machines to scan the data stream for at least some of the patterns in the specified group. For patterns in the specified group that are found in the data stream by the first array of finite state machines, pattern identifiers are sent to a second array of finite state machines. The second array of finite state machines determines if the specified group of patterns is in the data stream in accordance with the identified rule by, at least in part, using said pattern identifiers. | 02-20-2014 |
20140172766 | SCANNING DATA STREAMS IN REAL-TIME AGAINST LARGE PATTERN COLLECTIONS - Embodiments of the disclosure include a method for partitioning a deterministic finite automaton (DFA) into a plurality of groups. The method includes selecting, with a processing device, a subset of the plurality of states and mapping each state of the subset onto a group of the plurality of groups by assigning one or more transition rules associated with each state to a rule line of the group, wherein each rule line is assigned at most two transition rules and an extended address associated with one of the at most two transition rules. The method also includes iteratively processing each state of the subset mapped onto the group by removing the extended address from each rule line in the group with transition rules referring to a current state if the transition rules in the rule line branch within the group. | 06-19-2014 |