System and method for dictionary-based cache-line level code compression for on-chip memories using gradual bit removal
US-2015381201-A1 · Dec 31, 2015 · US
US9374106B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9374106-B2 |
| Application number | US-201314012382-A |
| Country | US |
| Kind code | B2 |
| Filing date | Aug 28, 2013 |
| Priority date | Aug 28, 2013 |
| Publication date | Jun 21, 2016 |
| Grant date | Jun 21, 2016 |
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.
A hardware accelerator receives a request to decompress a data stream that includes multiple deflate blocks and multiple deflate elements compressed according to block-specific compression configuration information. The hardware accelerator identifies a commit point that is based upon an interruption of a first decompression session of the data stream and corresponds to one of the deflate blocks. As such, the hardware accelerator configures a decompression engine based upon the corresponding deflate block's configuration information and, in turn, recommences decompression of the data stream at an input bit location corresponding to the commit point.
Opening claim text (preview).
The invention claimed is: 1. A method utilizing an information handling system for resuming decompression of a data stream, the method comprising: receiving a request to decompress a data stream that includes a plurality of deflate blocks, wherein each of the plurality of deflate blocks includes block-specific compression configuration information and a plurality of deflate elements compressed according to the block-specific compression configuration information; identifying a commit point that is based upon an interruption of a first decompression session of the data stream and corresponds to one of the plurality of deflate blocks, wherein the commit point corresponds to a committed deflate element of the plurality of deflate elements included in a corresponding deflate block that was processed during the first decompression session to generate one or more first output bytes, the processing further comprising: inserting one or more of the one or more first output bytes into an output word; determining that one of the inserted one or more output bytes is a final one of the one or more first output bytes; and generating context state data that indicates the commit point corresponds to the committed deflate element; configuring a decompression engine based upon the corresponding deflate block's block-specific compression information; and commencing a second decompression session of the data stream, using the configured decompression engine, at an input bit location corresponding to the commit point. 2. The method of claim 1 , wherein the plurality of deflate blocks is compressed according to a deflate compression algorithm that includes Huffman encoding, and wherein each of the plurality of deflate blocks is selected from a group consisting of a static deflate block, a dynamic deflate block, and a non-compressed block. 3. The method of claim 1 , wherein the configuring of the decompression engine further comprises: loading the one or more first output bytes into the decompression engine as output history bytes; and using the loaded one or more first output bytes during the second decompression session to generate one or more second output bytes corresponding to one or more subsequent deflate elements that are subsequent to the committed deflate element in the data stream. 4. The method of claim 1 , further comprising: determining that the committed deflate element is a last deflate element included in the corresponding deflate block; and including an end of block indicator in the context state data. 5. The method of claim 1 , wherein the data stream corresponds to a first logical partition executing on a host system that interfaces to a hardware accelerator, the method further comprising: decompressing the data stream during the first decompression session on the hardware accelerator; receiving a different request at the hardware accelerator from the host system to decompress a different data stream corresponding to a second logical partition executing on the host system; interrupting the first decompression session at the hardware accelerator in response to the received different request; and decompressing the different data stream prior to commencing the second decompression session of the data stream. 6. An information handling system comprising: one or more processors; a memory coupled to at least one of the processors; and a hardware accelerator coupled to at least one of the processors, wherein the hardware accelerator performs a set of actions comprising: receiving a request to decompress a data stream that includes a plurality of deflate blocks, wherein each of the plurality of deflate blocks includes block-specific compression configuration information and a plurality of deflate elements compressed according to the block-specific compression configuration information; identifying a commit point that is based upon an interruption of a first decompression session of the data stream and corresponds to one of the plurality of deflate blocks, wherein the commit point corresponds to a committed deflate element of the plurality of deflate elements included in a corresponding deflate block that was processed during the first decompression session to generate one or more first output bytes, the processing further comprising: inserting one or more of the one or more first output bytes into an output word; determining that one of the inserted one or more output bytes is a final one of the one or more first output bytes; and generating context state data that indicates the commit point corresponds to the committed deflate element; configuring a decompression engine based upon the corresponding deflate block's block-specific compression information; and commencing a second decompression session of the data stream, using the configured decompression engine, at an input bit location corresponding to the commit point. 7. The information handling system of claim 6 , wherein the plurality of deflate blocks is compressed according to a deflate compression algorithm that includes Huffman encoding, and wherein each of the plurality of deflate blocks is selected from a group consisting of a static deflate block, a dynamic deflate block, and a non-compressed block. 8. The information handling system of claim 6 , wherein the set of actions performed by the hardware accelerator further comprise: loading the one or more first output bytes into the decompression engine as output history bytes; and using the loaded one or more first output bytes during the second decompression session to generate one or more second output bytes corresponding to one or more subsequent deflate elements that are subsequent to the committed deflate element in the data stream. 9. The information handling system of claim 6 , wherein the set of actions performed by the hardware accelerator further comprise: determining that the committed deflate element is a last deflate element included in the corresponding deflate block; and including an end of block indicator in the context state data. 10. The information handling system of claim 6 , wherein the data stream corresponds to a first logical partition executing on the information handling system, the set of actions performed by the hardware accelerator further comprising: decompressing the data stream during the first decompression session; receiving a different request from the information handling system to decompress a different data stream corresponding to a second logical partition executing on the host system; interrupting the first decompression session in response to the received different request; and decompressing the different data stream prior to commencing the second decompression session of the data stream. 11. A computer program product stored in a non-transitory computer readable storage medium, comprising computer program code that, when executed by an information handling system, causes the information handling system to perform actions comprising: receiving a request to decompress a data stream that includes a plurality of deflate blocks, wherein each of the plurality of deflate blocks includes block-specific compression configuration information and a plurality of deflate elements compressed according to the block-specific compression configuration information; identifying a commit point that is based upon an interruption of a first decompression session of the data stream and corresponds to one of the plurality of deflate blocks, wherein the commit point corresponds to a committed deflate element of the plurality of deflate elements included in a corresponding deflate block that was processed during the first decompression sessi
employing a sliding window, e.g. LZ77 · CPC title
Physics · mapped topic
Physics · mapped topic
Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code · CPC title
Data stream processing; Continuous queries · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.