IP Library › Granted Patent US 8,892,809
Granted Patent B2
US 8,892,809 · App. 13/279,914 · Granted Nov 18, 2014

Data compression and encoding in a memory system

Inventor: Xueshi Yang (Cupertino, CA)
Assignee: Marvell World Trade Ltd.
G06F12/023G06F2212/401G06F2212/1032G06F12/04G06F12/0246G06F2212/403G06F2212/7201
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,892,809
App. No.
13/279,914
Filed
Oct 24, 2011
Granted
Nov 18, 2014
Kind
B2
Art Unit
2139
USPC
711/206
Abstract

Embodiments provide a method comprising receiving input data comprising a plurality of data sectors; compressing the plurality of data sectors to generate a corresponding plurality of compressed data sectors; splitting a compressed data sector of the plurality of compressed data sectors to generate a plurality of split compressed data sectors; and storing the plurality of compressed data sectors, including the plurality of split compressed data sectors, in a plurality of memory pages of a memory.

Claims (50)

1. A method comprising:

receiving input data comprising a plurality of data sectors;

compressing individual data sectors of the plurality of data sectors to generate a corresponding plurality of compressed data sectors;

splitting an individual compressed data sector of the plurality of compressed data sectors to generate a plurality of split compressed data sectors;

adding additional bits to individual split compressed data sectors of the plurality of split compressed data sectors to generate padded individual split compressed data sectors, wherein the number of additional bits added to the individual split compressed data sectors is based, at least in part, on sizes of individual memory pages of a memory; and

storing each of the padded individual split compressed data sectors in the individual memory pages of the memory.

2. The method of claim 1 , wherein

the splitting of the individual compressed data sector comprises splitting the individual compressed data sector to generate a first split compressed data sector and a second split compressed data sector of the plurality of split compressed data sectors, and

the storing of each of the padded individual compressed data sectors further comprises:

storing the first split compressed data sector in a first memory page of the plurality of memory pages; and

storing the second split compressed data sector in a second memory page of the plurality of memory pages.

3. The method of claim 2 , wherein

the individual compressed data sector is a first compressed data sector, and

storing the first split compressed data sector in the first memory page further comprises:

grouping the first split compressed data sector with a second compressed data sector of the plurality of compressed data sectors; and

storing the first split compressed data sector and the second compressed data sector in the first memory page.

4. The method of claim 3 , wherein storing the first split compressed data sector in the first memory page further comprises:

grouping the first split compressed data sector with the second compressed data sector such that a threshold code rate is achieved while encoding the first split compressed data sector and the second compressed data sector.

5. The method of claim 4 , wherein storing the first split compressed data sector in the first memory page further comprises:

grouping the first split compressed data sector with the second compressed data sector such that the first split compressed data sector and the second compressed data sector, after being encoded, fit in the first memory page.

6. The method of claim 3 , wherein the storing the second split compressed data sector in the second memory page further comprises:

storing the second split compressed data sector in the second memory page such that no other compressed data sector is stored in the second memory page.

7. The method of claim 1 , wherein splitting the individual compressed data sector further comprises:

determining that a compression ratio for the individual compressed data sector exceeds a desired code rate for encoding the individual compressed data sector; and

in response to determining that the compression ratio exceeds the desired code rate, splitting the individual compressed data sector.

8. The method of claim 1 , further comprising:

encoding the plurality of compressed data sectors prior to storing each of the padded individual split compressed data sectors.

9. The method of claim 1 , further comprising:

generating a table that, for each of the plurality of data sectors, indicates one or more of the memory pages of the memory in which a corresponding compressed data sector is stored.

10. The method of claim 9 , wherein

the splitting of the individual compressed data sector comprises splitting the individual compressed data sector to generate a first split compressed data sector and a second split compressed data sector, wherein the individual compressed data sector is generated from a given data sector,

the storing of each of the padded individual split compressed data sectors further comprises:

storing the first split compressed data sector in a first memory page of the memory pages; and

storing the second split compressed data sector in a second memory page of the memory pages, and

the generating the table comprises generating a table such that the table indicates that a particular data sector is stored in the first memory page and the second memory page.

11. The method of claim 1 , further comprising:

generating a table that indicates, for individual memory pages of the memory pages, a number of valid compressed data sectors stored in each of the individual memory pages.

12. The method of claim 11 , further comprising:

changing a particular data sector of the plurality of data sectors, wherein the particular data sector is compressed to generate a first compressed data sector, and wherein the first compressed data sector is stored in a first memory page and a second memory page of the memory pages; and

in response to changing the particular data sector, updating the table such that, for each of the first memory page and the second memory page, the number of valid compressed data sectors stored in each of the individual memory pages is adjusted.

13. A memory system comprising:

a memory module;

a compressor module configured to compress each of a plurality of data sectors to generate a corresponding plurality of individual compressed data sectors;

a splitting module configured to split the individual compressed data sectors to generate a plurality of split compressed data sectors;

a padding module to add additional bits to individual split compressed data sectors of the plurality of split compressed data sectors to generate padded individual split compressed data sectors, wherein the number of additional bits added to the padded individual split compressed data sectors is based, at least in part, on sizes of individual memory pages of the memory module; and

a memory controller configured to store each of the padded individual split compressed data sectors in the individual memory pages of the memory module.

14. The memory system of claim 13 , further comprising:

an encoder module configured to encode the plurality of individual compressed data sectors prior to storing each of the padded individual split compressed data sectors.

15. The memory system of claim 13 , wherein the plurality of split compressed data sectors includes a first split compressed data sector and a second split compressed data sector, the memory system further comprising:

a grouping module configured to group the first split compressed data sector with the second split compressed data sector of the plurality of split compressed data sectors, wherein the memory controller is configured to store the first split compressed data sector and the second split compressed data sector in a particular page of the memory pages.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053475/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: MARVELL INTERNATIONAL LTD.
To: CAVIUM INTERNATIONAL
Reel/Frame 052918/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2020
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 051778/0537 →
LICENSE Recorded Aug 25, 2014
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 033604/0087 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2011
From: MARVELL INTERNATIONAL, LTD.
To: MARVELL WORLD TRADE LTD.
Reel/Frame 027110/0124 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2011
From: YANG, XUESHI
To: MARVELL SEMICONDUCTOR, INC.
Reel/Frame 027110/0069 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2011
From: MARVELL SEMICONDUCTOR, INC.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 027110/0099 →
Continuity (3)
Provisional Application 61406267 · Oct 25, 2010
Provisional Application 61480268 · Apr 28, 2011
Related Publication 20120102295A1 · Apr 26, 2012