IP Library Granted Patent US 11,829,798
Granted Patent B2
US 11,829,798 · App. 17/076,140 · Granted Nov 28, 2023

System and method to improve data compression ratios for fixed block sizes in a smart data accelerator interface device

Inventors: Andrew Butcher (Cedar Park, TX); Shyamkumar Iyer (Cedar Park, TX); Glen Sescila (Austin, TX)
Assignee: Dell Products L.P.
G06F9/5044G06F9/3001G06F9/3877G06F9/4411G06F9/544
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 11,829,798
App. No.
17/076,140
Granted
Nov 28, 2023
Kind
B2
Abstract

An information handling system for compressing data includes multiple compression engines, a source data buffer to provide compression data to the compression engines, at least one destination data buffer to receive compressed data from the compression engines, and a compression engine driver. Each compression engine is configured to provide a different compression function. The compression engine driver directs each compression engine to compress data from the source data buffer, and retrieves select compressed data from a first one of the compression engines from the at least one destination data buffer. The selection is based upon a selection criterion.

Claims (47)

1. An information handling system for compressing data, the information handling system comprising:

a processor;

a memory device including a source data buffer and at least one destination data buffer; and

a smart data accelerator interface (SDXI) hardware accelerator including a plurality of compression engines, each compression engine configured to provide a different compression function;

wherein:

the source data buffer provides compression data to the compression engines;

the at least one destination data buffer receives compressed data from the compression engines; and

the processor instantiates a compression engine driver configured to instruct the SDXI hardware accelerator 1) to process a first command to determine that first data from the source data buffer is a first type of data, to direct each compression engine to compress the first data, and to retrieve select first compressed data from a first one of the compression engines from the at least one destination data buffer, the selection being based upon a first selection criterion, and 2) to process a second command to determine that second data from the source data buffer is the first type of data, to direct the first compression engine to compress the second data, and to retrieve second compressed data from the first compression engine;

wherein, the compression engine driver is further configured to process a third command to determine that third data from the source data buffer is a second type of data, to direct each compression engine to compress the third data, and to retrieve select third compressed data from a second one of the compression engines from the at least one destination data buffer, the selection being based upon a second selection criterion.

2. The information handling system of claim 1 , wherein the different compression functions include different compression algorithms.

3. The information handling system of claim 1 , wherein the different compression functions include a common compression algorithm, and further include different algorithmic settings.

4. The information handling system of claim 3 , wherein the different algorithmic settings include at least one of a different compression level, a different minimum match length, a different maximum match length, a different hash depth, a different match level, and a different static library.

5. The information handling system of claim 1 , wherein the first selection criterion includes selecting the selected compression engine because the compressed data from the selected compression engine has a highest compression ratio.

6. The information handling system of claim 1 , wherein the selection first criterion includes selecting the selected compression engine because the compression of the data from the selected compression engine has a compression ratio that is greater than a compression ratio threshold.

7. The information handling system of claim 6 , wherein the selection first criterion further includes selecting the selected compression engine because the data from the selected compression engine was a first compressed data with the compression ratio that is greater than the compression ratio threshold.

8. The information handling system of claim 1 wherein the selection first criterion includes selecting the selected compression engine because the compression of the data from the selected compression engine has a fastest compression speed.

9. The information handling system of claim 1 , wherein the at least one destination buffer includes a plurality of destination buffers, each destination buffer to receive compressed data from an associated one of the compression engines, and wherein the compression engine driver is further configured to select the first compression engine.

10. A method for compressing data, the method comprising:

providing, on an information handling system, a memory including a source data buffer and at least one destination data buffer;

providing, on the information handling system, a smart data accelerator interface (SDXI) hardware accelerator including a plurality of compression engines, each compression engine configured to provide a different compression function;

instantiating, on a processor of the information handling system, a compression engine driver;

instructing, by the compression engine driver, the SDXI hardware accelerator to process a first command;

processing, by the SDXI hardware accelerator, the first command, wherein in processing the first command, the method further comprises:

determining that first data from a source data buffer of the information handling system is a first type of data;

directing each compression engine to compress the first data; and

retrieving, by the compression engine driver, select compressed data from a first one of the compression engines stored in a destination data buffer of the information handling system, the selection being based upon a first selection criterion; and

processing, by the SDXI hardware accelerator, the second command, wherein in processing the second command, the method further comprises:

determining that second data from the source data buffer is the first type of data;

directing the first compression engine to compress the first data; and

retrieving, by the compression engine driver, select compressed data from the first compression engines stored in the destination data buffer; and

processing, by the SDXI hardware accelerator, a third command, wherein in processing the third command, the method further comprises:

determining that third data from the source data buffer is a second type of data;

directing each compression engine to compress the third data; and

retrieving, by the compression engine driver, select third compressed data from a second one of the compression engines from the at least one destination data buffer, the selection being based upon a second selection criterion.

11. The method of claim 10 , wherein the different compression functions include different compression algorithms.

12. The method of claim 10 , wherein the different compression functions include a common compression algorithm, and further include different algorithmic settings.

13. The method of claim 12 , wherein the different algorithmic settings include at least one of a different compression level, a different minimum match length, a different maximum match length, a different hash depth, a different match level, and a different static library.

14. The method of claim 10 , wherein the different algorithmic settings include at least one of a different compression level, a different minimum match length, a different maximum match length, a different hash depth, a different match level, and a different static library.

15. The method of claim 10 , wherein the first selection criterion includes selecting the selected compression engine because the compression of the data from the selected compression engine has a compression ratio that is greater than a compression ratio threshold.

16. The method of claim 15 , wherein the first selection criterion further includes selecting the selected compression engine because the data from the selected compression engine was a first compressed data with the compression ratio that is greater than the compression ratio threshold.

17. The method of claim 10 wherein the first selection criterion includes selecting the selected compression engine because the compression of the data from the selected compression engine has a fastest compression speed.

18. The method of claim 10 , wherein the at least one destination buffer includes a plurality of destination buffers, each destination buffer to receive compressed data from an associated one of the compression engines, and wherein the compression engine driver is further configured to select the first compression engine.

19. A smart data accelerator interface hardware device for compressing data, the hardware device comprising:

a plurality of compression engines each configured to provide a different compression function;

a source data buffer to provide compression data to the compression engines; and

at least one destination data buffer to receive compressed data from the compression engines;

wherein the hardware device executes code to direct each compression engine 1) to process a first command to determine that first compression data is a first type of data, to compress the first compression data, and to store select first compressed data from a first one of the compression engines to the one destination data buffer, the selection being based upon a first selection criterion, 2) To process a second command to determine that second compression data is the first type of data, to compress the second compression data, and to store compressed data from the first compression engine to the destination data buffer, and 3) to process a third command to determine that third compression data is a second type of data, to compress the second compression data, and to store select second compressed data from a second one of the compression engines to destination data buffer, the selection being based upon a second selection criterion.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2020
From: BUTCHER, ANDREW; IYER, SHYAMKUMAR; SESCILA, GLEN
To: DELL PRODUCTS, LP
Reel/Frame 054128/0014 →