Hardware assist for pattern matches
First Claim
1. A method for pattern matching comprising:
- receiving a request for a job at a hardware device from an application, the application being instantiated on a processor of a computing device and the hardware device comprising an ASIC (Application Specific Integrated Circuit) card mounted to the computing device and communicatively coupled to the processor of the computing device, the request comprising a pattern set identification and a data stream identification;
locating a pattern set for the received job based on the pattern set identification;
selecting a data stream based on the data stream identification;
receiving the selected data stream at the ASIC card; and
matching the pattern set against the data stream at the ASIC card.
2 Assignments
0 Petitions
Accused Products
Abstract
An application contacts the Application Specific Integrated Circuit (ASIC) with a request for a job, along with the name or identifier of a data stream to pattern match against, the name or identifier of the pattern set to use, and whether the job is partial or full. Depending on the priority rules set by the ASIC administrator, the ASIC may stop the job it is currently doing and begin work on the new job, or wait until the current job is finished before starting the new job. The ASIC determines if the pattern set for the new job is already stored in the cache, and contacts the calling application if it is not. Once the correct pattern set is loaded, the ASIC begins pattern matching on the requested data stream. The data stream is compared byte by byte with the each of the patterns in the loaded set. The ASIC will return a match to the calling application if a match has been made with one of the patterns in the pattern set.
53 Citations
37 Claims
-
1. A method for pattern matching comprising:
-
receiving a request for a job at a hardware device from an application, the application being instantiated on a processor of a computing device and the hardware device comprising an ASIC (Application Specific Integrated Circuit) card mounted to the computing device and communicatively coupled to the processor of the computing device, the request comprising a pattern set identification and a data stream identification; locating a pattern set for the received job based on the pattern set identification; selecting a data stream based on the data stream identification; receiving the selected data stream at the ASIC card; and matching the pattern set against the data stream at the ASIC card. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system for pattern matching comprising a computing device having:
-
a processor upon which is instantiated an application; and a hardware device that receives a request for a job from the application, the hardware device comprising an ASIC (Application Specific Integrated Circuit) card mounted to the computing device and communicatively coupled to the processor of the computing device, the request comprising a pattern set identification and a data stream identification, where the hardware device locates a pattern set for the received job based on the pattern set identification, selects a data stream based on the data stream identification, receives the selected data stream at the ASIC card, and matches the pattern set against the data stream at the ASIC card. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A computer-readable medium having stored thereon computer-executable instructions for performing a method of pattern matching, the method comprising:
-
receiving a request for a job at a hardware device from an application, the application being instantiated on a processor of a computing device, the hardware device comprising an ASIC (Application Specific Integrated Circuit) card mounted to the computing device and communicatively coupled to the processor of the computing device, the request comprising a pattern set identification and a data stream identification; locating a pattern set for the received job based on the pattern set identification; selecting a data stream based on the data stream identification; receiving the selected data stream at the ASIC card; and matching the pattern set against the data stream at the ASIC card, wherein the request further comprises an application identification, and wherein locating the pattern set for the received job comprises computer-executable instructions for; searching for the pattern set in a cache using the pattern set identification and application identification by the hardware device; requesting the pattern set from the application if the pattern set is not in the cache; receiving the requested pattern set by the hardware device; and storing the received pattern set in the cache. - View Dependent Claims (31, 32, 33)
-
-
34. A hardware device comprising an ASIC (Application Specific Integrated Circuit) card for being mounted to the a computing device and communicatively coupled to a processor of the computing device, the ASIC card comprising:
-
a processor separate from the processor of the computing device, the processor of the ASIC card specialized for matching pattern sets against a data stream, receiving a job request, determining the priority of a job, selecting the data stream, and returning a result; a queue specialized for storing and retrieving the job request; and a cache specialized for storing at least one pattern set, and retrieving a pattern set. - View Dependent Claims (35, 36, 37)
-
Specification