System and methods for accelerated data storage and retrieval
DCFirst Claim
1. A method comprising:
- receiving a data stream, having a plurality of data blocks, the data stream in a received form;
selecting, for a data block in the plurality of data blocks, an encoder from a plurality of encoders based, at least in part, on a data parameter associated with the data stream, the data parameter indicating an amount of information loss permissible for the data stream;
compressing using the selected encoder to provide a compressed data block for a compressed data stream, wherein said compressed data stream includes data compression type descriptors indicative of the type of compression utilized for each one of said plurality of data blocks that was compressed; and
transmitting said compressed data stream over an output having an output bandwidth, wherein the combined length of time required for performing said compressing of said plurality of received data blocks and said transmitting said compressed data stream over said output is less than a length of time required for transmitting said received data stream, in uncompressed form, over said output.
0 Assignments
Litigations
0 Petitions
Accused Products
Abstract
Systems and methods for providing accelerated data storage and retrieval utilizing lossless and/or lossy data compression and decompression. A data storage accelerator includes one or a plurality of high speed data compression encoders that are configured to simultaneously or sequentially losslessly or lossy compress data at a rate equivalent to or faster than the transmission rate of an input data stream. The compressed data is subsequently stored in a target memory or other storage device whose input data storage bandwidth is lower than the original input data stream bandwidth. Similarly, a data retrieval accelerator includes one or a plurality of high speed data decompression decoders that are configured to simultaneously or sequentially losslessly or lossy decompress data at a rate equivalent to or faster than the input data stream from the target memory or storage device. The decompressed data is then output at rate data that is greater than the output rate from the target memory or data storage device. The data storage and retrieval accelerator method and system may employed: in a disk storage adapter to reduce the time required to store and retrieve data from computer to disk; in conjunction with random access memory to reduce the time required to store and retrieve data from random access memory; in a display controller to reduce the time required to send display data to the display controller or processor; and/or in an input/output controller to reduce the time required to store, retrieve, or transmit data.
-
Citations
46 Claims
-
1. A method comprising:
-
receiving a data stream, having a plurality of data blocks, the data stream in a received form; selecting, for a data block in the plurality of data blocks, an encoder from a plurality of encoders based, at least in part, on a data parameter associated with the data stream, the data parameter indicating an amount of information loss permissible for the data stream; compressing using the selected encoder to provide a compressed data block for a compressed data stream, wherein said compressed data stream includes data compression type descriptors indicative of the type of compression utilized for each one of said plurality of data blocks that was compressed; and transmitting said compressed data stream over an output having an output bandwidth, wherein the combined length of time required for performing said compressing of said plurality of received data blocks and said transmitting said compressed data stream over said output is less than a length of time required for transmitting said received data stream, in uncompressed form, over said output. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method comprising:
-
receiving a data stream, having a plurality of data blocks, the data stream in a received form; selecting, for a data block in the plurality of data blocks, an encoder from a plurality of encoders based, at least in part, on a data parameter associated with the data stream, the data parameter indicating an amount of information loss permissible for the data stream; compressing using the selected encoder to provide a compressed data block for a compressed data stream, wherein said compressed data stream includes data compression type descriptors indicative of the type of compression utilized for each respective one of said plurality of data blocks that was compressed; and transmitting said compressed data stream over an output having a an output bandwidth, wherein the combined length of time required for performing said compressing said plurality of data blocks and said transmitting said compressed data stream over said output is less than a length of time required for transmitting said received data stream, in uncompressed form, over said output; and decompressing said data stream using a decoder selected based on said data compression type descriptors. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A computer-implemented method for accelerating data transmittal on an output to a data storage device, the output associated with an output transmission rate, comprising:
-
receiving a data stream comprising a plurality of data blocks, the data stream in a received form; receiving a data parameter associated with the data stream that indicates an amount of information loss permissible for the data stream; selecting, for a data block in the plurality of data blocks, a compression technique from a plurality of compression techniques based, at least in part, on the data parameter; compressing the data block using the compression technique to determine a compressed data block; and transmitting, on the output to the data storage device, the compressed data block in a compressed data stream to the data storage device, the compressing and the transmitting together occurring more quickly than a length of time to transmit the data block on the output in the received form. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. A program storage device readable by a central processing unit, tangibly embodying a program of instructions executable by the central processing unit to perform method steps for accelerating data transmittal on an output to a data storage device, the output associated with an output transmission rate, said method steps comprising:
-
receiving a data stream comprising a plurality of data blocks, the data stream in a received form; receiving a data parameter that indicates an amount of information loss permissible for the data stream; selecting a compression technique for a data block from a plurality of compression techniques based, at least in part, on the data parameter; compressing the data block using the compression technique to determine a compressed data block; and outputting for transmission, on the output to the data storage device, the compressed data block in a compressed data stream to the data storage device, the compressing and the transmission together occurring more quickly than a length of time to transmit the data block on the output in the received form. - View Dependent Claims (33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44)
-
-
45. A computer program product, comprising at least one non-transitory storage device readable by a computer, the at least one non-transitory computer readable storage device having embodied thereon computer readable program code for accelerating data transmittal, the computer readable program code comprising:
-
a first computer readable program code for causing the computer to receive a data stream comprising a plurality of data blocks, the data stream in a received form; a second computer readable program code for causing the computer to receive a data parameter that indicates an amount of information loss permissible for the data stream; a third computer readable program code for causing the computer to select a compression technique for a data block from a plurality of compression techniques based, at least in part, on the data parameter; a fourth computer readable program code for causing the computer to compress the data block using the compression technique to determine a compressed data block; and a fifth computer readable program code for causing the computer to transmit, on the output to the data storage device, the compressed data block in a compressed data stream to the data storage device, the compressing and the transmitting together occurring more quickly than a length of time to transmit the data block on the output in the received form.
-
-
46. A device for accelerating data transmittal on an output to a data storage device, the output associated with an output transmission rate, comprising:
-
an input buffer capable of receiving a data stream comprising a plurality of data blocks, the data stream in a received form and temporarily storing the plurality of data blocks; a data accelerator capable of; (i) receiving a data parameter that indicates an amount of information loss permissible for the data stream; (ii) selecting, for a data block, a compression technique from a plurality of compression techniques based, at least in part, on the data parameter; (iii) compressing the data block using the compression technique to determine a compressed data block; and (iv) transmitting, on the output to the data storage device, the compressed data block in a compressed data stream to the data storage device, the compressing and the transmitting together occurring more quickly than a length of time to transmit the data block on the output in the received form.
-
Specification