IP Library Granted Patent US 12,512,853
Granted Patent B2
US 12,512,853 · App. 18/596,549 · Granted Dec 30, 2025

Data compression in a data transform accelerator

Inventors: Pinaki Shankar Chanda (San Diego, CA); Michael Ray Ham (San Jose, CA)
Assignee: MaxLinear, Inc.
H03M7/3088G06F3/0608G06F3/0659G06F3/0679G06F3/0638
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,512,853
App. No.
18/596,549
Granted
Dec 30, 2025
Kind
B2
Abstract

A method includes obtaining, by a data transform accelerator, a first command and first source data associated with the first command. The method also includes generating, by the data transform accelerator, one or more containers using the first command. Each of the one or more containers may have a container size and may be operable to store compressed source data. The method further includes obtaining a mode of operation for a data compression operation. The method also includes performing the data compression operation to a first portion of the first source data using the mode of operation to obtain the compressed source data. The method further includes storing the compressed source data in a first container of the one or more containers.

Claims (40)

1 . A method, comprising:

obtaining, by a data transform accelerator, a first command and first source data associated with the first command;

generating, by the data transform accelerator, one or more containers using the first command, each of the one or more containers having a container size and are operable to store compressed source data;

obtaining a mode of operation for a data compression operation;

performing the data compression operation to a first portion of the first source data using the mode of operation to obtain the compressed source data; and

storing the compressed source data in a first container of the one or more containers.

2 . The method of claim 1 , further comprising determining the container size associated with the one or more containers using metadata included the first command.

3 . The method of claim 1 , wherein the container size is determined based on at least one of an operating system, a platform software, a storage architecture, a performance tuning, and a user input.

4 . The method of claim 3 , wherein the user input comprises an estimate of a number of containers to be used per command.

5 . The method of claim 3 , wherein the performance tuning includes a tuning a data compression parameter, where the data compression parameter is tuned in view of at least one of a container size optimization, a data compression maximization, and a user input.

6 . The method of claim 1 , further comprising:

obtaining a second command and second source data associated with the first command, the first command and the second command included in a session;

performing the data compression operation to a second portion of the first source data and a first portion of the second source data using the mode of operation to obtain second compressed source data; and

storing the second compressed source data in a second container of the one or more containers.

7 . The method of claim 6 , wherein the second container includes one or more dependencies on the first container and the first container includes a frame header comprising compression parameters associated with the data compression operation, such that in response to a request to decompress the second container, the first container is first decompressed and the frame header is used to decompress the second container.

8 . The method of claim 6 , wherein the first command and the second command included in the session one or more share session parameters, the session parameters comprising at least a compression algorithm.

9 . The method of claim 1 , wherein the container size of the one or more containers is uniform.

10 . The method of claim 1 , further comprising generating a report associated with the first source data, the report including an amount of the first source data consumed in the data compression operation.

11 . The method of claim 10 , further comprising transmitting the report to an external device associated with the first source data.

12 . The method of claim 1 , wherein the mode of operation is stateless data compression, and a data decompression operation on the first container may be independent of the data decompression operation on a subsequent container.

13 . The method of claim 1 , further comprising reserving a portion of the first container for a non-volatile memory express (NVMe) protection information (PI) insertion.

14 . A data transform accelerator comprising:

one or more data transform engines including at least a compression engine; and

a processing device operable to:

obtain a first command and first source data associated with the first command;

generate one or more containers using the first command, each of the one or more containers having a container size and are operable to store compressed source data;

obtain a mode of operation for a data compression operation;

perform, using the compression engine, the data compression operation to a first portion of the first source data using the mode of operation to obtain the compressed source data; and

store the compressed source data in a first container of the one or more containers.

15 . The data transform accelerator of claim 14 , wherein the container size of the one or more containers is uniform.

16 . The data transform accelerator of claim 14 , wherein the processing device is further operable to:

obtain a second command and second source data associated with the first command, the first command and the second command included in a session;

perform the data compression operation to a second portion of the first source data and a first portion of the second source data using the mode of operation to obtain second compressed source data; and

store the second compressed source data in a second container of the one or more containers.

17 . The data transform accelerator of claim 14 , wherein the container size is determined based on at least one of an operating system, a platform software, a storage architecture, a performance tuning, and a user input.

18 . The data transform accelerator of claim 17 , wherein the performance tuning includes a tuning a data compression parameter, where tuning the data compression parameter is performed in view of at least one of a container size optimization, a data compression maximization, and a user input.

19 . The data transform accelerator of claim 14 , wherein:

the compression engine is operable to a report associated with the first source data, the report including an amount of the first source data consumed in the data compression operation; and

the processing device is operable to transmit the report to an external device associated with the first source data.

20 . The data transform accelerator of claim 14 , wherein the processing device is further operable to reserve a portion of the first container for subsequent transform operations including at least one of: padding, encryption, authentication tag generation, embedding, and NVMe PI insertion.

Assignments (2)
SECURITY INTEREST Recorded Jun 22, 2026
From: MAXLINEAR, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 075800/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2024
From: CHANDA, PINAKI SHANKAR; HAM, MICHAEL RAY
To: MAXLINEAR, INC.
Reel/Frame 066673/0574 →
Continuity (2)
Provisional Application 63513413 · Jul 13, 2023
Related Publication 20250023579A1 · Jan 16, 2025
References Cited (15)
US 4558302A · Welch · 1985 [cited by applicant]
US 10412002B1 · Richardson · 2019 [cited by examiner]
“LZ4”, GitHub, Retrieved from: https://github.com/lz4/lz4 on Mar. 4, 2024, 8 pgs. [cited by applicant]
“Project-Zipline” opencomputeproject, GitHub, Retrieved from: https://github.com/opencomputeproject/Project-Zipline on Feb. 17, 2024, 5 pgs. [cited by applicant]
Alakuijala et al., “Brotli Compressed Data Format”, RFC Editor, Request for Comments: 7932, Jul. 2016, 128 pgs. [cited by applicant]
Burrows et al., “A Block sorting Lossless Data Compression Algorithm”, SRC Research Report 124, May 10, 1994, 24 pgs. [cited by applicant]
Cleary et al., “Data Compression Using Adaptive Coding and Partial String Matching”, IEEE Transactions on Communications, vol. 32, No. 4, Apr. 1984, pp. 396-402. [cited by applicant]
Deutsch, “DEFLATE Compressed Data Format Specification version 1.3”, RFC Editor, Request for Comments: 1951, May 1996, 17 pgs. [cited by applicant]
Deutsch, “GZIP File Format Specification version 4.3”, RFC Editor, Request for Comments: 1952, May 1996, 12 pgs. [cited by applicant]
Deutsch et al., “ZLIB Compressed Data Format Specification version 3.3”, RFC Editor, Request for Comments: 1950, May 1996, 10 pgs. [cited by applicant]
Collet, “zstd” GitHub, Feb. 2, 2017, Retrieved from: https://github.com/facebook/zstd/wiki on Feb. 8, 2024, 4 pgs. [cited by applicant]
Schneider et al., “PPP LZS-DCP Compression Protocol (LZS-DCP)” RFC Editor, Request for Comments: 1967, Aug. 1996, 18 pgs. [cited by applicant]
Seward, “bzip2 and libbzip2, version 1.0.8: A program and library for data compression”, SourceWare, Version 1.0.8 of Jul. 13, 2019, 38 pgs. [cited by applicant]
Ziv et al., “A Universal Algorithm for Sequential Data Compression”, IEEE Transactions on Information Theory, vol. 23, No. 3, May 1977, pp. 337-343. [cited by applicant]
Ziv et al., “Compression of Individual Sequences via Variable-Length Coding”, IEEE Transactions on Information Theory, vol. 24, No. 5, Sep. 1978, pp. 530-536. [cited by applicant]