Storage of compressed data on random access storage devices
First Claim
1. A method of processing blocks of data received from an input and storing said blocks of data in a memory device so that data in any of said blocks can be retrieved in original form, the blocks of data being of fixed size, comprising the steps of:
- a) partitioning the memory device to provide a first memory space containing a large number of memory locations of a first size, said first size being smaller than said fixed size, each of said memory locations of a first size being capable of storing a compressed version of one of said blocks of data, and to provide a second memory space containing a large number of memory locations of said fixed size, each of said memory locations of a fixed size being capable of storing an uncompressed version of one of said blocks of data;
b) receiving from said input and compressing each of said blocks of data to produce a compressed block, and detecting whether or not each said compressed block is as small as said first size to produce a size indicator;
c) storing each of said blocks of data, so that data in any of said compressed blocks of data can be expanded to original form, either in said first memory space as a compressed block or in said second memory space as an uncompressed block in response to said size indicator produced by said step of detecting.
3 Assignments
0 Petitions
Accused Products
Abstract
A random-access type storage device such as a hard disk or semiconductor memory is formatted to provide multiple partitions of varying block size. The data to be stored is in blocks of fixed size, and these blocks are compressed if the compressed size fits in the block size of a small-block partition in the storage device. If a data block is not compressible to the small block size, it is stored uncompressed in another of the partitions. The memory device also contains a table storing the locations of the blocks in the partitions, so upon recall the block is retrieved from location, decompressed (if it had been compressed), and sent to the CPU. For example, there may be two partitions, one using the block size of the original (uncompressed) data, and the other having a block size corresponding to the typical compressed size of the blocks of data (perhaps one-half the size of the original data blocks). The relative number of blocks in each partition (e.g., the physical storage capacity of each partition) is set at the average ratio of compressible blocks to uncompressible blocks for the compression algorithm used. For example, an algorithm may compress 90% of the blocks to 50% of their original size, so a ratio of the number of blocks in the compressed partition to the number of blocks in the uncompressed partition is selected as 90:10.
234 Citations
25 Claims
-
1. A method of processing blocks of data received from an input and storing said blocks of data in a memory device so that data in any of said blocks can be retrieved in original form, the blocks of data being of fixed size, comprising the steps of:
-
a) partitioning the memory device to provide a first memory space containing a large number of memory locations of a first size, said first size being smaller than said fixed size, each of said memory locations of a first size being capable of storing a compressed version of one of said blocks of data, and to provide a second memory space containing a large number of memory locations of said fixed size, each of said memory locations of a fixed size being capable of storing an uncompressed version of one of said blocks of data; b) receiving from said input and compressing each of said blocks of data to produce a compressed block, and detecting whether or not each said compressed block is as small as said first size to produce a size indicator; c) storing each of said blocks of data, so that data in any of said compressed blocks of data can be expanded to original form, either in said first memory space as a compressed block or in said second memory space as an uncompressed block in response to said size indicator produced by said step of detecting. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. Apparatus for processing blocks of data received from an input and storing said blocks of data in a memory device, so that any data in said blocks of data can be retrieved in original form, the blocks of data being of fixed size, comprising:
-
a) a first memory space in said memory device containing a large number of memory locations of a first size, said first size being smaller than said fixed size, each of said memory locations of a first size storing a compressed version of one of said blocks of data; b) a second memory space in said memory device containing a large number of memory locations of said fixed size, each of said memory locations of said fixed size storing an uncompressed version of one of said blocks of data; c) means for receiving from said input and compressing each of said blocks of data to produce a compressed block, and means for detecting whether or not each said compressed block is as small as said first size and producing a size indicator in response to said detecting; d) and means for storing each of said blocks of data either in said first memory space as a compressed block whereby data of a compressed block can be expanded to original form, or in said second memory space as an uncompressed version, in response to said size indicator produced by said means for detecting. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A digital system comprising:
-
a) a source of data blocks of fixed length; b) storage means having first storage locations of at least one selected size less than said fixed length and second storage locations of said fixed length; c) a data compression unit receiving said data blocks from said source and compressing all of the data in each of said data blocks to produce a compressed block, so that data in any of said data blocks can be expanded to its original form; d) means for detecting whether each of said data blocks is compressed to said selected size by said data compression unit and producing a size indicator in response to said detecting; e) and means responsive to said size indicator for storing a compressed block in one of said first storage locations if said compressed block is as small as one of said at least one selected size, or for storing one of said data blocks in one of said second locations if said compressed block for said one of said data blocks is larger than any one of said at least one selected size. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
-
22. Apparatus receiving blocks of data of fixed size and storing said blocks of data in a memory so that said blocks of data can be retrieved in original form, comprising:
-
a) a first memory space in said memory containing memory locations of a first size, each of said memory locations of a first size storing a compressed version of one of said blocks of data; b) a second memory space in said memory containing memory locations of said fixed size, each of said memory locations of said fixed size storing an uncompressed version of one of said blocks of data; c) means for compressing each of said blocks of data and storing in said memory each of said blocks of data either in one of said first memory spaces as a compressed version which may be expanded to original form or in one said second memory spaces as a uncompressed version; d) a third memory space containing a table of the locations of blocks of data in said first and second memory spaces; e) means for receiving a request for one of said blocks including an identification of said block; f) addressing means for accessing said third memory space in response to said request for finding said identification in said table of locations in said third memory space and determining the location of said one of said blocks in said first or second memory space from said table of locations and retrieving said one of said blocks; g) output means including decompressing means and including means for detecting from said addressing means if said one of said blocks was stored in said first memory space, and, if so, decompressing said one of said blocks by said decompressing means to expand said block to its original form. - View Dependent Claims (23, 24, 25)
-
Specification