Multicast Tree Data Distribution in Distributed Shared Cache
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In larger multi-core systems, cache line access contentions lead to read storms due to cores attempting to write to cache lines being read by other cores, causing inefficiencies in maintaining cache coherence and resource overheads.
Innovation Solution
Implementing a multicast tree-based data distribution system in a distributed shared cache, where a shared cache is maintained with each tag directory to hold shared cache lines, and the cache control logic resolves incoming requests before examining the tag directory, processing invalidate requests by allocating shared cache entries and broadcasting updates to relevant cores.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional cache coherence protocols are used in larger multi-core systems, then cache coherence is maintained, but read storms occur causing performance degradation and resource overhead
Solution Approach 1:
The system segments the cache coherence management by introducing a shared cache layer between the last level cache and main memory, dividing the large multi-core system into smaller domains that can be managed more efficiently. This segmentation reduces the scope of broadcast operations and minimizes read storms by localizing coherence management.
Solution Approach 2:
A shared cache is introduced as an intermediary component between the last level cache and main memory. This intermediary handles coherence management requests, filtering and routing invalidate requests to only those cores that actually need them, thereby reducing unnecessary traffic and read storms while maintaining cache coherence.
2Reliability
If invalidate requests are broadcast to all cores, then cache coherence is maintained, but resource overhead and network traffic increase
Solution Approach 1:
The system applies local quality by tracking which specific cores hold copies of each cache line and directing invalidate requests only to those specific cores rather than broadcasting to all cores. This localized approach maintains cache coherence while significantly reducing the energy overhead and resource consumption associated with system-wide broadcasts.
3Speed
If multiple copies of data items exist in distributed caches, then data access speed is improved, but maintaining coherence becomes complex and resource-intensive
Solution Approach 1:
The shared cache acts as an intermediary that simplifies coherence management by providing a centralized tracking mechanism for data copies across distributed caches. This intermediary layer manages the complexity of tracking and invalidating multiple copies, allowing faster data access through distributed caching while reducing the burden on individual cache controllers.
Data Source
AI summary
Systems and methods for multicast tree-based data distribution in a distributed shared cache. An example processing system comprises: a plurality of processing cores, each processing core communicatively coupled to a cache; a tag directory associated with caches of the plurality of processing cores; a shared cache associated with the tag directory; a processing logic configured, responsive to receiving an invalidate request with respect to a certain cache entry, to: allocate, within the shared cache, a shared cache entry corresponding to the certain cache entry; transmit, to at least one of: a tag directory or a processing core that last accessed the certain entry, an update read request with respect to the certain cache entry; and responsive to receiving an update of the certain cache entry, broadcast the update to at least one of: one or more tag directories or one or more processing cores identified by a tag corresponding to the certain cache entry.


