IP Library Granted Patent US 8,347,023
Granted Patent B2
US 8,347,023 · App. 12/571,939 · Granted Jan 1, 2013

Compression based wear leveling for non-volatile memory

Assignee: Marvell World Trade Ltd.
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,347,023
App. No.
12/571,939
Granted
Jan 1, 2013
Kind
B2
Abstract

The present disclosure includes systems and techniques relating to non-volatile memory. Systems and techniques can include obtaining information to store in a non-volatile memory, the information including a data segment, compressing data within the data segment, including pad data in one or more portions of the data segment based on a compression result attained by the compression, and writing data of the data segment.

Claims (41)

1. A method, comprising:

obtaining information to store in a non-volatile memory, the information comprising a data segment;

compressing data within the data segment;

including pad data in one or more portions of the data segment based on a compression result attained by the compression;

writing data of the data segment; and

cycling through different pad data insertion locations within the data segment to facilitate a distribution of physical write operations to the non-volatile memory.

2. The method of claim 1 , wherein including pad data in one or more portions of the data segment comprises inserting the pad data in the data segment at an insertion location determined from a programming counter associated with a data sector of the non-volatile memory.

3. The method of claim 1 , wherein including pad data in one or more portions of the data segment comprises inserting at least a portion of the pad data between different portions of the compressed data.

4. The method of claim 1 , wherein including pad data in one or more portions of the data segment comprises inserting different portions of the pad data at different locations within the data segment.

5. The method of claim 1 , further comprising:

generating error detection information based on the compressed data; and

writing the error detection information to the non-volatile memory.

6. The method of claim 1 , further comprising:

generating error detection information based on the compressed data and the pad data; and

writing the error detection information to the non-volatile memory.

7. The method of claim 1 , wherein obtaining information to store in the non-volatile memory comprises segmenting the information into multiple data segments.

8. The method of claim 1 , wherein the pad data comprises one or more bits set to a logical state associated with an erased bit state of the non-volatile memory, wherein writing data comprises writing data of the data segment that are indicative of a non-erased bit state to the non-volatile memory.

9. An apparatus, comprising:

a non-volatile memory structure configured to store data; and

a controller, in communication with the non-volatile memory structure, configured to perform operations comprising:

obtaining information to store in the non-volatile memory structure, the information comprising a data segment;

compressing data within the data segment;

including pad data in one or more portions of the data segment based on a compression result attained by the compression;

writing data of the data segment to the non-volatile memory structure; and

cycling through different pad data insertion locations within the data segment to facilitate a distribution of physical write operations to the non-volatile memory structure.

10. The apparatus of claim 9 , wherein including pad data in one or more portions of the data segment comprises inserting the pad data in the data segment at an insertion location determined from a programming counter associated with a data sector of the non-volatile memory structure.

11. The apparatus of claim 9 , wherein including pad data in one or more portions of the data segment comprises inserting at least a portion of the pad data between different portions of the compressed data.

12. The apparatus of claim 9 , wherein including pad data in one or more portions of the data segment comprises inserting different portions of the pad data at different locations within the data segment.

13. The apparatus of claim 9 , wherein the non-volatile memory structure comprises flash memory, wherein the logical state corresponds to logical one.

14. A system comprising:

a non-volatile memory structure configured to store data;

a controller, in communication with the non-volatile memory structure, configured to perform operations comprising:

obtaining information to store in the non-volatile memory structure, the information comprising a data segment;

compressing data within the data segment;

including pad data in one or more portions of the data segment based on a compression result attained by the compression;

writing data of the data segment to the non-volatile memory structure; and

cycling through different pad data insertion locations within a data segment to facilitate a distribution of physical write operations to the non-volatile memory structure; and

a processor, in communication with the controller, the processor configured to communicate with the non-volatile memory structure via the controller.

15. The system of claim 14 , wherein including pad data in one or more portions of the data segment comprises inserting the pad data in the data segment at an insertion location determined from a programming counter associated with a data sector of the non-volatile memory structure.

16. The system of claim 14 , wherein including pad data in one or more portions of the data segment comprises inserting at least a portion of the pad data between different portions of the compressed data.

17. The system of claim 14 , wherein including pad data in one or more portions of the data segment comprises inserting different portions of the pad data at different locations within the data segment.

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 Oct 6, 2009
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 023331/0156 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2009
From: YANG, XUESHI
To: MARVELL SEMICONDUCTOR, INC.
Reel/Frame 023324/0749 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2009
From: MARVELL INTERNATIONAL, LTD.
To: MARVELL WORLD TRADE LTD.
Reel/Frame 023324/0806 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2009
From: MARVELL SEMICONDUCTOR, INC.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 023324/0759 →
Continuity (2)
Provisional Application 61103133 · Oct 6, 2008
Related Publication 20100088464A1 · Apr 8, 2010