# US 12,761,802 B2 · Methods and devices for cache management

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

- Number: US 12,761,802 B2
- Document ID: US12761802B2
- Status: Granted
- Kind: B2
- Application number: 19/006,048
- Filed: 2024-12-30
- Published: 2026-07-02
- Granted: 2026-10-13
- Earliest claimed: 2024-12-30
- Assignees: SK Hynix NAND Product Solutions Corp.
- Applicants: SK Hynix NAND Product Solutions Corp.
- Inventors: Shankar Natarajan; Grzegorz Kowalczyk; Ramkarthik Ganesan; Michal Mamczynski; Bartosz Kot; Shivashekar Muralishankar; Sriram Natarajan; Allyn Malventano; Marcin Gutowski
- Web page: https://patentgrep.com/patent/US12761802B2

## CPC

- G06F 3/0613: {in relation to throughput}
- G06F 3/0647: {Migration mechanisms}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In accordance with some embodiments of the present disclosure, a method for operating a storage device coupled to a host device includes the storage device receiving priority information from the host device identifying high priority data stored on the storage device. The high priority data is identified by the host device based on a user interface identification of the high priority data stored on the storage device, or a plurality of requests to access the storage device generated by at least one application executing on the host device. The method further includes identifying an idle period in which no requests from the host device are received by the storage device, and transferring, during the idle period, at least a portion of the high priority data from the first memory to the second memory.

## Claims

### Claim 1

A method for operating a storage device coupled to a host device, wherein the storage device comprises a first memory with first performance characteristics and a second memory with second performance characteristics, the method comprising:
receiving, by the storage device from the host device, priority information identifying high priority data stored on the storage device, wherein:
the high priority data was identified by the host device based on user interface identification of the high priority data stored on the storage device;
periodically assigning increased priority to the high priority data based on a plurality of periodic messages from a driver of the storage device executing on the host device, wherein:
an application that sends access requests for the high priority data has become idle, and
the periodically assigning increased priority to the high priority data maintains increased priority of the high priority data when the high priority data has not been accessed over a period of time for which the application has been idle;
identifying an idle period in which no requests from the host device are received by the storage device;
and transferring, during the idle period, at least a portion of the high priority data from the first memory to the second memory.

### Claim 2 (depends on 1)

The method of claim 1, wherein the high priority data was identified by the host device by:
identifying, by a storage device driver executing on the host device, one or more files stored on the storage device with a size that exceeds a particular file size.

### Claim 3 (depends on 1)

The method of claim 1, wherein the high priority data was identified by the host device by:
identifying, by a storage device driver executing on the host device, an artificial intelligence (AI) model file stored by the storage device by applying a heuristic model to the plurality of requests to access the storage device generated by the least one application executing on the host device.

### Claim 4 (depends on 1)

The method of claim 1, wherein the first memory comprises a main memory that comprises a plurality quad-level cells (QLCs).

### Claim 5 (depends on 1)

The method of claim 1, wherein the second memory comprises a cache memory that comprises a plurality of single-level cells (SLCs).

### Claim 6 (depends on 1)

The method of claim 1, wherein the second memory comprises a cache memory that comprises a plurality of QLCs configured to operate as SLCs.

### Claim 7 (depends on 1)

The method of claim 1, wherein the second performance characteristics comprises faster memory access operational speed than the first performance characteristics.

### Claim 8 (depends on 1)

The method of claim 1, wherein the high priority data was identified by the host device based on the plurality of requests to access the storage device generated by the at least one application executing on the host device, the method further comprising:
increasing, based on a message from a driver of the storage device executing on the host device, priority of the high priority data;
determining that the high priority data has not been accessed over a period of time, and
based, at least in part, on the determining that the high priority data has not been accessed over the period of time, decreasing priority of the high priority data.

### Claim 9 (depends on 8)

The method of claim 8 further comprising:
based, at least in part, on the decreasing priority of the high priority data, transferring the high priority data from the second memory to the first memory.

### Claim 10

A storage device comprising:
a first memory with first performance characteristics;
a second memory with second performance characteristics;
control circuitry configured to:
receive, from a host device, priority information identifying high priority data stored on the storage device, wherein:
the high priority data was identified by the host device based user interface identification of the high priority data stored on the storage device;
periodically assign increased priority to the high priority data based on a plurality of periodic messages from a driver of the storage device executing on the host device, wherein:
an application that sends access requests for the high priority data has become idle, and
the periodically assigning increased priority to the high priority data maintains increased priority of the high priority data when the high priority data has not been accessed over a period of time for which the application has been idle;
identify an idle period in which no requests from the host device are received by the storage device; and
transfer, during the idle period, at least a portion of the high priority data from the first memory to the second memory.

### Claim 11 (depends on 10)

The storage device of claim 10, wherein the high priority data was identified by the host device by:
identifying, by a storage device driver executing on the host device, one or more files stored on the storage device with a size that exceeds a particular file size.

### Claim 12 (depends on 10)

The storage device of claim 10, wherein the high priority data was identified by the host device by:
identifying, by a storage device driver executing on the host device, an artificial intelligence (AI) model file stored by the storage device by applying a heuristic model to the plurality of requests to access the storage device generated by the least one application executing on the host device.

### Claim 13 (depends on 10)

The storage device of claim 10, wherein the first memory comprises a main memory that comprises a plurality quad-level cells (QLCs).

### Claim 14 (depends on 10)

The storage device of claim 10, wherein the second memory comprises a cache memory that comprises a plurality of single-level cells (SLCs).

### Claim 15 (depends on 10)

The storage device of claim 10, wherein the second memory comprises a cache memory that comprises a plurality of QLCs configured to operate as SLCs.

### Claim 16 (depends on 10)

The storage device of claim 10, wherein the second performance characteristics comprises faster memory access operational speed than the first performance characteristics.

### Claim 17 (depends on 10)

The storage device of claim 10, wherein the high priority data was identified by the host device based on the plurality of requests to access the storage device generated by the at least one application executing on the host device,
wherein the control circuitry is further configured to:
increase, based on a message from a driver of the storage device executing on the host device, priority of the high priority data,
determine that the high priority data has not been accessed over a period of time, and
based, at least in part, on the determining that the high priority data has not been accessed over the period of time, decreasing priority of the high priority data.

### Claim 18 (depends on 17)

The storage device of claim 17, wherein the control circuitry is further configured to:
based, at least in part, on the decreasing priority of the high priority data, transfer the high priority data from the second memory to the first memory.
