Cache Management Using Priority-Based Age Values
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing cache management schemes are inflexible and cannot adapt dynamically to varying application priorities, leading to suboptimal resource allocation and inefficient cache utilization, especially in shared cache environments where different threads with different priorities compete for resources.
Innovation Solution
A cache management method that uses a re-reference interval prediction (RRIP) strategy, where each cache line is assigned an age value based on its priority, allowing for dynamic adjustment of cache eviction policies to prioritize higher-priority requests by extending the interval between the age value and the eviction threshold, enabling soft-partitioning of cache resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a traditional cache management scheme is used, then the cache structure is simple and easy to implement, but the cache cannot adapt dynamically to varying application priorities, leading to suboptimal resource allocation
Solution Approach 1:
The patent implements dynamic cache management by introducing age values that change over time and priority-based eviction policies that adapt to different application requirements. The cache controller dynamically adjusts which cache lines to evict based on current priority levels and age values, transforming the static cache into an adaptive system that responds to varying application priorities.
Solution Approach 2:
The patent changes the parameter of cache line management by introducing age values and priority levels as new parameters. Instead of using only traditional LRU (least recently used) metrics, the system now considers age values that increment over time and priority assignments, allowing the cache to differentiate between high-priority and low-priority applications through parameter-based differentiation.
2Reliability
If cache resources are allocated equally to all threads, then the implementation is simple, but high-priority threads cannot be processed preferentially, reducing Quality of Service
Solution Approach 1:
The patent applies local quality by assigning different priority levels and age value increments to different cache lines based on their associated application priorities. High-priority threads receive preferential treatment through smaller age value increments or protected status, while low-priority threads experience larger increments, creating localized quality differences within the cache that reflect application importance.
Solution Approach 2:
The patent segments the cache management into priority-based groups, dividing cache lines into different categories based on their priority assignments. This segmentation allows the cache controller to apply different eviction policies to different segments, with high-priority segments being protected from eviction and low-priority segments being evicted more readily, thereby ensuring Quality of Service for critical applications.
3Productivity
If the cache size is increased to improve performance, then more data can be cached, but the cache cannot dynamically adjust to different application needs, leading to inefficient utilization
Solution Approach 1:
The patent introduces dynamic adjustment capability through age values that increment at different rates based on priority and eviction policies that respond to current cache state and application priorities. This allows the cache to dynamically adjust its behavior without changing physical size, optimizing utilization efficiency by keeping high-priority data in cache longer while allowing low-priority data to be evicted sooner.
Data Source
AI summary
There are provided in the present disclosure a cache management method for a computing device, a cache and a storage medium, the method including: storing, according to a first request sent by a processing unit of the computing device, data corresponding to the first request in a first cache line of a cache set, and setting age of the first cache line to a first initial age value according to a priority of the first request.


