Distributed Cache Coherence via Requester Filter Pipes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multi-processor systems face scalability issues with snoop bus overload due to increased number of caches, leading to bottlenecks in distributed cache coherency processing, where a central snoop tag directory handles most of the processing tasks and becomes a bottleneck.

Innovation Solution

Distributed cache coherency processing is achieved by using requester filter pipes and a central snoop controller, where coherency processing is distributed across caches and filter pipes, reducing the processing load on the central controller and message bandwidth, and utilizing separate channels for requests, ordering messages, and data/acknowledgement messages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a central snoop tag directory is used to handle cache coherency requests, then cache coherency can be maintained across multiple caches, but the central controller becomes a bottleneck and scalability is limited

Engineering Contradiction:
Improvecache coherencyVSAvoidscalability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides the centralized snoop tag directory into multiple distributed snoop tag directories, with each directory handling a specific subset of caches. This segmentation distributes the coherency management load, eliminating the single-point bottleneck while maintaining coherency across the entire multi-processor system.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a hierarchical dimension to the snoop directory structure, organizing snoop directories in levels where higher-level directories coordinate between lower-level directories. This dimensional organization enables scalable coherency management by allowing local directories to handle simple cases independently while providing escalation paths for complex coherency scenarios.

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

2Reliability

If all snoop requests are routed to a central snoop tag directory, then coherency decisions can be centralized, but message bandwidth and processing load on the central controller increase

Engineering Contradiction:
Improvecoherency decision accuracyVSAvoidmessage bandwidth
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

By segmenting the snoop directory functionality across multiple distributed directories, the patent reduces the message bandwidth required at any single directory. Each distributed directory only needs to handle requests for its specific subset of caches, significantly reducing the overall message traffic compared to a centralized approach where all requests funnel through a single point.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If the number of caches connected to the snoop bus increases, then more processors can share memory resources, but the snoop bus becomes overloaded

Engineering Contradiction:
Improvememory sharing capabilityVSAvoidsnoop bus performance
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The patent segments the snoop directory functionality across multiple distributed directories, allowing caches to be organized in groups that map to specific directories. This segmentation enables the system to support more caches without overloading a single snoop bus, as coherency requests are distributed across multiple directories rather than concentrated on one bus.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

By introducing hierarchical levels and multiple dimensions to the snoop directory structure, the patent enables caches to access coherency services through multiple paths. This dimensional organization allows the system to scale to more caches while maintaining snoop bus performance, as requests can be routed through appropriate hierarchical levels rather than all competing on a single bus.

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

Data Source

PatentUS7366847B2Distributed cache coherence at scalable requestor filter pipes that accumulate invalidation acknowledgements from other requestor filter pipes using ordering messages from central snoop tag
Publication Date: 2008.04.29 AZUL SYSTEMS INC
  • US7366847B2 patent drawing
  • US7366847B2 patent drawing
  • US7366847B2 patent drawing

AI summary

A multi-processor, multi-cache system has filter pipes that store entries for request messages sent to a central coherency controller. The central coherency controller orders requests from filter pipes using coherency rules but does not track completion of invalidations. The central coherency controller reads snoop tags to identify sharing caches having a copy of a requested cache line. The central coherency controller sends an ordering message to the requesting filter pipe. The ordering message has an invalidate count indicating the number of sharing caches. Each sharing cache receives an invalidation message from the central coherency controller, invalidates its copy of the cache line, and sends an invalidation acknowledgement message to the requesting filter pipe. The requesting filter pipe decrements the invalidate count until all sharing caches have acknowledged invalidation. All ordering, data, and invalidation acknowledgement messages must be received by the requesting filter pipe before loading the data into its cache.