Abstract:
A method of decoding a dynamic Huffman encoded data stream comprising receiving, by a processor, one or more input bits of encoded data from among an encoded data stream, searching, by the processor, a ternary content addressable memory (TCAM) for one or more codewords, accessing, by the processor, a plurality of random access memories (RAMs) that comprise the TCAM and have a maximum number of entries that is less than or equal to one half of two to a power of a maximum number of bits to be searched, reading a value from a first level RAM and using the value to index to a second level RAM, and outputting, by the processor, a codeword length and a decoded codeword value from either the first or second level RAM.
Abstract:
A method of decoding a dynamic Huffman encoded data stream comprising receiving, by a processor, one or more input bits of encoded data from among an encoded data stream, searching, by the processor, a ternary content addressable memory (TCAM) for one or more codewords, accessing, by the processor, a plurality of random access memories (RAMs) that comprise the TCAM and have a maximum number of entries that is less than or equal to one half of two to a power of a maximum number of bits to be searched, reading a value from a first level RAM and using the value to index to a second level RAM, and outputting, by the processor, a codeword length and a decoded codeword value from either the first or second level RAM.
Abstract:
A method of parallel hash-based data compression comprising generating a hash value based on one or more original input data bytes of an incoming data stream using a processor, looking up, by the processor, a hash head comprising a first potential match location identified by the hash value and looking up, by the processor, at least one additional potential match location in a hash chain that comprises a linked list of potential match locations starting with a location indexed by the hash head. The method further comprises checking, by the processor, the at least one potential match location of the hash chain for one or more valid matches in a history buffer random access memory (RAM) and outputting, by the processor, a length and distance pair if a valid match is detected or the original input data byte if a match is undetected.