Decompression engine supporting large match offsets using external memory

US12367142B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-12367142-B1
Application numberUS-202418419630-A
CountryUS
Kind codeB1
Filing dateJan 23, 2024
Priority dateJan 23, 2024
Publication dateJul 22, 2025
Grant dateJul 22, 2025

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.

A decompression apparatus includes a cache memory and a decoder. The decoder is to receive a compressed input data stream including literals and matches. Each literal represents a data value, and each match represents a respective sequence of literals by a respective offset pointing to a respective past occurrence of the sequence of literals. The decoder is to decompress the input data stream by replacing each match with the corresponding past occurrence, so as to produce an output data stream. In replacing a given match with the corresponding past occurrence, the decoder is to (i) when the offset indicates that the past occurrence is cached in the cache memory, retrieve the past occurrence from the cache memory, and (ii) when the offset indicates that the past occurrence is not contained in the cache memory, fetch the past occurrence from an external memory.

First claim

Opening claim text (preview).

The invention claimed is: 1. A decompression method, comprising: receiving a compressed input data stream comprising literals and matches, wherein (i) each literal represents a data value, and (ii) each match represents a respective sequence of literals by a respective offset pointing to a respective past occurrence of the sequence of literals; decompressing the input data stream by replacing each match with the corresponding past occurrence so as to produce an output data stream; and outputting, by a decompression engine, the output data stream to an external memory and to a cache memory, wherein replacing a given match with the corresponding past occurrence comprises: when the offset indicates that the past occurrence is cached in the cache memory, retrieving the past occurrence from the cache memory; and when the offset indicates that the past occurrence is not contained in the cache memory, fetching the past occurrence from the external memory. 2. The method according to claim 1 , and comprising deciding whether or not the past occurrence is cached in the cache memory, by comparing the offset to a threshold. 3. The method according to claim 1 , wherein decompressing the input data stream comprises: detecting the given match in the input data stream and sending a request for the corresponding past occurrence to the external memory; delaying the input data stream at least by an access latency of the external memory; and merging the past occurrence fetched from the external memory into the delayed input data stream, thereby producing the output data stream. 4. The method according to claim 1 , wherein fetching the past occurrence from the external memory comprises communicating with the external memory over a peripheral bus. 5. The method according to claim 1 , wherein fetching the past occurrence from the external memory comprises communicating with the external memory over a network connection. 6. A decompression apparatus, comprising: a cache memory; and a decoder, to: receive a compressed input data stream comprising literals and matches, wherein (i) each literal represents a data value, and (ii) each match represents a respective sequence of literals by a respective offset pointing to a respective past occurrence of the sequence of literals; decompress the input data stream by replacing each match with the corresponding past occurrence, so as to produce an output data stream; and output the output data stream to an external memory and to the cache memory, wherein, in replacing a given match with the corresponding past occurrence, the decoder is to: when the offset indicates that the past occurrence is cached in the cache memory, retrieve the past occurrence from the cache memory; and when the offset indicates that the past occurrence is not contained in the cache memory, fetch the past occurrence from the external memory. 7. The apparatus according to claim 6 , wherein the decoder is to decide whether or not the past occurrence is cached in the cache memory, by comparing the offset to a threshold. 8. The apparatus according to claim 6 , wherein the decoder comprises: a match detector, to detect the given match in the input data stream and send a request for the corresponding past occurrence to the external memory; a delay buffer, to delay the input data stream at least by an access latency of the external memory; and a data merger coupled to an output of the delay buffer, the data merger to merge the past occurrence fetched from the external memory into the delayed input data stream, thereby producing the output data stream. 9. The apparatus according to claim 6 , wherein the decoder is to fetch the past occurrence from the external memory by communicating with the external memory over a peripheral bus. 10. The apparatus according to claim 6 , wherein the decoder is to fetch the past occurrence from the external memory by communicating with the external memory over a network connection. 11. A decompression apparatus, comprising: a cache memory; and a decoder, to: receive a compressed input data stream comprising literals and matches, wherein (i) each literal represents a data value, and (ii) each match comprises an offset value pointing to a corresponding past occurrence of a respective sequence of literals; decompress the input data stream by replacing each match with the corresponding past occurrence, so as to produce an output data stream; and output the output data stream to an external memory and to the cache memory, wherein, in replacing a given match with the corresponding past occurrence, the decoder is to: when the offset indicates that the past occurrence is cached in the cache memory, retrieve the past occurrence from the cache memory; and when the offset indicates that the past occurrence is not contained in the cache memory, fetch the past occurrence from the external memory. 12. A peripheral device, comprising: a host interface, to communicate with a host; and a decompression engine comprising a cache memory, the decompression engine to: receive a compressed input data stream comprising literals and matches, wherein (i) each literal represents a data value, and (ii) each match represents a respective sequence of literals by a respective offset pointing to a respective past occurrence of the sequence of literals; decompress the input data stream by replacing each match with the corresponding past occurrence, so as to produce an output data stream; and output the output data stream to an external memory of the host and to the cache memory, wherein, in replacing a given match with the corresponding past occurrence, the decompression engine is to: when the offset indicates that the past occurrence is cached in the cache memory, retrieve the past occurrence from the cache memory; and when the offset indicates that the past occurrence is not contained in the cache memory, fetch the past occurrence over the host interface from the external memory. 13. The peripheral device according to claim 12 , wherein the decompression engine is to decide whether or not the past occurrence is cached in the cache memory, by comparing the offset to a threshold. 14. The peripheral device according to claim 12 , wherein the decompression engine comprises: a match detector, to detect the given match in the input data stream and send a request for the corresponding past occurrence to the external memory; a delay buffer, to delay the input data stream at least by an access latency of the external memory; and a data merger coupled to an output of the delay buffer, the data merger to merge the past occurrence fetched from the external memory into the delayed input data stream, thereby producing the output data stream. 15. The peripheral device according to claim 12 , wherein the decompression engine is to fetch the past occurrence from the external memory by communicating with the external memory over a peripheral bus. 16. The peripheral device according to claim 12 , wherein the decompression engine is to fetch the past occurrence from the external memory by communicating with the external memory over a network connection.

Assignees

Inventors

Classifications

  • Compressed data · CPC title

  • with dedicated cache, e.g. instruction or stack · CPC title

  • for the decoding process only · CPC title

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

  • H03M7/6005Primary

    Decoder aspects · 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 US12367142B1 cover?
A decompression apparatus includes a cache memory and a decoder. The decoder is to receive a compressed input data stream including literals and matches. Each literal represents a data value, and each match represents a respective sequence of literals by a respective offset pointing to a respective past occurrence of the sequence of literals. The decoder is to decompress the input data stream b…
Who is the assignee on this patent?
Mellanox Technologies Ltd
What technology area does this patent fall under?
Primary CPC classification H03M7/6005. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jul 22 2025 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).