Storage Controller Cache Partitioning via Dynamic Weights
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing cache partitioning techniques fail to provide fine-grained control over cache line replacement for quality of service and non-interference, especially in heterogeneous systems with differing requirements, leading to inefficiencies and interference among threads or applications.
Innovation Solution
A storage controller with a tag array and partition policy units that apply partition-specific policies to determine adjusted weights for victim selection, allowing for flexible partitioning and re-sizing without reducing associativity, and enabling global weight adjustments for optimized cache management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If cache partitioning is done by constraining placement (way partitioning), then the cache can be divided into partitions, but it reduces associativity and cannot provide fine-grained control of partition size
Solution Approach 1:
The patent changes the control parameter from fixed way partitioning to dynamic replacement policy control. By modifying the replacement policy parameters (weights assigned to different partitions), the system achieves fine-grained control over partition size and behavior without altering the physical cache structure or reducing associativity. Each partition can have independently adjustable weights that dynamically control its size and replacement characteristics.
2Adaptability or versatility
If traditional cache replacement policies are used, then cache operations are simple, but they cannot partition the cache for quality of service and non-interference purposes
Solution Approach 1:
The patent segments the cache replacement process into multiple independent partition policy units, each responsible for a specific partition. Each policy unit maintains its own replacement policy and weight parameters, allowing independent control and optimization for different quality of service requirements. This segmentation enables multi-tenant cache management while keeping each policy unit relatively simple and manageable.
Solution Approach 2:
The patent introduces dynamic weight parameters that can be adjusted at runtime to control partition behavior. The weights are not fixed but can be modified based on system conditions, allowing the cache to adapt to changing quality of service requirements. This dynamic control mechanism enables flexible partitioning without requiring complex static configuration.
3Productivity
If cache lines are shared without partitioning, then cache utilization is maximized, but threads interfere with each other and quality of service guarantees cannot be provided
Solution Approach 1:
The patent applies local quality by assigning different weight parameters to different partitions, allowing each partition to have customized replacement behavior tailored to its specific quality of service requirements. This local customization enables the cache to simultaneously serve multiple threads with different characteristics without mutual interference, while maintaining high overall utilization by keeping the partitioning logic within the unified replacement process.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
There is described a method and data processing apparatus for a controller, the controller having an array of entries, each entry associated with a partition of one or more partitions, wherein the controller comprises logic configured to identify a partition identifier of an entry and apply a policy to the entry based on or in response to the partition identifier.