Compression engine with consistent throughput
AssigneeTidal Systems, Inc.
InventorMeng Kun Lee
Life of this patent
Estimating the term…
Abstract
Systems and method provide for consistent throughput of one or more compression engines. Data received from an input stream is stored in a buffer. Data is read from the buffer and distributed to the compression engines. Latency of the compression engines is monitored. If latency exceeds a threshold, data is read from the buffer and written to an output stream simultaneously with reading of data and inputting it to the compression engines. Data from the input stream may be evaluated for likely compressibility and non-compressible data may be written to the output stream bypassing both the buffer and the compression engines.
Claims20
A method for compressing data, the method comprising:
- receiving, by an electronic device, an input data stream;
- determining, by the electronic device, compressibility of data from the input data stream;
- writing, by the electronic device, data from the input data stream determined to be uncompressible data to the output data stream bypassing a buffer and one or more compression engines, wherein a bypass controller selects the uncompressible data to be an input of a multiplexer to couple the uncompressible data with compressed data to be written to the output data stream;
- storing, by the electronic device, data from the input data stream determined to be compressible in the buffer;
- distributing, by the electronic device, first data in the buffer to the one or more compression engines;
- compressing, by the one or more compression engines, the first data to generate compressed first data and writing the compressed first data to an output data stream;
- monitoring, by the electronic device, latency of the one or more compression engines;
- periodically evaluating, by the electronic device, latency of the one or more compression engines within a time window with respect to a threshold by summing, in parallel with the compressing of the first data, latency data for the one or more compression engines in the time window to determine a summed latency;
- determining, by the electronic device, at a first point in time that the summed latency within the time window exceeds the threshold;
- in response to determining that at the first point in time that the summed latency within the time window exceeds the threshold, distributing, by the electronic device, second data in the buffer to both of the one or more compression engines and the output stream such that a first portion of the second data is distributed to the one or more compression engines and a second portion of the second data is written to the output stream and bypasses the one or more compression engines, wherein the percentage of data words selected for bypassing is proportional to an amount by which the summed latency exceeds the threshold;
- and
- compressing, by the one or more compression engines, the first portion of the second data to generate second compressed data and writing the compressed second data to the output data stream.
A system for compressing data, the system comprising:
- a buffer;
- one or more compression engines;
- a control module programmed to
- receive an input data stream;
- determine compressibility of data from the input data stream;
- write data from the input data stream determined to be uncompressible data to the output data stream bypassing the buffer and the one or more compression engines, wherein a bypass controller selects the uncompressible data to be an input of a multiplexer to couple the uncompressible data with compressed data to be written to the output data stream;
- store data from the input data stream determined to be compressible in the buffer;
- distribute first data in the buffer to the one or more compression engines such that the one or more compression engines compress the first data to generate compressed first data and write the compressed first data to an output data stream;
- monitor latency of the one or more compression engines;
- periodically evaluate latency of the one or more compression engines within a time window with respect to a threshold by summing, in parallel with the compressing of the first data, latency data for the one or more compression engines in the time window to determine a summed latency;
- and
- when the summed latency of the one or more compression engines within the time window exceeds the threshold, distribute a first portion of second data in the buffer to both of the one or more compression engines and a second portion of the second data directly to the output data stream bypassing the one or more compression engines, wherein the percentage of data words selected for bypassing is proportional to an amount by which the summed latency exceeds the threshold.
Dependencies are inferred from the claim text.