Systems and methods for performing single and multi threaded searches and complex pattern matching in a solid state drive
First Claim
Patent Images
1. A solid state drive comprising:
- a host interface;
a processing unit; and
a flash memory, the flash memory storing a plurality of data sets;
the processing unit being in communication with the host interface, and the flash memory, the processing unit to receive a query through the host interface, and comprising;
a digital signal processing (DSP) core; and
a micro controller having a pattern buffer and a data engine;
the DSP configured to be controlled by the microcontroller, and;
to process the query to extract a pattern, to load the pattern into the pattern buffer, to access the flash memory, to create a window containing the pattern, to search a data subset from the flash memory for instances of the pattern using a rolling window method to search data subsets of the data sets in response to the query;
to process, using a processing algorithm, data received from the flash memory to form processed data and to generate a result from the search,the processing unit configured to execute a search analysis on the processed data, the processed data comprising unstructured data, the search analysis comprising an analysis selected from the group consisting of;
comparing the processed data to a specified pattern in the window, wherein the comparingcomprises first testing the processed data with a first set of criteria, and second testing the processed data with a second set of criteria in response to the first testing only when the processed data meet the first set of criteria,counting words in the processed data, wherein the counting comprises counting the number of occurrences of a word in the processed data,performing in-line indexing of the processed data,and combinations thereof,wherein the search analysis comprises the comparing of the processed data to the specified pattern, wherein the comparing comprises the first testing of the processed data with the first set of criteria, and the second testing of the processed data with the second set of criteria in response to the first testing only when the processed data meet the first set of criteria,wherein the unstructured data comprises a header and a body,wherein the first testing comprises first testing the header with the first set of criteria, and the second testing comprises second testing the body with the second set of criteria in response to the first testing only when the header meets the first set of criteria.
1 Assignment
0 Petitions
Accused Products
Abstract
System and methods for enhanced data processing and analysis in a storage device, such as a solid state drive (SSD) include an SSD having a data storage and a controller. The data storage stores a plurality of data sets. The controller has a pattern buffer and a data engine. The controller receives a query, processes the query to extract a pattern, loads the pattern into the pattern buffer, and accesses the data storage. The data engine searches a data subset from the data storage for instances of the pattern using a rolling window method. The controller generates a result from the search.
-
Citations
15 Claims
-
1. A solid state drive comprising:
-
a host interface; a processing unit; and a flash memory, the flash memory storing a plurality of data sets; the processing unit being in communication with the host interface, and the flash memory, the processing unit to receive a query through the host interface, and comprising; a digital signal processing (DSP) core; and a micro controller having a pattern buffer and a data engine; the DSP configured to be controlled by the microcontroller, and; to process the query to extract a pattern, to load the pattern into the pattern buffer, to access the flash memory, to create a window containing the pattern, to search a data subset from the flash memory for instances of the pattern using a rolling window method to search data subsets of the data sets in response to the query; to process, using a processing algorithm, data received from the flash memory to form processed data and to generate a result from the search, the processing unit configured to execute a search analysis on the processed data, the processed data comprising unstructured data, the search analysis comprising an analysis selected from the group consisting of; comparing the processed data to a specified pattern in the window, wherein the comparing comprises first testing the processed data with a first set of criteria, and second testing the processed data with a second set of criteria in response to the first testing only when the processed data meet the first set of criteria, counting words in the processed data, wherein the counting comprises counting the number of occurrences of a word in the processed data, performing in-line indexing of the processed data, and combinations thereof, wherein the search analysis comprises the comparing of the processed data to the specified pattern, wherein the comparing comprises the first testing of the processed data with the first set of criteria, and the second testing of the processed data with the second set of criteria in response to the first testing only when the processed data meet the first set of criteria, wherein the unstructured data comprises a header and a body, wherein the first testing comprises first testing the header with the first set of criteria, and the second testing comprises second testing the body with the second set of criteria in response to the first testing only when the header meets the first set of criteria. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of storing data in, and retrieving data from, a solid state drive comprising a host interface, and a flash memory, and a controller having a data engine and a pattern buffer, the method comprising:
-
receiving a query by the solid state drive; storing a pattern derived from the query in the pattern buffer; creating a window containing the pattern; retrieving, by the solid state drive, data from the flash memory in response to the query; processing, by the solid state drive, the retrieved data, using a processing algorithm including a rolling window, to generate processed data, the processed data being unstructured data, the processing algorithm comprising a first search analysis, the first search analysis comprising comparing the unstructured data to a specified pattern in a first rolling window, wherein the processing algorithm further comprises a second search analysis executed concurrently with the first search analysis, the second search analysis comprising comparing the unstructured data to a specified pattern in a second rolling window, wherein the first search analysis is on a header of the processed data, and the second search analysis is on a body of the processed data, and, generating search results. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
Specification