# US 2025/0156321 A1 · Managing a programmable cache control mapping table in a system level cache

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

- Number: US 2025/0156321 A1
- Document ID: US20250156321A1
- Status: Published application
- Kind: A1
- Application number: 18/506,007
- Filed: 2023-11-09
- Published: 2025-05-15
- Earliest claimed: 2023-11-09
- Assignees: NVIDIA Corporation
- Applicants: Nvidia Corporation
- Inventors: Ashutosh PANDEY; Steven E. MOLNAR; Mirko ANDJIC; Amit PABALKAR; Harold W. CAIN, III; Prabal Sharma
- Web page: https://patentgrep.com/patent/US20250156321A1

## 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/084: with a shared cache
- G06F 12/0846: Cache with multiple tag or data arrays being simultaneously accessible
- G06F 12/127: using additional replacement algorithms
- G06F 12/128: adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
- G06F 2212/1016: Performance improvement
- G06F 2212/1044: Space efficiency improvement
- G06F 2212/502: using adaptive policy
- G06F 2212/60: Details of cache memory
- G06F 2212/601: Reconfiguration of cache memory
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Various embodiments include techniques for managing cache memory in a computing system. The disclosed techniques include a cache policy manager that monitors activity of various components that access a common cache memory. The cache policy manager establishes cache rules that determine what data remains stored in cache memory and what data is removed from cache memory in order to make room for new data. As the activities of these components change over time, cache rules that work well for a previous activity profile may no longer work well for the current activity profile. Therefore, the cache policy manager dynamically modifies the cache rules as the activity profile changes in order to select cache rules at any given time that work well with the current activity profile. These techniques are advantageous over conventional approaches that employ static cache rules that work well only for specific activity profiles.

## Claims

### Claim 1

A computer-implemented method for managing a cache memory in a computing system, the method comprising:
monitoring telemetric data that measures a system state of the computing system;
determining whether the system state is consistent with a previously identified system state included in a set of previously identified system states;
if the system state is consistent with a first previously identified system state included in the set of previously identified system states, then:
updating a mapping table with table entry indices appropriate for each combination of client type identifier and buffer type for the first previously identified system state, or
if the system state is not consistent with any previously identified system state included in the set of previously identified system states, then:
updating the mapping table with the table entry indices appropriate for each combination of client type identifier and buffer type for a default system state; and
reading one or more cache control parameters from a table entry referenced by the table entry index.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein data regarding a memory request pattern for the first client is encoded into the buffer type attribute associated with the first client.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the first client is designated by an identifier associated with a class of clients that have similar policies as at least one of the allocation policy associated with the first client or the replacement policy associated with the first client.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein each client included in the plurality of clients is associated with a unique identifier.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein the first client is associated with the same identifier as a second client included in the plurality of clients.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein the table entry associated with the table entry index based on the default system state specifies a default behavior that is compatible with, but not optimized for, the previously identified system state.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein the table entry associated with the table entry index based on the previously identified system state specifies a behavior that is optimized for the previously identified system state.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein the table entry includes at least one of cache allocation parameters or cache replacement parameters for memory requests from the first client that employ a buffer type indicated by the buffer type attribute.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, further comprising concatenating the buffer type attribute with an identifier that is associated with at least one of the allocation policy or the replacement policy.

### Claim 10 (depends on 1)

The computer-implemented method of claim 1, further comprising receiving the buffer type attribute from the first client along with a memory request.

### Claim 11

A system, comprising:
a memory;
a plurality of cache memory clients that is coupled to the memory;
a mapping table that maps a client type identifier and a buffer type associated with a request to a table entry index;
a cache memory policy manager configured to:
monitor telemetric data that measures a system state of the system;
determine whether the system state is consistent with a previously identified system state included in a set of previously identified system states; and
if the system state is consistent with a first previously identified system state included in the set of previously identified system states, then:
update the mapping table with table entry indices appropriate for each combination of client type identifier and buffer type for the first previously identified system state, or
if the system state is not consistent with any previously identified system state included in the set of previously identified system states, then:
update the mapping table with the table entry indices appropriate for each combination of client type identifier and buffer type for a default system state; and
a cache memory controller configured to:
read one or more cache control parameters from a table entry referenced by a first table entry index included in the table entry indices.

### Claim 12 (depends on 11)

The system of claim 11, wherein data regarding a memory request pattern for the first client is encoded into the buffer type attribute associated with the first client.

### Claim 13 (depends on 11)

The system of claim 11, wherein the first client is designated by an identifier associated with a class of clients that have similar policies as at least one of the allocation policy associated with the first client or the replacement policy associated with the first client.

### Claim 14 (depends on 11)

The system of claim 11, wherein each client included in the plurality of clients is associated with a unique identifier.

### Claim 15 (depends on 11)

The system of claim 11, wherein the first client is associated with the same identifier as a second client included in the plurality of clients.

### Claim 16 (depends on 11)

The system of claim 11, wherein the table entry associated with the table entry index based on the default system state specifies a default behavior that is compatible with, but not optimized for, the previously identified system state.

### Claim 17 (depends on 11)

The system of claim 11, wherein the table entry associated with the table entry index based on the previously identified system state specifies a behavior that is optimized for the previously identified system state.

### Claim 18 (depends on 11)

The system of claim 11, wherein the table entry includes at least one of cache allocation parameters or cache replacement parameters for memory requests from the first client that employ a buffer type indicated by the buffer type attribute.

### Claim 19 (depends on 11)

The system of claim 11, wherein the cache memory policy manager is further configured to concatenate the buffer type attribute with an identifier that is associated with at least one of the allocation policy or the replacement policy.

### Claim 20 (depends on 11)

The system of claim 11, wherein the cache memory policy manager is further configured to receive the buffer type attribute from the first client along with a memory request.
