IP Library Granted Patent US 8,456,331
Granted Patent B2
US 8,456,331 · App. 13/087,817 · Granted Jun 4, 2013

System and method of compression and decompression

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,456,331
App. No.
13/087,817
Granted
Jun 4, 2013
Kind
B2
Abstract

The disclosure relates to a system and a method for hardware encoding and decoding according to the Limpel Ziv STAC (LZS) and Deflate protocols based upon a configuration bit.

Claims (35)

1. A decompression engine comprising:

an ingress port configured to receive an input data stream and a decoder configuration bit; and

a decoder configured to decode the data stream according to one of a Lempel Ziv STAC (LZS) protocol and a Deflate protocol based upon the decoder configuration bit.

2. The decompression engine of claim 1 , wherein the decoder comprises:

a memory storing a plurality of search symbols and decoded values, the search symbols derived from the LZS protocol and the Deflate protocol, the decode values associated with the plurality of search symbols and including a plurality of length parameters, a plurality of distance parameters, and a plurality of literal values; and

a plurality of search elements simultaneously comparing a portion of the input data stream to a portion of the search symbols to cause the output of one of the decoded values upon a match, the portion of search symbols selected to be compared to the portion of the input data stream based upon the decoder configuration bit.

3. The decompression engine of claim 2 wherein the decoder further comprises:

a state machine determining the decoded value to output upon a match, the state machine using the matched search symbol and another portion of the input data stream determined from the matched search symbol to determine the decoded value.

4. The decompression engine of claim 2 wherein each search element comprises:

a comparison circuit, a search buffer, and a payload data.

5. The decompression engine of claim 4 wherein each of the plurality of search elements has an index number, the decompression engine outputs the decoded value based upon the index number of the matched search element.

6. The decompression engine of claim 2 wherein the decoder further comprises:

a Huffman decoder configured to decode a dynamic Huffman code dictionary from a portion of the input data stream, the decoded dynamic Huffman code dictionary stored as the plurality of search symbols and the plurality of decoded values.

7. The decompression engine of claim 2 wherein the search elements are tertiary content addressable memories (TCAM).

8. The decompression engine of claim 2 wherein the plurality of search elements comprises a search array, a binary marker appended to the portion of the input data stream being compared to the search elements, the binary marker differentiating the search elements within the search array.

9. The decompression engine of claim 2 wherein the plurality of search elements are configured to simultaneously compare at least twenty-two of the length values when decoding according to the LZS protocol.

10. The decompression engine of claim 2 wherein the plurality of search elements comprises comparison states, including a binary high, a binary low, and a don't care state.

11. A method comprising:

receiving an input data stream having a plurality of input symbols; and

decoding the input data stream by a decoder according to at least one of a Lempel Ziv STAC (LZS) protocol and a Deflate data protocol based upon a decoder configuration bit.

12. The method of claim 11 further comprising:

loading a plurality of search symbols and decoded values, the search symbols derived from the LZS protocol and the Deflate protocol, the decode values associated with the plurality of search symbols, including a plurality of length parameters, a plurality of distance parameters, and a plurality of literal values; and

comparing simultaneously a portion of the input data stream to a portion of the search symbols to output one of the decoded values upon a match, the portion of search symbols loaded to be compared to the portion of the input data stream based upon the decoder configuration bit.

13. The method of claim 12 further comprising:

determining the decoded value to output upon a match using the matched search symbol and another portion of the input data stream determined from the matched search symbol to determine the decoded value.

14. The method of claim 12 wherein at least twenty-two length values are compared simultaneously to a portion of the input data stream when decoding according to LZS.

15. The method of claim 14 wherein comparing simultaneously the portion of the input data stream to the portion of the search symbols is performed with a plurality of search elements.

16. The method of claim 15 wherein the search element comprises: a comparison circuit, a search buffer, and a payload data.

17. The method of claim 15 wherein the search elements are tertiary content addressable memory (TCAM).

18. The method of claim 12 wherein the search elements have an index number, the index number of the matched search element is utilized to output the decoded values.

19. The method of claim 12 further comprising

appending a binary marker to the portion of the input data stream being compared to the search elements, the binary marker differentiating the search elements within the search array.

20. A data compression engine comprising:

an input port receiving an input data stream;

a search engine determining at least one of a repetitive pattern and a non-repetitive pattern from the input data stream, the search engine outputting a string representing the repetitive pattern and a literal character representing the non-repetitive pattern; and an encoder engine receiving the literal character and the string, the encoder encoding the literal character and the string according to one of a Lempel Ziv STAC (LZS) protocol and a Deflate protocol.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CERTIFICATE OF CONVERSION AND CERTIFICATE OF FORMATION Recorded Oct 2, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047185/0422 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
SECURITY AGREEMENT Recorded Aug 17, 2016
From: CAVIUM, INC.; CAVIUM NETWORKS LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 039715/0449 →
MERGER Recorded Jul 21, 2011
From: CAVIUM NETWORKS, INC.
To: CAVIUM, INC.
Reel/Frame 026632/0672 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2011
From: CARLSON, DAVID A.
To: CAVIUM NETWORKS, INC.
Reel/Frame 026433/0071 →