Dynamic Memory Cache Partitioning for SoC Bandwidth Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current memory cache systems face inefficiencies due to cache misses and increased power consumption, particularly in systems with set-associative or direct-mapped caches, where collision misses lead to data eviction and higher memory latency, affecting system performance and power usage.
Innovation Solution
A dynamic memory cache allocation policy is implemented, allowing for real-time adjustment of cache quotas among agents and data streams, with a memory cache driver monitoring activations and characteristics to optimize cache partitioning and reduce memory bandwidth, thereby enhancing power savings and performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If a set-associative or direct-mapped cache is used to reduce data access latency, then memory access speed is improved, but collision misses increase causing data eviction and higher memory latency
Solution Approach 1:
The patent implements dynamic cache partitioning where cache quotas are adjusted in real-time based on application performance metrics. The system transitions from static cache allocation to dynamic allocation, allowing the cache to adapt to changing workload characteristics and minimize collision misses while maintaining fast access speeds.
Solution Approach 2:
The system employs feedback mechanisms by monitoring cache performance metrics such as hit rates and access patterns. Based on this feedback, the cache allocation policy is dynamically adjusted to optimize performance, resolving the contradiction between maintaining high speed and avoiding collision misses.
2Reliability
If cache size is increased to reduce collision misses, then cache hit rate is improved, but power consumption increases
Solution Approach 1:
The patent implements dynamic cache partitioning where cache quotas are adjusted in real-time based on application performance metrics. The system transitions from static cache allocation to dynamic allocation, allowing the cache to adapt to changing workload characteristics and minimize collision misses while maintaining fast access speeds.
Solution Approach 2:
The system changes the parameter of cache allocation from fixed to variable, adjusting cache quotas dynamically based on application needs. This allows the system to maintain high cache hit rates only when necessary, reducing power consumption during periods when full cache capacity is not needed.
3Device complexity
If static cache allocation is used to simplify system design, then device complexity is reduced, but system performance decreases due to inability to adapt to changing workloads
Solution Approach 1:
The patent implements dynamic cache partitioning where cache quotas are adjusted in real-time based on application performance metrics. The system transitions from static cache allocation to dynamic allocation, allowing the cache to adapt to changing workload characteristics and minimize collision misses while maintaining fast access speeds.
Data Source
AI summary
Systems, apparatuses, and methods for dynamically partitioning a memory cache among a plurality of agents are described. A system includes a plurality of agents, a communication fabric, a memory cache, and a lower-level memory. The partitioning of the memory cache for the active data streams of the agents is dynamically adjusted to reduce memory bandwidth and increase power savings across a wide range of applications. A memory cache driver monitors activations and characteristics of the data streams of the system. When a change is detected, the memory cache driver dynamically updates the memory cache allocation policy and quotas for the agents. The quotas specify how much of the memory cache each agent is allowed to use. The updates are communicated to the memory cache controller to enforce the new policy and enforce the new quotas for the various agents accessing the memory.


