IP Library › Granted Patent US 12,405,893
Granted Patent B2
US 12,405,893 · App. 17/304,656 · Granted Sep 2, 2025

Technology for early abort of compression acceleration

Inventors: James David Guilford (Northborough, MA); Vinodh Gopal (Westborough, MA); Daniel Frederick Cutter (Maynard, MA)
Assignee: Intel Corporation
G06F12/0875G06F12/0238G06F12/0638G06F12/0891G06F12/126G06F2212/401
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,405,893
App. No.
17/304,656
Granted
Sep 2, 2025
Kind
B2
Abstract

An integrated circuit includes a compression accelerator to process a request from software to compress source data into an output file. The compression accelerator includes early-abort circuitry to provide for early abort of compression operations. In particular, the compression accelerator uses a predetermined sample size to compute an estimated size for a portion of the output file. The sample size specifies how much of the source data is to be analyzed before computing the estimated size. The compression accelerator also determines whether the estimated size reflects an acceptable amount of compression, based on a predetermined early-abort threshold. The compression accelerator aborts the request if the estimated size does not reflect the acceptable amount of compression. The compression accelerator may complete the request if the estimated size reflects the acceptable amount of compression. Other embodiments are described and claimed.

Claims (53)

1. A processor package comprising:

a processor core; and

a compression accelerator coupled to the processor core, the compressor accelerator to process a request to compress source data into an output file, wherein the compressor accelerator comprises early-abort circuitry to provide for early abort of compression operations, wherein the early-abort circuitry is to abort a compression job when the early-abort circuitry determines an estimated size for a portion of the output file is greater than or equal to a an input size multiplied by a configurable early abort threshold and generate an error.

2. A processor package according to claim 1 , wherein the compression accelerator is to

complete the request if when the early-abort circuitry does not generate an error.

3. A processor package according to claim 1 , wherein the early-abort threshold is one of ⅛, 2/8, ⅜, 4/8, ⅝, 6/8, and ⅞.

4. A processor package according to claim 1 , wherein the estimated size for the portion of the output file is to be determined as a number of literals plus a number of back references.

5. A processor package according to claim 4 , wherein a literal is one byte and a back reference is two bytes.

6. A processor package according to claim 1 , wherein the early-abort threshold the early-abort circuitry is determine to an estimated size for a portion of the output file is greater than or equal to a an input size multiplied by a configurable early abort threshold when a configurable sample size of input bytes has been processed, wherein the configurable sample size is one of 512 bytes; 1,024 bytes; 2,048 bytes; and 4,096 bytes.

7. A data processing system comprising:

a processing core to execute software; and

a compression accelerator in communication with the processing core, the compression accelerator to process a request from the software to compress source data into an output file, wherein to process a request to compress source data into an output file comprises to:

compute an estimated size for a portion of the output file, wherein a configurable sample size is to specify how much of the source data is to be analyzed before computing the estimated size for the portion of the output file;

determine the estimated size for the portion of the output file does not at least reflect a configurable amount of compression, based on a configurable early-abort threshold; and

abort the request when the estimated size for the portion of the output file does not at least reflect the configurable amount of compression.

8. A data processing system according to claim 7 , wherein:

the compression accelerator comprises early-abort circuitry; and

to process a request to compress source data into an output file further comprises to complete the request if the early-abort circuitry does not predict an abort.

9. A data processing system according to claim 7 , wherein the data processing system comprises an integrated circuit that comprises the processing core and the compression accelerator.

10. A data processing system according to claim 7 , wherein the the configurable sample size is one of 512 bytes; 1,024 bytes; 2,048 bytes; and 4,096 bytes and the configurable early-abort threshold is one of ⅛, 2/8, ⅜, 4/8, ⅝, 6/8, and ⅞.

11. A data processing system according to claim 7 , wherein to compute the estimated size for the portion of the output file comprises to:

analyze a portion of the source data to determine a number of literals and a number of back references that could be used to compress the portion of the source data; and

determine the estimated size for the portion of the output file based on the determined number of literals and the determined number of back references.

12. A data processing system according to claim 11 , wherein to determine the estimated size for the portion of the output file based on the determined number of literals and the determined number of back references comprises to

compute the estimated size for the portion of the output file as one byte for each literal and two bytes for each back reference.

13. A data processing system according to claim 7 , further comprising:

non-volatile storage (NVS) to communicate with the processing core, wherein the NVS comprises the software, and wherein the software is to specify the configurable sample size and the configurable early-abort threshold.

14. A data processing system according to claim 13 , further comprising:

random access memory (RAM) to communicate with the processing core; and

wherein the software is further to:

establish a work pool and a swap pool in the RAM;

store an old page in the work pool, wherein the old page comprises the source data; and

in connection with swapping out the old page from the work pool:

determine whether or not the compression accelerator aborted the request; and

in response to determining that the compression accelerator did not abort the request, save the output file to the swap pool.

15. An apparatus comprising:

a non-transitory machine-accessible medium; and

instructions in the machine-accessible medium which, when executed by a data processing system with a compression accelerator with early-abort circuitry, cause the data processing system to use the compression accelerator to process a request to compress source data into an output file, wherein to process a request to compress source data into an output file by performing a method that comprises:

computing an estimated size for a portion of the output file, wherein a configurable sample size specifies how much of the source data is to be analyzed before computing the estimated size for the portion of the output file;

determining the estimated size for the portion of the output file does not at least reflects a configurable amount of compression, based on a configurable early-abort threshold; and

aborting the request when the estimated size for the portion of the output file does not at least reflect the configurable amount of compression.

16. An apparatus according to claim 15 , wherein the instructions are to specify the configurable sample size and the configurable early-abort threshold.

17. An apparatus according to claim 15 , wherein computing the estimated size for the portion of the output file comprises:

analyzing a portion of the source data to determine a number of literals and a number of back references that could be used to compress the portion of the source data; and

determining the estimated size for the portion of the output file based on the determined number of literals and the determined number of back references.

18. An apparatus according to claim 17 , wherein determining the estimated size for the portion of the output file based on the determined number of literals and the determined number of back references comprises:

computing the estimated size for the portion of the output file as one byte for each literal and two bytes for each back reference.

19. An apparatus according to claim 17 , wherein analyzing the portion of the source data to determine the number of literals and the number of back references that could be used to compress the portion of the source data comprises:

determining the number of literals and the number of back references that would be used to compress the portion of the source data according to a Deflate compression algorithm.

20. An apparatus according to claim 15 , wherein:

to process a request to compress source data into an output file comprises completing the request if the early-abort circuitry does not predict an unacceptably small amount of compression; and

the instructions, when executed, are further to:

after completion of the request, save the output file to a swap pool in random access memory (RAM) in the data processing system, in connection with swapping out the source data from a work pool in the RAM.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2021
From: GUILFORD, JAMES DAVID; GOPAL, VINODH; CUTTER, DANIEL FREDERICK
To: INTEL CORPORATION
Reel/Frame 056716/0102 →
Continuity (1)
Related Publication 20220414014A1 · Dec 29, 2022
References Cited (32)
US 6961473B1 · Mitchell et al. · 2005 [cited by applicant]
US 9531403B2 · Kruus et al. · 2016 [cited by applicant]
US 10366026B1 · Diamant · 2019 [cited by examiner]
US 10579591B1 · Diamant et al. · 2020 [cited by applicant]
US 10942844B2 · Barbou-Des-Places et al. · 2021 [cited by applicant]
US 20130262809A1 · Wegener · 2013 [cited by applicant]
US 20150088945A1 · Kruus · 2015 [cited by examiner]
US 20150161157A1 · Ishizaki · 2015 [cited by applicant]
US 20150301946A1 · Guo · 2015 [cited by examiner]
US 20160283159A1 · Gopal et al. · 2016 [cited by applicant]
US 20170060934A1 · Sapuntzakis · 2017 [cited by examiner]
US 20180011796A1 · Guilford et al. · 2018 [cited by applicant]
US 20190109869A1 · Bailey · 2019 [cited by examiner]
US 20190393888A1 · Bergmann et al. · 2019 [cited by applicant]
US 20200371709A1 · Jean · 2020 [cited by examiner]
US 20220156396A1 · Bednash · 2022 [cited by examiner]
WO 9941668A1 · 1999 [cited by applicant]
WO 2012053015A2 · 2012 [cited by applicant]
Decision to grant a European patent, EP App. No. 22159362.7, Jan. 18, 2024, 2 pages. [cited by applicant]
European Search Report and Search Opinion, EP App. No. 22159362.7, Aug. 30, 2022, 9 pages. [cited by applicant]
Intention to Grant, EP App. No. 22159362.7, Sep. 8, 2023, 6 pages. [cited by applicant]
International Preliminary Report on Patentability, PCT App. No. PCT/US2022/020102, Jan. 4, 2024, 6 pages. [cited by applicant]
European search report and Search Opinion, EP App. No. 24157172.8, Jun. 10, 2024, 09 pages. [cited by applicant]
Andres Lagar-Cavilla et al., “Software-Defined Far Memory in Warehouse-Scale Computers”; Apr. 13-17, 2019; https://www.cs.purdue.edu/homes/csjgwang/cloudb/WSCMemoryASPLOS19.pdf (14 pages). [cited by applicant]
Wikipedia, “Deflate”; https://en.wikipedia.org/wiki/Deflate last edited on Feb. 19, 2021,(8 pages). [cited by applicant]
Wikipedia, “zlib”; https://en.wikipedia.org/wiki/Zliblast edited on Mar. 31, 2021 (4 pages). [cited by applicant]
Wikipedia, “gzip”; https://en.wikipedia.org/wiki/Gzip last edited on Apr. 27, 2021 (4 pages). [cited by applicant]
Intel Corp., “Integrated Cryptographic and Compression Accelerators on Intel®Architecture Platforms,” 2013 (5 pages). [cited by applicant]
James D. Guilford et al., “Fast Computation of Huffman Codes”; Apr. 8, 2016; https://software.intel.com/content/www/us/en/develop/articles/fast-computation-of-huffman-codes.html (9 pages). [cited by applicant]
“Huffman Coding: A CS2 Assignment”; https://www2.cs.duke.edu/csed/poop/huff/info/ downloaded Jun. 8, 2021 (10 pages). [cited by applicant]
ISA/KR, International Search Report and Written Opinion for Int. Appl. No. PCT/US2022/020102 dated Jun. 14, 2022 (9 pages). [cited by applicant]
European Patent Office, Extended European Search Report for Int. Appl. No. 22159362.7 dated Aug. 30, 2022 (9 pages). [cited by applicant]