DATA STOREWIDTH ACCELERATOR
0 Assignments
0 Petitions
Accused Products
Abstract
Data storage controllers and data storage devices employing lossless or lossy data compression and decompression to provide accelerated data storage and retrieval bandwidth. In one embodiment of the invention, a composite disk controller provides data storage and retrieval acceleration using multiple caches for data pipelining and increased throughput. In another embodiment of the invention, the disk controller with acceleration is embedded in the storage device and utilized for data storage and retrieval acceleration.
147 Citations
36 Claims
-
1-18. -18. (canceled)
-
19. A controller for controlling storage and retrieval of data to and from a data storage device, comprising:
-
a data compression/decompression engine for compressing input data for storage to the data storage device and for decompressing output data retrieved from the data storage device, wherein the compressing is performed by a number of encoders in a parallel configuration to produce a plurality of compressed data blocks having a corresponding plurality of associated compression ratios and wherein one of the compressed data blocks is selected and provided as compressed input data based on the compression ratio associated with the selected compressed data block; a first cache, operatively connected to the storage device and the data compression/decompression engine, for temporary storage of (i) compressed output data obtained by reading from the data storage device and (ii) the compressed input data obtained from the data compression/decompression engine for writing to the data storage device, wherein the data compression/decompression engine operates such that at least one of the following conditions is satisfied; (a) the combined length of time required for performing said compressing input data and said writing to the data storage device is less than a length of time required for writing input data to the data storage device; and (b) the combined length of time required for performing said reading from the data storage device and said decompressing output data is less than a length of time required for reading output data from the data storage device; a second cache, operatively connected to the data compression/decompression engine and to a host interface bus, for temporary storage of (i) data that is received from a host system over the host interface bus for compression and storage and (ii) data that is to be sent to the host system over the host interface bus; and a cache manager for controlling the first and second data caches under commands received from the data compression/decompression engine. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26)
-
-
27. A system comprising:
-
an embedded data compression/decompression engine for compressing input data for storage to a storage device and for decompressing output data retrieved from the storage device, wherein the compressing is performed by a number of encoders in a parallel configuration to produce a plurality of compressed data blocks having a corresponding plurality of associated compression ratios and wherein one of the compressed data blocks is selected and provided as compressed input data based on the compression ratio associated with the selected compressed data block; an embedded first cache, operatively connected to the storage device and the data compression/decompression engine, for temporary storage of (i) compressed output data obtained by reading from the storage device and (ii) the compressed input data obtained from the data compression/decompression engine for writing to the storage device, wherein the embedded data compression/decompression engine operates such that at least one of the following conditions is satisfied; (a) the combined length of time required for performing said compressing input data and said writing to the storage device is less than a length of time required for writing input data to the storage device; and (b) the combined length of time required for performing said reading from the storage device and said decompressing output data is less than a length of time required for reading output data from the storage device; an embedded second cache, operatively connected to the data compression/decompression engine and to a host interface bus, for temporary storage of (i) data that is received from a host system over the host interface bus for compression and storage and (ii) data that is to be sent to the host system over the host interface bus; and an embedded cache manager for controlling the first and second data caches under commands received from the data compression/decompression engine. - View Dependent Claims (28, 29, 30, 31, 33)
-
-
32. A storage device controller for controlling storage and retrieval of data to and from a storage device, comprising:
-
an embedded data compression/decompression engine for compressing input data for storage to the storage device and for decompressing output data retrieved from the storage device, wherein the compressing is performed by a number of encoders in a parallel configuration to produce a plurality of compressed data blocks having a corresponding plurality of associated compression ratios and wherein one of the compressed data blocks is selected and provided as compressed input data based on the compression ratio associated with the selected compressed data block; an embedded bi-directional cache for temporary storage of (i) compressed output data obtained by reading from the storage device and (ii) the compressed input data obtained from the data compression/decompression engine for writing to the storage device, wherein the embedded data compression/decompression engine operates such that at least one of the following conditions is satisfied; (a) the combined length of time required for performing said compressing input data and said writing to the storage device is less than a length of time required for writing input data to the storage device; and (b) the combined length of time required for performing said reading from the storage device and said decompressing output data is less than a length of time required for reading output data from the storage device; an embedded cache manager for controlling the bi-directional cache; and an embedded virtual file management system for mapping compressed data blocks stored on the storage device to corresponding uncompressed data blocks. - View Dependent Claims (34)
-
-
35. A system comprising:
-
a data compression/decompression engine for compressing input data for storage to a data storage device and for decompressing output data retrieved from the data storage device, wherein the compressing is performed by a number of encoders in a parallel configuration to produce a plurality of compressed data blocks having a corresponding plurality of associated compression ratios and wherein one of the compressed data blocks is selected and provided as compressed input data based on the compression ratio associated with the selected compressed data block; a first cache, operatively connected to the storage device and the data compression/decompression engine, for temporary storage of (i) compressed output data obtained by reading from the data storage device and (ii) the compressed input data obtained from the data compression/decompression engine for writing to the data storage device, wherein the data compression/decompression engine operates such that (a) the combined length of time required for performing said compressing input data and said writing to the data storage device is less than a length of time required for writing input data to the data storage device; and (b) the combined length of time required for performing said reading from the data storage device and said decompressing output data is less than a length of time required for reading output data from the data storage device; a second cache, operatively connected to the data compression/decompression engine and to a host interface bus, for temporary storage of (i) data that is received from a host system over the host interface bus for compression and storage and (ii) data that is to be sent to the host system over the host interface bus; and a cache manager for controlling the first and second data caches. - View Dependent Claims (36)
-
Specification