Region-Based Cache Directory Splitting for Multi-Node Coherency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing line-based cache directory schemes are unable to keep up with the exponential growth of CPU cache sizes, leading to inefficiencies in managing cache coherency across multi-node computer systems.
Innovation Solution
Implementing a region-based cache directory scheme that splits cache directories between processing nodes and memory, where each node tracks regions with multiple cache lines and includes reference counts to manage cache coherency, reducing the number of entries and filtering out unnecessary victim modifications.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a line-based cache directory scheme is used to track each cache line individually, then cache coherency can be maintained accurately, but the size of the cache directory increases linearly with the total capacity of all CPU cache subsystems and cannot keep up with exponential growth of cache sizes
Solution Approach 1:
The cache directory is segmented into multiple regions, where each region tracks a subset of cache lines. Instead of having a single large directory tracking every cache line individually, the system divides the address space into regions and creates separate directory entries for each region, reducing the total number of directory entries needed while maintaining coherency tracking capability.
Solution Approach 2:
Multiple cache lines within the same region are merged into a single directory entry that tracks the coherency state for the entire region. This consolidation reduces the number of directory entries from one per cache line to one per region, allowing the directory size to grow more slowly than the total cache capacity.
2Reliability
If cache directories are increased in size to track all cache lines, then coherency tracking becomes more accurate, but memory bandwidth and probe bandwidth are consumed inefficiently
Solution Approach 1:
By segmenting the cache directory into regions, the system reduces the total number of directory entries that need to be probed and updated. This segmentation allows coherency tracking to be maintained with fewer memory accesses, reducing bandwidth consumption while preserving tracking accuracy at the region level.
3Volume of stationary object
If a region-based cache directory scheme is implemented to reduce directory size, then the number of entries is reduced and traffic to memory is minimized, but the complexity of managing reference counts and region tracking increases
Solution Approach 1:
The region-based directory entry is designed to serve multiple functions: it tracks coherency state for multiple cache lines within a region, maintains reference counts for efficiency tracking, and provides a compact representation that reduces memory usage. This multi-functionality justifies the added complexity by delivering multiple benefits from a single data structure.
Solution Approach 2:
The system changes the fundamental parameter of directory organization from individual cache line tracking to region-based tracking. This parameter change transforms the directory from a fine-grained structure to a coarser-grained structure, reducing size and traffic at the cost of increased management logic for region boundaries and reference counts.
4Quantity of substance
If cache sizes grow exponentially with memory technology improvements, then more data can be cached locally, but line-based directory schemes cannot keep up with the growth
Solution Approach 1:
The region-based directory segmentation allows the system to scale to larger cache capacities by organizing the address space into manageable regions. As cache capacity grows exponentially, the number of regions grows much more slowly, providing a scalable directory structure that can accommodate future cache size increases without proportionally increasing directory complexity.
Data Source
AI summary
Systems, apparatuses, and methods for maintaining region-based cache directories split between node and memory are disclosed. The system with multiple processing nodes includes cache directories split between the nodes and memory to help manage cache coherency among the nodes' cache subsystems. In order to reduce the number of entries in the cache directories, the cache directories track coherency on a region basis rather than on a cache line basis, wherein a region includes multiple cache lines. Each processing node includes a node-based cache directory to track regions which have at least one cache line cached in any cache subsystem in the node. The node-based cache directory includes a reference count field in each entry to track the aggregate number of cache lines that are cached per region. The memory-based cache directory includes entries for regions which have an entry stored in any node-based cache directory of the system.


