# US 2013/0159600 A1 · Systems and Methods for Performing Variable Flash Wear Leveling

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2013/0159600 A1
- Document ID: US20130159600A1
- Status: Published application
- Kind: A1
- Application number: 13/330,217
- Filed: 2011-12-19
- Published: 2013-06-20
- Earliest claimed: 2011-12-19
- Assignees: SanDisk Technologies LLC
- Inventors: Itai Dror; Alon Kipnis
- Web page: https://patentgrep.com/patent/US20130159600A1

## CPC

- G06F 12/02: Addressing or allocation; Relocation (program address sequencing G06F9/00; arrangements for selecting an address in a digital store G11C8/00)
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 2212/1036: Life time enhancement
- G06F 2212/401: Compressed data
- G06F 2212/7211: Wear leveling
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods for performing wear leveling are disclosed. In one implementation, a controller partitions a memory block into at least a first partition and a second partition. The controller utilizes the first partition of the memory block for storage of data blocks until the first partition reaches a first end of life condition. After the first partition reaches the first end of life condition, the controller utilizes the first partition for storage of data blocks associated with a compression ratio that is less than a compression threshold until the first portion reaches a second end of life condition. The controller additionally utilizes the second partition for the storage of data blocks until the second partition reaches the first end of life condition.

## Claims

### Claim 1

A method for performing wear leveling, the method comprising:
partitioning a memory block of a storage device into at least a first partition and a second partition;
utilizing the first partition of the memory block for storage of data blocks until the first partition reaches a first end of life condition;
after the first partition reaches the first end of life condition:
utilizing the first partition for storage of data blocks associated with a compression ratio that is less than a compression threshold until the first partition reaches a second end of life condition; and
utilizing the second partition for the storage of data blocks until the second partition reaches the first end of life condition.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first end of life condition is an endurance threshold associated with a partition of the memory block.

### Claim 3 (depends on 2)

The method of claim 2, wherein the endurance threshold is based on a number of write and erase cycles enabled by an error correction code associated with a partition of the memory block.

### Claim 4 (depends on 1)

The method of claim 1, wherein utilizing the first partition for storage of data blocks associated with a compression ratio that is less than a compression threshold comprises:
receiving a request to store data blocks in the storage device;
determining a compression ratio associated with the data blocks;
determining whether the compression ratio associated with the data blocks is less than a compression threshold associated with the first partition; and
storing the data blocks in the first partition in response to determining the compression ratio associated with the data blocks is less than the compression threshold associated with the first partition.

### Claim 5 (depends on 1)

The method of claim 1, wherein utilizing the second partition for the storage of data blocks comprises:
receiving a request to store data blocks in the storage device;
determining a compression ratio associated with the data blocks;
determining whether the compression ratio associated with the data blocks is less than a compression threshold associated with the first partition; and
storing the data blocks in the second partition in response to determining the compression ratio associated with the data blocks is not less than the compression threshold associated with the first partition.

### Claim 6 (depends on 1)

The method of claim 1, wherein the first partition is associated with a first wear level until the first partition reaches the first end of life condition, the first wear level indicating that all data blocks may be written to the first partition;
wherein the first partition is associated with a second wear level after the first partition reaches the first end of life condition but before the first partition reaches the second end of life condition, the second wear level indicating that only data blocks associated with a compression ratio that is less than the compression threshold may be written to the first partition; and
wherein the first partition is associated with a third wear level after the first partition reaches the second end of life condition, the third wear level indicating that no data blocks may be written to the first partition.

### Claim 7

A storage system comprising:
a non-volatile memory; and
a processor in communication with the non-volatile memory, the processor configured to:
partition a memory block of the non-volatile memory into at least a first partition and a second partition;
utilize the first partition of the memory block to store data blocks until the first partition reaches a first end of life condition;
after the first partition reaches the first end of life condition:
utilize the first partition for storage of data blocks associated with a compression ratio that is less than a compression threshold until the first partition reaches a second end of life condition; and
utilize the second partition for the storage of data blocks until the second partition reaches the first end of life condition.

### Claim 8 (depends on 7)

The storage system of claim 7, wherein the first end of life condition is an endurance threshold that is based on a number of write and erase cycles enabled by an error correction code associated with a partition of the memory block.

### Claim 9 (depends on 7)

The storage system of claim 7, wherein to utilize the first partition for storage of data blocks associated with a compression ratio that is less than a compression threshold, the processor is further configured to:
receive a request to store data blocks in the storage device;
determine a compression ratio associated with the data blocks;
determine whether the compression ratio associated with the data blocks is less than a compression threshold associated with the first partition; and
store the data blocks in the first partition in response to determining the compression ratio associated with the data blocks is less than the compression threshold associated with the first partition.

### Claim 10 (depends on 7)

The storage system of claim 7, wherein to utilize the first partition for storage of data blocks associated with a compression ratio that is less than a compression threshold, the processor is further configured to:
receive a request to store data blocks in the storage device;
determine a compression ratio associated with the data blocks;
determine whether the compression ratio associated with the data blocks is less than a compression threshold associated with the first partition; and
store the data blocks in the second partition in response to determining the compression ratio associated with the data blocks is not less than the compression threshold associated with the first partition.

### Claim 11

A method for performing wear leveling, the method comprising:
associating a first memory block of a storage device with a first compression threshold;
associating a second memory block of the storage device with a second compression threshold, wherein the second compression threshold is less than the first compression threshold;
receiving a request to store data blocks in the storage device;
determining a compression ratio associated with the data blocks; and
determining whether to store the data blocks in the first memory block or the second memory block based on the compression ratio associated with the data blocks and the first and second compression thresholds.

### Claim 12 (depends on 11)

The method of claim 11, further comprising:
storing the data blocks in the second memory block after determining that the compression ratio associated with the data blocks is not less than the first compression threshold.

### Claim 13 (depends on 11)

The method of claim 11, further comprising:
storing the data blocks in the first memory block after determining that the compression ratio associated with the data blocks is less than the first compression threshold.

### Claim 14 (depends on 12)

The method of claim 12, further comprising:
storing the data blocks in a third memory block of the storage device after determining that the compression ratio associated with the data blocks is not less than the first compression threshold and determining that the compression ratio associated with the data blocks is not less than the second compression threshold.

### Claim 15 (depends on 11)

The method of claim 11, further comprising:
determining that the first memory block has reached an end of life condition; and
associating the first memory block with a third compression threshold, wherein the third compression threshold is less than the first compression threshold.

### Claim 16 (depends on 11)

The method of claim 11, further comprising:
determining that the second memory block has reached an end of life condition; and
associating the second memory block with a third compression threshold, wherein the third compression threshold is equal to the first compression threshold.

### Claim 17

A storage device comprising:
a non-volatile memory; and
a processor in communication with the non-volatile memory, the processor configured to:
associate a first memory block of the non-volatile memory with a first compression threshold;
associate a second memory block of the non-volatile memory with a second compression threshold, wherein the second compression threshold is less than the first compression threshold;
receive a request to store data blocks in the storage device;
determine a compression ratio associated with the data blocks; and
determine whether to store the data blocks in the first memory block or the second memory block based on the compression ratio associated with the data blocks and the first and second compression thresholds.

### Claim 18 (depends on 17)

The storage device of claim 17, wherein the processor is further configured to:
store the data blocks in the second memory block after determining that the compression ratio associated with the data blocks is not less than the first compression threshold.

### Claim 19 (depends on 17)

The storage device of claim 17, wherein the processor is further configured to:
store the data blocks in the first memory block after determining that the compression ratio associated with the data blocks is less than the first compression threshold.

### Claim 20 (depends on 17)

The storage device of claim 17, wherein the processor is further configured to:
store the data blocks in a third memory block of the non-volatile memory after determining that the compression ratio associated with the data blocks is not less than the first compression threshold and determining that the compression ratio associated with the data blocks is not less than the second compression threshold.
