Hybrid CAM assisted deflate decompression accelerator
US-9306596-B2 · Apr 5, 2016 · US
US10177782B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10177782-B2 |
| Application number | US-201514757854-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 26, 2015 |
| Priority date | Dec 26, 2015 |
| Publication date | Jan 8, 2019 |
| Grant date | Jan 8, 2019 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Methods and apparatuses relating to data decompression are described. In one embodiment, a hardware processor includes a core to execute a thread and offload a decompression thread for an encoded, compressed data stream comprising a literal code, a length code, and a distance code, and a hardware decompression accelerator to execute the decompression thread to selectively provide the encoded, compressed data stream to a first circuit to serially decode the literal code to a literal symbol, serially decode the length code to a length symbol, and serially decode the distance code to a distance symbol, and selectively provide the encoded, compressed data stream to a second circuit to look up the literal symbol for the literal code from a table, look up the length symbol for the length code from the table, and look up the distance symbol for the distance code from the table.
Opening claim text (preview).
What is claimed is: 1. A hardware processor comprising: a core to execute a thread and offload a decompression thread for an encoded, compressed data stream comprising a literal code, a length code, and a distance code; and a hardware decompression accelerator to execute the decompression thread to: selectively provide the encoded, compressed data stream to a first circuit to serially decode the literal code to a literal symbol, serially decode the length code to a length symbol, and serially decode the distance code to a distance symbol, and selectively provide the encoded, compressed data stream to a second circuit to look up the literal symbol for the literal code from a table, look up the length symbol for the length code from the table, and look up the distance symbol for the distance code from the table, wherein each code of the literal code, the length code, and the distance code has a maximum bit length and the table only includes a mapping of symbols to codes for codes with a bit length less than the maximum bit length. 2. The hardware processor of claim 1 , wherein each mapping of a code to a symbol entry in the table further comprises a bit shift magnitude field for the code to obtain a next code of the encoded, compressed data stream. 3. The hardware processor of claim 1 , wherein the hardware decompression accelerator is to execute the decompression thread to: concurrently provide one of the literal code, the length code, and the distance code to the first circuit and the second circuit, and output a corresponding symbol of the literal symbol, the length symbol, and the distance symbol for the one of the literal code, the length code, and the distance code from a first of the first circuit and the second circuit that determines the corresponding symbol. 4. The hardware processor of claim 1 , wherein the hardware decompression accelerator is to execute the decompression thread to: provide one of the literal code, the length code, and the distance code to the second circuit, and when a corresponding symbol of the literal symbol, the length symbol, and the distance symbol for the one of the literal code, the length code, and the distance code is not in the table, provide the one of the literal code, the length code, and the distance code to the first circuit to determine the corresponding symbol. 5. The hardware processor of claim 1 , wherein each entry in the table for: a literal code comprises a literal field, a bit shift magnitude field, and a length or literal indication field, a length code comprises a base field, an extra bit field, a bit shift magnitude field, and a length or literal indication field, and a distance code comprises a base field, an extra bit field, and a bit shift magnitude field. 6. The hardware processor of claim 1 , wherein the hardware decompression accelerator is to execute the decompression thread to cause a mode switch for the first circuit and the second circuit to be set to a first mode for the distance code and a second mode for either of the length code and the literal code. 7. The hardware processor of claim 1 , further comprising a circuit to receive an output of the first circuit and the second circuit and to store a literal symbol as an element in a first vector and send the first vector from the hardware decompression accelerator to the core when the first vector is full, and to store a distance symbol and length symbol pair as at least one element in a second vector and send the second vector from the hardware decompression accelerator to the core when the second vector is full. 8. The hardware processor of claim 1 , wherein the hardware decompression accelerator is to execute the decompression thread to: selectively provide the encoded, compressed data stream to a third circuit to serially decode the literal code to a literal symbol, serially decode the length code to a length symbol, and serially decode the distance code to a distance symbol, wherein the third circuit is to serially decode codes with a bit length of a first set of bit lengths and the first circuit is to serially decode codes with a bit length of a second, different set of bit lengths. 9. A method comprising: receiving a decompression thread for an encoded, compressed data stream comprising a literal code, a length code, and a distance code at a hardware processor; offloading the decompression thread to a hardware decompression accelerator; and executing the decompression thread with the hardware decompression accelerator to: selectively provide the encoded, compressed data stream to a first circuit to serially decode the literal code to a literal symbol, serially decode the length code to a length symbol, and serially decode the distance code to a distance symbol, and selectively provide the encoded, compressed data stream to a second circuit to look up the literal symbol for the literal code from a table, look up the length symbol for the length code from the table, and look up the distance symbol for the distance code from the table, wherein each code of the literal code, the length code, and the distance code has a maximum bit length and the table only includes a mapping of symbols to codes for codes with a bit length less than the maximum bit length. 10. The method of claim 9 , wherein each mapping of a code to a symbol entry in the table further comprises a bit shift magnitude field for the code to obtain a next code of the encoded, compressed data stream. 11. The method of claim 9 , further comprising executing the decompression thread to: concurrently provide one of the literal code, the length code, and the distance code to the first circuit and the second circuit, and output a corresponding symbol of the literal symbol, the length symbol, and the distance symbol for the one of the literal code, the length code, and the distance code from a first of the first circuit and the second circuit that determines the corresponding symbol. 12. The method of claim 9 , further comprising executing the decompression thread to: provide one of the literal code, the length code, and the distance code to the second circuit, and when a corresponding symbol of the literal symbol, the length symbol, and the distance symbol for the one of the literal code, the length code, and the distance code is not in the table, provide the one of the literal code, the length code, and the distance code to the first circuit to determine the corresponding symbol. 13. The method of claim 9 , further comprising populating each entry in the table for: a literal code with a literal field, a bit shift magnitude field, and a length or literal indication field, a length code with a base field, an extra bit field, a bit shift magnitude field, and a length or literal indication field, and a distance code with a base field, an extra bit field, and a bit shift magnitude field. 14. The method of claim 9 , further comprising executing the decompression thread to cause a mode switch for the first circuit and the second circuit to be set to a first mode for the distance code and a second mode for either of the length code and the literal code. 15. The method of claim 9 , further comprising: storing a literal symbol from either of the first circuit and the second circuit as an element in a first vector and sending the first vector from the hardware decompression accelerator to the hardware processor when the first vector is full, and storing a distance symbol and length symbol pair from either of the first circuit and the second circuit as at least one element in a second vector and sending the second vector fr
Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines · CPC title
Vector coding (for television signals, see H04N19/94) · CPC title
Methods or arrangements to increase the throughput · CPC title
Encoder aspects · CPC title
using a secondary processor, e.g. coprocessor (peripheral processor G06F13/12) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.