Hardware accelerated compression
First Claim
1. An apparatus for compressing data from a data stream comprising:
- a hardware compressor that is arranged to provide compressed data in response to buffered data, wherein the compressed data is encoded according to a first compression format with a first byte window size;
a logic block that is arranged to;
receive data associated with the data stream, store the data as the buffered data, forward the buffered data to the hardware compressor, receive the compressed data from the hardware compressor, convert the compressed data to a second compression format with a second byte window size that is different from the first byte window size, and provide the converted compressed data; and
a flow controller that is arranged to;
monitor system resources associated with the flow controller, algorithmically compress selected data streams with the flow controller when the resources associated with the flow controller are below a minimum criteria, and forward data streams to the logic block for compression when the resources associated with the flow controller exceed the minimum criteria such that compression is offloaded to the logic block;
wherein the minimum criteria comprises at least one of;
a processor usage criteria, a memory usage criteria, and a network traffic loading criteria.
2 Assignments
0 Petitions
Accused Products
Abstract
A compression system is arranged to use software and/or hardware accelerated compression techniques to increase compression speeds and enhance overall data throughput. A logic circuit is arranged to: receive a data stream from a flow control processor, buffer the data stream, select a hardware compressor (e.g., an ASIC), and forward the data to the selected hardware compressor. Each hardware compressor performs compression on the data (e.g., LZ77), and sends the compressed data back to the logic circuit. The logic circuit receives the compressed data, converts the data to another compressed format (e.g., GZIP), and forwards the converted and compressed data back to the flow control processor. History associated with the data stream can be stored in memory by the flow control processor, or in the logic circuit.
191 Citations
38 Claims
-
1. An apparatus for compressing data from a data stream comprising:
-
a hardware compressor that is arranged to provide compressed data in response to buffered data, wherein the compressed data is encoded according to a first compression format with a first byte window size; a logic block that is arranged to;
receive data associated with the data stream, store the data as the buffered data, forward the buffered data to the hardware compressor, receive the compressed data from the hardware compressor, convert the compressed data to a second compression format with a second byte window size that is different from the first byte window size, and provide the converted compressed data; anda flow controller that is arranged to;
monitor system resources associated with the flow controller, algorithmically compress selected data streams with the flow controller when the resources associated with the flow controller are below a minimum criteria, and forward data streams to the logic block for compression when the resources associated with the flow controller exceed the minimum criteria such that compression is offloaded to the logic block;
wherein the minimum criteria comprises at least one of;
a processor usage criteria, a memory usage criteria, and a network traffic loading criteria. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for compressing data associated with a data stream comprising:
-
receiving data from a flow controller with a logic block when resources associated with the flow controller exceed a minimum criteria, wherein the minimum criteria comprises at least one of;
a processor usage associated with the flow controller, a memory usage associated with the flow controller, and a network traffic loading associated with the flow controller;storing the received data as buffered data; selecting a hardware compressor for processing the buffered data; sending the buffered data from the logic block to the selected hardware compressor; compressing the buffered data according to a first compression format with the selected hardware compressor, wherein the first compression format has a first history window size; retrieving the compressed data from the selected hardware compressor with the logic block; converting the compressed data to a second compression format with the logic block, wherein the second compression format has a second history window size;
assembling a header with the logic block, wherein the header associates the converted compressed data with the data from the flow controller; andsending the header and the converted compressed data to the flow controller. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A system for compressing data associated with a data stream, comprising:
-
a first hardware compressor that is arranged to compress data according to a first compression format; a second hardware compressor that is arranged to compress data according to the first compression format; a flow controller that is arranged to monitor system resources associated with the flow controller, wherein the flow controller is also arranged to offload compression based upon the monitored system resource, wherein the monitored system resources comprise at least one of;
a processor usage in the flow controller, a memory usage in the flow controller, and a network traffic loading effect in the flow controller; anda logic block that includes; a first means for receiving that is arranged to receive data from the flow controller when the monitored process loading exceeds a processing criteria associated with the flow controller; a means for storing the received data as buffered data; a means for selecting one of the first and second hardware compressors for processing the buffered data; a first means for sending that is arranged to send buffered data to the selected hardware compressor; a second means for receiving that is arranged to receive compressed data from the selected hardware compressor, wherein the compressed data is arranged according to a first compression format; a means for converting the compressed data to a second compression format that is different from the first compression format; and a second means for sending that is arranged to send converted compressed data to the flow controller such that the converted compressed data is associated with the data received from the flow controller. - View Dependent Claims (21)
-
-
22. A method for compressing data associated with a flow, comprising:
-
receiving the data with a flow controller; evaluating system resources associated with the flow controller; selecting a software based compression method when sufficient system resources are available in the flow controller; selecting a hardware based compression method when insufficient system resources are available in the flow controller; and compressing the data according to the selected compression method based on the evaluated system resources. - View Dependent Claims (23, 24, 25, 26, 27, 28)
-
-
29. An apparatus for compressing a data stream associated with a flow, comprising:
-
a hardware compressor that is arranged to provide compressed data in response to the data stream; a software compressor that is arranged to provide compressed data in response to the data stream; and a flow controller that is arranged to;
evaluate system resources associated with the flow controller, select the software compressor for compression of the data stream when sufficient system resources are available in the flow controller, and select the hardware compressor for compression when insufficient system resources are available in the flow controller. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38)
-
Specification