Cache Coherency Held State Directory Scalability
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing multiprocessor systems face scalability issues due to the increased circuitry and power consumption required for directory-based cache-coherency mechanisms, particularly when the number of processors increases, and coarse bit-mask approaches have scalability problems.
Innovation Solution
Implementing a cache-coherency protocol that includes a new 'held' state (MESHI protocol) to manage cache lines, allowing for efficient tracking of sharers by storing sharer information in the data field of the cache line at the home node, which reduces the directory's memory requirements and enables efficient cache line management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a directory-based cache-coherency mechanism is used to track sharers, then cache coherency is maintained, but the amount of circuitry and power consumption increases as the number of processors increases
Solution Approach 1:
The patent segments the tracking mechanism into two parts: a limited directory structure that tracks only up to X sharers, and a fallback mechanism using the cache line data field to track additional sharers beyond X. This segmentation allows the directory to remain small and simple while still supporting an arbitrary number of sharers through the combination of directory tracking and data field tracking.
Solution Approach 2:
The patent utilizes the cache line data field as an additional dimension for tracking sharers. When the directory reaches its capacity of X sharers, the system transitions to using the data field of the cache line itself to store sharer information, effectively moving from a centralized directory tracking approach to a distributed tracking approach embedded in the cache lines.
2Device complexity
If a coarse bit-mask is used in the directory to reduce information storage, then directory size is reduced, but scalability problems occur when invalidating sharers
Solution Approach 1:
The patent segments the sharer tracking into fine-grained individual entries in the directory (for up to X sharers) rather than using coarse bit-mask grouping. This allows precise tracking of each sharer's identity and state, enabling selective invalidation of individual sharers without affecting others, thus solving the scalability problem of sharer invalidation.
Solution Approach 2:
The patent replaces the mechanical bit-mask approach with a more sophisticated directory entry structure that stores actual sharer identifiers and state information. This substitution enables flexible and scalable sharer management operations including selective invalidation, state transitions, and tracking of arbitrary numbers of sharers beyond what a fixed bit-mask can accommodate.
3Reliability
If directory entries store information for many sharers, then all sharers can be tracked, but the directory requires more semiconductor area and power
Solution Approach 1:
The patent implements a dynamic tracking strategy where the system adapts between two modes: using the directory for tracking up to X sharers, and using the cache line data field for tracking additional sharers beyond X. This dynamic approach allows the directory size to remain fixed and small while still supporting an arbitrary number of sharers by transitioning to the data field when the directory capacity is reached.
Solution Approach 2:
The patent makes the cache line data field serve multiple functions: storing actual cache data when the cache line is owned, and storing sharer tracking information when the cache line is shared beyond the directory capacity. This multi-functionality allows the system to track arbitrary numbers of sharers without expanding the directory, as the data field becomes a secondary tracking repository.
Data Source
AI summary
A new “held” (“H”) cache-coherency state is introduced for directory-based multiprocessor systems. Using the held state enables embodiments of the present invention to track sharers that have a shared copy of a cache line after a directory runs out of space for holding information that identifies processors that have received shared copies of the cache line (e.g., pointers to sharers of the cache line). In these embodiments, when a directory entry is full, the system provides subsequent shared copies of the cache line to sharers in the held state and tracks the identity of the held-copy owners in a data field in the entry for the cache line in a home node.


