Bloom Filter for Coherence Directory Size Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The size of coherence directories in multi-processor computing architectures increases with the number and size of caches, leading to excessive size requirements and limited scalability, as most cached data are not actively shared and require inefficient tracking methods.

Innovation Solution

Implementing a Bloom filter to track private data stored in only a single cache, reducing the number of addresses tracked by coherence directories, and using it in conjunction with a coherence directory to manage cache coherency, thereby controlling the size of coherence directories.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a coherence directory tracks all cached addresses in multi-processor architectures, then cache coherency is maintained, but the size of the coherence directory increases excessively with the number and size of caches

Engineering Contradiction:
Improvecache coherencyVSAvoidcoherence directory size
Core Design Contradiction:
ReliabilityVSArea of stationary object

Solution Approach 1:

The patent segments the tracking of cached addresses by categorizing them into private data (stored in only one cache) and shared data (stored in multiple caches). The Bloom filter handles private data tracking while the coherence directory handles shared data tracking, dividing the original monolithic tracking system into two specialized components.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The Bloom filter acts as an intermediary data structure between the cache system and the coherence directory. It filters out private data before requests reach the coherence directory, reducing the directory's burden and size while maintaining coherency for shared data.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Area of stationary object

If the coherence directory size is reduced by tracking fewer addresses, then area scalability improves, but the ability to maintain cache coherency may be compromised

Engineering Contradiction:
Improvecoherence directory sizeVSAvoidcache coherency
Core Design Contradiction:
Area of stationary objectVSReliability

Solution Approach 1:

The Bloom filter serves as an intermediary that probabilistically identifies private data without false negatives. While Bloom filters can have false positives, they never miss detecting actual private data, ensuring that all private data is correctly identified and handled, thus maintaining coherency reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system uses feedback from the Bloom filter to determine whether to access the coherence directory. When the Bloom filter indicates an address is private, the system responds by handling it without directory access. This feedback mechanism ensures correct coherency management while reducing directory size.

Inventive Principle:
Principle #23Feedback

3Device complexity

If multiple cache lines are tracked per coherence directory entry, then the number of directory entries is reduced, but tracking accuracy is reduced and the directory size still grows with cache increases

Engineering Contradiction:
Improvenumber of directory entriesVSAvoidtracking accuracy
Core Design Contradiction:
Device complexityVSMeasurement precision

Solution Approach 1:

Instead of grouping multiple cache lines per directory entry, the patent segments tracking by data type (private vs. shared) using the Bloom filter. This segmentation allows individual tracking of private data entries without forcing multiple unrelated cache lines into single directory entries, maintaining tracking precision.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The Bloom filter creates a compressed probabilistic copy of the private data tracking information. This copy uses bit arrays and hashing to represent private data compactly without losing accuracy, allowing the system to track private data efficiently without requiring full directory entries for each cache line.

Inventive Principle:
Principle #26Copying

4Area of stationary object

If a Tagless Coherency directory is used with hashing, then area scalability improves, but it cannot be easily applied to sparse directory structures with additional directory states

Engineering Contradiction:
Improvecoherence directory areaVSAvoidapplicability to sparse directory structures
Core Design Contradiction:
Area of stationary objectVSAdaptability or versatility

Solution Approach 1:

The patent segments the tracking function from the directory structure by introducing the Bloom filter as a separate component. This segmentation allows the coherence directory to maintain its sparse structure with owner-IDs and sharer bit vectors while the Bloom filter handles the hashing and compression of private data tracking independently.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The Bloom filter acts as an intermediary layer that works in conjunction with sparse directory structures. It preprocesses address tracking requests and filters out private data before they reach the sparse directory, allowing the directory to maintain its versatile structure with multiple states without being constrained by Tagless Coherency limitations.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11226900B2Using a bloom filter to reduce the number of memory addressees tracked by a coherence directory
Publication Date: 2022.01.18 ADVANCED MICRO DEVICES INC
  • US11226900B2 patent drawing
  • US11226900B2 patent drawing
  • US11226900B2 patent drawing

AI summary

An approach for tracking data stored in caches uses a Bloom filter to reduce the number of addresses that need to be tracked by a coherence directory. When a requested address is determined to not be currently tracked by either the coherence directory or the Bloom filter, tracking of the address is initiated in the Bloom filter, but not in the coherence directory. Initiating tracking of the address in the Bloom filter includes setting hash bits in the Bloom filter so that subsequent requests for the address will “hit” the Bloom filter. When a requested address is determined to be tracked by the coherence directory, the Bloom filter is not used to track the address.