IP Library Granted Patent US 11,422,963
Granted Patent B2
US 11,422,963 · App. 17/071,545 · Granted Aug 23, 2022

System and method to handle uncompressible data with a compression accelerator

Inventors: Shyamkumar Iyer (Cedar Park, TX); Andrew Butcher (Cedar Park, TX); Glen Sescila (Austin, TX)
Assignee: Dell Products L.P.
G06F13/38G06F9/45558G06F13/28G06F2213/28
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,422,963
App. No.
17/071,545
Granted
Aug 23, 2022
Kind
B2
Abstract

An information handling system includes a compression client, a memory, and a SDXI hardware module. The compression client issues a compression request for a block of data that is uncompressed. The memory has multiple storage locations identified by addresses, which include a source address and a destination address. The SDXI hardware module performs compression of the block of data to create compressed data of the block of data. The SDXI hardware module determines whether an amount of the compression of the block of data is less than a threshold amount of compression. In response to the amount of the compression being less than the threshold amount of compression, the SDXI hardware module disregards the compressed data of the block of data, and utilizes the uncompressed block of data in a source address. The SDXI hardware module updates metadata for the block of data to indicate that data returned to compression client is uncompressed.

Claims (68)

1. An information handling system comprising:

a compression client to issue a compression request for a block of data, wherein the block of data is uncompressed;

a memory having a plurality of storage locations identified by addresses, the addresses including a source address and a destination address; and

a Smart Data Accelerator Interface (SDXI) hardware module to communicate with the compression client and with the memory, the SDXI hardware module to:

read, via a direct memory access, a descriptor for the block of data to be compressed, wherein the descriptor for the block of data to be compressed is created by a driver;

read, via the direct memory access, the block of data from the source address;

perform compression of the block of data to create compressed data of the block of data;

determine whether an amount of the compression of the block of data is less than a threshold amount of compression;

in response to the amount of the compression being less than the threshold amount of compression:

disregard the compressed data of the block of data; and

utilize the block of uncompressed data in the source address; and

update metadata for the block of data to indicate that data returned to client is uncompressed.

2. The information handling system of claim 1 , wherein the SDXI hardware module further to:

determine whether the destination address space is the same as the source address space; and

if the destination address is in the same address space as the source address, flip a source buffer as a destination buffer without rewriting the block of data.

3. The information handling system of claim 2 , wherein the SDXI hardware module further to:

write, via the direct memory access, a completion indication with the updated metadata indicating that the data is incompressible.

4. The information handling system of claim 3 , wherein the driver further to:

process, by the driver, the updated metadata; and

return, by the driver, the uncompressed data to the compression client.

5. The information handling system of claim 2 , wherein if the destination address is not in the same address space as the source address, the SDXI hardware module to write the block of data to the destination address as uncompressed data.

6. The information handling system of claim 5 , wherein the SDXI hardware module further to:

write, via the direct memory access, a completion indication with the updated metadata indicating that the data is incompressible.

7. The information handling system of claim 6 , further comprising:

process the updated metadata;

and

return the uncompressed data to the compression client.

8. A method comprising:

issuing, by a compression client of an information handling system, a compression request for a block of data, wherein the block of data is uncompressed;

performing, by compression circuitry, a compression of the block of data to create compressed data of the block of data;

determining whether an amount of the compression of the block of data is less than a threshold amount of compression;

in response to the amount of the compression being less than the threshold amount of compression:

disregarding the compressed data of the block of data; and

utilizing the block of uncompressed data in a source address;

updating metadata for the block of data to indicate that data returned to compression client is uncompressed;

determining whether a destination address is in the same address space as the source address; and

if the destination address is in the same address space as the source address, flipping a source buffer as a destination buffer without rewriting the block of data.

9. The method of claim 8 , wherein prior to the performing of the compression, the method further comprises:

creating, by a driver, a descriptor for the block of data to be compressed;

reading, via a direct memory access, the descriptor for the block of data to be compressed; and

reading, via the direct memory access, the block of data from a source address.

10. The method of claim 8 , further comprising:

writing, via the direct memory access, a completion indication with the updated metadata indicating that the data is incompressible.

11. The method of claim 10 , further comprising:

processing, by the driver, the updated metadata; and

returning, by the driver, the uncompressed data to the compression client.

12. The method of claim 8 , further comprising:

if the destination address is not in the same address space as the source address, writing the block of data to the destination address as uncompressed data.

13. The method of claim 12 , further comprising:

writing, via the direct memory access, a completion indication with the updated metadata indicating that the data is incompressible.

14. The method of claim 13 , further comprising:

processing, by the driver, the updated metadata;

and

returning, by the driver, the uncompressed data to the compression client.

15. A non-transitory computer-readable medium including code that when executed performs a method, the method comprising:

issuing a compression request for an uncompressed block of data;

compressing the block of data;

determining whether an amount of size reduction from the uncompressed block of data to the compressed block of data is less than a threshold amount;

if the amount of size reduction is less than the threshold amount, then disregarding the compressed block of data and utilizing the uncompressed block of data in a source address; and

updating metadata for the uncompressed block of data to indicate that data returned is uncompressed;

determining whether a destination address is in the same address space as the source address; and

if the destination address is in the same address space as the source address, flipping a source buffer as a destination buffer without rewriting the block of data.

16. The non-transitory computer-readable medium of claim 15 , wherein prior to the performing of the compression, the method further comprises:

creating a descriptor for the block of data to be compressed;

reading the descriptor for the block of data to be compressed; and

reading the block of data from a source address.

17. The non-transitory computer-readable medium of claim 15 , further comprising:

if the destination address is not in the same address space as the source address, writing the block of data to the destination address as uncompressed data.

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 15, 2020
From: IYER, SHYAMKUMAR; BUTCHER, ANDREW; SESCILA, GLEN
To: DELL PRODUCTS, LP
Reel/Frame 054068/0882 →