IP Library Granted Patent US 8,988,258
Granted Patent B2
US 8,988,258 · App. 13/285,492 · Granted Mar 24, 2015

Hardware compression using common portions of data

Inventors: Jichuan Chang (Sunnyvale, CA); Krishnamurthy Viswanathan (Mountain View, CA)
Assignee: Hewlett-Packard Development Company, L.P.
H03M7/3091
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,988,258
App. No.
13/285,492
Granted
Mar 24, 2015
Kind
B2
Abstract

Methods and devices are provided for data compression. Data compression can include receiving a plurality of data chunks, sampling at least some of the plurality of data chunks extracting a common portion from a number of the plurality of data chunks based on the sampling, and storing a remainder of the plurality of data chunks in memory.

Claims (46)

1. A method for data compression, comprising:

receiving a plurality of data chunks;

sampling at least some of the plurality of data chunks using hardware logic;

extracting a common portion from a number of the plurality of data chunks based on the sampling using hardware logic;

storing one copy of the common portion; and

storing a remainder for each of the plurality of data chunks as compressed data, wherein the remainder does not comprise the common portion.

2. The method of claim 1 , wherein the method further includes buffering the received plurality of data chunks prior to sampling, and wherein sampling is performed on the fly such that latency is not added to storing the remainder of the plurality of data chunks by the sampling or extracting.

3. The method of claim 1 , wherein the method further includes:

determining the common portion based on the sampling; and

determining a length of the common portion based on the sampling.

4. The method of claim 1 , wherein the method further includes:

receiving a respective plurality of data chunks from each of a plurality of blocks;

sampling at least some of the plurality of data chunks from each of the plurality of blocks; and

determining a most common portion of a number of the sampled at least some of the plurality of data chunks.

5. The method of claim 1 , wherein the method further includes associating the one copy with a number of respective remainders of the plurality of data chunks stored as compressed data.

6. The method of claim 1 , wherein the method further includes:

determining a number of additional common portions; and

determining a most common portion based on the common portion and the number of additional common portions.

7. The method of claim 1 , wherein the method further includes determining a common portion across a plurality of blocks.

8. The method of claim 1 , wherein the method further includes:

determining a number of additional common portions; and

determining a longest common portion based on the common portion and the number of additional common portions.

9. The method of claim 1 , wherein the method further includes:

determining a number of common portions;

determining a most common portion based on the number of common portions;

determining a longest common portion based on the number of common portions;

determining a compression ratio for the plurality of data chunks associated with extracting each of the most common portion and the longest common portion; and

extracting one of the most common portion and the longest common portion resulting in a greater compression ratio.

10. A method of accessing a compressed data chunk, comprising:

referencing a portion of a compressed data page, the page including:

a common portion previously extracted from a plurality of data chunks;

a bitmap; and

a length of a remainder of one of the plurality of data chunks, wherein the remainder does not comprise the common portion;

locating the remainder based on the bitmap and the length of the remainder; and

combining the located remainder with the common portion to create one of the plurality of data chunks.

11. The method of claim 10 , wherein the method further includes combining the common portion with all the data chunks in the page in response to the common portion being common to all the data chunks in the page.

12. The method of claim 10 , wherein the method further includes determining a starting bit position of a particular chunk in the page.

13. A device, comprising:

a data compression logic to:

receive, from an input-output path, a data page including a plurality of data chunks, wherein the page is received one data chunk at a time;

extract a first common portion from a first number of the plurality of data chunks while the page is being received;

send a respective remainder of each of the first number of the plurality of data chunks to memory storage in association with the first common portion;

extract a second common portion from a second number of the plurality of data chunks while the page is being received; and

send a respective remainder of each of the second number of the plurality of data chunks to memory storage in association with the second common portion, wherein the remainder does not comprise the second common portion.

14. The device of claim 13 , further comprising data compression logic to send an entirety of the page to memory storage in association with the second common portion if storing the entirety of the page in association with the second common portion uses less memory than storing the entirety of the page in association with the first and second common portions.

15. The device of claim 13 , further comprising data compression logic to send an entirety of the page in association with a first chunk received by the device and a flag if all of the data chunks of the plurality of data chunks are identical.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
CONFIRMATORY LICENSE Recorded Jun 3, 2013
From: HEWLETT PACKARD COMPANY
To: ENERGY, UNITED STATES DEPARTMENT OF
Reel/Frame 030583/0635 →
CONFIRMATORY LICENSE Recorded Feb 8, 2013
From: HEWLETT PACKARD COMPANY
To: UNITED STATES DEPARTMENT OF ENERGY
Reel/Frame 029786/0008 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 3, 2011
From: CHANG, JICHUAN; VISWANATHAN, KRISHNAMURTHY
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 027168/0378 →
Continuity (1)
Related Publication 20130111164A1 · May 2, 2013