Directory-less Snoop Offload for Multi-Processor Cache Coherency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In large data processing systems, maintaining cache coherency across multiple processors can lead to significant latency and resource overhead due to the use of snooping cache coherence techniques and directory-based methods.

Innovation Solution

The proposed solution involves performing local snoop operations within a cluster of processors without involving the upper level cache, thereby reducing the overhead on higher level cache directories and improving communication efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If snooping cache coherence techniques are used to maintain cache coherency across multiple processors, then cache coherency is maintained, but latency increases significantly

Engineering Contradiction:
Improvecache coherencyVSAvoidcommunication latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system segments the cache coherence management by introducing hierarchical levels (L1, L2, L3 caches) and dividing processors into clusters. Each cluster maintains coherence independently through local snooping, while higher levels handle cross-cluster coherence. This segmentation reduces the scope of snooping operations, thereby reducing latency while maintaining coherence reliability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces higher-level cache management agents and directory structures as intermediaries between processors and system memory. These intermediaries coordinate coherence across clusters without requiring direct processor-to-processor snooping, reducing communication latency while ensuring coherence is maintained through the intermediary coordination mechanism.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If directory-based cache coherence techniques are used to track cache line states, then cache coherency is maintained, but resource overhead increases

Engineering Contradiction:
Improvecache coherencyVSAvoidmemory resources
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The directory structure is segmented and distributed across hierarchical cache levels rather than centralized. Each cache level maintains its own directory entries for the cache lines it manages, reducing the memory resources required at any single level while collectively tracking all cache line states across the system.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent adds a hierarchical dimension to cache coherence management, organizing caches and directories in multiple levels (L1, L2, L3). This dimensional organization allows the system to track cache line states efficiently by distributing directory information across levels, reducing overall resource overhead compared to a flat directory structure.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS20250053514A1Directory-less snoop offload of a higher level cache management agent with snoop fence
Publication Date: 2025.02.13 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US20250053514A1 patent drawing
  • US20250053514A1 patent drawing
  • US20250053514A1 patent drawing

AI summary

Techniques and apparatus for maintaining cache coherency in a data processing system are described. An example technique includes receiving a fetch request from a processor of a plurality of processors in a cluster. A local snoop operation is performed for the cluster in response to the fetch request and without involving an upper level cache associated with the cluster. A fetch response is sent to the processor based on the local snoop operation. Another technique includes receiving a fetch request from a processor of a plurality of processors in a cluster. A snoop request is sent to trigger a local snoop operation for the cluster, in response to the fetch request. A snoop response including an indication that at least one processor in the cluster is in an offline state is received in response to the snoop request.