# US 12,182,412 B2 · Setting durations for which data is stored in a non-volatile memory based on data types

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

- Number: US 12,182,412 B2
- Document ID: US12182412B2
- Status: Granted
- Kind: B2
- Application number: 17/368,461
- Filed: 2021-07-06
- Published: 2021-10-28
- Granted: 2024-12-31
- Earliest claimed: 2019-07-30
- Assignees: Advanced Micro Devices, Inc.
- Applicants: Advanced Micro Devices, Inc.
- Inventors: Andrew G. Kegel; Steven E. Raasch
- Web page: https://patentgrep.com/patent/US12182412B2

## CPC

- G06F 3/0616: {in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]}
- G06F 3/064: {Management of blocks}
- G06F 3/0658: {Controller construction arrangements}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 12/0891: using clearing, invalidating or resetting means
- G06F 16/907: Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F 2212/7208: Multiple device management, e.g. distributing data over multiple flash devices
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An electronic device includes a non-volatile memory and a memory controller. The memory controller selects, from the type-duration table, a duration for which data of a type of data is to be stored in a non-volatile memory. The memory controller writes the data to the non-volatile memory using values of one or more write parameters selected by the memory controller based on the duration. The memory controller sets an expected lifetime value in a record for the data in the expected lifetime table to indicate an expected lifetime of the data in the non-volatile memory.

## Claims

### Claim 1

A memory controller, comprising:
a type-duration table;
an expected lifetime table; and
a processing unit, the processing unit configured to:
select, from the type-duration table, a duration for which data of a type of data is to be stored in a non-volatile memory;
write the data to the non-volatile memory using values of one or more write parameters that are selected based on the duration; and
set an expected lifetime value in a record for the data in the expected lifetime table to indicate an expected lifetime of the data in the non-volatile memory.

### Claim 2 (depends on 1)

The memory controller of claim 1, wherein the memory controller further comprises:
a refresh unit configured to:
determine a remainder of the expected lifetime value for the data stored in the non-volatile memory based on the expected lifetime value for the data in the expected lifetime table; and
when the remainder is less than a threshold and the data remains stored in the non-volatile memory, refresh the data in the non-volatile memory.

### Claim 3 (depends on 2)

The memory controller of claim 2, wherein, when refreshing the data in the non-volatile memory, the refresh unit is configured to:
select refresh values of the one or more write parameters based on a refresh duration of the data selected by the refresh unit for refreshing the data; and
when refreshing the data, write the data to the non-volatile memory using the refresh values for the one or more write parameters.

### Claim 4 (depends on 1)

The memory controller of claim 1, wherein, when setting the expected lifetime value, the controller is configured to:
when the expected lifetime of the data is lower than expected lifetimes for other data stored in a region in the non-volatile memory in which the data is stored, set an expected lifetime value in a record in the expected lifetime table associated with the region in the non-volatile memory to the expected lifetime value for the data.

### Claim 5 (depends on 1)

The memory controller of claim 1, wherein the controller is further configured to:
select a given region of the non-volatile memory from among two or more regions in the non-volatile memory based on the values of the one or more parameters, each of the two or more regions being used for storing data using respective values of the one or more parameters; and
write the data to the given region of the non-volatile memory using the values of the one or more write parameters.

### Claim 6 (depends on 1)

The memory controller of claim 1, wherein the one or more parameters include at least one of:
a write time;
a write voltage; and
a write current.

### Claim 7 (depends on 1)

The memory controller of claim 1, wherein the processor is further configured to dynamically update the type-duration table.

### Claim 8 (depends on 1)

The memory controller of claim 1, wherein the processor is further configured to:
receive a hint regarding the duration for which the data is to be stored in a non-volatile memory; and
select the duration from the type-duration table based on the hint.

### Claim 9 (depends on 1)

The memory controller of claim 1, wherein the type-duration table stores a respective duration associated with each type of data among a plurality of types of data.

### Claim 10 (depends on 1)

The memory controller of claim 1, wherein the expected lifetime table stores an expected lifetime value representing a respective amount of time for which each portion of data stored in the non-volatile memory is expected to remain reliably stored in the non-volatile memory.

### Claim 11

A method for writing data to a non-volatile memory, the method comprising:
selecting, from a type-duration table, a duration for which data of a type of data is to be stored in a non-volatile memory;
writing the data to the non-volatile memory using values of one or more write parameters that are selected based on the duration; and
setting an expected lifetime value in a record for the data in an expected lifetime table to indicate an expected lifetime of the data in the non-volatile memory.

### Claim 12 (depends on 11)

The method of claim 11, further comprising:
determining a remainder of the expected lifetime value for the data stored in the non-volatile memory based on the expected lifetime value for the data in the expected lifetime table; and
when the remainder is less than a threshold and the data remains stored in the non-volatile memory, refreshing the data in the non-volatile memory.

### Claim 13 (depends on 12)

The method of claim 12, wherein refreshing the data in the non-volatile memory comprises:
selecting refresh values of the one or more write parameters based on a refresh duration of the data selected by the refresh unit for refreshing the data; and
when refreshing the data, writing the data to the non-volatile memory using the refresh values for the one or more write parameters.

### Claim 14 (depends on 11)

The method of claim 11, further comprising:
when the expected lifetime of the data is lower than expected lifetimes for other data stored in a region in the non-volatile memory in which the data is stored, setting an expected lifetime value in a record in the expected lifetime table associated with the region in the non-volatile memory to the expected lifetime value for the data.

### Claim 15 (depends on 11)

The method of claim 11, wherein writing the data to the non-volatile memory comprises:
selecting a given region of the non-volatile memory from among two or more regions in the non-volatile memory based on the values of the one or more parameters, each of the two or more regions being used for storing data using respective values of the one or more parameters; and
writing the data to the given region of the non-volatile memory using the values of the one or more write parameters.

### Claim 16 (depends on 11)

The method of claim 11, wherein the one or more parameters include at least one of:
a write time;
a write voltage; and
a write current.

### Claim 17 (depends on 11)

The method of claim 11, further comprising:
dynamically updating the type-duration table.

### Claim 18 (depends on 11)

The method of claim 11, further comprising:
receiving a hint regarding the duration for which the data is to be stored in a non-volatile memory; and
selecting the duration from the type-duration table based on the hint.

### Claim 19 (depends on 11)

The method of claim 11, wherein the type-duration table stores a respective duration associated with each type of data among a plurality of types of data.

### Claim 20 (depends on 11)

The method of claim 11, wherein the expected lifetime table stores an expected lifetime value representing a respective amount of time for which each portion of data stored in the non-volatile memory is expected to remain reliably stored in the non-volatile memory.
