IP Library Granted Patent US 7,995,759
Granted Patent B1
US 7,995,759 · App. 11/528,786 · Granted Aug 9, 2011

System and method for parallel compression of a single data stream

Assignee: NetApp, Inc.
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 7,995,759
App. No.
11/528,786
Granted
Aug 9, 2011
Kind
B1
Abstract

A system and method provide parallel compression of a single data stream is provided. A data stream entering a storage encryption processor is split by a splitting stage into a plurality of substantially equal segments. Each of the segments is stored in one of a first set of memories in a round robin fashion. Each memory has an associated compression core that reads the segments associated with each memory and compresses the data before storing the compressed segments in a second set of memories. A merging stage reads the compressed segments from the second set of memories and creates a single compressed data stream.

Claims (36)

1. A method for compressing a single data stream, the method comprising:

receiving the single data stream and an associated encryption key;

splitting, by a storage encryption processor of a security appliance, the single data stream into a plurality of segments, wherein the storage encryption processor of the security appliance performs at least one of encrypting data and decrypting the data;

storing, by the storage encryption processor of the security appliance, the plurality of segments in a first set of memories;

reading, by the storage encryption processor of the security appliance, the plurality of segments from the first set of memories to compress the plurality of segments in parallel within the security appliance to achieve parallel compression of the single data stream;

storing, by the storage encryption processor of the security appliance, the plurality of compressed segments in a second set of memories;

merging, by the storage encryption processor of the security appliance, the plurality of compressed segments from the second set of memories into a single compressed data stream; and

in response to merging the plurality of compressed segments into the single compressed data stream by the storage encryption processor, encrypting, by the storage encryption processor of the security appliance, the single compressed data stream utilizing the associated received encryption key.

2. The method of claim 1 further comprising marking an end of each of the plurality of segments before storing the plurality of segments in the first set of memories.

3. The method of claim 1 further comprising marking each of the plurality of compressed segments before storing the plurality of compressed segments in the second set of memories.

4. The method of claim 1 wherein the plurality of segments are stored in the first set of memories using a round robin technique.

5. The method of claim 1 wherein the plurality of compressed segments are merged from the second set of memories into the single compressed data stream using a round robin technique.

6. The method of claim 1 wherein the plurality of segments are substantially equal in length.

7. A system adapted to compress a single data stream within a security appliance, the system comprising:

the security appliance to receive the single data stream and an associated encryption key, wherein the security appliance performs at least one of encrypting data and decrypting data;

a splitting stage of the security appliance configured to split the single data stream into a plurality of segments and further configured to store the plurality of segments in a first set of memories;

a plurality of compression cores of the security appliance, each compression core associated with one of the first set of memories, each compression core configured to read one or more of the plurality of segments from the associated memory and further configured to compress the plurality of segments in parallel within the security appliance to achieve parallel compression of the single data stream before storing the plurality of compressed segments in a second set of memories;

is a merging stage of the security appliance configured to merge the plurality of compressed segments into a single compressed data stream; and

an encryption stage of the security appliance configured to utilize the encryption key to encrypt the single compressed data stream in response to the plurality of compressed segments being merged into the single compressed data stream.

8. The system of claim 7 wherein the plurality of segments are substantially equal in length.

9. The system of claim 7 wherein the splitting stage is further configured to store the plurality of segments in the first set of memories in a round robin order.

10. The system of claim 7 wherein the splitting stage is further configured to mark an end of each of the plurality of segments.

11. The system of claim 10 wherein the splitting stage is further configured to assert one or more control bits in the first set of memories to mark the end of each of the plurality of segments.

12. The system of claim 7 wherein the compression cores are further configured to mark an end of each of the plurality of compressed segments.

13. The system of claim 12 wherein the compression cores are further configured to assert one or more control bits in the second set of memories to mark the end of each of the plurality of compressed segments.

14. A system configured to compress a single data stream, the system comprising:

means for receiving the single data stream and an associated encryption key;

means for splitting, upon entering a storage encryption processor of a security appliance, the single data stream into a plurality of segments, wherein the storage encryption process of the security appliance performs at least one of encrypting data and decrypting data;

means for storing, while at the storage encryption processor of the security appliance, the plurality of segments;

means for reading, while at the storage encryption processor of the security appliance, the plurality of segments to compress the plurality of segments in parallel within the security appliance to achieve parallel compression of the single data stream;

means for storing, while at the storage encryption processor of the security appliance, the plurality of compressed segments;

means for merging, while at the storage encryption processor of the security appliance, the plurality of compressed segments into a single compressed data stream; and

means for encrypting, before exiting the storage encryption processor of the security appliance, the single compressed data stream using the received encryption key in response to merging the plurality of compressed segments into the single compressed data stream.

15. The system of claim 14 further comprising means for marking an end of each of the plurality of segments before it is stored.

16. The system of claim 14 further comprising means for marking each of the plurality of compressed segments.

17. The system of claim 15 wherein the means for storing stores the plurality of segments using a round robin technique.

Assignments (6)
CHANGE OF NAME Recorded Jun 7, 2024
From: NETWORK APPLIANCE, INC.
To: NETAPP, INC.
Reel/Frame 067655/0873 →
CHANGE OF NAME Recorded Nov 18, 2016
From: NETWORK APPLIANCE, INC.
To: NETAPP, INC.
Reel/Frame 040366/0945 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2016
From: TOLFMANS, JOAKIM BENGT LENNART
To: NETWORK APPLIANCE, INC.
Reel/Frame 040351/0659 →
CHANGE OF NAME Recorded Jun 17, 2011
From: NETWORK APPLIANCE, INC.
To: NETAPP, INC.
Reel/Frame 026454/0730 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SERIAL NO. 11/258,786 PREVIOUSLY RECORDED ON REEL 018800 FRAME 0798. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF ASSIGNOR'S INTEREST. Recorded Feb 24, 2010
From: TOLFMANS, JOAKIM BENGT LENNART
To: NETWORK APPLIANCE, INC.
Reel/Frame 023995/0116 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2007
From: TOLFMANS, JOAKIM BENGT LENNART
To: NETWORK APPLIANCE, INC
Reel/Frame 018975/0637 →