Memory circuit for lossless data compression/decompression dictionary storage
First Claim
1. A circuit for use in compressing data character strings according to a dictionary based data compression algorithm, the circuit comprising:
- a memory for storing compressed character strings, the memory including;
(a) a data input for receiving OMEGA-K inputs, each OMEGA-K input containing in part a codeword (OMEGA) and in part a data character string (K);
(b) a plurality of storage locations for storing the OMEGA-K inputs as data entries, each storage location having a corresponding memory address;
(c) means for simultaneously comparing an OMEGA-K input received by the data input with every previously stored data entry to determine if the OMEGA-K input matches any of the stored data entries; and
(d) a plurality of match indication outputs each corresponding to one of the plurality of storage locations, each match indication output indicating a match between an OMEGA-K input and the corresponding data entry;
a match address encoder coupled to the match indication outputs of the memory to derive a new codeword (OMEGA'"'"') equal to the address of the storage location of the stored data entry that matches the OMEGA-K input; and
input generator means, operatively coupled to receive the new codeword (OMEGA'"'"') from the match address encoder, for generating a next OMEGA'"'"'-K'"'"' input containing in part the new codeword (OMEGA'"'"') equal to the address of the storage location of the stored data entry that matches the previous OMEGA-K input and in part a next data character string (K'"'"') and for supplying the next OMEGA'"'"'-K'"'"' input to the data input of the memory.
2 Assignments
0 Petitions
Accused Products
Abstract
Data is compressed/decompressed according to the address location of data entries contained within a dictionary built in a content addressable memory 88. During data compression, character combinations which have not previously occurred within the input data stream are encoded as new data entries within the dictionary. When the character string OMEGA-K fails to match any existing dictionary entry, the address of the data entry (OMEGA) is output as a codeword representing the matched portion of the character string and OMEGA-K are stored in a new address location for later use. In compression, update circuitry 84 allows a memory search and a data write to be performed during the same clock cycle. Compressed data strings are decompressed by using the compressed data characters as addresses for link list traversal of the decompression dictionary. The data entry addressed by the data character is output if it does not require further decompression. If the data entry read from memory contains another codeword, the codeword is fed back to the address decoder as the next dictionary address.
77 Citations
10 Claims
-
1. A circuit for use in compressing data character strings according to a dictionary based data compression algorithm, the circuit comprising:
-
a memory for storing compressed character strings, the memory including; (a) a data input for receiving OMEGA-K inputs, each OMEGA-K input containing in part a codeword (OMEGA) and in part a data character string (K); (b) a plurality of storage locations for storing the OMEGA-K inputs as data entries, each storage location having a corresponding memory address; (c) means for simultaneously comparing an OMEGA-K input received by the data input with every previously stored data entry to determine if the OMEGA-K input matches any of the stored data entries; and (d) a plurality of match indication outputs each corresponding to one of the plurality of storage locations, each match indication output indicating a match between an OMEGA-K input and the corresponding data entry; a match address encoder coupled to the match indication outputs of the memory to derive a new codeword (OMEGA'"'"') equal to the address of the storage location of the stored data entry that matches the OMEGA-K input; and input generator means, operatively coupled to receive the new codeword (OMEGA'"'"') from the match address encoder, for generating a next OMEGA'"'"'-K'"'"' input containing in part the new codeword (OMEGA'"'"') equal to the address of the storage location of the stored data entry that matches the previous OMEGA-K input and in part a next data character string (K'"'"') and for supplying the next OMEGA'"'"'-K'"'"' input to the data input of the memory. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for encoding a series of data character strings according to a dictionary based data compression algorithm, the method comprising the following steps:
-
providing a memory having unique data strings stored as data entries therein; inputting a series of data character strings into the memory; simultaneously comparing individual character strings of said series to every stored data entry in the memory to determine if the individual character string matches or fails to match any of the data entries; in the case of a match, determining an address of the storage location of the data entry that matches the character string deriving a codeword equal to the address of the storage location, and combining the codeword with a next character string in said series; and in the case of no match, storing the character string in the memory at an unused storage location.
-
-
7. A system for storing a linked list data structure according to a dictionary based data compression algorithm, the system comprising:
-
means for inputting an OMEGA-K string consisting of a codeword (OMEGA) followed by a string of characters (K); a content addressable memory for storing a plurality of OMEGA-K strings as data entries at corresponding address locations; means for simultaneously comparing an OMEGA-K string with every previously stored data to determine if the OMEGA-K string matches or fails to match any of the stored data entries; means responsive to a match for substituting the address of the stored data entry that matches the OMEGA-K string as a new codeword (OMEGA'"'"') and means for inputting a new string of characters (K'"'"') to form a new OMEGA'"'"'-K'"'"' string; and means responsive to a non-match for updating the memory to store the OMEGA-K string that fails to match any stored data entries as a new data entry at a new address location, the new data entry comprising an address location of a subset of a character string represented by the codeword (OMEGA) portion of the new data entry. - View Dependent Claims (8)
-
-
9. A circuit for compressing and storing data according to a dictionary based data compression algorithm, the circuit comprising:
-
a content addressable memory including; (a) a data input for receiving OMEGA-K inputs, each OMEGA-K input containing in part a codeword (OMEGA) and in part a data character string (K); (b) a plurality of storage locations for storing the OMEGA-K inputs as data entries, each storage location having a corresponding memory address; (c) a plurality of word select inputs for selecting corresponding storage locations; (d) means for simultaneously comparing an OMEGA-K input received by the data input with multiple stored data entries to determine if the OMEGA-K input matches any of the stored data entries; and (e) a plurality of match indication outputs for corresponding storage locations, individual match indication outputs indicating a match between an OMEGA-K input and a stored data entry;
a match address encoder coupled to the match indication outputs of the content addressable memory, the match address encoder outputting (1) in the case ofa match, a match signal and deriving a new codeword (OMEGA'"'"') equal to the address of the storage location of the stored data entry that matches the OMEGA-K input and (2) in the case of no match, a non-match signal; an address encoder coupled to the match address encoder to activate in response to the non-match signal a word select input of the content addressable memory associated with an unused storage location in order to store the OMEGA-K input at the unused storage location; and concatenating circuit coupled to the match address encoder to produce in response to the match signal a next OMEGA'"'"'-K'"'"' input containing in part the new codeword (OMEGA'"'"') equal to the address of the storage location of the stored data entry that matches the previous OMEGA-K input and in part a next data character string (K'"'"'), the concatenating circuit supplying the next OMEGA'"'"'-K'"'"' input to the data input of the content addressable memory. - View Dependent Claims (10)
-
Specification