# US 12,602,323 B2 · Systems and methods of cache data placement

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

- Number: US 12,602,323 B2
- Document ID: US12602323B2
- Status: Granted
- Kind: B2
- Application number: 18/677,868
- Filed: 2024-05-29
- Published: 2025-08-21
- Granted: 2026-04-14
- Earliest claimed: 2024-02-21
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Jing Yang; Ho Bin Lee; Rekha Pitchumani
- Web page: https://patentgrep.com/patent/US12602323B2

## CPC

- G06F 12/0802: Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F 12/0871: Allocation or management of cache space
- G06F 12/0868: Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
- G06F 12/0888: using selective caching, e.g. bypass
- G06F 12/122: of the least frequently used [LFU] type, e.g. with individual count value
- G06F 12/126: with special data handling, e.g. priority of data or instructions, handling errors or pinning
- G06F 2212/502: using adaptive policy
- G06F 2212/60: Details of cache memory
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Provided are systems, methods, and apparatuses for assisted cache data placement. In one or more examples, systems, methods, and apparatuses include assigning a first identifier to first data based on an aspect of the first data, the first data being data moved from a cache and assigning a second identifier to second data based on an aspect of the second data, the second data being moved to a storage device based on a policy of the cache. In one or more examples, systems, methods, and apparatuses include storing the first data in a first storage location of the storage device based on the first identifier and storing the second data in a second storage location of the storage device based on the second identifier.

## Claims

### Claim 1

A method comprising:
assigning a first identifier to first data based in part on the first data being placed in a cache;
assigning a second identifier to second data based in part on the second data bypassing the cache;
storing the first data that is in the cache in a first storage location of a storage device based on the first identifier; and
storing the second data that bypasses the cache in a second storage location of the storage device based on the second identifier.

### Claim 2 (depends on 1)

The method of claim 1, wherein:
the first identifier includes a first storage policy identifier, and
the second identifier includes a second storage policy identifier.

### Claim 3 (depends on 1)

The method of claim 1, wherein storing the first data in the first storage location includes storing the first data in a first set of storage blocks of the storage device based on the first data being associated with a rate at which a first cache block fulfills requests for files in the first cache block.

### Claim 4 (depends on 3)

The method of claim 3, wherein:
the first data is moved from the first cache block, and
a data size of the first cache block is configured to match a data size of the first set of storage blocks.

### Claim 5 (depends on 3)

The method of claim 3, further comprising storing a third data that is moved from the cache to a second set of storage blocks of the storage device based on the third data being associated with a rate at which a second cache block fulfills requests for files in the second cache block different from the rate at which the first cache block fulfills requests for files in the first cache block.

### Claim 6 (depends on 5)

The method of claim 5, wherein:
the third data is moved from a second cache block, and
a data size of the second cache block is configured to match a data size of the second set of storage blocks.

### Claim 7 (depends on 1)

The method of claim 1, wherein the first storage location includes a set of storage blocks of the storage device associated with data that is determined to satisfy a frequent access threshold.

### Claim 8 (depends on 1)

The method of claim 1, wherein the second storage location includes a set of storage blocks of the storage device associated with data that is determined to satisfy an infrequent access threshold.

### Claim 9 (depends on 1)

The method of claim 1, wherein the first identifier is assigned to first data based on an aspect of the first data, the aspect of the first data including at least one of a rate at which the cache fulfills a request for the first data or the first data being determined to be data moved from the cache.

### Claim 10 (depends on 1)

The method of claim 1, wherein the first identifier is assigned to first data based on an aspect of the first data, the aspect of the second data including at least the second data being determined to be data routed to the storage device instead of the cache based on a policy of the cache.

### Claim 11

A storage device comprising:
a microcontroller to:
assign a first identifier to first data based in part on the first data being placed in a cache; and
assign a second identifier to second data based in part on the second data bypassing the cache;
a first storage location of the storage device to store the first data that is in the cache based on the first identifier; and
a second storage location of the storage device to store the second data that bypasses the cache based on the second identifier.

### Claim 12 (depends on 11)

The storage device of claim 11, wherein:
the first identifier includes a first storage policy identifier, and
the second identifier includes a second storage policy identifier.

### Claim 13 (depends on 11)

The storage device of claim 11, wherein storing the first data in the first storage location includes storing the first data in a first set of storage blocks of the storage device based on the first data being associated with a rate at which a first cache block fulfills requests for files in the first cache block.

### Claim 14 (depends on 13)

The storage device of claim 13, wherein:
the first data is moved from the first cache block, and
a data size of the first cache block is configured to match a data size of the first set of storage blocks.

### Claim 15 (depends on 13)

The storage device of claim 13, wherein the storage device is further configured to store a third data that is moved from the cache to a second set of storage blocks of the storage device based on the third data being associated with a rate at which a second cache block fulfills requests for files in the second cache block different from the rate at which the first cache block fulfills requests for files in the first cache block.

### Claim 16 (depends on 15)

The storage device of claim 15, wherein:
the third data is moved from a second cache block, and
a data size of the second cache block is configured to match a data size of the second set of storage blocks.

### Claim 17 (depends on 11)

The storage device of claim 11, wherein the first storage location includes a set of storage blocks of the storage device associated with data that is determined to satisfy a frequent access threshold.

### Claim 18

A non-transitory computer-readable medium storing code that comprises instructions executable by a processor of a storage device to:
assign a first identifier to first data based in part on the first data being placed in a cache;
assign a second identifier to second data based in part on the second data bypassing the cache;
store the first data that is in the cache in a first storage location of the storage device based on the first identifier; and
store the second data that bypasses the cache in a second storage location of the storage device based on the second identifier.

### Claim 19 (depends on 18)

The non-transitory computer-readable medium of claim 18, wherein:
the first identifier includes a first storage policy identifier, and
the second identifier includes a second storage policy identifier.

### Claim 20 (depends on 18)

The non-transitory computer-readable medium of claim 18, wherein storing the first data in the first storage location includes storing the first data in a first set of storage blocks of the storage device based on the first data being associated with a rate at which a first cache block fulfills requests for files in the first cache block.
