Detecting at least one predetermined pattern in stream of symbols

US2016267142A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016267142-A1
Application numberUS-201615160247-A
CountryUS
Kind codeA1
Filing dateMay 20, 2016
Priority dateOct 3, 2014
Publication dateSep 15, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

An apparatus comprises pattern matching circuitry for detecting instances of at least one predetermined pattern of symbols within a subject stream of symbols. Encoding circuitry is provided for generating an encoded stream of symbols from an input stream of symbols, where the encoding circuitry maps a number of consecutive repetitions of a same pattern of one or more symbols detected within the input stream to a single instance of a symbol of the encoded stream and a corresponding repetition indicator indicative of the number of consecutive repetitions. Control circuitry controls the pattern matching circuitry to process the encoded stream of symbols generated by the encoding circuitry as the subject stream.

First claim

Opening claim text (preview).

We claim: 1 . An apparatus comprising: pattern matching circuitry to detect instances of at least one predetermined pattern of symbols within a subject stream of symbols; encoding circuitry to generate an encoded stream of symbols in dependence on an input stream of symbols, wherein the encoding circuitry is configured to map a number of consecutive repetitions of a same pattern of one or more symbols detected within the input stream to a single instance of a symbol of the encoded stream and a corresponding repetition indicator indicative of said number of consecutive repetitions; and control circuitry to control the pattern matching circuitry to process the encoded stream of symbols generated by the encoding circuitry as the subject stream. 2 . The apparatus according to claim 1 , wherein the repetition indicator comprises a value indicative of whether the number of consecutive repetitions is 1 or greater than 1. 3 . The apparatus according to claim 1 , wherein the repetition indicator comprises a count value indicative of said number of consecutive repetitions. 4 . The apparatus according to claim 1 , wherein when processing the encoded stream as the subject stream, the pattern matching circuitry is configured to determine whether the input stream includes one of said at least one predetermined pattern in dependence on whether the repetition indicator corresponding to at least one symbol of the encoded stream satisfies at least one bounding condition. 5 . The apparatus according to claim 1 , wherein the control circuitry is configured to control the pattern matching circuitry to process the input stream of symbols as the subject stream of symbols in a first pass of the pattern matching circuitry based on a first set of at least one predetermined pattern; and the control circuitry is configured to control the pattern matching circuitry to process the encoded stream of components as the subject stream of symbols in a second pass of the pattern matching circuitry based on a second set of at least one predetermined pattern. 6 . The apparatus according to claim 5 , wherein the pattern matching circuitry comprises a plurality of pattern matching units; in the first pass of the pattern matching circuitry, the control circuitry is configured to control a first subset of the pattern matching units to process a current portion of the input stream; and in the second pass of the pattern matching circuitry, the control circuitry is configured to control a second subset of the pattern matching units to process a portion of the encoded stream corresponding to an earlier portion of the input stream than said current portion, in parallel with processing of said current portion of the input stream by said first subset of the pattern matching units. 7 . The apparatus according to claim 5 , wherein the control circuitry has a configuration to control the encoding circuitry to perform further encoding to generate a further stream of symbols in which a number of consecutive repetitions of a pattern of one or more symbols detected in the encoded stream by the pattern matching circuitry in the second pass are mapped to a single symbol representing the pattern and a corresponding repetition indicator indicative of said number of consecutive repetitions, and to control the pattern matching circuitry to process the further stream as the subject stream of symbols in a third pass of the pattern matching circuitry based on a third set of at least one predetermined pattern. 8 . The apparatus according to claim 1 , wherein the pattern matching circuitry is configured to process a group of at least two adjacent symbols of the subject stream in parallel to detect whether the group of adjacent symbols satisfies any of a plurality of query conditions including query conditions corresponding to different alignments of the same predetermined pattern with respect to the group of adjacent symbols. 9 . The apparatus according to claim 1 , wherein the pattern matching circuitry comprises: a plurality of pattern automaton units configured to operate in parallel on corresponding bit portions of a group of one or more adjacent symbols, each pattern automaton unit configured to output a partial match value indicating, based on the corresponding bit portion, which of one or more query conditions representing said at least one predetermined pattern are potentially satisfied by the group of adjacent symbols; and combining circuitry to combine the partial match values generated by a set of pattern automaton units operating on the same group of adjacent symbols to generate a match value indicating any query condition for which the same query condition is determined as potentially satisfied by all of said set of pattern automaton units. 10 . The apparatus according to claim 9 , wherein the partial match value comprises a partial match vector indicating which of a plurality of query conditions are potentially satisfied by the group of adjacent symbols, and the match value comprises a match vector indicating which of the plurality of query conditions were determined as potentially satisfied by all of said set of pattern automaton units. 11 . The apparatus according to claim 9 , wherein each pattern automaton unit comprises storage circuitry to store programmable data indicative of a state machine comprising a plurality of states, each state associated with a partial match value indicating which of the one or more query conditions are potentially satisfied following a sequence of state transitions leading to that state; and in response to the corresponding bit portion, each pattern automaton unit is configured to transition from a current state of the state machine to a subsequent state of the state machine selected based on said corresponding bit portion, and to output the partial match value associated with said subsequent state. 12 . The apparatus according to claim 1 , wherein the symbols of the input stream comprise at least one of ASCII and UNICODE characters. 13 . The apparatus according to claim 1 , wherein the symbols of the input stream comprise portions of data extracted from a network packet. 14 . The apparatus according to claim 1 , comprising processing circuitry configured to perform data processing in response to instructions; and programmable hardware accelerator circuitry comprising the pattern matching circuitry, the encoding circuitry and the control circuitry. 15 . The apparatus according to claim 14 , wherein the pattern matching circuitry is configured to process the subject stream of symbols based on query data defining query conditions programmable by compiler software executed by the processing circuitry. 16 . An apparatus comprising: symbol classifying circuitry to expand symbol identifiers of an input stream of symbols into expanded symbol identifiers including at least one additional bit indicative of whether a corresponding symbol is a member of a corresponding class of symbols; and pattern matching circuitry to detect whether the input stream satisfies at least one query condition using a plurality of bit matching state machines with each bit of the expanded symbol identifiers triggering a transition between two states of a corresponding one of said bit matching state machines, wherein the pattern matching circuitry is configured to identify whether a given query condition is satisfied by the input stream in dependence on the states reached by each of the bit matching state machines. 17 . The apparatus according to claim 16 , wherein the symbol classifying circuit

Assignees

Inventors

Classifications

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016267142A1 cover?
An apparatus comprises pattern matching circuitry for detecting instances of at least one predetermined pattern of symbols within a subject stream of symbols. Encoding circuitry is provided for generating an encoded stream of symbols from an input stream of symbols, where the encoding circuitry maps a number of consecutive repetitions of a same pattern of one or more symbols detected within the…
Who is the assignee on this patent?
Univ Michigan Regents
What technology area does this patent fall under?
Primary CPC classification G06F16/24568. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Sep 15 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).