System-Level Cache Policy Switching for Mixed Memory Access Patterns

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional cache replacement policies in computing systems fail to optimize cache memory allocation and replacement based on the specific memory access patterns and system states of different components, leading to suboptimal performance and power management.

Innovation Solution

A method for managing cache memory that dynamically selects cache replacement policies and partitions based on system state and client-provided memory access patterns, using allocation/replacement identifiers (ARIDs), client caching hints, a programmable mapping table, and an SLC policy manager to optimize cache behavior for individual clients and access types.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If a conventional cache replacement policy (e.g., LRU, FIFO) is used, then the cache management is simple to implement, but the cache memory allocation is not optimized for specific memory access patterns of different clients

Engineering Contradiction:
Improveease of implementationVSAvoidoptimization for memory access patterns
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The cache replacement policy is segmented into multiple independent policies (e.g., LRU, FIFO, random, capacity-aware) that can be selectively applied to different clients or memory access patterns. The system divides the cache management function into separate policy modules, each optimized for specific scenarios, allowing the cache controller to choose the appropriate policy based on client characteristics and access patterns rather than using a single universal policy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The cache replacement policy is made dynamic by allowing the system to switch between different replacement policies based on real-time system state, client behavior, and memory access patterns. The cache controller dynamically selects and applies the most suitable replacement policy for each client or access pattern, enabling adaptation to changing conditions while maintaining implementation feasibility through a modular policy selection mechanism.

Inventive Principle:
Principle #15Dynamics

2Ease of operation

If cache memory is allocated to all clients equally, then fairness is maintained, but performance is suboptimal for clients with different memory access patterns

Engineering Contradiction:
Improvefairness in allocationVSAvoidperformance optimization
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

Instead of applying a uniform cache allocation strategy to all clients, the system implements local quality by tailoring cache replacement policies to the specific characteristics of each client or memory access pattern. Different clients receive different replacement policies optimized for their access patterns (e.g., streaming clients get capacity-aware policies, while random-access clients get LRU), achieving both fairness and performance optimization through differentiated treatment.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system changes parameters such as cache allocation size, replacement policy type, and eviction thresholds based on client characteristics and memory access patterns. By dynamically adjusting these parameters, the system can allocate cache memory more effectively to different clients, improving overall performance while maintaining fairness through adaptive parameter tuning rather than rigid equal allocation.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If the SLC is made larger to store more data, then cache hit rate increases, but power consumption and cost increase

Engineering Contradiction:
Improvecache hit rateVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

Instead of provisioning the SLC to store all potentially useful data, the system applies partial action by using intelligent replacement policies that selectively retain only the most valuable cache lines based on access patterns and system state. The capacity-aware replacement policies evict data that is less likely to be reused, achieving high cache hit rates with a smaller SLC size, thereby reducing power consumption and cost while maintaining reliability.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS12481590B2Managing a system level cache
Publication Date: 2025.11.25 NVIDIA CORP
  • US12481590B2 patent drawing
  • US12481590B2 patent drawing
  • US12481590B2 patent drawing

AI summary

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.