Adaptive Cache Partitioning by Stream ID to Prevent Thrashing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Cache thrashing occurs due to competing memory requests from client devices for limited cache resources, leading to decreased performance and increased power consumption in integrated circuit devices, particularly in mobile computing devices.
Innovation Solution
Implement a caching policy that identifies computing tasks through stream ids, allowing the cache to allocate different partitions to different tasks, thereby reducing resource competition and optimizing cache usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If cache partitions are allocated to client devices, then cache usage is increased, but cache thrashing occurs when memory requests compete for the same resources
Solution Approach 1:
The cache is divided into multiple partitions that can be independently allocated to different computing tasks. Each partition acts as an isolated resource pool, preventing tasks from competing for the same cache space. This segmentation resolves the cache thrashing problem by ensuring that memory requests from different tasks access different physical regions of the cache, thereby maintaining high cache usage while improving performance reliability.
2Productivity
If stream allocation is optimized to reduce competition, then cache hit rate increases, but system complexity increases
Solution Approach 1:
The system implements adaptive stream allocation that monitors cache performance metrics and dynamically adjusts partition assignments based on observed hit rates and task behavior patterns. This feedback mechanism allows the system to learn optimal allocation strategies over time, increasing cache hit rates without requiring complex manual configuration. The automated adaptation process manages system complexity by using simple performance data to drive intelligent resource distribution decisions.
3Reliability
If cache partitions are increased to reduce competition, then resource allocation improves, but available cache space decreases
Solution Approach 1:
The cache partitioning scheme is dynamic rather than static, allowing the number and size of partitions to be adjusted at runtime based on system workload and task characteristics. When few tasks are active, fewer larger partitions are created, maximizing available cache space. When many tasks are active, more smaller partitions are created to reduce competition. This dynamic adaptation resolves the contradiction by allowing the system to optimize the balance between resource allocation quality and total cache capacity based on actual operational conditions.
Data Source
AI summary
Methods, systems, and apparatus, including computer programs encoded on computer storage media, for allocating cache resources according to stream ids. One of the methods includes caching memory requests for each of the one or more integrated client devices, distinguishing different computing tasks using stream ids of the memory requests, and allocating different partitions of the cache memory to different respective computing tasks.


