Intelligent data storage and processing using FPGA devices
First Claim
Patent Images
1. A data processing apparatus comprising:
- a processor for communicating with a data storage device to store data in and retrieve data from the data storage device; and
a reconfigurable logic device for offloading a plurality of processing operations from the processor, the reconfigurable logic device comprising a hardware logic template configured as a data processing pipeline, the data processing pipeline comprising a decompression engine and a downstream search engine;
wherein the decompression engine is configured to (1) receive a stream of compressed data retrieved from the data storage device, and (2) perform a decompression operation on the compressed data stream to thereby create a stream of decompressed data;
wherein the search engine is configured to (1) store a data key, the data key being representative of data of interest, (2) receive the stream of decompressed data created by the decompression engine, and (3) perform a search operation by matching the received decompressed data against the data key;
wherein the decompression engine and the search engine are configured to operate in a pipelined manner by performing their respective decompression and search operations simultaneously at hardware processing speeds such that the decompression engine performs the decompression operation on compressed data while at the same time the search engine performs the search operation on decompressed data that was previously decompressed by the decompression engine; and
wherein the processor is configured to send a search request to the reconfigurable logic device, the search request pertaining to the search operation with respect to compressed data that is stored in the data storage device and to be offloaded from the processor to the reconfigurable logic device, the search request comprising a plurality of parameters for controlling the search operation, at least one of the parameters comprising the data key.
4 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatuses for processing data are disclosed, including methods and apparatuses that leverage a reconfigurable logic device to offload decompression and search operations from a processor to thereby enable high speed data searches within data that has been stored in a compressed format.
469 Citations
46 Claims
-
1. A data processing apparatus comprising:
-
a processor for communicating with a data storage device to store data in and retrieve data from the data storage device; and a reconfigurable logic device for offloading a plurality of processing operations from the processor, the reconfigurable logic device comprising a hardware logic template configured as a data processing pipeline, the data processing pipeline comprising a decompression engine and a downstream search engine; wherein the decompression engine is configured to (1) receive a stream of compressed data retrieved from the data storage device, and (2) perform a decompression operation on the compressed data stream to thereby create a stream of decompressed data; wherein the search engine is configured to (1) store a data key, the data key being representative of data of interest, (2) receive the stream of decompressed data created by the decompression engine, and (3) perform a search operation by matching the received decompressed data against the data key; wherein the decompression engine and the search engine are configured to operate in a pipelined manner by performing their respective decompression and search operations simultaneously at hardware processing speeds such that the decompression engine performs the decompression operation on compressed data while at the same time the search engine performs the search operation on decompressed data that was previously decompressed by the decompression engine; and wherein the processor is configured to send a search request to the reconfigurable logic device, the search request pertaining to the search operation with respect to compressed data that is stored in the data storage device and to be offloaded from the processor to the reconfigurable logic device, the search request comprising a plurality of parameters for controlling the search operation, at least one of the parameters comprising the data key. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. An apparatus for processing data received from a mass storage medium, the apparatus comprising:
-
a reconfigurable logic device configured to receive a stream of compressed data from a mass storage medium, wherein the reconfigurable logic device comprises a hardware logic template configured as a data processing pipeline, the data processing pipeline comprising a decompression engine and a downstream search engine; the decompression engine configured to perform a decompression operation on the received compressed data stream to create a stream of decompressed data; the search engine configured to (1) store a data key, the data key being representative of the data of interest, (2) receive streaming decompressed data created by the decompression engine, and (3) perform a search operation within the stream of decompressed data to find data of interest within the stream of decompressed data by matching the received decompressed data against the data key; and wherein the decompression engine and the search engine are configured to operate in a pipelined manner by operating simultaneously such that the decompression engine operates to perform the decompression operation on compressed data while at the same time the search engine operates to perform the search operation on decompressed data that was previously decompressed by the decompression engine. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
-
25. A method for processing data received from a mass storage medium, the method comprising:
-
receiving, by a reconfigurable logic device, a stream of compressed data from a mass storage medium, wherein the reconfigurable logic device comprises a hardware logic template configured as a data processing pipeline, the data processing pipeline comprising a decompression engine and a downstream search engine; the decompression engine performing a decompression operation on the received compressed data stream to create a stream of decompressed data; and the search engine (1) storing a data key, the data key being representative of the data of interest, (2) receiving streaming decompressed data created by the decompression engine, and (3) performing a search operation within the stream of decompressed data to find data of interest within the stream of decompressed data by matching the received decompressed data against the data key; and the decompression engine and the search engine operating in a pipelined manner by operating simultaneously such that the decompression engine performs the decompression operation on compressed data while at the same time the search engine performs the search operation on decompressed data that was previously decompressed by the decompression engine. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46)
-
Specification