Hardware apparatuses and methods for data decompression

US10177782B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10177782-B2
Application numberUS-201514757854-A
CountryUS
Kind codeB2
Filing dateDec 26, 2015
Priority dateDec 26, 2015
Publication dateJan 8, 2019
Grant dateJan 8, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines · CPC title

  • H03M7/3082Primary

    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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10177782B2 cover?
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, c…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification H03M7/3082. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jan 08 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).