Coherence Directory Way Tracking for Efficient LLC Evictions
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
As the number of core clusters in a system increases, the effort for tracking duplicate tags for last-level caches (LLCs) becomes significant, leading to inefficient power consumption and time consumption in identifying coherence directory entries during cache block evictions.
Innovation Solution
A directory-based coherence management scheme is employed where each cache block cached in an LLC includes an identifier of a coherence directory way, allowing the directory to read only the indicated way upon eviction, reducing the need to search all directory entries.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If duplicate tags are tracked for all LLCs in a system with multiple core clusters, then cache coherency is maintained, but power consumption and time consumption for identifying coherence directory entries increases significantly
Solution Approach 1:
The coherence directory is segmented into multiple directory ways (e.g., directory way 0, directory way 1, etc.), where each way stores coherence information for a subset of LLCs. When a cache block is evicted, only the specific directory way containing the relevant coherence entry is accessed, rather than searching the entire directory. This segmentation reduces power consumption by activating only the necessary directory segment.
Solution Approach 2:
Coherence directory entries are pre-organized and distributed across multiple directory ways based on LLC identifiers. This preliminary organization allows the system to quickly identify which specific directory way contains the relevant coherence information without performing a full directory search, thereby reducing both power consumption and access time.
2Reliability
If duplicate tags are tracked for all LLCs, then cache coherency is maintained, but time consumption for identifying coherence directory entries increases
Solution Approach 1:
The coherence directory is divided into multiple directory ways, each handling a specific subset of LLCs. This segmentation enables parallel or selective access to only the relevant directory way, significantly reducing the time required to identify coherence entries compared to searching the entire directory.
Solution Approach 2:
The directory structure is pre-configured with coherence entries distributed across multiple ways based on LLC identifiers. This preliminary organization allows for direct or indexed access to the specific directory way containing the required coherence information, eliminating the need for exhaustive searches.
3Reliability
If a full directory search is performed upon cache block eviction, then all coherence entries are checked, but power consumption and time consumption increase
Solution Approach 1:
The directory is segmented into multiple ways, allowing the eviction operation to target and access only the specific way containing the relevant coherence entry. This selective access maintains coherence accuracy while significantly improving eviction operation efficiency by avoiding unnecessary searches of other directory ways.
Solution Approach 2:
Coherence entries are pre-distributed across directory ways using a deterministic mapping function (e.g., based on LLC identifier and cache block address). This preliminary distribution enables the system to directly compute and access the correct directory way during eviction, maintaining accuracy while enhancing operational efficiency.
Data Source
AI summary
An apparatus includes a plurality of coherent agents, and a coherence directory that includes directory ways for storing coherency information. The coherence directory may be configured to determine that a cache block that is not currently cached among the coherent agents, is stored in a first coherent agent. The coherence directory may be further configured to, in response to this determination, create a particular entry in a selected one of the directory ways. The coherence directory may also be configured to send, to the first coherent agent, an indicator identifying a directory way that includes the entry. In response to a second coherent agent caching the cache block, the coherence directory may update the entry to include the second coherent agent. The first and second coherent agents may be configured to receive copies of the indicator, and to store their copy in locations associated with the cache block.


