IP Library Granted Patent US 8,001,278
Granted Patent B2
US 8,001,278 · App. 11/906,162 · Granted Aug 16, 2011

Network packet payload compression

Assignee: Intel Corporation
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 8,001,278
App. No.
11/906,162
Granted
Aug 16, 2011
Kind
B2
Abstract

Methods and apparatus relating to network packet payload compression/decompression are described. In an embodiment, an uncompressed packet payload may be compressed before being transferred between various components of a computing system. For example, a packet payload may be compressed prior to transfer between network interface cards or controllers (NICs) and storage devices (e.g., including a main system memory and/or cache(s)), as well as between processors (or processor cores) and storage devices (e.g., including main system memory and/or caches). Other embodiments are also disclosed.

Claims (31)

1. A network input/output (I/O) system comprising:

a first hardware logic to receive an uncompressed packet payload and compress the uncompressed packet payload prior to storing the compressed packet payload in a storage device; and

a second hardware logic to decompress the stored packet payload based on one or more bits stored in a descriptor corresponding to the compressed packet payload, wherein the one or more stored bits indicate that the stored packet payload was previously compressed,

wherein the descriptor is to comprise a compression type field to indicate a type of compression utilized by the first hardware logic to compress the uncompressed packet and the first hardware logic is to compress the uncompressed packet payload received from a cache coupled to a processor, wherein the cache comprises one or more of a level 1 (L1) cache, a level 2 (L2) cache, a mid-level cache (MLC), or a last level cache (LLC).

2. The system of claim 1 , wherein the first hardware logic is a network adapter and the uncompressed packet payload is received from a computer network.

3. The system of claim 1 , wherein the first hardware logic is to compress the uncompressed packet payload based on a comparison of a size of the packet payload and a threshold value.

4. The system of claim 1 , wherein the first hardware logic is to compress the uncompressed packet payload based on a type of the packet payload.

5. The system of claim 1 , wherein the cache comprises one or more of a shared cache or a private cache.

6. The system of claim 1 , wherein the descriptor further consists of: a physical address field to indicate a physical address of the corresponding packet payload data, a payload original length field to indicate an original payload length prior to compression, one or more packet status and miscellaneous fields to indicate the status of the corresponding packet and other information, and a payload length after compression field to indicate a length of the payload after compression.

7. The system of claim 1 , wherein the storage device comprises one or more of: a main memory or a cache.

8. The system of claim 7 , wherein the cache comprises one or more of a shared cache or a private cache.

9. The system of claim 7 , wherein the cache comprises one or more of a level 1 (L1) cache, a level 2 (L2) cache, a mid-level cache (MLC), or a last level cache (LLC).

10. A method comprising:

receiving a packet payload;

determining whether to compress or decompress the packet payload based on one or more bits in a stored descriptor associated with the packet payload;

compressing or decompressing the packet payload in response to the determining, wherein the packet payload is to be received from a cache coupled to a processor and wherein the cache comprises one or more of a level 1 (L1) cache, a level 2 (L2) cache, a mid-level cache (MLC), or a last level cache (LLC); and

storing the compressed or decompressed packet payload in a storage device.

11. The method of claim 10 , wherein the compressing is performed only:

after determining that the packet payload is greater than a threshold value; or

based on a type of the packet payload.

12. The method of claim 10 , further comprising receiving the packet payload from a network.

13. The method of claim 10 , further comprising transmitting the decompressed packet to a network.

14. The system of claim 1 , wherein the type of compression is Lempel-Ziv compression.

15. The method of claim 10 , wherein the type of compression is Lempel-Ziv compression.

16. The method of claim 10 , wherein the descriptor is to comprise a compression type field to indicate a type of compression utilized to compress the packet.

17. A non-transitory computer-readable medium to store one or more instructions that when executed by a processor are to:

receive an uncompressed packet payload and compress the uncompressed packet payload prior to storing the compressed packet payload in a storage device; and

decompress the stored packet payload based on one or more bits stored in a descriptor corresponding to the compressed packet payload, wherein the one or more stored bits indicate that the stored packet payload was previously compressed,

wherein the descriptor is to comprise a compression type field to indicate a type of compression utilized to compress the uncompressed packet and wherein the uncompressed packet payload is to be received from a cache coupled to the processor, wherein the cache is to comprise one or more of a level 1 (L1) cache, a level 2 (L2) cache, a mid-level cache (MLC), or a last level cache (LLC).

18. The medium of claim 17 , wherein the uncompressed packet payload is to be compressed based on a comparison of a size of the packet payload and a threshold value.

19. The medium of claim 17 , wherein the uncompressed packet payload is to be compressed based on a type of the packet payload.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2012
From: HUGGAHALLI, RAMAKRISHNA; LARSEN, STEEN K.
To: INTEL CORPORATION
Reel/Frame 028248/0213 →
Continuity (1)
Related Publication 20090089454A1 · Apr 2, 2009