Multicast Tree Data Distribution in Distributed Shared Cache

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvecache coherenceVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If invalidate requests are broadcast to all cores, then cache coherence is maintained, but resource overhead and network traffic increase

Engineering Contradiction:
Improvecache coherenceVSAvoidresource overhead
Core Design Contradiction:
ReliabilityVSLoss of energy

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.

Inventive Principle:
Principle #3Local quality

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

Engineering Contradiction:
Improvedata access speedVSAvoidcoherence management complexity
Core Design Contradiction:
SpeedVSDevice complexity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9734069B2Multicast tree-based data distribution in distributed shared cache
Publication Date: 2017.08.15 INTEL CORP
  • US9734069B2 patent drawing
  • US9734069B2 patent drawing
  • US9734069B2 patent drawing

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.