Flexible compression header and code generation

US12074618B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12074618-B2
Application numberUS-202017128787-A
CountryUS
Kind codeB2
Filing dateDec 21, 2020
Priority dateDec 21, 2020
Publication dateAug 27, 2024
Grant dateAug 27, 2024

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.

An embodiment of an integrated circuit may comprise a hardware compressor to compress data, the hardware compressor including circuitry to store input data in a history buffer, compute one or more code tables based on the input data, and compute a compression stream header based on the computed one or more code tables. Other embodiments are disclosed and claimed.

First claim

Opening claim text (preview).

What is claimed is: 1. An integrated circuit, comprising: an input/output (I/O) fabric interface; and a hardware compressor coupled to the I/O fabric interface, the hardware compressor including circuitry to: store input data in a history buffer; compute one or more code tables based on the input data; compute a compression stream header based on the computed one or more code tables; and provide multiple modes of operation for the hardware compressor, wherein, in one mode of operation, the circuitry is further to: store an entire set of job data in the history buffer in response to a single job for the hardware compressor where a size of the job data is less than or equal to a size of the history buffer; compute the one or more code tables for the job data in response to the single job; compute the compression stream header based on the computed one or more code tables for the job data in response to the single job; and generate compressed output data for the job data stored in the history buffer based on the computed one or more code tables and the computed compression stream header in response to the single job. 2. The integrated circuit of claim 1 , wherein, in one mode of operation, the circuitry is further to: store the computed one or more code tables and the computed compression stream header to memory in response to a first job for the hardware compressor with job data that exceeds a size of the history buffer; and generate compressed output data for the job data based on the stored one or more code tables and the stored compression stream header in response to a second job for the hardware compressor. 3. The integrated circuit of claim 1 , wherein, in one mode of operation, the circuitry is further to: read statistics from the input data; and compute the one or more code tables and the compression stream header based on the read statistics. 4. The integrated circuit of claim 1 , wherein, in one mode of operation, the circuitry is further to: output the computed one or more code tables without the compression stream header. 5. The integrated circuit of claim 1 , wherein, in one mode of operation, the circuitry is further to: replace a count of zero for a possible token with a non-zero value. 6. The integrated circuit of claim 1 , wherein, in one mode of operation, the circuitry is further to: calculate an expected compressed size for both canned codes and dynamic codes after a first pass; and load a set of code tables and a compression stream header for a second pass that corresponds to either dynamic codes or canned codes based on a lower result of the respective calculated expected compressed sizes. 7. The integrated circuit of claim 1 , wherein the circuitry is further to: set a maximum code length limit based on a user configurable parameter. 8. A method, comprising: storing input data in a history buffer of a hardware compressor; computing one or more code tables by the hardware compressor based on the input data; computing a compression stream header by the hardware compressor based on the computed one or more code tables; and providing multiple modes of operation for the hardware compressor, wherein, in one mode of operation, the method further comprises: storing an entire set of job data in the history buffer in response to a single job for the hardware compressor where a size of the job data is less than or equal to a size of the history buffer; computing the one or more code tables for the job data in response to the single job; computing the compression stream header based on the computed one or more code tables for the job data in response to the single job; and generating compressed output data for the job data stored in the history buffer based on the computed one or more code tables and the computed compression stream header in response to the single job. 9. The method of claim 8 , wherein, in one mode of operation, the method further comprises: storing the computed one or more code tables and the computed compression stream header to memory in response to a first job for the hardware compressor with job data that exceeds a size of the history buffer; and generating compressed output data for the job data based on the stored one or more code tables and the stored compression stream header in response to a second job for the hardware compressor. 10. The method of claim 8 , wherein, in one mode of operation, the method further comprises: reading statistics from the input data; and computing the one or more code tables and the compression stream header based on the read statistics. 11. The method of claim 8 , wherein, in one mode of operation, the method further comprises: outputting the computed one or more code tables without the compression stream header. 12. The method of claim 8 , wherein, in one mode of operation, the method further comprises: replacing a count of zero for a possible token with a non-zero value. 13. The method of claim 8 , wherein, in one mode of operation, the method further comprises: calculating an expected compressed size for both canned codes and dynamic codes after a first pass; and loading a set of code tables and a compression stream header for a second pass that corresponds to either dynamic codes or canned codes based on a lower result of the respective calculated expected compressed sizes. 14. The method of claim 8 , further comprising: setting a maximum code length limit based on a user configurable parameter. 15. An apparatus, comprising: two or more hardware accelerator engines; memory communicatively coupled to the two or more hardware accelerator engines to store one or more jobs for the two or more hardware accelerator engines; and a controller communicatively coupled to the memory and the two or more hardware accelerator engines to control the one or more jobs for the two or more hardware accelerator engines; wherein each of the two or more hardware accelerator engines includes a hardware decompressor and access to a hardware compressor shared among the two or more hardware accelerator engines, the hardware compressor including circuitry to: store input data in a history buffer; compute one or more code tables based on the input data; and compute a compression stream header based on the computed one or more code tables. 16. The apparatus of claim 15 , wherein the circuitry is further to: provide multiple modes of operation for the hardware compressor. 17. The apparatus of claim 16 , wherein, in one mode of operation, the circuitry is further to: store an entire set of job data in the history buffer in response to a single job for the hardware compressor where a size of the job data is less than or equal to a size of the history buffer; compute the one or more code tables for the job data in response to the single job; compute the compression stream header based on the computed one or more code tables for the job data in response to the single job; and generate compressed output data for the job data stored in the history buffer based on the computed one or more code tables and the computed compression stream header in response to the single job. 18. The apparatus of claim 16 , wherein, in one mode of operation, the circuitry is further to: store the computed one or more code tables and the computed compression stream header to the memory in response to a first job for the hardware compressor with job data that exceeds a size of the history buffer; and generate compressed output data for the job dat

Assignees

Inventors

Classifications

  • employing a sliding window, e.g. LZ77 · CPC title

  • Saving or restoring of program or task context · CPC title

  • H03M7/42Primary

    using table look-up for the coding or decoding process, e.g. using read-only memory {(H03M7/4006 takes precedence)} · CPC title

  • H03M7/4043Primary

    Adaptive prefix coding · CPC title

  • H03M7/40Primary

    Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code · 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 US12074618B2 cover?
An embodiment of an integrated circuit may comprise a hardware compressor to compress data, the hardware compressor including circuitry to store input data in a history buffer, compute one or more code tables based on the input data, and compute a compression stream header based on the computed one or more code tables. Other embodiments are disclosed and claimed.
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification H03M7/42. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Aug 27 2024 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).