Apparatus and method for managing multiple dictionaries in content addressable memory based data compression
First Claim
1. A method for compressing and decompressing data in a memory based dictionary comprising:
- providing a memory device for receiving compressed and uncompressed character strings, the memory including a plurality of storage locations, each having a unique address, for storing character strings as data entries;
defining at least first and second dictionaries within the plurality of storage locations of the memory device;
assigning multiple states to the storage locations of the memory device;
assigning each stored data entry to at least one of the first and second dictionaries; and
generating a codeword representing a data character string, the codeword value associated with a first address in memory of a previously stored data entry that matches the character string and is assigned to one of said dictionaries.
2 Assignments
0 Petitions
Accused Products
Abstract
A class of lossless data compression algorithms use a memory-based dictionary of finite size to facilitate the compression and decompression of data. To reduce the loss in data compression caused by dictionary resets, a standby dictionary is used to store a subset of encoded data entries previously stored in a current dictionary. In a second aspect of the invention, data is compressed/decompressed according to the address location of data entries contained within a dictionary built in a content addressable memory (CAM). In a third aspect of the invention, the minimum memory/high compression capacity of the standby dictionary scheme is combined with the fast single-cycle per character encoding/decoding capacity of the CAM circuit. The circuit uses multiple dictionaries within the storage locations of a CAM to reduce the amount of memory required to provide a high data compression ratio.
-
Citations
20 Claims
-
1. A method for compressing and decompressing data in a memory based dictionary comprising:
-
providing a memory device for receiving compressed and uncompressed character strings, the memory including a plurality of storage locations, each having a unique address, for storing character strings as data entries; defining at least first and second dictionaries within the plurality of storage locations of the memory device; assigning multiple states to the storage locations of the memory device; assigning each stored data entry to at least one of the first and second dictionaries; and generating a codeword representing a data character string, the codeword value associated with a first address in memory of a previously stored data entry that matches the character string and is assigned to one of said dictionaries. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A dictionary based data compression/decompression circuit comprising:
-
a memory device for receiving compressed and uncompressed character strings including means for compressing/decompressing input data to produce encoded/decoded data strings; the memory having multiple storage locations, each storage location having a data field for storing a character string as a data entry, and a status field comprising at least two bits for assigning at least two dictionaries to the data entry; a status register having multiple fields each comprising at least two bits for identifying the dictionaries that have been assigned to the data entries and for identifying data entries that are not assigned to a dictionary; and means for changing the dictionary assignments for each data entry in the memory device by changing the values in the status register fields. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification