# US 2010/0169541 A1 · Method and apparatus for retroactive adaptation of data location

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

- Number: US 2010/0169541 A1
- Document ID: US20100169541A1
- Status: Published application
- Kind: A1
- Application number: 12/345,992
- Filed: 2008-12-30
- Published: 2010-07-01
- Earliest claimed: 2008-12-30
- Assignees: SanDisk IL Ltd.
- Inventors: Guy Freikorn
- Web page: https://patentgrep.com/patent/US20100169541A1

## CPC

- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 2212/7211: Wear leveling
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method and system for organizing groups of data in a storage device having a non-volatile memory consisting of higher performance or endurance portion and a lower performance or endurance portion are disclosed. The method may include steps of determining a data usage status for a group of data in only one of the two portions, and if a data usage criterion is met, moving the group of data to the other of the two portions of the non-volatile memory. In another implementation, the method may include determining a data usage status of groups of data in both portions of the non-volatile memory and moving a group of data from one portion to the other if an appropriate data usage criterion is met so that groups of data may be maintained in a portion of the non-volatile memory most suited to their usage patterns.

## Claims

### Claim 1

A method of managing movement of data in a non-volatile storage device between a first type of non-volatile memory in the storage device and at least a second type of non-volatile memory in the storage device, the method comprising:
periodically determining a data usage status of a group of data in the first type of non-volatile memory;
comparing the determined data usage status to a data usage criterion;
transferring the group of data from the first type of non-volatile memory to the second type of non-volatile memory when the data usage status satisfies the data usage criterion, wherein the first type of non-volatile memory comprises a higher endurance memory than the second type of non-volatile memory.

### Claim 2 (depends on 1)

The method of claim 1, wherein determining the data usage status comprises determining a time of a last host write operation for the group of data.

### Claim 3 (depends on 2)

The method of claim 2, wherein determining the time of the last host write operation for the group of data comprises retrieving a last host write time stored in the storage device.

### Claim 4 (depends on 1)

The method of claim 1, wherein determining the data usage status comprises determining a time of last host access to the group of data.

### Claim 5 (depends on 1)

The method of claim 1, wherein the group of data comprises one of a sector, a page, a block or a file.

### Claim at position 6 (depends on 3)

6 The method of claim 3, wherein the data usage criterion comprises an elapsed time threshold and comparing the determined data usage status to the data usage criterion comprises comparing an elapsed time based on the last host write time to the elapsed time threshold, and wherein the data usage status satisfies the data usage criterion if the elapsed time is greater than or equal to the elapsed time threshold.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
determining a data usage status of a second group of data in the second type of non-volatile memory;
comparing the determined data usage status for the second group of data in the second type of non-volatile memory to a second data usage criterion;
transferring the second group of data from the second type of non-volatile memory to the first type of non-volatile memory when the data usage status for the second group of data satisfies the second data usage criterion, wherein the first type of non-volatile memory comprises a higher endurance memory than the second type of non-volatile memory.

### Claim 8 (depends on 7)

The method of claim 7, wherein the second data usage criterion is different than the data usage criterion.

### Claim 9 (depends on 7)

The method of claim 7, wherein the first type of non-volatile memory comprises single level cell (SLC) memory.

### Claim 10 (depends on 9)

The method of claim 9 wherein the second type of non-volatile memory comprises multi-level cell (MLC) memory.

### Claim 11

A method of managing movement of data in a non-volatile storage device between a first type of non-volatile memory in the memory device and a second type of non-volatile memory in the storage device, the method comprising:
initially storing each group of data received from a host in the first type of non-volatile memory as each group of data is received at the storage device;
periodically determining a data usage status of each group of data received in the first type of non-volatile memory in the storage device;
comparing the determined data usage status to a data usage criterion;
if the data usage status of a particular group of data satisfies the usage criteria, transferring the particular group of data from the first type of non-volatile memory in the storage device to the second type of non-volatile memory in the storage device, wherein the first type of non-volatile memory comprises a higher endurance memory than the second type of non-volatile memory.

### Claim 12 (depends on 11)

The method of claim 11, wherein determining the data usage status comprises determining a time of a last host write operation for the group of data.

### Claim 13 (depends on 12)

The method of claim 12, wherein determining the time of the last host write operation for the group of data comprises retrieving a last host write time stored in the storage device.

### Claim 14 (depends on 11)

The method of claim 11, wherein determining the data usage status comprises determining a time of last host access of the group of data.

### Claim 15 (depends on 11)

The method of claim 11, wherein the group of data comprises one of a sector, a page, a block or a file.

### Claim 16 (depends on 13)

The method of claim 13, wherein the data usage criterion comprises an elapsed time threshold and comparing the determined data usage status to the data usage criterion comprises comparing an elapsed time based on the last host write time to the elapsed time threshold, and wherein the data usage status satisfies the data usage criterion if the elapsed time is greater than or equal to the elapsed time threshold.

### Claim 17

A method of managing movement of data in a non-volatile storage device between a first type of non-volatile memory in the memory device and a second type of non-volatile memory in the storage device, the method comprising:
initially storing each group of data received from a host in the second type of non-volatile memory as each group of data is received at the storage device;
periodically determining a data usage status of each group of data in the second type of non-volatile memory in the storage device;
comparing the determined data usage status to a data usage criteria;
transferring a particular group of data from the second type of non-volatile memory in the storage device to the first type of non-volatile memory in the storage device when the data usage status satisfies the usage criteria, wherein the first type of non-volatile memory comprises a lower storage density capacity than the second type of non-volatile memory.

### Claim 18 (depends on 17)

The method of claim 17, wherein determining the data usage status comprises determining a time of a last host write operation for the group of data.

### Claim 19 (depends on 18)

The method of claim 18, wherein determining the time of the last host write operation for the group of data comprises retrieving a last host write time stored in the storage device.

### Claim 20 (depends on 17)

The method of claim 17, wherein determining the data usage status comprises determining a time of last host access of the group of data.

### Claim 21

An non-volatile storage device for managing movement of data between different types of non-volatile memory in the non-volatile storage device comprising:
a first type of non-volatile memory;
a second type of non-volatile memory, the second type of non-volatile memory comprising a lower endurance memory than the first type of non-volatile memory; and
a controller in communication with the first and second types of non-volatile memory, the controller configured to:
periodically determine a data usage status of a group of data in the first type of non-volatile memory;
compare the determined data usage status to a data usage criterion; and
transfer the group of data from the first type of non-volatile memory to the second type of non-volatile memory when the data usage status satisfies the data usage criterion.
