Dual-Basis Cache Partitioning for Shared and Private Workloads
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional cache designs in multi-core processors face inefficiencies due to propagation delays and poor performance when private data exceeds a core's private cache, leading to repeated fetching from remote shared caches, and when threads share working sets, private caches perform poorly.
Innovation Solution
Implementing a dual basis cache partition scheme that combines set-wise and way-wise partitioning to optimize cache resource allocation, allowing for more granular allocation of cache resources based on resource types and application needs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Volume of stationary object
If a shared last-level cache is used, then cache capacity is extended for multiple cores, but access time increases due to propagation delays when data must be fetched from remote cache locations
Solution Approach 1:
The shared last-level cache is segmented into multiple ways, with each way further divided into sets. This hierarchical segmentation allows the cache to be organized into distinct regions that can be independently accessed, reducing propagation delays by limiting the distance data must travel within the cache structure.
Solution Approach 2:
Different regions of the cache (ways and sets) are allocated to different cores or thread groups based on their access patterns. This local quality approach ensures that frequently accessed data for a particular core resides in nearby cache regions, minimizing propagation delays while maintaining extended cache capacity.
2Loss of time
If a private last-level cache is used for each core, then cache access time is reduced, but performance deteriorates when threads share most of their working sets
Solution Approach 1:
The cache structure serves multiple functions: it acts as a private cache for individual cores when data is locally available, and as a shared cache when data must be accessed from remote locations. The way-wise and set-wise partitioning enables the same physical cache structure to adapt its behavior based on the access pattern and data sharing requirements.
Solution Approach 2:
The cache allocation is dynamic rather than static. The cache controller can dynamically determine whether to service a request from local private cache or shared cache regions based on current working set characteristics and data sharing patterns, optimizing performance for both private and shared data scenarios.
3Device complexity
If cache resources are allocated in a fixed manner, then device complexity is reduced, but adaptability to different application working set sizes and data sharing patterns is limited
Solution Approach 1:
The patent combines set-wise partitioning and way-wise partitioning into a unified cache organization scheme. This merging of two partitioning dimensions creates a flexible framework that can adapt to different application requirements without requiring completely different cache architectures, maintaining reasonable device complexity while significantly improving adaptability.
Data Source
AI summary
Techniques and mechanisms to facilitate access to a cache based on a dual basis partition scheme. In an embodiment, a first one or more registers of a processor provide information which describes multiple set-wise partitions of a cache. A second one or more registers of the processor provides additional information which describes multiple way-wise partitions of the cache. A virtual cache is defined as that region of the cache which is both in a particular set-wise partition, and in a particular way-wise partition. In another embodiment, a cache agent of the processor performs operations, based on the set-wise partitioning and the way-wise partitioning, to determine a mapping of one address—which is provided in a memory access request, and which indicates a location in one virtual cache—to another address which indicates another location in a different virtual cache.


