Bloom Filter for Coherence Directory Size Reduction
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
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
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.
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.
Data Source
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.


